@artblocks/abx-cli 0.1.0-alpha.21 → 0.1.0-alpha.23

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 (70) hide show
  1. package/CHANGELOG.md +906 -0
  2. package/assets/renderer-scaffold/README.md +2 -2
  3. package/assets/renderer-scaffold/src/MyRenderer.sol +2 -2
  4. package/assets/renderer-scaffold/src/interfaces/IAbxFieldRenderer.sol +1 -1
  5. package/assets/renderer-scaffold/src/interfaces/IAbxParams.sol +2 -2
  6. package/assets/renderer-scaffold/test/MyRenderer.t.sol +1 -1
  7. package/dist/commands/deploy.d.ts +30 -17
  8. package/dist/commands/deploy.d.ts.map +1 -1
  9. package/dist/commands/deploy.js +234 -97
  10. package/dist/commands/deploy.js.map +1 -1
  11. package/dist/commands/project.d.ts +16 -0
  12. package/dist/commands/project.d.ts.map +1 -1
  13. package/dist/commands/project.js +150 -10
  14. package/dist/commands/project.js.map +1 -1
  15. package/dist/commands/reads.d.ts.map +1 -1
  16. package/dist/commands/reads.js +8 -4
  17. package/dist/commands/reads.js.map +1 -1
  18. package/dist/commands/scaffold.d.ts +3 -1
  19. package/dist/commands/scaffold.d.ts.map +1 -1
  20. package/dist/commands/scaffold.js +64 -20
  21. package/dist/commands/scaffold.js.map +1 -1
  22. package/dist/commands/service.js +1 -1
  23. package/dist/commands/service.js.map +1 -1
  24. package/dist/commands/submit-app.d.ts +58 -0
  25. package/dist/commands/submit-app.d.ts.map +1 -0
  26. package/dist/commands/submit-app.js +512 -0
  27. package/dist/commands/submit-app.js.map +1 -0
  28. package/dist/config.d.ts +1 -15
  29. package/dist/config.d.ts.map +1 -1
  30. package/dist/config.js +18 -1
  31. package/dist/config.js.map +1 -1
  32. package/dist/flag-allowlists.d.ts.map +1 -1
  33. package/dist/flag-allowlists.js +5 -1
  34. package/dist/flag-allowlists.js.map +1 -1
  35. package/dist/flags.d.ts +4 -0
  36. package/dist/flags.d.ts.map +1 -1
  37. package/dist/flags.js +23 -0
  38. package/dist/flags.js.map +1 -1
  39. package/dist/main.js +125 -37
  40. package/dist/main.js.map +1 -1
  41. package/dist/mintpage.d.ts.map +1 -1
  42. package/dist/mintpage.js +29 -4
  43. package/dist/mintpage.js.map +1 -1
  44. package/dist/output.d.ts +32 -1
  45. package/dist/output.d.ts.map +1 -1
  46. package/dist/output.js +74 -9
  47. package/dist/output.js.map +1 -1
  48. package/dist/ownerops.d.ts +101 -13
  49. package/dist/ownerops.d.ts.map +1 -1
  50. package/dist/ownerops.js +357 -89
  51. package/dist/ownerops.js.map +1 -1
  52. package/dist/preview.d.ts +1 -1
  53. package/dist/preview.js +1 -1
  54. package/dist/schema.d.ts +18 -0
  55. package/dist/schema.d.ts.map +1 -1
  56. package/dist/schema.js +37 -2
  57. package/dist/schema.js.map +1 -1
  58. package/dist/served.js +1 -1
  59. package/dist/update-check.d.ts.map +1 -1
  60. package/dist/update-check.js +9 -3
  61. package/dist/update-check.js.map +1 -1
  62. package/package.json +6 -6
  63. package/skill/SKILL.md +62 -32
  64. package/skill/reference/code-projects.md +78 -24
  65. package/skill/reference/creator-token.md +16 -3
  66. package/skill/reference/decisions.md +59 -13
  67. package/skill/reference/hosting.md +1 -1
  68. package/skill/reference/operating.md +33 -13
  69. package/skill/reference/setup.md +1 -1
  70. package/skill/reference/troubleshooting.md +16 -6
