@artblocks/abx-sdk 0.1.0-alpha.9 → 0.1.0

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 (167) hide show
  1. package/CHANGELOG.md +188 -0
  2. package/README.md +130 -0
  3. package/dist/abi/generated.d.ts +7942 -142
  4. package/dist/abi/generated.d.ts.map +1 -1
  5. package/dist/abi/generated.js +41 -23
  6. package/dist/abi/generated.js.map +1 -1
  7. package/dist/abi/index.d.ts +2364 -84
  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 +23 -11
  21. package/dist/chains.d.ts.map +1 -1
  22. package/dist/chains.js +51 -19
  23. package/dist/chains.js.map +1 -1
  24. package/dist/chunks.d.ts +130 -32
  25. package/dist/chunks.d.ts.map +1 -1
  26. package/dist/chunks.js +140 -15
  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 +88 -1
  38. package/dist/create2.d.ts.map +1 -1
  39. package/dist/create2.js +174 -4
  40. package/dist/create2.js.map +1 -1
  41. package/dist/creator-token.d.ts +75 -8
  42. package/dist/creator-token.d.ts.map +1 -1
  43. package/dist/creator-token.js +98 -8
  44. package/dist/creator-token.js.map +1 -1
  45. package/dist/creators-service.d.ts +79 -0
  46. package/dist/creators-service.d.ts.map +1 -0
  47. package/dist/creators-service.js +171 -0
  48. package/dist/creators-service.js.map +1 -0
  49. package/dist/deploy.d.ts +224 -14
  50. package/dist/deploy.d.ts.map +1 -1
  51. package/dist/deploy.js +289 -111
  52. package/dist/deploy.js.map +1 -1
  53. package/dist/deployments.d.ts +38 -5
  54. package/dist/deployments.d.ts.map +1 -1
  55. package/dist/deployments.js +157 -45
  56. package/dist/deployments.js.map +1 -1
  57. package/dist/deps.d.ts +123 -6
  58. package/dist/deps.d.ts.map +1 -1
  59. package/dist/deps.js +249 -7
  60. package/dist/deps.js.map +1 -1
  61. package/dist/env.d.ts +5 -4
  62. package/dist/env.d.ts.map +1 -1
  63. package/dist/env.js +20 -5
  64. package/dist/env.js.map +1 -1
  65. package/dist/errors.d.ts +109 -0
  66. package/dist/errors.d.ts.map +1 -0
  67. package/dist/errors.js +148 -0
  68. package/dist/errors.js.map +1 -0
  69. package/dist/execute.d.ts +118 -0
  70. package/dist/execute.d.ts.map +1 -0
  71. package/dist/execute.js +159 -0
  72. package/dist/execute.js.map +1 -0
  73. package/dist/gateways.d.ts +79 -0
  74. package/dist/gateways.d.ts.map +1 -0
  75. package/dist/gateways.js +156 -0
  76. package/dist/gateways.js.map +1 -0
  77. package/dist/generator-document.d.ts +57 -0
  78. package/dist/generator-document.d.ts.map +1 -0
  79. package/dist/generator-document.js +123 -0
  80. package/dist/generator-document.js.map +1 -0
  81. package/dist/generator.d.ts +45 -3
  82. package/dist/generator.d.ts.map +1 -1
  83. package/dist/generator.js +29 -0
  84. package/dist/generator.js.map +1 -1
  85. package/dist/index.d.ts +19 -3
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +19 -3
  88. package/dist/index.js.map +1 -1
  89. package/dist/inspect.d.ts +48 -0
  90. package/dist/inspect.d.ts.map +1 -0
  91. package/dist/inspect.js +295 -0
  92. package/dist/inspect.js.map +1 -0
  93. package/dist/migrate.d.ts +41 -0
  94. package/dist/migrate.d.ts.map +1 -0
  95. package/dist/migrate.js +142 -0
  96. package/dist/migrate.js.map +1 -0
  97. package/dist/mime.d.ts +11 -0
  98. package/dist/mime.d.ts.map +1 -0
  99. package/dist/mime.js +40 -0
  100. package/dist/mime.js.map +1 -0
  101. package/dist/node.d.ts +69 -0
  102. package/dist/node.d.ts.map +1 -0
  103. package/dist/node.js +92 -0
  104. package/dist/node.js.map +1 -0
  105. package/dist/onchain-uri.d.ts +110 -0
  106. package/dist/onchain-uri.d.ts.map +1 -0
  107. package/dist/onchain-uri.js +276 -0
  108. package/dist/onchain-uri.js.map +1 -0
  109. package/dist/ops.d.ts +437 -13
  110. package/dist/ops.d.ts.map +1 -1
  111. package/dist/ops.js +754 -34
  112. package/dist/ops.js.map +1 -1
  113. package/dist/policy.d.ts +57 -0
  114. package/dist/policy.d.ts.map +1 -0
  115. package/dist/policy.js +35 -0
  116. package/dist/policy.js.map +1 -0
  117. package/dist/probe.d.ts +58 -0
  118. package/dist/probe.d.ts.map +1 -1
  119. package/dist/probe.js +190 -9
  120. package/dist/probe.js.map +1 -1
  121. package/dist/reconstruct.d.ts +135 -8
  122. package/dist/reconstruct.d.ts.map +1 -1
  123. package/dist/reconstruct.js +400 -84
  124. package/dist/reconstruct.js.map +1 -1
  125. package/dist/resume.d.ts +147 -0
  126. package/dist/resume.d.ts.map +1 -0
  127. package/dist/resume.js +146 -0
  128. package/dist/resume.js.map +1 -0
  129. package/dist/script-chunks.d.ts +105 -0
  130. package/dist/script-chunks.d.ts.map +1 -0
  131. package/dist/script-chunks.js +158 -0
  132. package/dist/script-chunks.js.map +1 -0
  133. package/dist/service.d.ts +172 -7
  134. package/dist/service.d.ts.map +1 -1
  135. package/dist/service.js +132 -10
  136. package/dist/service.js.map +1 -1
  137. package/dist/spine.d.ts +47 -4
  138. package/dist/spine.d.ts.map +1 -1
  139. package/dist/spine.js +0 -0
  140. package/dist/spine.js.map +1 -1
  141. package/dist/staging.d.ts +139 -0
  142. package/dist/staging.d.ts.map +1 -0
  143. package/dist/staging.js +139 -0
  144. package/dist/staging.js.map +1 -0
  145. package/dist/token.d.ts +11 -1
  146. package/dist/token.d.ts.map +1 -1
  147. package/dist/token.js +32 -1
  148. package/dist/token.js.map +1 -1
  149. package/dist/tokendata.d.ts +4 -4
  150. package/dist/tokendata.d.ts.map +1 -1
  151. package/dist/tokendata.js +28 -9
  152. package/dist/tokendata.js.map +1 -1
  153. package/dist/tokens.d.ts +74 -9
  154. package/dist/tokens.d.ts.map +1 -1
  155. package/dist/tokens.js +175 -5
  156. package/dist/tokens.js.map +1 -1
  157. package/dist/types.d.ts +107 -5
  158. package/dist/types.d.ts.map +1 -1
  159. package/dist/uri-lock.d.ts +17 -0
  160. package/dist/uri-lock.d.ts.map +1 -0
  161. package/dist/uri-lock.js +33 -0
  162. package/dist/uri-lock.js.map +1 -0
  163. package/dist/util.d.ts +74 -0
  164. package/dist/util.d.ts.map +1 -0
  165. package/dist/util.js +106 -0
  166. package/dist/util.js.map +1 -0
  167. package/package.json +15 -6
