@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
@@ -1 +1 @@
1
- {"version":3,"file":"chunks.d.ts","sourceRoot":"","sources":["../src/chunks.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACxB,MAAM,MAAM,CAAC;AAKd;;;;;;;;;GASG;AAEH;2FAC2F;AAC3F,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,iFAAiF;AACjF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,+FAA+F;AAC/F,MAAM,MAAM,aAAa,GAAG,CAAC,EAAE,EAAE,SAAS,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAE3E;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,UAAU,EACnB,IAAI,GAAE;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAM,GAChD,YAAY,EAAE,CAehB;AAID;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,UAAY,CAAC;AAE/C;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAE5D;AAED,qFAAqF;AACrF,MAAM,MAAM,aAAa,GACrB;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,YAAY,EAAE,CAAC;IAAC,OAAO,EAAE,CAAC,CAAA;CAAC,GACpD;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC;AAEhE;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EAAE,EACtB,IAAI,GAAE;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAM,GAC9B,aAAa,CAqBf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAC,CAAC,CAalE;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,8FAA8F;AAC9F,wBAAsB,UAAU,CAC9B,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAC,GACvC,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAC,CAAC,CAW1C;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;CAAC,GAC1D,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAC,CAAC,CAe3C;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;CAAC,GAC1D,OAAO,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAC,CAAC,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAC,CAAC,CAsBjF;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAC,GACpG,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAC,CAAC,CAmBnE;AAED,2FAA2F;AAC3F,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAC,CAAC,CAAA;CAAC,GACrF,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAC,CAAC,CAe3C"}
1
+ {"version":3,"file":"chunks.d.ts","sourceRoot":"","sources":["../src/chunks.ts"],"names":[],"mappings":"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"}
package/dist/chunks.js CHANGED
@@ -1,5 +1,7 @@
1
- import { encodeFunctionData, parseEventLogs, } from 'viem';
1
+ import { bytesToHex, encodeFunctionData, parseEventLogs } from 'viem';
2
2
  import { abxChunkStoreAbi, abxChunkStoreBytecode } from './abi/index.js';
3
+ import { resolveChunkStore } from './deployments.js';
4
+ import { predictChunkStore } from './create2.js';
3
5
  import { flzCompress } from './fastlz.js';
4
6
  import { ABX_SALT, CREATE2_PROXY, create2Calldata, predictCreate2Address } from './create2.js';
5
7
  /**
@@ -15,6 +17,13 @@ import { ABX_SALT, CREATE2_PROXY, create2Calldata, predictCreate2Address } from
15
17
  /** SSTORE2 data-contract code limit is 24576 bytes (EIP-170) minus the STOP byte; chunk
16
18
  * conservatively so even an incompressible FastLZ chunk (slight expansion) still fits. */
17
19
  export const DEFAULT_CHUNK_SIZE = 22_000;
20
+ /**
21
+ * Chunk-store writes are staged in the SAME lane-agnostic terms as every other write: the SDK
22
+ * builds a {@link PreparedTx}, the caller decides how it's signed via a {@link SendTx}. These writes
23
+ * are **ownerless**, so they can be signed by any funded signer — the env key (hot lane) *or* a
24
+ * connected browser wallet (wallet lane). Keeping the signer out of this module is what lets
25
+ * on-chain staging work under every signing lane instead of assuming a hot key.
26
+ */
18
27
  /**
19
28
  * Split content into chunks, FastLZ-compressing each when `fastlz` is set (per-chunk — the
20
29
  * convention the store + reader expect). Pure: no chain, no I/O. A chunk is only stored
@@ -36,7 +45,7 @@ export function planChunks(content, opts = {}) {
36
45
  }
37
46
  return chunks;
38
47
  }
39
- const toHex = (b) => `0x${Buffer.from(b).toString('hex')}`;
48
+ const toHex = (b) => bytesToHex(b);
40
49
  /**
41
50
  * A per-transaction gas ceiling for packing chunk writes. Comfortably under mainnet's
42
51
  * ~30M block limit so a batch always fits with room for the base + calldata cost; the
@@ -86,15 +95,18 @@ export function planContentTxs(chunks, opts = {}) {
86
95
  * Deploy `AbxChunkStore` — the shared, stateless multi-chunk store + reader. Deploy once
87
96
  * per chain (like the renderer); every chunked field references it as its `reader`.
88
97
  */
89
- export async function deployChunkStore(send) {
98
+ export async function deployChunkStore(send, opts) {
90
99
  // CREATE2 via the keyless proxy + canonical salt → the SAME address on every chain (matches the
91
100
  // forge `DeployChunkStore` script and the manifest). The address is deterministic, so we compute
92
101
  // it rather than read `receipt.contractAddress` (which is null — the tx targets the proxy, not a
93
102
  // contract creation). Deploy only when the store isn't already there (the caller checks first).
94
103
  const chunkStore = predictCreate2Address(ABX_SALT.chunkStore, abxChunkStoreBytecode);
95
104
  const receipt = await send({
105
+ op: 'deploy-chunk-store',
96
106
  to: CREATE2_PROXY,
97
107
  data: create2Calldata(ABX_SALT.chunkStore, abxChunkStoreBytecode),
108
+ value: '0x0',
109
+ chainId: opts.chainId,
98
110
  summary: 'Deploy the shared on-chain chunk store (AbxChunkStore) — CREATE2, deterministic address',
99
111
  fields: { contract: 'AbxChunkStore', address: chunkStore, note: 'one-time, ownerless, shared by every chunked field' },
100
112
  });
@@ -123,8 +135,11 @@ export async function storeSupportsWriteContent(publicClient, store) {
123
135
  /** Write one chunk as an SSTORE2 data contract; returns its address (from `ChunkWritten`). */
124
136
  export async function writeChunk(send, args) {
125
137
  const receipt = await send({
138
+ op: 'write-chunk',
126
139
  to: args.store,
127
140
  data: encodeFunctionData({ abi: abxChunkStoreAbi, functionName: 'writeChunk', args: [toHex(args.data)] }),
141
+ value: '0x0',
142
+ chainId: args.chainId,
128
143
  summary: 'Stage one on-chain content chunk',
129
144
  fields: { store: args.store, bytes: String(args.data.length) },
130
145
  });
@@ -142,12 +157,15 @@ export async function writeChunk(send, args) {
142
157
  */
143
158
  export async function writeContent(send, args) {
144
159
  const receipt = await send({
160
+ op: 'write-content',
145
161
  to: args.store,
146
162
  data: encodeFunctionData({
147
163
  abi: abxChunkStoreAbi,
148
164
  functionName: 'writeContent',
149
165
  args: [args.chunks.map((c) => toHex(c.data)), args.chunks.map((c) => c.compressed)],
150
166
  }),
167
+ value: '0x0',
168
+ chainId: args.chainId,
151
169
  summary: `Stage on-chain content (${args.chunks.length} chunk${args.chunks.length === 1 ? '' : 's'}, atomic)`,
152
170
  fields: { store: args.store, chunks: String(args.chunks.length) },
153
171
  });
@@ -167,8 +185,11 @@ export async function writeContent(send, args) {
167
185
  export async function writeChunkBatch(send, args) {
168
186
  const calls = args.chunks.map((c) => encodeFunctionData({ abi: abxChunkStoreAbi, functionName: 'writeChunk', args: [toHex(c.data)] }));
169
187
  const receipt = await send({
188
+ op: 'write-chunk-batch',
170
189
  to: args.store,
171
190
  data: encodeFunctionData({ abi: abxChunkStoreAbi, functionName: 'multicall', args: [calls] }),
191
+ value: '0x0',
192
+ chainId: args.chainId,
172
193
  summary: `Stage ${args.chunks.length} on-chain content chunk${args.chunks.length === 1 ? '' : 's'} (batch)`,
173
194
  fields: { store: args.store, chunks: String(args.chunks.length) },
174
195
  });
@@ -198,28 +219,31 @@ export async function stageContent(send, args) {
198
219
  const plan = planContentTxs(chunks, { gasBudget: args.gasBudget });
199
220
  const txHashes = [];
200
221
  if (plan.mode === 'single') {
201
- const { manifest, txHash } = await writeContent(send, { store: args.store, chunks });
222
+ const { manifest, txHash } = await writeContent(send, { store: args.store, chunks, chainId: args.chainId });
202
223
  return { manifest, txHashes: [txHash], chunkCount: chunks.length };
203
224
  }
204
225
  const written = [];
205
226
  for (const batch of plan.batches) {
206
- const res = await writeChunkBatch(send, { store: args.store, chunks: batch });
227
+ const res = await writeChunkBatch(send, { store: args.store, chunks: batch, chainId: args.chainId });
207
228
  written.push(...res.written);
208
229
  txHashes.push(res.txHash);
209
230
  }
210
- const { manifest, txHash } = await writeManifest(send, { store: args.store, chunks: written });
231
+ const { manifest, txHash } = await writeManifest(send, { store: args.store, chunks: written, chainId: args.chainId });
211
232
  txHashes.push(txHash);
212
233
  return { manifest, txHashes, chunkCount: chunks.length };
213
234
  }
214
235
  /** Write the manifest (ordered chunk list); returns its address (the `reader` pointer). */
215
236
  export async function writeManifest(send, args) {
216
237
  const receipt = await send({
238
+ op: 'write-manifest',
217
239
  to: args.store,
218
240
  data: encodeFunctionData({
219
241
  abi: abxChunkStoreAbi,
220
242
  functionName: 'writeManifest',
221
243
  args: [args.chunks.map((c) => ({ pointer: c.pointer, compressed: c.compressed }))],
222
244
  }),
245
+ value: '0x0',
246
+ chainId: args.chainId,
223
247
  summary: `Write the on-chain content manifest (${args.chunks.length} chunk${args.chunks.length === 1 ? '' : 's'})`,
224
248
  fields: { store: args.store, chunks: String(args.chunks.length) },
225
249
  });
@@ -229,4 +253,42 @@ export async function writeManifest(send, args) {
229
253
  throw new Error('writeManifest emitted no ManifestWritten event');
230
254
  return { manifest, txHash: receipt.transactionHash };
231
255
  }
256
+ /**
257
+ * Resolve a usable multi-chunk content store for this chain, deploying one if needed.
258
+ *
259
+ * This is the bootstrap every on-chain-content path needs, and it existed only inside the CLI — so an
260
+ * SDK integrator got `resolveChunkStore()` (which may return undefined) plus a separate
261
+ * `storeSupportsWriteContent()` they had to remember to call. Forget the second and an incapable
262
+ * store fails *deep inside a mint, after transactions have already landed*. One team hand-rolled this
263
+ * guard for exactly that reason; exporting it is cheaper than every integrator rediscovering it.
264
+ *
265
+ * Three ways to succeed, in order: the listed store if it exists AND exposes the current ABI; the
266
+ * CREATE2-deterministic address (the store is canonical, so a forge script or an earlier lazy deploy
267
+ * may have put it there before the manifest caught up — self-healing, and never a duplicate at a
268
+ * random CREATE address); otherwise deploy it. Ownerless, so any funded signer may stand it up.
269
+ */
270
+ export async function ensureChunkStore(publicClient, send, opts = { chainId: 0 }) {
271
+ const notify = opts.onEvent ?? (() => { });
272
+ const listed = resolveChunkStore(opts.chainId, opts.override);
273
+ if (listed) {
274
+ const code = await publicClient.getCode({ address: listed });
275
+ if (code && code !== '0x') {
276
+ if (await storeSupportsWriteContent(publicClient, listed))
277
+ return listed;
278
+ notify({ kind: 'stale', address: listed });
279
+ }
280
+ }
281
+ const predicted = predictChunkStore();
282
+ if (!listed || listed.toLowerCase() !== predicted.toLowerCase()) {
283
+ const code = await publicClient.getCode({ address: predicted });
284
+ if (code && code !== '0x' && (await storeSupportsWriteContent(publicClient, predicted))) {
285
+ notify({ kind: 'canonical', address: predicted });
286
+ return predicted;
287
+ }
288
+ }
289
+ notify({ kind: 'deploying' });
290
+ const { chunkStore } = await deployChunkStore(send, { chainId: opts.chainId });
291
+ notify({ kind: 'deployed', address: chunkStore, inManifest: false });
292
+ return chunkStore;
293
+ }
232
294
  //# sourceMappingURL=chunks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks.js","sourceRoot":"","sources":["../src/chunks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chunks.js","sourceRoot":"","sources":["../src/chunks.ts"],"names":[],"mappings":"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"}
package/dist/clients.d.ts CHANGED
@@ -1,7 +1,12 @@
1
- import { type PublicClient, type WalletClient, type Account } from 'viem';
1
+ import { type PublicClient, type WalletClient, type Account, type Hex } from 'viem';
2
2
  export interface ClientOptions {
3
3
  chainKey?: string;
4
+ /** A single RPC endpoint — wins outright over everything else (env included). */
4
5
  rpcUrl?: string;
6
+ /** Several RPC endpoints, in preference order (a viem `fallback` transport failing over
7
+ * across them). Loses to `rpcUrl` when both are set; otherwise takes precedence over env
8
+ * resolution — see {@link resolveRpcUrls}'s override → env → manifest precedence. */
9
+ rpcUrls?: string[];
5
10
  }
6
11
  /** A read-only client — all the indexer and token API ever need. */
7
12
  export declare function makePublicClient(opts?: ClientOptions): PublicClient;
@@ -21,22 +26,29 @@ export declare function makePublicClient(opts?: ClientOptions): PublicClient;
21
26
  export declare function assertChainId(chainKey?: string, opts?: {
22
27
  allowUnreachable?: boolean;
23
28
  }): Promise<void>;
29
+ export interface WalletClientOptions extends ClientOptions {
30
+ /** An explicit key — bypasses `ABX_DEPLOYER_PK` (and any `.env`) entirely. For a caller that
31
+ * already resolved a key itself (a browser-wallet bridge is the OTHER signing lane — this is
32
+ * for a host embedding the SDK with its own key management, not that lane). */
33
+ privateKey?: Hex;
34
+ }
24
35
  /**
25
- * A signing client, backed by a private key from the environment. The SDK never
26
- * takes custody of keys beyond reading them from the operator's own env — there
27
- * is no key storage, no prompt, no remote signer here.
36
+ * A signing client, backed by a private key. The SDK never takes custody of keys beyond
37
+ * reading them from the operator's own env (or an explicit override) — there is no key
38
+ * storage, no prompt, no remote signer here.
28
39
  *
29
- * Key precedence: `ABX_DEPLOYER_PK` → `SEPOLIA_FUNDED_PK` → `SEPOLIA_WALLET_PK`.
40
+ * Key resolution: `opts.privateKey` → `ABX_DEPLOYER_PK`. That is the ONLY env name read —
41
+ * `SEPOLIA_FUNDED_PK` / `SEPOLIA_WALLET_PK` (earlier alphas) are no longer consulted.
30
42
  */
31
- export declare function makeWalletClient(opts?: ClientOptions): {
43
+ export declare function makeWalletClient(opts?: WalletClientOptions): {
32
44
  wallet: WalletClient;
33
45
  account: Account;
34
46
  };
35
47
  /**
36
- * The env signing key (0x-normalized), same precedence as {@link makeWalletClient}
37
- * (`ABX_DEPLOYER_PK` → `SEPOLIA_FUNDED_PK` → `SEPOLIA_WALLET_PK`), or `undefined` if none is set.
38
- * For reusing the hot key as a *storage* signing identity (an Ethereum Turbo identity) without
39
- * constructing a wallet client. Never throws.
48
+ * The signing key (0x-normalized), same resolution as {@link makeWalletClient}
49
+ * (`override` → `ABX_DEPLOYER_PK`), or `undefined` if none is set. For reusing the hot key as
50
+ * a *storage* signing identity (an Ethereum Turbo identity) without constructing a wallet
51
+ * client. Never throws.
40
52
  */
41
- export declare function envSigningKey(): `0x${string}` | undefined;
53
+ export declare function envSigningKey(override?: Hex): `0x${string}` | undefined;
42
54
  //# sourceMappingURL=clients.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../src/clients.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,YAAY,EAEjB,KAAK,YAAY,EACjB,KAAK,OAAO,EACb,MAAM,MAAM,CAAC;AAKd,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAeD,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,aAAkB,GAAG,YAAY,CAEvE;AAID;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CACjC,QAAQ,GAAE,MAA0B,EACpC,IAAI,GAAE;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAM,GACtC,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,aAAkB,GAAG;IAC1D,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB,CAYA;AAOD;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,KAAK,MAAM,EAAE,GAAG,SAAS,CAIzD"}
1
+ {"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../src/clients.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,YAAY,EAEjB,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,GAAG,EACT,MAAM,MAAM,CAAC;AAMd,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;0FAEsF;IACtF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAeD,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,aAAkB,GAAG,YAAY,CAEvE;AAID;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CACjC,QAAQ,GAAE,MAA0B,EACpC,IAAI,GAAE;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAM,GACtC,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD;;oFAEgF;IAChF,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,mBAAwB,GAAG;IAChE,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB,CAOA;AAOD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,KAAK,MAAM,EAAE,GAAG,SAAS,CAGvE"}
package/dist/clients.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { createPublicClient, createWalletClient, fallback, http, } from 'viem';
2
2
  import { privateKeyToAccount } from 'viem/accounts';
3
3
  import { DEFAULT_CHAIN_KEY, resolveChain, resolveRpcUrls, rpcEnvVar } from './chains.js';
4
- import { loadDotEnv } from './env.js';
4
+ import { readEnv } from './util.js';
5
+ import { MissingSigningKeyError } from './errors.js';
5
6
  /**
6
7
  * A transport over one or more endpoints. With several, a viem `fallback` fails
7
8
  * over on error — so a request one endpoint rejects (e.g. a too-wide `eth_getLogs`)
@@ -11,7 +12,7 @@ import { loadDotEnv } from './env.js';
11
12
  function makeTransport(opts) {
12
13
  if (opts.rpcUrl)
13
14
  return http(opts.rpcUrl);
14
- const urls = resolveRpcUrls(opts.chainKey);
15
+ const urls = resolveRpcUrls(opts.chainKey, opts.rpcUrls);
15
16
  if (urls.length <= 1)
16
17
  return http(urls[0]);
17
18
  return fallback(urls.map((u) => http(u, { retryCount: 0 })));
@@ -55,18 +56,17 @@ export async function assertChainId(chainKey = DEFAULT_CHAIN_KEY, opts = {}) {
55
56
  verifiedChains.add(chainKey);
56
57
  }
57
58
  /**
58
- * A signing client, backed by a private key from the environment. The SDK never
59
- * takes custody of keys beyond reading them from the operator's own env — there
60
- * is no key storage, no prompt, no remote signer here.
59
+ * A signing client, backed by a private key. The SDK never takes custody of keys beyond
60
+ * reading them from the operator's own env (or an explicit override) — there is no key
61
+ * storage, no prompt, no remote signer here.
61
62
  *
62
- * Key precedence: `ABX_DEPLOYER_PK` → `SEPOLIA_FUNDED_PK` → `SEPOLIA_WALLET_PK`.
63
+ * Key resolution: `opts.privateKey` → `ABX_DEPLOYER_PK`. That is the ONLY env name read —
64
+ * `SEPOLIA_FUNDED_PK` / `SEPOLIA_WALLET_PK` (earlier alphas) are no longer consulted.
63
65
  */
64
66
  export function makeWalletClient(opts = {}) {
65
- loadDotEnv();
66
- const pk = process.env.ABX_DEPLOYER_PK ?? process.env.SEPOLIA_FUNDED_PK ?? process.env.SEPOLIA_WALLET_PK;
67
- if (!pk) {
68
- throw new Error('No signing key found. Set ABX_DEPLOYER_PK, SEPOLIA_FUNDED_PK, or SEPOLIA_WALLET_PK in your .env.');
69
- }
67
+ const pk = opts.privateKey ?? readEnv('ABX_DEPLOYER_PK');
68
+ if (!pk)
69
+ throw new MissingSigningKeyError();
70
70
  const account = privateKeyToAccount(normalizePk(pk));
71
71
  const chain = resolveChain(opts.chainKey);
72
72
  const wallet = createWalletClient({ account, chain, transport: makeTransport(opts) });
@@ -77,14 +77,13 @@ function normalizePk(pk) {
77
77
  return (trimmed.startsWith('0x') ? trimmed : `0x${trimmed}`);
78
78
  }
79
79
  /**
80
- * The env signing key (0x-normalized), same precedence as {@link makeWalletClient}
81
- * (`ABX_DEPLOYER_PK` → `SEPOLIA_FUNDED_PK` → `SEPOLIA_WALLET_PK`), or `undefined` if none is set.
82
- * For reusing the hot key as a *storage* signing identity (an Ethereum Turbo identity) without
83
- * constructing a wallet client. Never throws.
80
+ * The signing key (0x-normalized), same resolution as {@link makeWalletClient}
81
+ * (`override` → `ABX_DEPLOYER_PK`), or `undefined` if none is set. For reusing the hot key as
82
+ * a *storage* signing identity (an Ethereum Turbo identity) without constructing a wallet
83
+ * client. Never throws.
84
84
  */
85
- export function envSigningKey() {
86
- loadDotEnv();
87
- const pk = process.env.ABX_DEPLOYER_PK ?? process.env.SEPOLIA_FUNDED_PK ?? process.env.SEPOLIA_WALLET_PK;
85
+ export function envSigningKey(override) {
86
+ const pk = override ?? readEnv('ABX_DEPLOYER_PK');
88
87
  return pk ? normalizePk(pk) : undefined;
89
88
  }
90
89
  //# sourceMappingURL=clients.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clients.js","sourceRoot":"","sources":["../src/clients.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,QAAQ,EACR,IAAI,GAKL,MAAM,MAAM,CAAC;AACd,OAAO,EAAC,mBAAmB,EAAC,MAAM,eAAe,CAAC;AAClD,OAAO,EAAC,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAC,MAAM,aAAa,CAAC;AACvF,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAOpC;;;;;GAKG;AACH,SAAS,aAAa,CAAC,IAAmB;IACxC,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAC,UAAU,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,gBAAgB,CAAC,OAAsB,EAAE;IACvD,OAAO,kBAAkB,CAAC,EAAC,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;AAEzC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAmB,iBAAiB,EACpC,OAAqC,EAAE;IAEvC,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO;IACzC,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;IAC3C,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,gBAAgB,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC3D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAO,CAAC,oDAAoD;QACvF,MAAM,IAAI,KAAK,CACb,+BAA+B,QAAQ,4BAA6B,GAAa,CAAC,OAAO,IAAI;YAC3F,SAAS,SAAS,CAAC,QAAQ,CAAC,+BAA+B,CAC9D,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,+DAA+D,MAAM,oBAAoB,QAAQ,IAAI;YACnG,WAAW,QAAQ,WAAW,SAAS,CAAC,QAAQ,CAAC,4BAA4B,QAAQ,aAAa,CACrG,CAAC;IACJ,CAAC;IACD,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAsB,EAAE;IAIvD,UAAU,EAAE,CAAC;IACb,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACzG,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CACb,kGAAkG,CACnG,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IACpF,OAAO,EAAC,MAAM,EAAE,OAAO,EAAC,CAAC;AAC3B,CAAC;AAED,SAAS,WAAW,CAAC,EAAU;IAC7B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAC1B,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAkB,CAAC;AAChF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa;IAC3B,UAAU,EAAE,CAAC;IACb,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACzG,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"clients.js","sourceRoot":"","sources":["../src/clients.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * ERC-721C creator-token support — the opt-in transfer-validation surface.
3
+ *
4
+ * An ABX token enrolls at deploy, permanently, by passing a non-zero `transferValidator` in
5
+ * its InitParams (see `deploy.ts`); zero leaves a plain ERC-721 forever, indistinguishable
6
+ * from a pre-721C token (ERC-165 and the extension beacon both branch on enrollment). Within
7
+ * an enrolled token the owner re-points the validator freely or suspends enforcement with
8
+ * zero — never un-enrolls. Every transfer that isn't a mint/burn (or the validator's own)
9
+ * staticcalls `validateTransfer(caller, from, to, tokenId)` on the validator; a policy
10
+ * violation reverts and bubbles.
11
+ */
12
+ import { type Address, type PublicClient } from 'viem';
13
+ import type { PreparedTx } from './ops.js';
14
+ /** ERC-165 id of `ICreatorToken` — advertised (with the legacy id) only when enrolled. */
15
+ export declare const CREATOR_TOKEN_INTERFACE_ID: "0xad0d7f6c";
16
+ /** ERC-165 id of `ICreatorTokenLegacy` — the subset older marketplaces probe for. */
17
+ export declare const CREATOR_TOKEN_LEGACY_INTERFACE_ID: "0xa07d229a";
18
+ /** keccak256("abx.extension.creator-token") — `extensionVersion(id)` is 1 only when enrolled. */
19
+ export declare const CREATOR_TOKEN_EXTENSION_ID: "0x0839e7ed7fc1f5db3f253851d61b10f852045c5520c2936138b121b73e7e27c0";
20
+ /**
21
+ * The recommended transfer validator per chain — OpenSea's
22
+ * **StrictAuthorizedTransferSecurityRegistry**, the validator their creator-fee-enforcement
23
+ * doc recommends for enforcement eligibility (docs.opensea.io "Creator Fee Enforcement",
24
+ * checked 2026-08; the named alternative is Limit Break's CreatorTokenTransferValidator
25
+ * 0x721C0078c2328597Ca70F5451ffF5A7B38D4E947). Verified empirically against the LIVE
26
+ * contracts on 2026-08-04 (`cast call --from <collection>` on the 4-arg
27
+ * `validateTransfer(address,address,address,uint256)` overload, both chains):
28
+ * an owner-initiated (OTC) transfer succeeds; an unauthorized operator reverts
29
+ * `StrictAuthorizedTransferSecurityRegistry__UnauthorizedTransfer()`.
30
+ *
31
+ * CREATE2-style vanity address, identical on both shipped chains — kept per-chain anyway
32
+ * (keyed like `deployments.ts`) because presence-on-chain is the fact that matters, and a
33
+ * future chain may recommend a different validator.
34
+ */
35
+ export declare const RECOMMENDED_TRANSFER_VALIDATOR: Record<number, Address>;
36
+ /** The recommended validator for a chain (undefined if none is known — never guess one). */
37
+ export declare function resolveRecommendedTransferValidator(chainId: number): Address | undefined;
38
+ /** A token's creator-token (ERC-721C) status, read from chain. */
39
+ export interface CreatorTokenStatus {
40
+ /** True iff the token enrolled at deploy (permanent). False = plain ERC-721, forever. */
41
+ enrolled: boolean;
42
+ /** The active validator (`zeroAddress` when unenrolled, or enrolled-but-suspended). */
43
+ validator: Address;
44
+ }
45
+ /**
46
+ * Read whether `contract` is an enrolled ERC-721C creator token, and its active validator.
47
+ * Enrollment comes from ERC-165 (`ICreatorToken`, which the token advertises only when
48
+ * enrolled); the validator from `getTransferValidator()`. Both reads are defensive — a
49
+ * pre-721C ABX token has neither branch (no `getTransferValidator` selector at all), and
50
+ * must read as `{enrolled: false, validator: zeroAddress}`, not as an error.
51
+ */
52
+ export declare function readCreatorTokenStatus(client: PublicClient, contract: Address): Promise<CreatorTokenStatus>;
53
+ /**
54
+ * Re-point an enrolled token's transfer validator, or suspend enforcement with
55
+ * `zeroAddress` (the token stays enrolled). Signer must be the owner. Reverts
56
+ * `NotCreatorToken()` on a token that didn't enroll at deploy — enrollment can never be
57
+ * added later — and `InvalidTransferValidator()` on a non-zero validator with no code;
58
+ * callers should read {@link readCreatorTokenStatus} first and refuse those before gas.
59
+ */
60
+ export declare function prepareSetTransferValidator(args: {
61
+ contract: Address;
62
+ validator: Address;
63
+ chainId: number;
64
+ }): PreparedTx;
65
+ //# sourceMappingURL=creator-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creator-token.d.ts","sourceRoot":"","sources":["../src/creator-token.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAkC,KAAK,OAAO,EAAE,KAAK,YAAY,EAAC,MAAM,MAAM,CAAC;AAEtF,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEzC,0FAA0F;AAC1F,eAAO,MAAM,0BAA0B,EAAG,YAAqB,CAAC;AAChE,qFAAqF;AACrF,eAAO,MAAM,iCAAiC,EAAG,YAAqB,CAAC;AACvE,iGAAiG;AACjG,eAAO,MAAM,0BAA0B,EACrC,oEAA6E,CAAC;AAEhF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAKlE,CAAC;AAEF,4FAA4F;AAC5F,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAExF;AAED,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IACjC,yFAAyF;IACzF,QAAQ,EAAE,OAAO,CAAC;IAClB,uFAAuF;IACvF,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,kBAAkB,CAAC,CAe7B;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,UAAU,CAiBb"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * ERC-721C creator-token support — the opt-in transfer-validation surface.
3
+ *
4
+ * An ABX token enrolls at deploy, permanently, by passing a non-zero `transferValidator` in
5
+ * its InitParams (see `deploy.ts`); zero leaves a plain ERC-721 forever, indistinguishable
6
+ * from a pre-721C token (ERC-165 and the extension beacon both branch on enrollment). Within
7
+ * an enrolled token the owner re-points the validator freely or suspends enforcement with
8
+ * zero — never un-enrolls. Every transfer that isn't a mint/burn (or the validator's own)
9
+ * staticcalls `validateTransfer(caller, from, to, tokenId)` on the validator; a policy
10
+ * violation reverts and bubbles.
11
+ */
12
+ import { encodeFunctionData, zeroAddress } from 'viem';
13
+ import { oneOfOneImageAbi } from './abi/index.js';
14
+ /** ERC-165 id of `ICreatorToken` — advertised (with the legacy id) only when enrolled. */
15
+ export const CREATOR_TOKEN_INTERFACE_ID = '0xad0d7f6c';
16
+ /** ERC-165 id of `ICreatorTokenLegacy` — the subset older marketplaces probe for. */
17
+ export const CREATOR_TOKEN_LEGACY_INTERFACE_ID = '0xa07d229a';
18
+ /** keccak256("abx.extension.creator-token") — `extensionVersion(id)` is 1 only when enrolled. */
19
+ export const CREATOR_TOKEN_EXTENSION_ID = '0x0839e7ed7fc1f5db3f253851d61b10f852045c5520c2936138b121b73e7e27c0';
20
+ /**
21
+ * The recommended transfer validator per chain — OpenSea's
22
+ * **StrictAuthorizedTransferSecurityRegistry**, the validator their creator-fee-enforcement
23
+ * doc recommends for enforcement eligibility (docs.opensea.io "Creator Fee Enforcement",
24
+ * checked 2026-08; the named alternative is Limit Break's CreatorTokenTransferValidator
25
+ * 0x721C0078c2328597Ca70F5451ffF5A7B38D4E947). Verified empirically against the LIVE
26
+ * contracts on 2026-08-04 (`cast call --from <collection>` on the 4-arg
27
+ * `validateTransfer(address,address,address,uint256)` overload, both chains):
28
+ * an owner-initiated (OTC) transfer succeeds; an unauthorized operator reverts
29
+ * `StrictAuthorizedTransferSecurityRegistry__UnauthorizedTransfer()`.
30
+ *
31
+ * CREATE2-style vanity address, identical on both shipped chains — kept per-chain anyway
32
+ * (keyed like `deployments.ts`) because presence-on-chain is the fact that matters, and a
33
+ * future chain may recommend a different validator.
34
+ */
35
+ export const RECOMMENDED_TRANSFER_VALIDATOR = {
36
+ // Sepolia (testnet)
37
+ 11155111: '0xA000027A9B2802E1ddf7000061001e5c005A0000',
38
+ // Base Sepolia (testnet)
39
+ 84532: '0xA000027A9B2802E1ddf7000061001e5c005A0000',
40
+ };
41
+ /** The recommended validator for a chain (undefined if none is known — never guess one). */
42
+ export function resolveRecommendedTransferValidator(chainId) {
43
+ return RECOMMENDED_TRANSFER_VALIDATOR[chainId];
44
+ }
45
+ /**
46
+ * Read whether `contract` is an enrolled ERC-721C creator token, and its active validator.
47
+ * Enrollment comes from ERC-165 (`ICreatorToken`, which the token advertises only when
48
+ * enrolled); the validator from `getTransferValidator()`. Both reads are defensive — a
49
+ * pre-721C ABX token has neither branch (no `getTransferValidator` selector at all), and
50
+ * must read as `{enrolled: false, validator: zeroAddress}`, not as an error.
51
+ */
52
+ export async function readCreatorTokenStatus(client, contract) {
53
+ const [enrolled, validator] = await Promise.all([
54
+ client
55
+ .readContract({
56
+ address: contract,
57
+ abi: oneOfOneImageAbi,
58
+ functionName: 'supportsInterface',
59
+ args: [CREATOR_TOKEN_INTERFACE_ID],
60
+ })
61
+ .catch(() => false),
62
+ client
63
+ .readContract({ address: contract, abi: oneOfOneImageAbi, functionName: 'getTransferValidator' })
64
+ .catch(() => zeroAddress),
65
+ ]);
66
+ return { enrolled, validator };
67
+ }
68
+ /**
69
+ * Re-point an enrolled token's transfer validator, or suspend enforcement with
70
+ * `zeroAddress` (the token stays enrolled). Signer must be the owner. Reverts
71
+ * `NotCreatorToken()` on a token that didn't enroll at deploy — enrollment can never be
72
+ * added later — and `InvalidTransferValidator()` on a non-zero validator with no code;
73
+ * callers should read {@link readCreatorTokenStatus} first and refuse those before gas.
74
+ */
75
+ export function prepareSetTransferValidator(args) {
76
+ const suspending = args.validator === zeroAddress;
77
+ return {
78
+ op: 'set-transfer-validator',
79
+ to: args.contract,
80
+ data: encodeFunctionData({
81
+ abi: oneOfOneImageAbi,
82
+ functionName: 'setTransferValidator',
83
+ args: [args.validator],
84
+ }),
85
+ value: '0x0',
86
+ chainId: args.chainId,
87
+ summary: suspending
88
+ ? 'Suspend ERC-721C transfer enforcement (validator → 0x0; the token stays enrolled)'
89
+ : `Set ERC-721C transfer validator → ${args.validator}`,
90
+ fields: { contract: args.contract, validator: args.validator },
91
+ };
92
+ }
93
+ //# sourceMappingURL=creator-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creator-token.js","sourceRoot":"","sources":["../src/creator-token.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAC,kBAAkB,EAAE,WAAW,EAAkC,MAAM,MAAM,CAAC;AACtF,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAGhD,0FAA0F;AAC1F,MAAM,CAAC,MAAM,0BAA0B,GAAG,YAAqB,CAAC;AAChE,qFAAqF;AACrF,MAAM,CAAC,MAAM,iCAAiC,GAAG,YAAqB,CAAC;AACvE,iGAAiG;AACjG,MAAM,CAAC,MAAM,0BAA0B,GACrC,oEAA6E,CAAC;AAEhF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAA4B;IACrE,oBAAoB;IACpB,QAAQ,EAAE,4CAA4C;IACtD,yBAAyB;IACzB,KAAK,EAAE,4CAA4C;CACpD,CAAC;AAEF,4FAA4F;AAC5F,MAAM,UAAU,mCAAmC,CAAC,OAAe;IACjE,OAAO,8BAA8B,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAUD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAoB,EACpB,QAAiB;IAEjB,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9C,MAAM;aACH,YAAY,CAAC;YACZ,OAAO,EAAE,QAAQ;YACjB,GAAG,EAAE,gBAAgB;YACrB,YAAY,EAAE,mBAAmB;YACjC,IAAI,EAAE,CAAC,0BAA0B,CAAC;SACnC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAqB;QACzC,MAAM;aACH,YAAY,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB,EAAC,CAAC;aAC9F,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,CAAqB;KAChD,CAAC,CAAC;IACH,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAC,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAI3C;IACC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,KAAK,WAAW,CAAC;IAClD,OAAO;QACL,EAAE,EAAE,wBAAwB;QAC5B,EAAE,EAAE,IAAI,CAAC,QAAQ;QACjB,IAAI,EAAE,kBAAkB,CAAC;YACvB,GAAG,EAAE,gBAAgB;YACrB,YAAY,EAAE,sBAAsB;YACpC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;SACvB,CAAC;QACF,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,UAAU;YACjB,CAAC,CAAC,mFAAmF;YACrF,CAAC,CAAC,qCAAqC,IAAI,CAAC,SAAS,EAAE;QACzD,MAAM,EAAE,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAC;KAC7D,CAAC;AACJ,CAAC"}