@@ -0,0 +1,512 @@
1
+ /**
2
+ * `abx submit-app` — optional post-deploy listing in the ABX App Store.
3
+ *
4
+ * Not part of deploy. A creator (or the agent driving them) opts in after the
5
+ * collection exists: mint one entry token through the store's gated minter, then
6
+ * write catalog copy as the registry's TokenOwner params. Same transactions as
7
+ * the store's `/submit` page; the CLI is the agent path.
8
+ *
9
+ * Catalog copy is NOT the collection's `--name` / `--description`. Those are NFT
10
+ * metadata. The store wants outcome copy — what someone can do — and this command
11
+ * requires those fields on purpose so an agent cannot silently reuse deploy flags.
12
+ */
13
+ import { assertChainId, encodeScalarParam, makePublicClient, prepareConfigureTokenParam, prepareConfigureTokenParamData, prepareMulticall, } from '@artblocks/abx-sdk';
14
+ import { encodeFunctionData, getAddress, isAddress, parseEventLogs, toHex } from 'viem';
15
+ import { CHAIN, chainId, explorerBase } from '../config.js';
16
+ import { CliError } from '../errors.js';
17
+ import { isDryRun } from '../flags.js';
18
+ import { withJson } from '../jsonout.js';
19
+ import { bold, dim, g, ok } from '../output.js';
20
+ import { confirmSend, laneFromFlags } from '../riskgate.js';
21
+ import { openWalletSession, signHotSequence, signTx, } from '../signer.js';
22
+ /** Matches the App Store registry schema (`lib/submissions.ts` in abx-app-store). */
23
+ export const APP_CATEGORIES = [
24
+ 'Create',
25
+ 'Games',
26
+ 'Physical world',
27
+ 'Records',
28
+ 'Coordination',
29
+ 'Utilities',
30
+ 'Developer tools',
31
+ ];
32
+ export const APP_STAGES = ['Live', 'Prototype', 'Concept'];
33
+ export const APP_TONES = ['acid', 'coral', 'blue', 'violet', 'amber', 'mint'];
34
+ export const APP_RELATIONSHIP = 'built-on-abx';
35
+ const PARAM_KEYS = [
36
+ 'name',
37
+ 'summary',
38
+ 'description',
39
+ 'url',
40
+ 'urlLabel',
41
+ 'image',
42
+ 'mark',
43
+ 'tone',
44
+ 'category',
45
+ 'relationships',
46
+ 'stage',
47
+ 'tags',
48
+ ];
49
+ /** Sequencer/RPC per-tx gas cap. A full param dump in one multicall exceeds it. */
50
+ export const MAX_CALLS_PER_TX = 3;
51
+ const MINTER_ABI = [
52
+ {
53
+ type: 'function',
54
+ name: 'submit',
55
+ stateMutability: 'nonpayable',
56
+ inputs: [{ name: 'collection', type: 'address' }],
57
+ outputs: [{ name: 'tokenId', type: 'uint256' }],
58
+ },
59
+ {
60
+ type: 'function',
61
+ name: 'claimed',
62
+ stateMutability: 'view',
63
+ inputs: [{ name: 'collection', type: 'address' }],
64
+ outputs: [{ name: '', type: 'bool' }],
65
+ },
66
+ {
67
+ type: 'function',
68
+ name: 'entryOf',
69
+ stateMutability: 'view',
70
+ inputs: [{ name: 'collection', type: 'address' }],
71
+ outputs: [{ name: '', type: 'uint256' }],
72
+ },
73
+ {
74
+ type: 'event',
75
+ name: 'EntrySubmitted',
76
+ inputs: [
77
+ { name: 'collection', type: 'address', indexed: true },
78
+ { name: 'tokenId', type: 'uint256', indexed: true },
79
+ { name: 'owner', type: 'address', indexed: true },
80
+ ],
81
+ },
82
+ ];
83
+ const OWNER_ABI = [
84
+ {
85
+ type: 'function',
86
+ name: 'owner',
87
+ stateMutability: 'view',
88
+ inputs: [],
89
+ outputs: [{ name: '', type: 'address' }],
90
+ },
91
+ {
92
+ type: 'function',
93
+ name: 'ownerOf',
94
+ stateMutability: 'view',
95
+ inputs: [{ name: 'tokenId', type: 'uint256' }],
96
+ outputs: [{ name: '', type: 'address' }],
97
+ },
98
+ ];
99
+ /**
100
+ * Shipped App Store registry + gated minter, per chain. Override with
101
+ * `--registry` / `--minter` or `ABX_APP_STORE_REGISTRY` / `ABX_APP_STORE_MINTER`.
102
+ * A chain with no row is not an error until someone runs this command there.
103
+ */
104
+ const APP_STORE = {
105
+ 'base-sepolia': {
106
+ registry: '0xBD0D5eE35075E62d970467771775c630B9FB87fa',
107
+ minter: '0xBC0aD16F6501424f7028260a5A396b41aa6d9046',
108
+ },
109
+ };
110
+ const USAGE = 'abx submit-app <collection> --name <s> --summary "<s>" --description "<s>" [--mark A/] [--tone acid] [--category Create] [--stage Prototype] [--url https://…] [--url-label "Open app"] [--image https://…] [--tags a,b] [--registry 0x…] [--minter 0x…] [--sign|--unsigned|--dry-run]';
111
+ function requireFlag(flags, name) {
112
+ const v = flags[name];
113
+ if (!v || v === 'true') {
114
+ throw new Error(`missing --${name}\nusage: ${USAGE}`);
115
+ }
116
+ return v;
117
+ }
118
+ function optionalFlag(flags, name) {
119
+ const v = flags[name];
120
+ if (!v || v === 'true')
121
+ return '';
122
+ return v;
123
+ }
124
+ function oneOf(value, options, flag) {
125
+ if (options.includes(value))
126
+ return value;
127
+ throw new Error(`--${flag} must be one of ${options.join(' | ')} (got "${value}").`);
128
+ }
129
+ function requireHttps(value, flag) {
130
+ if (!value)
131
+ return '';
132
+ let url;
133
+ try {
134
+ url = new URL(value);
135
+ }
136
+ catch {
137
+ throw new Error(`--${flag} must be an HTTPS URL.`);
138
+ }
139
+ if (url.protocol !== 'https:')
140
+ throw new Error(`--${flag} must be an HTTPS URL.`);
141
+ return value.trim();
142
+ }
143
+ function parseTags(raw) {
144
+ if (!raw)
145
+ return [];
146
+ const tags = raw
147
+ .split(/[,\n]/)
148
+ .map((t) => t.trim())
149
+ .filter(Boolean);
150
+ if (tags.length > 12)
151
+ throw new Error('--tags accepts at most 12 tags.');
152
+ const seen = new Set();
153
+ for (const tag of tags) {
154
+ if (tag.length > 60)
155
+ throw new Error(`tag "${tag}" is longer than 60 characters.`);
156
+ const key = tag.toLowerCase();
157
+ if (seen.has(key))
158
+ throw new Error(`duplicate tag "${tag}".`);
159
+ seen.add(key);
160
+ }
161
+ return tags;
162
+ }
163
+ function bound(value, flag, max, min = 1) {
164
+ const t = value.trim();
165
+ if (t.length < min)
166
+ throw new Error(`--${flag} is required.`);
167
+ if (t.length > max)
168
+ throw new Error(`--${flag} is longer than ${max} characters.`);
169
+ return t;
170
+ }
171
+ /**
172
+ * Catalog copy from flags. Requires name / summary / description so deploy identity
173
+ * cannot silently become the listing.
174
+ */
175
+ export function parseSubmitAppEntry(flags) {
176
+ return {
177
+ name: bound(requireFlag(flags, 'name'), 'name', 100),
178
+ summary: bound(requireFlag(flags, 'summary'), 'summary', 240),
179
+ description: bound(requireFlag(flags, 'description'), 'description', 2_000),
180
+ url: requireHttps(optionalFlag(flags, 'url'), 'url'),
181
+ urlLabel: optionalFlag(flags, 'url-label').trim().slice(0, 60),
182
+ image: requireHttps(optionalFlag(flags, 'image'), 'image'),
183
+ mark: bound(optionalFlag(flags, 'mark') || 'A/', 'mark', 3),
184
+ tone: oneOf(optionalFlag(flags, 'tone') || 'acid', APP_TONES, 'tone'),
185
+ category: oneOf(optionalFlag(flags, 'category') || 'Create', APP_CATEGORIES, 'category'),
186
+ stage: oneOf(optionalFlag(flags, 'stage') || 'Prototype', APP_STAGES, 'stage'),
187
+ tags: parseTags(optionalFlag(flags, 'tags')),
188
+ };
189
+ }
190
+ export function paramValues(entry) {
191
+ return {
192
+ name: entry.name,
193
+ summary: entry.summary,
194
+ description: entry.description,
195
+ url: entry.url,
196
+ urlLabel: entry.urlLabel,
197
+ image: entry.image,
198
+ mark: entry.mark,
199
+ tone: entry.tone,
200
+ category: entry.category,
201
+ relationships: APP_RELATIONSHIP,
202
+ stage: entry.stage,
203
+ tags: entry.tags.join(','),
204
+ };
205
+ }
206
+ export function resolveAppStoreAddresses(chainKey, flags = {}, env = process.env) {
207
+ const shipped = APP_STORE[chainKey];
208
+ const registryRaw = optionalFlag(flags, 'registry') || env.ABX_APP_STORE_REGISTRY || shipped?.registry;
209
+ const minterRaw = optionalFlag(flags, 'minter') || env.ABX_APP_STORE_MINTER || shipped?.minter;
210
+ if (!registryRaw || !minterRaw) {
211
+ throw new Error(`No ABX App Store registry is shipped for '${chainKey}'. Pass --registry 0x… and --minter 0x… ` +
212
+ `(or set ABX_APP_STORE_REGISTRY / ABX_APP_STORE_MINTER).`);
213
+ }
214
+ if (!isAddress(registryRaw) || !isAddress(minterRaw)) {
215
+ throw new Error('--registry and --minter must be 0x… addresses.');
216
+ }
217
+ return { registry: getAddress(registryRaw), minter: getAddress(minterRaw) };
218
+ }
219
+ export function chunkItems(items, size = MAX_CALLS_PER_TX) {
220
+ if (size < 1)
221
+ throw new Error('chunk size must be ≥ 1');
222
+ const out = [];
223
+ for (let i = 0; i < items.length; i += size)
224
+ out.push(items.slice(i, i + size));
225
+ return out;
226
+ }
227
+ export function buildParamOps(args) {
228
+ const values = paramValues(args.entry);
229
+ const ops = [];
230
+ for (const key of PARAM_KEYS) {
231
+ const value = values[key];
232
+ if (value === '')
233
+ continue;
234
+ if (key === 'tone') {
235
+ const encoded = encodeScalarParam('Select', value, [...APP_TONES]);
236
+ ops.push(prepareConfigureTokenParam({
237
+ contract: args.registry,
238
+ tokenId: args.tokenId,
239
+ key,
240
+ value: encoded.value,
241
+ display: encoded.display,
242
+ chainId: args.chainId,
243
+ }));
244
+ continue;
245
+ }
246
+ ops.push(prepareConfigureTokenParamData({
247
+ contract: args.registry,
248
+ tokenId: args.tokenId,
249
+ key,
250
+ data: toHex(new TextEncoder().encode(value)),
251
+ chainId: args.chainId,
252
+ }));
253
+ }
254
+ return ops;
255
+ }
256
+ export function batchParamOps(ops) {
257
+ return chunkItems(ops, MAX_CALLS_PER_TX).map((group, i, all) => {
258
+ if (group.length === 1)
259
+ return group[0];
260
+ return prepareMulticall({
261
+ ops: group,
262
+ summary: `Write App Store metadata ${i + 1}/${all.length} (${group.length} fields)`,
263
+ });
264
+ });
265
+ }
266
+ function prepareSubmitCollection(args) {
267
+ return {
268
+ op: 'submit-app',
269
+ to: args.minter,
270
+ data: encodeFunctionData({
271
+ abi: MINTER_ABI,
272
+ functionName: 'submit',
273
+ args: [args.collection],
274
+ }),
275
+ value: '0x0',
276
+ chainId: args.chainId,
277
+ summary: `List ${args.collection} in the ABX App Store`,
278
+ fields: { minter: args.minter, collection: args.collection },
279
+ };
280
+ }
281
+ function tokenIdFromMintLogs(logs) {
282
+ try {
283
+ const parsed = parseEventLogs({
284
+ abi: MINTER_ABI,
285
+ logs: logs,
286
+ eventName: 'EntrySubmitted',
287
+ });
288
+ const first = parsed[0];
289
+ return first ? first.args.tokenId : null;
290
+ }
291
+ catch {
292
+ return null;
293
+ }
294
+ }
295
+ function previewTx(tx, expectedSigner) {
296
+ console.log(`\n ${bold('◆ ' + tx.summary)} ${dim('(dry run — nothing sent)')}`);
297
+ for (const [k, v] of Object.entries(tx.fields))
298
+ console.log(` ${dim(k.padEnd(12))} ${v}`);
299
+ console.log(` ${dim('to'.padEnd(12))} ${tx.to ?? dim('(none)')}`);
300
+ if (expectedSigner)
301
+ console.log(` ${dim('signer'.padEnd(12))} ${expectedSigner}`);
302
+ }
303
+ export async function cmdSubmitApp(address, flags) {
304
+ if (!address || address.startsWith('--')) {
305
+ console.error(`usage: ${USAGE}\n`);
306
+ throw new CliError('', 1, true);
307
+ }
308
+ if (!isAddress(address)) {
309
+ throw new Error(`<collection> must be a 0x… address (got "${address}").`);
310
+ }
311
+ const collection = getAddress(address);
312
+ const entry = parseSubmitAppEntry(flags);
313
+ const store = resolveAppStoreAddresses(CHAIN, flags);
314
+ const cid = chainId();
315
+ const publicClient = makePublicClient({ chainKey: CHAIN });
316
+ const claimed = (await publicClient.readContract({
317
+ address: store.minter,
318
+ abi: MINTER_ABI,
319
+ functionName: 'claimed',
320
+ args: [collection],
321
+ }));
322
+ let tokenId = null;
323
+ let expectedSigner;
324
+ if (claimed) {
325
+ tokenId = (await publicClient.readContract({
326
+ address: store.minter,
327
+ abi: MINTER_ABI,
328
+ functionName: 'entryOf',
329
+ args: [collection],
330
+ }));
331
+ expectedSigner = (await publicClient.readContract({
332
+ address: store.registry,
333
+ abi: OWNER_ABI,
334
+ functionName: 'ownerOf',
335
+ args: [tokenId],
336
+ }));
337
+ console.log(dim(` already listed as token #${tokenId.toString()} — skipping mint, writing metadata (same as /update).`));
338
+ }
339
+ else {
340
+ expectedSigner = (await publicClient.readContract({
341
+ address: collection,
342
+ abi: OWNER_ABI,
343
+ functionName: 'owner',
344
+ args: [],
345
+ }));
346
+ }
347
+ const paramOps = tokenId !== null
348
+ ? buildParamOps({ registry: store.registry, tokenId, entry, chainId: cid })
349
+ : buildParamOps({ registry: store.registry, tokenId: 0n, entry, chainId: cid });
350
+ // When the token id isn't known yet, ops are only used to count batches for the sign-page total
351
+ // and the dry-run preview. Calldata is rebuilt after mint with the real id.
352
+ const paramBatches = batchParamOps(paramOps);
353
+ const mintTx = claimed
354
+ ? null
355
+ : prepareSubmitCollection({ minter: store.minter, collection, chainId: cid });
356
+ const approvalCount = (mintTx ? 1 : 0) + paramBatches.length;
357
+ return withJson(flags, async () => {
358
+ if (isDryRun(flags)) {
359
+ if (mintTx)
360
+ previewTx(mintTx, expectedSigner);
361
+ console.log(dim(`\n then ${paramBatches.length} metadata transaction(s) (${paramOps.length} fields, max ${MAX_CALLS_PER_TX} per tx).`));
362
+ for (const key of PARAM_KEYS) {
363
+ const value = paramValues(entry)[key];
364
+ if (value === '')
365
+ continue;
366
+ console.log(` ${dim(key.padEnd(16))} ${value.length > 80 ? value.slice(0, 77) + '…' : value}`);
367
+ }
368
+ console.log(dim(`\n Re-run without --dry-run to send (lane: ${laneFromFlags(flags)}).\n`));
369
+ return {
370
+ collection,
371
+ chainId: cid,
372
+ registry: store.registry,
373
+ minter: store.minter,
374
+ claimed,
375
+ tokenId: tokenId !== null ? tokenId.toString() : null,
376
+ sent: false,
377
+ approvals: approvalCount,
378
+ };
379
+ }
380
+ await confirmSend(claimed
381
+ ? `Update App Store listing #${tokenId.toString()} (${paramBatches.length} metadata tx)`
382
+ : `List ${collection} in the App Store (mint + ${paramBatches.length} metadata tx)`, flags);
383
+ await assertChainId(CHAIN);
384
+ const lane = laneFromFlags(flags);
385
+ let mintHash = null;
386
+ let paramsHashes = [];
387
+ let listedId = tokenId;
388
+ const sendMintThenParams = async (send) => {
389
+ if (mintTx) {
390
+ const minted = await send(mintTx);
391
+ mintHash = minted.txHash;
392
+ listedId = tokenIdFromMintLogs(minted.logs);
393
+ if (listedId === null) {
394
+ throw new Error('Mint succeeded but the entry token id was not in the receipt. The collection is claimed — retry to write metadata onto the existing token.');
395
+ }
396
+ ok(`listed as token #${listedId.toString()}`);
397
+ }
398
+ const ops = buildParamOps({
399
+ registry: store.registry,
400
+ tokenId: listedId,
401
+ entry,
402
+ chainId: cid,
403
+ });
404
+ const batches = batchParamOps(ops);
405
+ for (const [i, tx] of batches.entries()) {
406
+ const sent = await send(tx);
407
+ paramsHashes.push(sent.txHash);
408
+ console.log(dim(` metadata ${i + 1}/${batches.length}`));
409
+ }
410
+ };
411
+ if (lane === 'unsigned') {
412
+ // Cold lane can't do mint-then-params in one shot (the token id is assigned at mint).
413
+ // Print the mint (or the param batches if already claimed) and stop.
414
+ if (mintTx) {
415
+ await signTx(mintTx, {
416
+ lane: 'unsigned',
417
+ chainKey: CHAIN,
418
+ expectedSigner,
419
+ yes: !!flags.yes,
420
+ });
421
+ console.log(dim(' After the mint confirms, re-run this command to write catalog copy onto the new token (configure is an upsert).'));
422
+ }
423
+ else {
424
+ for (const tx of paramBatches) {
425
+ await signTx(tx, {
426
+ lane: 'unsigned',
427
+ chainKey: CHAIN,
428
+ expectedSigner,
429
+ yes: !!flags.yes,
430
+ });
431
+ }
432
+ }
433
+ return {
434
+ collection,
435
+ chainId: cid,
436
+ registry: store.registry,
437
+ minter: store.minter,
438
+ claimed,
439
+ tokenId: listedId !== null ? listedId.toString() : null,
440
+ sent: false,
441
+ mintTx: null,
442
+ paramsTxs: [],
443
+ };
444
+ }
445
+ if (lane === 'send') {
446
+ const results = [];
447
+ if (mintTx) {
448
+ const minted = await signTx(mintTx, {
449
+ lane: 'send',
450
+ chainKey: CHAIN,
451
+ expectedSigner,
452
+ yes: !!flags.yes,
453
+ });
454
+ if (!minted)
455
+ throw new Error('Mint was not sent.');
456
+ results.push(minted);
457
+ mintHash = minted.txHash;
458
+ const receipt = await publicClient.getTransactionReceipt({ hash: minted.txHash });
459
+ listedId = tokenIdFromMintLogs(receipt.logs);
460
+ if (listedId === null) {
461
+ throw new Error('Mint succeeded but the entry token id was not in the receipt. Retry to write metadata onto the existing token.');
462
+ }
463
+ ok(`listed as token #${listedId.toString()}`);
464
+ }
465
+ const ops = buildParamOps({
466
+ registry: store.registry,
467
+ tokenId: listedId,
468
+ entry,
469
+ chainId: cid,
470
+ });
471
+ const batches = batchParamOps(ops);
472
+ if (batches.length > 0) {
473
+ const rest = await signHotSequence(batches, { chainKey: CHAIN, yes: !!flags.yes });
474
+ results.push(...rest);
475
+ paramsHashes = rest.map((r) => r.txHash);
476
+ }
477
+ }
478
+ else {
479
+ const session = await openWalletSession({
480
+ chainKey: CHAIN,
481
+ expectedSigner,
482
+ total: approvalCount,
483
+ port: flags.port ? Number(flags.port) : undefined,
484
+ signUrlFile: flags['sign-url-file'],
485
+ });
486
+ try {
487
+ await session.connect();
488
+ await sendMintThenParams(async (tx) => {
489
+ const { txHash, receipt } = await session.send(tx);
490
+ return { txHash, logs: receipt.logs };
491
+ });
492
+ }
493
+ finally {
494
+ session.close();
495
+ }
496
+ }
497
+ console.log(`\n ${g('Listed.')} token #${listedId.toString()} on ${CHAIN} ${dim(explorerBase() + '/token/' + store.registry + '?a=' + listedId.toString())}`);
498
+ console.log(dim(' The catalog picks it up on the next read. Re-run this command to change the copy (no second mint).'));
499
+ return {
500
+ collection,
501
+ chainId: cid,
502
+ registry: store.registry,
503
+ minter: store.minter,
504
+ claimed,
505
+ tokenId: listedId.toString(),
506
+ sent: true,
507
+ mintTx: mintHash,
508
+ paramsTxs: paramsHashes,
509
+ };
510
+ });
511
+ }
512
+ //# sourceMappingURL=submit-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submit-app.js","sourceRoot":"","sources":["../../src/commands/submit-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,0BAA0B,EAC1B,8BAA8B,EAC9B,gBAAgB,GAIjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,kBAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAC,MAAM,MAAM,CAAC;AACtF,OAAO,EAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAC,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AACtC,OAAO,EAAa,QAAQ,EAAC,MAAM,aAAa,CAAC;AACjD,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,WAAW,EAAE,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,MAAM,GAEP,MAAM,cAAc,CAAC;AAEtB,qFAAqF;AACrF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,QAAQ;IACR,OAAO;IACP,gBAAgB;IAChB,SAAS;IACT,cAAc;IACd,WAAW;IACX,iBAAiB;CACT,CAAC;AAEX,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAU,CAAC;AACpE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AACvF,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAE/C,MAAM,UAAU,GAAG;IACjB,MAAM;IACN,SAAS;IACT,aAAa;IACb,KAAK;IACL,UAAU;IACV,OAAO;IACP,MAAM;IACN,MAAM;IACN,UAAU;IACV,eAAe;IACf,OAAO;IACP,MAAM;CACE,CAAC;AAIX,mFAAmF;AACnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAElC,MAAM,UAAU,GAAG;IACjB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,eAAe,EAAE,YAAY;QAC7B,MAAM,EAAE,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;QAC/C,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;KAC9C;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,SAAS;QACf,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;QAC/C,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAC,CAAC;KACpC;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,SAAS;QACf,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;QAC/C,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;KACvC;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE;YACN,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAC;YACpD,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAC;YACjD,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAC;SAChD;KACF;CACO,CAAC;AAEX,MAAM,SAAS,GAAG;IAChB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;KACvC;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,SAAS;QACf,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;QAC5C,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;KACvC;CACO,CAAC;AAEX;;;;GAIG;AACH,MAAM,SAAS,GAAyD;IACtE,cAAc,EAAE;QACd,QAAQ,EAAE,4CAA4C;QACtD,MAAM,EAAE,4CAA4C;KACrD;CACF,CAAC;AAkBF,MAAM,KAAK,GACT,wRAAwR,CAAC;AAE3R,SAAS,WAAW,CAAC,KAAY,EAAE,IAAY;IAC7C,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,YAAY,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,YAAY,CAAC,KAAY,EAAE,IAAY;IAC9C,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,EAAE,CAAC;IAClC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,KAAK,CAAmB,KAAa,EAAE,OAAqB,EAAE,IAAY;IACjF,IAAK,OAA6B,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAU,CAAC;IACtE,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,mBAAmB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,IAAY;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,wBAAwB,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,wBAAwB,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,IAAI,GAAG,GAAG;SACb,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iCAAiC,CAAC,CAAC;QACnF,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,IAAY,EAAE,GAAW,EAAE,GAAG,GAAG,CAAC;IAC9D,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC;IAC9D,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,mBAAmB,GAAG,cAAc,CAAC,CAAC;IACnF,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAY;IAC9C,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC;QACpD,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC;QAC7D,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC;QAC3E,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QACpD,QAAQ,EAAE,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAC9D,KAAK,EAAE,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAC1D,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3D,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC;QACrE,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC;QACxF,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC;QAC9E,IAAI,EAAE,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAqB;IAC/C,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,aAAa,EAAE,gBAAgB;QAC/B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,QAAgB,EAChB,QAAe,EAAE,EACjB,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,WAAW,GACf,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,GAAG,CAAC,sBAAsB,IAAI,OAAO,EAAE,QAAQ,CAAC;IACrF,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,oBAAoB,IAAI,OAAO,EAAE,MAAM,CAAC;IAC/F,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,6CAA6C,QAAQ,0CAA0C;YAC7F,yDAAyD,CAC5D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,EAAC,QAAQ,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,EAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,UAAU,CAAI,KAAU,EAAE,IAAI,GAAG,gBAAgB;IAC/D,IAAI,IAAI,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACxD,MAAM,GAAG,GAAU,EAAE,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI;QAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAChF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAK7B;IACC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,EAAE;YAAE,SAAS;QAC3B,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YACnE,GAAG,CAAC,IAAI,CACN,0BAA0B,CAAC;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,GAAG;gBACH,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CACH,CAAC;YACF,SAAS;QACX,CAAC;QACD,GAAG,CAAC,IAAI,CACN,8BAA8B,CAAC;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG;YACH,IAAI,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5C,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAiB;IAC7C,OAAO,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;QAC7D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,gBAAgB,CAAC;YACtB,GAAG,EAAE,KAAK;YACV,OAAO,EAAE,4BAA4B,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,UAAU;SACpF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,IAIhC;IACC,OAAO;QACL,EAAE,EAAE,YAAY;QAChB,EAAE,EAAE,IAAI,CAAC,MAAM;QACf,IAAI,EAAE,kBAAkB,CAAC;YACvB,GAAG,EAAE,UAAU;YACf,YAAY,EAAE,QAAQ;YACtB,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;SACxB,CAAC;QACF,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,QAAQ,IAAI,CAAC,UAAU,uBAAuB;QACvD,MAAM,EAAE,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAC;KAC3D,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAA2C;IACtE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,cAAc,CAAC;YAC5B,GAAG,EAAE,UAAU;YACf,IAAI,EAAE,IAAa;YACnB,SAAS,EAAE,gBAAgB;SAC5B,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,KAAK,CAAC,CAAC,CAAE,KAAK,CAAC,IAAI,CAAC,OAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAc,EAAE,cAAwB;IACzD,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAClF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7F,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrE,IAAI,cAAc;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAA2B,EAAE,KAAY;IAC1E,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC;QACnC,MAAM,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,4CAA4C,OAAO,KAAK,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,MAAM,YAAY,GAAG,gBAAgB,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAG,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC;QAC/C,OAAO,EAAE,KAAK,CAAC,MAAM;QACrB,GAAG,EAAE,UAAU;QACf,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE,CAAC,UAAU,CAAC;KACnB,CAAC,CAAY,CAAC;IAEf,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,cAAuB,CAAC;IAC5B,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,GAAG,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC;YACzC,OAAO,EAAE,KAAK,CAAC,MAAM;YACrB,GAAG,EAAE,UAAU;YACf,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC,UAAU,CAAC;SACnB,CAAC,CAAW,CAAC;QACd,cAAc,GAAG,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC;YAChD,OAAO,EAAE,KAAK,CAAC,QAAQ;YACvB,GAAG,EAAE,SAAS;YACd,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC,OAAO,CAAC;SAChB,CAAC,CAAY,CAAC;QACf,OAAO,CAAC,GAAG,CACT,GAAG,CACD,8BAA8B,OAAO,CAAC,QAAQ,EAAE,uDAAuD,CACxG,CACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,cAAc,GAAG,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC;YAChD,OAAO,EAAE,UAAU;YACnB,GAAG,EAAE,SAAS;YACd,YAAY,EAAE,OAAO;YACrB,IAAI,EAAE,EAAE;SACT,CAAC,CAAY,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,KAAK,IAAI;QAC/B,CAAC,CAAC,aAAa,CAAC,EAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAC,CAAC;QACzE,CAAC,CAAC,aAAa,CAAC,EAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;IAChF,gGAAgG;IAChG,4EAA4E;IAC5E,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,OAAO;QACpB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,uBAAuB,CAAC,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;IAE7D,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QAChC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,IAAI,MAAM;gBAAE,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CACT,GAAG,CACD,YAAY,YAAY,CAAC,MAAM,6BAA6B,QAAQ,CAAC,MAAM,gBAAgB,gBAAgB,WAAW,CACvH,CACF,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,KAAK,KAAK,EAAE;oBAAE,SAAS;gBAC3B,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACpG,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,+CAA+C,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5F,OAAO;gBACL,UAAU;gBACV,OAAO,EAAE,GAAG;gBACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO;gBACP,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;gBACrD,IAAI,EAAE,KAAK;gBACX,SAAS,EAAE,aAAa;aACzB,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,CACf,OAAO;YACL,CAAC,CAAC,6BAA6B,OAAQ,CAAC,QAAQ,EAAE,KAAK,YAAY,CAAC,MAAM,eAAe;YACzF,CAAC,CAAC,QAAQ,UAAU,6BAA6B,YAAY,CAAC,MAAM,eAAe,EACrF,KAAK,CACN,CAAC;QACF,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,QAAQ,GAAe,IAAI,CAAC;QAChC,IAAI,YAAY,GAAU,EAAE,CAAC;QAC7B,IAAI,QAAQ,GAAG,OAAO,CAAC;QAEvB,MAAM,kBAAkB,GAAG,KAAK,EAAE,IAA6F,EAAiB,EAAE;YAChJ,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;gBACzB,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC5C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACtB,MAAM,IAAI,KAAK,CACb,4IAA4I,CAC7I,CAAC;gBACJ,CAAC;gBACD,EAAE,CAAC,oBAAoB,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,GAAG,GAAG,aAAa,CAAC;gBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,OAAO,EAAE,QAAS;gBAClB,KAAK;gBACL,OAAO,EAAE,GAAG;aACb,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YACnC,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,sFAAsF;YACtF,qEAAqE;YACrE,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,CAAC,MAAM,EAAE;oBACnB,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,KAAK;oBACf,cAAc;oBACd,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG;iBACjB,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CACT,GAAG,CACD,mHAAmH,CACpH,CACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;oBAC9B,MAAM,MAAM,CAAC,EAAE,EAAE;wBACf,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,KAAK;wBACf,cAAc;wBACd,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG;qBACjB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,OAAO;gBACL,UAAU;gBACV,OAAO,EAAE,GAAG;gBACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO;gBACP,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;gBACvD,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,EAAE;aACd,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,OAAO,GAAiB,EAAE,CAAC;YACjC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE;oBAClC,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,KAAK;oBACf,cAAc;oBACd,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG;iBACjB,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM;oBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBACnD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrB,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;gBACzB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,qBAAqB,CAAC,EAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAC,CAAC,CAAC;gBAChF,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC7C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACtB,MAAM,IAAI,KAAK,CACb,gHAAgH,CACjH,CAAC;gBACJ,CAAC;gBACD,EAAE,CAAC,oBAAoB,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,GAAG,GAAG,aAAa,CAAC;gBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,OAAO,EAAE,QAAS;gBAClB,KAAK;gBACL,OAAO,EAAE,GAAG;aACb,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAC,CAAC,CAAC;gBACjF,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;gBACtB,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC;gBACtC,QAAQ,EAAE,KAAK;gBACf,cAAc;gBACd,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBACjD,WAAW,EAAE,KAAK,CAAC,eAAe,CAAC;aACpC,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,kBAAkB,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;oBACpC,MAAM,EAAC,MAAM,EAAE,OAAO,EAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjD,OAAO,EAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;YACL,CAAC;oBAAS,CAAC;gBACT,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CACT,OAAO,CAAC,CAAC,SAAS,CAAC,WAAW,QAAS,CAAC,QAAQ,EAAE,OAAO,KAAK,KAAK,GAAG,CAAC,YAAY,EAAE,GAAG,SAAS,GAAG,KAAK,CAAC,QAAQ,GAAG,KAAK,GAAG,QAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,CACrJ,CAAC;QACF,OAAO,CAAC,GAAG,CACT,GAAG,CACD,sGAAsG,CACvG,CACF,CAAC;QAEF,OAAO;YACL,UAAU;YACV,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO;YACP,OAAO,EAAE,QAAS,CAAC,QAAQ,EAAE;YAC7B,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,YAAY;SACxB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/config.d.ts CHANGED
@@ -2,20 +2,6 @@ import { type ArweaveJwk, type ResolveStorageOptions, type StorageBackend } from
2
2
  import { type Address, type ProjectState } from '@artblocks/abx-sdk';
