@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.
- package/README.md +131 -0
- package/dist/abi/generated.d.ts +585 -12
- package/dist/abi/generated.d.ts.map +1 -1
- package/dist/abi/generated.js +16 -16
- package/dist/abi/generated.js.map +1 -1
- package/dist/abi/index.d.ts +209 -12
- package/dist/abi/index.d.ts.map +1 -1
- package/dist/anchors.d.ts +150 -0
- package/dist/anchors.d.ts.map +1 -0
- package/dist/anchors.js +290 -0
- package/dist/anchors.js.map +1 -0
- package/dist/chains.d.ts +34 -9
- package/dist/chains.d.ts.map +1 -1
- package/dist/chains.js +45 -18
- package/dist/chains.js.map +1 -1
- package/dist/chunks.d.ts +53 -23
- package/dist/chunks.d.ts.map +1 -1
- package/dist/chunks.js +68 -6
- package/dist/chunks.js.map +1 -1
- package/dist/clients.d.ts +23 -11
- package/dist/clients.d.ts.map +1 -1
- package/dist/clients.js +17 -18
- package/dist/clients.js.map +1 -1
- package/dist/creator-token.d.ts +65 -0
- package/dist/creator-token.d.ts.map +1 -0
- package/dist/creator-token.js +93 -0
- package/dist/creator-token.js.map +1 -0
- package/dist/deploy.d.ts +24 -10
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +62 -87
- package/dist/deploy.js.map +1 -1
- package/dist/deployments.d.ts.map +1 -1
- package/dist/deployments.js +38 -22
- package/dist/deployments.js.map +1 -1
- package/dist/deps.d.ts +38 -0
- package/dist/deps.d.ts.map +1 -1
- package/dist/deps.js +70 -1
- package/dist/deps.js.map +1 -1
- package/dist/env.d.ts +11 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +42 -2
- package/dist/env.js.map +1 -1
- package/dist/errors.d.ts +63 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +85 -0
- package/dist/errors.js.map +1 -0
- package/dist/execute.d.ts +115 -0
- package/dist/execute.d.ts.map +1 -0
- package/dist/execute.js +142 -0
- package/dist/execute.js.map +1 -0
- package/dist/index.d.ts +13 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -2
- package/dist/index.js.map +1 -1
- package/dist/inspect.d.ts +48 -0
- package/dist/inspect.d.ts.map +1 -0
- package/dist/inspect.js +290 -0
- package/dist/inspect.js.map +1 -0
- package/dist/migrate.d.ts +41 -0
- package/dist/migrate.d.ts.map +1 -0
- package/dist/migrate.js +140 -0
- package/dist/migrate.js.map +1 -0
- package/dist/node.d.ts +13 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +13 -0
- package/dist/node.js.map +1 -0
- package/dist/onchain-uri.d.ts +96 -0
- package/dist/onchain-uri.d.ts.map +1 -0
- package/dist/onchain-uri.js +231 -0
- package/dist/onchain-uri.js.map +1 -0
- package/dist/ops.d.ts +113 -5
- package/dist/ops.d.ts.map +1 -1
- package/dist/ops.js +172 -13
- package/dist/ops.js.map +1 -1
- package/dist/reconstruct.d.ts +20 -1
- package/dist/reconstruct.d.ts.map +1 -1
- package/dist/reconstruct.js +124 -50
- package/dist/reconstruct.js.map +1 -1
- package/dist/resume.d.ts +96 -0
- package/dist/resume.d.ts.map +1 -0
- package/dist/resume.js +95 -0
- package/dist/resume.js.map +1 -0
- package/dist/service.d.ts +369 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +376 -0
- package/dist/service.js.map +1 -0
- package/dist/staging.d.ts +95 -0
- package/dist/staging.d.ts.map +1 -0
- package/dist/staging.js +57 -0
- package/dist/staging.js.map +1 -0
- package/dist/tokendata.d.ts +62 -2
- package/dist/tokendata.d.ts.map +1 -1
- package/dist/tokendata.js +60 -16
- package/dist/tokendata.js.map +1 -1
- package/dist/tokens.d.ts +55 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +152 -0
- package/dist/tokens.js.map +1 -0
- package/dist/util.d.ts +59 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +89 -0
- package/dist/util.js.map +1 -0
- package/package.json +10 -2
package/dist/chunks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks.d.ts","sourceRoot":"","sources":["../src/chunks.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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
|
|
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) =>
|
|
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
|
package/dist/chunks.js.map
CHANGED
|
@@ -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
|
|
26
|
-
*
|
|
27
|
-
*
|
|
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
|
|
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?:
|
|
43
|
+
export declare function makeWalletClient(opts?: WalletClientOptions): {
|
|
32
44
|
wallet: WalletClient;
|
|
33
45
|
account: Account;
|
|
34
46
|
};
|
|
35
47
|
/**
|
|
36
|
-
* The
|
|
37
|
-
* (`
|
|
38
|
-
*
|
|
39
|
-
*
|
|
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
|
package/dist/clients.d.ts.map
CHANGED
|
@@ -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,
|
|
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 {
|
|
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
|
|
59
|
-
*
|
|
60
|
-
*
|
|
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
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
|
81
|
-
* (`
|
|
82
|
-
*
|
|
83
|
-
*
|
|
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
|
-
|
|
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
|
package/dist/clients.js.map
CHANGED
|
@@ -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,
|
|
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"}
|