@artblocks/abx-cli 0.1.0-alpha.3 → 0.1.0-alpha.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3663 -0
- package/assets/renderer-scaffold/README.md +2 -2
- package/assets/renderer-scaffold/src/MyRenderer.sol +2 -2
- package/assets/renderer-scaffold/src/interfaces/IAbxFieldRenderer.sol +1 -1
- package/assets/renderer-scaffold/src/interfaces/IAbxParams.sol +17 -0
- package/assets/renderer-scaffold/test/MyRenderer.t.sol +51 -2
- package/dist/commands/deploy.d.ts +242 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +4764 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/project.d.ts +257 -0
- package/dist/commands/project.d.ts.map +1 -0
- package/dist/commands/project.js +1299 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/reads.d.ts +64 -0
- package/dist/commands/reads.d.ts.map +1 -0
- package/dist/commands/reads.js +701 -0
- package/dist/commands/reads.js.map +1 -0
- package/dist/commands/scaffold.d.ts +73 -0
- package/dist/commands/scaffold.d.ts.map +1 -0
- package/dist/commands/scaffold.js +674 -0
- package/dist/commands/scaffold.js.map +1 -0
- package/dist/commands/service.d.ts +41 -0
- package/dist/commands/service.d.ts.map +1 -0
- package/dist/commands/service.js +618 -0
- package/dist/commands/service.js.map +1 -0
- package/dist/commands/storage.d.ts +51 -0
- package/dist/commands/storage.d.ts.map +1 -0
- package/dist/commands/storage.js +370 -0
- package/dist/commands/storage.js.map +1 -0
- package/dist/commands/submit-app.d.ts +58 -0
- package/dist/commands/submit-app.d.ts.map +1 -0
- package/dist/commands/submit-app.js +512 -0
- package/dist/commands/submit-app.js.map +1 -0
- package/dist/config.d.ts +90 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +285 -11
- package/dist/config.js.map +1 -1
- package/dist/conformance.d.ts +31 -0
- package/dist/conformance.d.ts.map +1 -0
- package/dist/conformance.js +393 -0
- package/dist/conformance.js.map +1 -0
- package/dist/deps.d.ts +6 -39
- package/dist/deps.d.ts.map +1 -1
- package/dist/deps.js +4 -68
- package/dist/deps.js.map +1 -1
- package/dist/errors.d.ts +20 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +25 -0
- package/dist/errors.js.map +1 -0
- package/dist/flag-allowlists.d.ts +53 -0
- package/dist/flag-allowlists.d.ts.map +1 -0
- package/dist/flag-allowlists.js +157 -0
- package/dist/flag-allowlists.js.map +1 -0
- package/dist/flags.d.ts +45 -0
- package/dist/flags.d.ts.map +1 -1
- package/dist/flags.js +117 -1
- package/dist/flags.js.map +1 -1
- package/dist/jsonout.d.ts +37 -0
- package/dist/jsonout.d.ts.map +1 -0
- package/dist/jsonout.js +68 -0
- package/dist/jsonout.js.map +1 -0
- package/dist/kind.d.ts +61 -0
- package/dist/kind.d.ts.map +1 -0
- package/dist/kind.js +111 -0
- package/dist/kind.js.map +1 -0
- package/dist/main.js +699 -4736
- package/dist/main.js.map +1 -1
- package/dist/mintpage.d.ts +17 -2
- package/dist/mintpage.d.ts.map +1 -1
- package/dist/mintpage.js +241 -54
- package/dist/mintpage.js.map +1 -1
- package/dist/output.d.ts +179 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +756 -0
- package/dist/output.js.map +1 -0
- package/dist/ownerops.d.ts +302 -51
- package/dist/ownerops.d.ts.map +1 -1
- package/dist/ownerops.js +1780 -357
- package/dist/ownerops.js.map +1 -1
- package/dist/preview.d.ts +81 -0
- package/dist/preview.d.ts.map +1 -0
- package/dist/preview.js +535 -0
- package/dist/preview.js.map +1 -0
- package/dist/prompt.d.ts +17 -0
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +19 -0
- package/dist/prompt.js.map +1 -0
- package/dist/provision.d.ts.map +1 -1
- package/dist/provision.js +16 -8
- package/dist/provision.js.map +1 -1
- package/dist/remote.d.ts +153 -52
- package/dist/remote.d.ts.map +1 -1
- package/dist/remote.js +406 -46
- package/dist/remote.js.map +1 -1
- package/dist/riskgate.d.ts +58 -0
- package/dist/riskgate.d.ts.map +1 -0
- package/dist/riskgate.js +212 -0
- package/dist/riskgate.js.map +1 -0
- package/dist/scaffold.d.ts +10 -0
- package/dist/scaffold.d.ts.map +1 -0
- package/dist/scaffold.js +52 -0
- package/dist/scaffold.js.map +1 -0
- package/dist/schema.d.ts +36 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +121 -26
- package/dist/schema.js.map +1 -1
- package/dist/script-chunks.d.ts +8 -0
- package/dist/script-chunks.d.ts.map +1 -0
- package/dist/script-chunks.js +35 -0
- package/dist/script-chunks.js.map +1 -0
- package/dist/served.d.ts +30 -0
- package/dist/served.d.ts.map +1 -0
- package/dist/served.js +112 -0
- package/dist/served.js.map +1 -0
- package/dist/signer.d.ts +13 -0
- package/dist/signer.d.ts.map +1 -1
- package/dist/signer.js +84 -15
- package/dist/signer.js.map +1 -1
- package/dist/update-check.d.ts +83 -4
- package/dist/update-check.d.ts.map +1 -1
- package/dist/update-check.js +140 -19
- package/dist/update-check.js.map +1 -1
- package/package.json +10 -6
- package/skill/SKILL.md +350 -150
- package/skill/reference/code-projects.md +183 -26
- package/skill/reference/creator-token.md +99 -0
- package/skill/reference/decisions.md +174 -0
- package/skill/reference/hosting.md +63 -19
- package/skill/reference/operating.md +116 -12
- package/skill/reference/setup.md +55 -6
- package/skill/reference/troubleshooting.md +42 -5
- package/dist/inspect.d.ts +0 -48
- package/dist/inspect.d.ts.map +0 -1
- package/dist/inspect.js +0 -184
- package/dist/inspect.js.map +0 -1
- package/dist/migrate.d.ts +0 -65
- package/dist/migrate.d.ts.map +0 -1
- package/dist/migrate.js +0 -180
- package/dist/migrate.js.map +0 -1
- package/dist/onchain-uri.d.ts +0 -97
- package/dist/onchain-uri.d.ts.map +0 -1
- package/dist/onchain-uri.js +0 -243
- package/dist/onchain-uri.js.map +0 -1
- package/dist/upload.d.ts +0 -28
- package/dist/upload.d.ts.map +0 -1
- package/dist/upload.js +0 -41
- package/dist/upload.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/commands/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { type Flags } from '../flags.js';
|
|
2
|
+
/**
|
|
3
|
+
* `abx storage backup-key [--out <path>]` — back up the managed Turbo/Arweave key. It signs uploads
|
|
4
|
+
* AND holds prepaid credits, so losing it strands the credits. Low-stakes (a few $ of credit), but
|
|
5
|
+
* we still COPY the file rather than print it — a key pasted into a terminal / agent log is leaked.
|
|
6
|
+
* With no `--out`, just report where it lives and how to back it up.
|
|
7
|
+
*/
|
|
8
|
+
export declare function cmdStorageBackupKey(flags: Flags): Promise<void>;
|
|
9
|
+
export declare function cmdStorage(rest: string[]): Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* `abx storage status <locator>` — is it **retrievable** yet, not just accepted?
|
|
12
|
+
*
|
|
13
|
+
* The gap this closes: an upload service answers "accepted" the moment it holds your bytes, a gateway
|
|
14
|
+
* answers "serving" only once they reach it, and on Arweave that runs to minutes. Two independent
|
|
15
|
+
* integrators built their own version of this check eight days apart; the second saw 32/32 renders
|
|
16
|
+
* 404 on `arweave.net` while 22/32 already served elsewhere and the uploader said `CONFIRMED`. The
|
|
17
|
+
* expensive part is what a creator does next: a placeholder on a fresh drop reads as a failed render,
|
|
18
|
+
* so you re-run `abx render --force` and re-upload everything for nothing.
|
|
19
|
+
*/
|
|
20
|
+
export declare const STORAGE_STATUS_FLAGS: Set<string>;
|
|
21
|
+
export declare function cmdStorageStatus(locator: string | undefined, flags: Flags): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* `abx storage upload <path> [--backend ipfs|arweave|cloud]` — upload one file to a durable
|
|
24
|
+
* backend and print the **locator** to point at. This is the missing first half of the data-plane
|
|
25
|
+
* attach flow (`abx attach` takes a URI it assumes you already have): it hands you an `ipfs://` /
|
|
26
|
+
* `ar://` (content-addressed) or `<publicBase>/<key>` (cloud) URI, then prints the ready-to-run
|
|
27
|
+
* `abx attach` line. Reuses the exact upload path a deploy uses (resolve backend → put → locator),
|
|
28
|
+
* so the locator is identical to what a deploy would bridge.
|
|
29
|
+
*/
|
|
30
|
+
export declare function cmdStorageUpload(path: string | undefined, flags: Flags): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* The locator `abx attach` should be handed for an uploaded file.
|
|
33
|
+
*
|
|
34
|
+
* The backends return an UPLOAD-gateway https URL, because that is the production-safe form an NFT
|
|
35
|
+
* `image` needs. `attach` reads the scheme to pick the on-chain representation, so handing it that
|
|
36
|
+
* https URL stores the attachment as a plain `url` — the gateway host welded into the value, no
|
|
37
|
+
* `set-gateway` repoint, exactly the coupling the ipfs/arweave representations exist to avoid. An
|
|
38
|
+
* agent followed this command's own printed next step and silently downgraded the attachment.
|
|
39
|
+
*
|
|
40
|
+
* So for the two content-addressed backends we hand back the scheme form (`ipfs://<cid>/<name>`,
|
|
41
|
+
* `ar://<txid>/<name>`) and keep the https URL as the browsable one. `cloud` is unchanged: an https
|
|
42
|
+
* CDN locator IS its address, with no identity underneath to separate out.
|
|
43
|
+
*/
|
|
44
|
+
export declare function attachLocator(backendId: string, locator: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* `abx storage balance` / `abx storage topup --usd <n>` — dispatch to the active provider's
|
|
47
|
+
* funding capability. Generic verbs, provider chosen in config: Turbo exposes prepaid credits;
|
|
48
|
+
* a provider without funding (http-bundler) gets a clear "fund the wallet directly" instead.
|
|
49
|
+
*/
|
|
50
|
+
export declare function cmdStorageFunding(sub: 'balance' | 'topup', flags: Flags): Promise<void>;
|
|
51
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/commands/storage.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAC,KAAK,KAAK,EAAuC,MAAM,aAAa,CAAC;AAO7E;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,KAAK,iBAuBrD;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,iBAiF9C;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,aAA6E,CAAC;AAE/G,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,iBA8E/E;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,iBA6E5E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKxE;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK,iBAgD7E"}
|
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `abx storage` — stateless byte-custody commands: show the resolved-effective config, check
|
|
3
|
+
* whether a locator is actually retrievable yet (not just accepted), upload one file and print
|
|
4
|
+
* its locator, and Turbo (arweave) balance/topup. See `abx storage --help` for the sub-commands.
|
|
5
|
+
*/
|
|
6
|
+
import { copyFileSync, existsSync, readFileSync } from 'node:fs';
|
|
7
|
+
import { basename, resolve as resolvePath } from 'node:path';
|
|
8
|
+
import { contentIdFromLocator, makeWalletClient } from '@artblocks/abx-sdk';
|
|
9
|
+
import { arweaveAddress, arweaveFunding, contentTypeFromPath, locatorStatus, probeStorageBackend, resolveBackend, turboBalanceForAddress, uploadAndLocate, } from '@artblocks/abx-storage';
|
|
10
|
+
import { CHAIN, arweaveKeyFilePath, backendResolution, ensureArweaveIdentityForUpload, loadArweaveJwk, noteArweavePlan, storageOptions, storageOverrides, } from '../config.js';
|
|
11
|
+
import { isDryRun, parseFlags, warnStrayFlags } from '../flags.js';
|
|
12
|
+
import { bold, c, dim, g, info, ok, warn } from '../output.js';
|
|
13
|
+
// ── storage ────────────────────────────────────────────────────────────────--
|
|
14
|
+
// Storage is STATELESS — there's no config file. A backend is chosen per command via flags
|
|
15
|
+
// (`--backend …`) or declared in .env (ABX_STORAGE_BACKEND, …); secrets are env-only. `show`
|
|
16
|
+
// prints the resolved-effective config with provenance so there's never a hidden choice.
|
|
17
|
+
/**
|
|
18
|
+
* `abx storage backup-key [--out <path>]` — back up the managed Turbo/Arweave key. It signs uploads
|
|
19
|
+
* AND holds prepaid credits, so losing it strands the credits. Low-stakes (a few $ of credit), but
|
|
20
|
+
* we still COPY the file rather than print it — a key pasted into a terminal / agent log is leaked.
|
|
21
|
+
* With no `--out`, just report where it lives and how to back it up.
|
|
22
|
+
*/
|
|
23
|
+
export async function cmdStorageBackupKey(flags) {
|
|
24
|
+
const src = arweaveKeyFilePath();
|
|
25
|
+
if (process.env.ARWEAVE_JWK) {
|
|
26
|
+
info('Turbo identity comes from ARWEAVE_JWK (env), not a managed file — back up that env value yourself.');
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (!existsSync(src)) {
|
|
30
|
+
throw new Error(`no managed Arweave key yet at ${src} — it's created on your first Turbo upload (or set ARWEAVE_JWK / ABX_ARWEAVE_KEY_FILE to bring your own). Nothing to back up.`);
|
|
31
|
+
}
|
|
32
|
+
if (!flags.out) {
|
|
33
|
+
const jwk = loadArweaveJwk();
|
|
34
|
+
ok('Turbo/Arweave key — your storage credential');
|
|
35
|
+
if (jwk)
|
|
36
|
+
info(` address ${g(arweaveAddress(jwk))} ${dim('(holds your prepaid upload credits)')}`);
|
|
37
|
+
info(` file ${src}`);
|
|
38
|
+
info(` Back it up: ${bold('abx storage backup-key --out <path>')} ${dim('(copies the file; the key is never printed)')}`);
|
|
39
|
+
info(` ${dim('Low-stakes — only a few $ of upload credit — but lose it and those credits are stranded.')}`);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const dest = resolvePath(flags.out);
|
|
43
|
+
if (existsSync(dest))
|
|
44
|
+
throw new Error(`refusing to overwrite ${dest} — choose a new path for the backup.`);
|
|
45
|
+
copyFileSync(src, dest);
|
|
46
|
+
ok(`backed up your Turbo/Arweave key → ${dest}`);
|
|
47
|
+
info(` ${dim(`Keep it private — it signs uploads + holds credits. Restore by setting ABX_ARWEAVE_KEY_FILE to it, or copying it back to ${src}.`)}`);
|
|
48
|
+
}
|
|
49
|
+
export async function cmdStorage(rest) {
|
|
50
|
+
const [sub, ...args] = rest;
|
|
51
|
+
const flags = parseFlags(args);
|
|
52
|
+
if (sub === 'set') {
|
|
53
|
+
throw new Error('`abx storage set` was removed — storage is now stateless (no config file). Choose a backend per command with ' +
|
|
54
|
+
'flags (e.g. `abx deploy --backend ipfs --gateway https://…`), or declare defaults in .env ' +
|
|
55
|
+
'(ABX_STORAGE_BACKEND, ABX_IPFS_GATEWAY, ABX_S3_BUCKET, ABX_ARWEAVE_PROVIDER, …). See `abx storage show`.');
|
|
56
|
+
}
|
|
57
|
+
if (sub === 'balance' || sub === 'topup') {
|
|
58
|
+
return cmdStorageFunding(sub, flags);
|
|
59
|
+
}
|
|
60
|
+
if (sub === 'upload') {
|
|
61
|
+
return cmdStorageUpload(args[0], flags);
|
|
62
|
+
}
|
|
63
|
+
if (sub === 'backup-key') {
|
|
64
|
+
return cmdStorageBackupKey(flags);
|
|
65
|
+
}
|
|
66
|
+
if (sub === 'status') {
|
|
67
|
+
return cmdStorageStatus(args[0], flags);
|
|
68
|
+
}
|
|
69
|
+
// show (default) — the RESOLVED effective config + where each value came from. No persisted state.
|
|
70
|
+
//
|
|
71
|
+
// Per-command flags are honored here, exactly as `upload`/`status`/`balance` honor them. This used to
|
|
72
|
+
// read env-only, so `abx storage show --backend ipfs --gateway <url>` reported `backend: fs` while its
|
|
73
|
+
// OWN output said "choose per command: --backend … --gateway …" — advertising flags it then discarded.
|
|
74
|
+
// That was invisible until every command grew an unknown-flag notice, which correctly called it out
|
|
75
|
+
// (the flags really were ignored). Showing what a given set of flags WOULD resolve to is the whole
|
|
76
|
+
// point of a resolution preview, and `backendResolution` already reports `source: 'flag'` for it.
|
|
77
|
+
const overrides = storageOverrides(flags);
|
|
78
|
+
const { backend, source } = backendResolution(overrides);
|
|
79
|
+
const opts = storageOptions(overrides);
|
|
80
|
+
const prov = (v, env, dflt) => process.env[env] ? `${v} ${dim('(env ' + env + ')')}` : `${v ?? dflt} ${dim('(default)')}`;
|
|
81
|
+
console.log(bold('\n storage') + dim(' — resolved per-invocation; no config file, secrets in .env'));
|
|
82
|
+
console.log(` backend: ${g(backend)} ${dim('(' + (source === 'flag' ? '--backend' : source === 'env' ? 'env ABX_STORAGE_BACKEND' : 'default') + ')')}`);
|
|
83
|
+
if (opts.cloud)
|
|
84
|
+
info(`cloud: endpoint=${prov(opts.cloud.endpoint, 'ABX_S3_ENDPOINT', '-')} bucket=${prov(opts.cloud.bucket, 'ABX_S3_BUCKET', '-')} region=${prov(opts.cloud.region, 'ABX_S3_REGION', 'auto')} prefix=${prov(opts.cloud.prefix, 'ABX_S3_PREFIX', 'abx/content/')}`);
|
|
85
|
+
if (opts.ipfs)
|
|
86
|
+
info(`ipfs: mode=${prov(opts.ipfs.mode, 'ABX_IPFS_MODE', 'kubo')} gateway=${prov(opts.ipfs.gateway, 'ABX_IPFS_GATEWAY', '-')} apiUrl=${prov(opts.ipfs.apiUrl, 'ABX_IPFS_API_URL', '-')}`);
|
|
87
|
+
if (opts.arweave) {
|
|
88
|
+
info(`arweave: provider=${prov(opts.arweave.provider, 'ABX_ARWEAVE_PROVIDER', 'turbo')} gateway=${prov(opts.arweave.gateway, 'ABX_ARWEAVE_GATEWAY', 'https://arweave.net')}${opts.arweave.uploadUrl ? ` uploadUrl=${opts.arweave.uploadUrl}` : ''}`);
|
|
89
|
+
if ((opts.arweave.provider ?? 'turbo') === 'turbo') {
|
|
90
|
+
const jwk = loadArweaveJwk();
|
|
91
|
+
if (jwk)
|
|
92
|
+
info(` identity ${arweaveAddress(jwk)} ${dim(`(holds upload credits — back up ${arweaveKeyFilePath()})`)}`);
|
|
93
|
+
else
|
|
94
|
+
info(` ${dim('identity created on first upload; free under 100 KB. `abx storage balance` to view credits')}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
console.log(dim('\n choose per command: --backend <fs|cloud|ipfs|arweave> [--gateway/--bucket/--region/…] · or declare in .env'));
|
|
98
|
+
console.log(dim(' secrets from env only: ABX_S3_ACCESS_KEY_ID · ABX_S3_SECRET_ACCESS_KEY · PINATA_JWT · ARWEAVE_UPLOAD_TOKEN · ARWEAVE_JWK'));
|
|
99
|
+
// B4: --check — go beyond "is this CONFIGURED" to "does a write actually reach the URL a token
|
|
100
|
+
// would bake on-chain." cloud gets a real PUT (API) + GET (public base) round trip — the only
|
|
101
|
+
// check that catches the R2/S3 endpoint-vs-public-base trap; ipfs/fs reuse their own health()
|
|
102
|
+
// (gateway/API reachability, dir writability — no upload); arweave adds a balance READ, never a
|
|
103
|
+
// paid upload. Exit code is meaningful: 0 ok, 1 any ✗ — so a script can gate a launch on this.
|
|
104
|
+
if (flags.check !== undefined) {
|
|
105
|
+
console.log(dim('\n checking — a real read/write against the resolved config (no paid upload, no ipfs pin)…'));
|
|
106
|
+
try {
|
|
107
|
+
const result = await probeStorageBackend(opts);
|
|
108
|
+
if (result.ok) {
|
|
109
|
+
ok(`${result.backend}: ${result.detail}`);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
warn(`${result.backend}: ${result.detail}`);
|
|
113
|
+
if (result.putUrl)
|
|
114
|
+
info(` put ${result.putUrl}`);
|
|
115
|
+
if (result.publicUrl)
|
|
116
|
+
info(` get ${result.publicUrl}`);
|
|
117
|
+
process.exitCode = 1;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch (err) {
|
|
121
|
+
warn(`${backend}: ${err.message}`);
|
|
122
|
+
process.exitCode = 1;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
console.log('');
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* `abx storage status <locator>` — is it **retrievable** yet, not just accepted?
|
|
129
|
+
*
|
|
130
|
+
* The gap this closes: an upload service answers "accepted" the moment it holds your bytes, a gateway
|
|
131
|
+
* answers "serving" only once they reach it, and on Arweave that runs to minutes. Two independent
|
|
132
|
+
* integrators built their own version of this check eight days apart; the second saw 32/32 renders
|
|
133
|
+
* 404 on `arweave.net` while 22/32 already served elsewhere and the uploader said `CONFIRMED`. The
|
|
134
|
+
* expensive part is what a creator does next: a placeholder on a fresh drop reads as a failed render,
|
|
135
|
+
* so you re-run `abx render --force` and re-upload everything for nothing.
|
|
136
|
+
*/
|
|
137
|
+
export const STORAGE_STATUS_FLAGS = new Set(['json', 'gateway', 'backend', 'primary-only', 'timeout']);
|
|
138
|
+
export async function cmdStorageStatus(locator, flags) {
|
|
139
|
+
if (!locator || locator.startsWith('--')) {
|
|
140
|
+
console.error('usage: abx storage status <locator> [--json] [--gateway <url>] [--primary-only]\n' +
|
|
141
|
+
' <locator> — ar://<txid> · ipfs://<cid> · an https:// gateway URL · or a bare txid/CID\n');
|
|
142
|
+
process.exitCode = 1;
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
warnStrayFlags(flags, STORAGE_STATUS_FLAGS, 'storage status');
|
|
146
|
+
const jsonMode = flags.json !== undefined;
|
|
147
|
+
// The gateway that matters is the one a baked locator resolves through, so default to the active
|
|
148
|
+
// backend's configured gateway rather than a hardcoded host — otherwise the verdict is about a
|
|
149
|
+
// gateway this project will never use.
|
|
150
|
+
const opts = storageOptions(storageOverrides(flags));
|
|
151
|
+
const configured = flags.gateway ?? opts.arweave?.gateway ?? opts.ipfs?.gateway ?? undefined;
|
|
152
|
+
const status = await locatorStatus(locator, {
|
|
153
|
+
gateway: configured,
|
|
154
|
+
primaryOnly: flags['primary-only'] !== undefined,
|
|
155
|
+
timeoutMs: flags.timeout === undefined ? undefined : Number(flags.timeout),
|
|
156
|
+
});
|
|
157
|
+
if (jsonMode) {
|
|
158
|
+
process.stdout.write(JSON.stringify(status, null, 2) + '\n');
|
|
159
|
+
// A program's whole reason to call this is to gate on it, so the verdict is also the exit code:
|
|
160
|
+
// 0 = ready, 1 = not yet. `until abx storage status <loc> --json; do sleep 10; done` just works.
|
|
161
|
+
if (status.readiness !== 'ready')
|
|
162
|
+
process.exitCode = 1;
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
const probeLine = (p, label) => {
|
|
166
|
+
const verdict = p.serving
|
|
167
|
+
? `${g('serving')}`
|
|
168
|
+
: p.status !== null
|
|
169
|
+
? `${c.orange}${p.status}${c.reset}`
|
|
170
|
+
: `${c.orange}no response${c.reset}`;
|
|
171
|
+
const size = p.bytes !== null ? dim(` · ${p.bytes < 1024 ? `${p.bytes} B` : `${(p.bytes / 1024).toFixed(1)} KB`}`) : '';
|
|
172
|
+
const type = p.contentType ? dim(` · ${p.contentType.split(';')[0]}`) : '';
|
|
173
|
+
const why = p.error ? dim(` · ${p.error}`) : '';
|
|
174
|
+
console.log(` ${label} ${bold(p.gateway)} → ${verdict}${size}${type} ${dim(`${p.ms}ms`)}${why}`);
|
|
175
|
+
};
|
|
176
|
+
console.log(`\n ${bold('storage status')} ${dim(`— ${status.network} · ${status.id.length > 60 ? status.id.slice(0, 60) + '…' : status.id}`)}`);
|
|
177
|
+
probeLine(status.primary, dim('your gateway '));
|
|
178
|
+
for (const a of status.alternates)
|
|
179
|
+
probeLine(a, dim('also '));
|
|
180
|
+
console.log('');
|
|
181
|
+
if (status.readiness === 'ready') {
|
|
182
|
+
ok(`${bold('ready')} — your gateway serves these bytes. Safe to reference in a token.`);
|
|
183
|
+
}
|
|
184
|
+
else if (status.readiness === 'propagating') {
|
|
185
|
+
const where = status.alternates.filter((a) => a.serving).map((a) => a.gateway).join(', ');
|
|
186
|
+
warn(`${bold('propagating')} — the data is provably on the network (${where} serves it) but ${bold(status.primary.gateway)} hasn't caught up.`);
|
|
187
|
+
info('Waiting is the fix. Do NOT re-render or re-upload — the bytes are already stored, and a second upload just pays twice.');
|
|
188
|
+
if (status.network === 'arweave') {
|
|
189
|
+
info(`To serve sooner from a gateway that already has it, set ${bold('ABX_ARWEAVE_GATEWAY')} before the upload that bakes the locator ${dim('(it cannot be repaired afterwards — the gateway is part of the stored value).')}`);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
// Never call this "propagating": from outside, a settling locator and a wrong one look the same.
|
|
194
|
+
warn(`${bold('not retrievable')} — no gateway probed is serving it.`);
|
|
195
|
+
// One exception worth reading the statuses for. Gateways answer 404 for "I don't have these
|
|
196
|
+
// bytes" (settling and wrong are identical there) but 400 for "that isn't a valid id at all".
|
|
197
|
+
// Every probe agreeing on a non-404 client error is real evidence, and it matters because the
|
|
198
|
+
// inverse mistake — waiting out a typo — costs more than a needless re-upload.
|
|
199
|
+
const probes = [status.primary, ...status.alternates];
|
|
200
|
+
const answered = probes.filter((p) => p.status !== null);
|
|
201
|
+
const allInvalid = answered.length > 0 && answered.every((p) => p.status >= 400 && p.status < 500 && p.status !== 404);
|
|
202
|
+
if (allInvalid) {
|
|
203
|
+
info(`every gateway rejected the id itself (${answered.map((p) => p.status).join(', ')}), not merely "don't have it" — so this is very likely a ${bold('malformed locator')} (truncated txid/CID, or a stray character), not propagation. Re-check the value you stored; waiting will not fix it.`);
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
info('Two causes, and this check cannot tell them apart: it is still settling (wait and re-run — minutes on Arweave), or the locator is wrong (a truncated txid/CID, or the upload never completed).');
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
console.log(`\n ${dim('gate a script on this:')} ${bold(`abx storage status ${locator} --json`)} ${dim('(exit 0 only when ready)')}\n`);
|
|
210
|
+
if (status.readiness !== 'ready')
|
|
211
|
+
process.exitCode = 1;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* `abx storage upload <path> [--backend ipfs|arweave|cloud]` — upload one file to a durable
|
|
215
|
+
* backend and print the **locator** to point at. This is the missing first half of the data-plane
|
|
216
|
+
* attach flow (`abx attach` takes a URI it assumes you already have): it hands you an `ipfs://` /
|
|
217
|
+
* `ar://` (content-addressed) or `<publicBase>/<key>` (cloud) URI, then prints the ready-to-run
|
|
218
|
+
* `abx attach` line. Reuses the exact upload path a deploy uses (resolve backend → put → locator),
|
|
219
|
+
* so the locator is identical to what a deploy would bridge.
|
|
220
|
+
*/
|
|
221
|
+
export async function cmdStorageUpload(path, flags) {
|
|
222
|
+
if (!path || path.startsWith('--')) {
|
|
223
|
+
console.error('usage: abx storage upload <path> [--backend ipfs|arweave|cloud] [--key <name>] [--json]\n uploads one file and prints its locator (the URI `abx attach` wants); --json emits it as data.\n');
|
|
224
|
+
process.exitCode = 1;
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
const abs = resolvePath(path);
|
|
228
|
+
const bytes = new Uint8Array(readFileSync(abs));
|
|
229
|
+
const contentType = contentTypeFromPath(abs);
|
|
230
|
+
const opts = storageOptions(storageOverrides(flags));
|
|
231
|
+
const backend = resolveBackend(opts);
|
|
232
|
+
if (backend.id === 'fs') {
|
|
233
|
+
throw new Error("the 'fs' backend has no public URL — an attached file must be reachable off this machine. " +
|
|
234
|
+
'Upload with `--backend arweave` (pay-once permanent) or `--backend ipfs` (keep it pinned), or `--backend cloud` (your S3/R2).');
|
|
235
|
+
}
|
|
236
|
+
const jsonMode = flags.json !== undefined;
|
|
237
|
+
if (!jsonMode)
|
|
238
|
+
noteArweavePlan(opts, bytes.length); // free-vs-credit readout for the arweave lane
|
|
239
|
+
const name = (flags.key && flags.key !== 'true' ? flags.key : basename(abs)).replace(/^\/+/, '');
|
|
240
|
+
// --dry-run: an upload is IRREVERSIBLE and can happen even keyless (Arweave's free tier under
|
|
241
|
+
// 100 KB auto-creates an identity), so a "preview" that actually uploaded would surprise. Show
|
|
242
|
+
// the plan (backend, size, declared type, locator shape) and upload nothing.
|
|
243
|
+
if (isDryRun(flags)) {
|
|
244
|
+
const shape = backend.publicBase ? `${backend.publicBase.replace(/\/+$/, '')}/${name}` : `<${backend.id}-gateway>/<root>/${name}`;
|
|
245
|
+
console.log(`\n ${bold('◆ storage upload')} ${dim('(dry run — nothing uploaded)')}`);
|
|
246
|
+
console.log(` ${dim('file'.padEnd(10))} ${basename(abs)} ${dim(`(${bytes.length} bytes, ${contentType})`)}`);
|
|
247
|
+
console.log(` ${dim('backend'.padEnd(10))} ${backend.id}`);
|
|
248
|
+
// Name the IPFS mode, and say what an absent credential actually means. There is no silent
|
|
249
|
+
// fallback to local `fs` (an earlier skill line wrongly claimed one) — without PINATA_JWT the
|
|
250
|
+
// backend resolves to kubo against a LOCAL node, so a dry run that looked fine would fail at
|
|
251
|
+
// upload for anyone not running one. A preview should surface that, not defer it to the failure.
|
|
252
|
+
if (backend.id === 'ipfs' && !process.env.PINATA_JWT && !process.env.ABX_IPFS_MODE) {
|
|
253
|
+
warn(`no ${bold('PINATA_JWT')} set → this resolves to a LOCAL IPFS node (kubo at ${process.env.ABX_IPFS_API_URL ?? 'http://127.0.0.1:5001'}). The real upload fails unless that node is running — set PINATA_JWT for the managed lane, or ${bold('--backend arweave')} for no-setup permanent storage.`);
|
|
254
|
+
}
|
|
255
|
+
console.log(` ${dim('locator'.padEnd(10))} ${shape} ${dim('(filename preserved → declared type survives)')}`);
|
|
256
|
+
const shapeForAttach = backend.id === 'ipfs' ? `ipfs://<cid>/${name}` : backend.id === 'arweave' ? `ar://<txid>/${name}` : shape;
|
|
257
|
+
console.log(dim(`\n Re-run without --dry-run to upload, then: `) + `${g(`abx attach <address> <key> ${shapeForAttach}`)}\n`);
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
// In --json mode nothing but the JSON may touch stdout; progress still goes out, on stderr.
|
|
261
|
+
const progress = (line) => (jsonMode ? process.stderr.write(line + '\n') : console.log(line));
|
|
262
|
+
progress(` uploading ${bold(basename(abs))} ${dim(`(${bytes.length} bytes, ${contentType})`)} to '${backend.id}' …`);
|
|
263
|
+
// The returned locator MUST carry the filename so the declared mimeType survives when attached
|
|
264
|
+
// (the on-chain field has no MIME slot — the URL extension IS the declaration). uploadAndLocate
|
|
265
|
+
// encapsulates the capability-based branch (cloud key / dir-wrap / bare fallback).
|
|
266
|
+
const { locator, filenamePreserved, fallbackReason } = await uploadAndLocate(backend, name, { bytes, contentType });
|
|
267
|
+
if (!filenamePreserved && fallbackReason) {
|
|
268
|
+
const msg = `couldn't wrap the file with its name (${fallbackReason}) — the locator has no extension, so its declared type will be application/octet-stream when attached.`;
|
|
269
|
+
if (jsonMode)
|
|
270
|
+
process.stderr.write(` ⚠ ${msg}\n`);
|
|
271
|
+
else
|
|
272
|
+
warn(msg);
|
|
273
|
+
}
|
|
274
|
+
// --json: the locator as data, not as prose. An integrator scraped this line, captured the ANSI
|
|
275
|
+
// colour codes along with the URL, wrote the result into a STORED player URL, and only found out
|
|
276
|
+
// when it 404'd in production. A value a program needs must be obtainable without parsing output.
|
|
277
|
+
if (jsonMode) {
|
|
278
|
+
process.stdout.write(JSON.stringify({ locator, attachLocator: attachLocator(backend.id, locator), backend: backend.id, name, bytes: bytes.length, contentType, filenamePreserved }) + '\n');
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
const forAttach = attachLocator(backend.id, locator);
|
|
282
|
+
console.log(` ${g('✓')} uploaded → ${bold(locator)}`);
|
|
283
|
+
if (contentType === 'application/octet-stream') {
|
|
284
|
+
warn(`no known extension on ${basename(abs)} → its declared type will be application/octet-stream when attached.`);
|
|
285
|
+
}
|
|
286
|
+
console.log(dim('\n attach it to a token (pick any key):\n') + ` ${g(`abx attach <address> <key> ${forAttach}`)}\n`);
|
|
287
|
+
if (forAttach !== locator) {
|
|
288
|
+
console.log(dim(` ${bold(forAttach)} — not the https URL above — is what attach wants: it stores the bare id, so a\n`) +
|
|
289
|
+
dim(` gateway change is later one ${bold('abx set-gateway')} tx instead of a re-attach.\n`));
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* The locator `abx attach` should be handed for an uploaded file.
|
|
294
|
+
*
|
|
295
|
+
* The backends return an UPLOAD-gateway https URL, because that is the production-safe form an NFT
|
|
296
|
+
* `image` needs. `attach` reads the scheme to pick the on-chain representation, so handing it that
|
|
297
|
+
* https URL stores the attachment as a plain `url` — the gateway host welded into the value, no
|
|
298
|
+
* `set-gateway` repoint, exactly the coupling the ipfs/arweave representations exist to avoid. An
|
|
299
|
+
* agent followed this command's own printed next step and silently downgraded the attachment.
|
|
300
|
+
*
|
|
301
|
+
* So for the two content-addressed backends we hand back the scheme form (`ipfs://<cid>/<name>`,
|
|
302
|
+
* `ar://<txid>/<name>`) and keep the https URL as the browsable one. `cloud` is unchanged: an https
|
|
303
|
+
* CDN locator IS its address, with no identity underneath to separate out.
|
|
304
|
+
*/
|
|
305
|
+
export function attachLocator(backendId, locator) {
|
|
306
|
+
if (backendId !== 'ipfs' && backendId !== 'arweave')
|
|
307
|
+
return locator;
|
|
308
|
+
const contentId = contentIdFromLocator(backendId, locator);
|
|
309
|
+
if (!contentId)
|
|
310
|
+
return locator;
|
|
311
|
+
return `${backendId === 'ipfs' ? 'ipfs' : 'ar'}://${contentId}`;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* `abx storage balance` / `abx storage topup --usd <n>` — dispatch to the active provider's
|
|
315
|
+
* funding capability. Generic verbs, provider chosen in config: Turbo exposes prepaid credits;
|
|
316
|
+
* a provider without funding (http-bundler) gets a clear "fund the wallet directly" instead.
|
|
317
|
+
*/
|
|
318
|
+
export async function cmdStorageFunding(sub, flags) {
|
|
319
|
+
const opts = storageOptions(storageOverrides(flags));
|
|
320
|
+
if (opts.backend !== 'arweave') {
|
|
321
|
+
throw new Error(`\`abx storage ${sub}\` applies to the arweave backend; the active backend is '${opts.backend}'. Re-run with \`--backend arweave\` (e.g. \`abx storage ${sub} --backend arweave\`), or set \`ABX_STORAGE_BACKEND=arweave\` in .env.`);
|
|
322
|
+
}
|
|
323
|
+
ensureArweaveIdentityForUpload(opts); // so there's an address to fund / read
|
|
324
|
+
const funding = arweaveFunding(opts.arweave); // throws a clear reason if the provider has no balance
|
|
325
|
+
const address = await funding.address();
|
|
326
|
+
// The active identity determines what the address IS + how to read the fund note.
|
|
327
|
+
const isEthLane = !!(opts.arweave?.ethSignerKey || opts.arweave?.remoteEth);
|
|
328
|
+
const identityNote = isEthLane
|
|
329
|
+
? 'This is your Ethereum wallet acting as a Turbo identity (--storage-signer eth) — credits attach to this address.'
|
|
330
|
+
: `This is your Turbo/Arweave key (${arweaveKeyFilePath()}), NOT your Ethereum wallet — credits attach to THIS key.`;
|
|
331
|
+
if (sub === 'balance') {
|
|
332
|
+
const { credits, winc } = await funding.balance();
|
|
333
|
+
ok(`Turbo balance for ${g(address)}`);
|
|
334
|
+
info(` ${bold(credits)} credits ${dim(`(${winc} winc)`)}`);
|
|
335
|
+
info(` ${dim(identityNote)}`);
|
|
336
|
+
// On the managed-key lane, ALSO show the creator's ETH wallet's Turbo balance (queryable by
|
|
337
|
+
// address, no key) so "use my wallet's credits" is visible without a failed upload first.
|
|
338
|
+
if (!isEthLane) {
|
|
339
|
+
let wallet = flags.for;
|
|
340
|
+
if (!wallet)
|
|
341
|
+
try {
|
|
342
|
+
wallet = makeWalletClient({ chainKey: CHAIN }).account.address;
|
|
343
|
+
}
|
|
344
|
+
catch { /* no key */ }
|
|
345
|
+
const wb = wallet ? await turboBalanceForAddress(wallet, 'ethereum') : null;
|
|
346
|
+
if (wb && Number(wb.winc) > 0) {
|
|
347
|
+
info(` ${dim('↳ your ETH wallet')} ${g(wallet)} ${dim('holds')} ${bold(wb.credits)} ${dim('Turbo credits — spend those with')} ${bold('--storage-signer eth')} ${dim('(no top-up needed).')}`);
|
|
348
|
+
}
|
|
349
|
+
else if (wallet) {
|
|
350
|
+
info(` ${dim(`↳ your ETH wallet ${wallet} has no Turbo credits either. (Pass --for <addr> to check a different wallet.)`)}`);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
info(' Under 100 KB always uploads free; credits cover larger files. One-time cost — no recurring fee.');
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
356
|
+
// topup
|
|
357
|
+
const usd = Number(flags.usd);
|
|
358
|
+
if (!Number.isFinite(usd) || usd <= 0) {
|
|
359
|
+
throw new Error('top-up needs a positive --usd amount, e.g. `abx storage topup --usd 10`.');
|
|
360
|
+
}
|
|
361
|
+
const { url } = await funding.topup({ usd });
|
|
362
|
+
ok(`Turbo top-up: $${usd} → ${g(address)}`);
|
|
363
|
+
info(` ${dim(`Funds the address above — ${identityNote}`)}`);
|
|
364
|
+
info(' Pay by card (Stripe) at the link below — one-time, funds permanent storage, no recurring fee:');
|
|
365
|
+
console.log(` ${url}`);
|
|
366
|
+
info(` ${dim('Link not opening? Fallback: go to')} ${bold('https://turbo-topup.com')} ${dim('and fund this exact address:')}`);
|
|
367
|
+
console.log(` ${g(address)}`);
|
|
368
|
+
info(' Credits land on the address above and persist for future uploads. Re-check with `abx storage balance`.');
|
|
369
|
+
}
|
|
370
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/commands/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
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 { type Address, type PreparedTx } from '@artblocks/abx-sdk';
|
|
14
|
+
import { type Flags } from '../flags.js';
|
|
15
|
+
/** Matches the App Store registry schema (`lib/submissions.ts` in abx-app-store). */
|
|
16
|
+
export declare const APP_CATEGORIES: readonly ["Create", "Games", "Physical world", "Records", "Coordination", "Utilities", "Developer tools"];
|
|
17
|
+
export declare const APP_STAGES: readonly ["Live", "Prototype", "Concept"];
|
|
18
|
+
export declare const APP_TONES: readonly ["acid", "coral", "blue", "violet", "amber", "mint"];
|
|
19
|
+
export declare const APP_RELATIONSHIP = "built-on-abx";
|
|
20
|
+
declare const PARAM_KEYS: readonly ["name", "summary", "description", "url", "urlLabel", "image", "mark", "tone", "category", "relationships", "stage", "tags"];
|
|
21
|
+
type ParamKey = (typeof PARAM_KEYS)[number];
|
|
22
|
+
/** Sequencer/RPC per-tx gas cap. A full param dump in one multicall exceeds it. */
|
|
23
|
+
export declare const MAX_CALLS_PER_TX = 3;
|
|
24
|
+
export type SubmitAppEntry = {
|
|
25
|
+
name: string;
|
|
26
|
+
summary: string;
|
|
27
|
+
description: string;
|
|
28
|
+
url: string;
|
|
29
|
+
urlLabel: string;
|
|
30
|
+
image: string;
|
|
31
|
+
mark: string;
|
|
32
|
+
tone: (typeof APP_TONES)[number];
|
|
33
|
+
category: (typeof APP_CATEGORIES)[number];
|
|
34
|
+
stage: (typeof APP_STAGES)[number];
|
|
35
|
+
tags: string[];
|
|
36
|
+
};
|
|
37
|
+
export type AppStoreAddresses = {
|
|
38
|
+
registry: Address;
|
|
39
|
+
minter: Address;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Catalog copy from flags. Requires name / summary / description so deploy identity
|
|
43
|
+
* cannot silently become the listing.
|
|
44
|
+
*/
|
|
45
|
+
export declare function parseSubmitAppEntry(flags: Flags): SubmitAppEntry;
|
|
46
|
+
export declare function paramValues(entry: SubmitAppEntry): Record<ParamKey, string>;
|
|
47
|
+
export declare function resolveAppStoreAddresses(chainKey: string, flags?: Flags, env?: NodeJS.ProcessEnv): AppStoreAddresses;
|
|
48
|
+
export declare function chunkItems<T>(items: T[], size?: number): T[][];
|
|
49
|
+
export declare function buildParamOps(args: {
|
|
50
|
+
registry: Address;
|
|
51
|
+
tokenId: bigint;
|
|
52
|
+
entry: SubmitAppEntry;
|
|
53
|
+
chainId: number;
|
|
54
|
+
}): PreparedTx[];
|
|
55
|
+
export declare function batchParamOps(ops: PreparedTx[]): PreparedTx[];
|
|
56
|
+
export declare function cmdSubmitApp(address: string | undefined, flags: Flags): Promise<void>;
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=submit-app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submit-app.d.ts","sourceRoot":"","sources":["../../src/commands/submit-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAOL,KAAK,OAAO,EAEZ,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAC,KAAK,KAAK,EAAW,MAAM,aAAa,CAAC;AAWjD,qFAAqF;AACrF,eAAO,MAAM,cAAc,2GAQjB,CAAC;AAEX,eAAO,MAAM,UAAU,2CAA4C,CAAC;AACpE,eAAO,MAAM,SAAS,+DAAgE,CAAC;AACvF,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C,QAAA,MAAM,UAAU,uIAaN,CAAC;AAEX,KAAK,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5C,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAgElC,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C,KAAK,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAC,CAAC;AA4DrE;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,CAchE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAe3E;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,KAAU,EACjB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,iBAAiB,CAenB;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,SAAmB,GAAG,CAAC,EAAE,EAAE,CAKxE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,UAAU,EAAE,CA+Bf;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAQ7D;AA2CD,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CA6O3F"}
|