3
3
  import { SelfHostIndexer } from '@artblocks/abx-indexer';
4
4
  import { type Flags } from './flags.js';
5
- /**
6
- * Runtime resolution for the CLI — deliberately **stateless about decisions**. There is no
7
- * tool-written config file: every choice is resolved fresh per invocation from explicit flags,
8
- * the operator's environment, and shipped constants, so a command's behavior is a pure function
9
- * of its inputs (nothing a previous command silently mutated feeds a later one).
10
- *
11
- * - Canonical infra (factory / renderer / chunk store): resolved from the SDK's shipped
12
- * {@link resolveFactory} manifest, overridable by flag or env. See `@artblocks/abx-sdk` deployments.
13
- * - Storage backend + non-secret settings: resolved here as **override → env → default**.
14
- * - Secrets (signing keys, S3 creds, the Pinata JWT, the Arweave key): env / the key file only.
15
- *
16
- * The only thing that persists on disk is the project-local, chain-rebuildable projection
17
- * (the indexer's SQLite store under the data dir) — that's DATA, not config.
18
- */
19
5
  /**
20
6
  * The active chain key — the ONE place it's derived (`ABX_CHAIN` → the shipped default). main.ts
21
7
  * and ownerops.ts each used to carry their own identical `process.env.ABX_CHAIN ?? DEFAULT_CHAIN_KEY`
@@ -60,7 +46,7 @@ export declare function chunkStoreAddress(override?: string): Address | null;
60
46
  export declare function fixedPriceMinterAddress(override?: string): Address | null;
61
47
  /** Canonical 1/1-edition clone factory — flag override → `ABX_ONE_OF_ONE_EDITION_FACTORY` → manifest. */
