@artblocks/abx-sdk 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.
Files changed (76) hide show
  1. package/dist/abi/generated.d.ts +926 -249
  2. package/dist/abi/generated.d.ts.map +1 -1
  3. package/dist/abi/generated.js +41 -39
  4. package/dist/abi/generated.js.map +1 -1
  5. package/dist/abi/index.d.ts +468 -61
  6. package/dist/abi/index.d.ts.map +1 -1
  7. package/dist/abi/index.js +16 -7
  8. package/dist/abi/index.js.map +1 -1
  9. package/dist/anchors.d.ts +70 -32
  10. package/dist/anchors.d.ts.map +1 -1
  11. package/dist/anchors.js +163 -32
  12. package/dist/anchors.js.map +1 -1
  13. package/dist/create2.d.ts +78 -7
  14. package/dist/create2.d.ts.map +1 -1
  15. package/dist/create2.js +149 -20
  16. package/dist/create2.js.map +1 -1
  17. package/dist/creator-token.d.ts +71 -4
  18. package/dist/creator-token.d.ts.map +1 -1
  19. package/dist/creator-token.js +94 -4
  20. package/dist/creator-token.js.map +1 -1
  21. package/dist/deploy.d.ts +49 -23
  22. package/dist/deploy.d.ts.map +1 -1
  23. package/dist/deploy.js +156 -76
  24. package/dist/deploy.js.map +1 -1
  25. package/dist/deployments.d.ts +4 -0
  26. package/dist/deployments.d.ts.map +1 -1
  27. package/dist/deployments.js +110 -45
  28. package/dist/deployments.js.map +1 -1
  29. package/dist/errors.d.ts +19 -0
  30. package/dist/errors.d.ts.map +1 -1
  31. package/dist/errors.js +24 -0
  32. package/dist/errors.js.map +1 -1
  33. package/dist/generator-document.d.ts +3 -2
  34. package/dist/generator-document.d.ts.map +1 -1
  35. package/dist/generator-document.js +3 -2
  36. package/dist/generator-document.js.map +1 -1
  37. package/dist/generator.d.ts +43 -1
  38. package/dist/generator.d.ts.map +1 -1
  39. package/dist/generator.js +29 -0
  40. package/dist/generator.js.map +1 -1
  41. package/dist/inspect.d.ts +1 -1
  42. package/dist/inspect.js +2 -2
  43. package/dist/inspect.js.map +1 -1
  44. package/dist/onchain-uri.d.ts +11 -0
  45. package/dist/onchain-uri.d.ts.map +1 -1
  46. package/dist/onchain-uri.js +20 -0
  47. package/dist/onchain-uri.js.map +1 -1
  48. package/dist/ops.d.ts +210 -11
  49. package/dist/ops.d.ts.map +1 -1
  50. package/dist/ops.js +308 -34
  51. package/dist/ops.js.map +1 -1
  52. package/dist/reconstruct.d.ts +2 -0
  53. package/dist/reconstruct.d.ts.map +1 -1
  54. package/dist/reconstruct.js +39 -2
  55. package/dist/reconstruct.js.map +1 -1
  56. package/dist/service.d.ts +1 -1
  57. package/dist/service.js +1 -1
  58. package/dist/spine.d.ts +3 -4
  59. package/dist/spine.d.ts.map +1 -1
  60. package/dist/spine.js +0 -0
  61. package/dist/spine.js.map +1 -1
  62. package/dist/staging.d.ts +32 -3
  63. package/dist/staging.d.ts.map +1 -1
  64. package/dist/staging.js +85 -8
  65. package/dist/staging.js.map +1 -1
  66. package/dist/tokendata.d.ts +1 -1
  67. package/dist/tokendata.d.ts.map +1 -1
  68. package/dist/tokendata.js +21 -3
  69. package/dist/tokendata.js.map +1 -1
  70. package/dist/tokens.d.ts +29 -1
  71. package/dist/tokens.d.ts.map +1 -1
  72. package/dist/tokens.js +21 -1
  73. package/dist/tokens.js.map +1 -1
  74. package/dist/types.d.ts +34 -5
  75. package/dist/types.d.ts.map +1 -1
  76. package/package.json +1 -1
package/dist/deploy.js CHANGED
@@ -1,6 +1,6 @@
1
- import { concat, getAddress, toHex, zeroAddress, keccak256, toBytes } from 'viem';
2
- import { oneOfOneImageFactoryAbi, seriesImageFactoryAbi, abxMetadataRendererAbi, seriesCodeFactoryAbi, seriesCodeFactoryBytecode, abxParamsLibBytecode, abxCodeLibBytecode, oneOfOneEditionFactoryAbi, editionImageFactoryAbi, editionCodeFactoryAbi, editionCodeFactoryBytecode, abxEditionLibBytecode, } from './abi/index.js';
3
- import { predictRenderer, predictFixedPriceMinter, predictSeedSource, predictOneOfOneEditionFactory, predictEditionFactory, predictFixedPriceMinter1155, } from './create2.js';
1
+ import { concat, getAddress, toHex, zeroAddress } from 'viem';
2
+ import { oneOfOneImageFactoryAbi, seriesImageFactoryAbi, abxMetadataRendererAbi, seriesCodeFactoryAbi, abxMetadataLibBytecode, abxParamsLibBytecode, abxCodeLibBytecode, oneOfOneEditionFactoryAbi, editionImageFactoryAbi, editionCodeFactoryAbi, } from './abi/index.js';
3
+ import { predictRenderer, predictFixedPriceMinter, predictSeedSource, predictOneOfOneEditionFactory, predictEditionFactory, predictFixedPriceMinter1155, predictCreate2Address, predictSeriesCodeFactory, predictEditionCodeFactory, linkSeriesCodeFactory, linkEditionCodeFactory, linkEditionLib, create2Calldata, CREATE2_PROXY, ABX_SALT, } from './create2.js';
4
4
  import { prepareDeployFactory, prepareDeploySeriesFactory, prepareDeployRenderer, prepareDeployFixedPriceMinter, prepareDeploySeedSource, prepareDeployOneOfOne, prepareDeploySeries, prepareDeployOneOfOneEdition, prepareDeployOneOfOneEditionFactory, prepareDeployEditionImage, prepareDeployEditionFactory, prepareDeployFixedPriceMinter1155, } from './ops.js';
