@artblocks/abx-sdk 0.1.0-alpha.3 → 0.1.0-alpha.30

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