@artblocks/abx-cli 0.1.0-alpha.13 → 0.1.0-alpha.15
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/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -8
- package/dist/config.js.map +1 -1
- package/dist/flags.d.ts.map +1 -1
- package/dist/flags.js +1 -1
- package/dist/flags.js.map +1 -1
- package/dist/main.js +271 -78
- package/dist/main.js.map +1 -1
- package/dist/onchain-uri.d.ts +23 -39
- package/dist/onchain-uri.d.ts.map +1 -1
- package/dist/onchain-uri.js +94 -86
- package/dist/onchain-uri.js.map +1 -1
- package/dist/ownerops.d.ts +29 -13
- package/dist/ownerops.d.ts.map +1 -1
- package/dist/ownerops.js +270 -127
- package/dist/ownerops.js.map +1 -1
- package/dist/preview.d.ts +8 -0
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +27 -2
- package/dist/preview.js.map +1 -1
- package/package.json +6 -6
- package/skill/SKILL.md +4 -2
- package/skill/reference/code-projects.md +5 -3
- package/skill/reference/creator-token.md +71 -0
- package/skill/reference/decisions.md +2 -2
- package/skill/reference/operating.md +1 -1
package/dist/onchain-uri.d.ts
CHANGED
|
@@ -1,43 +1,34 @@
|
|
|
1
1
|
import { type Address, type GeneratorReadClient, type GeneratorStatus, type Hex, type ParsedDependencyRef, type ProjectState } from '@artblocks/abx-sdk';
|
|
2
2
|
import type { DepCheck } from './deps.js';
|
|
3
|
-
/** The self-referential key: the CSV lists it too (the resolver's tokenData carries every
|
|
4
|
-
* evented param — including `params.keys` itself — so the generator must list it to stay
|
|
5
|
-
* byte-aligned; inputsHash parity is load-bearing). */
|
|
6
|
-
export declare const PARAMS_KEYS = "params.keys";
|
|
7
|
-
/** ≤ this many chars rides as a literal readable-ASCII bytes32; longer takes the data path. */
|
|
8
|
-
export declare const PARAMS_KEYS_LITERAL_MAX = 31;
|
|
9
|
-
/**
|
|
10
|
-
* Compose the `params.keys` CSV: every param key the deploy writes ∪ the `--schema` keys ∪
|
|
11
|
-
* `params.keys` itself — deduped, sorted lexicographically, comma-joined. Sorted because the
|
|
12
|
-
* canonical tokenData serialization sorts keys; deterministic composition keeps the value
|
|
13
|
-
* reproducible from the same flags.
|
|
14
|
-
*/
|
|
15
|
-
export declare function composeParamsKeys(writtenParamKeys: string[], schemaKeys: string[]): string;
|
|
16
|
-
/** Whether a CSV fits the literal bytes32 lane (printable ASCII, ≤ 31 bytes). */
|
|
17
|
-
export declare function paramsKeysIsLiteral(csv: string): boolean;
|
|
18
|
-
/** The `params.keys` write leg: `setContractParam` (literal bytes32) when the CSV fits,
|
|
19
|
-
* else `setContractParamData` (one blob; hash evented — the generator reads it back whole). */
|
|
20
|
-
export declare function paramsKeysCall(csv: string): {
|
|
21
|
-
call: Hex;
|
|
22
|
-
encoding: 'literal' | 'data';
|
|
23
|
-
};
|
|
24
3
|
/**
|
|
25
4
|
* The `--onchain-uri` legs of the setup multicall, in order:
|
|
26
5
|
* 1. collection-scope `animation_url` field → representation `renderer`,
|
|
27
6
|
* value `abi.encode(generator)` (the canonical generator computes the live view on-chain);
|
|
28
|
-
* 2.
|
|
29
|
-
* 3. `
|
|
30
|
-
* 4. `setContractURIRenderer(metadataRenderer)` — contractURI too (parity with the 1/1 lane).
|
|
7
|
+
* 2. `setTokenURIRenderer(metadataRenderer)` — tokenURI resolves ON-CHAIN from here on;
|
|
8
|
+
* 3. `setContractURIRenderer(metadataRenderer)` — contractURI too (parity with the 1/1 lane).
|
|
31
9
|
* Placed BEFORE the mint legs so every token is born with the on-chain lane fully configured.
|
|
10
|
+
*
|
|
11
|
+
* There is no param leg: the generator enumerates the param surface from the token itself
|
|
12
|
+
* (`contractParamKeys` / `tokenParamKeys`), so there is nothing for a deploy to declare.
|
|
32
13
|
*/
|
|
33
14
|
export declare function onchainUriSetupCalls(args: {
|
|
34
15
|
generator: Address;
|
|
35
16
|
metadataRenderer: Address;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
17
|
+
}): Hex[];
|
|
18
|
+
/** The SET param keys: `contractParamKeys()`, plus `tokenParamKeys(tokenId)` when a token is named.
|
|
19
|
+
* Null when the getters are absent — a LEGACY project deployed before enumeration shipped (or a
|
|
20
|
+
* token type with no Params extension at all). */
|
|
21
|
+
export declare function readSetParamKeys(client: GeneratorReadClient, contract: Address, tokenId?: bigint): Promise<{
|
|
22
|
+
contract: string[];
|
|
23
|
+
token: string[];
|
|
24
|
+
} | null>;
|
|
25
|
+
/** The DECLARED (governed) keys: `paramSchemaKeys()`, append-only — including keys declared but
|
|
26
|
+
* never yet written, which are otherwise undiscoverable. Null on a legacy project. */
|
|
27
|
+
export declare function readParamSchemaKeys(client: GeneratorReadClient, contract: Address): Promise<string[] | null>;
|
|
28
|
+
/** Does this token expose the enumeration surface at all? The one-call probe behind the repoint
|
|
29
|
+
* guard: the canonical generator reads params from chain, so pointing a token that lacks these
|
|
30
|
+
* getters at it makes every param silently invisible. */
|
|
31
|
+
export declare function hasParamEnumeration(client: GeneratorReadClient, contract: Address): Promise<boolean>;
|
|
41
32
|
/** What the deploy can honestly promise about the generator's template branch, derived from
|
|
42
33
|
* the selection-time dependency report (never a new RPC): chain-complete iff every registry
|
|
43
34
|
* dep has proven ON-CHAIN bytes (OnChain refs read their data contract directly, so they
|
|
@@ -84,14 +75,7 @@ export interface OnChainUriReport {
|
|
|
84
75
|
* minted token — decoded, with the `animation_url` form checked against the branch.
|
|
85
76
|
*/
|
|
86
77
|
export declare function onChainUriReport(client: GeneratorReadClient, state: ProjectState, generatorOverride?: string): Promise<OnChainUriReport>;
|
|
87
|
-
/**
|
|
88
|
-
*
|
|
89
|
-
|
|
90
|
-
* parity with the resolver's). Returns the fixed CSV to suggest, or null when no nudge is
|
|
91
|
-
* warranted (no CSV = not on the on-chain lane; already listed = fine).
|
|
92
|
-
*/
|
|
93
|
-
export declare function paramsKeysNudge(existingCsv: string | null, configuredKey: string): string | null;
|
|
94
|
-
/** Read the project's `params.keys` contract param from chain (literal or data-backed);
|
|
95
|
-
* null when unset. Best-effort — callers must treat a throw as "no nudge". */
|
|
96
|
-
export declare function readParamsKeys(client: GeneratorReadClient, contract: Address): Promise<string | null>;
|
|
78
|
+
/** Read a legacy project's `params.keys` CSV from chain (literal or data-backed); null when unset.
|
|
79
|
+
* Best-effort — callers must treat a throw as "no legacy list". */
|
|
80
|
+
export declare function readLegacyParamsKeys(client: GeneratorReadClient, contract: Address): Promise<string[] | null>;
|
|
97
81
|
//# sourceMappingURL=onchain-uri.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onchain-uri.d.ts","sourceRoot":"","sources":["../src/onchain-uri.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"onchain-uri.d.ts","sourceRoot":"","sources":["../src/onchain-uri.ts"],"names":[],"mappings":"AAkBA,OAAO,EAUL,KAAK,OAAO,EACZ,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,GAAG,EACR,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAElB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,WAAW,CAAC;AAExC;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAA;CAAC,GAAG,GAAG,EAAE,CAqBjG;AAQD;;mDAEmD;AACnD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAC,GAAG,IAAI,CAAC,CAqBvD;AAED;uFACuF;AACvF,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAYlH;AAED;;0DAE0D;AAC1D,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAO1G;AAID;;;kFAGkF;AAClF,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,mBAAmB,EAAE,EAC3B,MAAM,EAAE,QAAQ,EAAE,GACjB;IAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAoB5C;AAID;;sEAEsE;AACtE,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAUnF;AAED;mFACmF;AACnF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAM9D;AAYD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EACL;QAAC,IAAI,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAC,GACzD;QAAC,IAAI,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,GAC1B;QAAC,IAAI,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,GACpC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAC,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,eAAe,CAAC;IACxB,gEAAgE;IAChE,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;CAC7B;AAmBD;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,YAAY,EACnB,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAgC3B;AAUD;oEACoE;AACpE,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAoBnH"}
|
package/dist/onchain-uri.js
CHANGED
|
@@ -5,71 +5,30 @@
|
|
|
5
5
|
* The lane (specs/protocol/code-projects.md → "The canonical generator — AbxGenerator" +
|
|
6
6
|
* specs/protocol/onchain-metadata.md → "URI resolution"): the collection-scope `animation_url`
|
|
7
7
|
* field points at the canonical generator via the `renderer` representation
|
|
8
|
-
* (`abi.encode(address)`), the `
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* (`abi.encode(address)`), and the token's `tokenURIRenderer` toggles tokenURI to the canonical
|
|
9
|
+
* on-chain metadata renderer (`setContractURIRenderer` does the same for contractURI). Both ride
|
|
10
|
+
* the EXISTING setup multicall, before the mints.
|
|
11
|
+
*
|
|
12
|
+
* The param surface is NOT part of that wiring: params enumerate ON-CHAIN (`contractParamKeys` /
|
|
13
|
+
* `tokenParamKeys`, maintained by the write paths themselves), so the generator reads the key set
|
|
14
|
+
* straight from the token. The old `params.keys` CSV convention is retired — nothing writes it any
|
|
15
|
+
* more; the only thing left here is a read-only lane for LEGACY projects deployed before
|
|
16
|
+
* enumeration shipped.
|
|
12
17
|
*/
|
|
13
|
-
import { encodeFunctionData,
|
|
18
|
+
import { encodeFunctionData, zeroAddress } from 'viem';
|
|
14
19
|
import { decodeFieldRenderer, decodeTag, encodeFieldRenderer, encodeTag, readGeneratorStatus, resolveGenerator, seriesCodeAbi, METADATA_FIELD as F, METADATA_REPRESENTATION as R, DEP_RESOLUTION, } from '@artblocks/abx-sdk';
|
|
15
|
-
/** The self-referential key: the CSV lists it too (the resolver's tokenData carries every
|
|
16
|
-
* evented param — including `params.keys` itself — so the generator must list it to stay
|
|
17
|
-
* byte-aligned; inputsHash parity is load-bearing). */
|
|
18
|
-
export const PARAMS_KEYS = 'params.keys';
|
|
19
|
-
/** ≤ this many chars rides as a literal readable-ASCII bytes32; longer takes the data path. */
|
|
20
|
-
export const PARAMS_KEYS_LITERAL_MAX = 31;
|
|
21
|
-
/**
|
|
22
|
-
* Compose the `params.keys` CSV: every param key the deploy writes ∪ the `--schema` keys ∪
|
|
23
|
-
* `params.keys` itself — deduped, sorted lexicographically, comma-joined. Sorted because the
|
|
24
|
-
* canonical tokenData serialization sorts keys; deterministic composition keeps the value
|
|
25
|
-
* reproducible from the same flags.
|
|
26
|
-
*/
|
|
27
|
-
export function composeParamsKeys(writtenParamKeys, schemaKeys) {
|
|
28
|
-
const keys = new Set([...writtenParamKeys, ...schemaKeys, PARAMS_KEYS]);
|
|
29
|
-
return [...keys]
|
|
30
|
-
.map((k) => k.trim())
|
|
31
|
-
.filter(Boolean)
|
|
32
|
-
.sort()
|
|
33
|
-
.filter((k, i, all) => i === 0 || k !== all[i - 1])
|
|
34
|
-
.join(',');
|
|
35
|
-
}
|
|
36
|
-
/** Whether a CSV fits the literal bytes32 lane (printable ASCII, ≤ 31 bytes). */
|
|
37
|
-
export function paramsKeysIsLiteral(csv) {
|
|
38
|
-
return csv.length <= PARAMS_KEYS_LITERAL_MAX && /^[\x20-\x7e]+$/.test(csv);
|
|
39
|
-
}
|
|
40
|
-
/** The `params.keys` write leg: `setContractParam` (literal bytes32) when the CSV fits,
|
|
41
|
-
* else `setContractParamData` (one blob; hash evented — the generator reads it back whole). */
|
|
42
|
-
export function paramsKeysCall(csv) {
|
|
43
|
-
if (paramsKeysIsLiteral(csv)) {
|
|
44
|
-
return {
|
|
45
|
-
call: encodeFunctionData({
|
|
46
|
-
abi: seriesCodeAbi,
|
|
47
|
-
functionName: 'setContractParam',
|
|
48
|
-
args: [encodeTag(PARAMS_KEYS), encodeTag(csv)],
|
|
49
|
-
}),
|
|
50
|
-
encoding: 'literal',
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
return {
|
|
54
|
-
call: encodeFunctionData({
|
|
55
|
-
abi: seriesCodeAbi,
|
|
56
|
-
functionName: 'setContractParamData',
|
|
57
|
-
args: [encodeTag(PARAMS_KEYS), toHex(csv)],
|
|
58
|
-
}),
|
|
59
|
-
encoding: 'data',
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
20
|
/**
|
|
63
21
|
* The `--onchain-uri` legs of the setup multicall, in order:
|
|
64
22
|
* 1. collection-scope `animation_url` field → representation `renderer`,
|
|
65
23
|
* value `abi.encode(generator)` (the canonical generator computes the live view on-chain);
|
|
66
|
-
* 2.
|
|
67
|
-
* 3. `
|
|
68
|
-
* 4. `setContractURIRenderer(metadataRenderer)` — contractURI too (parity with the 1/1 lane).
|
|
24
|
+
* 2. `setTokenURIRenderer(metadataRenderer)` — tokenURI resolves ON-CHAIN from here on;
|
|
25
|
+
* 3. `setContractURIRenderer(metadataRenderer)` — contractURI too (parity with the 1/1 lane).
|
|
69
26
|
* Placed BEFORE the mint legs so every token is born with the on-chain lane fully configured.
|
|
27
|
+
*
|
|
28
|
+
* There is no param leg: the generator enumerates the param surface from the token itself
|
|
29
|
+
* (`contractParamKeys` / `tokenParamKeys`), so there is nothing for a deploy to declare.
|
|
70
30
|
*/
|
|
71
31
|
export function onchainUriSetupCalls(args) {
|
|
72
|
-
const { call: paramsLeg, encoding } = paramsKeysCall(args.paramsKeys);
|
|
73
32
|
const calls = [];
|
|
74
33
|
// The `animation_url` leg points at the generator (which computes the doc from a PROGRAM). A
|
|
75
34
|
// renderer-only drop (in-chain SVG, no program) has no generator — and baking this leg at a ZERO
|
|
@@ -83,8 +42,66 @@ export function onchainUriSetupCalls(args) {
|
|
|
83
42
|
args: [encodeTag(F.animationUrl), encodeTag(R.renderer), encodeFieldRenderer(args.generator)],
|
|
84
43
|
}));
|
|
85
44
|
}
|
|
86
|
-
calls.push(
|
|
87
|
-
return
|
|
45
|
+
calls.push(encodeFunctionData({ abi: seriesCodeAbi, functionName: 'setTokenURIRenderer', args: [args.metadataRenderer] }), encodeFunctionData({ abi: seriesCodeAbi, functionName: 'setContractURIRenderer', args: [args.metadataRenderer] }));
|
|
46
|
+
return calls;
|
|
47
|
+
}
|
|
48
|
+
// ── the param surface, enumerated FROM CHAIN ──────────────────────────────────
|
|
49
|
+
// `key ∈ list ⟺ the param isSet` — the contract maintains both key lists inside the write paths
|
|
50
|
+
// themselves, so nothing off-chain has to be kept in step. `seed` is deliberately never listed
|
|
51
|
+
// (every consumer reads it as a tokenData coordinate). Enumeration order is unspecified; the
|
|
52
|
+
// canonical serialization sorts.
|
|
53
|
+
/** The SET param keys: `contractParamKeys()`, plus `tokenParamKeys(tokenId)` when a token is named.
|
|
54
|
+
* Null when the getters are absent — a LEGACY project deployed before enumeration shipped (or a
|
|
55
|
+
* token type with no Params extension at all). */
|
|
56
|
+
export async function readSetParamKeys(client, contract, tokenId) {
|
|
57
|
+
try {
|
|
58
|
+
const contractKeys = (await client.readContract({
|
|
59
|
+
address: contract,
|
|
60
|
+
abi: seriesCodeAbi,
|
|
61
|
+
functionName: 'contractParamKeys',
|
|
62
|
+
args: [],
|
|
63
|
+
}));
|
|
64
|
+
const tokenKeys = tokenId === undefined
|
|
65
|
+
? []
|
|
66
|
+
: (await client.readContract({
|
|
67
|
+
address: contract,
|
|
68
|
+
abi: seriesCodeAbi,
|
|
69
|
+
functionName: 'tokenParamKeys',
|
|
70
|
+
args: [tokenId],
|
|
71
|
+
}));
|
|
72
|
+
return { contract: contractKeys.map(decodeTag), token: tokenKeys.map(decodeTag) };
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/** The DECLARED (governed) keys: `paramSchemaKeys()`, append-only — including keys declared but
|
|
79
|
+
* never yet written, which are otherwise undiscoverable. Null on a legacy project. */
|
|
80
|
+
export async function readParamSchemaKeys(client, contract) {
|
|
81
|
+
try {
|
|
82
|
+
const keys = (await client.readContract({
|
|
83
|
+
address: contract,
|
|
84
|
+
abi: seriesCodeAbi,
|
|
85
|
+
functionName: 'paramSchemaKeys',
|
|
86
|
+
args: [],
|
|
87
|
+
}));
|
|
88
|
+
return keys.map(decodeTag);
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/** Does this token expose the enumeration surface at all? The one-call probe behind the repoint
|
|
95
|
+
* guard: the canonical generator reads params from chain, so pointing a token that lacks these
|
|
96
|
+
* getters at it makes every param silently invisible. */
|
|
97
|
+
export async function hasParamEnumeration(client, contract) {
|
|
98
|
+
try {
|
|
99
|
+
await client.readContract({ address: contract, abi: seriesCodeAbi, functionName: 'tokenParamKeys', args: [0n] });
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
88
105
|
}
|
|
89
106
|
// ── the chain-complete expectation (deploy-time, from the P1 dependency report) ──
|
|
90
107
|
/** What the deploy can honestly promise about the generator's template branch, derived from
|
|
@@ -204,40 +221,31 @@ export async function onChainUriReport(client, state, generatorOverride) {
|
|
|
204
221
|
}
|
|
205
222
|
return { generator, status, probe };
|
|
206
223
|
}
|
|
207
|
-
// ── the
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
return null;
|
|
217
|
-
const listed = existingCsv.split(',').map((k) => k.trim()).filter(Boolean);
|
|
218
|
-
if (listed.includes(configuredKey))
|
|
219
|
-
return null;
|
|
220
|
-
return composeParamsKeys([...listed, configuredKey], []);
|
|
221
|
-
}
|
|
222
|
-
/** Read the project's `params.keys` contract param from chain (literal or data-backed);
|
|
223
|
-
* null when unset. Best-effort — callers must treat a throw as "no nudge". */
|
|
224
|
-
export async function readParamsKeys(client, contract) {
|
|
224
|
+
// ── LEGACY: the retired `params.keys` convention, READ-ONLY ───────────────────
|
|
225
|
+
// Projects deployed before on-chain enumeration declared their param surface in a `params.keys`
|
|
226
|
+
// contract param, and their (old) generator read that CSV. Nothing writes it any more — this reader
|
|
227
|
+
// exists purely so `abx state` still describes those live testnet projects. A `params.keys` value
|
|
228
|
+
// written on a NEW project is just an ordinary param: enumerated and emitted like any other.
|
|
229
|
+
const LEGACY_PARAMS_KEYS = 'params.keys';
|
|
230
|
+
/** Read a legacy project's `params.keys` CSV from chain (literal or data-backed); null when unset.
|
|
231
|
+
* Best-effort — callers must treat a throw as "no legacy list". */
|
|
232
|
+
export async function readLegacyParamsKeys(client, contract) {
|
|
225
233
|
const [value, valueIsHash, isSet] = (await client.readContract({
|
|
226
234
|
address: contract,
|
|
227
235
|
abi: seriesCodeAbi,
|
|
228
236
|
functionName: 'contractParam',
|
|
229
|
-
args: [encodeTag(
|
|
237
|
+
args: [encodeTag(LEGACY_PARAMS_KEYS)],
|
|
230
238
|
}));
|
|
231
239
|
if (!isSet)
|
|
232
240
|
return null;
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
return
|
|
241
|
+
const csv = valueIsHash
|
|
242
|
+
? Buffer.from((await client.readContract({
|
|
243
|
+
address: contract,
|
|
244
|
+
abi: seriesCodeAbi,
|
|
245
|
+
functionName: 'contractParamData',
|
|
246
|
+
args: [encodeTag(LEGACY_PARAMS_KEYS)],
|
|
247
|
+
})).slice(2), 'hex').toString('utf8')
|
|
248
|
+
: decodeTag(value);
|
|
249
|
+
return csv.split(',').map((k) => k.trim()).filter((k) => k && k !== LEGACY_PARAMS_KEYS);
|
|
242
250
|
}
|
|
243
251
|
//# sourceMappingURL=onchain-uri.js.map
|
package/dist/onchain-uri.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onchain-uri.js","sourceRoot":"","sources":["../src/onchain-uri.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"onchain-uri.js","sourceRoot":"","sources":["../src/onchain-uri.ts"],"names":[],"mappings":"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"}
|
package/dist/ownerops.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* served state reflects the change. The agent picks the lane; the human only
|
|
7
7
|
* approves (wallet lane) or it's the env key (hot lane).
|
|
8
8
|
*/
|
|
9
|
-
import { planContentTxs, type OnChainParamSchema, type SendStagingTx, type Address, type OnChainFieldInput
|
|
9
|
+
import { planContentTxs, type OnChainParamSchema, type SendStagingTx, type Address, type OnChainFieldInput } from '@artblocks/abx-sdk';
|
|
10
10
|
import { type Lane, type WalletSession } from './signer.js';
|
|
11
11
|
import { type ParsedSchema } from './schema.js';
|
|
12
12
|
type Flags = Record<string, string | undefined>;
|
|
@@ -80,6 +80,31 @@ export declare function cmdSetContractUri(address: string | undefined, flags: Fl
|
|
|
80
80
|
* ABI read). Exported for the regression test. */
|
|
81
81
|
export declare function parseRoyaltyBps(raw: string): number;
|
|
82
82
|
export declare function cmdSetRoyalty(address: string | undefined, flags: Flags): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Parse a transfer-validator choice — the shared grammar of the deploy flag (`--721c`) and the
|
|
85
|
+
* owner op (`abx set-transfer-validator`):
|
|
86
|
+
* - `recommended` (or a bare `--721c`) → the per-chain recommended validator, refusing on a
|
|
87
|
+
* chain the manifest has no entry for (naming the chains that do — never guess one);
|
|
88
|
+
* - a `0x…` address → checksum-validated (EIP-55) and returned as its canonical form;
|
|
89
|
+
* - `none`/zero → `allowNone` decides: the owner op suspends with it; the DEPLOY flag refuses
|
|
90
|
+
* it (a zero validator at deploy never enrolls — that is already the default, so someone
|
|
91
|
+
* passing it either wants plain ERC-721 (drop the flag) or mistakenly believes "enrolled but
|
|
92
|
+
* suspended" is a deploy-time state — it isn't).
|
|
93
|
+
* Pure (no RPC) — callers do the has-code precheck themselves. Exported for the regression test.
|
|
94
|
+
*/
|
|
95
|
+
export declare function parseTransferValidatorValue(raw: string, opts: {
|
|
96
|
+
chainId: number;
|
|
97
|
+
chainLabel: string;
|
|
98
|
+
allowNone?: boolean;
|
|
99
|
+
}): Address;
|
|
100
|
+
/**
|
|
101
|
+
* `abx set-transfer-validator <address> <0x…|none|recommended>` — re-point an ENROLLED (ERC-721C)
|
|
102
|
+
* collection's transfer validator, or suspend enforcement with `none` (address(0); the token
|
|
103
|
+
* STAYS enrolled). Refuses up front, before any signing: a plain ERC-721 (enrollment is
|
|
104
|
+
* deploy-time-only — the contract would revert `NotCreatorToken()`), and a codeless validator
|
|
105
|
+
* (would revert `InvalidTransferValidator()`). Owner-only, any lane, guards `--dry-run`.
|
|
106
|
+
*/
|
|
107
|
+
export declare function cmdSetTransferValidator(address: string | undefined, rest: string[], flags: Flags): Promise<void>;
|
|
83
108
|
export type Compress = 'none' | 'fastlz' | 'gzip';
|
|
84
109
|
export declare function parseCompress(v: string | undefined): Compress;
|
|
85
110
|
/**
|
|
@@ -152,6 +177,9 @@ export declare function stageImageFieldsBatch(imagePaths: string[], compress: Co
|
|
|
152
177
|
fields: OnChainFieldInput[];
|
|
153
178
|
store: Address;
|
|
154
179
|
}>;
|
|
180
|
+
export declare function assertGeneratorRepointable(contract: Address, field: string, flags: Flags,
|
|
181
|
+
/** Injected for tests; the real probe is one eth_call. */
|
|
182
|
+
probe?: (c: Address) => Promise<boolean>): Promise<void>;
|
|
155
183
|
export declare function cmdSetField(address: string | undefined, flags: Flags): Promise<void>;
|
|
156
184
|
/**
|
|
157
185
|
* `abx attach <address> <key> <uri>` — attach a named, typed file to a token (or the collection),
|
|
@@ -192,18 +220,6 @@ export declare function cmdMinterShow(address: string | undefined, flags: Flags)
|
|
|
192
220
|
/** `abx minter buy <token> [--to 0x…]` — buy one token through the shared minter (public; any
|
|
193
221
|
* funded signer). ETH sales attach the price; ERC-20 sales need a prior approval to the minter. */
|
|
194
222
|
export declare function cmdMinterBuy(address: string | undefined, flags: Flags): Promise<void>;
|
|
195
|
-
/**
|
|
196
|
-
* The `params.keys` companion write for a newly governed key, or null when none is needed.
|
|
197
|
-
*
|
|
198
|
-
* Pure so it can be tested without a chain: the decision (does this project even use the on-chain
|
|
199
|
-
* generator? is the key already listed? does the new CSV still fit a literal bytes32?) is the part
|
|
200
|
-
* that goes wrong, not the RPC call. `csv === null` means the project isn't on the on-chain URI lane
|
|
201
|
-
* — a resolver reads schemas directly and needs no key list.
|
|
202
|
-
*/
|
|
203
|
-
export declare function paramsKeysSyncOp(csv: string | null, key: string, contract: Address, cid: number): {
|
|
204
|
-
op: PreparedTx;
|
|
205
|
-
listed: string;
|
|
206
|
-
} | null;
|
|
207
223
|
/** Values already stored under a key can be stranded by a schema change — the contract does NOT
|
|
208
224
|
* re-validate them. Compare old vs new and name what would break, so the guard can refuse. */
|
|
209
225
|
export declare function strandingRisks(before: OnChainParamSchema, after: ParsedSchema): string[];
|
package/dist/ownerops.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ownerops.d.ts","sourceRoot":"","sources":["../src/ownerops.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAeL,cAAc,
|
|
1
|
+
{"version":3,"file":"ownerops.d.ts","sourceRoot":"","sources":["../src/ownerops.ts"],"names":[],"mappings":"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"}
|