@sig-net/midnight-contract-deploy 0.24.0-rc.9 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/deploy-signet-contract.d.ts +24 -0
- package/dist/deploy-signet-contract.d.ts.map +1 -1
- package/dist/deploy-signet-contract.js +39 -2
- package/dist/deploy-signet-contract.js.map +1 -1
- package/dist/plumbing/midnight-node-config.d.ts +10 -0
- package/dist/plumbing/midnight-node-config.d.ts.map +1 -1
- package/dist/plumbing/midnight-node-config.js +16 -6
- package/dist/plumbing/midnight-node-config.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -25,6 +25,8 @@ Everything is read from the environment:
|
|
|
25
25
|
| `MPC_SECP256K1_PUBKEY` | Optional on a deployed network: the MPC root public key a requester's derived accounts start from, in SEC1 hex or NEAR `secp256k1:<base58>` form. `resolveMpcRootPublicKey` takes the key `@sig-net/midnight` publishes for the network when it is unset, refuses a set value that disagrees with it, and returns `0x04…` uncompressed hex either way. |
|
|
26
26
|
| `MIDNIGHT_FAUCET_URL` | The faucet named in the unfunded-wallet hint. Built in per network: stagenet `https://faucet.stagenet.shielded.tools`, preview `https://midnight-tmnight-preview.nethermind.dev`, preprod `https://midnight-tmnight-preprod.nethermind.dev`. Set it to override one of those, or to name a faucet for a network without one. |
|
|
27
27
|
|
|
28
|
+
In a checkout of the [sig-net/midnight-integration](https://github.com/sig-net/midnight-integration) repository, `yarn deploy:signet-contract` also loads the repository root's `.env` file whenever one exists. A variable already set in the shell takes precedence over the same key in the file.
|
|
29
|
+
|
|
28
30
|
## Usage
|
|
29
31
|
|
|
30
32
|
```ts
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type MidnightNodeConfig } from "./plumbing/midnight-node-config.ts";
|
|
1
2
|
import { type TransactionIdentifier, WalletRegistry } from "./plumbing/wallet.ts";
|
|
2
3
|
/** The outcome of a successful signet-contract deployment. */
|
|
3
4
|
export interface SignetContractDeployment {
|
|
@@ -6,6 +7,29 @@ export interface SignetContractDeployment {
|
|
|
6
7
|
/** Identifier of the submitted deploy transaction. */
|
|
7
8
|
txId: TransactionIdentifier;
|
|
8
9
|
}
|
|
10
|
+
/** Where a deploy setting's effective value came from. */
|
|
11
|
+
export declare enum DeploySettingSource {
|
|
12
|
+
/** The environment variable is set. */
|
|
13
|
+
Environment = "environment",
|
|
14
|
+
/** The variable is unset or blank, so the built-in value applies. */
|
|
15
|
+
Default = "default"
|
|
16
|
+
}
|
|
17
|
+
/** One row of {@link deployEnvironmentTable}. */
|
|
18
|
+
export interface DeploySettingRow {
|
|
19
|
+
/** The value the deploy runs with. */
|
|
20
|
+
value: string;
|
|
21
|
+
/** Whether the environment or the built-in default supplied {@link value}. */
|
|
22
|
+
source: DeploySettingSource;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Tabulate every environment variable a signet-contract deploy runs with,
|
|
26
|
+
* except the secret `DEPLOYER_SEED`, each with its effective value.
|
|
27
|
+
*
|
|
28
|
+
* @param env - The environment the deploy reads.
|
|
29
|
+
* @param midnightNodeConfig - The node config resolved from `env`.
|
|
30
|
+
* @returns One row per variable, keyed by variable name.
|
|
31
|
+
*/
|
|
32
|
+
export declare function deployEnvironmentTable(env: Record<string, string | undefined>, midnightNodeConfig: MidnightNodeConfig): Record<string, DeploySettingRow>;
|
|
9
33
|
/**
|
|
10
34
|
* Deploy the signet contract: read config from `env`, build and prove the
|
|
11
35
|
* deploy transaction and submit it through a synced wallet. Progress is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-signet-contract.d.ts","sourceRoot":"","sources":["../src/deploy-signet-contract.ts"],"names":[],"mappings":"AAWA,OAAO,EAGL,KAAK,qBAAqB,EAC1B,cAAc,EACf,MAAM,sBAAsB,CAAC;AAM9B,8DAA8D;AAC9D,MAAM,WAAW,wBAAwB;IACvC,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,IAAI,EAAE,qBAAqB,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACrD,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,wBAAwB,CAAC,
|
|
1
|
+
{"version":3,"file":"deploy-signet-contract.d.ts","sourceRoot":"","sources":["../src/deploy-signet-contract.ts"],"names":[],"mappings":"AAWA,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAGL,KAAK,qBAAqB,EAC1B,cAAc,EACf,MAAM,sBAAsB,CAAC;AAM9B,8DAA8D;AAC9D,MAAM,WAAW,wBAAwB;IACvC,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,IAAI,EAAE,qBAAqB,CAAC;CAC7B;AAED,0DAA0D;AAC1D,oBAAY,mBAAmB;IAC7B,uCAAuC;IACvC,WAAW,gBAAgB;IAC3B,qEAAqE;IACrE,OAAO,YAAY;CACpB;AAED,iDAAiD;AACjD,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,kBAAkB,EAAE,kBAAkB,GACrC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAqBlC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACrD,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,wBAAwB,CAAC,CAwCnC"}
|
|
@@ -6,10 +6,46 @@
|
|
|
6
6
|
// package's compiled assets to carry keys (its published dist/managed
|
|
7
7
|
// always does; an in-repo checkout needs `yarn compile:zk`).
|
|
8
8
|
import { buildDeployTransaction, getDeployConfig } from "./plumbing/deploy.js";
|
|
9
|
+
import { envOrUndefined } from "./plumbing/env.js";
|
|
9
10
|
import { ensureFeeReady } from "./plumbing/funding.js";
|
|
10
|
-
import { getFaucetUrl } from "./plumbing/midnight-node-config.js";
|
|
11
|
+
import { FAUCET_URL_ENV_VAR, getFaucetUrl, MIDNIGHT_NODE_CONFIG_ENV_VARS, } from "./plumbing/midnight-node-config.js";
|
|
11
12
|
import { estimateUnprovenTransactionFee, submitUnprovenTransaction, WalletRegistry, } from "./plumbing/wallet.js";
|
|
12
13
|
import { createSignetContractPrivateState, signetContractCompiledContract, } from "./signet-contract-binding.js";
|
|
14
|
+
/** Where a deploy setting's effective value came from. */
|
|
15
|
+
export var DeploySettingSource;
|
|
16
|
+
(function (DeploySettingSource) {
|
|
17
|
+
/** The environment variable is set. */
|
|
18
|
+
DeploySettingSource["Environment"] = "environment";
|
|
19
|
+
/** The variable is unset or blank, so the built-in value applies. */
|
|
20
|
+
DeploySettingSource["Default"] = "default";
|
|
21
|
+
})(DeploySettingSource || (DeploySettingSource = {}));
|
|
22
|
+
/**
|
|
23
|
+
* Tabulate every environment variable a signet-contract deploy runs with,
|
|
24
|
+
* except the secret `DEPLOYER_SEED`, each with its effective value.
|
|
25
|
+
*
|
|
26
|
+
* @param env - The environment the deploy reads.
|
|
27
|
+
* @param midnightNodeConfig - The node config resolved from `env`.
|
|
28
|
+
* @returns One row per variable, keyed by variable name.
|
|
29
|
+
*/
|
|
30
|
+
export function deployEnvironmentTable(env, midnightNodeConfig) {
|
|
31
|
+
const values = {
|
|
32
|
+
[MIDNIGHT_NODE_CONFIG_ENV_VARS.networkId]: midnightNodeConfig.networkId,
|
|
33
|
+
[MIDNIGHT_NODE_CONFIG_ENV_VARS.nodeUrl]: midnightNodeConfig.nodeUrl,
|
|
34
|
+
[MIDNIGHT_NODE_CONFIG_ENV_VARS.indexerUrl]: midnightNodeConfig.indexerUrl,
|
|
35
|
+
[MIDNIGHT_NODE_CONFIG_ENV_VARS.indexerWsUrl]: midnightNodeConfig.indexerWsUrl,
|
|
36
|
+
[MIDNIGHT_NODE_CONFIG_ENV_VARS.proofServerUrl]: midnightNodeConfig.proofServerUrl,
|
|
37
|
+
[FAUCET_URL_ENV_VAR]: getFaucetUrl(env, midnightNodeConfig.networkId) ?? "(none)",
|
|
38
|
+
};
|
|
39
|
+
return Object.fromEntries(Object.entries(values).map(([name, value]) => [
|
|
40
|
+
name,
|
|
41
|
+
{
|
|
42
|
+
value,
|
|
43
|
+
source: envOrUndefined(env, name) === undefined
|
|
44
|
+
? DeploySettingSource.Default
|
|
45
|
+
: DeploySettingSource.Environment,
|
|
46
|
+
},
|
|
47
|
+
]));
|
|
48
|
+
}
|
|
13
49
|
/**
|
|
14
50
|
* Deploy the signet contract: read config from `env`, build and prove the
|
|
15
51
|
* deploy transaction and submit it through a synced wallet. Progress is
|
|
@@ -34,7 +70,8 @@ export async function deploySignetContract(env = process.env, wallets) {
|
|
|
34
70
|
const deployConfig = getDeployConfig(env);
|
|
35
71
|
const { networkId } = deployConfig.midnightNodeConfig;
|
|
36
72
|
const registry = wallets ?? new WalletRegistry(deployConfig.midnightNodeConfig);
|
|
37
|
-
console.log(`deploying signet-contract to ${networkId}
|
|
73
|
+
console.log(`deploying signet-contract to ${networkId} with:`);
|
|
74
|
+
console.table(deployEnvironmentTable(env, deployConfig.midnightNodeConfig));
|
|
38
75
|
try {
|
|
39
76
|
const { facade, keys } = await registry.wallet(deployConfig.deployerSeed, "deployer");
|
|
40
77
|
const deployTransaction = await buildDeployTransaction(signetContractCompiledContract, networkId, keys.shieldedSecretKeys.coinPublicKey, createSignetContractPrivateState());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-signet-contract.js","sourceRoot":"","sources":["../src/deploy-signet-contract.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,0EAA0E;AAC1E,0EAA0E;AAC1E,uEAAuE;AACvE,mEAAmE;AACnE,sEAAsE;AACtE,6DAA6D;AAE7D,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"deploy-signet-contract.js","sourceRoot":"","sources":["../src/deploy-signet-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,16 @@ export interface MidnightNodeConfig {
|
|
|
12
12
|
readonly proofServerUrl: string;
|
|
13
13
|
readonly networkId: NetworkId;
|
|
14
14
|
}
|
|
15
|
+
/** The environment variable that sets each {@link MidnightNodeConfig} field. */
|
|
16
|
+
export declare const MIDNIGHT_NODE_CONFIG_ENV_VARS: {
|
|
17
|
+
readonly networkId: "NETWORK_ID";
|
|
18
|
+
readonly nodeUrl: "MIDNIGHT_NODE_URL";
|
|
19
|
+
readonly indexerUrl: "MIDNIGHT_NODE_INDEXER_URL";
|
|
20
|
+
readonly indexerWsUrl: "MIDNIGHT_NODE_INDEXER_WS_URL";
|
|
21
|
+
readonly proofServerUrl: "MIDNIGHT_NODE_PROOF_SERVER_URL";
|
|
22
|
+
};
|
|
23
|
+
/** The environment variable that names the faucet (see {@link getFaucetUrl}). */
|
|
24
|
+
export declare const FAUCET_URL_ENV_VAR = "MIDNIGHT_FAUCET_URL";
|
|
15
25
|
/** A network's four service endpoints, without the network id itself. */
|
|
16
26
|
export type Endpoints = Omit<MidnightNodeConfig, "networkId">;
|
|
17
27
|
/** Endpoint of the locally run proof server. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"midnight-node-config.d.ts","sourceRoot":"","sources":["../../src/plumbing/midnight-node-config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B;AAED,yEAAyE;AACzE,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;AAI9D,gDAAgD;AAChD,eAAO,MAAM,kBAAkB,0BAA0B,CAAC;AAI1D,uEAAuE;AACvE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CA+B1D,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAI1D,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,SAAS,EAAE,SAAS,GACnB,MAAM,GAAG,SAAS,CAEpB;AAID;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAKrE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,kBAAkB,
|
|
1
|
+
{"version":3,"file":"midnight-node-config.d.ts","sourceRoot":"","sources":["../../src/plumbing/midnight-node-config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B;AAED,gFAAgF;AAChF,eAAO,MAAM,6BAA6B;wBAC7B,YAAY;sBACd,mBAAmB;yBAChB,2BAA2B;2BACzB,8BAA8B;6BAC5B,gCAAgC;CACW,CAAC;AAE9D,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAExD,yEAAyE;AACzE,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;AAI9D,gDAAgD;AAChD,eAAO,MAAM,kBAAkB,0BAA0B,CAAC;AAI1D,uEAAuE;AACvE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CA+B1D,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAI1D,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,SAAS,EAAE,SAAS,GACnB,MAAM,GAAG,SAAS,CAEpB;AAID;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAKrE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,kBAAkB,CA4BpB"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
// Midnight node connection config — everything needed to talk to one Midnight
|
|
2
2
|
import { envOrUndefined } from "./env.js";
|
|
3
3
|
import { MidnightNetwork, NETWORK_IDS } from "./network-id.js";
|
|
4
|
+
/** The environment variable that sets each {@link MidnightNodeConfig} field. */
|
|
5
|
+
export const MIDNIGHT_NODE_CONFIG_ENV_VARS = {
|
|
6
|
+
networkId: "NETWORK_ID",
|
|
7
|
+
nodeUrl: "MIDNIGHT_NODE_URL",
|
|
8
|
+
indexerUrl: "MIDNIGHT_NODE_INDEXER_URL",
|
|
9
|
+
indexerWsUrl: "MIDNIGHT_NODE_INDEXER_WS_URL",
|
|
10
|
+
proofServerUrl: "MIDNIGHT_NODE_PROOF_SERVER_URL",
|
|
11
|
+
};
|
|
12
|
+
/** The environment variable that names the faucet (see {@link getFaucetUrl}). */
|
|
13
|
+
export const FAUCET_URL_ENV_VAR = "MIDNIGHT_FAUCET_URL";
|
|
4
14
|
// The proof server sees private witness data, so it is always run locally
|
|
5
15
|
// rather than against a remote host.
|
|
6
16
|
/** Endpoint of the locally run proof server. */
|
|
@@ -64,7 +74,7 @@ export const FAUCET_URLS = {
|
|
|
64
74
|
* @returns The faucet URL, or undefined when none is known.
|
|
65
75
|
*/
|
|
66
76
|
export function getFaucetUrl(env, networkId) {
|
|
67
|
-
return envOrUndefined(env,
|
|
77
|
+
return envOrUndefined(env, FAUCET_URL_ENV_VAR) ?? FAUCET_URLS[networkId];
|
|
68
78
|
}
|
|
69
79
|
// Derive the indexer WebSocket URL from the indexer HTTP URL: swap the scheme
|
|
70
80
|
// to ws(s) and append the "/ws" path segment the indexer expects.
|
|
@@ -98,16 +108,16 @@ export function indexerWsUrlFromIndexerUrl(indexerUrl) {
|
|
|
98
108
|
* @throws {Error} If `NETWORK_ID` is unknown.
|
|
99
109
|
*/
|
|
100
110
|
export function getMidnightNodeConfig(env = process.env) {
|
|
101
|
-
const networkId = envOrUndefined(env,
|
|
111
|
+
const networkId = envOrUndefined(env, MIDNIGHT_NODE_CONFIG_ENV_VARS.networkId) ?? MidnightNetwork.Undeployed;
|
|
102
112
|
// NetworkId widens the enum with the SDK's bare-string type, so the baseline
|
|
103
113
|
// lookup can miss. Both failures name the same fix, so they share a throw.
|
|
104
114
|
const defaults = DEFAULT_ENDPOINTS[networkId];
|
|
105
115
|
if (!NETWORK_IDS.includes(networkId) || defaults === undefined) {
|
|
106
116
|
throw new Error(`Invalid NETWORK_ID "${networkId}" — expected one of: ${NETWORK_IDS.join(", ")}.`);
|
|
107
117
|
}
|
|
108
|
-
const indexerOverride = envOrUndefined(env,
|
|
118
|
+
const indexerOverride = envOrUndefined(env, MIDNIGHT_NODE_CONFIG_ENV_VARS.indexerUrl);
|
|
109
119
|
const indexerUrl = indexerOverride ?? defaults.indexerUrl;
|
|
110
|
-
const indexerWsUrl = envOrUndefined(env,
|
|
120
|
+
const indexerWsUrl = envOrUndefined(env, MIDNIGHT_NODE_CONFIG_ENV_VARS.indexerWsUrl) ??
|
|
111
121
|
(indexerOverride === undefined
|
|
112
122
|
? defaults.indexerWsUrl
|
|
113
123
|
: indexerWsUrlFromIndexerUrl(indexerUrl));
|
|
@@ -115,8 +125,8 @@ export function getMidnightNodeConfig(env = process.env) {
|
|
|
115
125
|
networkId,
|
|
116
126
|
indexerUrl,
|
|
117
127
|
indexerWsUrl,
|
|
118
|
-
nodeUrl: envOrUndefined(env,
|
|
119
|
-
proofServerUrl: envOrUndefined(env,
|
|
128
|
+
nodeUrl: envOrUndefined(env, MIDNIGHT_NODE_CONFIG_ENV_VARS.nodeUrl) ?? defaults.nodeUrl,
|
|
129
|
+
proofServerUrl: envOrUndefined(env, MIDNIGHT_NODE_CONFIG_ENV_VARS.proofServerUrl) ?? defaults.proofServerUrl,
|
|
120
130
|
};
|
|
121
131
|
}
|
|
122
132
|
//# sourceMappingURL=midnight-node-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"midnight-node-config.js","sourceRoot":"","sources":["../../src/plumbing/midnight-node-config.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAE9E,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAkB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"midnight-node-config.js","sourceRoot":"","sources":["../../src/plumbing/midnight-node-config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sig-net/midnight-contract-deploy",
|
|
3
|
-
"version": "0.24.0
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/sig-net/midnight-integration",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"build": "rm -rf dist && tsc -p tsconfig.json && tsc -p tsconfig.build.json",
|
|
23
23
|
"prepack": "yarn build",
|
|
24
24
|
"test": "vitest run",
|
|
25
|
-
"deploy": "tsx deploy.ts"
|
|
25
|
+
"deploy": "tsx --env-file-if-exists=../../.env deploy.ts"
|
|
26
26
|
},
|
|
27
27
|
"publishConfig": {
|
|
28
28
|
"access": "public",
|
|
@@ -50,8 +50,8 @@
|
|
|
50
50
|
"@midnightntwrk/wallet-sdk-shielded": "4.0.0-beta.2",
|
|
51
51
|
"@midnightntwrk/wallet-sdk-unshielded-wallet": "4.0.0-beta.2",
|
|
52
52
|
"@scure/bip39": "^2.2.0",
|
|
53
|
-
"@sig-net/midnight": "^0.24.0
|
|
54
|
-
"@sig-net/midnight-contract": "^0.24.0
|
|
53
|
+
"@sig-net/midnight": "^0.24.0",
|
|
54
|
+
"@sig-net/midnight-contract": "^0.24.0",
|
|
55
55
|
"effect": "^3.22.2"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|