@artblocks/abx-cli 0.1.0-alpha.0
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/LICENSE +21 -0
- package/assets/renderer-scaffold/README.md +59 -0
- package/assets/renderer-scaffold/foundry.toml +15 -0
- package/assets/renderer-scaffold/remappings.txt +3 -0
- package/assets/renderer-scaffold/script/Deploy.s.sol +23 -0
- package/assets/renderer-scaffold/src/MyRenderer.sol +123 -0
- package/assets/renderer-scaffold/src/MyTraits.sol +75 -0
- package/assets/renderer-scaffold/src/interfaces/IAbxFieldRenderer.sol +32 -0
- package/assets/renderer-scaffold/src/interfaces/IAbxParams.sol +26 -0
- package/assets/renderer-scaffold/test/MyRenderer.t.sol +110 -0
- package/dist/config.d.ts +69 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +184 -0
- package/dist/config.js.map +1 -0
- package/dist/deps.d.ts +46 -0
- package/dist/deps.d.ts.map +1 -0
- package/dist/deps.js +90 -0
- package/dist/deps.js.map +1 -0
- package/dist/flags.d.ts +25 -0
- package/dist/flags.d.ts.map +1 -0
- package/dist/flags.js +34 -0
- package/dist/flags.js.map +1 -0
- package/dist/inspect.d.ts +48 -0
- package/dist/inspect.d.ts.map +1 -0
- package/dist/inspect.js +184 -0
- package/dist/inspect.js.map +1 -0
- package/dist/main.d.ts +3 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +5102 -0
- package/dist/main.js.map +1 -0
- package/dist/migrate.d.ts +65 -0
- package/dist/migrate.d.ts.map +1 -0
- package/dist/migrate.js +180 -0
- package/dist/migrate.js.map +1 -0
- package/dist/mintpage.d.ts +46 -0
- package/dist/mintpage.d.ts.map +1 -0
- package/dist/mintpage.js +461 -0
- package/dist/mintpage.js.map +1 -0
- package/dist/onchain-uri.d.ts +97 -0
- package/dist/onchain-uri.d.ts.map +1 -0
- package/dist/onchain-uri.js +243 -0
- package/dist/onchain-uri.js.map +1 -0
- package/dist/ownerops.d.ts +195 -0
- package/dist/ownerops.d.ts.map +1 -0
- package/dist/ownerops.js +1270 -0
- package/dist/ownerops.js.map +1 -0
- package/dist/provision.d.ts +86 -0
- package/dist/provision.d.ts.map +1 -0
- package/dist/provision.js +372 -0
- package/dist/provision.js.map +1 -0
- package/dist/remote.d.ts +58 -0
- package/dist/remote.d.ts.map +1 -0
- package/dist/remote.js +54 -0
- package/dist/remote.js.map +1 -0
- package/dist/schema.d.ts +15 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +125 -0
- package/dist/schema.js.map +1 -0
- package/dist/series-traits.d.ts +30 -0
- package/dist/series-traits.d.ts.map +1 -0
- package/dist/series-traits.js +103 -0
- package/dist/series-traits.js.map +1 -0
- package/dist/signer.d.ts +80 -0
- package/dist/signer.d.ts.map +1 -0
- package/dist/signer.js +520 -0
- package/dist/signer.js.map +1 -0
- package/dist/upload.d.ts +28 -0
- package/dist/upload.d.ts.map +1 -0
- package/dist/upload.js +41 -0
- package/dist/upload.js.map +1 -0
- package/package.json +55 -0
- package/skill/SKILL.md +304 -0
- package/skill/reference/code-projects.md +211 -0
- package/skill/reference/hosting.md +138 -0
- package/skill/reference/operating.md +116 -0
- package/skill/reference/setup.md +36 -0
- package/skill/reference/troubleshooting.md +28 -0
package/dist/inspect.js
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `abx inspect <script.js>` — static analysis of a generative script, BEFORE picking a lane.
|
|
3
|
+
*
|
|
4
|
+
* The membrane fix behind this: an agent (or creator) should DERIVE the deployment lane from what
|
|
5
|
+
* the script actually needs — are there traits? are they reproducible on-chain? how big is the
|
|
6
|
+
* assembled document (does a single `tokenURI` eth_call even fit)? — instead of guessing "fully
|
|
7
|
+
* on-chain!" and walking it back. This module is the pure analysis; `cmdInspect` formats it.
|
|
8
|
+
*
|
|
9
|
+
* Static only — it never executes the script (that's the resolver/runner's job, and executing
|
|
10
|
+
* untrusted art in the CLI would be a footgun). Everything here is regex/heuristic over the source.
|
|
11
|
+
*/
|
|
12
|
+
/** Approx bytes a known on-chain dependency adds to the ASSEMBLED document (gzip'd + base64'd, as it
|
|
13
|
+
* rides in the inline data-URI). Measured from real drops; used only for the RPC-size estimate. */
|
|
14
|
+
const KNOWN_DEP_DOC_BYTES = {
|
|
15
|
+
'p5@1.0.0': 200_000, // p5 1.0.0 (~623KB raw) rides ~200KB gzip+base64 in the document
|
|
16
|
+
};
|
|
17
|
+
/** The on-chain runtime the generator always inlines (abx.js + the gunzip bootstrap), base64'd. */
|
|
18
|
+
const RUNTIME_DOC_BYTES = 13_000;
|
|
19
|
+
/** A single `eth_call` returning `tokenURI` comfortably carries this much document on a default node
|
|
20
|
+
* (geth's 50M gas cap; memory expansion is ~quadratic). Past it, marketplaces that call `tokenURI`
|
|
21
|
+
* once may time out — prefer the generator's piecewise getters, directory mode, or a CDN dep. */
|
|
22
|
+
const SINGLE_CALL_DOC_CEILING = 1_500_000;
|
|
23
|
+
/** PostParam keys the script READS from tokenData — the palette-style customization inputs. A deploy
|
|
24
|
+
* that omits these from `--schema` silently drops them (the render sees `undefined` → its default),
|
|
25
|
+
* which is exactly how a real session "forgot" the palette it had itself identified. Heuristic (the
|
|
26
|
+
* script isn't executed): find identifiers aliased to `abx.tokenData`, then their property reads;
|
|
27
|
+
* plus direct `abx.tokenData.key`, destructuring, and `tokenData['key']`. `seed` is intrinsic, not a
|
|
28
|
+
* PostParam, so it's excluded. Advisory — over- or under-detection is a hint, never a hard gate. */
|
|
29
|
+
function paramKeys(source) {
|
|
30
|
+
const keys = new Set();
|
|
31
|
+
const add = (k) => { if (k && k !== 'seed')
|
|
32
|
+
keys.add(k); };
|
|
33
|
+
// Identifiers aliased to the token-data object — either `abx.tokenData` (via abx.js) or the raw
|
|
34
|
+
// injected global `window.abxTokenData` (e.g. `var td = (window.abx && abx.tokenData) || {}`).
|
|
35
|
+
const aliases = new Set();
|
|
36
|
+
// The `(?!…\.[A-Za-z_$])` guard: only alias when the RHS is the tokenData OBJECT, not a PROPERTY of
|
|
37
|
+
// it — `const seed = abx.tokenData.seed` aliases `seed` to a scalar, so its method calls
|
|
38
|
+
// (`seed.startsWith(…)`) must NOT be read as params (the false-positive that flagged startsWith/slice).
|
|
39
|
+
const aliasRe = /\b([A-Za-z_$][\w$]*)\s*=\s*[^;\n]*(?:abx\s*\??\s*\.\s*tokenData|window\s*\??\s*\.\s*abxTokenData)(?!\s*\??\s*\.\s*[A-Za-z_$])/g;
|
|
40
|
+
let m;
|
|
41
|
+
while ((m = aliasRe.exec(source)) !== null)
|
|
42
|
+
aliases.add(m[1]);
|
|
43
|
+
for (const a of aliases) {
|
|
44
|
+
// `(?!\s*\()` excludes method CALLS (`td.slice(…)`) — a param read is a bare property, never a call.
|
|
45
|
+
const dotRe = new RegExp(`\\b${a.replace(/[$]/g, '\\$')}\\s*\\??\\s*\\.\\s*([A-Za-z_$][\\w$]*)(?!\\s*\\()`, 'g');
|
|
46
|
+
let d;
|
|
47
|
+
while ((d = dotRe.exec(source)) !== null)
|
|
48
|
+
add(d[1]);
|
|
49
|
+
}
|
|
50
|
+
// Direct `abx.tokenData.key` and `abx.tokenData['key']`.
|
|
51
|
+
const directRe = /abx\s*\??\s*\.\s*tokenData\s*\??\s*(?:\.\s*([A-Za-z_$][\w$]*)|\[\s*['"]([^'"]+)['"]\s*\])/g;
|
|
52
|
+
while ((m = directRe.exec(source)) !== null)
|
|
53
|
+
add(m[1] ?? m[2]);
|
|
54
|
+
// Destructuring: `const { palette, foo } = abx.tokenData` (or an alias).
|
|
55
|
+
const destrRe = /(?:const|let|var)\s*\{([^}]*)\}\s*=\s*[^;\n]*(?:abx\s*\.\s*tokenData|\b(?:tokenData|td)\b)/g;
|
|
56
|
+
while ((m = destrRe.exec(source)) !== null) {
|
|
57
|
+
for (const part of m[1].split(','))
|
|
58
|
+
add(part.split(':')[0].trim().replace(/\.\.\./, '') || undefined);
|
|
59
|
+
}
|
|
60
|
+
return [...keys];
|
|
61
|
+
}
|
|
62
|
+
/** Extract the key names from the first `abx.traits({ ... })` object literal (flat objects only). */
|
|
63
|
+
function traitKeys(source) {
|
|
64
|
+
const m = source.match(/abx\s*\??\s*\.\s*traits\s*\(\s*\{([^}]*)\}/);
|
|
65
|
+
if (!m)
|
|
66
|
+
return [];
|
|
67
|
+
const keys = [];
|
|
68
|
+
// A key sits at the start of the object or right after a comma (so a ternary VALUE like
|
|
69
|
+
// `? 'Sparse' : 'Dense'` — a `:` not preceded by `,`/`{` — is never mistaken for a key). Allow
|
|
70
|
+
// leading whitespace after `^` so the FIRST key (preceded only by the newline after `{`) is caught.
|
|
71
|
+
// A key is EITHER a quoted string (arbitrary content — `'Plant Count'`, a spaced trait_type a
|
|
72
|
+
// marketplace shows) OR a bare identifier; a bare-identifier-only match silently dropped quoted
|
|
73
|
+
// keys, and "believe inspect" then sent authors chasing a phantom missing trait.
|
|
74
|
+
const re = /(?:^\s*|[,{]\s*)(?:(['"])([^'"]+)\1|([A-Za-z_$][\w$]*))\s*:/g;
|
|
75
|
+
let k;
|
|
76
|
+
while ((k = re.exec(m[1])) !== null)
|
|
77
|
+
keys.push(k[2] ?? k[3]);
|
|
78
|
+
return [...new Set(keys)];
|
|
79
|
+
}
|
|
80
|
+
export function analyzeScript(source, declaredDeps = []) {
|
|
81
|
+
const bytes = new TextEncoder().encode(source).length;
|
|
82
|
+
const keys = traitKeys(source);
|
|
83
|
+
const usesMathRandom = /Math\s*\.\s*random\s*\(/.test(source);
|
|
84
|
+
// p5's bare random(...) — a `random(` NOT preceded by `.` or a word char (so not Math.random / obj.random)
|
|
85
|
+
const usesBareRandom = /(^|[^.\w])random\s*\(/.test(source);
|
|
86
|
+
const seeded = /\brandomSeed\s*\(/.test(source);
|
|
87
|
+
const usesNoise = /\bnoise\s*\(/.test(source);
|
|
88
|
+
const looksP5 = /\bcreateCanvas\s*\(|function\s+setup\s*\(|function\s+draw\s*\(|\bp5\b/.test(source);
|
|
89
|
+
const depHints = [];
|
|
90
|
+
if (looksP5)
|
|
91
|
+
depHints.push('p5');
|
|
92
|
+
if (/\bTHREE\b/.test(source))
|
|
93
|
+
depHints.push('three');
|
|
94
|
+
if (/\bTone\b/.test(source))
|
|
95
|
+
depHints.push('tone');
|
|
96
|
+
// The abx.js runtime data contract — does the script read state + report traits the ONE way the
|
|
97
|
+
// toolkit injects/captures them? A near-miss global deploys fine but is silently broken.
|
|
98
|
+
// `\??\s*\.` tolerates optional chaining (`abx?.tokenData`) — a common, correct way to read it.
|
|
99
|
+
const readsTokenData = /abx\s*\??\s*\.\s*tokenData\b/.test(source) || /window\s*\??\s*\.\s*abxTokenData\b/.test(source);
|
|
100
|
+
const reportsTraits = /abx\s*\??\s*\.\s*traits\s*\(/.test(source);
|
|
101
|
+
let wrongGlobal = null;
|
|
102
|
+
if (!readsTokenData) {
|
|
103
|
+
if (/window\s*\.\s*tokenTraits\b/.test(source))
|
|
104
|
+
wrongGlobal = 'window.tokenTraits — traits are reported by CALLING abx.traits({…}), never by writing a global';
|
|
105
|
+
else if (/window\s*\.\s*tokenData\b/.test(source))
|
|
106
|
+
wrongGlobal = 'window.tokenData — abx injects window.abxTokenData (read it via abx.tokenData), not window.tokenData';
|
|
107
|
+
else if (/\btokenData\b/.test(source))
|
|
108
|
+
wrongGlobal = 'a bare `tokenData` — read abx.tokenData (via abx.js) or the raw window.abxTokenData global';
|
|
109
|
+
}
|
|
110
|
+
// Trait-reproducibility rubric (see docs/research/onchain-traits-feasibility.md).
|
|
111
|
+
let verdict;
|
|
112
|
+
let reason;
|
|
113
|
+
if (keys.length === 0) {
|
|
114
|
+
verdict = 'none';
|
|
115
|
+
reason = 'no abx.traits({…}) call → NO marketplace traits on ANY lane. A resolver captures the keys you pass to abx.traits(); it does not invent traits from internal variables or a global. Call abx.traits({…}) in the sketch if you want filterable traits.';
|
|
116
|
+
}
|
|
117
|
+
else if (usesMathRandom && !seeded) {
|
|
118
|
+
verdict = 'infeasible';
|
|
119
|
+
reason = 'traits derive from Math.random() (unseeded) — non-deterministic, reproducible nowhere. Serve attributes via a resolver, or ship without marketplace traits.';
|
|
120
|
+
}
|
|
121
|
+
else if (seeded && looksP5) {
|
|
122
|
+
verdict = 'exact-likely';
|
|
123
|
+
reason = 'seeded p5 random() is a documented LCG — integer floor/threshold/select traits port EXACTLY to Solidity. Confirm no trait keys off a raw float value. Wire with --attributes-renderer (see docs/research/onchain-traits-feasibility.md).';
|
|
124
|
+
}
|
|
125
|
+
else if (seeded) {
|
|
126
|
+
verdict = 'careful';
|
|
127
|
+
reason = "seeded, but the PRNG isn't identified as p5 — reproducible on-chain if you port that generator + the exact call order.";
|
|
128
|
+
}
|
|
129
|
+
else if (usesBareRandom) {
|
|
130
|
+
verdict = 'unknown';
|
|
131
|
+
reason = 'traits present and random() is used, but no randomSeed() was found — check the art is deterministic before attempting on-chain traits.';
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
verdict = 'exact-likely';
|
|
135
|
+
reason = 'traits look derived from the seed/params directly (no PRNG) — reproducible on-chain via an attributes field-renderer.';
|
|
136
|
+
}
|
|
137
|
+
const deps = declaredDeps;
|
|
138
|
+
let unknownDepSizes = false;
|
|
139
|
+
let depDocBytes = 0;
|
|
140
|
+
for (const d of deps) {
|
|
141
|
+
if (d in KNOWN_DEP_DOC_BYTES)
|
|
142
|
+
depDocBytes += KNOWN_DEP_DOC_BYTES[d];
|
|
143
|
+
else
|
|
144
|
+
unknownDepSizes = true;
|
|
145
|
+
}
|
|
146
|
+
const estBytes = bytes + RUNTIME_DOC_BYTES + depDocBytes;
|
|
147
|
+
return {
|
|
148
|
+
bytes,
|
|
149
|
+
estChunks: Math.max(1, Math.ceil(bytes / 22_000)),
|
|
150
|
+
traits: { present: keys.length > 0, keys },
|
|
151
|
+
paramHints: paramKeys(source),
|
|
152
|
+
prng: { seeded, usesBareRandom, usesMathRandom, usesNoise },
|
|
153
|
+
depHints,
|
|
154
|
+
looksP5,
|
|
155
|
+
feasibility: { verdict, reason },
|
|
156
|
+
doc: { estBytes, deps, fitsSingleCall: estBytes <= SINGLE_CALL_DOC_CEILING && !unknownDepSizes, unknownDepSizes },
|
|
157
|
+
runtime: { readsTokenData, reportsTraits, wrongGlobal },
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
/** A one-line lane recommendation derived from the analysis (the decision-tree output). */
|
|
161
|
+
export function recommendLane(a) {
|
|
162
|
+
const bigDoc = !a.doc.fitsSingleCall && !a.doc.unknownDepSizes;
|
|
163
|
+
if (bigDoc) {
|
|
164
|
+
return 'DIRECTORY mode (--code-dir) or a CDN dependency — the assembled document is too large for a single tokenURI eth_call to be reliable.';
|
|
165
|
+
}
|
|
166
|
+
if (a.feasibility.verdict === 'infeasible') {
|
|
167
|
+
return 'RESOLVER lane (--public-base-url) if marketplace traits matter (a server serves the JS-derived attributes), OR --onchain-uri and accept no marketplace traits (the tokenURI + animation are still fully on-chain).';
|
|
168
|
+
}
|
|
169
|
+
if (a.feasibility.verdict === 'exact-likely' || a.feasibility.verdict === 'none') {
|
|
170
|
+
const dep = a.depHints.length ? ` --dep ${a.depHints[0]}@<version>` : '';
|
|
171
|
+
const docKb = Math.round(a.doc.estBytes / 1000);
|
|
172
|
+
// Owner call (real-world experience): for a generative drop meant to sell, LEAD with the off-chain
|
|
173
|
+
// resolver — maneuverable over time + marketplaces fetch a SMALL tokenURI reliably. Fully-on-chain
|
|
174
|
+
// is the durability-max alternative, but its ~docKb tokenURI (whole doc per call) strains some
|
|
175
|
+
// marketplace/indexer reads. Traits are NOT a free flag on the on-chain lane (deployed renderer).
|
|
176
|
+
const traits = a.traits.present
|
|
177
|
+
? ` Traits (${a.traits.keys.join(', ')}): the resolver serves them from the render with no Solidity; on the on-chain lane they need a DEPLOYED --attributes-renderer (fork SeedTraitsRenderer.sol) or they're omitted.`
|
|
178
|
+
: ``;
|
|
179
|
+
return (`RECOMMENDED for a drop you'll sell — OFF-CHAIN RESOLVER (--public-base-url + an effects runner): maneuverable (metadata/serving can evolve without on-chain surgery) and marketplaces fetch a SMALL tokenURI reliably.${traits}\n` +
|
|
180
|
+
` ALTERNATIVE — FULLY ON-CHAIN (--onchain-uri${dep} --image-base <bucket>): maximal durability / no server, but the tokenURI carries the whole ~${docKb}KB document per call (some marketplace + indexer reads choke on a doc this big), stills are MANUAL, and later changes are on-chain re-points. Pick it when permanence + zero-infra outweigh maneuverability.`);
|
|
181
|
+
}
|
|
182
|
+
return (`RECOMMENDED — an OFF-CHAIN RESOLVER (--public-base-url): maneuverable, and it serves traits from the render regardless of the PRNG. --onchain-uri also works for tokenURI + animation, but first verify the script is deterministic (see the feasibility note), and note the large-tokenURI marketplace-read tradeoff; on that lane traits need a DEPLOYED --attributes-renderer or are omitted.`);
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=inspect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../src/inspect.ts"],"names":[],"mappings":"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"}
|
package/dist/main.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":""}
|