@artblocks/abx-sdk 0.1.0-alpha.0 → 0.1.0-alpha.10

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 (103) hide show
  1. package/README.md +131 -0
  2. package/dist/abi/generated.d.ts +585 -12
  3. package/dist/abi/generated.d.ts.map +1 -1
  4. package/dist/abi/generated.js +16 -16
  5. package/dist/abi/generated.js.map +1 -1
  6. package/dist/abi/index.d.ts +209 -12
  7. package/dist/abi/index.d.ts.map +1 -1
  8. package/dist/anchors.d.ts +150 -0
  9. package/dist/anchors.d.ts.map +1 -0
  10. package/dist/anchors.js +290 -0
  11. package/dist/anchors.js.map +1 -0
  12. package/dist/chains.d.ts +34 -9
  13. package/dist/chains.d.ts.map +1 -1
  14. package/dist/chains.js +45 -18
  15. package/dist/chains.js.map +1 -1
  16. package/dist/chunks.d.ts +53 -23
  17. package/dist/chunks.d.ts.map +1 -1
  18. package/dist/chunks.js +68 -6
  19. package/dist/chunks.js.map +1 -1
  20. package/dist/clients.d.ts +23 -11
  21. package/dist/clients.d.ts.map +1 -1
  22. package/dist/clients.js +17 -18
  23. package/dist/clients.js.map +1 -1
  24. package/dist/creator-token.d.ts +65 -0
  25. package/dist/creator-token.d.ts.map +1 -0
  26. package/dist/creator-token.js +93 -0
  27. package/dist/creator-token.js.map +1 -0
  28. package/dist/deploy.d.ts +24 -10
  29. package/dist/deploy.d.ts.map +1 -1
  30. package/dist/deploy.js +62 -87
  31. package/dist/deploy.js.map +1 -1
  32. package/dist/deployments.d.ts.map +1 -1
  33. package/dist/deployments.js +38 -22
  34. package/dist/deployments.js.map +1 -1
  35. package/dist/deps.d.ts +38 -0
  36. package/dist/deps.d.ts.map +1 -1
  37. package/dist/deps.js +70 -1
  38. package/dist/deps.js.map +1 -1
  39. package/dist/env.d.ts +11 -0
  40. package/dist/env.d.ts.map +1 -1
  41. package/dist/env.js +42 -2
  42. package/dist/env.js.map +1 -1
  43. package/dist/errors.d.ts +63 -0
  44. package/dist/errors.d.ts.map +1 -0
  45. package/dist/errors.js +85 -0
  46. package/dist/errors.js.map +1 -0
  47. package/dist/execute.d.ts +115 -0
  48. package/dist/execute.d.ts.map +1 -0
  49. package/dist/execute.js +142 -0
  50. package/dist/execute.js.map +1 -0
  51. package/dist/index.d.ts +13 -2
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +13 -2
  54. package/dist/index.js.map +1 -1
  55. package/dist/inspect.d.ts +48 -0
  56. package/dist/inspect.d.ts.map +1 -0
  57. package/dist/inspect.js +290 -0
  58. package/dist/inspect.js.map +1 -0
  59. package/dist/migrate.d.ts +41 -0
  60. package/dist/migrate.d.ts.map +1 -0
  61. package/dist/migrate.js +140 -0
  62. package/dist/migrate.js.map +1 -0
  63. package/dist/node.d.ts +13 -0
  64. package/dist/node.d.ts.map +1 -0
  65. package/dist/node.js +13 -0
  66. package/dist/node.js.map +1 -0
  67. package/dist/onchain-uri.d.ts +96 -0
  68. package/dist/onchain-uri.d.ts.map +1 -0
  69. package/dist/onchain-uri.js +231 -0
  70. package/dist/onchain-uri.js.map +1 -0
  71. package/dist/ops.d.ts +113 -5
  72. package/dist/ops.d.ts.map +1 -1
  73. package/dist/ops.js +172 -13
  74. package/dist/ops.js.map +1 -1
  75. package/dist/reconstruct.d.ts +20 -1
  76. package/dist/reconstruct.d.ts.map +1 -1
  77. package/dist/reconstruct.js +124 -50
  78. package/dist/reconstruct.js.map +1 -1
  79. package/dist/resume.d.ts +96 -0
  80. package/dist/resume.d.ts.map +1 -0
  81. package/dist/resume.js +95 -0
  82. package/dist/resume.js.map +1 -0
  83. package/dist/service.d.ts +369 -0
  84. package/dist/service.d.ts.map +1 -0
  85. package/dist/service.js +376 -0
  86. package/dist/service.js.map +1 -0
  87. package/dist/staging.d.ts +95 -0
  88. package/dist/staging.d.ts.map +1 -0
  89. package/dist/staging.js +57 -0
  90. package/dist/staging.js.map +1 -0
  91. package/dist/tokendata.d.ts +62 -2
  92. package/dist/tokendata.d.ts.map +1 -1
  93. package/dist/tokendata.js +60 -16
  94. package/dist/tokendata.js.map +1 -1
  95. package/dist/tokens.d.ts +55 -0
  96. package/dist/tokens.d.ts.map +1 -0
  97. package/dist/tokens.js +152 -0
  98. package/dist/tokens.js.map +1 -0
  99. package/dist/util.d.ts +59 -0
  100. package/dist/util.d.ts.map +1 -0
  101. package/dist/util.js +89 -0
  102. package/dist/util.js.map +1 -0
  103. package/package.json +10 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"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"}