62
48
  export declare function oneOfOneEditionFactoryAddress(override?: string): Address | null;
63
- /** Canonical multi-artwork edition clone factory — flag override → `ABX_EDITION_FACTORY` → manifest. */
49
+ /** Canonical multi-work edition clone factory — flag override → `ABX_EDITION_FACTORY` → manifest. */
64
50
  export declare function editionFactoryAddress(override?: string): Address | null;
65
51
  /** Canonical code-project edition clone factory — flag override → `ABX_EDITION_CODE_FACTORY` → manifest. */
66
52
  export declare function editionCodeFactoryAddress(override?: string): Address | null;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { mkdirSync, writeFileSync } from 'node:fs';
2
2
  import { dirname, resolve } from 'node:path';
3
+ import { loadDotEnv } from '@artblocks/abx-sdk/node';
3
4
  import { arweaveAddress, generateArweaveJwk, resolveArweaveJwk, assessStorageReadiness, assessTurboFunds, isTurboArweave, planTurboUpload, resolveBackend, } from '@artblocks/abx-storage';
4
5
  import { resolveChain, DEFAULT_CHAIN_KEY, resolveFactory, resolveSeriesFactory, resolveRenderer, resolveChunkStore, resolveFixedPriceMinter, resolveOneOfOneEditionFactory, resolveEditionFactory, resolveEditionCodeFactory, resolveFixedPriceMinter1155, envSigningKey, explorerUrl, METADATA_REPRESENTATION as R, } from '@artblocks/abx-sdk';
