@artblocks/abx-cli 0.1.0-alpha.39 → 0.1.0-alpha.40

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.
Files changed (63) hide show
  1. package/CHANGELOG.md +9 -4079
  2. package/dist/bin.d.ts +1 -2
  3. package/dist/bin.d.ts.map +1 -1
  4. package/dist/bin.js +1 -2
  5. package/dist/bin.js.map +1 -1
  6. package/dist/commands/deploy.d.ts.map +1 -1
  7. package/dist/commands/deploy.js +40 -45
  8. package/dist/commands/deploy.js.map +1 -1
  9. package/dist/commands/project.d.ts.map +1 -1
  10. package/dist/commands/project.js +16 -22
  11. package/dist/commands/project.js.map +1 -1
  12. package/dist/commands/reads.d.ts +1 -1
  13. package/dist/commands/reads.js +4 -4
  14. package/dist/commands/reads.js.map +1 -1
  15. package/dist/commands/scaffold.d.ts.map +1 -1
  16. package/dist/commands/scaffold.js +8 -16
  17. package/dist/commands/scaffold.js.map +1 -1
  18. package/dist/commands/service.d.ts.map +1 -1
  19. package/dist/commands/service.js +10 -16
  20. package/dist/commands/service.js.map +1 -1
  21. package/dist/commands/storage.js +1 -1
  22. package/dist/commands/storage.js.map +1 -1
  23. package/dist/config.d.ts.map +1 -1
  24. package/dist/config.js +2 -3
  25. package/dist/config.js.map +1 -1
  26. package/dist/conformance.d.ts.map +1 -1
  27. package/dist/conformance.js +7 -10
  28. package/dist/conformance.js.map +1 -1
  29. package/dist/errors.d.ts +2 -2
  30. package/dist/errors.js +2 -2
  31. package/dist/flag-allowlists.d.ts +1 -1
  32. package/dist/flag-allowlists.js +1 -1
  33. package/dist/flags.js +1 -1
  34. package/dist/flags.js.map +1 -1
  35. package/dist/main.js +6 -8
  36. package/dist/main.js.map +1 -1
  37. package/dist/output.d.ts +1 -1
  38. package/dist/output.d.ts.map +1 -1
  39. package/dist/output.js +4 -5
  40. package/dist/output.js.map +1 -1
  41. package/dist/ownerops.d.ts +4 -7
  42. package/dist/ownerops.d.ts.map +1 -1
  43. package/dist/ownerops.js +13 -19
  44. package/dist/ownerops.js.map +1 -1
  45. package/dist/provision.d.ts +3 -13
  46. package/dist/provision.d.ts.map +1 -1
  47. package/dist/provision.js +3 -13
  48. package/dist/provision.js.map +1 -1
  49. package/dist/remote.d.ts +1 -1
  50. package/dist/remote.js +3 -3
  51. package/dist/remote.js.map +1 -1
  52. package/dist/riskgate.d.ts +1 -1
  53. package/dist/riskgate.d.ts.map +1 -1
  54. package/dist/riskgate.js +3 -4
  55. package/dist/riskgate.js.map +1 -1
  56. package/dist/served.js +3 -3
  57. package/dist/update-check.d.ts +1 -4
  58. package/dist/update-check.d.ts.map +1 -1
  59. package/dist/update-check.js +1 -4
  60. package/dist/update-check.js.map +1 -1
  61. package/package.json +10 -10
  62. package/skill/SKILL.md +1 -1
  63. package/skill/reference/services.md +3 -5
package/dist/bin.d.ts CHANGED
@@ -11,8 +11,7 @@
11
11
  *
12
12
  * What that bought before this file existed: `npm i -g @artblocks/abx-cli && abx doctor` on Node
13
13
  * 22.5 printed a raw `ERR_UNKNOWN_BUILTIN_MODULE: No such built-in module: node:sqlite` stack trace.
14
- * No mention of abx, of Node versions, or of what to do — on the very first command we tell every
15
- * user to run. (Reported 2026-08-24; `engines` also claimed `>=22.5.0`, which is the bug underneath.)
14
+ * No mention of abx, Node versions, or what to do — on the first command we tell every user to run.
16
15
  *
17
16
  * We probe the *capability*, not the version number. `node:sqlite` shipped in v22.5.0 behind
18
17
  * `--experimental-sqlite` and lost the flag in v22.13.0 / v23.4.0, so an old Node run with
package/dist/bin.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;GAuBG"}
1
+ {"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;GAsBG"}
package/dist/bin.js CHANGED
@@ -11,8 +11,7 @@
11
11
  *
12
12
  * What that bought before this file existed: `npm i -g @artblocks/abx-cli && abx doctor` on Node
13
13
  * 22.5 printed a raw `ERR_UNKNOWN_BUILTIN_MODULE: No such built-in module: node:sqlite` stack trace.
