@artblocks/abx-sdk 0.1.0-alpha.2 → 0.1.0-alpha.20

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 (139) hide show
  1. package/README.md +131 -0
  2. package/dist/abi/generated.d.ts +8502 -129
  3. package/dist/abi/generated.d.ts.map +1 -1
  4. package/dist/abi/generated.js +40 -22
  5. package/dist/abi/generated.js.map +1 -1
  6. package/dist/abi/index.d.ts +2645 -168
  7. package/dist/abi/index.d.ts.map +1 -1
  8. package/dist/abi/index.js +34 -7
  9. package/dist/abi/index.js.map +1 -1
  10. package/dist/anchors.d.ts +266 -0
  11. package/dist/anchors.d.ts.map +1 -0
  12. package/dist/anchors.js +653 -0
  13. package/dist/anchors.js.map +1 -0
  14. package/dist/chains.d.ts +15 -9
  15. package/dist/chains.d.ts.map +1 -1
  16. package/dist/chains.js +19 -15
  17. package/dist/chains.js.map +1 -1
  18. package/dist/chunks.d.ts +53 -23
  19. package/dist/chunks.d.ts.map +1 -1
  20. package/dist/chunks.js +68 -6
  21. package/dist/chunks.js.map +1 -1
  22. package/dist/clients.d.ts +23 -11
  23. package/dist/clients.d.ts.map +1 -1
  24. package/dist/clients.js +17 -18
  25. package/dist/clients.js.map +1 -1
  26. package/dist/create2.d.ts +85 -1
  27. package/dist/create2.d.ts.map +1 -1
  28. package/dist/create2.js +159 -2
  29. package/dist/create2.js.map +1 -1
  30. package/dist/creator-token.d.ts +132 -0
  31. package/dist/creator-token.d.ts.map +1 -0
  32. package/dist/creator-token.js +183 -0
  33. package/dist/creator-token.js.map +1 -0
  34. package/dist/deploy.d.ts +234 -14
  35. package/dist/deploy.d.ts.map +1 -1
  36. package/dist/deploy.js +289 -111
  37. package/dist/deploy.js.map +1 -1
  38. package/dist/deployments.d.ts +12 -0
  39. package/dist/deployments.d.ts.map +1 -1
  40. package/dist/deployments.js +155 -28
  41. package/dist/deployments.js.map +1 -1
  42. package/dist/deps.d.ts +122 -5
  43. package/dist/deps.d.ts.map +1 -1
  44. package/dist/deps.js +248 -6
  45. package/dist/deps.js.map +1 -1
  46. package/dist/env.d.ts.map +1 -1
  47. package/dist/env.js +8 -0
  48. package/dist/env.js.map +1 -1
  49. package/dist/errors.d.ts +94 -0
  50. package/dist/errors.d.ts.map +1 -0
  51. package/dist/errors.js +126 -0
  52. package/dist/errors.js.map +1 -0
  53. package/dist/execute.d.ts +115 -0
  54. package/dist/execute.d.ts.map +1 -0
  55. package/dist/execute.js +142 -0
  56. package/dist/execute.js.map +1 -0
  57. package/dist/gateways.d.ts +79 -0
  58. package/dist/gateways.d.ts.map +1 -0
  59. package/dist/gateways.js +156 -0
  60. package/dist/gateways.js.map +1 -0
  61. package/dist/generator-document.d.ts +58 -0
  62. package/dist/generator-document.d.ts.map +1 -0
  63. package/dist/generator-document.js +124 -0
  64. package/dist/generator-document.js.map +1 -0
  65. package/dist/generator.d.ts +43 -1
  66. package/dist/generator.d.ts.map +1 -1
  67. package/dist/generator.js +29 -0
  68. package/dist/generator.js.map +1 -1
  69. package/dist/index.d.ts +17 -3
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +17 -3
  72. package/dist/index.js.map +1 -1
  73. package/dist/inspect.d.ts +48 -0
  74. package/dist/inspect.d.ts.map +1 -0
  75. package/dist/inspect.js +295 -0
  76. package/dist/inspect.js.map +1 -0
  77. package/dist/migrate.d.ts +41 -0
  78. package/dist/migrate.d.ts.map +1 -0
  79. package/dist/migrate.js +140 -0
  80. package/dist/migrate.js.map +1 -0
  81. package/dist/mime.d.ts +11 -0
  82. package/dist/mime.d.ts.map +1 -0
  83. package/dist/mime.js +40 -0
  84. package/dist/mime.js.map +1 -0
  85. package/dist/node.d.ts +10 -0
  86. package/dist/node.d.ts.map +1 -0
  87. package/dist/node.js +24 -0
  88. package/dist/node.js.map +1 -0
  89. package/dist/onchain-uri.d.ts +110 -0
  90. package/dist/onchain-uri.d.ts.map +1 -0
  91. package/dist/onchain-uri.js +273 -0
  92. package/dist/onchain-uri.js.map +1 -0
  93. package/dist/ops.d.ts +507 -14
  94. package/dist/ops.d.ts.map +1 -1
  95. package/dist/ops.js +848 -32
  96. package/dist/ops.js.map +1 -1
  97. package/dist/probe.d.ts +29 -0
  98. package/dist/probe.d.ts.map +1 -1
  99. package/dist/probe.js +104 -9
  100. package/dist/probe.js.map +1 -1
  101. package/dist/reconstruct.d.ts +92 -2
  102. package/dist/reconstruct.d.ts.map +1 -1
  103. package/dist/reconstruct.js +378 -93
  104. package/dist/reconstruct.js.map +1 -1
  105. package/dist/resume.d.ts +96 -0
  106. package/dist/resume.d.ts.map +1 -0
  107. package/dist/resume.js +95 -0
  108. package/dist/resume.js.map +1 -0
  109. package/dist/script-chunks.d.ts +24 -0
  110. package/dist/script-chunks.d.ts.map +1 -0
  111. package/dist/script-chunks.js +63 -0
  112. package/dist/script-chunks.js.map +1 -0
  113. package/dist/service.d.ts +188 -9
  114. package/dist/service.d.ts.map +1 -1
  115. package/dist/service.js +228 -18
  116. package/dist/service.js.map +1 -1
  117. package/dist/spine.d.ts +31 -4
  118. package/dist/spine.d.ts.map +1 -1
  119. package/dist/spine.js +0 -0
  120. package/dist/spine.js.map +1 -1
  121. package/dist/staging.d.ts +124 -0
  122. package/dist/staging.d.ts.map +1 -0
  123. package/dist/staging.js +134 -0
  124. package/dist/staging.js.map +1 -0
  125. package/dist/tokendata.d.ts +62 -2
  126. package/dist/tokendata.d.ts.map +1 -1
  127. package/dist/tokendata.js +79 -17
  128. package/dist/tokendata.js.map +1 -1
  129. package/dist/tokens.d.ts +94 -0
  130. package/dist/tokens.d.ts.map +1 -0
  131. package/dist/tokens.js +296 -0
  132. package/dist/tokens.js.map +1 -0
  133. package/dist/types.d.ts +60 -3
  134. package/dist/types.d.ts.map +1 -1
  135. package/dist/util.d.ts +74 -0
  136. package/dist/util.d.ts.map +1 -0
  137. package/dist/util.js +106 -0
  138. package/dist/util.js.map +1 -0
  139. package/package.json +10 -2