package/dist/node.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ /**
2
+ * `@artblocks/abx-sdk/node` — the ONE Node-only subpath. Everything reachable from the
3
+ * package's main entry (`.`) has to run in a browser bundle (see `test/browser-bundle.test.ts`),
4
+ * so `.env` loading — which needs `node:fs` + `node:path` — lives here instead, behind an
5
+ * explicit import a host opts into.
6
+ *
7
+ * A host calls `loadDotEnv()` exactly ONCE, at startup, before anything reads `process.env`
8
+ * (the CLI's `main()`, the effects runner's `main()`). The SDK core never calls it itself —
9
+ * see `clients.ts` / `chains.ts` / `deployments.ts`'s `readEnv`, which just reads whatever is
10
+ * already in `process.env` (or nothing, in a browser) and leaves loading it to the host.
11
+ */
12
+ export { loadDotEnv, parseEnvContent } from './env.js';
13
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAC,UAAU,EAAE,eAAe,EAAC,MAAM,UAAU,CAAC"}
package/dist/node.js ADDED
@@ -0,0 +1,13 @@
1
+ /**
2
+ * `@artblocks/abx-sdk/node` — the ONE Node-only subpath. Everything reachable from the
3
+ * package's main entry (`.`) has to run in a browser bundle (see `test/browser-bundle.test.ts`),
4
+ * so `.env` loading — which needs `node:fs` + `node:path` — lives here instead, behind an
5
+ * explicit import a host opts into.
6
+ *
7
+ * A host calls `loadDotEnv()` exactly ONCE, at startup, before anything reads `process.env`
8
+ * (the CLI's `main()`, the effects runner's `main()`). The SDK core never calls it itself —
9
+ * see `clients.ts` / `chains.ts` / `deployments.ts`'s `readEnv`, which just reads whatever is
10
+ * already in `process.env` (or nothing, in a browser) and leaves loading it to the host.
11
+ */
12
+ export { loadDotEnv, parseEnvContent } from './env.js';
13
+ //# sourceMappingURL=node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAC,UAAU,EAAE,eAAe,EAAC,MAAM,UAAU,CAAC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * The on-chain tokenURI lane for code projects (`abx deploy-code --onchain-uri`) — pure leg
3
+ * composition + the verify-time honesty reads, all unit-testable with a mocked client.
4
+ *
5
+ * The lane (specs/protocol/code-projects.md → "The canonical generator — AbxGenerator" +
6
+ * specs/protocol/onchain-metadata.md → "URI resolution"): the collection-scope `animation_url`
7
+ * field points at the canonical generator via the `renderer` representation
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.
16
+ */
17
+ import { type Address, type Hex } from 'viem';
18
+ import { type GeneratorReadClient, type GeneratorStatus } from './generator.js';
19
+ import { type DepCheck, type ParsedDependencyRef } from './deps.js';
20
+ import type { ProjectState } from './types.js';
21
+ /**
22
+ * The `--onchain-uri` legs of the setup multicall, in order:
23
+ * 1. collection-scope `animation_url` field → representation `renderer`,
24
+ * value `abi.encode(generator)` (the canonical generator computes the live view on-chain);
25
+ * 2. `setTokenURIRenderer(metadataRenderer)` — tokenURI resolves ON-CHAIN from here on;
26
+ * 3. `setContractURIRenderer(metadataRenderer)` — contractURI too (parity with the 1/1 lane).
27
+ * Placed BEFORE the mint legs so every token is born with the on-chain lane fully configured.
28
+ *
29
+ * There is no param leg: the generator enumerates the param surface from the token itself
30
+ * (`contractParamKeys` / `tokenParamKeys`), so there is nothing for a deploy to declare.
31
+ */
32
+ export declare function onchainUriSetupCalls(args: {
33
+ generator: Address;
34
+ metadataRenderer: Address;
35
+ }): Hex[];
36
+ /** The SET param keys: `contractParamKeys()`, plus `tokenParamKeys(tokenId)` when a token is named.
37
+ * Null when the getters are absent — a LEGACY project deployed before enumeration shipped (or a
38
+ * token type with no Params extension at all). */
39
+ export declare function readSetParamKeys(client: GeneratorReadClient, contract: Address, tokenId?: bigint): Promise<{
40
+ contract: string[];
41
+ token: string[];
42
+ } | null>;
43
+ /** The DECLARED (governed) keys: `paramSchemaKeys()`, append-only — including keys declared but
44
+ * never yet written, which are otherwise undiscoverable. Null on a legacy project. */
45
+ export declare function readParamSchemaKeys(client: GeneratorReadClient, contract: Address): Promise<string[] | null>;
46
+ /** Does this token expose the enumeration surface at all? The one-call probe behind the repoint
47
+ * guard: the canonical generator reads params from chain, so pointing a token that lacks these
48
+ * getters at it makes every param silently invisible. */
49
+ export declare function hasParamEnumeration(client: GeneratorReadClient, contract: Address): Promise<boolean>;
50
+ /** What the deploy can honestly promise about the generator's template branch, derived from
51
+ * the selection-time dependency report (never a new RPC): chain-complete iff every registry
52
+ * dep has proven ON-CHAIN bytes (OnChain refs read their data contract directly, so they
53
+ * count as on-chain; `abx verify` is the from-chain confirmation either way). */
54
+ export declare function expectedChainComplete(deps: ParsedDependencyRef[], checks: DepCheck[]): {
55
+ expected: boolean | null;
56
+ detail: string;
57
+ };
58
+ /** The generator this project's on-chain lane actually uses: the collection `animation_url`
59
+ * field's `renderer` value when set (that address is what the metadata renderer staticcalls),
60
+ * else the chain's canonical generator. Null when neither exists. */
61
+ export declare function generatorFor(state: ProjectState, override?: string): Address | null;
62
+ /** Whether verify should run the on-chain-URI report: the tokenURIRenderer toggle is on, or
63
+ * the collection `animation` field points at a field renderer (the generator). */
64
+ export declare function hasOnChainUriLane(state: ProjectState): boolean;
65
+ export interface TokenUriProbe {
66
+ tokenId: string;
67
+ /** tokenURI(id) is a `data:application/json;base64,` URI (resolves on-chain, any RPC). */
68
+ onChainJson: boolean;
69
+ uriPrefix: string;
70
+ animation: {
71
+ form: 'data-html';
72
+ bytes: number;
73
+ marker: string | null;
74
+ } | {
75
+ form: 'url';
76
+ url: string;
77
+ } | {
78
+ form: 'data-other';
79
+ prefix: string;
80
+ } | {
81
+ form: 'missing';
82
+ };
83
+ }
84
+ export interface OnChainUriReport {
85
+ generator: Address;
86
+ status: GeneratorStatus;
87
+ /** Null when no token is minted yet (tokenURI would revert). */
88
+ probe: TokenUriProbe | null;
89
+ }
90
+ /**
91
+ * The verify-time on-chain-URI report: `generator.onChainStatus(token)` (branch ·
92
+ * chain-completeness · unresolved refs · URL budget) plus a `tokenURI` probe of the lowest
93
+ * minted token — decoded, with the `animation_url` form checked against the branch.
94
+ */
95
+ export declare function onChainUriReport(client: GeneratorReadClient, state: ProjectState, generatorOverride?: string): Promise<OnChainUriReport>;
96
+ //# sourceMappingURL=onchain-uri.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onchain-uri.d.ts","sourceRoot":"","sources":["../src/onchain-uri.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAkC,KAAK,OAAO,EAAE,KAAK,GAAG,EAAC,MAAM,MAAM,CAAC;AAG7E,OAAO,EAAsB,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAGnG,OAAO,EAAiB,KAAK,QAAQ,EAAE,KAAK,mBAAmB,EAAC,MAAM,WAAW,CAAC;AAClF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AAG7C;;;;;;;;;;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;AAoBD;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,YAAY,EACnB,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAiC3B"}
@@ -0,0 +1,231 @@
1
+ /**
2
+ * The on-chain tokenURI lane for code projects (`abx deploy-code --onchain-uri`) — pure leg
3
+ * composition + the verify-time honesty reads, all unit-testable with a mocked client.
4
+ *
5
+ * The lane (specs/protocol/code-projects.md → "The canonical generator — AbxGenerator" +
6
+ * specs/protocol/onchain-metadata.md → "URI resolution"): the collection-scope `animation_url`
7
+ * field points at the canonical generator via the `renderer` representation
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.
16
+ */
17
+ import { encodeFunctionData, zeroAddress } from 'viem';
18
+ import { decodeTag, encodeTag, METADATA_FIELD as F, METADATA_REPRESENTATION as R } from './spine.js';
19
+ import { seriesCodeAbi } from './abi/index.js';
20
+ import { readGeneratorStatus } from './generator.js';
21
+ import { resolveGenerator } from './deployments.js';
22
+ import { decodeFieldRenderer, encodeFieldRenderer } from './token.js';
23
+ import { DEP_RESOLUTION } from './deps.js';
24
+ import { parseDataUri, base64ToBytes } from './util.js';
25
+ /**
26
+ * The `--onchain-uri` legs of the setup multicall, in order:
27
+ * 1. collection-scope `animation_url` field → representation `renderer`,
28
+ * value `abi.encode(generator)` (the canonical generator computes the live view on-chain);
29
+ * 2. `setTokenURIRenderer(metadataRenderer)` — tokenURI resolves ON-CHAIN from here on;
30
+ * 3. `setContractURIRenderer(metadataRenderer)` — contractURI too (parity with the 1/1 lane).
31
+ * Placed BEFORE the mint legs so every token is born with the on-chain lane fully configured.
32
+ *
33
+ * There is no param leg: the generator enumerates the param surface from the token itself
34
+ * (`contractParamKeys` / `tokenParamKeys`), so there is nothing for a deploy to declare.
35
+ */
36
+ export function onchainUriSetupCalls(args) {
37
+ const calls = [];
38
+ // The `animation_url` leg points at the generator (which computes the doc from a PROGRAM). A
39
+ // renderer-only drop (in-chain SVG, no program) has no generator — and baking this leg at a ZERO
40
+ // generator would make the metadata renderer staticcall a codeless address and REVERT every
41
+ // tokenURI. So emit it only when there's a real generator; otherwise there's simply no animation_url
42
+ // (optional by spec — the metadata renderer omits an unset field).
43
+ if (args.generator !== zeroAddress) {
44
+ calls.push(encodeFunctionData({
45
+ abi: seriesCodeAbi,
46
+ functionName: 'setContractField',
47
+ args: [encodeTag(F.animationUrl), encodeTag(R.renderer), encodeFieldRenderer(args.generator)],
48
+ }));
49
+ }
50
+ calls.push(encodeFunctionData({ abi: seriesCodeAbi, functionName: 'setTokenURIRenderer', args: [args.metadataRenderer] }), encodeFunctionData({ abi: seriesCodeAbi, functionName: 'setContractURIRenderer', args: [args.metadataRenderer] }));
51
+ return calls;
52
+ }
53
+ // ── the param surface, enumerated FROM CHAIN ──────────────────────────────────
54
+ // `key ∈ list ⟺ the param isSet` — the contract maintains both key lists inside the write paths
55
+ // themselves, so nothing off-chain has to be kept in step. `seed` is deliberately never listed
56
+ // (every consumer reads it as a tokenData coordinate). Enumeration order is unspecified; the
57
+ // canonical serialization sorts.
58
+ /** The SET param keys: `contractParamKeys()`, plus `tokenParamKeys(tokenId)` when a token is named.
59
+ * Null when the getters are absent — a LEGACY project deployed before enumeration shipped (or a
60
+ * token type with no Params extension at all). */
61
+ export async function readSetParamKeys(client, contract, tokenId) {
62
+ try {
63
+ const contractKeys = (await client.readContract({
64
+ address: contract,
65
+ abi: seriesCodeAbi,
66
+ functionName: 'contractParamKeys',
67
+ args: [],
68
+ }));
69
+ const tokenKeys = tokenId === undefined
70
+ ? []
71
+ : (await client.readContract({
72
+ address: contract,
73
+ abi: seriesCodeAbi,
74
+ functionName: 'tokenParamKeys',
75
+ args: [tokenId],
76
+ }));
77
+ return { contract: contractKeys.map(decodeTag), token: tokenKeys.map(decodeTag) };
78
+ }
79
+ catch {
80
+ return null;
81
+ }
82
+ }
83
+ /** The DECLARED (governed) keys: `paramSchemaKeys()`, append-only — including keys declared but
84
+ * never yet written, which are otherwise undiscoverable. Null on a legacy project. */
85
+ export async function readParamSchemaKeys(client, contract) {
86
+ try {
87
+ const keys = (await client.readContract({
88
+ address: contract,
89
+ abi: seriesCodeAbi,
90
+ functionName: 'paramSchemaKeys',
91
+ args: [],
92
+ }));
93
+ return keys.map(decodeTag);
94
+ }
95
+ catch {
96
+ return null;
97
+ }
98
+ }
99
+ /** Does this token expose the enumeration surface at all? The one-call probe behind the repoint
100
+ * guard: the canonical generator reads params from chain, so pointing a token that lacks these
101
+ * getters at it makes every param silently invisible. */
102
+ export async function hasParamEnumeration(client, contract) {
103
+ try {
104
+ await client.readContract({ address: contract, abi: seriesCodeAbi, functionName: 'tokenParamKeys', args: [0n] });
105
+ return true;
106
+ }
107
+ catch {
108
+ return false;
109
+ }
110
+ }
111
+ // ── the chain-complete expectation (deploy-time, from the P1 dependency report) ──
112
+ /** What the deploy can honestly promise about the generator's template branch, derived from
113
+ * the selection-time dependency report (never a new RPC): chain-complete iff every registry
114
+ * dep has proven ON-CHAIN bytes (OnChain refs read their data contract directly, so they
115
+ * count as on-chain; `abx verify` is the from-chain confirmation either way). */
116
+ export function expectedChainComplete(deps, checks) {
117
+ if (deps.length === 0)
118
+ return { expected: true, detail: 'no dependencies — the document assembles from the script chunks alone' };
119
+ const registryDeps = deps.filter((d) => d.resolution === DEP_RESOLUTION.registry);
120
+ if (registryDeps.length === 0) {
121
+ return { expected: true, detail: 'all dependencies are on-chain data contracts (read directly)' };
122
+ }
123
+ const byDep = new Map(checks.map((c) => [c.dep, c]));
124
+ const cdnOnly = [];
125
+ const missing = [];
126
+ let unknown = false;
127
+ for (const d of registryDeps) {
128
+ const chk = byDep.get(d.display);
129
+ if (!chk || chk.status === 'skipped')
130
+ unknown = true;
131
+ else if (chk.status === 'not-found')
132
+ missing.push(d.display);
133
+ else if (!chk.details.availableOnChain)
134
+ cdnOnly.push(d.display);
135
+ }
136
+ if (missing.length)
137
+ return { expected: false, detail: `${missing.join(', ')} not on the registry — the generator will emit an unresolved marker` };
138
+ if (cdnOnly.length)
139
+ return { expected: false, detail: `${cdnOnly.join(', ')} CDN-served (the normal production path) — serves fine, NOT chain-complete` };
140
+ if (unknown)
141
+ return { expected: null, detail: 'registry check was skipped (RPC unreachable) — `abx verify` reads the truth from chain' };
142
+ return { expected: true, detail: 'every dependency has ON-CHAIN bytes — no server, gateway, or CDN in the graph' };
143
+ }
144
+ // ── verify: the honesty reads (`onChainStatus` + a tokenURI probe) ─────────────
145
+ /** The generator this project's on-chain lane actually uses: the collection `animation_url`
146
+ * field's `renderer` value when set (that address is what the metadata renderer staticcalls),
147
+ * else the chain's canonical generator. Null when neither exists. */
148
+ export function generatorFor(state, override) {
149
+ const field = state.collectionFields.find((f) => f.field === F.animationUrl && f.representation === R.renderer);
150
+ if (field) {
151
+ try {
152
+ return decodeFieldRenderer(field.value);
153
+ }
154
+ catch {
155
+ /* malformed value — fall through to the manifest */
156
+ }
157
+ }
158
+ return resolveGenerator(state.chainId, override) ?? null;
159
+ }
160
+ /** Whether verify should run the on-chain-URI report: the tokenURIRenderer toggle is on, or
161
+ * the collection `animation` field points at a field renderer (the generator). */
162
+ export function hasOnChainUriLane(state) {
163
+ const rendererSet = !!state.tokenURIRenderer && state.tokenURIRenderer !== zeroAddress;
164
+ const animationRenderer = state.collectionFields.some((f) => f.field === F.animationUrl && f.representation === R.renderer);
165
+ return rendererSet || animationRenderer;
166
+ }
167
+ const erc721TokenUriAbi = [
168
+ {
169
+ type: 'function',
170
+ name: 'tokenURI',
171
+ stateMutability: 'view',
172
+ inputs: [{ name: 'id', type: 'uint256' }],
173
+ outputs: [{ name: '', type: 'string' }],
174
+ },
175
+ ];
176
+ /** An HTML comment marker the generator emits on degradation (`<!-- abx:… -->`), or null. */
177
+ function degradationMarker(html) {
178
+ const m = /<!--\s*abx:[^>]*-->/.exec(html);
179
+ return m ? m[0] : null;
180
+ }
181
+ function probeAnimation(animationUrl) {
182
+ if (!animationUrl)
183
+ return { form: 'missing' };
184
+ const parsed = parseDataUri(animationUrl);
185
+ if (parsed && parsed.mime === 'text/html' && parsed.base64) {
186
+ const bytes = base64ToBytes(parsed.body);
187
+ const html = new TextDecoder().decode(bytes);
188
+ return { form: 'data-html', bytes: bytes.length, marker: degradationMarker(html) };
189
+ }
190
+ if (animationUrl.startsWith('data:'))
191
+ return { form: 'data-other', prefix: animationUrl.slice(0, 40) };
192
+ return { form: 'url', url: animationUrl };
193
+ }
194
+ /**
195
+ * The verify-time on-chain-URI report: `generator.onChainStatus(token)` (branch ·
196
+ * chain-completeness · unresolved refs · URL budget) plus a `tokenURI` probe of the lowest
197
+ * minted token — decoded, with the `animation_url` form checked against the branch.
198
+ */
199
+ export async function onChainUriReport(client, state, generatorOverride) {
200
+ const generator = generatorFor(state, generatorOverride);
201
+ if (!generator) {
202
+ throw new Error(`no AbxGenerator known for chain ${state.chainId} — set ABX_GENERATOR=0x… (or update @artblocks/abx-sdk's deployments manifest)`);
203
+ }
204
+ const status = await readGeneratorStatus(client, generator, state.address);
205
+ const minted = state.tokens.filter((t) => t.minted).map((t) => BigInt(t.tokenId));
206
+ let probe = null;
207
+ if (minted.length) {
208
+ const tokenId = minted.reduce((a, b) => (b < a ? b : a));
209
+ const uri = (await client.readContract({
210
+ address: state.address,
211
+ abi: erc721TokenUriAbi,
212
+ functionName: 'tokenURI',
213
+ args: [tokenId],
214
+ }));
215
+ const parsed = parseDataUri(uri);
216
+ const isOnChainJson = !!parsed && parsed.mime === 'application/json' && parsed.base64;
217
+ let animation = { form: 'missing' };
218
+ if (parsed && isOnChainJson) {
219
+ try {
220
+ const json = JSON.parse(new TextDecoder().decode(base64ToBytes(parsed.body)));
221
+ animation = probeAnimation(typeof json.animation_url === 'string' ? json.animation_url : undefined);
222
+ }
223
+ catch {
224
+ /* undecodable JSON — reported as onChainJson with a missing animation */
225
+ }
226
+ }
227
+ probe = { tokenId: tokenId.toString(), onChainJson: isOnChainJson, uriPrefix: uri.slice(0, 48), animation };
228
+ }
229
+ return { generator, status, probe };
230
+ }
231
+ //# sourceMappingURL=onchain-uri.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onchain-uri.js","sourceRoot":"","sources":["../src/onchain-uri.ts"],"names":[],"mappings":"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"}
package/dist/ops.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type Address, type Hex } from 'viem';
1
+ import { type Address, type Hex, type PublicClient } from 'viem';
2
2
  import type { OneOfOneInitParams, SeriesCodeInitParams, SeriesInitParams } from './deploy.js';