5
6
  import { SelfHostIndexer } from '@artblocks/abx-indexer';
@@ -18,6 +19,22 @@ import { bold, dim, g, info, warn } from './output.js';
18
19
  * The only thing that persists on disk is the project-local, chain-rebuildable projection
19
20
  * (the indexer's SQLite store under the data dir) — that's DATA, not config.
20
21
  */
22
+ // `.env` MUST be loaded before the line below, and this is the only place that can guarantee it.
23
+ //
24
+ // `CHAIN` is a module-level const, so it evaluates when this module is first imported — which
25
+ // happens while the import graph loads, BEFORE `main()` runs and calls `loadDotEnv()`. So
26
+ // `ABX_CHAIN=sepolia` in a `.env` was read too late and silently lost: the CLI announced
27
+ // `base-sepolia` and acted on it. Every other setting escaped this because it is read lazily inside
28
+ // a function (`storageOptions()`, the signing key at send time), by which point `.env` is loaded —
29
+ // `ABX_CHAIN` was the one eager read, and the highest-stakes one to get wrong. A cold agent hit it
30
+ // in the clean room: the creator asked for Sepolia, said so in `.env`, and got a Base Sepolia
31
+ // preview with no error. On a funded send that is a wrong-chain deploy with real artifacts at an
32
+ // address nobody meant — the same consequence that made the swallowed `--chain` flag a bug worth
33
+ // fixing (see main.ts), reached by a different route.
34
+ //
35
+ // `loadDotEnv` is idempotent, so main.ts's call stays as the entry-point safety net for any path
36
+ // that does not import this module first.
37
+ loadDotEnv();
21
38
  /**
22
39
  * The active chain key — the ONE place it's derived (`ABX_CHAIN` → the shipped default). main.ts
23
40
  * and ownerops.ts each used to carry their own identical `process.env.ABX_CHAIN ?? DEFAULT_CHAIN_KEY`
@@ -112,7 +129,7 @@ export function fixedPriceMinterAddress(override) {
112
129
  export function oneOfOneEditionFactoryAddress(override) {
113
130
  return resolveOneOfOneEditionFactory(chainId(), override) ?? null;
114
131
  }
115
- /** Canonical multi-artwork edition clone factory — flag override → `ABX_EDITION_FACTORY` → manifest. */
132
+ /** Canonical multi-work edition clone factory — flag override → `ABX_EDITION_FACTORY` → manifest. */
116
133
  export function editionFactoryAddress(override) {
117
134
  return resolveEditionFactory(chainId(), override) ?? null;
118
135
  }