package/dist/types.d.ts CHANGED
@@ -33,11 +33,18 @@ export interface ParamSchema {
33
33
  max: Hex;
34
34
  selectOptions: string[];
35
35
  }
36
- /** The three param lifecycle hooks (any may be null = none). */
36
+ /** The three param lifecycle hooks (any may be null = none), plus whether the set is frozen. */
37
37
  export interface ParamHooks {
38
38
  configureHook: Address | null;
39
39
  augmentHook: Address | null;
40
+ /** Ownership-change lifecycle — a **VETO**: its revert fails the transfer, and a mint is a
41
+ * transfer from `0x0`, so a reverting hook also stops minting. Read `locked` next to it. */
40
42
  transferHook: Address | null;
43
+ /** `lockParamHooks()` was sent: the three addresses above can never change again. The read that
44
+ * turns "the hooks are whatever the owner currently says" into something a buyer can verify —
45
+ * it matters most for `transferHook`, an unlocked one being a standing power over a collector's
46
+ * ability to sell. Folded from `ParamHooksFrozen`. */
47
+ locked: boolean;
41
48
  }
42
49
  /** One declared code dependency (Dependencies extension); index 0 = the runtime. */
43
50
  export interface DependencyInfo {
@@ -71,13 +78,54 @@ export interface SpineEvent {
71
78
  }
72
79
  export interface TokenState {
73
80
  tokenId: string;
81
+ /**
82
+ * Has this id ever had a mint? For a 721 token (`Transfer` from `0x0`): latches `true` once
83
+ * minted and stays true (721 has no burn in the spine). For an ERC-1155 edition
84
+ * (`TransferSingle`/`TransferBatch`): means **`supply > 0` right now** — recomputed on every
85
+ * transfer leg rather than latched, since an edition id CAN return to zero (a full burn) and
86
+ * mint again. `false` = deployed but not yet issued (721), or currently zero live copies (1155).
87
+ */
74
88
  minted: boolean;
89
+ /** 721 only — the current holder. Always `null` for an edition (an id can have many
90
+ * concurrent holders; see {@link holders}). */
75
91
  owner: Address | null;
76
92
  tokenURI: string | null;
77
93
  fields: MetadataField[];
78
94
  lockedFields: string[];
79
95
  /** Token-scope params (Params extension) — `seed`, PostParam values, … Absent/empty ⇒ none. */
80
96
  params?: ParamValue[];
97
+ /** ERC-1155 editions only — total live copies of this id (minted − burned), folded from
98
+ * `TransferSingle`/`TransferBatch`. Absent for a 721 token. */
99
+ supply?: string;
100
+ /**
101
+ * ERC-1155 editions only — this id's **effective** supply cap: its own override when one exists,
102
+ * otherwise the collection default ({@link ProjectState.defaultMaxSupply}). Absent for a 721
103
+ * token. Equals the on-chain `maxSupply(id)` view, and therefore its head-read twin
104
+ * (`TokenRow.maxSupply` in `tokens.ts`) — one field name, one meaning, whichever lane produced it.
105
+ *
106
+ * It used to fold `MaxSupplyUpdated` alone, which made the two lanes disagree on the DEFAULT
107
+ * shape: `--copies 10` sets the cap at `initialize` and never calls `setMaxSupply`, so no id had
108
+ * an event of its own and this read *absent* — "open, uncapped" — for every capped edition ever
109
+ * deployed. The head read said `10`. That is the sibling-drift class, on the field that decides
110
+ * whether a buy button renders.
111
+ *
112
+ * `'0'` carries the on-chain overload deliberately: **open** when {@link maxSupplyOverridden} is
113
+ * false, **closed forever** when it is true.
114
+ */
115
+ maxSupply?: string;
116
+ /** ERC-1155 editions only — has this id ever been explicitly overridden (`setMaxSupply`)? The
117
+ * distinction the on-chain getter cannot make and the log can, now that `DefaultMaxSupplySet`
118
+ * completes the log: it disambiguates a `'0'` cap (open vs deliberately closed) and tells you
119
+ * whether the monotonic never-increase rule is already in force for this id. Absent ⇒ false. */
120
+ maxSupplyOverridden?: boolean;
121
+ /** ERC-1155 editions only — current balances by holder address, folded from
122
+ * `TransferSingle`/`TransferBatch`. Zero balances are deleted, so a key's presence IS "holds
123
+ * at least one copy." Omitted/empty when unknown (a 721 token, or an edition with no folded
124
+ * history). Not chain-enumerable outside the event log — this is why {@link owner} can't
125
+ * simply generalize to "the current holders": a chain-only head read (no event scan) has no
126
+ * way to list them (see `tokens.ts`'s `listTokens`, which is exactly that head-read-only path
127
+ * and therefore never populates this field). */
128
+ holders?: Record<Address, string>;
81
129
  }
82
130
  /**
83
131
  * The full reconstructed state of an ABX project — rebuilt from the event log
@@ -108,10 +156,19 @@ export interface ProjectState {
108
156
  contractURILocked: boolean | null;
109
157
  collectionFields: MetadataField[];
110
158
  lockedCollectionFields: string[];
111
- /** Which concrete token type this is, inferred from the enabled extensions. */
112
- contractType?: '1of1' | 'series' | 'code';
159
+ /** Which concrete token type this is, inferred from the enabled extensions. The `-edition`
160
+ * suffix is the ERC-1155 family (detected via the Edition Supply extension), a parallel
161
+ * ladder to the ERC-721 one: `1of1-edition` ↔ `1of1`, `edition` ↔ `series`,
162
+ * `edition-code` ↔ `code`. */
163
+ contractType?: '1of1' | 'series' | 'code' | '1of1-edition' | 'edition' | 'edition-code';
113
164
  /** Supply cap "X of Y" (Max Invocations extension); null/absent ⇒ uncapped 1/1. */
114
165
  maxInvocations?: string | null;
166
+ /** ERC-1155 editions only — the collection-wide DEFAULT per-id cap (`editionSize` at
167
+ * `initialize`), folded from `DefaultMaxSupplySet`. `'0'` ⇒ open by default; null ⇒ not an
168
+ * edition. The 1155 analogue of {@link maxInvocations}: it is the project-level ceiling, while
169
+ * {@link TokenState.maxSupply} is a single id's. Every id that has never been overridden carries
170
+ * this, which is why the event exists — see `IAbxEditionSupply`. */
171
+ defaultMaxSupply?: string | null;
115
172
  /** The single authorized minter (External Minter extension); null ⇒ owner-only. */
116
173
  minter?: Address | null;
117
174
  /** Whether minting is paused (Paused extension) — true ⇒ owner-only. Absent/false ⇒ open. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/util.d.ts ADDED
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Small, environment-neutral helpers shared across the SDK core. Nothing here imports
3
+ * `node:*` or references a Node-only global (`Buffer`, `process` unguarded) — this module
4
+ * is reachable from the browser bundle (see `test/browser-bundle.test.ts`), so it has to
5
+ * run identically wherever a caller (Node, a bundler, a browser tab) loads it.
6
+ */
7
+ import type { Address, PublicClient } from 'viem';
8
+ /** `process.env[name]`, or `undefined` — safe to call even where `process` doesn't exist
9
+ * (a browser bundle). The SDK core never assumes Node; a host (the CLI, the effects
10
+ * runner) is where `process.env` is actually meaningful. */
11
+ export declare function readEnv(name: string): string | undefined;
12
+ /** Wait `ms` milliseconds. The one place the SDK debounces/retries, so every caller shares
13
+ * the same primitive instead of re-declaring `new Promise((r) => setTimeout(r, ms))`. */
14
+ export declare function sleep(ms: number): Promise<void>;
15
+ /** The delay before retry `attempt` (1-indexed) under a LINEAR backoff: `attempt * baseMs`.
16
+ * Matches the shape `service.ts`'s request ladder already used (`retryDelayMs * attempt`) —
17
+ * pulled out here so every linear-backoff retry loop (the service client, the effects
18
+ * runner's resolver poll) computes the same delay the same way. */
19
+ export declare function linearBackoffDelay(attempt: number, baseMs: number): number;
20
+ /**
21
+ * The delay before retry `attempt` (1-indexed) under an EXPONENTIAL backoff, capped:
22
+ * `min(baseMs * 2^(attempt-1), capMs)`. Attempt 1 waits `baseMs`, attempt 2 waits `2*baseMs`,
23
+ * attempt 3 `4*baseMs`, and so on until the cap takes over.
24
+ *
25
+ * Prefer this over {@link linearBackoffDelay} for a SUSTAINED rate limit or an overloaded
26
+ * upstream, where a caller wants each retry to back off faster than the last so a burst of
27
+ * callers doesn't keep landing on the same wall-clock second (linear backoff's delays grow by a
28
+ * constant step, which under sustained pressure just re-synchronizes the retry storm at a lower
29
+ * frequency instead of spreading it out). Prefer `linearBackoffDelay` for a transient/one-off
30
+ * failure (a dropped connection, a single flaky read) where the retry ladder just needs to not
31
+ * hammer immediately — exponential growth there overshoots into multi-minute waits for what was
32
+ * likely a one-time blip.
33
+ */
34
+ export declare function exponentialBackoffDelay(attempt: number, baseMs: number, capMs: number): number;
35
+ /**
36
+ * A parsed `data:` URI (RFC 2397) — the most permissive of the three ad hoc parses this
37
+ * replaces (a bare `data:,...`, a `;base64` flag anywhere in the parameter list, and an
38
+ * arbitrary `;charset=...` alongside it). `mime` is empty-string-normalized to `text/plain`
39
+ * (RFC 2397's own default); `body` is returned VERBATIM — still percent-encoded for a
40
+ * non-base64 URI, still base64 text for one that is — so the caller decodes it exactly the
41
+ * way it always did (`decodeURIComponent` vs a base64 decode).
42
+ */
43
+ export interface ParsedDataUri {
44
+ mime: string;
45
+ base64: boolean;
46
+ body: string;
47
+ }
48
+ /** Parse a `data:` URI, or `null` if `uri` isn't one. */
49
+ export declare function parseDataUri(uri: string): ParsedDataUri | null;
50
+ /**
51
+ * Read a contract, swallowing any failure ("no data" from a codeless address, a revert on
52
+ * an extension the target doesn't compose) into `undefined` rather than a throw — the shape
53
+ * every "does this getter exist / is there even a contract here" caller wants. Replaces the
54
+ * three near-identical try/catch wrappers this SDK's callers each hand-rolled (a resume
55
+ * planner's field-by-field read, a state dump's per-getter read, an owner-op's diagnostic
56
+ * read) with one implementation.
57
+ *
58
+ * A caller that wants to DISTINGUISH "no contract at all" from "contract exists but this
59
+ * call reverted" (the CLI's `assertContractExists` diagnostic) still does that itself — this
60
+ * helper only knows "did the read come back", not why it didn't.
61
+ */
62
+ export declare function tryReadContract<T>(client: PublicClient, args: {
63
+ address: Address;
64
+ abi: readonly unknown[];
65
+ functionName: string;
66
+ args?: readonly unknown[];
67
+ }): Promise<T | undefined>;
68
+ /** Bytes → base64 (RFC 4648). No `Buffer`, no `btoa` — both are runtime-conditional (Node
69
+ * lacks the latter, and a stricter embedder than a browser can lack the former too), and the
70
+ * SDK core needs exactly one behavior everywhere it runs. */
71
+ export declare function bytesToBase64(bytes: Uint8Array): string;
72
+ /** base64 → bytes — the inverse of {@link bytesToBase64}. */
73
+ export declare function base64ToBytes(b64: string): Uint8Array;
74
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAC,OAAO,EAAE,YAAY,EAAC,MAAM,MAAM,CAAC;AAEhD;;6DAE6D;AAC7D,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGxD;AAED;0FAC0F;AAC1F,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;;oEAGoE;AACpE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9F;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAID,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAS9D;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,SAAS,OAAO,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;CAAC,GACjG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAMxB;AAID;;8DAE8D;AAC9D,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAYvD;AAED,6DAA6D;AAC7D,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAcrD"}
package/dist/util.js ADDED
@@ -0,0 +1,106 @@
1
+ /** `process.env[name]`, or `undefined` — safe to call even where `process` doesn't exist
2
+ * (a browser bundle). The SDK core never assumes Node; a host (the CLI, the effects
3
+ * runner) is where `process.env` is actually meaningful. */
4
+ export function readEnv(name) {
5
+ if (typeof process === 'undefined' || !process.env)
6
+ return undefined;
7
+ return process.env[name];
8
+ }
9
+ /** Wait `ms` milliseconds. The one place the SDK debounces/retries, so every caller shares
10
+ * the same primitive instead of re-declaring `new Promise((r) => setTimeout(r, ms))`. */
11
+ export function sleep(ms) {
12
+ return new Promise((resolve) => setTimeout(resolve, ms));
13
+ }
14
+ /** The delay before retry `attempt` (1-indexed) under a LINEAR backoff: `attempt * baseMs`.
15
+ * Matches the shape `service.ts`'s request ladder already used (`retryDelayMs * attempt`) —
16
+ * pulled out here so every linear-backoff retry loop (the service client, the effects
17
+ * runner's resolver poll) computes the same delay the same way. */
18
+ export function linearBackoffDelay(attempt, baseMs) {
19
+ return attempt * baseMs;
20
+ }
21
+ /**
22
+ * The delay before retry `attempt` (1-indexed) under an EXPONENTIAL backoff, capped:
23
+ * `min(baseMs * 2^(attempt-1), capMs)`. Attempt 1 waits `baseMs`, attempt 2 waits `2*baseMs`,
24
+ * attempt 3 `4*baseMs`, and so on until the cap takes over.
25
+ *
26
+ * Prefer this over {@link linearBackoffDelay} for a SUSTAINED rate limit or an overloaded
27
+ * upstream, where a caller wants each retry to back off faster than the last so a burst of
28
+ * callers doesn't keep landing on the same wall-clock second (linear backoff's delays grow by a
29
+ * constant step, which under sustained pressure just re-synchronizes the retry storm at a lower
30
+ * frequency instead of spreading it out). Prefer `linearBackoffDelay` for a transient/one-off
31
+ * failure (a dropped connection, a single flaky read) where the retry ladder just needs to not
32
+ * hammer immediately — exponential growth there overshoots into multi-minute waits for what was
33
+ * likely a one-time blip.
34
+ */
35
+ export function exponentialBackoffDelay(attempt, baseMs, capMs) {
36
+ return Math.min(baseMs * 2 ** (attempt - 1), capMs);
37
+ }
38
+ const DATA_URI_RE = /^data:([^;,]*)((?:;[^,]*)?),([\s\S]*)$/;
39
+ /** Parse a `data:` URI, or `null` if `uri` isn't one. */
40
+ export function parseDataUri(uri) {
41
+ const m = DATA_URI_RE.exec(uri);
42
+ if (!m)
43
+ return null;
44
+ const params = m[2] ?? '';
45
+ return {
46
+ mime: m[1] || 'text/plain',
47
+ base64: /(^|;)base64(;|$)/.test(params),
48
+ body: m[3],
49
+ };
50
+ }
51
+ /**
52
+ * Read a contract, swallowing any failure ("no data" from a codeless address, a revert on
53
+ * an extension the target doesn't compose) into `undefined` rather than a throw — the shape
54
+ * every "does this getter exist / is there even a contract here" caller wants. Replaces the
55
+ * three near-identical try/catch wrappers this SDK's callers each hand-rolled (a resume
56
+ * planner's field-by-field read, a state dump's per-getter read, an owner-op's diagnostic
57
+ * read) with one implementation.
58
+ *
59
+ * A caller that wants to DISTINGUISH "no contract at all" from "contract exists but this
60
+ * call reverted" (the CLI's `assertContractExists` diagnostic) still does that itself — this
61
+ * helper only knows "did the read come back", not why it didn't.
62
+ */
63
+ export async function tryReadContract(client, args) {
64
+ try {
65
+ return (await client.readContract(args));
66
+ }
67
+ catch {
68
+ return undefined;
69
+ }
70
+ }
71
+ const BASE64_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
72
+ /** Bytes → base64 (RFC 4648). No `Buffer`, no `btoa` — both are runtime-conditional (Node
73
+ * lacks the latter, and a stricter embedder than a browser can lack the former too), and the
74
+ * SDK core needs exactly one behavior everywhere it runs. */
75
+ export function bytesToBase64(bytes) {
76
+ let out = '';
77
+ for (let i = 0; i < bytes.length; i += 3) {
78
+ const b0 = bytes[i];
79
+ const b1 = bytes[i + 1];
80
+ const b2 = bytes[i + 2];
81
+ out += BASE64_CHARS[b0 >> 2];
82
+ out += BASE64_CHARS[((b0 & 0x03) << 4) | (b1 === undefined ? 0 : b1 >> 4)];
83
+ out += b1 === undefined ? '=' : BASE64_CHARS[((b1 & 0x0f) << 2) | (b2 === undefined ? 0 : b2 >> 6)];
84
+ out += b2 === undefined ? '=' : BASE64_CHARS[b2 & 0x3f];
85
+ }
86
+ return out;
87
+ }
88
+ /** base64 → bytes — the inverse of {@link bytesToBase64}. */
89
+ export function base64ToBytes(b64) {
90
+ const clean = b64.replace(/=+$/, '');
91
+ const out = new Uint8Array(Math.floor((clean.length * 3) / 4));
92
+ let p = 0;
93
+ for (let i = 0; i < clean.length; i += 4) {
94
+ const c0 = BASE64_CHARS.indexOf(clean[i]);
95
+ const c1 = BASE64_CHARS.indexOf(clean[i + 1]);
96
+ const c2 = clean[i + 2] === undefined ? -1 : BASE64_CHARS.indexOf(clean[i + 2]);
97
+ const c3 = clean[i + 3] === undefined ? -1 : BASE64_CHARS.indexOf(clean[i + 3]);
98
+ out[p++] = (c0 << 2) | (c1 >> 4);
99
+ if (c2 >= 0)
100
+ out[p++] = ((c1 & 0x0f) << 4) | (c2 >> 2);
101
+ if (c3 >= 0)
102
+ out[p++] = ((c2 & 0x03) << 6) | c3;
103
+ }
104
+ return out;
105
+ }
106
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAQA;;6DAE6D;AAC7D,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IACrE,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED;0FAC0F;AAC1F,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;oEAGoE;AACpE,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,MAAc;IAChE,OAAO,OAAO,GAAG,MAAM,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,MAAc,EAAE,KAAa;IACpF,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC;AAgBD,MAAM,WAAW,GAAG,wCAAwC,CAAC;AAE7D,yDAAyD;AACzD,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1B,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY;QAC1B,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;QACvC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;KACX,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAoB,EACpB,IAAkG;IAElG,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,IAAa,CAAC,CAAM,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAAG,kEAAkE,CAAC;AAExF;;8DAE8D;AAC9D,MAAM,UAAU,aAAa,CAAC,KAAiB;IAC7C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,GAAG,IAAI,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7B,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3E,GAAG,IAAI,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACpG,GAAG,IAAI,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChF,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACjC,IAAI,EAAE,IAAI,CAAC;YAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACvD,IAAI,EAAE,IAAI,CAAC;YAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artblocks/abx-sdk",
3
- "version": "0.1.0-alpha.2",
3
+ "version": "0.1.0-alpha.20",
4
4
  "license": "MIT",
5
5
  "description": "ABX SDK (Layer 2) — the neutral, low-level library that turns protocol operations into typed function calls. No provider, no chain, no UX baked in.",
6
6
  "type": "module",
@@ -13,7 +13,12 @@
13
13
  "./abi": {
14
14
  "types": "./dist/abi/index.d.ts",
15
15
  "import": "./dist/abi/index.js"
16
- }
16
+ },
17
+ "./node": {
18
+ "types": "./dist/node.d.ts",
19
+ "import": "./dist/node.js"
20
+ },
21
+ "./package.json": "./package.json"
17
22
  },
18
23
  "files": [
19
24
  "dist",
@@ -45,6 +50,9 @@
45
50
  "dependencies": {
46
51
  "viem": "^2.21.0"
47
52
  },
53
+ "devDependencies": {
54
+ "esbuild": "^0.28.1"
55
+ },
48
56
  "scripts": {
49
57
  "build": "tsc -b tsconfig.build.json",
50
58
  "sync-abis": "tsx scripts/sync-abis.ts"