3
3
  /**
4
4
  * An unsigned, ready-to-sign transaction — the SDK's neutral output for every
@@ -17,6 +17,20 @@ export interface PreparedTx {
17
17
  chainId: number;
18
18
  summary: string;
19
19
  fields: Record<string, string>;
20
+ /**
21
+ * A **provable** lower bound on this tx's gas — a value the real cost cannot possibly be below.
22
+ *
23
+ * This is a DETECTOR, not a substitute gas limit. It exists because `eth_estimateGas` can return a
24
+ * confidently wrong answer (an estimate taken against a target whose code isn't visible yet is
25
+ * just the calldata cost), and the only safe response to a wrong estimate is to notice and refuse
26
+ * — not to invent a replacement number. A sender treats `estimate < gasFloor` as "this estimate is
27
+ * impossible", retries, and errors out; it does NOT send `gasFloor` instead, because a bound that
28
+ * covers the provable part says nothing about the rest of the payload.
29
+ *
30
+ * Set it only from costs that are physics rather than guesswork. The one such cost here is EVM
31
+ * code deposit: storing N bytes on-chain costs exactly 200·N gas, before any other work.
32
+ */
33
+ gasFloor?: Hex;
20
34
  }
21
35
  /**
22
36
  * Batch several ops into ONE atomic transaction via the target's
@@ -46,6 +60,11 @@ export declare function prepareMulticall(args: {
46
60
  * preserved — important when a later op depends on an earlier one's effect — so a run is
47
61
  * only merged while the target stays the same. This is what turns "6 owner edits" into
48
62
  * "1 transaction" for the UX, while staying honest about what genuinely needs its own tx.
63
+ *
64
+ * A CREATE2-proxy deploy (`to === CREATE2_PROXY` — the renderer/minter/seed-source singletons)
65
+ * is creation too, even though it carries a `to`: the proxy has no `multicall`, so folding two of
66
+ * them together would silently produce a transaction that reverts on the target it's actually
67
+ * sent to. Excluded from merging for the same reason `to === null` is.
49
68
  */