14
- * No mention of abx, of Node versions, or of what to do — on the very first command we tell every
15
- * user to run. (Reported 2026-08-24; `engines` also claimed `>=22.5.0`, which is the bug underneath.)
14
+ * No mention of abx, Node versions, or what to do — on the first command we tell every user to run.
16
15
  *
17
16
  * We probe the *capability*, not the version number. `node:sqlite` shipped in v22.5.0 behind
18
17
  * `--experimental-sqlite` and lost the flag in v22.13.0 / v23.4.0, so an old Node run with
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,+FAA+F;AAC/F,MAAM,UAAU,GAAG,SAAS,CAAC;AAE7B,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5D,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEjE;;;;GAIG;AACH,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;IAClD,OAAO,KAAK,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC;QACnC,CAAC,CAAC,mGAAmG,KAAK,CAAC,0CAA0C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,IAAI;QACvL,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,CACL,KAAK,GAAG,CAAC,GAAG,CAAC,sCAAsC,GAAG,CAAC,aAAa,CAAC,qCAAqC;QAC1G,kBAAkB,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,IAAI;QACxC,kBAAkB,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC,eAAe;QACxD,gCAAgC;QAChC,OAAO,KAAK,CAAC,8BAA8B,CAAC,MAAM,GAAG,CAAC,yBAAyB,CAAC,IAAI;QACpF,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI;QAC9B,MAAM,CACP,CAAC;AACJ,CAAC;AAED,IAAI,CAAC;IACH,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;AAC9B,CAAC;AAAC,MAAM,CAAC;IACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,+FAA+F;AAC/F,MAAM,UAAU,GAAG,SAAS,CAAC;AAE7B,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5D,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEjE;;;;GAIG;AACH,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;IAClD,OAAO,KAAK,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC;QACnC,CAAC,CAAC,mGAAmG,KAAK,CAAC,0CAA0C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,IAAI;QACvL,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,CACL,KAAK,GAAG,CAAC,GAAG,CAAC,sCAAsC,GAAG,CAAC,aAAa,CAAC,qCAAqC;QAC1G,kBAAkB,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,IAAI;QACxC,kBAAkB,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC,eAAe;QACxD,gCAAgC;QAChC,OAAO,KAAK,CAAC,8BAA8B,CAAC,MAAM,GAAG,CAAC,yBAAyB,CAAC,IAAI;QACpF,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI;QAC9B,MAAM,CACP,CAAC;AACJ,CAAC;AAED,IAAI,CAAC;IACH,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;AAC9B,CAAC;AAAC,MAAM,CAAC;IACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
@@ -624,7 +624,7 @@ export async function cmdDeploy(flags, serveAfter) {
624
624
  }
625
625
  return withJson(flags, async (emit) => cmdDeployOneOfOneEditionBody(flags, emit));
626
626
  }
627
- // `--json`: the deployed ADDRESS is the value a program came for (B19). Narration goes to stderr,
627
+ // `--json`: the deployed address is the value a program came for. Narration goes to stderr,
628
628
  // so `ADDR=$(abx deploy … --json | jq -r .address)` works without parsing a success banner.
629
629
  return withJson(flags, async (emit) => cmdDeployBody(flags, serveAfter, emit));
630
630
  }
@@ -644,7 +644,7 @@ export async function cmdDeployBody(flags, serveAfter, emit) {
644
644
  // 1500, printed "royalty 15%" in the confirmation readout, and then lost the whole deploy to a
645
645
  // RoyaltyTooHigh() revert — the expensive tx, and one the creator had already approved.
646
646
  const royaltyBps = flags['royalty-bps'] === undefined ? 500 : parseRoyaltyBps(String(flags['royalty-bps']));
647
- // B45: owner-set royalty ceiling (bps, up to 100%), reduce-only after deploy. Defaults to 10%,
647
+ // Owner-set royalty ceiling (bps, up to 100%), reduce-only after deploy. Defaults to 10%,
648
648
  // auto-raised to fit a higher --royalty-bps so a plausible input never errors; --royalty-cap overrides.
649
649
  const maxRoyaltyBps = flags['royalty-cap'] === undefined
650
650
  ? Math.max(1000, royaltyBps)
@@ -902,7 +902,7 @@ export async function cmdDeployBody(flags, serveAfter, emit) {
902
902
  }
903
903
  }
904
904
  // Wallet-signature count for THIS deploy — the same chunk math that sizes the wallet-lane
905
- // session `total` below (B2), computed ONCE so the preview/confirm text and the real session can
905
+ // session `total` below, computed once so the preview/confirm text and the real session can
906
906
  // never disagree. Counts TX signatures only: a storage upload signed by a connected wallet
907
907
  // (Arweave via --storage-signer eth) is a message signature, not a transaction, and is already