@@ -0,0 +1,171 @@
1
+ export class CreatorApiError extends Error {
2
+ code;
3
+ status;
4
+ constructor(code, status) {
5
+ super(`ABX Creators: ${code} (HTTP ${status})`);
6
+ this.code = code;
7
+ this.status = status;
8
+ this.name = 'CreatorApiError';
9
+ }
10
+ }
11
+ function object(value) {
12
+ if (!value || typeof value !== 'object' || Array.isArray(value))
13
+ throw new Error('ABX Creators returned an invalid response');
14
+ return value;
15
+ }
16
+ function string(value) {
17
+ if (typeof value !== 'string' || !value)
18
+ throw new Error('ABX Creators returned an invalid response');
19
+ return value;
20
+ }
21
+ function address(value) {
22
+ const parsed = string(value);
23
+ if (!/^0x[0-9a-fA-F]{40}$/.test(parsed))
24
+ throw new Error('ABX Creators returned an invalid wallet address');
25
+ return parsed;
26
+ }
27
+ function provider(value) {
28
+ if (value !== 'privy')
29
+ throw new Error('ABX Creators returned an unsupported wallet provider');
30
+ return value;
31
+ }
32
+ function operation(value) {
33
+ const row = object(value);
34
+ const state = string(row.state);
35
+ if (!['prepared', 'submitting', 'pending', 'confirmed', 'failed', 'unknown'].includes(state)) {
36
+ throw new Error('ABX Creators returned an invalid operation state');
37
+ }
38
+ const nullable = (entry) => (entry === null ? null : string(entry));
39
+ if (!Number.isSafeInteger(row.chainId) || Number(row.chainId) <= 0) {
40
+ throw new Error('ABX Creators returned an invalid chain');
41
+ }
42
+ return {
43
+ operationId: string(row.operationId),
44
+ chainId: Number(row.chainId),
45
+ walletId: string(row.walletId),
46
+ state,
47
+ providerTransactionId: nullable(row.providerTransactionId),
48
+ transactionHash: nullable(row.transactionHash),
49
+ userOperationHash: nullable(row.userOperationHash),
50
+ errorCode: nullable(row.errorCode),
51
+ updatedAt: string(row.updatedAt),
52
+ };
53
+ }
54
+ /** Account/wallet API client. It never receives a wallet key or authorization token. */
55
+ export class CreatorApiClient {
56
+ #baseUrl;
57
+ #token;
58
+ #fetch;
59
+ #timeoutMs;
60
+ constructor(options) {
61
+ let baseUrl = options.baseUrl;
62
+ if (baseUrl.length > 2_048)
63
+ throw new Error('ABX Creators service URL is too long');
64
+ while (baseUrl.endsWith('/'))
65
+ baseUrl = baseUrl.slice(0, -1);
66
+ this.#baseUrl = baseUrl;
67
+ this.#token = options.token;
68
+ this.#fetch = options.fetchImpl ?? fetch;
69
+ this.#timeoutMs = options.timeoutMs ?? 20_000;
70
+ if (!this.#token)
71
+ throw new Error('ABX Creators needs an ABX Services API key');
72
+ }
73
+ async account() {
74
+ const data = object(await this.#request('GET', '/v1/account'));
75
+ const capabilities = object(data.capabilities);
76
+ const wallet = data.wallet === null ? null : object(data.wallet);
77
+ const chains = capabilities.sponsoredChains;
78
+ if (!Array.isArray(chains) || chains.some((chainId) => !Number.isSafeInteger(chainId))) {
79
+ throw new Error('ABX Creators returned invalid sponsored chains');
80
+ }
81
+ return {
82
+ accountId: string(data.accountId),
83
+ emailVerified: data.emailVerified === true,
84
+ wallet: wallet
85
+ ? {
86
+ address: address(wallet.address),
87
+ provider: provider(wallet.provider),
88
+ providerAppId: string(wallet.providerAppId),
89
+ }
90
+ : null,
91
+ capabilities: {
92
+ wallet: capabilities.wallet === true,
93
+ sponsorship: capabilities.sponsorship === true,
94
+ sponsoredChains: chains,
95
+ },
96
+ };
97
+ }
98
+ async provisionWallet() {
99
+ const data = object(await this.#request('POST', '/v1/wallet'));
100
+ return {
101
+ address: address(data.address),
102
+ provider: provider(data.provider),
103
+ providerAppId: string(data.providerAppId),
104
+ created: data.created === true,
105
+ };
106
+ }
107
+ async prepare(input) {
108
+ const result = object(await this.#request('POST', '/v1/operations', input));
109
+ const signing = object(result.signingRequest);
110
+ return {
111
+ operation: operation(result.operation),
112
+ signingRequest: {
113
+ walletId: string(signing.walletId),
114
+ idempotencyKey: string(signing.idempotencyKey),
115
+ requestExpiry: string(signing.requestExpiry),
116
+ body: object(signing.body),
117
+ },
118
+ };
119
+ }
120
+ async submit(operationId, input) {
121
+ try {
122
+ // The service allows up to 30 seconds for Privy. Keep the caller alive beyond that boundary so
123
+ // it receives the durable operation instead of abandoning a write that may still land.
124
+ const result = object(await this.#request('POST', `/v1/operations/${encodeURIComponent(operationId)}/submit`, input, Math.max(this.#timeoutMs, 45_000)));
125
+ return operation(result.operation);
126
+ }
127
+ catch (submitError) {
128
+ if (submitError instanceof CreatorApiError &&
129
+ (submitError.status < 500 || submitError.code === 'sponsorship_disabled'))
130
+ throw submitError;
131
+ // The write may already have reached the provider. Never replay it: reconcile the durable
132
+ // operation created during prepare through the read-only status endpoint instead.
133
+ try {
134
+ return await this.getOperation(operationId);
135
+ }
136
+ catch {
137
+ throw new Error(`Sponsored operation ${operationId} has an unknown submission outcome. Check its status before doing anything else; do not retry it.`);
138
+ }
139
+ }
140
+ }
141
+ async getOperation(operationId) {
142
+ const result = object(await this.#request('GET', `/v1/operations/${encodeURIComponent(operationId)}`));
143
+ return operation(result.operation);
144
+ }
145
+ async #request(method, path, body, timeoutMs = this.#timeoutMs) {
146
+ let response;
147
+ try {
148
+ response = await this.#fetch(`${this.#baseUrl}${path}`, {
149
+ method,
150
+ redirect: 'error',
151
+ signal: AbortSignal.timeout(timeoutMs),
152
+ headers: {
153
+ accept: 'application/json',
154
+ authorization: `Bearer ${this.#token}`,
155
+ ...(body === undefined ? {} : { 'content-type': 'application/json' }),
156
+ },
157
+ ...(body === undefined ? {} : { body: JSON.stringify(body) }),
158
+ });
159
+ }
160
+ catch {
161
+ throw new Error('ABX Creators is unavailable; no transaction was retried');
162
+ }
163
+ const data = (await response.json().catch(() => null));
164
+ if (!response.ok) {
165
+ const parsed = data && typeof data === 'object' && !Array.isArray(data) ? data : {};
166
+ throw new CreatorApiError(typeof parsed.error === 'string' ? parsed.error : 'request_failed', response.status);
167
+ }
168
+ return data;
169
+ }
170
+ }
171
+ //# sourceMappingURL=creators-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creators-service.js","sourceRoot":"","sources":["../src/creators-service.ts"],"names":[],"mappings":"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"}
package/dist/deploy.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { type Account, type Address, type Hex, type PublicClient, type WalletClient } from 'viem';
1
+ import { type Address, type Hex, type PublicClient } from 'viem';
2
+ import type { SendTx } from './execute.js';
2
3
  /** One on-chain metadata field to set at deploy (bytes32 `field`/`representation`, bytes `value`). */
3
4
  export interface OnChainFieldInput {
4
5
  field: Hex;
@@ -23,6 +24,13 @@ export interface OneOfOneInitParams {
23
24
  contractURIRenderer: Address;
24
25
  royaltyReceiver: Address;
25
26
  royaltyBps: number;
27
+ /** Royalty ceiling in basis points (0–10000, up to 100%). Owner-set at deploy and reduce-only
28
+ * after (`reduceMaxRoyaltyBps`); the initial `royaltyBps` must be <= this. Tooling defaults it
29
+ * to 1000 (10%). A monotonic-down cap is a buyer-readable "royalty can never exceed X" guarantee. */
30
+ maxRoyaltyBps: number;
31
+ /** Opt-in burn (default `false`). `true` lets holders (or approved operators) burn their token via
32
+ * `burn(...)`; `false` means the token can never be destroyed, by anyone. Fixed at deploy. */
33
+ burnable: boolean;
26
34
  /** `zeroAddress` = plain ERC-721 (the default — no trace of 721C, ever); non-zero = permanent
27
35
  * ERC-721C enrollment with that transfer validator (must have code on-chain, else the deploy
28
36
  * reverts `InvalidTransferValidator()`). Enrollment is deploy-time-only and irreversible —
@@ -52,6 +60,13 @@ export interface SeriesInitParams {
52
60
  contractURIRenderer: Address;
53
61
  royaltyReceiver: Address;
54
62
  royaltyBps: number;
63
+ /** Royalty ceiling in basis points (0–10000, up to 100%). Owner-set at deploy and reduce-only
64
+ * after (`reduceMaxRoyaltyBps`); the initial `royaltyBps` must be <= this. Tooling defaults it
65
+ * to 1000 (10%). A monotonic-down cap is a buyer-readable "royalty can never exceed X" guarantee. */
66
+ maxRoyaltyBps: number;
67
+ /** Opt-in burn (default `false`). `true` lets holders (or approved operators) burn their token via
68
+ * `burn(...)`; `false` means the token can never be destroyed, by anyone. Fixed at deploy. */
69
+ burnable: boolean;
55
70
  /** `zeroAddress` = plain ERC-721 (the default — no trace of 721C, ever); non-zero = permanent
56
71
  * ERC-721C enrollment with that transfer validator (must have code on-chain, else the deploy
57
72
  * reverts `InvalidTransferValidator()`). Enrollment is deploy-time-only and irreversible —
@@ -81,6 +96,97 @@ export interface SeriesCodeInitParams extends SeriesInitParams {
81
96
  /** Opt out of delegate.xyz on the TokenOwner auth leg (default false = canonical registry). */
82
97
  disableTokenOwnerDelegation: boolean;
83
98
  }
99
+ /** One per-token on-chain metadata field to set at deploy, keyed by `tokenId` — the edition twin
100
+ * of {@link SeriesTokenFieldInput} (identical shape; ABX's `OnChainMetadata.TokenFieldInput` has
101
+ * no standard-specific fields). Reused directly rather than duplicated. */
102
+ export type EditionTokenFieldInput = SeriesTokenFieldInput;
103
+ /** Mirrors `OneOfOneEdition.InitParams` — copies of a single work, id space fixed to `{0}`. */
104
+ export interface OneOfOneEditionInitParams {
105
+ owner: Address;
106
+ /** Recipient of the deploy-time mint (`0x0` or `mintAmount: 0` ⇒ defer all minting). */
107
+ mintTo: Address;
108
+ /** Copies of id 0 to mint to `mintTo` at deploy (`0` ⇒ none). */
109
+ mintAmount: bigint | number;
110
+ name: string;
111
+ symbol: string;
112
+ /** Off-chain resolver base for `uri(id)`; the pointer is derived on-chain as
113
+ * `{base}/{chainId}/{address}/{id}`. */
114
+ tokenURIBase: string;
115
+ /** On-chain renderer for `uri(id)`; `0x0` ⇒ resolve off-chain via the base. */
116
+ tokenURIRenderer: Address;
117
+ contractURIBase: string;
118
+ contractURIRenderer: Address;
119
+ royaltyReceiver: Address;
120
+ royaltyBps: number;
121
+ /** Royalty ceiling in basis points (0–10000, up to 100%). Owner-set at deploy and reduce-only
122
+ * after (`reduceMaxRoyaltyBps`); the initial `royaltyBps` must be <= this. Tooling defaults it
123
+ * to 1000 (10%). A monotonic-down cap is a buyer-readable "royalty can never exceed X" guarantee. */
124
+ maxRoyaltyBps: number;
125
+ /** Opt-in burn (default `false`). `true` lets holders (or approved operators) burn their token via
126
+ * `burn(...)`; `false` means the token can never be destroyed, by anyone. Fixed at deploy. */
127
+ burnable: boolean;
128
+ /** `zeroAddress` = a plain ERC-1155 forever (the default). Non-zero = permanent ERC-1155C
129
+ * enrollment with that transfer validator (must have code on-chain). */
130
+ transferValidator: Address;
131
+ /** The default supply cap for id 0 (`0` = open edition, uncapped). */
132
+ editionSize: bigint | number;
133
+ /** Primary-sale payout destination (`0x0` = none). */
134
+ primaryPayee: Address;
135
+ /** Initial authorized minter — a single address (`0x0` = owner-only). */
136
+ minter: Address;
137
+ /** Initial mint-pause state — `true` restricts minting to the owner until unpaused (deploy-time
138
+ * reserves still mint). */
139
+ paused: boolean;
140
+ /** Optional on-chain metadata fields for id 0 (each field → one representation). */
141
+ tokenFields: OnChainFieldInput[];
142
+ contractFields: OnChainFieldInput[];
143
+ }
144
+ /** Mirrors `EditionImage.InitParams` — copies of many distinct works (N ids × copies each). */
145
+ export interface EditionImageInitParams {
146
+ owner: Address;
147
+ name: string;
148
+ symbol: string;
149
+ tokenURIBase: string;
150
+ tokenURIRenderer: Address;
151
+ contractURIBase: string;
152
+ contractURIRenderer: Address;
153
+ royaltyReceiver: Address;
154
+ royaltyBps: number;
155
+ /** Royalty ceiling in basis points (0–10000, up to 100%). Owner-set at deploy and reduce-only
156
+ * after (`reduceMaxRoyaltyBps`); the initial `royaltyBps` must be <= this. Tooling defaults it
157
+ * to 1000 (10%). A monotonic-down cap is a buyer-readable "royalty can never exceed X" guarantee. */
158
+ maxRoyaltyBps: number;
159
+ /** Opt-in burn (default `false`). `true` lets holders (or approved operators) burn their token via
160
+ * `burn(...)`; `false` means the token can never be destroyed, by anyone. Fixed at deploy. */
161
+ burnable: boolean;
162
+ transferValidator: Address;
163
+ /** The id-space cap N (> 0): the number of distinct works this project may ever have.
164
+ * Monotonically non-increasing (floor = the id high-water mark, NOT `totalSupply()` — ids are
165
+ * caller-named, not sequential). */
166
+ maxInvocations: bigint | number;
167
+ /** The default per-id copy cap for EVERY id (`0` = open edition, uncapped). */
168
+ editionSize: bigint | number;
169
+ primaryPayee: Address;
170
+ minter: Address;
171
+ paused: boolean;
172
+ /** Recipient for the deploy-time mint (`0x0` ⇒ defer all minting). */
173
+ mintTo: Address;
174
+ /** Distinct works to mint at deploy, ids `[0, mintCount)`; `<= maxInvocations`. */
175
+ mintCount: bigint | number;
176
+ /** Copies of EACH deploy-minted id (must be `> 0` if `mintCount > 0`). */
177
+ mintAmount: bigint | number;
178
+ /** Optional per-token on-chain metadata fields, keyed by id. */
179
+ tokenFields: EditionTokenFieldInput[];
180
+ contractFields: OnChainFieldInput[];
181
+ }
182
+ /** {@link EditionImageInitParams} plus the code-project extension config ({EditionCode.InitParams}).
183
+ * NOTE: unlike {@link SeriesCodeInitParams}, there is no `disableTokenOwnerDelegation` — editions
184
+ * have no TokenOwner-leg delegation to opt out of (see `ConfigurableParams`'s edition init path;
185
+ * the auth leg generalizes to "any holder" instead — `balanceOf(sender, id) > 0`). */
186
+ export interface EditionCodeInitParams extends EditionImageInitParams {
187
+ /** IAbxSeedSource the token calls at each id's FIRST mint (`0x0` = no mint-time seed). */
188
+ seedSource: Address;
189
+ }
84
190
  export interface DeployResult<T extends string> {
85
191
  txHash: Hex;
86
192
  blockNumber: bigint;
@@ -99,6 +205,11 @@ export declare function saltFor(deployer: Address, entropy?: Hex): Hex;
99
205
  * A permissionless salt: an all-zero guard prefix, so **anyone** may deploy to the
100
206
  * address it predicts (a shared, canonical deployment). No front-run protection —
101
207
  * use only when a publicly-deployable, caller-independent address is the point.
208
+ *
209
+ * **Never use this for a pre-published or pre-funded address.** If you predict an address with
210
+ * this salt and share it (or send value to it) before deploying, a third party can occupy that
211
+ * exact address first with their own `InitParams` (their owner, their URIs). For any address a
212
+ * creator reserves, use {@link saltFor} — its deployer-bound prefix is front-run-proof.
102
213
  */
103
214
  export declare function permissionlessSalt(entropy?: Hex): Hex;
104
215
  /** The address a salt reserves the deploy to (`0x0` ⇒ permissionless). */
@@ -108,29 +219,40 @@ export declare function saltGuard(salt: Hex): Address;
108
219
  * once deployed, its address is what platforms allowlist. Deploy this once per
109
220
  * (chain, core version) and reuse it for every clone.
110
221
  */
111
- export declare function deployFactory(wallet: WalletClient, account: Account, publicClient: PublicClient): Promise<DeployResult<'factory'> & {
222
+ export declare function deployFactory(send: SendTx, publicClient: PublicClient): Promise<DeployResult<'factory'> & {
112
223
  factory: Address;
113
224
  implementation: Address;
225
+ metadataLib: Address;
114
226
  }>;
115
227
  /**
116
228
  * Deploy the canonical Series clone factory — the trust anchor for multi-token drops.
117
229
  * Ownerless and immutable; the sibling of `deployFactory`. Deploy once per (chain, core
118
230
  * version). The shared renderer + chunk store are reused (deploy them separately).
119
231
  */
120
- export declare function deploySeriesFactory(wallet: WalletClient, account: Account, publicClient: PublicClient): Promise<DeployResult<'seriesFactory'> & {
232
+ export declare function deploySeriesFactory(send: SendTx, publicClient: PublicClient): Promise<DeployResult<'seriesFactory'> & {
121
233
  factory: Address;
122
234
  implementation: Address;
235
+ metadataLib: Address;
123
236
  }>;
124
237
  /**
125
- * Deploy the code-project trust root on a chain with no canonical set: the two
126
- * delegatecalled write-path libraries first ({AbxParamsLib}, {AbxCodeLib}), the factory
127
- * bytecode LINKED against them (solc placeholders replaced — what forge does at build
128
- * time, done here so a sandbox/fresh chain needs no forge), then the factory (whose
129
- * constructor deploys the {SeriesCode} implementation).
238
+ * Deploy the code-project trust root on a chain with no canonical set: the two delegatecalled
239
+ * write-path libraries first ({AbxParamsLib}, {AbxCodeLib}), the factory bytecode LINKED against
240
+ * them (solc placeholders replaced — what forge does at build time, done here so a sandbox/fresh
241
+ * chain needs no forge), then the factory (whose constructor deploys the {SeriesCode}
242
+ * implementation).
243
+ *
244
+ * All three go through the keyless CREATE2 proxy at canonical `AbxSalts` salts, so all three land at
245
+ * addresses that are the same on every chain and computable before the first transaction — the
246
+ * factory's included: linking substitutes an address into already-compiled bytecode, so once the
247
+ * libraries are predictable the linked initcode is fixed too (`predictSeriesCodeFactory()`). The
248
+ * ordering below is still sequential, but now for a plain data-dependency reason rather than a
249
+ * nonce one. See `create2.ts`'s write-path-library note for why the old "libraries are
250
+ * nonce-dependent" story was wrong, and for the compile-time-linking trap that IS real.
130
251
  */
131
- export declare function deploySeriesCodeFactory(wallet: WalletClient, account: Account, publicClient: PublicClient): Promise<{
252
+ export declare function deploySeriesCodeFactory(send: SendTx, publicClient: PublicClient): Promise<{
132
253
  factory: Address;
133
254
  implementation: Address;
255
+ metadataLib: Address;
134
256
  paramsLib: Address;
135
257
  codeLib: Address;
136
258
  txHash: Hex;
@@ -140,7 +262,7 @@ export declare function deploySeriesCodeFactory(wallet: WalletClient, account: A
140
262
  * keyless proxy + canonical salt → the SAME address on every chain (matches `DeploySeedSource.s.sol`
141
263
  * and the manifest). The seed source is single-profile, so — unlike the SeriesCode factory — the
142
264
  * SDK's bytecode is the canonical one. */
143
- export declare function deploySeedSource(wallet: WalletClient, account: Account, publicClient: PublicClient): Promise<{
265
+ export declare function deploySeedSource(send: SendTx, publicClient: PublicClient): Promise<{
144
266
  seedSource: Address;
145
267
  txHash: Hex;
146
268
  }>;
@@ -150,7 +272,7 @@ export declare function deploySeedSource(wallet: WalletClient, account: Account,
150
272
  * their URI-renderer config. It reads each token's on-chain fields and returns a
151
273
  * `data:application/json` URI, so a token using it resolves with zero off-chain infra.
152
274
  */
153
- export declare function deployRenderer(wallet: WalletClient, account: Account, publicClient: PublicClient): Promise<DeployResult<'renderer'> & {
275
+ export declare function deployRenderer(send: SendTx, publicClient: PublicClient): Promise<DeployResult<'renderer'> & {
154
276
  renderer: Address;
155
277
  specVersion: bigint;
156
278
  }>;
@@ -160,7 +282,7 @@ export declare function deployRenderer(wallet: WalletClient, account: Account, p
160
282
  * (config is keyed by token address, authority defers to each token's owner). Sibling of
161
283
  * `deployRenderer` — ownerless, no constructor args, safe for any funded signer to stand up.
162
284
  */
163
- export declare function deployFixedPriceMinter(wallet: WalletClient, account: Account, publicClient: PublicClient): Promise<DeployResult<'fixedPriceMinter'> & {
285
+ export declare function deployFixedPriceMinter(send: SendTx, publicClient: PublicClient): Promise<DeployResult<'fixedPriceMinter'> & {
164
286
  minter: Address;
165
287
  }>;
166
288
  /**
@@ -178,7 +300,7 @@ export declare function predictClone(publicClient: PublicClient, args: {
178
300
  * address (so URIs can be baked in before deploy). Returns the clone address and
179
301
  * the block it landed in — the indexer's start block.
180
302
  */
181
- export declare function deployOneOfOne(wallet: WalletClient, account: Account | Address, publicClient: PublicClient, args: {
303
+ export declare function deployOneOfOne(send: SendTx, publicClient: PublicClient, args: {
182
304
  factory: Address;
183
305
  params: OneOfOneInitParams;
184
306
  salt: Hex;
@@ -192,11 +314,99 @@ export declare function deployOneOfOne(wallet: WalletClient, account: Account |
192
314
  * computes with its own implementation. `params.mintCount`/`mintTo` decide the deploy-time
193
315
  * mint; anything larger mints post-deploy under a gas budget.
194
316
  */
195
- export declare function deploySeries(wallet: WalletClient, account: Account | Address, publicClient: PublicClient, args: {
317
+ export declare function deploySeries(send: SendTx, publicClient: PublicClient, args: {
196
318
  factory: Address;
197
319
  params: SeriesInitParams;
198
320
  salt: Hex;
199
321
  }): Promise<DeployResult<'clone'> & {
200
322
  clone: Address;
201
323
  }>;
324
+ /**
325
+ * Deploy the canonical `OneOfOneEditionFactory` — the 1/1-edition trust anchor. Unlike {@link
326
+ * deployFactory} (the 721 1/1 factory, a plain contract creation), this one goes through the
327
+ * keyless CREATE2 proxy with the canonical `AbxSalts.ONE_OF_ONE_EDITION_FACTORY` salt — matching
328
+ * how `contracts/script/DeployOneOfOneEdition.s.sol` actually deploys it — so its address is the
329
+ * SAME on every chain and predictable before the deploy tx (`predictOneOfOneEditionFactory()`).
330
+ *
331
+ * Library-linked, like the two code factories: `OneOfOneEdition` delegates its uri /
332
+ * creator-token / edition-supply bodies into `AbxEditionLib`, so this deploys `AbxParamsLib` +
333
+ * `AbxEditionLib` first ({@link ensureEditionLibraries}) and sends the factory's initcode LINKED
334
+ * against the settled library address. Linking costs nothing in determinism — see `create2.ts`'s
335
+ * write-path-library note.
336
+ */
337
+ export declare function deployOneOfOneEditionFactory(send: SendTx, publicClient: PublicClient): Promise<DeployResult<'factory'> & {
338
+ factory: Address;
339
+ implementation: Address;
340
+ metadataLib: Address;
341
+ paramsLib: Address;
342
+ editionLib: Address;
343
+ }>;
344
+ /** Deploy the canonical `EditionImageFactory` — the multi-work edition trust anchor. CREATE2
345
+ * via the keyless proxy + the canonical `AbxSalts.EDITION_FACTORY` salt (see {@link
346
+ * deployOneOfOneEditionFactory}'s doc note on why this differs from the 721 series factory's
347
+ * plain-creation bootstrap, and why `AbxEditionLib` has to land first). */
348
+ export declare function deployEditionFactory(send: SendTx, publicClient: PublicClient): Promise<DeployResult<'factory'> & {
349
+ factory: Address;
350
+ implementation: Address;
351
+ metadataLib: Address;
352
+ paramsLib: Address;
353
+ editionLib: Address;
354
+ }>;
355
+ /** Deploy `AbxFixedPriceMinter1155` — the canonical, ownerless, multi-tenant edition sale
356
+ * singleton (the Minter spine's edition lane). Sibling of `deployFixedPriceMinter`, one id
357
+ * finer at the contract level (`(token, id)`-keyed sales) — the deploy itself is identical in
358
+ * shape: CREATE2 via the keyless proxy + canonical salt. */
359
+ export declare function deployFixedPriceMinter1155(send: SendTx, publicClient: PublicClient): Promise<DeployResult<'fixedPriceMinter1155'> & {
360
+ minter: Address;
361
+ }>;
362
+ /**
363
+ * Deploy a 1/1 edition NFT as an immutable EIP-1167 clone, at a deterministic address. The
364
+ * edition twin of `deployOneOfOne` — `predictClone` works unchanged (the
365
+ * `predictDeterministicAddress` fragment is identical across every factory, 721 or 1155).
366
+ */
367
+ export declare function deployOneOfOneEdition(send: SendTx, publicClient: PublicClient, args: {
368
+ factory: Address;
369
+ params: OneOfOneEditionInitParams;
370
+ salt: Hex;
371
+ }): Promise<DeployResult<'clone'> & {
372
+ clone: Address;
373
+ }>;
374
+ /**
375
+ * Deploy an EditionImage (multi-work edition) NFT as an immutable EIP-1167 clone, at a
376
+ * deterministic address. The edition twin of `deploySeries`.
377
+ */
378
+ export declare function deployEditionImage(send: SendTx, publicClient: PublicClient, args: {
379
+ factory: Address;
380
+ params: EditionImageInitParams;
381
+ salt: Hex;
382
+ }): Promise<DeployResult<'clone'> & {
383
+ clone: Address;
384
+ }>;
385
+ /**
386
+ * Deploy the code-project edition trust root on a chain with no canonical set: the THREE
387
+ * delegatecalled write-path libraries first ({AbxParamsLib}, {AbxCodeLib}, {AbxEditionLib} — the
388
+ * edition twin of `deploySeriesCodeFactory`'s two-lib dance, plus the 1155 write path {@link
389
+ * deployOneOfOneEditionFactory} and {@link deployEditionFactory} link too), the factory bytecode
390
+ * LINKED against all three, then the factory (whose constructor deploys the {EditionCode}
391
+ * implementation). CREATE2 at canonical `AbxSalts` salts throughout, exactly like
392
+ * {@link deploySeriesCodeFactory}, so the whole set is cross-chain-identical and predictable
393
+ * (`predictEditionCodeFactory()`). This is the only factory linking all three libraries; it is NOT
394
+ * the only one linking {AbxEditionLib} — all three 1155 token types delegate into it.
395
+ *
396
+ * One wrinkle the 721 twin doesn't have: {AbxEditionLib} delegatecalls {AbxParamsLib}, so its OWN
397
+ * shipped bytecode carries an unlinked placeholder and has to be linked before it can be deployed
398
+ * ({@link ensureEditionLib} does this via `linkEditionLib()`). Deploying it raw is what made this
399
+ * function fail with an opaque `Invalid byte sequence` — `__$…$__` is not hex, and the old
400
+ * unlinked-placeholder guard only checked the factory's bytecode, never the library's.
401
+ */
402
+ export declare function deployEditionCodeFactory(send: SendTx, publicClient: PublicClient): Promise<{
403
+ factory: Address;
404
+ implementation: Address;
405
+ metadataLib: Address;
406
+ paramsLib: Address;
407
+ codeLib: Address;
408
+ editionLib: Address;
409
+ txHash: Hex;
410
+ blockNumber: bigint;
411
+ }>;
202
412
  //# sourceMappingURL=deploy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"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"}