50
69
  export declare function batchOps(ops: PreparedTx[]): PreparedTx[];
51
70
  /** Transfer a token to a new holder (a sale/gift settlement). Signer must be `from`. */
@@ -66,6 +85,15 @@ export declare function prepareMint(args: {
66
85
  to: Address;
67
86
  chainId: number;
68
87
  }): PreparedTx;
88
+ /**
89
+ * The token ids a mint actually created, decoded from its receipt's `Transfer(from=0x0)` logs.
90
+ *
91
+ * Authoritative by construction: the ids come from the transaction that minted them, so a
92
+ * `--count N` batch reports all N and a concurrent mint elsewhere cannot skew the answer. Returns
93
+ * `[]` rather than throwing if the receipt can't be read — a mint that landed on-chain must not be
94
+ * reported as failed because a follow-up read hiccuped.
95
+ */
96
+ export declare function mintedTokenIds(client: PublicClient, contract: Address, txHash: Hex): Promise<string[]>;
69
97
  /** Re-point a token's resolver BASE (move the resolver). The per-token pointer is derived
70
98
  * on-chain as `{base}/{chainId}/{address}/{tokenId}`. Affects every token without an
71
99
  * override. Signer must be the owner. */
@@ -189,7 +217,11 @@ export declare function prepareDeployOneOfOne(args: {
189
217
  export declare function prepareDeployFactory(args: {
190
218
  chainId: number;
191
219
  }): PreparedTx;
192
- /** The unsigned form of the canonical metadata-renderer deploy — a contract creation. */
220
+ /** The unsigned form of the canonical metadata-renderer deploy — CREATE2 via the keyless proxy +
221
+ * canonical salt, so it lands at the SAME (predictable) address on every chain, matching the forge
222
+ * `DeployRenderer` script and `predictRenderer()` (create2.ts). NOT a plain contract creation
223
+ * (`to: null`) — that would land at a nonce-dependent address, defeating the whole point of a
224
+ * canonical, cross-chain-identical singleton. */
193
225
  export declare function prepareDeployRenderer(args: {
194
226
  chainId: number;
195
227
  }): PreparedTx;
@@ -277,10 +309,31 @@ export declare function preparePurchase(args: {
277
309
  value?: bigint | number;
278
310
  chainId: number;
279
311
  }): PreparedTx;
280
- /** The unsigned form of the shared fixed-price minter deploy — a contract creation. */
312
+ /** A project's fixed-price sale state on the shared minter (`sales(token)`): whether a sale is
313
+ * configured, the payment token (`zeroAddress` = ETH), the per-unit price, the minter's own
314
+ * sell-through budget (`allocation`, distinct from the token's `maxInvocations` cap), and units
315
+ * sold so far. The read half of {@link prepareConfigureSale}/{@link preparePurchase} — every
316
+ * caller that needs to know a sale's live terms (show it, gate a purchase) reads through here. */
317
+ export interface SaleConfig {
318
+ configured: boolean;
319
+ paymentToken: Address;
320
+ price: bigint;
321
+ allocation: bigint;
322
+ sold: bigint;
323
+ }
324
+ export declare function readSaleConfig(client: PublicClient, minter: Address, token: Address): Promise<SaleConfig>;
325
+ /** The unsigned form of the shared fixed-price minter deploy — CREATE2 via the keyless proxy +
326
+ * canonical salt (same address on every chain), matching `predictFixedPriceMinter()`. See
327
+ * {@link prepareDeployRenderer} for why this is `to: CREATE2_PROXY`, not a plain creation. */
281
328
  export declare function prepareDeployFixedPriceMinter(args: {
282
329
  chainId: number;
283
330
  }): PreparedTx;
331
+ /** The unsigned form of the canonical seed source deploy — CREATE2 via the keyless proxy +
332
+ * canonical salt (same address on every chain), matching `predictSeedSource()`. See
333
+ * {@link prepareDeployRenderer} for why this is `to: CREATE2_PROXY`, not a plain creation. */
334
+ export declare function prepareDeploySeedSource(args: {
335
+ chainId: number;
336
+ }): PreparedTx;
284
337
  /** Deterministic deploy of a {SeriesCode} clone — the code-project factory op. */
285
338
  export declare function prepareDeploySeriesCode(args: {
286
339
  factory: Address;
@@ -298,6 +351,8 @@ export declare function prepareCodeSetup(args: {
298
351
  chainId: number;
299
352
  chunkCount: number;
300
353
  schemaKeys: string[];
354
+ /** Byte length of each script chunk this multicall stores. Used only to compute `gasFloor`. */
355
+ chunkBytes?: number[];
301
356
  deps?: string[];
302
357
  onchainUri?: boolean;
303
358
  }): PreparedTx;
@@ -331,8 +386,9 @@ export declare function prepareLockDependencies(args: {
331
386
  }): PreparedTx;
332
387
  /** Set a CONTRACT-scope param to a literal `bytes32` (the raw owner setter — Params base).
333
388
  * Only for schema-less keys (a schema'd key closes the raw path: `SchemaGoverned`). This is
334
- * the write behind well-known contract params like `params.keys` / `display.gateway`.
335
- * Signer must be the owner. */
389
+ * the write behind well-known contract params like `display.gateway`. The key joins the
390
+ * contract's on-chain key list automatically (`contractParamKeys`), so it is enumerated by
391
+ * the generator and the renderer with no separate declaration. Signer must be the owner. */
336
392
  export declare function prepareSetContractParam(args: {
337
393
  contract: Address;
338
394
  key: string;
@@ -376,4 +432,56 @@ export declare function prepareConfigureTokenParamData(args: {
376
432
  data: Hex;
377
433
  chainId: number;
378
434
  }): PreparedTx;
435
+ /** Attach or replace one key's schema. Owner-only.
436
+ *
437
+ * A replacement does NOT re-validate values already stored under the key — narrow a bound, drop a
438
+ * `Select` option or change the type and existing tokens keep values that now violate their own
439
+ * schema. Callers that are editing (rather than creating) should read the current schema first and
440
+ * carry forward every field they don't mean to change; this is a full-row write, not a patch. */
441
+ export declare function prepareSetParamSchema(args: {
442
+ contract: Address;
443
+ key: string;
444
+ paramType: number;
445
+ auth: number;
446
+ authAddress?: Address;
447
+ lockAfter?: number;
448
+ min: Hex;
449
+ max: Hex;
450
+ selectOptions?: string[];
451
+ chainId: number;
452
+ /** Human rendering for the sign page (the CLI's `describeSchema`). */
453
+ display?: string;
454
+ }): PreparedTx;
455
+ /** The decoded on-chain schema for one key (`paramSchema(bytes32)`). `exists: false` ⇒ ungoverned. */
456
+ export interface OnChainParamSchema {
457
+ exists: boolean;
458
+ paramType: number;
459
+ auth: number;
460
+ authAddress: Address;
461
+ lockAfter: number;
462
+ min: Hex;
463
+ max: Hex;
464
+ selectOptions: string[];
465
+ }
466
+ /** Read one key's schema from chain. The read half of the upsert — anything editing a live schema
467
+ * MUST start here, or it silently rewrites the fields it didn't mention. */
468
+ export declare function readParamSchema(client: PublicClient, contract: Address, key: string): Promise<OnChainParamSchema>;
469
+ /**
470
+ * Retire a parameter: keep every field of its existing schema and set only `lockAfter` to a past
471
+ * timestamp, so all further writes revert `ParamLockExpired`. This is the closest thing the protocol
472
+ * has to deleting a parameter, and it is the read-modify-write case the upsert makes dangerous —
473
+ * hence the caller passes the schema it just READ, rather than a schema it composed.
474
+ *
475
+ * What retiring does NOT do: erase a value already stored. That value keeps being served in token
476
+ * data. It cannot be removed, deliberately — a value written under a `TokenOwner` or `Address` leg
477
+ * came from a collector, and the artist should not be able to delete someone else's contribution.
478
+ */
479
+ export declare function prepareRetireParam(args: {
480
+ contract: Address;
481
+ key: string;
482
+ current: OnChainParamSchema;
483
+ chainId: number;
484
+ /** Unix seconds; defaults to "one second ago" (already expired ⇒ permanent). */
485
+ at?: number;
486
+ }): PreparedTx;
379
487
  //# sourceMappingURL=ops.d.ts.map
package/dist/ops.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../src/ops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../src/ops.ts"],"names":[],"mappings":"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"}