@artblocks/abx-cli 0.1.0-alpha.16 → 0.1.0-alpha.18

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 (116) hide show
  1. package/CHANGELOG.md +385 -0
  2. package/dist/commands/deploy.d.ts +181 -0
  3. package/dist/commands/deploy.d.ts.map +1 -0
  4. package/dist/commands/deploy.js +2974 -0
  5. package/dist/commands/deploy.js.map +1 -0
  6. package/dist/commands/project.d.ts +134 -0
  7. package/dist/commands/project.d.ts.map +1 -0
  8. package/dist/commands/project.js +919 -0
  9. package/dist/commands/project.js.map +1 -0
  10. package/dist/commands/reads.d.ts +64 -0
  11. package/dist/commands/reads.d.ts.map +1 -0
  12. package/dist/commands/reads.js +635 -0
  13. package/dist/commands/reads.js.map +1 -0
  14. package/dist/commands/scaffold.d.ts +55 -0
  15. package/dist/commands/scaffold.d.ts.map +1 -0
  16. package/dist/commands/scaffold.js +470 -0
  17. package/dist/commands/scaffold.js.map +1 -0
  18. package/dist/commands/service.d.ts +41 -0
  19. package/dist/commands/service.d.ts.map +1 -0
  20. package/dist/commands/service.js +572 -0
  21. package/dist/commands/service.js.map +1 -0
  22. package/dist/commands/storage.d.ts +37 -0
  23. package/dist/commands/storage.d.ts.map +1 -0
  24. package/dist/commands/storage.js +335 -0
  25. package/dist/commands/storage.js.map +1 -0
  26. package/dist/config.d.ts +72 -2
  27. package/dist/config.d.ts.map +1 -1
  28. package/dist/config.js +201 -4
  29. package/dist/config.js.map +1 -1
  30. package/dist/deps.d.ts +6 -39
  31. package/dist/deps.d.ts.map +1 -1
  32. package/dist/deps.js +4 -68
  33. package/dist/deps.js.map +1 -1
  34. package/dist/errors.d.ts +20 -0
  35. package/dist/errors.d.ts.map +1 -0
  36. package/dist/errors.js +25 -0
  37. package/dist/errors.js.map +1 -0
  38. package/dist/flags.d.ts +34 -0
  39. package/dist/flags.d.ts.map +1 -1
  40. package/dist/flags.js +74 -0
  41. package/dist/flags.js.map +1 -1
  42. package/dist/jsonout.d.ts +37 -0
  43. package/dist/jsonout.d.ts.map +1 -0
  44. package/dist/jsonout.js +68 -0
  45. package/dist/jsonout.js.map +1 -0
  46. package/dist/main.js +133 -6223
  47. package/dist/main.js.map +1 -1
  48. package/dist/mintpage.d.ts.map +1 -1
  49. package/dist/mintpage.js +34 -40
  50. package/dist/mintpage.js.map +1 -1
  51. package/dist/output.d.ts +137 -0
  52. package/dist/output.d.ts.map +1 -0
  53. package/dist/output.js +504 -0
  54. package/dist/output.js.map +1 -0
  55. package/dist/ownerops.d.ts +37 -44
  56. package/dist/ownerops.d.ts.map +1 -1
  57. package/dist/ownerops.js +274 -233
  58. package/dist/ownerops.js.map +1 -1
  59. package/dist/preview.d.ts +8 -4
  60. package/dist/preview.d.ts.map +1 -1
  61. package/dist/preview.js +8 -17
  62. package/dist/preview.js.map +1 -1
  63. package/dist/provision.d.ts.map +1 -1
  64. package/dist/provision.js +10 -7
  65. package/dist/provision.js.map +1 -1
  66. package/dist/remote.d.ts +72 -7
  67. package/dist/remote.d.ts.map +1 -1
  68. package/dist/remote.js +211 -9
  69. package/dist/remote.js.map +1 -1
  70. package/dist/riskgate.d.ts +29 -0
  71. package/dist/riskgate.d.ts.map +1 -0
  72. package/dist/riskgate.js +91 -0
  73. package/dist/riskgate.js.map +1 -0
  74. package/dist/schema.d.ts +6 -0
  75. package/dist/schema.d.ts.map +1 -1
  76. package/dist/schema.js +12 -16
  77. package/dist/schema.js.map +1 -1
  78. package/dist/served.d.ts +30 -0
  79. package/dist/served.d.ts.map +1 -0
  80. package/dist/served.js +112 -0
  81. package/dist/served.js.map +1 -0
  82. package/dist/signer.d.ts +13 -0
  83. package/dist/signer.d.ts.map +1 -1
  84. package/dist/signer.js +42 -19
  85. package/dist/signer.js.map +1 -1
  86. package/dist/update-check.d.ts +27 -0
  87. package/dist/update-check.d.ts.map +1 -1
  88. package/dist/update-check.js +30 -0
  89. package/dist/update-check.js.map +1 -1
  90. package/package.json +6 -6
  91. package/skill/SKILL.md +9 -13
  92. package/skill/reference/code-projects.md +7 -6
  93. package/skill/reference/hosting.md +6 -6
  94. package/skill/reference/operating.md +2 -5
  95. package/skill/reference/setup.md +4 -3
  96. package/skill/reference/troubleshooting.md +14 -1
  97. package/dist/gas.d.ts +0 -63
  98. package/dist/gas.d.ts.map +0 -1
  99. package/dist/gas.js +0 -76
  100. package/dist/gas.js.map +0 -1
  101. package/dist/inspect.d.ts +0 -48
  102. package/dist/inspect.d.ts.map +0 -1
  103. package/dist/inspect.js +0 -290
  104. package/dist/inspect.js.map +0 -1
  105. package/dist/migrate.d.ts +0 -65
  106. package/dist/migrate.d.ts.map +0 -1
  107. package/dist/migrate.js +0 -180
  108. package/dist/migrate.js.map +0 -1
  109. package/dist/onchain-uri.d.ts +0 -81
  110. package/dist/onchain-uri.d.ts.map +0 -1
  111. package/dist/onchain-uri.js +0 -251
  112. package/dist/onchain-uri.js.map +0 -1
  113. package/dist/upload.d.ts +0 -28
  114. package/dist/upload.d.ts.map +0 -1
  115. package/dist/upload.js +0 -41
  116. package/dist/upload.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mintpage.d.ts","sourceRoot":"","sources":["../src/mintpage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,cAAc,EAAE,MAAM,CAAC;IACvB,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IAC9C,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,uFAAuF;AACvF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAG7C,CAAC;AAubF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,eAAe,GAAG,gBAAgB,CA0BrE"}
