@artblocks/abx-sdk 0.1.0-alpha.4 → 0.1.0-alpha.41
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/CHANGELOG.md +72 -0
- package/README.md +130 -0
- package/dist/abi/generated.d.ts +8502 -129
- package/dist/abi/generated.d.ts.map +1 -1
- package/dist/abi/generated.js +40 -22
- package/dist/abi/generated.js.map +1 -1
- package/dist/abi/index.d.ts +2645 -168
- package/dist/abi/index.d.ts.map +1 -1
- package/dist/abi/index.js +34 -7
- package/dist/abi/index.js.map +1 -1
- package/dist/anchors.d.ts +325 -0
- package/dist/anchors.d.ts.map +1 -0
- package/dist/anchors.js +740 -0
- package/dist/anchors.js.map +1 -0
- package/dist/chain-support.d.ts +28 -0
- package/dist/chain-support.d.ts.map +1 -0
- package/dist/chain-support.js +65 -0
- package/dist/chain-support.js.map +1 -0
- package/dist/chain-support.json +60 -0
- package/dist/chains.d.ts +24 -10
- package/dist/chains.d.ts.map +1 -1
- package/dist/chains.js +51 -17
- package/dist/chains.js.map +1 -1
- package/dist/chunks.d.ts +162 -31
- package/dist/chunks.d.ts.map +1 -1
- package/dist/chunks.js +179 -14
- 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/contract-generations.d.ts +58 -0
- package/dist/contract-generations.d.ts.map +1 -0
- package/dist/contract-generations.js +109 -0
- package/dist/contract-generations.js.map +1 -0
- package/dist/contract-generations.json +48 -0
- package/dist/create2.d.ts +84 -1
- package/dist/create2.d.ts.map +1 -1
- package/dist/create2.js +158 -2
- package/dist/create2.js.map +1 -1
- package/dist/creator-token.d.ts +132 -0
- package/dist/creator-token.d.ts.map +1 -0
- package/dist/creator-token.js +183 -0
- package/dist/creator-token.js.map +1 -0
- package/dist/deploy.d.ts +234 -14
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +289 -111
- package/dist/deploy.js.map +1 -1
- package/dist/deployments.d.ts +38 -5
- package/dist/deployments.d.ts.map +1 -1
- package/dist/deployments.js +157 -30
- package/dist/deployments.js.map +1 -1
- package/dist/deps.d.ts +123 -6
- package/dist/deps.d.ts.map +1 -1
- package/dist/deps.js +249 -7
- package/dist/deps.js.map +1 -1
- package/dist/env.d.ts +5 -4
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +20 -5
- package/dist/env.js.map +1 -1
- package/dist/errors.d.ts +109 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +148 -0
- package/dist/errors.js.map +1 -0
- package/dist/execute.d.ts +118 -0
- package/dist/execute.d.ts.map +1 -0
- package/dist/execute.js +159 -0
- package/dist/execute.js.map +1 -0
- package/dist/gateways.d.ts +79 -0
- package/dist/gateways.d.ts.map +1 -0
- package/dist/gateways.js +156 -0
- package/dist/gateways.js.map +1 -0
- package/dist/generator-document.d.ts +57 -0
- package/dist/generator-document.d.ts.map +1 -0
- package/dist/generator-document.js +123 -0
- package/dist/generator-document.js.map +1 -0
- package/dist/generator.d.ts +44 -2
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +29 -0
- package/dist/generator.js.map +1 -1
- package/dist/index.d.ts +19 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -3
- 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 +295 -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 +142 -0
- package/dist/migrate.js.map +1 -0
- package/dist/mime.d.ts +11 -0
- package/dist/mime.d.ts.map +1 -0
- package/dist/mime.js +40 -0
- package/dist/mime.js.map +1 -0
- package/dist/node.d.ts +69 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +92 -0
- package/dist/node.js.map +1 -0
- package/dist/onchain-uri.d.ts +110 -0
- package/dist/onchain-uri.d.ts.map +1 -0
- package/dist/onchain-uri.js +276 -0
- package/dist/onchain-uri.js.map +1 -0
- package/dist/ops.d.ts +507 -14
- package/dist/ops.d.ts.map +1 -1
- package/dist/ops.js +850 -34
- package/dist/ops.js.map +1 -1
- package/dist/policy.d.ts +57 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +35 -0
- package/dist/policy.js.map +1 -0
- package/dist/probe.d.ts +58 -0
- package/dist/probe.d.ts.map +1 -1
- package/dist/probe.js +190 -9
- package/dist/probe.js.map +1 -1
- package/dist/reconstruct.d.ts +141 -3
- package/dist/reconstruct.d.ts.map +1 -1
- package/dist/reconstruct.js +479 -100
- package/dist/reconstruct.js.map +1 -1
- package/dist/resume.d.ts +147 -0
- package/dist/resume.d.ts.map +1 -0
- package/dist/resume.js +146 -0
- package/dist/resume.js.map +1 -0
- package/dist/script-chunks.d.ts +105 -0
- package/dist/script-chunks.d.ts.map +1 -0
- package/dist/script-chunks.js +158 -0
- package/dist/script-chunks.js.map +1 -0
- package/dist/service.d.ts +155 -9
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +103 -11
- package/dist/service.js.map +1 -1
- package/dist/spine.d.ts +47 -4
- package/dist/spine.d.ts.map +1 -1
- package/dist/spine.js +0 -0
- package/dist/spine.js.map +1 -1
- package/dist/staging.d.ts +139 -0
- package/dist/staging.d.ts.map +1 -0
- package/dist/staging.js +139 -0
- package/dist/staging.js.map +1 -0
- package/dist/token.d.ts +11 -1
- package/dist/token.d.ts.map +1 -1
- package/dist/token.js +32 -1
- package/dist/token.js.map +1 -1
- package/dist/tokendata.d.ts +63 -3
- package/dist/tokendata.d.ts.map +1 -1
- package/dist/tokendata.js +81 -19
- package/dist/tokendata.js.map +1 -1
- package/dist/tokens.d.ts +119 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +317 -0
- package/dist/tokens.js.map +1 -0
- package/dist/types.d.ts +107 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/util.d.ts +74 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +106 -0
- package/dist/util.js.map +1 -0
- package/package.json +15 -6
package/dist/reconstruct.d.ts
CHANGED
|
@@ -1,11 +1,50 @@
|
|
|
1
|
-
import { type Address, type Hex, type PublicClient } from 'viem';
|
|
1
|
+
import { type Address, type Hex, type PublicClient, type Log } from 'viem';
|
|
2
|
+
import { AbxSdkError } from './errors.js';
|
|
2
3
|
import type { DependencyInfo, ExtensionInfo, MetadataField, ParamHooks, ParamSchema, ParamValue, ProjectState, SpineEvent, TokenState } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Block tags a caller may pick as a reconstruction boundary, beyond a literal number or `'latest'`.
|
|
6
|
+
* Only the two the issue asked for: `'safe'` (the client's reorg-unlikely tip) and `'finalized'`
|
|
7
|
+
* (post-merge finality — won't be reorged short of a >1/3-stake slashing event). Hosted operators
|
|
8
|
+
* want this so a resolver can serve state it's confident will never need to be walked back, without
|
|
9
|
+
* inventing an ad hoc lookback-window policy on top of `latest`.
|
|
10
|
+
*/
|
|
11
|
+
export type ReconstructBlockTag = 'safe' | 'finalized';
|
|
12
|
+
/**
|
|
13
|
+
* Resolve `'safe'`/`'finalized'` to a CONCRETE inclusive block number — BEFORE any `eth_getLogs`
|
|
14
|
+
* scan starts, and before it's persisted anywhere. A stored watermark (`ProjectState.toBlock`) must
|
|
15
|
+
* always be a literal number, never the tag itself: `"finalized"` is a moving target, so persisting
|
|
16
|
+
* the string would silently redefine an already-written checkpoint's meaning on every later read,
|
|
17
|
+
* and two reconstructions minutes apart would disagree about what block a stored `toBlock:
|
|
18
|
+
* "finalized"` even meant. Resolving once, here, up front, is what makes the persisted value durable.
|
|
19
|
+
*
|
|
20
|
+
* Throws {@link BlockTagUnavailableError} — never falls back to `latest` — when the RPC can't answer
|
|
21
|
+
* the tag. See that error for why silent fallback is the wrong move.
|
|
22
|
+
*/
|
|
23
|
+
export declare function resolveBlockTag(client: PublicClient, tag: ReconstructBlockTag): Promise<bigint>;
|
|
3
24
|
export interface ReconstructOptions {
|
|
4
25
|
address: Address;
|
|
5
26
|
fromBlock: bigint;
|
|
6
|
-
|
|
27
|
+
/** Default `'latest'` (chain head) — unchanged. `'safe'`/`'finalized'` stop the scan at that tag's
|
|
28
|
+
* block instead, resolved to a concrete number via {@link resolveBlockTag} before any log fetch
|
|
29
|
+
* and persisted as that number, never the tag (see {@link ProjectState.toBlock}). */
|
|
30
|
+
toBlock?: bigint | 'latest' | ReconstructBlockTag;
|
|
7
31
|
/** Canonical factory — lets reconstruction verify trust (isAbxClone), not just discovery. */
|
|
8
32
|
factory?: Address;
|
|
33
|
+
/** Override the `eth_getLogs` scan safety cap (env fallback: `ABX_GETLOGS_MAX_CHUNKS`; the
|
|
34
|
+
* CLI's `--yes` sets that). */
|
|
35
|
+
maxChunks?: number;
|
|
36
|
+
/** Override the starting `eth_getLogs` window, in blocks (env fallback: `ABX_GETLOGS_RANGE`). */
|
|
37
|
+
getLogsRange?: bigint;
|
|
38
|
+
/**
|
|
39
|
+
* Also head-read the composed `contractURI`/`tokenURI` documents (default **false**). These are
|
|
40
|
+
* diagnostic, not structural — see {@link applyHeadReads} for why they're opt-in: on the on-chain
|
|
41
|
+
* lane each one assembles a whole metadata document per call, and neither has a settled value a
|
|
42
|
+
* projection could cache correctly. Leave this off unless something is actually going to display
|
|
43
|
+
* the composed document (e.g. `abx demo`'s read-back step).
|
|
44
|
+
*/
|
|
45
|
+
readUriDocuments?: boolean;
|
|
46
|
+
/** See {@link GetLogsAdaptiveOptions.onChunk} — the only progress signal during a large scan. */
|
|
47
|
+
onChunk?: GetLogsAdaptiveOptions['onChunk'];
|
|
9
48
|
}
|
|
10
49
|
/**
|
|
11
50
|
* Rebuild a project's full state from the chain alone — the canonical replay.
|
|
@@ -28,6 +67,28 @@ export declare function reconstructProject(client: PublicClient, opts: Reconstru
|
|
|
28
67
|
*/
|
|
29
68
|
export declare function reconstructIncremental(client: PublicClient, prior: ProjectState, opts?: {
|
|
30
69
|
factory?: Address;
|
|
70
|
+
maxChunks?: number;
|
|
71
|
+
getLogsRange?: bigint;
|
|
72
|
+
readUriDocuments?: boolean;
|
|
73
|
+
onChunk?: GetLogsAdaptiveOptions['onChunk'];
|
|
74
|
+
/** Default `'latest'` (chain head) — unchanged. `'safe'`/`'finalized'` stop the catch-up at that
|
|
75
|
+
* tag's block instead; see {@link ReconstructOptions.toBlock}. */
|
|
76
|
+
toBlock?: 'latest' | ReconstructBlockTag;
|
|
77
|
+
}): Promise<ProjectState>;
|
|
78
|
+
/**
|
|
79
|
+
* The fold / head-read half of {@link reconstructIncremental}, given logs the caller already
|
|
80
|
+
* fetched. A multi-address watch loop (`getLogs({address: Address[]})`) holds each touched
|
|
81
|
+
* project's delta; this consumes it so that loop is the only `eth_getLogs`. Folding stays here.
|
|
82
|
+
*
|
|
83
|
+
* `toBlock` is the inclusive scan head those logs cover — required even when `logs` is empty,
|
|
84
|
+
* so a quiet window still advances the checkpoint to the range the caller scanned, and so a
|
|
85
|
+
* caller that scanned a capped window (not chain head) cannot stamp `toBlock` past the last
|
|
86
|
+
* log they actually held.
|
|
87
|
+
*/
|
|
88
|
+
export declare function reconstructFromLogs(client: PublicClient, prior: ProjectState, logs: readonly Log[], opts: {
|
|
89
|
+
factory?: Address;
|
|
90
|
+
readUriDocuments?: boolean;
|
|
91
|
+
toBlock: bigint;
|
|
31
92
|
}): Promise<ProjectState>;
|
|
32
93
|
/** The structural projection folded from the spine (everything that isn't a head read).
|
|
33
94
|
* Exported for tests and advanced consumers; the shape may evolve with the spine. */
|
|
@@ -40,6 +101,8 @@ export interface Fold {
|
|
|
40
101
|
receiver: Address;
|
|
41
102
|
bps: number;
|
|
42
103
|
} | null;
|
|
104
|
+
maxRoyaltyBps: number | null;
|
|
105
|
+
burnable: boolean | null;
|
|
43
106
|
extById: Map<string, ExtensionInfo>;
|
|
44
107
|
tokens: Map<string, TokenState>;
|
|
45
108
|
tokenFields: Map<string, Map<string, MetadataField>>;
|
|
@@ -47,6 +110,7 @@ export interface Fold {
|
|
|
47
110
|
collectionFields: Map<string, MetadataField>;
|
|
48
111
|
collectionLocked: Set<string>;
|
|
49
112
|
maxInvocations: string | null;
|
|
113
|
+
defaultMaxSupply: string | null;
|
|
50
114
|
minter: Address | null;
|
|
51
115
|
paused: boolean;
|
|
52
116
|
primaryPayee: Address | null;
|
|
@@ -54,6 +118,7 @@ export interface Fold {
|
|
|
54
118
|
contractParams: Map<string, ParamValue>;
|
|
55
119
|
paramSchemas: Map<string, ParamSchema>;
|
|
56
120
|
paramHooks: ParamHooks | null;
|
|
121
|
+
paramHooksFrozen: boolean;
|
|
57
122
|
delegateRegistry: Address | null | undefined;
|
|
58
123
|
seedSource: Address | null;
|
|
59
124
|
scriptLocked: boolean;
|
|
@@ -71,7 +136,7 @@ export declare function foldSpine(events: SpineEvent[]): Fold;
|
|
|
71
136
|
/** Does this error look like an RPC rejecting the block range (vs a real failure)? */
|
|
72
137
|
export declare function isGetLogsRangeError(err: unknown): boolean;
|
|
73
138
|
/** Thrown when a reconstruction would need more getLogs requests than the cap allows. */
|
|
74
|
-
export declare class GetLogsScanTooLargeError extends
|
|
139
|
+
export declare class GetLogsScanTooLargeError extends AbxSdkError {
|
|
75
140
|
readonly spanBlocks: bigint;
|
|
76
141
|
readonly window: bigint;
|
|
77
142
|
readonly estimatedRequests: number;
|
|
@@ -94,4 +159,77 @@ export declare class GetLogsScanTooLargeError extends Error {
|
|
|
94
159
|
* contract has no code at block 0 (true for every ABX clone — deployed long after genesis).
|
|
95
160
|
*/
|
|
96
161
|
export declare function discoverDeployBlock(client: PublicClient, address: Address, toBlock?: bigint): Promise<bigint | null>;
|
|
162
|
+
/**
|
|
163
|
+
* Ordinary RPC tiers cap how many addresses one `eth_getLogs` filter may carry.
|
|
164
|
+
* This is an RPC-tier opinion, not a protocol constant — callers with a dedicated
|
|
165
|
+
* node can raise it; `0` disables splitting (one filter for the whole list).
|
|
166
|
+
*/
|
|
167
|
+
export declare const DEFAULT_GETLOGS_ADDRESS_BATCH = 1000;
|
|
168
|
+
export interface GetLogsAdaptiveOptions {
|
|
169
|
+
maxChunks?: number;
|
|
170
|
+
range?: bigint;
|
|
171
|
+
/** Split `address[]` filters into this many addresses per request. Default
|
|
172
|
+
* {@link DEFAULT_GETLOGS_ADDRESS_BATCH}. `0` = no split. */
|
|
173
|
+
addressBatch?: number;
|
|
174
|
+
/**
|
|
175
|
+
* Fired after each `eth_getLogs` chunk with how far the scan has gotten — the signal a caller has
|
|
176
|
+
* that a large scan is alive, not hung. Pure notification,
|
|
177
|
+
* no return value; a CLI caller throttles this itself before printing (every chunk would be noise).
|
|
178
|
+
*/
|
|
179
|
+
onChunk?: (progress: {
|
|
180
|
+
/** Completed block-filter work across every address batch. */
|
|
181
|
+
scanned: bigint;
|
|
182
|
+
/** Total block-filter work (`blockSpan * addressBatches`). */
|
|
183
|
+
span: bigint;
|
|
184
|
+
/** Blocks completed in the current address batch. */
|
|
185
|
+
scannedBlocks: bigint;
|
|
186
|
+
blockSpan: bigint;
|
|
187
|
+
/** Zero-based batch index and total batch count. */
|
|
188
|
+
addressBatch: number;
|
|
189
|
+
addressBatches: number;
|
|
190
|
+
}) => void;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Pull logs over a block range, adapting to RPC range caps — and, when `address` is
|
|
194
|
+
* a list, splitting that list so a registered-set watch scan stays one code path for
|
|
195
|
+
* self-host and hosted. Providers cap `eth_getLogs` very differently and the numbers
|
|
196
|
+
* change, so we don't hard-code a window: try the whole range, and when the RPC
|
|
197
|
+
* rejects it, halve the window and sweep. `ABX_GETLOGS_RANGE` overrides the starting
|
|
198
|
+
* window. Address-list chunking is a separate cap (`addressBatch`); 5000-block
|
|
199
|
+
* per-tick windows belong to the caller (the watcher), not here.
|
|
200
|
+
*
|
|
201
|
+
* Once the working window is known we estimate the whole job *before* grinding it: if
|
|
202
|
+
* it would exceed the cap, we stop early (only the probe calls spent) and throw
|
|
203
|
+
* {@link GetLogsScanTooLargeError} so the caller can offer the real fix (a higher-range
|
|
204
|
+
* RPC) or an explicit opt-in to chunk through it.
|
|
205
|
+
*/
|
|
206
|
+
export declare function getLogsAdaptive(client: PublicClient, address: Address | readonly Address[], fromBlock: bigint, toBlock: bigint, opts?: GetLogsAdaptiveOptions): Promise<Log[]>;
|
|
207
|
+
/**
|
|
208
|
+
* Multicall in chunks, tolerating per-leg failure — and, when a whole chunk comes back failed,
|
|
209
|
+
* retrying its legs individually before believing it.
|
|
210
|
+
*
|
|
211
|
+
* The retry is the point, and it exists to tell apart two failure modes that an aggregate throwing
|
|
212
|
+
* cannot distinguish on its own:
|
|
213
|
+
*
|
|
214
|
+
* 1. **Over budget.** `allowFailure: true` reports per-leg failures, but a multicall is ONE
|
|
215
|
+
* `eth_call`: if the aggregate exceeds the node's gas or response cap, the *whole* batch fails
|
|
216
|
+
* and every leg in it reports failure — including legs that answer fine on their own. Batching a
|
|
217
|
+
* cheap read beside an expensive one therefore turns the expensive one's cost into the cheap
|
|
218
|
+
* one's failure. Re-asking each leg alone, with no aggregate overhead, recovers this: the calls
|
|
219
|
+
* were always fine, only their batching was too big.
|
|
220
|
+
* 2. **No multicall3 on this chain.** If the aggregate fails because there's no multicall3
|
|
221
|
+
* deployment to call at all, *every* multicall — including a single-leg one — fails the identical
|
|
222
|
+
* way. Re-asking through `client.multicall` again, at any width, reproduces the same failure, so
|
|
223
|
+
* the retry must go through a call shape that has no multicall3 dependency: `client.readContract`.
|
|
224
|
+
* Skipping this means a chain lacking multicall3 reads back as "the contract answered nothing" —
|
|
225
|
+
* indistinguishable from a real revert — which is exactly the silent-blank-identity bug this
|
|
226
|
+
* retry was reported to have.
|
|
227
|
+
*
|
|
228
|
+
* So the fallback always resolves each leg with `readContract`, never with a smaller `multicall`.
|
|
229
|
+
* `readContract` throws on revert where multicall's `allowFailure` returns a `status: 'failure'`
|
|
230
|
+
* result instead, so a per-leg throw here is caught and mapped back to `null` — a genuine revert on
|
|
231
|
+
* one leg must still read as "that leg has no answer," matching the aggregate's own contract,
|
|
232
|
+
* whichever call shape actually answered it.
|
|
233
|
+
*/
|
|
234
|
+
export declare function multicallChunked(client: PublicClient, contracts: Array<Record<string, unknown>>, chunkSize: number): Promise<Array<unknown>>;
|
|
97
235
|
//# sourceMappingURL=reconstruct.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconstruct.d.ts","sourceRoot":"","sources":["../src/reconstruct.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"reconstruct.d.ts","sourceRoot":"","sources":["../src/reconstruct.ts"],"names":[],"mappings":"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"}
|