@sig-net/midnight-contract-deploy 0.0.6 → 0.0.7

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 CHANGED
@@ -21,7 +21,7 @@ Everything is read from the environment:
21
21
  | `NETWORK_ID` | Target network: `undeployed` (local stack, the default), `stagenet`, `preview`, `preprod` or `mainnet`. Selects the default endpoints. |
22
22
  | `MIDNIGHT_NODE_URL`, `MIDNIGHT_NODE_INDEXER_URL`, `MIDNIGHT_NODE_INDEXER_WS_URL`, `MIDNIGHT_NODE_PROOF_SERVER_URL` | Optional per-endpoint overrides of the network defaults. |
23
23
  | `DEPLOYER_SEED` | The deploying wallet's seed (hex or mnemonic). On the local stack it defaults to the pre-funded genesis mint wallet. |
24
- | `MPC_SECP256K1_PUBKEY` | The MPC attestation key, as compressed or uncompressed 0x-hex. The contract seals its hash at deploy time. |
24
+ | `MPC_JUBJUB_PK` | The MPC attestation key, as `x,y` (decimal or 0x-hex field coordinates). The contract seals its hash at deploy time. |
25
25
 
26
26
  ## Usage
27
27
 
@@ -9,16 +9,13 @@ export interface SignetContractDeployment {
9
9
  /**
10
10
  * Deploy the signet contract: read config from `env`, build and prove the
11
11
  * deploy transaction and submit it through a synced wallet. Progress is
12
- * logged to the console. The one constructor argument is the MPC attestation
13
- * key (`MPC_SECP256K1_PUBKEY`, compressed or uncompressed 0x-hex), whose hash
14
- * the contract seals — remote execution attestations must be ECDSA-signed by
15
- * it. Any funded wallet can deploy; nothing about the deployer is sealed.
12
+ * logged to the console. The contract takes no constructor arguments. Any
13
+ * funded wallet can deploy; nothing about the deployer is sealed.
16
14
  *
17
- * @param env - Environment map providing `DEPLOYER_SEED`,
18
- * `MPC_SECP256K1_PUBKEY` and the shared Midnight node configuration (see `getMidnightNodeConfig`).
15
+ * @param env - Environment map providing `DEPLOYER_SEED` and the shared
16
+ * Midnight node configuration (see `getMidnightNodeConfig`).
19
17
  * @returns The deployed contract address and deploy transaction id.
20
- * @throws If `MPC_SECP256K1_PUBKEY` is missing/malformed, the deployer
21
- * wallet holds no funds, or submission fails.
18
+ * @throws If the deployer wallet holds no funds or submission fails.
22
19
  */
23
20
  export declare function deploySignetContract(env?: Record<string, string | undefined>): Promise<SignetContractDeployment>;
24
21
  //# sourceMappingURL=deploy-signet-contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-signet-contract.d.ts","sourceRoot":"","sources":["../src/deploy-signet-contract.ts"],"names":[],"mappings":"AAaA,OAAO,EAIL,KAAK,qBAAqB,EAC3B,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;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,OAAO,CAAC,wBAAwB,CAAC,CA2CnC"}
1
+ {"version":3,"file":"deploy-signet-contract.d.ts","sourceRoot":"","sources":["../src/deploy-signet-contract.ts"],"names":[],"mappings":"AAaA,OAAO,EAIL,KAAK,qBAAqB,EAC3B,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;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,OAAO,CAAC,wBAAwB,CAAC,CAmCnC"}
@@ -1,41 +1,32 @@
1
1
  // Signet-contract deploy flow: builds, balances, proves and submits the
2
2
  // contract's deploy transaction using the generic plumbing in ./plumbing.
3
- // Everything contract-specific lives HERE: the MPC attestation key
4
- // constructor arg and the (empty) private state. Requires the contract
3
+ // Everything contract-specific lives HERE: the (empty) private state — the
4
+ // contract has no constructor arguments (every store is an unauthenticated
5
+ // append-only log; verification is the reader's job). Requires the contract
5
6
  // package's compiled assets to carry keys (its published dist/managed
6
7
  // always does; an in-repo checkout needs `yarn compile:zk`).
7
- import { parseSecp256k1PublicKey } from "@sig-net/midnight";
8
8
  import { assertDeployerFunded, buildDeployTransaction, getDeployConfig, } from "./plumbing/deploy.js";
9
9
  import { deriveAccountKeys, submitUnprovenTransaction, withSyncedWalletFacade, } from "./plumbing/wallet.js";
10
10
  import { createSignetContractPrivateState, signetContractCompiledContract, } from "./signet-contract-binding.js";
11
11
  /**
12
12
  * Deploy the signet contract: read config from `env`, build and prove the
13
13
  * deploy transaction and submit it through a synced wallet. Progress is
14
- * logged to the console. The one constructor argument is the MPC attestation
15
- * key (`MPC_SECP256K1_PUBKEY`, compressed or uncompressed 0x-hex), whose hash
16
- * the contract seals — remote execution attestations must be ECDSA-signed by
17
- * it. Any funded wallet can deploy; nothing about the deployer is sealed.
14
+ * logged to the console. The contract takes no constructor arguments. Any
15
+ * funded wallet can deploy; nothing about the deployer is sealed.
18
16
  *
19
- * @param env - Environment map providing `DEPLOYER_SEED`,
20
- * `MPC_SECP256K1_PUBKEY` and the shared Midnight node configuration (see `getMidnightNodeConfig`).
17
+ * @param env - Environment map providing `DEPLOYER_SEED` and the shared
18
+ * Midnight node configuration (see `getMidnightNodeConfig`).
21
19
  * @returns The deployed contract address and deploy transaction id.
22
- * @throws If `MPC_SECP256K1_PUBKEY` is missing/malformed, the deployer
23
- * wallet holds no funds, or submission fails.
20
+ * @throws If the deployer wallet holds no funds or submission fails.
24
21
  */
25
22
  export async function deploySignetContract(env = process.env) {
26
23
  const deployConfig = getDeployConfig(env);
27
24
  const { networkId } = deployConfig.midnightNodeConfig;
28
- const mpcPkRaw = env.MPC_SECP256K1_PUBKEY?.trim();
29
- if (!mpcPkRaw) {
30
- throw new Error("MPC_SECP256K1_PUBKEY is required (the MPC attestation key, as compressed/uncompressed 0x-hex)");
31
- }
32
- const mpcPk = parseSecp256k1PublicKey(mpcPkRaw);
33
25
  const accountKeys = deriveAccountKeys(deployConfig.deployerSeed, networkId);
34
26
  console.log(`deploying signet-contract to ${networkId} (${deployConfig.midnightNodeConfig.nodeUrl})`);
35
- console.log(`mpc attestation key: x=${mpcPk.x} y=${mpcPk.y}`);
36
27
  const { contractAddress, txId } = await withSyncedWalletFacade(accountKeys, deployConfig.midnightNodeConfig, async (facade, state) => {
37
28
  assertDeployerFunded(state);
38
- const deployTransaction = await buildDeployTransaction(signetContractCompiledContract, networkId, accountKeys.shieldedSecretKeys.coinPublicKey, createSignetContractPrivateState(), mpcPk);
29
+ const deployTransaction = await buildDeployTransaction(signetContractCompiledContract, networkId, accountKeys.shieldedSecretKeys.coinPublicKey, createSignetContractPrivateState());
39
30
  console.log(`contract address (pre-submit): ${deployTransaction.contractAddress}`);
40
31
  const submittedTxId = await submitUnprovenTransaction(facade, accountKeys, deployTransaction.serializedTransaction);
41
32
  return { contractAddress: deployTransaction.contractAddress, txId: submittedTxId };
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-signet-contract.js","sourceRoot":"","sources":["../src/deploy-signet-contract.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,0EAA0E;AAC1E,mEAAmE;AACnE,uEAAuE;AACvE,sEAAsE;AACtE,6DAA6D;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,sBAAsB,GAEvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,gCAAgC,EAChC,8BAA8B,GAC/B,MAAM,8BAA8B,CAAC;AAUtC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAA0C,OAAO,CAAC,GAAG;IAErD,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,kBAAkB,CAAC;IAEtD,MAAM,QAAQ,GAAG,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC;IAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,+FAA+F,CAAC,CAAC;IACnH,CAAC;IACD,MAAM,KAAK,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,WAAW,GAAG,iBAAiB,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAE5E,OAAO,CAAC,GAAG,CAAC,gCAAgC,SAAS,KAAK,YAAY,CAAC,kBAAkB,CAAC,OAAO,GAAG,CAAC,CAAC;IACtG,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAE9D,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,MAAM,sBAAsB,CAC5D,WAAW,EACX,YAAY,CAAC,kBAAkB,EAC/B,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QACtB,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAE5B,MAAM,iBAAiB,GAAG,MAAM,sBAAsB,CACpD,8BAA8B,EAC9B,SAAS,EACT,WAAW,CAAC,kBAAkB,CAAC,aAAa,EAC5C,gCAAgC,EAAE,EAClC,KAAK,CACN,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,kCAAkC,iBAAiB,CAAC,eAAe,EAAE,CAAC,CAAC;QAEnF,MAAM,aAAa,GAAG,MAAM,yBAAyB,CACnD,MAAM,EACN,WAAW,EACX,iBAAiB,CAAC,qBAAqB,CACxC,CAAC;QACF,OAAO,EAAE,eAAe,EAAE,iBAAiB,CAAC,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACrF,CAAC,CACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,+BAA+B,eAAe,EAAE,CAAC,CAAC;IAE9D,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"deploy-signet-contract.js","sourceRoot":"","sources":["../src/deploy-signet-contract.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,0EAA0E;AAC1E,2EAA2E;AAC3E,2EAA2E;AAC3E,4EAA4E;AAC5E,sEAAsE;AACtE,6DAA6D;AAE7D,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,sBAAsB,GAEvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,gCAAgC,EAChC,8BAA8B,GAC/B,MAAM,8BAA8B,CAAC;AAUtC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAA0C,OAAO,CAAC,GAAG;IAErD,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,kBAAkB,CAAC;IAEtD,MAAM,WAAW,GAAG,iBAAiB,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAE5E,OAAO,CAAC,GAAG,CAAC,gCAAgC,SAAS,KAAK,YAAY,CAAC,kBAAkB,CAAC,OAAO,GAAG,CAAC,CAAC;IAEtG,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,MAAM,sBAAsB,CAC5D,WAAW,EACX,YAAY,CAAC,kBAAkB,EAC/B,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QACtB,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAE5B,MAAM,iBAAiB,GAAG,MAAM,sBAAsB,CACpD,8BAA8B,EAC9B,SAAS,EACT,WAAW,CAAC,kBAAkB,CAAC,aAAa,EAC5C,gCAAgC,EAAE,CACnC,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,kCAAkC,iBAAiB,CAAC,eAAe,EAAE,CAAC,CAAC;QAEnF,MAAM,aAAa,GAAG,MAAM,yBAAyB,CACnD,MAAM,EACN,WAAW,EACX,iBAAiB,CAAC,qBAAqB,CACxC,CAAC;QACF,OAAO,EAAE,eAAe,EAAE,iBAAiB,CAAC,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACrF,CAAC,CACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,+BAA+B,eAAe,EAAE,CAAC,CAAC;IAE9D,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;AACnC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/plumbing/deploy.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAsB,MAAM,mCAAmC,CAAC;AAKnG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE3D,OAAO,EAAsC,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACxG,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE3E,2GAA2G;AAC3G,MAAM,WAAW,YAAY;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAChD,0EAA0E;IAC1E,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAID,eAAO,MAAM,wBAAwB,qEAAqE,CAAC;AA2C3G;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,YAAY,CAMnG;AAED,gGAAgG;AAChG,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,0FAA0F;IAC1F,QAAQ,CAAC,qBAAqB,EAAE,UAAU,CAAC;CAC5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EACtE,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EACnB,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EACzC,cAAc,EAAE,MAAM,GACrB,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,CAI1C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAC5E,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EACnB,cAAc,EAAE,MAAM,GACrB,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,CAI1C;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,eAAe,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,CAUzF;AAKD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,SAAS,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAC9E,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,EAC1D,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,MAAM,EACxB,mBAAmB,EAAE,EAAE,EACvB,GAAG,eAAe,EAAE,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAC5D,OAAO,CAAC,iBAAiB,CAAC,CAiC5B;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAQ7D"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/plumbing/deploy.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAsB,MAAM,mCAAmC,CAAC;AAKnG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE3D,OAAO,EAAuC,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACzG,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE3E,2GAA2G;AAC3G,MAAM,WAAW,YAAY;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAChD,0EAA0E;IAC1E,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAID,eAAO,MAAM,wBAAwB,qEAAqE,CAAC;AA2C3G;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,YAAY,CAMnG;AAED,gGAAgG;AAChG,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,0FAA0F;IAC1F,QAAQ,CAAC,qBAAqB,EAAE,UAAU,CAAC;CAC5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EACtE,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EACnB,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EACzC,cAAc,EAAE,MAAM,GACrB,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,CAI1C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAC5E,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EACnB,cAAc,EAAE,MAAM,GACrB,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,CAI1C;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,eAAe,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,CAUzF;AAKD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,SAAS,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAC9E,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,EAC1D,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,MAAM,EACxB,mBAAmB,EAAE,EAAE,EACvB,GAAG,eAAe,EAAE,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAC5D,OAAO,CAAC,iBAAiB,CAAC,CAiC5B;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAQ7D"}
@@ -11,7 +11,7 @@ import * as ledger from "@midnightntwrk/ledger-v9";
11
11
  import * as Configuration from "@midnight-ntwrk/platform-js/effect/Configuration";
12
12
  import * as CoinPublicKey from "@midnight-ntwrk/platform-js/effect/CoinPublicKey";
13
13
  import { Effect, Layer, Option } from "effect";
14
- import { FAUCET_URLS, getMidnightNodeConfig } from "./midnight-node-config.js";
14
+ import { getFaucetUrl, getMidnightNodeConfig } from "./midnight-node-config.js";
15
15
  import { isLocalStandaloneNetwork } from "./network-id.js";
16
16
  // Pre-funded genesis wallet of the local standalone stack — the default
17
17
  // deployer for development, and the ONLY network where it holds funds.
@@ -39,7 +39,7 @@ function resolveDeployerSeed(env, networkId) {
39
39
  if (isLocalStandaloneNetwork(networkId)) {
40
40
  return provided || GENESIS_MINT_WALLET_SEED;
41
41
  }
42
- const faucet = FAUCET_URLS[networkId];
42
+ const faucet = getFaucetUrl(env, networkId);
43
43
  const fundHint = faucet ? `fund a wallet via ${faucet}` : "fund a wallet via the network's faucet";
44
44
  if (!provided) {
45
45
  throw new Error(`DEPLOYER_SEED is required on "${networkId}": the genesis mint seed only holds funds on the local ` +
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/plumbing/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/plumbing/deploy.ts"],"names":[],"mappings":"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"}
@@ -16,10 +16,22 @@ export type Endpoints = Omit<MidnightNodeConfig, "networkId">;
16
16
  export declare const LOCAL_PROOF_SERVER = "http://127.0.0.1:6300";
17
17
  export declare const DEFAULT_ENDPOINTS: Record<NetworkId, Endpoints>;
18
18
  export declare const FAUCET_URLS: Partial<Record<NetworkId, string>>;
19
+ /**
20
+ * The faucet URL to show in underfunded-wallet hints: `MIDNIGHT_FAUCET_URL`
21
+ * from the environment when set, else the network's {@link FAUCET_URLS}
22
+ * entry. Purely informational — a missing URL only makes the hint generic.
23
+ *
24
+ * @param env - The environment to read `MIDNIGHT_FAUCET_URL` from.
25
+ * @param networkId - The network whose faucet the hint points at.
26
+ * @returns The faucet URL, or undefined when none is known.
27
+ */
28
+ export declare function getFaucetUrl(env: Record<string, string | undefined>, networkId: NetworkId): string | undefined;
19
29
  export declare function indexerWsUrlFromIndexerUrl(indexerUrl: string): string;
20
30
  /**
21
- * Read a {@link MidnightNodeConfig} from the environment. Every variable is
22
- * optional — with nothing set this yields the local "undeployed" stack.
31
+ * Read a {@link MidnightNodeConfig} from the environment. With nothing set
32
+ * this yields the local "undeployed" stack; a network with blank defaults
33
+ * (stagenet — its endpoints are not published in this repo) REQUIRES the
34
+ * endpoint variables and fails naming the missing ones.
23
35
  *
24
36
  * Parse flow:
25
37
  * 1. `NETWORK_ID` (default "undeployed", validated against {@link NETWORK_IDS})
@@ -29,6 +41,10 @@ export declare function indexerWsUrlFromIndexerUrl(indexerUrl: string): string;
29
41
  * `MIDNIGHT_NODE_INDEXER_WS_URL`, `MIDNIGHT_NODE_PROOF_SERVER_URL`.
30
42
  * When the indexer URL is overridden without a WS override, the WS URL is
31
43
  * derived from it instead of keeping the baseline host.
44
+ * 3. Every resolved endpoint must be non-empty.
45
+ *
46
+ * @throws If `NETWORK_ID` is unknown, or an endpoint resolves empty (blank
47
+ * default and no environment override).
32
48
  */
33
49
  export declare function getMidnightNodeConfig(env?: Record<string, string | undefined>): MidnightNodeConfig;
34
50
  //# sourceMappingURL=midnight-node-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"midnight-node-config.d.ts","sourceRoot":"","sources":["../../src/plumbing/midnight-node-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;;;;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,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;AAI9D,eAAO,MAAM,kBAAkB,0BAA0B,CAAC;AAI1D,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CA+B1D,CAAC;AAOF,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAE1D,CAAC;AAIF,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAKrE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,kBAAkB,CAmBpB"}
1
+ {"version":3,"file":"midnight-node-config.d.ts","sourceRoot":"","sources":["../../src/plumbing/midnight-node-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;;;;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,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;AAI9D,eAAO,MAAM,kBAAkB,0BAA0B,CAAC;AAI1D,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAuC1D,CAAC;AASF,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAM,CAAC;AAElE;;;;;;;;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,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,CAoCpB"}
@@ -12,10 +12,18 @@ export const DEFAULT_ENDPOINTS = {
12
12
  nodeUrl: "http://127.0.0.1:9944",
13
13
  proofServerUrl: LOCAL_PROOF_SERVER,
14
14
  },
15
+ // Stagenet's endpoints are deliberately NOT published in this repo.
16
+ // Provide them via the environment (repo-root .env), which
17
+ // getMidnightNodeConfig REQUIRES for this network:
18
+ // MIDNIGHT_NODE_URL — node RPC
19
+ // MIDNIGHT_NODE_INDEXER_URL — indexer GraphQL over HTTP (the WS
20
+ // twin derives from it when unset)
21
+ // MIDNIGHT_NODE_INDEXER_WS_URL — indexer GraphQL over WebSocket
22
+ // The proof server stays local (it sees private witness data).
15
23
  ["stagenet"]: {
16
- indexerUrl: "https://indexer.stagenet.shielded.tools/api/v4/graphql",
17
- indexerWsUrl: "wss://indexer.stagenet.shielded.tools/api/v4/graphql/ws",
18
- nodeUrl: "https://rpc.stagenet.shielded.tools",
24
+ indexerUrl: "",
25
+ indexerWsUrl: "",
26
+ nodeUrl: "",
19
27
  proofServerUrl: LOCAL_PROOF_SERVER,
20
28
  },
21
29
  ["preview"]: {
@@ -39,12 +47,24 @@ export const DEFAULT_ENDPOINTS = {
39
47
  };
40
48
  // Faucet URLs for the networks that publish one, for underfunded-wallet
41
49
  // hints. The local standalone chain funds via genesis, not a faucet, so it
42
- // has no entry; the public *.midnight.network faucet URLs are omitted until
43
- // confirmed, so a hint there degrades to a generic "fund via the faucet".
44
- // TODO: add faucet urls for other networks
45
- export const FAUCET_URLS = {
46
- ["stagenet"]: "https://faucet.stagenet.shielded.tools",
47
- };
50
+ // has no entry. Stagenet's faucet URL is deliberately NOT published in this
51
+ // repo provide it via the MIDNIGHT_FAUCET_URL environment variable (see
52
+ // {@link getFaucetUrl}); without it the hint degrades to a generic "fund via
53
+ // the network's faucet". The public *.midnight.network faucet URLs are
54
+ // omitted until confirmed.
55
+ export const FAUCET_URLS = {};
56
+ /**
57
+ * The faucet URL to show in underfunded-wallet hints: `MIDNIGHT_FAUCET_URL`
58
+ * from the environment when set, else the network's {@link FAUCET_URLS}
59
+ * entry. Purely informational — a missing URL only makes the hint generic.
60
+ *
61
+ * @param env - The environment to read `MIDNIGHT_FAUCET_URL` from.
62
+ * @param networkId - The network whose faucet the hint points at.
63
+ * @returns The faucet URL, or undefined when none is known.
64
+ */
65
+ export function getFaucetUrl(env, networkId) {
66
+ return env.MIDNIGHT_FAUCET_URL?.trim() || FAUCET_URLS[networkId];
67
+ }
48
68
  // Derive the indexer WebSocket URL from the indexer HTTP URL: swap the scheme
49
69
  // to ws(s) and append the "/ws" path segment the indexer expects.
50
70
  export function indexerWsUrlFromIndexerUrl(indexerUrl) {
@@ -54,8 +74,10 @@ export function indexerWsUrlFromIndexerUrl(indexerUrl) {
54
74
  return url.toString();
55
75
  }
56
76
  /**
57
- * Read a {@link MidnightNodeConfig} from the environment. Every variable is
58
- * optional — with nothing set this yields the local "undeployed" stack.
77
+ * Read a {@link MidnightNodeConfig} from the environment. With nothing set
78
+ * this yields the local "undeployed" stack; a network with blank defaults
79
+ * (stagenet — its endpoints are not published in this repo) REQUIRES the
80
+ * endpoint variables and fails naming the missing ones.
59
81
  *
60
82
  * Parse flow:
61
83
  * 1. `NETWORK_ID` (default "undeployed", validated against {@link NETWORK_IDS})
@@ -65,6 +87,10 @@ export function indexerWsUrlFromIndexerUrl(indexerUrl) {
65
87
  * `MIDNIGHT_NODE_INDEXER_WS_URL`, `MIDNIGHT_NODE_PROOF_SERVER_URL`.
66
88
  * When the indexer URL is overridden without a WS override, the WS URL is
67
89
  * derived from it instead of keeping the baseline host.
90
+ * 3. Every resolved endpoint must be non-empty.
91
+ *
92
+ * @throws If `NETWORK_ID` is unknown, or an endpoint resolves empty (blank
93
+ * default and no environment override).
68
94
  */
69
95
  export function getMidnightNodeConfig(env = process.env) {
70
96
  const networkId = env.NETWORK_ID?.trim() || "undeployed";
@@ -75,12 +101,29 @@ export function getMidnightNodeConfig(env = process.env) {
75
101
  const indexerUrl = env.MIDNIGHT_NODE_INDEXER_URL || defaults.indexerUrl;
76
102
  const indexerWsUrl = env.MIDNIGHT_NODE_INDEXER_WS_URL ||
77
103
  (env.MIDNIGHT_NODE_INDEXER_URL ? indexerWsUrlFromIndexerUrl(indexerUrl) : defaults.indexerWsUrl);
78
- return {
104
+ const config = {
79
105
  networkId,
80
106
  indexerUrl,
81
107
  indexerWsUrl,
82
108
  nodeUrl: env.MIDNIGHT_NODE_URL || defaults.nodeUrl,
83
109
  proofServerUrl: env.MIDNIGHT_NODE_PROOF_SERVER_URL || defaults.proofServerUrl,
84
110
  };
111
+ // A blank default means the network's endpoints are not published in this
112
+ // repo (stagenet) — the environment must supply them, so fail with the
113
+ // exact variables to set.
114
+ const missing = [];
115
+ if (!config.nodeUrl)
116
+ missing.push("MIDNIGHT_NODE_URL");
117
+ if (!config.indexerUrl)
118
+ missing.push("MIDNIGHT_NODE_INDEXER_URL");
119
+ if (!config.indexerWsUrl)
120
+ missing.push("MIDNIGHT_NODE_INDEXER_WS_URL");
121
+ if (!config.proofServerUrl)
122
+ missing.push("MIDNIGHT_NODE_PROOF_SERVER_URL");
123
+ if (missing.length > 0) {
124
+ throw new Error(`network "${networkId}" has no built-in endpoints in this repo — set ${missing.join(", ")} ` +
125
+ `in the environment (or the repo-root .env).`);
126
+ }
127
+ return config;
85
128
  }
86
129
  //# 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":"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"}
1
+ {"version":3,"file":"midnight-node-config.js","sourceRoot":"","sources":["../../src/plumbing/midnight-node-config.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAE9E,OAAO,EAAE,WAAW,EAAkB,MAAM,iBAAiB,CAAC;AAkB9D,0EAA0E;AAC1E,qCAAqC;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAE1D,0EAA0E;AAC1E,8CAA8C;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAiC;IAC7D,CAAC,YAAY,CAAC,EAAE;QACd,UAAU,EAAE,sCAAsC;QAClD,YAAY,EAAE,uCAAuC;QACrD,OAAO,EAAE,uBAAuB;QAChC,cAAc,EAAE,kBAAkB;KACnC;IACD,oEAAoE;IACpE,2DAA2D;IAC3D,mDAAmD;IACnD,6CAA6C;IAC7C,sEAAsE;IACtE,qEAAqE;IACrE,mEAAmE;IACnE,+DAA+D;IAC/D,CAAC,UAAU,CAAC,EAAE;QACZ,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,kBAAkB;KACnC;IACD,CAAC,SAAS,CAAC,EAAE;QACX,UAAU,EAAE,yDAAyD;QACrE,YAAY,EAAE,0DAA0D;QACxE,OAAO,EAAE,sCAAsC;QAC/C,cAAc,EAAE,kBAAkB;KACnC;IACD,CAAC,SAAS,CAAC,EAAE;QACX,UAAU,EAAE,yDAAyD;QACrE,YAAY,EAAE,0DAA0D;QACxE,OAAO,EAAE,sCAAsC;QAC/C,cAAc,EAAE,kBAAkB;KACnC;IACD,CAAC,SAAS,CAAC,EAAE;QACX,UAAU,EAAE,yDAAyD;QACrE,YAAY,EAAE,0DAA0D;QACxE,OAAO,EAAE,sCAAsC;QAC/C,cAAc,EAAE,kBAAkB;KACnC;CACF,CAAC;AAEF,wEAAwE;AACxE,2EAA2E;AAC3E,4EAA4E;AAC5E,0EAA0E;AAC1E,6EAA6E;AAC7E,uEAAuE;AACvE,2BAA2B;AAC3B,MAAM,CAAC,MAAM,WAAW,GAAuC,EAAE,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAuC,EACvC,SAAoB;IAEpB,OAAO,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;AACnE,CAAC;AAED,8EAA8E;AAC9E,kEAAkE;AAClE,MAAM,UAAU,0BAA0B,CAAC,UAAkB;IAC3D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IAChC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1D,GAAG,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;IACvD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA0C,OAAO,CAAC,GAAG;IAErD,MAAM,SAAS,GAAc,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,YAAY,CAAC;IACpE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,wBAAwB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrG,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,yBAAyB,IAAI,QAAQ,CAAC,UAAU,CAAC;IACxE,MAAM,YAAY,GAChB,GAAG,CAAC,4BAA4B;QAChC,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEnG,MAAM,MAAM,GAAuB;QACjC,SAAS;QACT,UAAU;QACV,YAAY;QACZ,OAAO,EAAE,GAAG,CAAC,iBAAiB,IAAI,QAAQ,CAAC,OAAO;QAClD,cAAc,EAAE,GAAG,CAAC,8BAA8B,IAAI,QAAQ,CAAC,cAAc;KAC9E,CAAC;IAEF,0EAA0E;IAC1E,uEAAuE;IACvE,0BAA0B;IAC1B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAClE,IAAI,CAAC,MAAM,CAAC,YAAY;QAAE,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IACvE,IAAI,CAAC,MAAM,CAAC,cAAc;QAAE,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC3E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,YAAY,SAAS,kDAAkD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC1F,6CAA6C,CAChD,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sig-net/midnight-contract-deploy",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/sig-net/midnight-integration",
@@ -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.0.6",
54
- "@sig-net/midnight-contract": "^0.0.6",
53
+ "@sig-net/midnight": "^0.0.7",
54
+ "@sig-net/midnight-contract": "^0.0.7",
55
55
  "effect": "^3.21.4"
56
56
  },
57
57
  "devDependencies": {