908
908
  // named separately (see the `remoteEthUpload` narration) — it does not add to this count.
@@ -995,7 +995,7 @@ export async function cmdDeployBody(flags, serveAfter, emit) {
995
995
  const { clone: predicted, params, salt, contentNote } = await buildForDeployer(deployer);
996
996
  info(`deployer ${deployer}`);
997
997
  await warnUnfunded(publicClient, deployer); // advisory: fund this before the real deploy
998
- // B1: the address is a pure function of (factory, salt), and WITHOUT --salt this salt was just
998
+ // The address is a pure function of (factory, salt), and without --salt this salt was just
999
999
  // freshly randomly reserved (saltFor mixes in entropy) — a plain re-run gets a DIFFERENT one, so
1000
1000
  // the address below is real for THIS preview but not reproducible by habit. Rather than print an
1001
1001
  // address that quietly stops being true, print it ONLY when --salt pinned it (below, unchanged);
@@ -1019,9 +1019,9 @@ export async function cmdDeployBody(flags, serveAfter, emit) {
1019
1019
  }
1020
1020
  info(`contractURI base ${params.contractURIBase || dim('(empty — resolves on-chain via the renderer)')}`);
1021
1021
  info(noMint ? 'mint: deferred (--no-mint)' : `mint: token #0 → ${deployer} at deploy`);
1022
- info(`approvals ${approvals} wallet approval(s)`); // B2 — TX signatures only; storage uploads are named separately above
1022
+ info(`approvals ${approvals} wallet approval(s)`); // TX signatures only; storage uploads are named separately above
1023
1023
  if (!explicitSalt) {
1024
- // B1: enforce, don't warn no predicted address to anchor on, so print the one thing that
1024
+ // Enforce, don't warn: with no predicted address to anchor on, print the one thing that
1025
1025
  // DOES stay true: the salt itself, pinned via --salt (or `abx predict`) reproduces this exact
1026
1026
  // address on the real deploy.
1027
1027
  console.log(`\n ${bold('salt')} ${g(salt)}`);
@@ -1034,7 +1034,7 @@ export async function cmdDeployBody(flags, serveAfter, emit) {
1034
1034
  console.log(`\n ${g('dry run')} ${dim('— nothing sent, no bytes stored. Re-run without --dry-run to deploy.')}\n`);
1035
1035
  // A dry run DOES know the address when --salt pinned it (a pure function of factory+salt); without
1036
1036
  // --salt it's null — reporting the freshly-reserved one would be a real-looking value a script
1037
- // could act on that the actual deploy will NOT land at (B1). `saltPinned` still says why.
1037
+ // could act on that the actual deploy will not land at. `saltPinned` still says why.
1038
1038
  emit(jsonSafe({ command: 'deploy', dryRun: true, sent: false, address: explicitSalt ? predicted : null, chain: CHAIN, chainId: resolveChain(CHAIN).id, factory, salt, saltPinned: !!explicitSalt, name, symbol }));
1039
1039
  return;
1040
1040
  }
@@ -1074,7 +1074,7 @@ export async function cmdDeployBody(flags, serveAfter, emit) {
1074
1074
  // was prepared/previewed for (--for) so a different connected wallet can't silently
1075
1075
  // become the owner — the page + server both refuse a mismatched signer.
1076
1076
  expectedSigner: flags.for,
1077
- total: approvals, // B2 — the SAME staging-tx math the preview's `approvals` line reports
1077
+ total: approvals, // the same staging-tx math the preview's `approvals` line reports
1078
1078
  port: flags.port ? Number(flags.port) : undefined,
1079
1079
  signUrlFile: flags['sign-url-file'],
1080
1080
  });
@@ -1299,7 +1299,7 @@ export async function cmdDeployOneOfOneEditionBody(flags, emit) {
1299
1299
  const name = flags.name ?? 'ABX Edition';
1300
1300
  const symbol = flags.symbol ?? 'ABXE';
1301
1301
  const royaltyBps = flags['royalty-bps'] === undefined ? 500 : parseRoyaltyBps(String(flags['royalty-bps']));
1302
- // B45: owner-set royalty ceiling (bps, up to 100%), reduce-only after deploy. Defaults to 10%,
1302
+ // Owner-set royalty ceiling (bps, up to 100%), reduce-only after deploy. Defaults to 10%,
1303
1303
  // auto-raised to fit a higher --royalty-bps so a plausible input never errors; --royalty-cap overrides.
1304
1304
  const maxRoyaltyBps = flags['royalty-cap'] === undefined
1305
1305
  ? Math.max(1000, royaltyBps)
@@ -1673,7 +1673,7 @@ export async function cmdDeploySeriesBody(flags, emit) {
1673
1673
  const name = flags.name ?? 'ABX Series';
1674
1674
  const symbol = flags.symbol ?? 'ABXS';
1675
1675
  const royaltyBps = flags['royalty-bps'] === undefined ? 500 : parseRoyaltyBps(String(flags['royalty-bps']));
1676
- // B45: owner-set royalty ceiling (bps, up to 100%), reduce-only after deploy. Defaults to 10%,
1676
+ // Owner-set royalty ceiling (bps, up to 100%), reduce-only after deploy. Defaults to 10%,
1677
1677
  // auto-raised to fit a higher --royalty-bps so a plausible input never errors; --royalty-cap overrides.
1678
1678
  const maxRoyaltyBps = flags['royalty-cap'] === undefined
1679
1679
  ? Math.max(1000, royaltyBps)
@@ -1823,7 +1823,7 @@ export async function cmdDeploySeriesBody(flags, emit) {
1823
1823
  warn(gwWarn);
1824
1824
  }
1825
1825
  // Wallet-signature count for THIS deploy — the same per-token chunk math that sizes the
1826
- // wallet-lane session `total` below (B2), computed ONCE so preview/confirm text and the real
1826
+ // wallet-lane session `total` below, computed once so preview/confirm text and the real
1827
1827
  // session can never disagree. TX signatures only — see the 1/1's `approvals` for the same note
1828
1828
  // on why an Arweave message signature doesn't add to this count.
1829
1829
  const approvals = onchainImage
@@ -2020,7 +2020,7 @@ export async function cmdDeploySeriesBody(flags, emit) {
2020
2020
  }
2021
2021
  const { clone: predicted, params, salt } = await buildForDeployer(deployer);
2022
2022
  info(`deployer ${deployer}`);
2023
- // B1: without --salt this salt was just freshly randomly reserved a plain re-run gets a
2023
+ // Without --salt this salt was just freshly randomly reserved; a plain re-run gets a
2024
2024
  // DIFFERENT one, so only print the address when --salt pinned it (see the block after the
2025
2025
  // readout for the no-salt case).
2026
2026
  if (explicitSalt)
@@ -2055,12 +2055,12 @@ export async function cmdDeploySeriesBody(flags, emit) {
2055
2055
  info(`token ${tokenId} ← ${fname}: ${await previewImageStaging(path, compress)}`);
2056
2056
  }
2057
2057
  }
2058
- info(`approvals ${approvals} wallet approval(s)`); // B2 — TX signatures only
2058
+ info(`approvals ${approvals} wallet approval(s)`); // TX signatures only
2059
2059
  // storage readiness — what a REAL deploy needs (Arweave credits / Pinata JWT / cloud public base)
2060
2060
  if (offchainImageOnchainJson || (!onChainUri && !onchainImage)) {
2061
2061
  await noteStorageReadiness(opts, tokenPaths.map(({ path }) => statSync(path).size));
2062
2062
  }
2063
- // B1: enforce, don't warn without --salt there is no predicted address to reproduce (see
2063
+ // Enforce, don't warn: without --salt there is no predicted address to reproduce (see
2064
2064
  // above), so print the salt itself, prominently, plus how to pin it.
2065
2065
  if (!explicitSalt) {
2066
2066
  console.log(`\n ${bold('salt')} ${g(salt)}`);
@@ -2069,7 +2069,7 @@ export async function cmdDeploySeriesBody(flags, emit) {
2069
2069
  }
2070
2070
  console.log(`\n ${g('dry run')} ${dim('— nothing sent, no bytes stored.')}\n`);
2071
2071
  // Without --salt, `address` would be a freshly-reserved value a real deploy will NOT land at —
2072
- // report null rather than a real-looking value a script could wrongly act on (B1).
2072
+ // report null rather than a real-looking value a script could wrongly act on.
2073
2073
  emit(jsonSafe({ command: 'deploy-series', dryRun: true, sent: false, address: explicitSalt ? predicted : null, chain: CHAIN, chainId: resolveChain(CHAIN).id, factory, salt, saltPinned: !!explicitSalt, name, symbol }));
2074
2074
  return;
2075
2075
  }
@@ -2098,7 +2098,7 @@ export async function cmdDeploySeriesBody(flags, emit) {
2098
2098
  const session = await openWalletSession({
2099
2099
  chainKey: CHAIN,
2100
2100
  expectedSigner: flags.for,
2101
- total: approvals, // B2 — the SAME staging-tx math the preview's `approvals` line reports
2101
+ total: approvals, // the same staging-tx math the preview's `approvals` line reports
2102
2102
  port: flags.port ? Number(flags.port) : undefined,
2103
2103
  signUrlFile: flags['sign-url-file'],
2104
2104
  });
@@ -2250,7 +2250,7 @@ export async function cmdDeployEditionImageBody(flags, emit) {
2250
2250
  const name = flags.name ?? 'ABX Edition Series';
2251
2251
  const symbol = flags.symbol ?? 'ABXES';
2252
2252
  const royaltyBps = flags['royalty-bps'] === undefined ? 500 : parseRoyaltyBps(String(flags['royalty-bps']));
2253
- // B45: owner-set royalty ceiling (bps, up to 100%), reduce-only after deploy. Defaults to 10%,
2253
+ // Owner-set royalty ceiling (bps, up to 100%), reduce-only after deploy. Defaults to 10%,
2254
2254
  // auto-raised to fit a higher --royalty-bps so a plausible input never errors; --royalty-cap overrides.
2255
2255
  const maxRoyaltyBps = flags['royalty-cap'] === undefined
2256
2256
  ? Math.max(1000, royaltyBps)
@@ -2373,8 +2373,7 @@ export async function cmdDeployEditionImageBody(flags, emit) {
2373
2373
  const backendId = overrides.backend ?? process.env.ABX_STORAGE_BACKEND ?? 'fs';
2374
2374
  // Pattern 2 — image off-chain on a durable backend, JSON rendered on-chain, NOTHING to run. Ported
2375
2375
  // from the 721 Series twin, which has had it all along; `EditionImage` shipped without it, so a
2376
- // multi-work RASTER edition had no no-server option at all and `--onchain-uri` just refused the
2377
- // content. That pushed a cold agent into deploying one contract PER work to get permanence (B28).
2376
+ // multi-work raster edition otherwise has no server-free option.
2378
2377
  // Nothing on-chain needed changing: `EditionImageInitParams` already takes `contractFields`, and the
2379
2378
  // renderer's `url-template` substitutes `{id}` from whatever id it is called with — `uri(id)` on a
2380
2379
  // 1155 reaches it exactly as `tokenURI(id)` does on a 721.
@@ -2422,7 +2421,7 @@ export async function cmdDeployEditionImageBody(flags, emit) {
2422
2421
  const buildFields = async (stage) => {
2423
2422
  // Pattern 1: the bytes themselves on-chain, staged into the shared chunk store per id, each id's
2424
2423
  // field pointing at its manifest. Ported from the 721 Series twin — the edition lane refused this
2425
- // outright before (B28), though nothing on-chain prevented it.
2424
+ // outright before the edition parity work, though nothing on-chain prevented it.
2426
2425
  if (onchainImage) {
2427
2426
  const { fields } = await stageImageFieldsBatch(tokenPaths.map((s) => s.path), compress, stage, flags['chunk-store']);
2428
2427
  tokenPaths.forEach(({ tokenId }, i) => tokenFields.push(tokenFieldOf(tokenId, fields[i])));
@@ -2490,9 +2489,8 @@ export async function cmdDeployEditionImageBody(flags, emit) {
2490
2489
  if (onChainUri) {
2491
2490
  const text = Buffer.from(bytes).toString('utf8');
2492
2491
  if (!looksLikeSvg(text)) {
2493
- // Name the real alternatives, the way the 721 twin's version of this refusal does — a bare
2494
- // "drop --onchain-uri" once sent a cold agent fanning a 3-work edition out into THREE
2495
- // separate contracts to find permanence. The `--backend` route is now the first suggestion
2492
+ // Name the real alternatives, the way the 721 twin's version of this refusal does. The
2493
+ // `--backend` route is the first suggestion
2496
2494
  // because it IS available on this lane (see `offchainImageOnchainJson` above).
2497
2495
  throw new Error(`--onchain-uri inlines SVG only; id ${tokenId} "${fname}" is ${contentType}. For raster content in ONE edition contract:\n` +
2498
2496
  ` • No server, images off-chain: add --backend arweave (or ipfs/cloud) — the image URL is baked into the on-chain JSON\n` +
@@ -2710,8 +2708,7 @@ export async function cmdDeployEditionImageBody(flags, emit) {
2710
2708
  * the canonical factory + seed source from the manifest, fat initialize (the `code`
2711
2709
  * field rides it in directory mode), then ONE post-deploy multicall for the script
2712
2710
  * chunks (template mode) + any PostParam schemas, optional reserve mints, and local
2713
- * register + index. Grown directly from the Sepolia drop rehearsal
2714
- * (`packages/cli/scripts/code-drop-rehearsal.ts`).
2711
+ * register + index.
2715
2712
  *
2716
2713
  * Modes (exactly one):
2717
2714
  * --script <file> template mode — the program stored on-chain in chunks
@@ -2920,8 +2917,8 @@ export const DEPLOY_CODE_FLAGS = new Set([
2920
2917
  'send', 'sign', 'unsigned', 'for', 'salt', 'factory', 'bootstrap-factory', 'sign-url-file',
2921
2918
  // preview / confirm
2922
2919
  'dry-run', 'confirm', 'yes',
2923
- 'json', // B19: the deployed ADDRESS as data, narration to stderr
2924
- 'resume', // B15: finish an EXISTING contract whose setup tx never landed (no deploy)
2920
+ 'json', // the deployed address as data, narration to stderr
2921
+ 'resume', // finish an existing contract whose setup transaction never landed (no deploy)
2925
2922
  ]);
2926
2923
  // Storage + signing + preview flags shared by every deploy path (mirrors storageOverrides() + the lanes).
2927
2924
  export const SHARED_DEPLOY_FLAGS = [
@@ -2940,7 +2937,7 @@ export const SHARED_DEPLOY_FLAGS = [
2940
2937
  'send',
2941
2938
  'sign', 'unsigned', 'for', 'sign-url-file', 'dry-run', 'confirm', 'yes', 'salt', 'factory', 'bootstrap-factory', 'port', 'renderer', 'public-base-url',
2942
2939
  '721c', // opt-in ERC-721C enrollment (recommended | 0x…) — every deploy path takes it
2943
- 'json', // B19: the deployed ADDRESS as data, narration to stderr — every deploy path takes it
2940
+ 'json', // the deployed address as data, narration to stderr — every deploy path takes it
2944
2941
  ];
2945
2942
  // A 1/1 `abx deploy` accepts these (see `abx help deploy`). Anything else warns (typo'd/unsupported).
2946
2943
  export const DEPLOY_FLAGS = new Set([
@@ -3023,7 +3020,7 @@ export async function cmdDeployCodeBody(flags, emit) {
3023
3020
  throw new Error(`--mint-count ${mintCount} exceeds --max ${max}`);
3024
3021
  const paused = flags.unpaused === undefined;
3025
3022
  const royaltyBps = flags['royalty-bps'] === undefined ? 500 : parseRoyaltyBps(String(flags['royalty-bps']));
3026
- // B45: owner-set royalty ceiling (bps, up to 100%), reduce-only after deploy. Defaults to 10%,
3023
+ // Owner-set royalty ceiling (bps, up to 100%), reduce-only after deploy. Defaults to 10%,
3027
3024
  // auto-raised to fit a higher --royalty-bps so a plausible input never errors; --royalty-cap overrides.
3028
3025
  const maxRoyaltyBps = flags['royalty-cap'] === undefined
3029
3026
  ? Math.max(1000, royaltyBps)
@@ -3299,7 +3296,7 @@ export async function cmdDeployCodeBody(flags, emit) {
3299
3296
  // URL changes with the bytes). See the effect runner's deterministic-image lane.
3300
3297
  if (flags['image-base']) {
3301
3298
  const base = String(flags['image-base']);
3302
- // B3 combo #1: --image-base needs a MUTABLE, path-addressed URL (the effect runner overwrites
3299
+ // --image-base needs a mutable, path-addressed URL (the effect runner overwrites
3303
3300
  // the SAME key in place) — a content-addressed gateway URL (ipfs/arweave) can't back a *fixed*
3304
3301
  // per-token address, no matter what THIS deploy's own --backend/ABX_STORAGE_BACKEND happens to
3305
3302
  // be (that config is unrelated — it's where THIS deploy's own uploads go, not where the effect
@@ -3351,7 +3348,7 @@ export async function cmdDeployCodeBody(flags, emit) {
3351
3348
  }
3352
3349
  // --attributes-renderer: bake the on-chain `attributes` field to a `renderer` representation
3353
3350
  // (abi.encode(address)) — traits COMPUTED on-chain in tokenURI by an IAbxFieldRenderer (e.g. a
3354
- // SeedTraitsRenderer fork). Fully on-chain traits, no resolver. See docs/research/onchain-traits-feasibility.md.
3351
+ // SeedTraitsRenderer fork). Fully on-chain traits, no resolver. See site/content/docs/protocol/renderers.mdx.
3355
3352
  if (flags['attributes-renderer']) {
3356
3353
  const addr = String(flags['attributes-renderer']);
3357
3354
  if (!/^0x[0-9a-fA-F]{40}$/.test(addr))
@@ -3490,7 +3487,7 @@ export async function cmdDeployCodeBody(flags, emit) {
3490
3487
  // generator and folds the renderers into init).
3491
3488
  const onchainUriLegs = onChainUri && hasProgram ? onchainUriSetupCalls({ generator, metadataRenderer }) : null;
3492
3489
  const setupMintCount = foldIntoInit ? 0 : mintCount; // folded mints ride init, not the multicall
3493
- // Hoisted once so the confirm text (B2's `approvals` clause below), the dry-run's `transactions:`
3490
+ // Hoisted once so the confirm text, the dry-run's `transactions:`
3494
3491
  // line, and the wallet-lane sign session's `total` (further down) all read the SAME number —
3495
3492
  // previously each re-derived it, and the confirm text's own formula silently disagreed with this
3496
3493
  // one whenever a dependency leg rode the multicall alongside a renderer-only (`foldIntoInit`) fold.
@@ -3544,7 +3541,7 @@ export async function cmdDeployCodeBody(flags, emit) {
3544
3541
  const predicted = salt
3545
3542
  ? (await publicClient.readContract({ address: factory, abi: seriesCodeFactoryAbi, functionName: 'predictDeterministicAddress', args: [salt] }))
3546
3543
  : null;
3547
- // B1: enforce, don't warn without --salt, `salt` above was just freshly randomly reserved
3544
+ // Enforce, don't warn: without --salt, `salt` above was just freshly randomly reserved
3548
3545
  // (saltFor mixes in entropy), so `predicted` is real for THIS preview but not reproducible by a
3549
3546
  // plain re-run. Only show it when --salt actually pinned it; every display site below reads
3550
3547
  // `shownAddr`, never `predicted` directly.
@@ -3614,7 +3611,7 @@ export async function cmdDeployCodeBody(flags, emit) {
3614
3611
  ].filter(Boolean).join('/');
3615
3612
  info(`transactions: ${1 + (setupLen > 0 ? 1 : 0)} (deploy${foldIntoInit ? ' — on-chain-uri wiring + mint fold into it' : ''}${setupLen > 0 ? ` + one setup multicall: ${setupBits}` : ''})` +
3616
3613
  (foldIntoInit && setupLen === 0 ? ` ${dim('— single transaction, fully self-contained')}` : ''));
3617
- info(`approvals ${approvals} wallet approval(s)`); // B2 — TX signatures only, the SAME number the tx-count line above already implies
3614
+ info(`approvals ${approvals} wallet approval(s)`); // TX signatures only; the same number the tx-count line above implies
3618
3615
  // Best-effort cost guidance (owner: a bonus in dry-run, never a blocker — silently skip if the
3619
3616
  // RPC can't price gas; see cli-ux-decisions). On-chain byte storage dominates a template drop,
3620
3617
  // so apply the skill's own ~200 gas/byte heuristic to the stored bytes + coarse per-op costs,
@@ -3713,7 +3710,7 @@ export async function cmdDeployCodeBody(flags, emit) {
3713
3710
  info(` ${dim('that render publishes a URL, so it needs a backend that can name one:')} ${bold('--backend cloud')} ${dim('(S3/R2 + public base) ·')} ${bold('ipfs')} ${dim('·')} ${bold('arweave')} ${dim('— or render co-located with the resolver (`abx effects` on its host).')}`);
3714
3711
  }
3715
3712
  }
3716
- // B3: the one render×storage combo validator (packages/storage/content-plan.ts) the SAME
3713
+ // The render×storage combo validator in packages/storage/content-plan.ts is the same
3717
3714
  // check that already refused a bad --image-base above (real run) — summarized as one row here,
3718
3715
  // so a preview never disagrees with what the real run just enforced (or, for the remote-publish
3719
3716
  // combo, with what `abx render --remote`/`abx effects` enforce later — deploy-code can't know FOR
@@ -3755,7 +3752,7 @@ export async function cmdDeployCodeBody(flags, emit) {
3755
3752
  if (dirUpload)
3756
3753
  await noteStorageReadiness(storageOptions(storageOverrides(flags)), dirUpload.sizes);
3757
3754
  if (deployer && !explicitSalt) {
3758
- // B1: enforce, don't warn no predicted address was shown above (see `shownAddr`), so print
3755
+ // Enforce, don't warn: no predicted address was shown above (see `shownAddr`), so print
3759
3756
  // the one thing that DOES stay true: the salt itself, pinned via --salt (or `abx predict`)
3760
3757
  // reproduces this exact address on the real deploy. `salt` is non-null here — it's only ever
3761
3758
  // null when `deployer` is (see its ternary above), which this branch already checked.
@@ -3769,7 +3766,7 @@ export async function cmdDeployCodeBody(flags, emit) {
3769
3766
  info(`pass ${bold('--for 0x..')} to see the exact deterministic address + a pinned-salt re-run command.`);
3770
3767
  }
3771
3768
  console.log(`\n ${g('dry run')} ${dim('— nothing sent, no bytes stored. Re-run without --dry-run to deploy.')}\n`);
3772
- // `address` is null without --salt pinning it (B1) OR in the wallet lane with no --for (the
3769
+ // `address` is null without --salt pinning it or in the wallet lane with no --for (the
3773
3770
  // signer decides the salt, so no address exists yet) — reporting null is the honest answer;
3774
3771
  // inventing one would be a wrong reservation.
3775
3772
  emit(jsonSafe({ command: 'deploy-code', dryRun: true, sent: false, address: shownAddr, chain: CHAIN, chainId: resolveChain(CHAIN).id, factory, salt: salt ?? null, saltPinned: !!explicitSalt, name, symbol, onChainUri }));
@@ -3866,7 +3863,7 @@ export async function cmdDeployCodeBody(flags, emit) {
3866
3863
  txs.push(prepareCodeSetup({ contract: clone, calls, chainId: cid, chunkCount: scriptChunks.length, chunkBytes: scriptChunks.map((h) => (h.length - 2) / 2), schemaKeys: schemas.map((x) => x.key), deps: deps.map((d) => d.display), onchainUri: onChainUri && hasProgram }));
3867
3864
  return { clone, txs };
3868
3865
  };
3869
- // ── --resume: finish an EXISTING contract, deploy nothing (backlog B15) ─────────────────────
3866
+ // ── --resume: finish an EXISTING contract, deploy nothing ──────────────────────────────────
3870
3867
  // A code deploy is two transactions. When the second fails you own a live-but-unusable contract and
3871
3868
  // the salt reserved for its address is spent, so the dry run's pinned-salt reproduce command can
3872
3869
  // never be run again. The contract is recoverable, not lost — a tester proved that by resending the
@@ -4021,8 +4018,8 @@ export async function cmdDeployCodeBody(flags, emit) {
4021
4018
  }
4022
4019
  if (lane === 'sign') {
4023
4020
  // wallet lane: one session approves the deploy + the setup multicall (+ mints ride the
4024
- // multicall — msg.sender is preserved, so owner-auth holds). `total: approvals` (not a bare `2`)
4025
- // B2 found this hardcoded to 2 even though `preparedFor` sends just the ONE deploy tx whenever
4021
+ // multicall — msg.sender is preserved, so owner-auth holds). Use `total: approvals` instead of
4022
+ // a bare `2`, because `preparedFor` sends just one deploy transaction whenever
4026
4023
  // setupLen is 0 (no chunks/schemas/deps/on-chain-uri legs/setup-carried mints); the sign page
4027
4024
  // would have shown "Transaction 1 of 2" and then silently never asked for a second. `approvals`
4028
4025
  // is computed with the exact same `setupLen` math `preparedFor`'s own tx-count uses, so it can't
@@ -4211,9 +4208,7 @@ export async function cmdDeployEditionCodeBody(flags, emit) {
4211
4208
  // The in-chain Solidity renderer lane, same as the 721 twin: EditionCode composes the same
4212
4209
  // OnChainMetadata extension and the same URI-renderer slots, so `image`/`attributes` at a
4213
4210
  // `renderer` representation resolve through the canonical metadata renderer with no server in the
4214
- // graph. Proven end-to-end in contracts/test/EditionOnChainRender.t.sol. A 2026-08-24 field report
4215
- // read the old blanket refusal as a PROTOCOL limit and shipped a 721 workaround for what should
4216
- // have been a true 1155.
4211
+ // graph. Proven end-to-end in contracts/test/EditionOnChainRender.t.sol.
4217
4212
  const imageRendererFlag = flags['image-renderer'] ? String(flags['image-renderer']) : undefined;
4218
4213
  const attributesRendererFlag = flags['attributes-renderer'] ? String(flags['attributes-renderer']) : undefined;
4219
4214
  const hasProgram = !!flags.script;
@@ -4250,7 +4245,7 @@ export async function cmdDeployEditionCodeBody(flags, emit) {
4250
4245
  }
4251
4246
  const paused = flags.unpaused === undefined;
4252
4247
  const royaltyBps = flags['royalty-bps'] === undefined ? 500 : parseRoyaltyBps(String(flags['royalty-bps']));
4253
- // B45: owner-set royalty ceiling (bps, up to 100%), reduce-only after deploy. Defaults to 10%,
4248
+ // Owner-set royalty ceiling (bps, up to 100%), reduce-only after deploy. Defaults to 10%,
4254
4249
  // auto-raised to fit a higher --royalty-bps so a plausible input never errors; --royalty-cap overrides.
4255
4250
  const maxRoyaltyBps = flags['royalty-cap'] === undefined
4256
4251
  ? Math.max(1000, royaltyBps)
@@ -4344,7 +4339,7 @@ export async function cmdDeployEditionCodeBody(flags, emit) {
4344
4339
  // Dependencies — same shape as the 721 SeriesCode twin (see its block for the full reasoning).
4345
4340
  // `EditionCode` already inherits the `Dependencies` extension and calls `_initDependencies()`, and
4346
4341
  // the legs are the same `setDependency`/`setDependencyRegistry` calls on the same ABI, so this was
4347
- // never a contract gap: only the CLI refused it (B28). It matters because "an edition of my p5
4342
+ // never a contract gap: only the CLI refused it. It matters because "an edition of my p5
4348
4343
  // sketch, with p5 coming from the chain" is a thing creators ask for directly, and the refusal sent
4349
4344
  // them to the 721 lane (unique tokens) or to shipping a sketch whose library never loads.
4350
4345
  const deps = parseDepFlag(flags.dep);