@artblocks/abx-sdk 0.1.0-alpha.2 → 0.1.0-alpha.21
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 +2203 -0
- package/README.md +131 -0
- package/dist/abi/generated.d.ts +8502 -129
- package/dist/abi/generated.d.ts.map +1 -1
- package/dist/abi/generated.js +40 -22
- package/dist/abi/generated.js.map +1 -1
- package/dist/abi/index.d.ts +2645 -168
- 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 +319 -0
- package/dist/anchors.d.ts.map +1 -0
- package/dist/anchors.js +703 -0
- package/dist/anchors.js.map +1 -0
- package/dist/chains.d.ts +15 -9
- package/dist/chains.d.ts.map +1 -1
- package/dist/chains.js +19 -15
- package/dist/chains.js.map +1 -1
- package/dist/chunks.d.ts +53 -23
- package/dist/chunks.d.ts.map +1 -1
- package/dist/chunks.js +68 -6
- 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/create2.d.ts +85 -1
- package/dist/create2.d.ts.map +1 -1
- package/dist/create2.js +159 -2
- package/dist/create2.js.map +1 -1
- package/dist/creator-token.d.ts +132 -0
- package/dist/creator-token.d.ts.map +1 -0
- package/dist/creator-token.js +183 -0
- package/dist/creator-token.js.map +1 -0
- package/dist/deploy.d.ts +234 -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 +63 -0
- package/dist/deployments.d.ts.map +1 -1
- package/dist/deployments.js +202 -28
- package/dist/deployments.js.map +1 -1
- package/dist/deps.d.ts +122 -5
- package/dist/deps.d.ts.map +1 -1
- package/dist/deps.js +248 -6
- package/dist/deps.js.map +1 -1
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +8 -0
- package/dist/env.js.map +1 -1
- package/dist/errors.d.ts +94 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +126 -0
- package/dist/errors.js.map +1 -0
- package/dist/execute.d.ts +115 -0
- package/dist/execute.d.ts.map +1 -0
- package/dist/execute.js +142 -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 +58 -0
- package/dist/generator-document.d.ts.map +1 -0
- package/dist/generator-document.js +124 -0
- package/dist/generator-document.js.map +1 -0
- package/dist/generator.d.ts +43 -1
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +29 -0
- package/dist/generator.js.map +1 -1
- package/dist/index.d.ts +18 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -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 +10 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +24 -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 +277 -0
- package/dist/onchain-uri.js.map +1 -0
- package/dist/ops.d.ts +507 -14
- package/dist/ops.d.ts.map +1 -1
- package/dist/ops.js +848 -32
- package/dist/ops.js.map +1 -1
- package/dist/policy.d.ts +58 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +36 -0
- package/dist/policy.js.map +1 -0
- package/dist/probe.d.ts +29 -0
- package/dist/probe.d.ts.map +1 -1
- package/dist/probe.js +104 -9
- package/dist/probe.js.map +1 -1
- package/dist/reconstruct.d.ts +94 -2
- package/dist/reconstruct.d.ts.map +1 -1
- package/dist/reconstruct.js +432 -97
- package/dist/reconstruct.js.map +1 -1
- package/dist/resume.d.ts +96 -0
- package/dist/resume.d.ts.map +1 -0
- package/dist/resume.js +95 -0
- package/dist/resume.js.map +1 -0
- package/dist/script-chunks.d.ts +24 -0
- package/dist/script-chunks.d.ts.map +1 -0
- package/dist/script-chunks.js +63 -0
- package/dist/script-chunks.js.map +1 -0
- package/dist/service.d.ts +206 -9
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +228 -18
- package/dist/service.js.map +1 -1
- package/dist/spine.d.ts +47 -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 +124 -0
- package/dist/staging.d.ts.map +1 -0
- package/dist/staging.js +134 -0
- package/dist/staging.js.map +1 -0
- package/dist/tokendata.d.ts +62 -2
- package/dist/tokendata.d.ts.map +1 -1
- package/dist/tokendata.js +79 -17
- package/dist/tokendata.js.map +1 -1
- package/dist/tokens.d.ts +120 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +317 -0
- package/dist/tokens.js.map +1 -0
- package/dist/types.d.ts +108 -4
- package/dist/types.d.ts.map +1 -1
- 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 +11 -2
package/dist/deploy.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { concat, getAddress, toHex, zeroAddress
|
|
2
|
-
import { oneOfOneImageFactoryAbi,
|
|
3
|
-
import {
|
|
1
|
+
import { concat, getAddress, toHex, zeroAddress } from 'viem';
|
|
2
|
+
import { oneOfOneImageFactoryAbi, seriesImageFactoryAbi, abxMetadataRendererAbi, seriesCodeFactoryAbi, abxMetadataLibBytecode, abxParamsLibBytecode, abxCodeLibBytecode, oneOfOneEditionFactoryAbi, editionImageFactoryAbi, editionCodeFactoryAbi, } from './abi/index.js';
|
|
3
|
+
import { predictFactory, predictSeriesFactory, predictRenderer, predictFixedPriceMinter, predictSeedSource, predictOneOfOneEditionFactory, predictEditionFactory, predictFixedPriceMinter1155, predictCreate2Address, predictSeriesCodeFactory, predictEditionCodeFactory, linkSeriesCodeFactory, linkEditionCodeFactory, linkEditionLib, create2Calldata, CREATE2_PROXY, ABX_SALT, } from './create2.js';
|
|
4
|
+
import { prepareDeployFactory, prepareDeploySeriesFactory, prepareDeployRenderer, prepareDeployFixedPriceMinter, prepareDeploySeedSource, prepareDeployOneOfOne, prepareDeploySeries, prepareDeployOneOfOneEdition, prepareDeployOneOfOneEditionFactory, prepareDeployEditionImage, prepareDeployEditionFactory, prepareDeployFixedPriceMinter1155, } from './ops.js';
|
|
4
5
|
/** 12 bytes of entropy — the non-guard tail of a deterministic-deploy salt. */
|
|
5
6
|
function entropy12() {
|
|
6
7
|
return toHex(crypto.getRandomValues(new Uint8Array(12)));
|
|
@@ -21,6 +22,11 @@ export function saltFor(deployer, entropy = entropy12()) {
|
|
|
21
22
|
* A permissionless salt: an all-zero guard prefix, so **anyone** may deploy to the
|
|
22
23
|
* address it predicts (a shared, canonical deployment). No front-run protection —
|
|
23
24
|
* use only when a publicly-deployable, caller-independent address is the point.
|
|
25
|
+
*
|
|
26
|
+
* **Never use this for a pre-published or pre-funded address.** If you predict an address with
|
|
27
|
+
* this salt and share it (or send value to it) before deploying, a third party can occupy that
|
|
28
|
+
* exact address first with their own `InitParams` (their owner, their URIs). For any address a
|
|
29
|
+
* creator reserves, use {@link saltFor} — its deployer-bound prefix is front-run-proof.
|
|
24
30
|
*/
|
|
25
31
|
export function permissionlessSalt(entropy = entropy12()) {
|
|
26
32
|
return concat([zeroAddress, entropy]); // zero prefix + 12 bytes
|
|
@@ -29,108 +35,183 @@ export function permissionlessSalt(entropy = entropy12()) {
|
|
|
29
35
|
export function saltGuard(salt) {
|
|
30
36
|
return getAddress(`0x${salt.slice(2, 42)}`);
|
|
31
37
|
}
|
|
38
|
+
/** The chain id a `PublicClient` is bound to — `makePublicClient` always sets `.chain`, but a
|
|
39
|
+
* caller-constructed one might not, so fall back to the live read rather than assume. */
|
|
40
|
+
async function chainIdOf(publicClient) {
|
|
41
|
+
return publicClient.chain?.id ?? (await publicClient.getChainId());
|
|
42
|
+
}
|
|
32
43
|
/**
|
|
33
44
|
* Deploy the canonical clone factory — the trust anchor. Ownerless and immutable;
|
|
34
45
|
* once deployed, its address is what platforms allowlist. Deploy this once per
|
|
35
46
|
* (chain, core version) and reuse it for every clone.
|
|
36
47
|
*/
|
|
37
|
-
export async function deployFactory(
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const factory =
|
|
48
|
+
export async function deployFactory(send, publicClient) {
|
|
49
|
+
const chainId = await chainIdOf(publicClient);
|
|
50
|
+
// OneOfOneImage links AbxMetadataLib since the metadata field store was externalized. These two
|
|
51
|
+
// factories linked NOTHING before, so this leg is new here rather than merely reordered —
|
|
52
|
+
// and without it the factory deploys against an unresolved placeholder.
|
|
53
|
+
const metadataLib = await ensureMetadataLib(send, publicClient, chainId, 'OneOfOneImage');
|
|
54
|
+
// CREATE2 via the keyless proxy: the tx targets the PROXY, so it is a call, not a contract
|
|
55
|
+
// creation, and `receipt.contractAddress` is null by protocol. Compute the address instead —
|
|
56
|
+
// the same thing `deployRenderer` and every newer factory bootstrap here already do. Reading
|
|
57
|
+
// the receipt made the first bootstrap on a fresh chain always throw AFTER the factory had
|
|
58
|
+
// actually landed, so `--bootstrap-factory` appeared broken while a second run "fixed" it.
|
|
59
|
+
const factory = predictFactory();
|
|
60
|
+
const receipt = await send(prepareDeployFactory({ chainId }));
|
|
49
61
|
const implementation = (await publicClient.readContract({
|
|
50
62
|
address: factory,
|
|
51
63
|
abi: oneOfOneImageFactoryAbi,
|
|
52
64
|
functionName: 'implementation',
|
|
53
65
|
}));
|
|
54
|
-
return { factory, implementation, txHash, blockNumber: receipt.blockNumber };
|
|
66
|
+
return { factory, implementation, metadataLib, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
|
|
55
67
|
}
|
|
56
68
|
/**
|
|
57
69
|
* Deploy the canonical Series clone factory — the trust anchor for multi-token drops.
|
|
58
70
|
* Ownerless and immutable; the sibling of `deployFactory`. Deploy once per (chain, core
|
|
59
71
|
* version). The shared renderer + chunk store are reused (deploy them separately).
|
|
60
72
|
*/
|
|
61
|
-
export async function deploySeriesFactory(
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
const receipt = await
|
|
70
|
-
if (!receipt.contractAddress)
|
|
71
|
-
throw new Error('Series factory deploy produced no contract address');
|
|
72
|
-
const factory = receipt.contractAddress;
|
|
73
|
+
export async function deploySeriesFactory(send, publicClient) {
|
|
74
|
+
const chainId = await chainIdOf(publicClient);
|
|
75
|
+
// SeriesImage links AbxMetadataLib since the metadata field store was externalized. These two
|
|
76
|
+
// factories linked NOTHING before, so this leg is new here rather than merely reordered —
|
|
77
|
+
// and without it the factory deploys against an unresolved placeholder.
|
|
78
|
+
const metadataLib = await ensureMetadataLib(send, publicClient, chainId, 'SeriesImage');
|
|
79
|
+
// Deterministic address, not a receipt read — see `deployFactory` for why the receipt is null.
|
|
80
|
+
const factory = predictSeriesFactory();
|
|
81
|
+
const receipt = await send(prepareDeploySeriesFactory({ chainId }));
|
|
73
82
|
const implementation = (await publicClient.readContract({
|
|
74
83
|
address: factory,
|
|
75
84
|
abi: seriesImageFactoryAbi,
|
|
76
85
|
functionName: 'implementation',
|
|
77
86
|
}));
|
|
78
|
-
return { factory, implementation, txHash, blockNumber: receipt.blockNumber };
|
|
87
|
+
return { factory, implementation, metadataLib, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
|
|
79
88
|
}
|
|
80
|
-
/**
|
|
81
|
-
|
|
82
|
-
|
|
89
|
+
/**
|
|
90
|
+
* CREATE2-deploy one write-path library through the keyless proxy at its canonical salt — the TS
|
|
91
|
+
* twin of `DeployLibraries.s.sol`, so an SDK-bootstrapped chain and a forge-bootstrapped chain put
|
|
92
|
+
* the library at the SAME address, and every chain agrees with every other.
|
|
93
|
+
*
|
|
94
|
+
* Idempotent out of necessity, not politeness: the proxy reverts when the target address already
|
|
95
|
+
* has code, so a chain that forge (or an earlier bootstrap) already set up must be detected and
|
|
96
|
+
* reused rather than re-deployed. That is also what makes a partially-bootstrapped chain
|
|
97
|
+
* recoverable — re-running finishes the job instead of failing on step one.
|
|
98
|
+
*/
|
|
99
|
+
async function ensureLibrary(send, publicClient, args) {
|
|
100
|
+
const address = predictCreate2Address(args.salt, args.bytecode);
|
|
101
|
+
const code = await publicClient.getCode({ address });
|
|
102
|
+
if (code && code !== '0x')
|
|
103
|
+
return address; // already on this chain (forge, or an earlier bootstrap)
|
|
104
|
+
await send({
|
|
105
|
+
op: args.op,
|
|
106
|
+
to: CREATE2_PROXY,
|
|
107
|
+
data: create2Calldata(args.salt, args.bytecode),
|
|
108
|
+
value: '0x0',
|
|
109
|
+
chainId: args.chainId,
|
|
110
|
+
summary: args.summary,
|
|
111
|
+
fields: { address },
|
|
112
|
+
});
|
|
113
|
+
return address;
|
|
114
|
+
}
|
|
115
|
+
// The three write-path library legs, one wrapper each over {@link ensureLibrary}. Named rather than
|
|
116
|
+
// inlined per factory because FOUR of ABX's six factories are library-linked and each links a
|
|
117
|
+
// different subset: SeriesCodeFactory {params, code}, EditionCodeFactory {params, code, edition},
|
|
118
|
+
// OneOfOneEditionFactory + EditionImageFactory {params, edition} (params because AbxEditionLib
|
|
119
|
+
// itself delegatecalls it). A factory bootstrap composes the legs it needs, in order; whichever
|
|
120
|
+
// legs another bootstrap already ran are reused from chain, never redeployed.
|
|
121
|
+
/** `AbxMetadataLib` at its canonical salt — the metadata field store that ALL SIX token types
|
|
122
|
+
* delegatecall. It links nothing itself, so it can be deployed first and unconditionally; every
|
|
123
|
+
* factory bootstrap needs it, including the two ERC-721 image ones that linked nothing before. */
|
|
124
|
+
const ensureMetadataLib = (send, publicClient, chainId, forWhom) => ensureLibrary(send, publicClient, {
|
|
125
|
+
op: 'deploy-metadata-lib',
|
|
126
|
+
salt: ABX_SALT.metadataLib,
|
|
127
|
+
bytecode: abxMetadataLibBytecode,
|
|
128
|
+
chainId,
|
|
129
|
+
summary: `Deploy AbxMetadataLib (${forWhom} metadata field store, CREATE2 — deterministic address)`,
|
|
130
|
+
});
|
|
131
|
+
/** `AbxParamsLib` at its canonical salt — the params write path, and `AbxEditionLib`'s own dependency. */
|
|
132
|
+
const ensureParamsLib = (send, publicClient, chainId, forWhom) => ensureLibrary(send, publicClient, {
|
|
133
|
+
op: 'deploy-params-lib',
|
|
134
|
+
salt: ABX_SALT.paramsLib,
|
|
135
|
+
bytecode: abxParamsLibBytecode,
|
|
136
|
+
chainId,
|
|
137
|
+
summary: `Deploy AbxParamsLib (${forWhom} write-path library, CREATE2 — deterministic address)`,
|
|
138
|
+
});
|
|
139
|
+
/** `AbxCodeLib` at its canonical salt — the script/code write path of the two code token types. */
|
|
140
|
+
const ensureCodeLib = (send, publicClient, chainId, forWhom) => ensureLibrary(send, publicClient, {
|
|
141
|
+
op: 'deploy-code-lib',
|
|
142
|
+
salt: ABX_SALT.codeLib,
|
|
143
|
+
bytecode: abxCodeLibBytecode,
|
|
144
|
+
chainId,
|
|
145
|
+
summary: `Deploy AbxCodeLib (${forWhom} write-path library, CREATE2 — deterministic address)`,
|
|
146
|
+
});
|
|
147
|
+
/** `AbxEditionLib` at its canonical salt — the 1155 uri / creator-token / edition-supply write path
|
|
148
|
+
* that ALL THREE edition token types delegatecall. Must be called after {@link ensureParamsLib}:
|
|
149
|
+
* this library's own bytecode delegatecalls `AbxParamsLib`, so `linkEditionLib()` — and therefore
|
|
150
|
+
* the address it lands at — is a function of `predictParamsLib()`. Deploying it raw is the opaque
|
|
151
|
+
* `Invalid byte sequence` bug; `__$…$__` is not hex. */
|
|
152
|
+
const ensureEditionLib = (send, publicClient, chainId, forWhom) => ensureLibrary(send, publicClient, {
|
|
153
|
+
op: 'deploy-edition-lib',
|
|
154
|
+
salt: ABX_SALT.editionLib,
|
|
155
|
+
bytecode: linkEditionLib(),
|
|
156
|
+
chainId,
|
|
157
|
+
summary: `Deploy AbxEditionLib (${forWhom} write-path library, CREATE2 — deterministic address)`,
|
|
158
|
+
});
|
|
159
|
+
/** Guard the one failure mode a CREATE2 deploy has: the address is already taken (the keyless proxy
|
|
160
|
+
* reverts, with nothing useful in the revert data). Says so in words instead. */
|
|
161
|
+
async function assertVacant(publicClient, what, address, chainId) {
|
|
162
|
+
const code = await publicClient.getCode({ address });
|
|
163
|
+
if (code && code !== '0x') {
|
|
164
|
+
throw new Error(`${what} is already deployed at its canonical address ${address} on chain ${chainId} — resolve it instead of deploying (CREATE2 cannot redeploy to an occupied address)`);
|
|
165
|
+
}
|
|
83
166
|
}
|
|
84
167
|
/**
|
|
85
|
-
* Deploy the code-project trust root on a chain with no canonical set: the two
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
168
|
+
* Deploy the code-project trust root on a chain with no canonical set: the two delegatecalled
|
|
169
|
+
* write-path libraries first ({AbxParamsLib}, {AbxCodeLib}), the factory bytecode LINKED against
|
|
170
|
+
* them (solc placeholders replaced — what forge does at build time, done here so a sandbox/fresh
|
|
171
|
+
* chain needs no forge), then the factory (whose constructor deploys the {SeriesCode}
|
|
172
|
+
* implementation).
|
|
173
|
+
*
|
|
174
|
+
* All three go through the keyless CREATE2 proxy at canonical `AbxSalts` salts, so all three land at
|
|
175
|
+
* addresses that are the same on every chain and computable before the first transaction — the
|
|
176
|
+
* factory's included: linking substitutes an address into already-compiled bytecode, so once the
|
|
177
|
+
* libraries are predictable the linked initcode is fixed too (`predictSeriesCodeFactory()`). The
|
|
178
|
+
* ordering below is still sequential, but now for a plain data-dependency reason rather than a
|
|
179
|
+
* nonce one. See `create2.ts`'s write-path-library note for why the old "libraries are
|
|
180
|
+
* nonce-dependent" story was wrong, and for the compile-time-linking trap that IS real.
|
|
90
181
|
*/
|
|
91
|
-
export async function deploySeriesCodeFactory(
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
const txHash = await wallet.deployContract({ abi: seriesCodeFactoryAbi, bytecode: linked, account, chain: wallet.chain, args: [] });
|
|
109
|
-
const receipt = await publicClient.waitForTransactionReceipt({ hash: txHash });
|
|
110
|
-
if (!receipt.contractAddress)
|
|
111
|
-
throw new Error('SeriesCodeFactory deploy produced no contract address');
|
|
112
|
-
const factory = receipt.contractAddress;
|
|
182
|
+
export async function deploySeriesCodeFactory(send, publicClient) {
|
|
183
|
+
const chainId = await chainIdOf(publicClient);
|
|
184
|
+
const metadataLib = await ensureMetadataLib(send, publicClient, chainId, 'SeriesCode');
|
|
185
|
+
const paramsLib = await ensureParamsLib(send, publicClient, chainId, 'SeriesCode');
|
|
186
|
+
const codeLib = await ensureCodeLib(send, publicClient, chainId, 'SeriesCode');
|
|
187
|
+
const linked = linkSeriesCodeFactory();
|
|
188
|
+
const factory = predictSeriesCodeFactory();
|
|
189
|
+
await assertVacant(publicClient, 'SeriesCodeFactory', factory, chainId);
|
|
190
|
+
const receipt = await send({
|
|
191
|
+
op: 'deploy-series-code-factory',
|
|
192
|
+
to: CREATE2_PROXY,
|
|
193
|
+
data: create2Calldata(ABX_SALT.seriesCodeFactory, linked),
|
|
194
|
+
value: '0x0',
|
|
195
|
+
chainId,
|
|
196
|
+
summary: 'Deploy the SeriesCode clone factory (trust anchor), linked against AbxParamsLib/AbxCodeLib',
|
|
197
|
+
fields: { factory, metadataLib, paramsLib, codeLib },
|
|
198
|
+
});
|
|
113
199
|
const implementation = (await publicClient.readContract({
|
|
114
200
|
address: factory,
|
|
115
201
|
abi: seriesCodeFactoryAbi,
|
|
116
202
|
functionName: 'implementation',
|
|
117
203
|
}));
|
|
118
|
-
return { factory, implementation, paramsLib, codeLib, txHash, blockNumber: receipt.blockNumber };
|
|
204
|
+
return { factory, implementation, metadataLib, paramsLib, codeLib, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
|
|
119
205
|
}
|
|
120
206
|
/** Deploy the canonical pseudorandom seed source (for chains without one shipped). CREATE2 via the
|
|
121
207
|
* keyless proxy + canonical salt → the SAME address on every chain (matches `DeploySeedSource.s.sol`
|
|
122
208
|
* and the manifest). The seed source is single-profile, so — unlike the SeriesCode factory — the
|
|
123
209
|
* SDK's bytecode is the canonical one. */
|
|
124
|
-
export async function deploySeedSource(
|
|
125
|
-
const
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
to: CREATE2_PROXY,
|
|
130
|
-
data: create2Calldata(ABX_SALT.seedSource, abxSeedSourceBytecode),
|
|
131
|
-
});
|
|
132
|
-
await publicClient.waitForTransactionReceipt({ hash: txHash });
|
|
133
|
-
return { seedSource, txHash };
|
|
210
|
+
export async function deploySeedSource(send, publicClient) {
|
|
211
|
+
const chainId = await chainIdOf(publicClient);
|
|
212
|
+
const seedSource = predictSeedSource();
|
|
213
|
+
const receipt = await send(prepareDeploySeedSource({ chainId }));
|
|
214
|
+
return { seedSource, txHash: receipt.transactionHash };
|
|
134
215
|
}
|
|
135
216
|
/**
|
|
136
217
|
* Deploy `AbxMetadataRenderer` — the canonical on-chain metadata renderer.
|
|
@@ -138,24 +219,19 @@ export async function deploySeedSource(wallet, account, publicClient) {
|
|
|
138
219
|
* their URI-renderer config. It reads each token's on-chain fields and returns a
|
|
139
220
|
* `data:application/json` URI, so a token using it resolves with zero off-chain infra.
|
|
140
221
|
*/
|
|
141
|
-
export async function deployRenderer(
|
|
222
|
+
export async function deployRenderer(send, publicClient) {
|
|
142
223
|
// CREATE2 via the keyless proxy + canonical salt → the SAME address on every chain (matches the
|
|
143
224
|
// forge `DeployRenderer` script and the manifest). Address is deterministic, so compute it (the
|
|
144
225
|
// tx targets the proxy, not a contract creation, so `receipt.contractAddress` is null).
|
|
145
|
-
const
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
chain: wallet.chain,
|
|
149
|
-
to: CREATE2_PROXY,
|
|
150
|
-
data: create2Calldata(ABX_SALT.renderer, abxMetadataRendererBytecode),
|
|
151
|
-
});
|
|
152
|
-
const receipt = await publicClient.waitForTransactionReceipt({ hash: txHash });
|
|
226
|
+
const chainId = await chainIdOf(publicClient);
|
|
227
|
+
const renderer = predictRenderer();
|
|
228
|
+
const receipt = await send(prepareDeployRenderer({ chainId }));
|
|
153
229
|
const specVersion = (await publicClient.readContract({
|
|
154
230
|
address: renderer,
|
|
155
231
|
abi: abxMetadataRendererAbi,
|
|
156
232
|
functionName: 'specVersion',
|
|
157
233
|
}));
|
|
158
|
-
return { renderer, specVersion, txHash, blockNumber: receipt.blockNumber };
|
|
234
|
+
return { renderer, specVersion, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
|
|
159
235
|
}
|
|
160
236
|
/**
|
|
161
237
|
* Deploy `AbxFixedPriceMinter` — the canonical, ownerless, multi-tenant fixed-price sale
|
|
@@ -163,18 +239,13 @@ export async function deployRenderer(wallet, account, publicClient) {
|
|
|
163
239
|
* (config is keyed by token address, authority defers to each token's owner). Sibling of
|
|
164
240
|
* `deployRenderer` — ownerless, no constructor args, safe for any funded signer to stand up.
|
|
165
241
|
*/
|
|
166
|
-
export async function deployFixedPriceMinter(
|
|
242
|
+
export async function deployFixedPriceMinter(send, publicClient) {
|
|
167
243
|
// CREATE2 via the keyless proxy + canonical salt → the SAME address on every chain (matches the
|
|
168
244
|
// forge `DeployMinter` script and the manifest). Address is deterministic, so compute it.
|
|
169
|
-
const
|
|
170
|
-
const
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
to: CREATE2_PROXY,
|
|
174
|
-
data: create2Calldata(ABX_SALT.fixedPriceMinter, abxFixedPriceMinterBytecode),
|
|
175
|
-
});
|
|
176
|
-
const receipt = await publicClient.waitForTransactionReceipt({ hash: txHash });
|
|
177
|
-
return { minter, txHash, blockNumber: receipt.blockNumber };
|
|
245
|
+
const chainId = await chainIdOf(publicClient);
|
|
246
|
+
const minter = predictFixedPriceMinter();
|
|
247
|
+
const receipt = await send(prepareDeployFixedPriceMinter({ chainId }));
|
|
248
|
+
return { minter, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
|
|
178
249
|
}
|
|
179
250
|
/**
|
|
180
251
|
* The address `deployOneOfOne` will produce for this (factory, salt). It's a pure
|
|
@@ -195,18 +266,11 @@ export async function predictClone(publicClient, args) {
|
|
|
195
266
|
* address (so URIs can be baked in before deploy). Returns the clone address and
|
|
196
267
|
* the block it landed in — the indexer's start block.
|
|
197
268
|
*/
|
|
198
|
-
export async function deployOneOfOne(
|
|
269
|
+
export async function deployOneOfOne(send, publicClient, args) {
|
|
199
270
|
const clone = await predictClone(publicClient, { factory: args.factory, salt: args.salt });
|
|
200
|
-
const
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
functionName: 'deployDeterministic',
|
|
204
|
-
args: [args.params, args.salt],
|
|
205
|
-
account,
|
|
206
|
-
});
|
|
207
|
-
const txHash = await wallet.writeContract(request);
|
|
208
|
-
const receipt = await publicClient.waitForTransactionReceipt({ hash: txHash });
|
|
209
|
-
return { clone, txHash, blockNumber: receipt.blockNumber };
|
|
271
|
+
const chainId = await chainIdOf(publicClient);
|
|
272
|
+
const receipt = await send(prepareDeployOneOfOne({ factory: args.factory, params: args.params, salt: args.salt, chainId, clone }));
|
|
273
|
+
return { clone, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
|
|
210
274
|
}
|
|
211
275
|
/**
|
|
212
276
|
* Deploy a Series (multi-token) NFT as an immutable EIP-1167 clone, at a deterministic
|
|
@@ -215,17 +279,131 @@ export async function deployOneOfOne(wallet, account, publicClient, args) {
|
|
|
215
279
|
* computes with its own implementation. `params.mintCount`/`mintTo` decide the deploy-time
|
|
216
280
|
* mint; anything larger mints post-deploy under a gas budget.
|
|
217
281
|
*/
|
|
218
|
-
export async function deploySeries(
|
|
282
|
+
export async function deploySeries(send, publicClient, args) {
|
|
219
283
|
const clone = await predictClone(publicClient, { factory: args.factory, salt: args.salt });
|
|
220
|
-
const
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
284
|
+
const chainId = await chainIdOf(publicClient);
|
|
285
|
+
const receipt = await send(prepareDeploySeries({ factory: args.factory, params: args.params, salt: args.salt, chainId, clone }));
|
|
286
|
+
return { clone, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
|
|
287
|
+
}
|
|
288
|
+
// ── ERC-1155 editions ──────────────────────────────────────────────────────────
|
|
289
|
+
/**
|
|
290
|
+
* Deploy the canonical `OneOfOneEditionFactory` — the 1/1-edition trust anchor. Unlike {@link
|
|
291
|
+
* deployFactory} (the 721 1/1 factory, a plain contract creation), this one goes through the
|
|
292
|
+
* keyless CREATE2 proxy with the canonical `AbxSalts.ONE_OF_ONE_EDITION_FACTORY` salt — matching
|
|
293
|
+
* how `contracts/script/DeployOneOfOneEdition.s.sol` actually deploys it — so its address is the
|
|
294
|
+
* SAME on every chain and predictable before the deploy tx (`predictOneOfOneEditionFactory()`).
|
|
295
|
+
*
|
|
296
|
+
* Library-linked, like the two code factories: `OneOfOneEdition` delegates its uri /
|
|
297
|
+
* creator-token / edition-supply bodies into `AbxEditionLib`, so this deploys `AbxParamsLib` +
|
|
298
|
+
* `AbxEditionLib` first ({@link ensureEditionLibraries}) and sends the factory's initcode LINKED
|
|
299
|
+
* against the settled library address. Linking costs nothing in determinism — see `create2.ts`'s
|
|
300
|
+
* write-path-library note.
|
|
301
|
+
*/
|
|
302
|
+
export async function deployOneOfOneEditionFactory(send, publicClient) {
|
|
303
|
+
const chainId = await chainIdOf(publicClient);
|
|
304
|
+
const metadataLib = await ensureMetadataLib(send, publicClient, chainId, 'OneOfOneEdition');
|
|
305
|
+
const paramsLib = await ensureParamsLib(send, publicClient, chainId, 'OneOfOneEdition');
|
|
306
|
+
const editionLib = await ensureEditionLib(send, publicClient, chainId, 'OneOfOneEdition');
|
|
307
|
+
const factory = predictOneOfOneEditionFactory();
|
|
308
|
+
await assertVacant(publicClient, 'OneOfOneEditionFactory', factory, chainId);
|
|
309
|
+
const receipt = await send(prepareDeployOneOfOneEditionFactory({ chainId }));
|
|
310
|
+
const implementation = (await publicClient.readContract({
|
|
311
|
+
address: factory,
|
|
312
|
+
abi: oneOfOneEditionFactoryAbi,
|
|
313
|
+
functionName: 'implementation',
|
|
314
|
+
}));
|
|
315
|
+
return { factory, implementation, metadataLib, paramsLib, editionLib, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
|
|
316
|
+
}
|
|
317
|
+
/** Deploy the canonical `EditionImageFactory` — the multi-work edition trust anchor. CREATE2
|
|
318
|
+
* via the keyless proxy + the canonical `AbxSalts.EDITION_FACTORY` salt (see {@link
|
|
319
|
+
* deployOneOfOneEditionFactory}'s doc note on why this differs from the 721 series factory's
|
|
320
|
+
* plain-creation bootstrap, and why `AbxEditionLib` has to land first). */
|
|
321
|
+
export async function deployEditionFactory(send, publicClient) {
|
|
322
|
+
const chainId = await chainIdOf(publicClient);
|
|
323
|
+
const metadataLib = await ensureMetadataLib(send, publicClient, chainId, 'EditionImage');
|
|
324
|
+
const paramsLib = await ensureParamsLib(send, publicClient, chainId, 'EditionImage');
|
|
325
|
+
const editionLib = await ensureEditionLib(send, publicClient, chainId, 'EditionImage');
|
|
326
|
+
const factory = predictEditionFactory();
|
|
327
|
+
await assertVacant(publicClient, 'EditionImageFactory', factory, chainId);
|
|
328
|
+
const receipt = await send(prepareDeployEditionFactory({ chainId }));
|
|
329
|
+
const implementation = (await publicClient.readContract({
|
|
330
|
+
address: factory,
|
|
331
|
+
abi: editionImageFactoryAbi,
|
|
332
|
+
functionName: 'implementation',
|
|
333
|
+
}));
|
|
334
|
+
return { factory, implementation, metadataLib, paramsLib, editionLib, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
|
|
335
|
+
}
|
|
336
|
+
/** Deploy `AbxFixedPriceMinter1155` — the canonical, ownerless, multi-tenant edition sale
|
|
337
|
+
* singleton (the Minter spine's edition lane). Sibling of `deployFixedPriceMinter`, one id
|
|
338
|
+
* finer at the contract level (`(token, id)`-keyed sales) — the deploy itself is identical in
|
|
339
|
+
* shape: CREATE2 via the keyless proxy + canonical salt. */
|
|
340
|
+
export async function deployFixedPriceMinter1155(send, publicClient) {
|
|
341
|
+
const chainId = await chainIdOf(publicClient);
|
|
342
|
+
const minter = predictFixedPriceMinter1155();
|
|
343
|
+
const receipt = await send(prepareDeployFixedPriceMinter1155({ chainId }));
|
|
344
|
+
return { minter, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Deploy a 1/1 edition NFT as an immutable EIP-1167 clone, at a deterministic address. The
|
|
348
|
+
* edition twin of `deployOneOfOne` — `predictClone` works unchanged (the
|
|
349
|
+
* `predictDeterministicAddress` fragment is identical across every factory, 721 or 1155).
|
|
350
|
+
*/
|
|
351
|
+
export async function deployOneOfOneEdition(send, publicClient, args) {
|
|
352
|
+
const clone = await predictClone(publicClient, { factory: args.factory, salt: args.salt });
|
|
353
|
+
const chainId = await chainIdOf(publicClient);
|
|
354
|
+
const receipt = await send(prepareDeployOneOfOneEdition({ factory: args.factory, params: args.params, salt: args.salt, chainId, clone }));
|
|
355
|
+
return { clone, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Deploy an EditionImage (multi-work edition) NFT as an immutable EIP-1167 clone, at a
|
|
359
|
+
* deterministic address. The edition twin of `deploySeries`.
|
|
360
|
+
*/
|
|
361
|
+
export async function deployEditionImage(send, publicClient, args) {
|
|
362
|
+
const clone = await predictClone(publicClient, { factory: args.factory, salt: args.salt });
|
|
363
|
+
const chainId = await chainIdOf(publicClient);
|
|
364
|
+
const receipt = await send(prepareDeployEditionImage({ factory: args.factory, params: args.params, salt: args.salt, chainId, clone }));
|
|
365
|
+
return { clone, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Deploy the code-project edition trust root on a chain with no canonical set: the THREE
|
|
369
|
+
* delegatecalled write-path libraries first ({AbxParamsLib}, {AbxCodeLib}, {AbxEditionLib} — the
|
|
370
|
+
* edition twin of `deploySeriesCodeFactory`'s two-lib dance, plus the 1155 write path {@link
|
|
371
|
+
* deployOneOfOneEditionFactory} and {@link deployEditionFactory} link too), the factory bytecode
|
|
372
|
+
* LINKED against all three, then the factory (whose constructor deploys the {EditionCode}
|
|
373
|
+
* implementation). CREATE2 at canonical `AbxSalts` salts throughout, exactly like
|
|
374
|
+
* {@link deploySeriesCodeFactory}, so the whole set is cross-chain-identical and predictable
|
|
375
|
+
* (`predictEditionCodeFactory()`). This is the only factory linking all three libraries; it is NOT
|
|
376
|
+
* the only one linking {AbxEditionLib} — all three 1155 token types delegate into it.
|
|
377
|
+
*
|
|
378
|
+
* One wrinkle the 721 twin doesn't have: {AbxEditionLib} delegatecalls {AbxParamsLib}, so its OWN
|
|
379
|
+
* shipped bytecode carries an unlinked placeholder and has to be linked before it can be deployed
|
|
380
|
+
* ({@link ensureEditionLib} does this via `linkEditionLib()`). Deploying it raw is what made this
|
|
381
|
+
* function fail with an opaque `Invalid byte sequence` — `__$…$__` is not hex, and the old
|
|
382
|
+
* unlinked-placeholder guard only checked the factory's bytecode, never the library's.
|
|
383
|
+
*/
|
|
384
|
+
export async function deployEditionCodeFactory(send, publicClient) {
|
|
385
|
+
const chainId = await chainIdOf(publicClient);
|
|
386
|
+
const metadataLib = await ensureMetadataLib(send, publicClient, chainId, 'EditionCode');
|
|
387
|
+
const paramsLib = await ensureParamsLib(send, publicClient, chainId, 'EditionCode');
|
|
388
|
+
const codeLib = await ensureCodeLib(send, publicClient, chainId, 'EditionCode');
|
|
389
|
+
const editionLib = await ensureEditionLib(send, publicClient, chainId, 'EditionCode');
|
|
390
|
+
const linked = linkEditionCodeFactory();
|
|
391
|
+
const factory = predictEditionCodeFactory();
|
|
392
|
+
await assertVacant(publicClient, 'EditionCodeFactory', factory, chainId);
|
|
393
|
+
const receipt = await send({
|
|
394
|
+
op: 'deploy-edition-code-factory',
|
|
395
|
+
to: CREATE2_PROXY,
|
|
396
|
+
data: create2Calldata(ABX_SALT.editionCodeFactory, linked),
|
|
397
|
+
value: '0x0',
|
|
398
|
+
chainId,
|
|
399
|
+
summary: 'Deploy the EditionCode clone factory (trust anchor), linked against AbxParamsLib/AbxCodeLib/AbxEditionLib',
|
|
400
|
+
fields: { factory, metadataLib, paramsLib, codeLib, editionLib },
|
|
226
401
|
});
|
|
227
|
-
const
|
|
228
|
-
|
|
229
|
-
|
|
402
|
+
const implementation = (await publicClient.readContract({
|
|
403
|
+
address: factory,
|
|
404
|
+
abi: editionCodeFactoryAbi,
|
|
405
|
+
functionName: 'implementation',
|
|
406
|
+
}));
|
|
407
|
+
return { factory, implementation, metadataLib, paramsLib, codeLib, editionLib, txHash: receipt.transactionHash, blockNumber: receipt.blockNumber };
|
|
230
408
|
}
|
|
231
409
|
//# sourceMappingURL=deploy.js.map
|
package/dist/deploy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"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"}
|
package/dist/deployments.d.ts
CHANGED
|
@@ -36,7 +36,66 @@ export interface ChainDeployment {
|
|
|
36
36
|
fixedPriceMinter?: Address;
|
|
37
37
|
seedSource?: Address;
|
|
38
38
|
generator?: Address;
|
|
39
|
+
oneOfOneEditionFactory?: Address;
|
|
40
|
+
editionFactory?: Address;
|
|
41
|
+
editionCodeFactory?: Address;
|
|
42
|
+
fixedPriceMinter1155?: Address;
|
|
43
|
+
metadataLib?: Address;
|
|
44
|
+
paramsLib?: Address;
|
|
45
|
+
codeLib?: Address;
|
|
46
|
+
editionLib?: Address;
|
|
39
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* One generation of the six trust anchors — a single redeploy batch of the token layer.
|
|
50
|
+
*
|
|
51
|
+
* **Identified by the on-chain core version**, and that choice is the whole design. `abxVersion()`
|
|
52
|
+
* is on every clone and in its `AbxDeployed` beacon, so a collection can say what it is by reading
|
|
53
|
+
* *itself* — which keeps working after its factory is retired, and cannot be an assertion our
|
|
54
|
+
* manifest makes on a contract's behalf. The alternative (a semver label we mint here) would be a
|
|
55
|
+
* third version dial next to core v2 and renderer spec v11, and unverifiable.
|
|
56
|
+
*
|
|
57
|
+
* The invariant that makes the identity work — **one core version, one anchor generation** — is a
|
|
58
|
+
* step in the redeploy checklist (`contracts/README.md`) and is enforced by `deployments.test.ts`:
|
|
59
|
+
* the recorded generations must have unique, increasing `coreVersion`s, and the newest must match
|
|
60
|
+
* `AbxVersion.CORE_VERSION` in the contracts. A batch that forgets to bump fails the suite instead
|
|
61
|
+
* of shipping two generations that both claim to be v2.
|
|
62
|
+
*
|
|
63
|
+
* Not backfilled. The generations that preceded this one were testnet-only and are deliberately
|
|
64
|
+
* unenumerated (greenfield: a pre-launch collection re-registers or redeploys, and reads as
|
|
65
|
+
* not-canonical until it does). The shape ships now so the *forward* answer exists from the first
|
|
66
|
+
* batch that retires one.
|
|
67
|
+
*/
|
|
68
|
+
export interface AnchorGeneration {
|
|
69
|
+
/** The core spec version clones of this generation report as `abxVersion()`. */
|
|
70
|
+
coreVersion: number;
|
|
71
|
+
/** ISO date the batch went live on chain (same date on every chain — CREATE2). */
|
|
72
|
+
deployed: string;
|
|
73
|
+
/** ISO date it was superseded. Absent ⇒ this is the current generation. */
|
|
74
|
+
retired?: string;
|
|
75
|
+
/** The six trust anchors, and nothing else. Never libraries or shared singletons. */
|
|
76
|
+
factories: {
|
|
77
|
+
factory: Address;
|
|
78
|
+
seriesFactory: Address;
|
|
79
|
+
seriesCodeFactory: Address;
|
|
80
|
+
oneOfOneEditionFactory: Address;
|
|
81
|
+
editionFactory: Address;
|
|
82
|
+
editionCodeFactory: Address;
|
|
83
|
+
};
|
|
84
|
+
/** What this generation is, for a human reading a provenance answer. Never dispatched on. */
|
|
85
|
+
note?: string;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Every anchor generation, newest first. `[0]` is current (no `retired` date).
|
|
89
|
+
*
|
|
90
|
+
* The addresses are *referenced* from {@link CANONICAL} rather than re-typed, so the current
|
|
91
|
+
* generation cannot drift from the live record — there is one literal per address in this file. When
|
|
92
|
+
* a batch retires this generation, its six literals move into a new entry below (the only place a
|
|
93
|
+
* superseded anchor is allowed to appear), it gains a `retired` date, and the new batch takes the
|
|
94
|
+
* live record. See {@link AnchorGeneration} for why the core version is the identity.
|
|
95
|
+
*/
|
|
96
|
+
export declare const ANCHOR_GENERATIONS: readonly AnchorGeneration[];
|
|
97
|
+
/** The generation currently stamping clones — {@link ANCHOR_GENERATIONS}`[0]`, by construction. */
|
|
98
|
+
export declare function currentAnchorGeneration(): AnchorGeneration;
|
|
40
99
|
export declare const DEPLOYMENTS: Record<number, ChainDeployment>;
|
|
41
100
|
/** The canonical deployment record for a chain (empty if the chain isn't shipped yet). */
|
|
42
101
|
export declare function getDeployment(chainId: number): ChainDeployment;
|
|
@@ -47,6 +106,10 @@ export declare function resolveChunkStore(chainId: number, override?: string): A
|
|
|
47
106
|
export declare function resolveFixedPriceMinter(chainId: number, override?: string): Address | undefined;
|
|
48
107
|
export declare function resolveSeriesCodeFactory(chainId: number, override?: string): Address | undefined;
|
|
49
108
|
export declare function resolveSeedSource(chainId: number, override?: string): Address | undefined;
|
|
109
|
+
export declare function resolveOneOfOneEditionFactory(chainId: number, override?: string): Address | undefined;
|
|
110
|
+
export declare function resolveEditionFactory(chainId: number, override?: string): Address | undefined;
|
|
111
|
+
export declare function resolveEditionCodeFactory(chainId: number, override?: string): Address | undefined;
|
|
112
|
+
export declare function resolveFixedPriceMinter1155(chainId: number, override?: string): Address | undefined;
|
|
50
113
|
export declare function resolveGenerator(chainId: number, override?: string): Address | undefined;
|
|
51
114
|
/**
|
|
52
115
|
* The known `name@version` resolution roots per chain — Art Blocks' DependencyRegistryV0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployments.d.ts","sourceRoot":"","sources":["../src/deployments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"deployments.d.ts","sourceRoot":"","sources":["../src/deployments.ts"],"names":[],"mappings":"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"}
|