5
5
  /** 12 bytes of entropy — the non-guard tail of a deterministic-deploy salt. */
6
6
  function entropy12() {
@@ -42,6 +42,10 @@ async function chainIdOf(publicClient) {
42
42
  */
43
43
  export async function deployFactory(send, publicClient) {
44
44
  const chainId = await chainIdOf(publicClient);
45
+ // OneOfOneImage links AbxMetadataLib since the metadata field store was externalized. These two
46
+ // factories linked NOTHING before, so this leg is new here rather than merely reordered —
47
+ // and without it the factory deploys against an unresolved placeholder.
48
+ const metadataLib = await ensureMetadataLib(send, publicClient, chainId, 'OneOfOneImage');
45
49
  const receipt = await send(prepareDeployFactory({ chainId }));
46
50
  if (!receipt.contractAddress)
47
51
  throw new Error('Factory deploy produced no contract address');
@@ -51,7 +55,7 @@ export async function deployFactory(send, publicClient) {
51
55
  abi: oneOfOneImageFactoryAbi,
52
56
  functionName: 'implementation',
53
57
  }));
54
- return { factory, implementation, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
58
+ return { factory, implementation, metadataLib, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
55
59
  }
56
60
  /**
57
61
  * Deploy the canonical Series clone factory — the trust anchor for multi-token drops.
@@ -60,6 +64,10 @@ export async function deployFactory(send, publicClient) {
60
64
  */
61
65
  export async function deploySeriesFactory(send, publicClient) {
62
66
  const chainId = await chainIdOf(publicClient);
67
+ // SeriesImage links AbxMetadataLib since the metadata field store was externalized. These two
68
+ // factories linked NOTHING before, so this leg is new here rather than merely reordered —
69
+ // and without it the factory deploys against an unresolved placeholder.
70
+ const metadataLib = await ensureMetadataLib(send, publicClient, chainId, 'SeriesImage');
63
71
  const receipt = await send(prepareDeploySeriesFactory({ chainId }));
64
72
  if (!receipt.contractAddress)
65
73
  throw new Error('Series factory deploy produced no contract address');
@@ -69,57 +77,124 @@ export async function deploySeriesFactory(send, publicClient) {
69
77
  abi: seriesImageFactoryAbi,
70
78
  functionName: 'implementation',
71
79
  }));
72
- return { factory, implementation, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
80
+ return { factory, implementation, metadataLib, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
73
81
  }
74
- /** The solc link placeholder for a fully-qualified library name: `__$<keccak(fqn)[0:34]>$__`. */
75
- function libPlaceholder(fullyQualified) {
76
- return `__$${keccak256(toBytes(fullyQualified)).slice(2, 36)}$__`;
82
+ /**
83
+ * CREATE2-deploy one write-path library through the keyless proxy at its canonical salt — the TS
84
+ * twin of `DeployLibraries.s.sol`, so an SDK-bootstrapped chain and a forge-bootstrapped chain put
85
+ * the library at the SAME address, and every chain agrees with every other.
86
+ *
87
+ * Idempotent out of necessity, not politeness: the proxy reverts when the target address already
88
+ * has code, so a chain that forge (or an earlier bootstrap) already set up must be detected and
89
+ * reused rather than re-deployed. That is also what makes a partially-bootstrapped chain
90
+ * recoverable — re-running finishes the job instead of failing on step one.
91
+ */
92
+ async function ensureLibrary(send, publicClient, args) {
93
+ const address = predictCreate2Address(args.salt, args.bytecode);
94
+ const code = await publicClient.getCode({ address });
95
+ if (code && code !== '0x')
96
+ return address; // already on this chain (forge, or an earlier bootstrap)
97
+ await send({
98
+ op: args.op,
99
+ to: CREATE2_PROXY,
100
+ data: create2Calldata(args.salt, args.bytecode),
101
+ value: '0x0',
102
+ chainId: args.chainId,
103
+ summary: args.summary,
104
+ fields: { address },
105
+ });
106
+ return address;
107
+ }
108
+ // The three write-path library legs, one wrapper each over {@link ensureLibrary}. Named rather than
109
+ // inlined per factory because FOUR of ABX's six factories are library-linked and each links a
110
+ // different subset: SeriesCodeFactory {params, code}, EditionCodeFactory {params, code, edition},
111
+ // OneOfOneEditionFactory + EditionImageFactory {params, edition} (params because AbxEditionLib
112
+ // itself delegatecalls it). A factory bootstrap composes the legs it needs, in order; whichever
113
+ // legs another bootstrap already ran are reused from chain, never redeployed.
114
+ /** `AbxMetadataLib` at its canonical salt — the metadata field store that ALL SIX token types
115
+ * delegatecall. It links nothing itself, so it can be deployed first and unconditionally; every
116
+ * factory bootstrap needs it, including the two ERC-721 image ones that linked nothing before. */
117
+ const ensureMetadataLib = (send, publicClient, chainId, forWhom) => ensureLibrary(send, publicClient, {
118
+ op: 'deploy-metadata-lib',
119
+ salt: ABX_SALT.metadataLib,
120
+ bytecode: abxMetadataLibBytecode,
121
+ chainId,
122
+ summary: `Deploy AbxMetadataLib (${forWhom} metadata field store, CREATE2 — deterministic address)`,
123
+ });
124
+ /** `AbxParamsLib` at its canonical salt — the params write path, and `AbxEditionLib`'s own dependency. */
125
+ const ensureParamsLib = (send, publicClient, chainId, forWhom) => ensureLibrary(send, publicClient, {
126
+ op: 'deploy-params-lib',
127
+ salt: ABX_SALT.paramsLib,
128
+ bytecode: abxParamsLibBytecode,
129
+ chainId,
130
+ summary: `Deploy AbxParamsLib (${forWhom} write-path library, CREATE2 — deterministic address)`,
131
+ });
132
+ /** `AbxCodeLib` at its canonical salt — the script/code write path of the two code token types. */
133
+ const ensureCodeLib = (send, publicClient, chainId, forWhom) => ensureLibrary(send, publicClient, {
134
+ op: 'deploy-code-lib',
135
+ salt: ABX_SALT.codeLib,
136
+ bytecode: abxCodeLibBytecode,
137
+ chainId,
138
+ summary: `Deploy AbxCodeLib (${forWhom} write-path library, CREATE2 — deterministic address)`,
139
+ });
140
+ /** `AbxEditionLib` at its canonical salt — the 1155 uri / creator-token / edition-supply write path
141
+ * that ALL THREE edition token types delegatecall. Must be called after {@link ensureParamsLib}:
142
+ * this library's own bytecode delegatecalls `AbxParamsLib`, so `linkEditionLib()` — and therefore
143
+ * the address it lands at — is a function of `predictParamsLib()`. Deploying it raw is the opaque
144
+ * `Invalid byte sequence` bug; `__$…$__` is not hex. */
145
+ const ensureEditionLib = (send, publicClient, chainId, forWhom) => ensureLibrary(send, publicClient, {
146
+ op: 'deploy-edition-lib',
147
+ salt: ABX_SALT.editionLib,
148
+ bytecode: linkEditionLib(),
149
+ chainId,
150
+ summary: `Deploy AbxEditionLib (${forWhom} write-path library, CREATE2 — deterministic address)`,
151
+ });
152
+ /** Guard the one failure mode a CREATE2 deploy has: the address is already taken (the keyless proxy
153
+ * reverts, with nothing useful in the revert data). Says so in words instead. */
154
+ async function assertVacant(publicClient, what, address, chainId) {
155
+ const code = await publicClient.getCode({ address });
156
+ if (code && code !== '0x') {
157
+ throw new Error(`${what} is already deployed at its canonical address ${address} on chain ${chainId} — resolve it instead of deploying (CREATE2 cannot redeploy to an occupied address)`);
158
+ }
77
159
  }
78
160
  /**
79
- * Deploy the code-project trust root on a chain with no canonical set: the two
80
- * delegatecalled write-path libraries first ({AbxParamsLib}, {AbxCodeLib}), the factory
81
- * bytecode LINKED against them (solc placeholders replaced — what forge does at build
82
- * time, done here so a sandbox/fresh chain needs no forge), then the factory (whose
83
- * constructor deploys the {SeriesCode} implementation). Each of the three deploys is a
84
- * plain contract creation (no canonical/CREATE2 address — the libraries' addresses are
85
- * nonce-dependent, so there is nothing to predict), sent through `send` in order since the
86
- * factory's bytecode can only be linked once the two library addresses are known.
161
+ * Deploy the code-project trust root on a chain with no canonical set: the two delegatecalled
162
+ * write-path libraries first ({AbxParamsLib}, {AbxCodeLib}), the factory bytecode LINKED against
163
+ * them (solc placeholders replaced — what forge does at build time, done here so a sandbox/fresh
164
+ * chain needs no forge), then the factory (whose constructor deploys the {SeriesCode}
165
+ * implementation).
166
+ *
167
+ * All three go through the keyless CREATE2 proxy at canonical `AbxSalts` salts, so all three land at
168
+ * addresses that are the same on every chain and computable before the first transaction — the
169
+ * factory's included: linking substitutes an address into already-compiled bytecode, so once the
170
+ * libraries are predictable the linked initcode is fixed too (`predictSeriesCodeFactory()`). The
171
+ * ordering below is still sequential, but now for a plain data-dependency reason rather than a
172
+ * nonce one. See `create2.ts`'s write-path-library note for why the old "libraries are
173
+ * nonce-dependent" story was wrong, and for the compile-time-linking trap that IS real.
87
174
  */
88
175
  export async function deploySeriesCodeFactory(send, publicClient) {
89
176
  const chainId = await chainIdOf(publicClient);
90
- const deployRaw = async (op, bytecode, summary) => {
91
- const receipt = await send({ op, to: null, data: bytecode, value: '0x0', chainId, summary, fields: {} });
92
- if (!receipt.contractAddress)
93
- throw new Error(`${op} deploy produced no contract address`);
94
- return { address: receipt.contractAddress, hash: receipt.transactionHash };
95
- };
96
- const { address: paramsLib } = await deployRaw('deploy-params-lib', abxParamsLibBytecode, 'Deploy AbxParamsLib (SeriesCode write-path library)');
97
- const { address: codeLib } = await deployRaw('deploy-code-lib', abxCodeLibBytecode, 'Deploy AbxCodeLib (SeriesCode write-path library)');
98
- const linked = seriesCodeFactoryBytecode
99
- .split(libPlaceholder('src/libraries/AbxParamsLib.sol:AbxParamsLib'))
100
- .join(paramsLib.slice(2).toLowerCase())
101
- .split(libPlaceholder('src/libraries/AbxCodeLib.sol:AbxCodeLib'))
102
- .join(codeLib.slice(2).toLowerCase());
103
- if (linked.includes('__$'))
104
- throw new Error('unlinked library placeholder remains in SeriesCodeFactory bytecode');
177
+ const metadataLib = await ensureMetadataLib(send, publicClient, chainId, 'SeriesCode');
178
+ const paramsLib = await ensureParamsLib(send, publicClient, chainId, 'SeriesCode');
179
+ const codeLib = await ensureCodeLib(send, publicClient, chainId, 'SeriesCode');
180
+ const linked = linkSeriesCodeFactory();
181
+ const factory = predictSeriesCodeFactory();
182
+ await assertVacant(publicClient, 'SeriesCodeFactory', factory, chainId);
105
183
  const receipt = await send({
106
184
  op: 'deploy-series-code-factory',
107
- to: null,
108
- data: linked,
185
+ to: CREATE2_PROXY,
186
+ data: create2Calldata(ABX_SALT.seriesCodeFactory, linked),
109
187
  value: '0x0',
110
188
  chainId,
111
189
  summary: 'Deploy the SeriesCode clone factory (trust anchor), linked against AbxParamsLib/AbxCodeLib',
112
- fields: { paramsLib, codeLib },
190
+ fields: { factory, metadataLib, paramsLib, codeLib },
113
191
  });
114
- if (!receipt.contractAddress)
115
- throw new Error('SeriesCodeFactory deploy produced no contract address');
116
- const factory = receipt.contractAddress;
117
192
  const implementation = (await publicClient.readContract({
118
193
  address: factory,
119
194
  abi: seriesCodeFactoryAbi,
120
195
  functionName: 'implementation',
121
196
  }));
122
- return { factory, implementation, paramsLib, codeLib, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
197
+ return { factory, implementation, metadataLib, paramsLib, codeLib, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
123
198
  }
124
199
  /** Deploy the canonical pseudorandom seed source (for chains without one shipped). CREATE2 via the
125
200
  * keyless proxy + canonical salt → the SAME address on every chain (matches `DeploySeedSource.s.sol`
@@ -210,32 +285,46 @@ export async function deploySeries(send, publicClient, args) {
210
285
  * keyless CREATE2 proxy with the canonical `AbxSalts.ONE_OF_ONE_EDITION_FACTORY` salt — matching
211
286
  * how `contracts/script/DeployOneOfOneEdition.s.sol` actually deploys it — so its address is the
212
287
  * SAME on every chain and predictable before the deploy tx (`predictOneOfOneEditionFactory()`).
288
+ *
289
+ * Library-linked, like the two code factories: `OneOfOneEdition` delegates its uri /
290
+ * creator-token / edition-supply bodies into `AbxEditionLib`, so this deploys `AbxParamsLib` +
291
+ * `AbxEditionLib` first ({@link ensureEditionLibraries}) and sends the factory's initcode LINKED
292
+ * against the settled library address. Linking costs nothing in determinism — see `create2.ts`'s
293
+ * write-path-library note.
213
294
  */
214
295
  export async function deployOneOfOneEditionFactory(send, publicClient) {
215
296
  const chainId = await chainIdOf(publicClient);
297
+ const metadataLib = await ensureMetadataLib(send, publicClient, chainId, 'OneOfOneEdition');
298
+ const paramsLib = await ensureParamsLib(send, publicClient, chainId, 'OneOfOneEdition');
299
+ const editionLib = await ensureEditionLib(send, publicClient, chainId, 'OneOfOneEdition');
216
300
  const factory = predictOneOfOneEditionFactory();
301
+ await assertVacant(publicClient, 'OneOfOneEditionFactory', factory, chainId);
217
302
  const receipt = await send(prepareDeployOneOfOneEditionFactory({ chainId }));
218
303
  const implementation = (await publicClient.readContract({
219
304
  address: factory,
220
305
  abi: oneOfOneEditionFactoryAbi,
221
306
  functionName: 'implementation',
222
307
  }));
223
- return { factory, implementation, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
308
+ return { factory, implementation, metadataLib, paramsLib, editionLib, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
224
309
  }
225
- /** Deploy the canonical `EditionImageFactory` — the multi-artwork edition trust anchor. CREATE2
310
+ /** Deploy the canonical `EditionImageFactory` — the multi-work edition trust anchor. CREATE2
226
311
  * via the keyless proxy + the canonical `AbxSalts.EDITION_FACTORY` salt (see {@link
227
312
  * deployOneOfOneEditionFactory}'s doc note on why this differs from the 721 series factory's
228
- * plain-creation bootstrap). */
313
+ * plain-creation bootstrap, and why `AbxEditionLib` has to land first). */
229
314
  export async function deployEditionFactory(send, publicClient) {
230
315
  const chainId = await chainIdOf(publicClient);
316
+ const metadataLib = await ensureMetadataLib(send, publicClient, chainId, 'EditionImage');
317
+ const paramsLib = await ensureParamsLib(send, publicClient, chainId, 'EditionImage');
318
+ const editionLib = await ensureEditionLib(send, publicClient, chainId, 'EditionImage');
231
319
  const factory = predictEditionFactory();
320
+ await assertVacant(publicClient, 'EditionImageFactory', factory, chainId);
232
321
  const receipt = await send(prepareDeployEditionFactory({ chainId }));
233
322
  const implementation = (await publicClient.readContract({
234
323
  address: factory,
235
324
  abi: editionImageFactoryAbi,
236
325
  functionName: 'implementation',
237
326
  }));
238
- return { factory, implementation, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
327
+ return { factory, implementation, metadataLib, paramsLib, editionLib, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
239
328
  }
240
329
  /** Deploy `AbxFixedPriceMinter1155` — the canonical, ownerless, multi-tenant edition sale
241
330
  * singleton (the Minter spine's edition lane). Sibling of `deployFixedPriceMinter`, one id
@@ -259,7 +348,7 @@ export async function deployOneOfOneEdition(send, publicClient, args) {
259
348
  return { clone, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
260
349
  }
261
350
  /**
262
- * Deploy an EditionImage (multi-artwork edition) NFT as an immutable EIP-1167 clone, at a
351
+ * Deploy an EditionImage (multi-work edition) NFT as an immutable EIP-1167 clone, at a
263
352
  * deterministic address. The edition twin of `deploySeries`.
264
353
  */
265
354
  export async function deployEditionImage(send, publicClient, args) {
@@ -271,52 +360,43 @@ export async function deployEditionImage(send, publicClient, args) {
271
360
  /**
272
361
  * Deploy the code-project edition trust root on a chain with no canonical set: the THREE
273
362
  * delegatecalled write-path libraries first ({AbxParamsLib}, {AbxCodeLib}, {AbxEditionLib} — the
274
- * edition twin of `deploySeriesCodeFactory`'s two-lib dance, extended by the one library
275
- * `EditionCode` alone needs — see `AbxEditionLib`'s class-level dev note), the factory bytecode
276
- * LINKED against all three (solc placeholders replaced — what forge does at build time, done here
277
- * so a sandbox/fresh chain needs no forge), then the factory (whose constructor deploys the
278
- * {EditionCode} implementation). Each deploy is a plain contract creation (no canonical/CREATE2
279
- * address — the libraries' addresses are nonce-dependent, so there is nothing to predict; see
280
- * `create2.ts`'s class-level dev note on the ERC-1155-editions section), sent through `send` in
281
- * order since the factory's bytecode can only be linked once all three library addresses are known.
363
+ * edition twin of `deploySeriesCodeFactory`'s two-lib dance, plus the 1155 write path {@link
364
+ * deployOneOfOneEditionFactory} and {@link deployEditionFactory} link too), the factory bytecode
365
+ * LINKED against all three, then the factory (whose constructor deploys the {EditionCode}
366
+ * implementation). CREATE2 at canonical `AbxSalts` salts throughout, exactly like
367
+ * {@link deploySeriesCodeFactory}, so the whole set is cross-chain-identical and predictable
368
+ * (`predictEditionCodeFactory()`). This is the only factory linking all three libraries; it is NOT
369
+ * the only one linking {AbxEditionLib} — all three 1155 token types delegate into it.
370
+ *
371
+ * One wrinkle the 721 twin doesn't have: {AbxEditionLib} delegatecalls {AbxParamsLib}, so its OWN
372
+ * shipped bytecode carries an unlinked placeholder and has to be linked before it can be deployed
373
+ * ({@link ensureEditionLib} does this via `linkEditionLib()`). Deploying it raw is what made this
374
+ * function fail with an opaque `Invalid byte sequence` — `__$…$__` is not hex, and the old
375
+ * unlinked-placeholder guard only checked the factory's bytecode, never the library's.
282
376
  */
283
377
  export async function deployEditionCodeFactory(send, publicClient) {
284
378
  const chainId = await chainIdOf(publicClient);
285
- const deployRaw = async (op, bytecode, summary) => {
286
- const receipt = await send({ op, to: null, data: bytecode, value: '0x0', chainId, summary, fields: {} });
287
- if (!receipt.contractAddress)
288
- throw new Error(`${op} deploy produced no contract address`);
289
- return { address: receipt.contractAddress, hash: receipt.transactionHash };
290
- };
291
- const { address: paramsLib } = await deployRaw('deploy-params-lib', abxParamsLibBytecode, 'Deploy AbxParamsLib (EditionCode write-path library)');
292
- const { address: codeLib } = await deployRaw('deploy-code-lib', abxCodeLibBytecode, 'Deploy AbxCodeLib (EditionCode write-path library)');
293
- const { address: editionLib } = await deployRaw('deploy-edition-lib', abxEditionLibBytecode, 'Deploy AbxEditionLib (EditionCode write-path library)');
294
- const linked = editionCodeFactoryBytecode
295
- .split(libPlaceholder('src/libraries/AbxParamsLib.sol:AbxParamsLib'))
296
- .join(paramsLib.slice(2).toLowerCase())
297
- .split(libPlaceholder('src/libraries/AbxCodeLib.sol:AbxCodeLib'))
298
- .join(codeLib.slice(2).toLowerCase())
299
- .split(libPlaceholder('src/libraries/AbxEditionLib.sol:AbxEditionLib'))
300
- .join(editionLib.slice(2).toLowerCase());
301
- if (linked.includes('__$'))
302
- throw new Error('unlinked library placeholder remains in EditionCodeFactory bytecode');
379
+ const metadataLib = await ensureMetadataLib(send, publicClient, chainId, 'EditionCode');
380
+ const paramsLib = await ensureParamsLib(send, publicClient, chainId, 'EditionCode');
381
+ const codeLib = await ensureCodeLib(send, publicClient, chainId, 'EditionCode');
382
+ const editionLib = await ensureEditionLib(send, publicClient, chainId, 'EditionCode');
383
+ const linked = linkEditionCodeFactory();
384
+ const factory = predictEditionCodeFactory();
385
+ await assertVacant(publicClient, 'EditionCodeFactory', factory, chainId);
303
386
  const receipt = await send({
304
387
  op: 'deploy-edition-code-factory',
305
- to: null,
306
- data: linked,
388
+ to: CREATE2_PROXY,
389
+ data: create2Calldata(ABX_SALT.editionCodeFactory, linked),
307
390
  value: '0x0',
308
391
  chainId,
309
392
  summary: 'Deploy the EditionCode clone factory (trust anchor), linked against AbxParamsLib/AbxCodeLib/AbxEditionLib',
310
- fields: { paramsLib, codeLib, editionLib },
393
+ fields: { factory, metadataLib, paramsLib, codeLib, editionLib },
311
394
  });
312
- if (!receipt.contractAddress)
313
- throw new Error('EditionCodeFactory deploy produced no contract address');
314
- const factory = receipt.contractAddress;
315
395
  const implementation = (await publicClient.readContract({
316
396
  address: factory,
317
397
  abi: editionCodeFactoryAbi,
318
398
  functionName: 'implementation',
319
399
  }));
320
- return { factory, implementation, paramsLib, codeLib, editionLib, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
400
+ return { factory, implementation, metadataLib, paramsLib, codeLib, editionLib, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
321
401
  }
322
402
  //# sourceMappingURL=deploy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,10 @@ export interface ChainDeployment {
40
40
  editionFactory?: Address;
41
41
  editionCodeFactory?: Address;
42
42
  fixedPriceMinter1155?: Address;
43
+ metadataLib?: Address;
44
+ paramsLib?: Address;
45
+ codeLib?: Address;
46
+ editionLib?: Address;
43
47
  }
44
48
  export declare const DEPLOYMENTS: Record<number, ChainDeployment>;
45
49
  /** The canonical deployment record for a chain (empty if the chain isn't shipped yet). */
@@ -1 +1 @@
1
- {"version":3,"file":"deployments.d.ts","sourceRoot":"","sources":["../src/deployments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAGlC,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AA2CD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAmBvD,CAAC;AAEF,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAE9D;AAOD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEtF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE5F;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEvF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEzF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE/F;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEhG;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEzF;AAID,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAErG;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE7F;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEjG;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEnG;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAExF;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAG1D,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEjG"}
1
+ {"version":3,"file":"deployments.d.ts","sourceRoot":"","sources":["../src/deployments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAGlC,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAK/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA4GD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAqBvD,CAAC;AAEF,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAE9D;AAOD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEtF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE5F;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEvF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEzF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE/F;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEhG;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEzF;AAID,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAErG;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE7F;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEjG;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEnG;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAExF;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAG1D,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEjG"}
@@ -3,60 +3,125 @@ import { readEnv } from './util.js';
3
3
  * The cross-chain-identical set — CREATE2 (keyless proxy + `AbxSalts`), so these addresses are the
4
4
  * SAME on every chain. Factory addresses list their EIP-1167 implementation; the implementations are
5
5
  * identical cross-chain too (a factory does exactly one CREATE at nonce 1 from its own — identical —
6
- * address). The renderer is spec v4 (on-chain param enumeration → `abx_params` in tokenURI, and
7
- * inline/reader `animation_url` as a `data:text/html;base64` URI; v3 added the artifacts manifest +
8
- * authorship/rights contractURI fields). SeriesCode's delegatecalled write-path libraries are also
9
- * CREATE2-deterministic and identical everywhere:
10
- * AbxParamsLib 0xdC8FeEDabd8B6f4F7819FD96F3ea34b7c2470817 (v3, externalized read surface — B22
11
- * step 1; replaced 0xE26bFde1835D8c9ba6cd66c3C4eAE1B47EDA6130 v2, which replaced
12
- * 0x7DAa26bADD99812a77384B461b6375e0c04F2865), AbxCodeLib 0xCd12078E81A3BDEACdcd57AE390f4D59F832766B.
6
+ * address). The renderer is **spec v10** — the version `isCurrentRenderer` gates on, and the reason a
7
+ * behind-spec renderer is treated as stale rather than merely older: each bump changed what the
8
+ * document actually contains (v5 escaped the provenance note, v6 changed rendered output for hostile
9
+ * input, v7 renamed the `artist` collection field to `creator`, v8 retired the `abx_params` block and
10
+ * narrowed provenance to the route a field took rather than a claim about its destination, v9 stopped
11
+ * duplicating a computed image into `artifacts`, which changes what the document contains).
12
+ *
13
+ * The delegatecalled write-path libraries are CREATE2-deterministic and identical everywhere too —
14
+ * that is a property of CREATE2, not a lucky accident, and linking a library does not cost the
15
+ * linking factory its own deterministic address (see `create2.ts`'s write-path-library note, which
16
+ * explains what IS a real trap here). They are deployed EXPLICITLY at `AbxSalts.METADATA_LIB` /
17
+ * `.PARAMS_LIB` / `.CODE_LIB` / `.EDITION_LIB` (`abx.lib.metadata.v1` / `abx.lib.params.v1` /
18
+ * `abx.lib.code.v1` / `abx.lib.edition.v1`) by
19
+ * `DeployLibraries.s.sol` and by the SDK's own bootstrap — not by forge's automatic linking, which
20
+ * routes through the same proxy but at its own salt of zero. So every library address below is
21
+ * recomputable from (proxy, salt, creation bytecode) alone: `predictMetadataLib()` /
22
+ * `predictParamsLib()` / `predictCodeLib()` / `predictEditionLib()`.
23
+ *
24
+ * NO SUPERSEDED ADDRESS APPEARS IN THIS FILE, deliberately. Earlier revisions kept a lineage of
25
+ * replaced deployments in these comments; several of those contracts still have code on chain, so a
26
+ * stale address sitting next to a live one is one careless copy-paste away from binding a factory to
27
+ * an un-manifested library — the exact failure this file exists to prevent. Git has the history.
13
28
  */
14
29
  const CANONICAL = {
15
- // 721C unit (2026-08-04): all three factories replaced — InitParams gained `transferValidator`
16
- // (13 fields) and every token type composes the CreatorToken (ERC-721C) mixin. Projects deployed
17
- // from the previous anchors keep working on their frozen implementations.
18
- // replaced: factory 0xB9eEE39DB7D03E0b94CE403F69E928e2a5F134Ca (impl 0xf1F0893897CC19e75d829fa550a5228c5119cA39)
19
- factory: '0xbc44F467083d0C10a843485876A839C239222605', // impl 0x76E856602EAEE8b9E41BF269BEfcE2B9d5EaFcA5
20
- // replaced: seriesFactory 0x9d97C00100351682e6625961e033b6F43E60639A (impl 0x58D8b9F7ABa3043734cBeBfaa9c46875070E16ed)
21
- seriesFactory: '0xA5B03A7CEc64E083523202d7264F03B2511baF75', // impl 0x38715c1cAedDAe6F445372cF4E8c79E92f8D6014
22
- // replaced: seriesCodeFactory 0xADE45e2D5C45090b412008644867C737100F5503 (impl 0xd5f3db6418AA362e62431BC73B890632709fFfbB);
23
- // the param-enumeration unit (2026-08-03) had replaced 0x77f61Ead461f368dbF3788EeFe9693bA5a73Bd87
24
- // (impl 0xfd2034B6af517AD019f0dD7b007F07eF358D4053) — pre-enumeration projects stay on those.
25
- seriesCodeFactory: '0x45bE6050553c96B6d4400f693DcB4eC595daF492', // impl 0xB505Eb888625dEC413F45F04824266485dd5e4E9
26
- renderer: '0x65CB990249d11832b64Db5E3ceaC61f9104d803b', // spec v4; replaced 0x837A5cF907E7a6727B08acfE2A865F2bD5C50b1D (v3)
27
- chunkStore: '0x03d3a962602093a937B96ee9C0b5C54cec3e701E',
28
- fixedPriceMinter: '0xd970A2c936FFbb2130c2e4Ddf4245FF92465fEA5',
29
- seedSource: '0x53eDFD2047e00C133378DEb430183DEE285E652e',
30
- // ERC-1155 editions unit (2026-08-05): the three edition twins' trust anchors + the per-id
31
- // sale singleton, CREATE2-identical on both chains. EditionCode's implementation links three
32
- // write-path libraries: AbxEditionLib 0xadDC7D5037918A65741d26b2867c5BD29dd5c1E1 (new),
33
- // AbxParamsLib 0xE57D7Ec499b761A5C60BFA3bDEd878631e7334fD (new bytecode — the adaptive
34
- // any-holder TokenOwner leg; the 721 SeriesCodeFactory keeps its original lib at
35
- // 0xdC8FeEDabd8B6f4F7819FD96F3ea34b7c2470817), AbxCodeLib 0xCd12078E81A3BDEACdcd57AE390f4D59F832766B
36
- // (shared, unchanged).
37
- oneOfOneEditionFactory: '0xe8b18A7D971B5ea4e92dD33BfAE800f0a91c3438', // impl 0xef5f74776DAFb0D2a1F0646d6F678f39dA392cF2
38
- editionFactory: '0x504f5702017407942F0cc63aCc894C0540E96082', // impl 0xb57eE41cA560aA952482CdddF0b0bd7fbfCf2657
39
- editionCodeFactory: '0xF433B71e4C3E1FF1ee5BcA96042281fd0b1F3172', // impl 0xaEE67ee55628C0FE896267764106A53D399495d5
40
- fixedPriceMinter1155: '0xd43B619E4F9afE22dCFAA3B2a70439e63C1Fba4c',
30
+ // ── The 2026-08-14 greenfield redeploy ──────────────────────────────────────────────────────
31
+ //
32
+ // Every address below was cut from one source tree, after four internal rounds of security audit,
33
+ // an independent external audit, a post-deploy verification review, and the `artist` → `creator`
34
+ // rename. Nothing here descends from an earlier generation: the prior addresses are gone from this
35
+ // file on purpose, because keeping a lineage of superseded deployments in the manifest is how a
36
+ // stale address gets copied forward by mistake. Git has the history; this file records what is live.
37
+ //
38
+ // It took two passes on the same day, and the second one is worth knowing about because it is the
39
+ // shape a redeploy usually has. The first moved everything: externalizing the metadata field store
40
+ // into `AbxMetadataLib` changed all six token implementations, and the renderer's `abx_params`
41
+ // removal took it to spec v8. The second closed the two findings of the post-deploy review
42
+ // (`reviews/2026-08/`) — both source-only, with runtime bodies measured byte-identical before and
43
+ // after — so it moved exactly the five factories whose implementations compose the two mixins that
44
+ // changed. The third moved ONE address: the renderer, to spec v9, for the audit's A-03 (a computed
45
+ // image was being emitted twice in the same document). Nothing links the renderer — tokens hold its
46
+ // address as init state — so no factory or implementation moved with it.
47
+ //
48
+ // The fourth widened `IAbxConfigureHook.onParamConfigured` with `dataLength` + `dataBlobAddress`
49
+ // (so a creator's own hook can police blob size instead of the protocol capping every project) and
50
+ // took `ConfigurableParams` to extension v3. That reaches further than the renderer bump did but
51
+ // still not everywhere: `AbxParamsLib` changed, `AbxEditionLib` moved because it LINKS it, the four
52
+ // token types composing `ConfigurableParams` moved with their factories, and the generator moved on
53
+ // a metadata-only change (its pointers were pinned this time, so it reused them rather than writing
54
+ // fresh ones).
55
+ //
56
+ // The fifth closed the audit-hygiene brief: the last V-01-shaped duplicate (the edition mint-cap
57
+ // check, live in TWO copies — the mixin's for the two image editions, the library's for
58
+ // `EditionCode`), plus the `uri()` ladder and creator-token enrollment whose mixin bodies were dead
59
+ // while each token carried its own copy of the passthrough. And renderer spec v10, which finally
60
+ // projects four reserved keys the spec had always listed and nothing on chain emitted. So the three
61
+ // edition factories and the renderer moved. `AbxEditionLib` did NOT — the brief predicted it would,
62
+ // but the pass only DELETED duplicates and added nothing to the library, so its bytecode is
63
+ // unchanged.
64
+ //
65
+ // Across all five passes the two ERC-721 image types and their factory, `AbxMetadataLib`,
66
+ // `AbxCodeLib`, `AbxEditionLib`, the chunk store, the seed source and both minters never moved,
67
+ // because their compile inputs never changed. That asymmetry is the system working: a CREATE2
68
+ // address is a function of the initcode, so "what moved" is a precise answer, not a judgement call.
69
+ //
70
+ // Two properties hold for every entry, and both are checked rather than assumed:
71
+ // 1. Identical on Sepolia and Base Sepolia — CREATE2 through the keyless proxy at the canonical
72
+ // salts in `AbxSalts.sol` / `ABX_SALT`. Only `generator` differs per chain (its constructor
73
+ // bakes chain-specific immutables), which is why it lives in the per-chain blocks below.
74
+ // 2. Recomputable from this build alone — `predictFactory()`, `predictRenderer()`,
75
+ // `predictSeriesCodeFactory()` and friends reproduce every one of them, and the write-path
76
+ // libraries are now deployed EXPLICITLY by `DeployLibraries.s.sol` at named salts rather
77
+ // than by forge's automatic linking at salt zero.
78
+ //
79
+ // Implementations are noted inline because a factory's implementation is the code a clone runs;
80
+ // `abxVersion()` reads 2 on all six, and `specVersion()` reads 8 on the renderer.
81
+ factory: '0x0dC57f8E8C4BC3CceBAE30871a556D305d468Ccb', // impl 0x2483496A957d41be08de36a28F7D731503baaA93
82
+ seriesFactory: '0x2Fd169820442E717256680e4492a372a2b979cdf', // impl 0x318f9625FE8E07e14c390327AdbfB8CaA62755c9
83
+ seriesCodeFactory: '0xD12274482B114Cce6E90C85207678fAEF3f40667', // impl 0x1230a13a44c6De469b18BC8C07eECeA6cA5Ed4E1
84
+ oneOfOneEditionFactory: '0x41e0203DA7f88b376602D9ce6D7833fD223b3a64', // impl 0x6b4644a8a73dd5D52BC73FE9Fc7f1AAeD4375017
85
+ editionFactory: '0x1ef75Fc5421d46b8c2609f8CE303B9C662DdDfAe', // impl 0xa2A0001d84BEf7B4DE41D3d31565854f27eAccD8
86
+ editionCodeFactory: '0x07389a7eB3F876D87661630512b3Ac87C65266a4', // impl 0xa3Ac9A405fEC33C58181917DbC17168265854d5e
87
+ renderer: '0xF194c6826f33eB7a4b46356A176e1eF78c81dA2c', // spec v10 (+background_color/youtube_url/banner_image/featured_image)
88
+ chunkStore: '0x1Ca63a4ADEeF5e722ADA25b892BA40E3b2bcB905', // moved: `read()` is now allocate-once (L-02)
89
+ seedSource: '0xD01d4eDc17F8b4493A43A5e70DCD9813FB1b9A0A',
90
+ fixedPriceMinter: '0x1E321A12386cF6BEe49d1270A5EC54DecA88db48',
91
+ fixedPriceMinter1155: '0x8FcC37dCb00A02367838Fa5B37347dCEec060981',
92
+ // The delegatecalled write-path libraries. Every one of the six token implementations links
93
+ // `AbxMetadataLib` — the on-chain metadata field store is external as of this generation, which is
94
+ // what bought the two code types their EIP-170 headroom (and is why the two ERC-721 image
95
+ // factories, which linked NOTHING before, link one now). On top of that: `AbxParamsLib` +
96
+ // `AbxCodeLib` for the two code types, `AbxEditionLib` for all three ERC-1155 types (and
97
+ // `AbxEditionLib` itself links `AbxParamsLib`, which is why it is deployed after it).
98
+ // Recomputable via `predictMetadataLib()` / `predictParamsLib()` / `predictCodeLib()` /
99
+ // `predictEditionLib()`.
100
+ metadataLib: '0x02b819Bb9065cAf0c598A5CB2f5D37A4eb07460f',
101
+ paramsLib: '0x69e068EB4F82b53c5548BdF6548c797ea9428496',
102
+ codeLib: '0x8dF597246C851E2DF264C8a322c07657395415fc', // unchanged bytecode ⇒ same address as the prior generation
103
+ editionLib: '0x3F159245beB9f226175Fa9Bf522acaD6300C9e63',
41
104
  };
42
105
  export const DEPLOYMENTS = {
43
- // Sepolia (testnet) — CANONICAL infra + its own generator. Generator wired to AB's Sepolia
44
- // dependency registry; default gateways ipfs.io / arweave.net. Runtime asset pointers (SSTORE2):
45
- // abxJsPointer 0x966FEe5a9079aA3461EBA78A60Ba554693037906, gunzipScriptPointer
46
- // 0x957FBC14124db49222b90D7f2Ba594047B4F3D2C. Enumeration-reading generator; replaced
47
- // 0x819D26830E1FbD1a3b383EcA1C24bc2770000910 (params.keys convention).
106
+ // Sepolia (testnet). Generator wired to Art Blocks' Sepolia DependencyRegistryV0
107
+ // (0x5Fcc415BCFb164C5F826B5305274749BeB684e9b); SSTORE2 asset pointers
108
+ // abxJsPointer 0xe34D9e7054c85E5dCfAFBD0c1E8ff48E206ebBf7,
109
+ // gunzipScriptPointer 0xC8739F87eDE0278532ACE0f51936b4A3fA8d5C55.
48
110
  11155111: {
49
111
  ...CANONICAL,
50
- generator: '0xd6371ABbaA21D4363c413816038D576F37D45bEb',
112
+ generator: '0xf099C8fc301340dE2C4D1D2b76fcA05D852dF14A',
51
113
  },
52
- // Base Sepolia (testnet) — same CANONICAL infra; its own generator (no AB DependencyRegistry on
53
- // this chain, so deployed with defaultDependencyRegistry = address(0); collections point at
54
- // their own). Runtime asset pointers (SSTORE2): abxJsPointer 0x8FBAEea8Fdb5B7784756239D05747751D7F72044,
55
- // gunzipScriptPointer 0xfc74aA86F18259204b3E2DcC4163dA5E54F927E6. Enumeration-reading generator;
56
- // replaced 0x229337CA6A442b266BD43B7C70F0f24A2E378cB2 (params.keys convention).
114
+ // Base Sepolia (testnet). No Art Blocks DependencyRegistry on this chain, so the generator is
115
+ // deployed with defaultDependencyRegistry = address(0) — collections point at their own. SSTORE2
116
+ // asset pointers: abxJsPointer 0xF5c9CE4486574c962fA61EdB297845085B6736Ab,
117
+ // gunzipScriptPointer 0xB162Fa1B55b9Ad6e1c211c02f4c3f60c87036f03. Recorded here because they are
118
+ // the ONLY way to re-run `DeployAbxGenerator` idempotently — without them the script writes fresh
119
+ // pointers, which moves the generator's CREATE2 address and quietly deploys a second one. (That is
120
+ // exactly what happened in the 2026-08-14 pass: the pointers were not pinned, so this generation's
121
+ // generator is a fresh deploy at a fresh address rather than a reuse of the prior one.)
57
122
  84532: {
58
123
  ...CANONICAL,
59
- generator: '0x916288Ae2D9eEF81Db78EE8667a0ad6326dcC952',
124
+ generator: '0x05bd052dAf464bda2d21c48F8f228Ec435cB89Ab',
60
125
  },
61
126
  };
62
127
  /** The canonical deployment record for a chain (empty if the chain isn't shipped yet). */