1
+ {"version":3,"file":"mintpage.d.ts","sourceRoot":"","sources":["../src/mintpage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,cAAc,EAAE,MAAM,CAAC;IACvB,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IAC9C,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,uFAAuF;AACvF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAG7C,CAAC;AAgbF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,eAAe,GAAG,gBAAgB,CA0BrE"}
package/dist/mintpage.js CHANGED
@@ -19,6 +19,7 @@
19
19
  * Pure module: returns the artifact files + the exact next-step commands. The CLI writes the files and
20
20
  * prints the steps; `vercel` / `next dev` run in the creator's own account/machine — they own that step.
21
21
  */
22
+ import { readSdkVersion } from './update-check.js';
22
23
  /** Public, keyless RPCs safe to embed in a public site. Extend as chains are added. */
23
24
  export const PUBLIC_RPC = {
24
25
  1: 'https://ethereum-rpc.publicnode.com',
@@ -43,6 +44,11 @@ function packageJson(o) {
43
44
  react: '^19.0.0',
44
45
  'react-dom': '^19.0.0',
45
46
  viem: '^2.21.0',
47
+ // Pinned to THIS CLI's own version, caret-ranged — the CLI and sdk version-bump together in
48
+ // this repo's changesets flow, so "the version that scaffolded this app" is exactly the
49
+ // floor that's guaranteed to have makePublicClient/readSaleConfig/the `/abi` subpath (this
50
+ // refactor). INVARIANT: an sdk older than that will be missing one of those exports.
51
+ '@artblocks/abx-sdk': '^' + readSdkVersion(),
46
52
  },
47
53
  devDependencies: {
48
54
  typescript: '^5.6.0',
@@ -130,41 +136,37 @@ export const chain = defineChain({
130
136
  rpcUrls: {default: {http: [RPC_URL]}},
131
137
  });
132
138
  `;
133
- const LIB_ABI = `// Minimal ABIs only what the mint page reads/writes.
134
- export const minterAbi = [
135
- {
136
- type: 'function',
137
- name: 'sales',
138
- stateMutability: 'view',
139
- inputs: [{name: 'token', type: 'address'}],
140
- outputs: [
141
- {name: 'configured', type: 'bool'},
142
- {name: 'paymentToken', type: 'address'},
143
- {name: 'price', type: 'uint256'},
144
- {name: 'allocation', type: 'uint256'},
145
- {name: 'sold', type: 'uint256'},
146
- ],
147
- },
148
- {type: 'function', name: 'purchase', stateMutability: 'payable', inputs: [{name: 'token', type: 'address'}], outputs: [{name: 'tokenId', type: 'uint256'}]},
149
- {type: 'function', name: 'purchaseTo', stateMutability: 'payable', inputs: [{name: 'token', type: 'address'}, {name: 'to', type: 'address'}], outputs: [{name: 'tokenId', type: 'uint256'}]},
150
- ] as const;
139
+ const LIB_ABI = `// Minter + token ABIs, sourced from the shared SDK instead of hand-typed here — one definition
140
+ // that tracks the deployed contracts (the ABX repo's 'pnpm sync-abis' regenerates it from the
141
+ // contracts themselves), so this file can never drift the way a hand-copied fragment can.
142
+ //
143
+ // name / totalSupply / maxInvocations / paused / tokenURI are identical fragments on every ABX
144
+ // Series contract type (Image or Code) — importing both and spreading is harmless (duplicate
145
+ // fragments, byte-identical shape) and keeps this working whichever Series type backs your
146
+ // collection, without this app needing to know which one it is.
147
+ // (A rename re-export — 'export {x as y} from …' of a subpath import tripped up Next's bundler
148
+ // here; a plain import + local const assignment is the form that survives the production build.)
149
+ import {abxFixedPriceMinterAbi, seriesImageAbi, seriesCodeAbi} from '@artblocks/abx-sdk/abi';
151
150
 
152
- export const tokenAbi = [
153
- {type: 'function', name: 'name', stateMutability: 'view', inputs: [], outputs: [{type: 'string'}]},
154
- {type: 'function', name: 'totalSupply', stateMutability: 'view', inputs: [], outputs: [{type: 'uint256'}]},
155
- {type: 'function', name: 'maxInvocations', stateMutability: 'view', inputs: [], outputs: [{type: 'uint256'}]},
156
- {type: 'function', name: 'paused', stateMutability: 'view', inputs: [], outputs: [{type: 'bool'}]},
157
- {type: 'function', name: 'tokenURI', stateMutability: 'view', inputs: [{name: 'id', type: 'uint256'}], outputs: [{type: 'string'}]},
158
- ] as const;
151
+ export const minterAbi = abxFixedPriceMinterAbi;
152
+ export const tokenAbi = [...seriesImageAbi, ...seriesCodeAbi] as const;
159
153
  `;
160
154
  const LIB_META = `// Read a token's image + name from tokenURI(id), directly from chain. Handles data: URIs
161
155
  // (on-chain tokens) and http/ipfs/ar locators (off-chain custody). No backend.
162
- import {createPublicClient, http} from 'viem';
163
- import {chain} from './chain';
164
- import {TOKEN} from './config';
156
+ //
157
+ // The read client is the SDK's browser-safe makePublicClient, given an EXPLICIT rpcUrls list —
158
+ // never env resolution (there is no server .env in a static site, and the SDK's own
159
+ // ABX_RPC_URLS/ABX_CHAIN conventions would silently no-op in a browser bundle anyway; an explicit
160
+ // override short-circuits that lookup entirely). One URL behaves exactly like a plain http()
161
+ // transport; paste a comma-separated NEXT_PUBLIC_RPC_URL to get the same fallback-transport
162
+ // failover the CLI/indexer get. Its attached chain metadata is the SDK's own default and is
163
+ // informational only for these plain reads — the WALLET's chain (used for the mint tx) is the one
164
+ // built in ./chain from your real NEXT_PUBLIC_CHAIN_ID/NAME, unaffected by this.
165
+ import {makePublicClient} from '@artblocks/abx-sdk';
166
+ import {RPC_URL, TOKEN} from './config';
165
167
  import {tokenAbi} from './abi';
166
168
 
167
- export const publicClient = createPublicClient({chain, transport: http()});
169
+ export const publicClient = makePublicClient({rpcUrls: RPC_URL.split(',').map((u) => u.trim()).filter(Boolean)});
168
170
 
169
171
  export function toGateway(u: string): string {
170
172
  if (!u) return '';
@@ -252,22 +254,15 @@ const APP_MINT_CLIENT = `'use client';
252
254
  import {useCallback, useEffect, useState} from 'react';
253
255
  import {createWalletClient, custom, formatEther} from 'viem';
254
256
  import {chain} from '../lib/chain';
257
+ import {readSaleConfig, type SaleConfig} from '@artblocks/abx-sdk';
255
258
  import {CHAIN_ID, CHAIN_NAME, COLLECTION_NAME, EXPLORER, MINTER, PAGE_SIZE, TOKEN} from '../lib/config';
256
259
  import {minterAbi, tokenAbi} from '../lib/abi';
257
260
  import {publicClient, readTokenMeta, type TokenMeta} from '../lib/meta';
258
261
 
259
262
  const ZERO = '0x0000000000000000000000000000000000000000';
260
263
 
261
- interface Sale {
262
- configured: boolean;
263
- paymentToken: string;
264
- price: bigint;
265
- allocation: bigint;
266
- sold: bigint;
267
- }
268
-
269
264
  export default function Mint() {
270
- const [sale, setSale] = useState<Sale | null>(null);
265
+ const [sale, setSale] = useState<SaleConfig | null>(null);
271
266
  const [supply, setSupply] = useState(0);
272
267
  const [maxInv, setMaxInv] = useState(0);
273
268
  const [paused, setPaused] = useState(false);
@@ -278,8 +273,7 @@ export default function Mint() {
278
273
  const [msg, setMsg] = useState('');
279
274
 
280
275
  const refresh = useCallback(async () => {
281
- const s = (await publicClient.readContract({address: MINTER, abi: minterAbi, functionName: 'sales', args: [TOKEN]})) as any;
282
- setSale({configured: s[0], paymentToken: s[1], price: s[2], allocation: s[3], sold: s[4]});
276
+ setSale(await readSaleConfig(publicClient, MINTER, TOKEN));
283
277
  const [ts, mx, pz] = await Promise.all([
284
278
  publicClient.readContract({address: TOKEN, abi: tokenAbi, functionName: 'totalSupply'}),
285
279
  publicClient.readContract({address: TOKEN, abi: tokenAbi, functionName: 'maxInvocations'}),
@@ -1 +1 @@
1
- {"version":3,"file":"mintpage.js","sourceRoot":"","sources":["../src/mintpage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAsBH,uFAAuF;AACvF,MAAM,CAAC,MAAM,UAAU,GAA2B;IAChD,CAAC,EAAE,qCAAqC;IACxC,QAAQ,EAAE,6CAA6C;CACxD,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE,CACjC,CAAC;KACE,WAAW,EAAE;KACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;KAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC;AAEtC,iFAAiF;AACjF,gGAAgG;AAChG,kGAAkG;AAClG,uDAAuD;AAEvD,SAAS,WAAW,CAAC,CAAkB;IACrC,OAAO,IAAI,CAAC,SAAS,CACnB;QACE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,OAAO;QACtC,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,EAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAC;QACpE,YAAY,EAAE;YACZ,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,SAAS;YACtB,IAAI,EAAE,SAAS;SAChB;QACD,eAAe,EAAE;YACf,UAAU,EAAE,QAAQ;YACpB,aAAa,EAAE,SAAS;YACxB,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;SAC9B;KACF,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG;;;;;CAKnB,CAAC;AAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAC7B;IACE,eAAe,EAAE;QACf,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC;QACtC,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,IAAI;QACrB,MAAM,EAAE,QAAQ;QAChB,gBAAgB,EAAE,SAAS;QAC3B,iBAAiB,EAAE,IAAI;QACvB,eAAe,EAAE,IAAI;QACrB,GAAG,EAAE,UAAU;QACf,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;QACzB,KAAK,EAAE,EAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAC;KACxB;IACD,OAAO,EAAE,CAAC,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,qBAAqB,CAAC;IACxE,OAAO,EAAE,CAAC,cAAc,CAAC;CAC1B,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AAEF,MAAM,QAAQ,GAAG;;;CAGhB,CAAC;AAEF,MAAM,SAAS,GAAG;;;;;;;CAOjB,CAAC;AAEF,SAAS,OAAO,CAAC,CAAkB;IACjC,OAAO,CACL,uBAAuB;QACvB,CAAC,CAAC,OAAO;QACT,2BAA2B;QAC3B,CAAC,CAAC,SAAS;QACX,4FAA4F;QAC5F,sBAAsB;QACtB,CAAC,CAAC,MAAM;QACR,sBAAsB;QACtB,CAAC,CAAC,KAAK;QACP,uBAAuB;QACvB,CAAC,CAAC,MAAM;QACR,gCAAgC;QAChC,CAAC,CAAC,cAAc;QAChB,yBAAyB;QACzB,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;QAClB,IAAI,CACL,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG;;;;;;;;;CASlB,CAAC;AAEF,MAAM,SAAS,GAAG;;;;;;;;;;CAUjB,CAAC;AAEF,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Bf,CAAC;AAEF,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuChB,CAAC;AAEF,MAAM,UAAU,GAAG;;;;;;;;;;;;;CAalB,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BnB,CAAC;AAEF,MAAM,QAAQ,GAAG;;;;CAIhB,CAAC;AAEF,4FAA4F;AAC5F,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6JvB,CAAC;AAEF,SAAS,MAAM,CAAC,CAAkB;IAChC,OAAO,CACL,IAAI;QACJ,CAAC,CAAC,cAAc;QAChB,kBAAkB;QAClB,6DAA6D;QAC7D,CAAC,CAAC,KAAK;QACP,6CAA6C;QAC7C,CAAC,CAAC,MAAM;QACR,OAAO;QACP,CAAC,CAAC,SAAS;QACX,qCAAqC;QACrC,uBAAuB;QACvB,yEAAyE;QACzE,mIAAmI;QACnI,sCAAsC;QACtC,yHAAyH;QACzH,sMAAsM;QACtM,6CAA6C;QAC7C,2HAA2H;QAC3H,mNAAmN;QACnN,2JAA2J;QAC3J,2MAA2M;QAC3M,oDAAoD;QACpD,2IAA2I,CAC5I,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAkB;IACjD,OAAO;QACL,KAAK,EAAE;YACL,EAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAC;YAC/C,EAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,EAAC;YAC/C,EAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAC;YAC1C,EAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAC;YAC1C,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAC;YACxC,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAC;YACzC,EAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,EAAC,GAAG,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAC,CAAC,EAAC;YAC7F,EAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAC;YAC5C,EAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAC;YAC1C,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAC;YACtC,EAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAC;YACxC,EAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,EAAC;YAC/C,EAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAC;YAC7C,EAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAC;YACzC,EAAC,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,eAAe,EAAC;YACvD,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAC;SACxC;QACD,KAAK,EAAE;YACL,aAAa;YACb,2DAA2D;YAC3D,kGAAkG;SACnG;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"mintpage.js","sourceRoot":"","sources":["../src/mintpage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,137 @@
1
+ import { SelfHostIndexer } from '@artblocks/abx-indexer';
2
+ import { type Address, type ProjectState, type PublicClient, type SendTx } from '@artblocks/abx-sdk';
3
+ import { type Flags } from './flags.js';
4
+ export declare const c: {
5
+ reset: string;
6
+ dim: string;
7
+ bold: string;
8
+ green: string;
9
+ purple: string;
10
+ orange: string;
11
+ red: string;
12
+ };
13
+ export declare const g: (s: string) => string;
14
+ export declare const p: (s: string) => string;
15
+ export declare const dim: (s: string) => string;
16
+ export declare const bold: (s: string) => string;
17
+ export declare let stepN: number;
18
+ export declare const step: (s: string) => void;
19
+ export declare const ok: (s: string) => void;
20
+ export declare const info: (s: string) => void;
21
+ export declare const warn: (s: string) => void;
22
+ export declare function allowLargeScan(flags: Flags): void;
23
+ /**
24
+ * Resolve the scan floor (fromBlock) for an add/index — the CLI-side shell around the SDK's
25
+ * {@link sdkResolveScanFloor}: builds the client, forwards `--from-block`, and narrates its two
26
+ * possible events (the SDK never prints). See the SDK function's doc comment for the "why" (never
27
+ * a silent genesis default).
28
+ */
29
+ export declare function resolveScanFloor(address: Address, localFromBlock: string | undefined, flags: Flags): Promise<string>;
30
+ /**
31
+ * The trust-anchor gate: a factory is THE address platforms allowlist by, so a missing
32
+ * manifest entry must NEVER silently mint a new "canonical" — that fragments trust (and
33
+ * a stale SDK would duplicate factories on real chains). Degrade to guidance; deploying
34
+ * a private trust anchor is an explicit choice (`--bootstrap-factory`).
35
+ */
36
+ export declare function refuseMissingFactory(kind: string, envVar: string, reason: string): never;
37
+ /** A `SendTx` that defers `makeWalletClient`/`makeHotSender` construction until the first actual
38
+ * send — trust-anchor bootstrap is rare (an existing, current anchor is the common case), so the
39
+ * happy path must never require a signing key. Memoized so a multi-tx bootstrap (the SeriesCode
40
+ * factory: 2 libraries + the linked factory itself) reuses ONE sender — and its nonce tracking —
41
+ * rather than a fresh one per send. */
42
+ export declare function lazyBootstrapSender(publicClient: PublicClient): SendTx;
43
+ /** Get (or deploy) the chain's canonical 1/1 clone factory — narrates the SDK's `ensureFactory`
44
+ * (anchors.ts), which owns the resolve/verify/bootstrap logic; this keeps only the exact console
45
+ * output plus the exit-messaging refusal (`refuseMissingFactory`), which stays CLI-side since the
46
+ * SDK doesn't know a UX's flag names. `quiet` suppresses only the happy-path reuse line (the demo
47
+ * resolves the factory without making a teaching moment of it) — everything else always prints. */
48
+ export declare function ensureFactory(override?: string, allowBootstrap?: boolean, quiet?: boolean): Promise<Address>;
49
+ /** Get (or deploy) the chain's `SeriesImageFactory` — the sibling of {@link ensureFactory}.
50
+ * Narrates the SDK's `ensureSeriesFactory` (anchors.ts), which owns the resolve/verify/bootstrap
51
+ * logic. */
52
+ export declare function ensureSeriesFactory(override?: string, allowBootstrap?: boolean): Promise<Address>;
53
+ /** Get (or deploy) the chain's shared `AbxMetadataRenderer` — narrates the SDK's `ensureRenderer`
54
+ * (anchors.ts), which also self-heals to the CREATE2-deterministic address before deploying. No
55
+ * `allowBootstrap` gate here (unlike the three clone factories) — the renderer isn't a platform
56
+ * allowlist entry, so there's nothing to refuse; a stale/missing one always just gets redeployed. */
57
+ export declare function ensureRenderer(override?: string): Promise<Address>;
58
+ /** The code-project trust anchor — narrates the SDK's `ensureSeriesCodeFactory` (anchors.ts),
59
+ * which owns the resolve/bootstrap logic (a sandbox / fresh chain links + deploys the two
60
+ * write-path libraries then the factory in-flight; see {@link deploySeriesCodeFactory}). */
61
+ export declare function ensureSeriesCodeFactory(publicClient: PublicClient, override?: string, allowBootstrap?: boolean): Promise<Address>;
62
+ /** The canonical seed source — narrates the SDK's `ensureSeedSource` (anchors.ts): a clean keyless
63
+ * singleton (like the renderer / chunk store / minter), so CREATE2 lands at THE canonical address
64
+ * on any chain. Resolves from the manifest, self-heals to the predicted address (deployed but not
65
+ * yet repointed), else auto-deploys via CREATE2. */
66
+ export declare function ensureSeedSource(publicClient: PublicClient): Promise<Address>;
67
+ /**
68
+ * Refuse a port that's already bound, with a formatted one-liner naming the port and the fix.
69
+ *
70
+ * Without this, `listen()` has no `'error'` handler and EADDRINUSE reaches Node's default handler:
71
+ * the creator gets a raw stack trace through `node:net` and our own `dist/` paths, which reads as a
72
+ * crash inside abx rather than "something else is on this port" — and it's the one unformatted error
73
+ * surface in a CLI where every other error is formatted. `preview`'s default port colliding with a
74
+ * studio left running in another terminal was reported as especially hard to diagnose.
75
+ */
76
+ export declare function assertPortFree(port: number, cmd: string): Promise<void>;
77
+ /** Is a TCP port already bound on localhost? Used to preflight a serve BEFORE spending a tx. */
78
+ export declare function portInUse(port: number): Promise<boolean>;
79
+ /**
80
+ * Index a project we *just* deployed — and don't believe a zero.
81
+ *
82
+ * `eth_getLogs` is read-after-write inconsistent on load-balanced RPCs: `waitForTransactionReceipt`
83
+ * resolves against a node that has the block, then the log query lands on one that doesn't yet, and
84
+ * returns an empty set for a block we KNOW contains our deploy. The old code took that single read at
85
+ * face value, printed `✓ reconstructed 0 events`, stored the empty projection, and served an empty
86
+ * dashboard — a first-run that looks like the toolkit simply doesn't work. It reproduced 100% of the
87
+ * time on `https://sepolia.base.org`, which is the DEFAULT endpoint when there's no `.env`, i.e. the
88
+ * documented first run was the broken path. The same block returned all 9 logs seconds later.
89
+ *
90
+ * We have the one thing that makes this checkable: we just minted, so the spine cannot be empty.
91
+ * So verify instead of trusting — re-scan with backoff until events appear, and if they never do,
92
+ * say so as a FAILURE with the recovery command rather than dressing a zero up as a ✓.
93
+ */
94
+ export declare function reindexAfterDeploy(indexer: SelfHostIndexer, address: Address, opts?: {
95
+ attempts?: number;
96
+ delayMs?: number;
97
+ }): Promise<{
98
+ state: ProjectState;
99
+ elapsedMs: number;
100
+ }>;
101
+ export declare function loadEffects(): Promise<typeof import('@artblocks/abx-effects')>;
102
+ /**
103
+ * The publish topology's one hard prerequisite, checked BEFORE any capture.
104
+ *
105
+ * A resolver that doesn't share this machine's disk serves referenced output (the still, a video, a
106
+ * model) by **redirect** — so it needs a URL, and it refuses the bytes (`specs/protocol/effects.md →
107
+ * Bound vs referenced`). A backend that can't name a locator therefore has no publish lane at all,
108
+ * and every render against one would be work spent to earn a 400.
109
+ *
110
+ * So this refuses up front and names the ways out, rather than warning and letting the render run.
111
+ * It deliberately does NOT pick a backend for the operator: which store holds their art — and which
112
+ * gateway serves it — is theirs to decide. The three that work are peers, not a ranking: `https://`
113
+ * from S3/R2, an IPFS gateway, and Arweave are all fine, because derived output is re-creatable and
114
+ * the only real requirement is that a third party can fetch it.
115
+ */
116
+ export declare function requirePublishableBackend(flags: Flags, what: string): void;
117
+ export declare function printServing(url: string, address?: Address): void;
118
+ /** Walk up from the CLI source to the workspace root (the dir with pnpm-workspace.yaml). Returns
119
+ * null when running from a published install (no workspace) — where --from-source doesn't apply. */
120
+ export declare function findRepoRoot(): string | null;
121
+ export declare function keepAlive(): Promise<void>;
122
+ /**
123
+ * Pick the canonical factory for a clone being added — the CLI-side shell around the SDK's
124
+ * {@link sdkDetectCanonicalFactory} (which does the actual multicall probe; see its doc comment).
125
+ * Shared by `add`'s local + remote paths (project.ts) and the deploy family's post-setup local
126
+ * register (deploy.ts, via {@link registerAndIndexLocally}).
127
+ */
128
+ export declare function detectCanonicalFactory(address: Address, override?: string, stored?: string | null): Promise<Address | undefined>;
129
+ /**
130
+ * Register + index a project LOCALLY (this node's own SQLite-backed projection) — the core of
131
+ * `abx add`'s non-`--remote` path, factored out here because it's ALSO how `deploy` / `deploy-series`
132
+ * / `deploy-code` register the project they just deployed (see cmdAdd in commands/project.ts, whose
133
+ * local branch is a thin call to this). Kept self-sufficient (recomputes any `--attributes`/`--traits`
134
+ * edit from `flags` itself) so it never depends on a caller's local variables.
135
+ */
136
+ export declare function registerAndIndexLocally(address: Address, flags: Flags): Promise<void>;
137
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}