@artblocks/abx-sdk 0.1.0-alpha.9 → 0.2.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.
- package/CHANGELOG.md +207 -0
- package/README.md +130 -0
- package/dist/abi/generated.d.ts +7942 -142
- package/dist/abi/generated.d.ts.map +1 -1
- package/dist/abi/generated.js +41 -23
- package/dist/abi/generated.js.map +1 -1
- package/dist/abi/index.d.ts +2364 -84
- package/dist/abi/index.d.ts.map +1 -1
- package/dist/abi/index.js +34 -7
- package/dist/abi/index.js.map +1 -1
- package/dist/anchors.d.ts +329 -0
- package/dist/anchors.d.ts.map +1 -0
- package/dist/anchors.js +744 -0
- package/dist/anchors.js.map +1 -0
- package/dist/chain-support.d.ts +28 -0
- package/dist/chain-support.d.ts.map +1 -0
- package/dist/chain-support.js +65 -0
- package/dist/chain-support.js.map +1 -0
- package/dist/chain-support.json +60 -0
- package/dist/chains.d.ts +23 -11
- package/dist/chains.d.ts.map +1 -1
- package/dist/chains.js +51 -19
- package/dist/chains.js.map +1 -1
- package/dist/chunks.d.ts +130 -32
- package/dist/chunks.d.ts.map +1 -1
- package/dist/chunks.js +140 -15
- package/dist/chunks.js.map +1 -1
- package/dist/clients.d.ts +23 -11
- package/dist/clients.d.ts.map +1 -1
- package/dist/clients.js +17 -18
- package/dist/clients.js.map +1 -1
- package/dist/contract-generations.d.ts +58 -0
- package/dist/contract-generations.d.ts.map +1 -0
- package/dist/contract-generations.js +109 -0
- package/dist/contract-generations.js.map +1 -0
- package/dist/contract-generations.json +48 -0
- package/dist/create2.d.ts +88 -1
- package/dist/create2.d.ts.map +1 -1
- package/dist/create2.js +174 -4
- package/dist/create2.js.map +1 -1
- package/dist/creator-token.d.ts +75 -8
- package/dist/creator-token.d.ts.map +1 -1
- package/dist/creator-token.js +98 -8
- package/dist/creator-token.js.map +1 -1
- package/dist/creators-service.d.ts +79 -0
- package/dist/creators-service.d.ts.map +1 -0
- package/dist/creators-service.js +171 -0
- package/dist/creators-service.js.map +1 -0
- package/dist/deploy.d.ts +224 -14
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +289 -111
- package/dist/deploy.js.map +1 -1
- package/dist/deployments.d.ts +38 -5
- package/dist/deployments.d.ts.map +1 -1
- package/dist/deployments.js +158 -45
- package/dist/deployments.js.map +1 -1
- package/dist/deps.d.ts +123 -6
- package/dist/deps.d.ts.map +1 -1
- package/dist/deps.js +249 -7
- package/dist/deps.js.map +1 -1
- package/dist/env.d.ts +5 -4
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +20 -5
- package/dist/env.js.map +1 -1
- package/dist/errors.d.ts +109 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +148 -0
- package/dist/errors.js.map +1 -0
- package/dist/execute.d.ts +118 -0
- package/dist/execute.d.ts.map +1 -0
- package/dist/execute.js +159 -0
- package/dist/execute.js.map +1 -0
- package/dist/gateways.d.ts +79 -0
- package/dist/gateways.d.ts.map +1 -0
- package/dist/gateways.js +156 -0
- package/dist/gateways.js.map +1 -0
- package/dist/generator-document.d.ts +57 -0
- package/dist/generator-document.d.ts.map +1 -0
- package/dist/generator-document.js +123 -0
- package/dist/generator-document.js.map +1 -0
- package/dist/generator.d.ts +45 -3
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +29 -0
- package/dist/generator.js.map +1 -1
- package/dist/image-type.d.ts +14 -0
- package/dist/image-type.d.ts.map +1 -0
- package/dist/image-type.js +41 -0
- package/dist/image-type.js.map +1 -0
- package/dist/index.d.ts +20 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -3
- package/dist/index.js.map +1 -1
- package/dist/inspect.d.ts +48 -0
- package/dist/inspect.d.ts.map +1 -0
- package/dist/inspect.js +295 -0
- package/dist/inspect.js.map +1 -0
- package/dist/migrate.d.ts +41 -0
- package/dist/migrate.d.ts.map +1 -0
- package/dist/migrate.js +142 -0
- package/dist/migrate.js.map +1 -0
- package/dist/mime.d.ts +11 -0
- package/dist/mime.d.ts.map +1 -0
- package/dist/mime.js +40 -0
- package/dist/mime.js.map +1 -0
- package/dist/node.d.ts +69 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +92 -0
- package/dist/node.js.map +1 -0
- package/dist/onchain-uri.d.ts +110 -0
- package/dist/onchain-uri.d.ts.map +1 -0
- package/dist/onchain-uri.js +276 -0
- package/dist/onchain-uri.js.map +1 -0
- package/dist/ops.d.ts +437 -13
- package/dist/ops.d.ts.map +1 -1
- package/dist/ops.js +754 -34
- package/dist/ops.js.map +1 -1
- package/dist/policy.d.ts +57 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +35 -0
- package/dist/policy.js.map +1 -0
- package/dist/probe.d.ts +58 -0
- package/dist/probe.d.ts.map +1 -1
- package/dist/probe.js +190 -9
- package/dist/probe.js.map +1 -1
- package/dist/reconstruct.d.ts +135 -8
- package/dist/reconstruct.d.ts.map +1 -1
- package/dist/reconstruct.js +400 -84
- package/dist/reconstruct.js.map +1 -1
- package/dist/resume.d.ts +147 -0
- package/dist/resume.d.ts.map +1 -0
- package/dist/resume.js +146 -0
- package/dist/resume.js.map +1 -0
- package/dist/script-chunks.d.ts +105 -0
- package/dist/script-chunks.d.ts.map +1 -0
- package/dist/script-chunks.js +158 -0
- package/dist/script-chunks.js.map +1 -0
- package/dist/service.d.ts +172 -7
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +132 -10
- package/dist/service.js.map +1 -1
- package/dist/spine.d.ts +48 -4
- package/dist/spine.d.ts.map +1 -1
- package/dist/spine.js +0 -0
- package/dist/spine.js.map +1 -1
- package/dist/staging.d.ts +139 -0
- package/dist/staging.d.ts.map +1 -0
- package/dist/staging.js +139 -0
- package/dist/staging.js.map +1 -0
- package/dist/token.d.ts +11 -1
- package/dist/token.d.ts.map +1 -1
- package/dist/token.js +32 -1
- package/dist/token.js.map +1 -1
- package/dist/tokendata.d.ts +4 -4
- package/dist/tokendata.d.ts.map +1 -1
- package/dist/tokendata.js +28 -9
- package/dist/tokendata.js.map +1 -1
- package/dist/tokens.d.ts +74 -9
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +175 -5
- package/dist/tokens.js.map +1 -1
- package/dist/types.d.ts +107 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/uri-lock.d.ts +17 -0
- package/dist/uri-lock.d.ts.map +1 -0
- package/dist/uri-lock.js +33 -0
- package/dist/uri-lock.js.map +1 -0
- package/dist/util.d.ts +74 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +106 -0
- package/dist/util.js.map +1 -0
- package/package.json +15 -6
|
@@ -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
|
|
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(
|
|
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(
|
|
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
|
-
*
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
package/dist/deploy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"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"}
|