@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.
Files changed (159) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/README.md +130 -0
  3. package/dist/abi/generated.d.ts +8502 -129
  4. package/dist/abi/generated.d.ts.map +1 -1
  5. package/dist/abi/generated.js +40 -22
  6. package/dist/abi/generated.js.map +1 -1
  7. package/dist/abi/index.d.ts +2645 -168
  8. package/dist/abi/index.d.ts.map +1 -1
  9. package/dist/abi/index.js +34 -7
  10. package/dist/abi/index.js.map +1 -1
  11. package/dist/anchors.d.ts +325 -0
  12. package/dist/anchors.d.ts.map +1 -0
  13. package/dist/anchors.js +740 -0
  14. package/dist/anchors.js.map +1 -0
  15. package/dist/chain-support.d.ts +28 -0
  16. package/dist/chain-support.d.ts.map +1 -0
  17. package/dist/chain-support.js +65 -0
  18. package/dist/chain-support.js.map +1 -0
  19. package/dist/chain-support.json +60 -0
  20. package/dist/chains.d.ts +24 -10
  21. package/dist/chains.d.ts.map +1 -1
  22. package/dist/chains.js +51 -17
  23. package/dist/chains.js.map +1 -1
  24. package/dist/chunks.d.ts +162 -31
  25. package/dist/chunks.d.ts.map +1 -1
  26. package/dist/chunks.js +179 -14
  27. package/dist/chunks.js.map +1 -1
  28. package/dist/clients.d.ts +23 -11
  29. package/dist/clients.d.ts.map +1 -1
  30. package/dist/clients.js +17 -18
  31. package/dist/clients.js.map +1 -1
  32. package/dist/contract-generations.d.ts +58 -0
  33. package/dist/contract-generations.d.ts.map +1 -0
  34. package/dist/contract-generations.js +109 -0
  35. package/dist/contract-generations.js.map +1 -0
  36. package/dist/contract-generations.json +48 -0
  37. package/dist/create2.d.ts +84 -1
  38. package/dist/create2.d.ts.map +1 -1
  39. package/dist/create2.js +158 -2
  40. package/dist/create2.js.map +1 -1
  41. package/dist/creator-token.d.ts +132 -0
  42. package/dist/creator-token.d.ts.map +1 -0
  43. package/dist/creator-token.js +183 -0
  44. package/dist/creator-token.js.map +1 -0
  45. package/dist/deploy.d.ts +234 -14
  46. package/dist/deploy.d.ts.map +1 -1
  47. package/dist/deploy.js +289 -111
  48. package/dist/deploy.js.map +1 -1
  49. package/dist/deployments.d.ts +38 -5
  50. package/dist/deployments.d.ts.map +1 -1
  51. package/dist/deployments.js +157 -30
  52. package/dist/deployments.js.map +1 -1
  53. package/dist/deps.d.ts +123 -6
  54. package/dist/deps.d.ts.map +1 -1
  55. package/dist/deps.js +249 -7
  56. package/dist/deps.js.map +1 -1
  57. package/dist/env.d.ts +5 -4
  58. package/dist/env.d.ts.map +1 -1
  59. package/dist/env.js +20 -5
  60. package/dist/env.js.map +1 -1
  61. package/dist/errors.d.ts +109 -0
  62. package/dist/errors.d.ts.map +1 -0
  63. package/dist/errors.js +148 -0
  64. package/dist/errors.js.map +1 -0
  65. package/dist/execute.d.ts +118 -0
  66. package/dist/execute.d.ts.map +1 -0
  67. package/dist/execute.js +159 -0
  68. package/dist/execute.js.map +1 -0
  69. package/dist/gateways.d.ts +79 -0
  70. package/dist/gateways.d.ts.map +1 -0
  71. package/dist/gateways.js +156 -0
  72. package/dist/gateways.js.map +1 -0
  73. package/dist/generator-document.d.ts +57 -0
  74. package/dist/generator-document.d.ts.map +1 -0
  75. package/dist/generator-document.js +123 -0
  76. package/dist/generator-document.js.map +1 -0
  77. package/dist/generator.d.ts +44 -2
  78. package/dist/generator.d.ts.map +1 -1
  79. package/dist/generator.js +29 -0
  80. package/dist/generator.js.map +1 -1
  81. package/dist/index.d.ts +19 -3
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +19 -3
  84. package/dist/index.js.map +1 -1
  85. package/dist/inspect.d.ts +48 -0
  86. package/dist/inspect.d.ts.map +1 -0
  87. package/dist/inspect.js +295 -0
  88. package/dist/inspect.js.map +1 -0
  89. package/dist/migrate.d.ts +41 -0
  90. package/dist/migrate.d.ts.map +1 -0
  91. package/dist/migrate.js +142 -0
  92. package/dist/migrate.js.map +1 -0
  93. package/dist/mime.d.ts +11 -0
  94. package/dist/mime.d.ts.map +1 -0
  95. package/dist/mime.js +40 -0
  96. package/dist/mime.js.map +1 -0
  97. package/dist/node.d.ts +69 -0
  98. package/dist/node.d.ts.map +1 -0
  99. package/dist/node.js +92 -0
  100. package/dist/node.js.map +1 -0
  101. package/dist/onchain-uri.d.ts +110 -0
  102. package/dist/onchain-uri.d.ts.map +1 -0
  103. package/dist/onchain-uri.js +276 -0
  104. package/dist/onchain-uri.js.map +1 -0
  105. package/dist/ops.d.ts +507 -14
  106. package/dist/ops.d.ts.map +1 -1
  107. package/dist/ops.js +850 -34
  108. package/dist/ops.js.map +1 -1
  109. package/dist/policy.d.ts +57 -0
  110. package/dist/policy.d.ts.map +1 -0
  111. package/dist/policy.js +35 -0
  112. package/dist/policy.js.map +1 -0
  113. package/dist/probe.d.ts +58 -0
  114. package/dist/probe.d.ts.map +1 -1
  115. package/dist/probe.js +190 -9
  116. package/dist/probe.js.map +1 -1
  117. package/dist/reconstruct.d.ts +141 -3
  118. package/dist/reconstruct.d.ts.map +1 -1
  119. package/dist/reconstruct.js +479 -100
  120. package/dist/reconstruct.js.map +1 -1
  121. package/dist/resume.d.ts +147 -0
  122. package/dist/resume.d.ts.map +1 -0
  123. package/dist/resume.js +146 -0
  124. package/dist/resume.js.map +1 -0
  125. package/dist/script-chunks.d.ts +105 -0
  126. package/dist/script-chunks.d.ts.map +1 -0
  127. package/dist/script-chunks.js +158 -0
  128. package/dist/script-chunks.js.map +1 -0
  129. package/dist/service.d.ts +155 -9
  130. package/dist/service.d.ts.map +1 -1
  131. package/dist/service.js +103 -11
  132. package/dist/service.js.map +1 -1
  133. package/dist/spine.d.ts +47 -4
  134. package/dist/spine.d.ts.map +1 -1
  135. package/dist/spine.js +0 -0
  136. package/dist/spine.js.map +1 -1
  137. package/dist/staging.d.ts +139 -0
  138. package/dist/staging.d.ts.map +1 -0
  139. package/dist/staging.js +139 -0
  140. package/dist/staging.js.map +1 -0
  141. package/dist/token.d.ts +11 -1
  142. package/dist/token.d.ts.map +1 -1
  143. package/dist/token.js +32 -1
  144. package/dist/token.js.map +1 -1
  145. package/dist/tokendata.d.ts +63 -3
  146. package/dist/tokendata.d.ts.map +1 -1
  147. package/dist/tokendata.js +81 -19
  148. package/dist/tokendata.js.map +1 -1
  149. package/dist/tokens.d.ts +119 -0
  150. package/dist/tokens.d.ts.map +1 -0
  151. package/dist/tokens.js +317 -0
  152. package/dist/tokens.js.map +1 -0
  153. package/dist/types.d.ts +107 -5
  154. package/dist/types.d.ts.map +1 -1
  155. package/dist/util.d.ts +74 -0
  156. package/dist/util.d.ts.map +1 -0
  157. package/dist/util.js +106 -0
  158. package/dist/util.js.map +1 -0
  159. package/package.json +15 -6
@@ -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
- toBlock?: bigint | 'latest';
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 Error {
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":"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"}
1
+ {"version":3,"file":"reconstruct.d.ts","sourceRoot":"","sources":["../src/reconstruct.ts"],"names":[],"mappings":"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"}