@artblocks/abx-sdk 0.1.0-alpha.7 → 0.1.0-alpha.9
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/dist/abi/generated.d.ts +424 -29
- package/dist/abi/generated.d.ts.map +1 -1
- package/dist/abi/generated.js +14 -14
- package/dist/abi/generated.js.map +1 -1
- package/dist/abi/index.d.ts +122 -29
- package/dist/abi/index.d.ts.map +1 -1
- package/dist/creator-token.d.ts +65 -0
- package/dist/creator-token.d.ts.map +1 -0
- package/dist/creator-token.js +93 -0
- package/dist/creator-token.js.map +1 -0
- package/dist/deploy.d.ts +10 -0
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js.map +1 -1
- package/dist/deployments.d.ts.map +1 -1
- package/dist/deployments.js +12 -5
- package/dist/deployments.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/reconstruct.d.ts +11 -0
- package/dist/reconstruct.d.ts.map +1 -1
- package/dist/reconstruct.js +103 -40
- package/dist/reconstruct.js.map +1 -1
- package/dist/tokens.d.ts +55 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +152 -0
- package/dist/tokens.js.map +1 -0
- package/package.json +1 -1
package/dist/deployments.js
CHANGED
|
@@ -6,15 +6,22 @@
|
|
|
6
6
|
* inline/reader `animation_url` as a `data:text/html;base64` URI; v3 added the artifacts manifest +
|
|
7
7
|
* authorship/rights contractURI fields). SeriesCode's delegatecalled write-path libraries are also
|
|
8
8
|
* CREATE2-deterministic and identical everywhere:
|
|
9
|
-
* AbxParamsLib
|
|
9
|
+
* AbxParamsLib 0xdC8FeEDabd8B6f4F7819FD96F3ea34b7c2470817 (v3, externalized read surface — B22
|
|
10
|
+
* step 1; replaced 0xE26bFde1835D8c9ba6cd66c3C4eAE1B47EDA6130 v2, which replaced
|
|
10
11
|
* 0x7DAa26bADD99812a77384B461b6375e0c04F2865), AbxCodeLib 0xCd12078E81A3BDEACdcd57AE390f4D59F832766B.
|
|
11
12
|
*/
|
|
12
13
|
const CANONICAL = {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
//
|
|
14
|
+
// 721C unit (2026-08-04): all three factories replaced — InitParams gained `transferValidator`
|
|
15
|
+
// (13 fields) and every token type composes the CreatorToken (ERC-721C) mixin. Projects deployed
|
|
16
|
+
// from the previous anchors keep working on their frozen implementations.
|
|
17
|
+
// replaced: factory 0xB9eEE39DB7D03E0b94CE403F69E928e2a5F134Ca (impl 0xf1F0893897CC19e75d829fa550a5228c5119cA39)
|
|
18
|
+
factory: '0xbc44F467083d0C10a843485876A839C239222605', // impl 0x76E856602EAEE8b9E41BF269BEfcE2B9d5EaFcA5
|
|
19
|
+
// replaced: seriesFactory 0x9d97C00100351682e6625961e033b6F43E60639A (impl 0x58D8b9F7ABa3043734cBeBfaa9c46875070E16ed)
|
|
20
|
+
seriesFactory: '0xA5B03A7CEc64E083523202d7264F03B2511baF75', // impl 0x38715c1cAedDAe6F445372cF4E8c79E92f8D6014
|
|
21
|
+
// replaced: seriesCodeFactory 0xADE45e2D5C45090b412008644867C737100F5503 (impl 0xd5f3db6418AA362e62431BC73B890632709fFfbB);
|
|
22
|
+
// the param-enumeration unit (2026-08-03) had replaced 0x77f61Ead461f368dbF3788EeFe9693bA5a73Bd87
|
|
16
23
|
// (impl 0xfd2034B6af517AD019f0dD7b007F07eF358D4053) — pre-enumeration projects stay on those.
|
|
17
|
-
seriesCodeFactory: '
|
|
24
|
+
seriesCodeFactory: '0x45bE6050553c96B6d4400f693DcB4eC595daF492', // impl 0xB505Eb888625dEC413F45F04824266485dd5e4E9
|
|
18
25
|
renderer: '0x65CB990249d11832b64Db5E3ceaC61f9104d803b', // spec v4; replaced 0x837A5cF907E7a6727B08acfE2A865F2bD5C50b1D (v3)
|
|
19
26
|
chunkStore: '0x03d3a962602093a937B96ee9C0b5C54cec3e701E',
|
|
20
27
|
fixedPriceMinter: '0xd970A2c936FFbb2130c2e4Ddf4245FF92465fEA5',
|
package/dist/deployments.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployments.js","sourceRoot":"","sources":["../src/deployments.ts"],"names":[],"mappings":"AAyCA
|
|
1
|
+
{"version":3,"file":"deployments.js","sourceRoot":"","sources":["../src/deployments.ts"],"names":[],"mappings":"AAyCA;;;;;;;;;;;GAWG;AACH,MAAM,SAAS,GAAG;IAChB,+FAA+F;IAC/F,iGAAiG;IACjG,0EAA0E;IAC1E,iHAAiH;IACjH,OAAO,EAAE,4CAA4C,EAAE,kDAAkD;IACzG,uHAAuH;IACvH,aAAa,EAAE,4CAA4C,EAAE,kDAAkD;IAC/G,4HAA4H;IAC5H,kGAAkG;IAClG,8FAA8F;IAC9F,iBAAiB,EAAE,4CAA4C,EAAE,kDAAkD;IACnH,QAAQ,EAAE,4CAA4C,EAAE,oEAAoE;IAC5H,UAAU,EAAE,4CAA4C;IACxD,gBAAgB,EAAE,4CAA4C;IAC9D,UAAU,EAAE,4CAA4C;CACH,CAAC;AAExD,MAAM,CAAC,MAAM,WAAW,GAAoC;IAC1D,2FAA2F;IAC3F,iGAAiG;IACjG,+EAA+E;IAC/E,sFAAsF;IACtF,uEAAuE;IACvE,QAAQ,EAAE;QACR,GAAG,SAAS;QACZ,SAAS,EAAE,4CAA4C;KACxD;IACD,gGAAgG;IAChG,4FAA4F;IAC5F,yGAAyG;IACzG,iGAAiG;IACjG,gFAAgF;IAChF,KAAK,EAAE;QACL,GAAG,SAAS;QACZ,SAAS,EAAE,4CAA4C;KACxD;CACF,CAAC;AAEF,0FAA0F;AAC1F,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACpC,CAAC;AAED,mFAAmF;AACnF,SAAS,IAAI,CAAC,QAA4B,EAAE,GAAuB,EAAE,QAA6B;IAChG,OAAO,CAAC,QAAQ,IAAI,GAAG,IAAI,QAAQ,CAAwB,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,QAAiB;IAC/D,OAAO,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,QAAiB;IACrE,OAAO,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,QAAiB;IAChE,OAAO,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,QAAiB;IAClE,OAAO,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,QAAiB;IACxE,OAAO,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC;AACrG,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAe,EAAE,QAAiB;IACzE,OAAO,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACvG,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,QAAiB;IAClE,OAAO,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,QAAiB;IACjE,OAAO,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;AACrF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA4B;IAC7D,CAAC,EAAE,4CAA4C,EAAE,UAAU;IAC3D,QAAQ,EAAE,4CAA4C,EAAE,UAAU;CACnE,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,OAAe,EAAE,QAAiB;IAC1E,OAAO,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9F,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,10 +19,12 @@ export * from './reconstruct.js';
|
|
|
19
19
|
export * from './tokendata.js';
|
|
20
20
|
export * from './probe.js';
|
|
21
21
|
export * from './token.js';
|
|
22
|
+
export * from './tokens.js';
|
|
22
23
|
export * from './traits.js';
|
|
23
24
|
export * from './fastlz.js';
|
|
24
25
|
export * from './chunks.js';
|
|
25
26
|
export * from './create2.js';
|
|
27
|
+
export * from './creator-token.js';
|
|
26
28
|
export * from './deployments.js';
|
|
27
29
|
export * from './deps.js';
|
|
28
30
|
export * from './generator.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,YAAY,EAAC,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAC,MAAM,MAAM,CAAC;AAE5E,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAC,UAAU,EAAE,eAAe,EAAC,MAAM,UAAU,CAAC;AACrD,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,GACd,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,YAAY,EAAC,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAC,MAAM,MAAM,CAAC;AAE5E,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAC,UAAU,EAAE,eAAe,EAAC,MAAM,UAAU,CAAC;AACrD,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,GACd,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -8,10 +8,12 @@ export * from './reconstruct.js';
|
|
|
8
8
|
export * from './tokendata.js';
|
|
9
9
|
export * from './probe.js';
|
|
10
10
|
export * from './token.js';
|
|
11
|
+
export * from './tokens.js';
|
|
11
12
|
export * from './traits.js';
|
|
12
13
|
export * from './fastlz.js';
|
|
13
14
|
export * from './chunks.js';
|
|
14
15
|
export * from './create2.js';
|
|
16
|
+
export * from './creator-token.js';
|
|
15
17
|
export * from './deployments.js';
|
|
16
18
|
export * from './deps.js';
|
|
17
19
|
export * from './generator.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAC,UAAU,EAAE,eAAe,EAAC,MAAM,UAAU,CAAC;AACrD,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,GACd,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAC,UAAU,EAAE,eAAe,EAAC,MAAM,UAAU,CAAC;AACrD,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,GACd,MAAM,gBAAgB,CAAC"}
|
package/dist/reconstruct.d.ts
CHANGED
|
@@ -94,4 +94,15 @@ export declare class GetLogsScanTooLargeError extends Error {
|
|
|
94
94
|
* contract has no code at block 0 (true for every ABX clone — deployed long after genesis).
|
|
95
95
|
*/
|
|
96
96
|
export declare function discoverDeployBlock(client: PublicClient, address: Address, toBlock?: bigint): Promise<bigint | null>;
|
|
97
|
+
/**
|
|
98
|
+
* Multicall in chunks, tolerating per-leg failure — and, when a whole chunk comes back failed,
|
|
99
|
+
* retrying its legs individually before believing it.
|
|
100
|
+
*
|
|
101
|
+
* The retry is the point. `allowFailure: true` reports per-leg failures, but a multicall is ONE
|
|
102
|
+
* `eth_call`: if the aggregate exceeds the node's gas or response cap, the *whole* batch fails and
|
|
103
|
+
* every leg in it reports failure — including legs that answer fine on their own. Batching a cheap
|
|
104
|
+
* read beside an expensive one therefore turns the expensive one's cost into the cheap one's
|
|
105
|
+
* failure, which is not a distinction any caller can make from the results.
|
|
106
|
+
*/
|
|
107
|
+
export declare function multicallChunked(client: PublicClient, contracts: Array<Record<string, unknown>>, chunkSize: number): Promise<Array<unknown>>;
|
|
97
108
|
//# sourceMappingURL=reconstruct.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconstruct.d.ts","sourceRoot":"","sources":["../src/reconstruct.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reconstruct.d.ts","sourceRoot":"","sources":["../src/reconstruct.ts"],"names":[],"mappings":"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"}
|
package/dist/reconstruct.js
CHANGED
|
@@ -486,74 +486,137 @@ async function getLogsAdaptive(client, address, fromBlock, toBlock) {
|
|
|
486
486
|
}
|
|
487
487
|
return out;
|
|
488
488
|
}
|
|
489
|
-
/**
|
|
489
|
+
/**
|
|
490
|
+
* How many unbounded reads (`tokenURI`, `contractURI`, a script chunk) ride one aggregate. Small on
|
|
491
|
+
* purpose: on the on-chain lane each of these can return tens of KB *assembled at read*, and the
|
|
492
|
+
* cap that matters is the node's per-`eth_call` budget for the aggregate, not the leg count. A
|
|
493
|
+
* whole-chunk failure still recovers via the per-leg retry below, so this only sets how often that
|
|
494
|
+
* costs an extra round trip.
|
|
495
|
+
*/
|
|
496
|
+
const HEAVY_READ_CHUNK = 2;
|
|
497
|
+
/**
|
|
498
|
+
* Multicall in chunks, tolerating per-leg failure — and, when a whole chunk comes back failed,
|
|
499
|
+
* retrying its legs individually before believing it.
|
|
500
|
+
*
|
|
501
|
+
* The retry is the point. `allowFailure: true` reports per-leg failures, but a multicall is ONE
|
|
502
|
+
* `eth_call`: if the aggregate exceeds the node's gas or response cap, the *whole* batch fails and
|
|
503
|
+
* every leg in it reports failure — including legs that answer fine on their own. Batching a cheap
|
|
504
|
+
* read beside an expensive one therefore turns the expensive one's cost into the cheap one's
|
|
505
|
+
* failure, which is not a distinction any caller can make from the results.
|
|
506
|
+
*/
|
|
507
|
+
export async function multicallChunked(client, contracts, chunkSize) {
|
|
508
|
+
const out = new Array(contracts.length).fill(null);
|
|
509
|
+
const run = async (legs) => {
|
|
510
|
+
try {
|
|
511
|
+
const res = (await client.multicall({ contracts: legs, allowFailure: true }));
|
|
512
|
+
return res.map((r) => (r.status === 'success' ? r.result : null));
|
|
513
|
+
}
|
|
514
|
+
catch {
|
|
515
|
+
return legs.map(() => null); // the aggregate itself failed
|
|
516
|
+
}
|
|
517
|
+
};
|
|
518
|
+
for (let i = 0; i < contracts.length; i += chunkSize) {
|
|
519
|
+
const legs = contracts.slice(i, i + chunkSize);
|
|
520
|
+
let vals = await run(legs);
|
|
521
|
+
// Every leg failed AND there was more than one: the aggregate cost is the likely cause, not the
|
|
522
|
+
// calls. Re-ask one at a time so an over-budget batch degrades to what genuinely can't be read.
|
|
523
|
+
if (legs.length > 1 && vals.every((v) => v === null)) {
|
|
524
|
+
vals = await Promise.all(legs.map(async (leg) => (await run([leg]))[0]));
|
|
525
|
+
}
|
|
526
|
+
for (let k = 0; k < vals.length; k++)
|
|
527
|
+
out[i + k] = vals[k];
|
|
528
|
+
}
|
|
529
|
+
return out;
|
|
530
|
+
}
|
|
531
|
+
/**
|
|
532
|
+
* Head-read the values the spine only pings (name/symbol/contractURI/tokenURI) plus the trust and
|
|
533
|
+
* URI-lane facts, and fold them into state.
|
|
534
|
+
*
|
|
535
|
+
* **Reads are split by cost class, and that split is load-bearing.** These used to be one multicall,
|
|
536
|
+
* which was correct for an off-chain project (every return is a short string) and quietly wrong for
|
|
537
|
+
* the flagship on-chain lane: there, `tokenURI(id)` *assembles the whole metadata document
|
|
538
|
+
* on-chain*, tens of KB per token. Four such legs in one aggregate already exceed a public node's
|
|
539
|
+
* `eth_call` budget, so the batch failed whole — and took `name`, `symbol`, `contractURI`,
|
|
540
|
+
* `isAbxClone`, and, worst, `tokenURIRenderer` down with it. A resolver then believed a
|
|
541
|
+
* fully-on-chain 32-token collection had no name, no canonical proof, and **was not in the
|
|
542
|
+
* on-chain-URI lane at all.** Reproduced on Base Sepolia at `0xB844…5E56`: 4 legs → 0/8 succeeded,
|
|
543
|
+
* while `name()` answered `"ABXdoku"` on its own.
|
|
544
|
+
*
|
|
545
|
+
* So: the cheap fixed reads — the ones that decide the project's identity and lane — go in one
|
|
546
|
+
* batch of their own and can never be collateral damage. The unbounded ones are best-effort, which
|
|
547
|
+
* is what they always were (`tok.tokenURI` is diagnostic; nothing served depends on it).
|
|
548
|
+
*/
|
|
490
549
|
async function applyHeadReads(client, state, factory) {
|
|
491
550
|
const token = { address: state.address, abi: oneOfOneImageAbi };
|
|
492
551
|
const tokenIds = state.tokens.map((t) => t.tokenId);
|
|
552
|
+
// ── cheap, fixed-size returns: identity, trust, the URI lane, the script count ──
|
|
493
553
|
// Mixed-ABI multicall — type it loosely; results are validated per-call below.
|
|
494
|
-
const
|
|
554
|
+
const cheap = [
|
|
495
555
|
{ ...token, functionName: 'name' },
|
|
496
556
|
{ ...token, functionName: 'symbol' },
|
|
497
557
|
{ ...token, functionName: 'owner' },
|
|
498
|
-
{ ...token, functionName: '
|
|
499
|
-
|
|
558
|
+
{ ...token, functionName: 'tokenURIRenderer' },
|
|
559
|
+
{ ...token, functionName: 'tokenURILocked' },
|
|
560
|
+
{ ...token, functionName: 'contractURIRenderer' },
|
|
561
|
+
{ ...token, functionName: 'contractURILocked' },
|
|
500
562
|
];
|
|
563
|
+
const factoryIdx = cheap.length;
|
|
501
564
|
if (factory) {
|
|
502
|
-
|
|
565
|
+
cheap.push({ address: factory, abi: oneOfOneImageFactoryAbi, functionName: 'isAbxClone', args: [state.address] }, { address: factory, abi: oneOfOneImageFactoryAbi, functionName: 'implementation' });
|
|
503
566
|
}
|
|
504
|
-
// URI resolution config (the off-chain↔on-chain toggle + freeze)
|
|
505
|
-
const cfgBase = contracts.length;
|
|
506
|
-
contracts.push({ ...token, functionName: 'tokenURIRenderer' }, { ...token, functionName: 'tokenURILocked' }, { ...token, functionName: 'contractURIRenderer' }, { ...token, functionName: 'contractURILocked' });
|
|
507
567
|
// On-chain script: chunk content is too large to log, so the count is a head read.
|
|
508
|
-
const scriptIdx =
|
|
568
|
+
const scriptIdx = cheap.length;
|
|
509
569
|
if (state.script) {
|
|
510
|
-
|
|
570
|
+
cheap.push({ address: state.address, abi: seriesCodeAbi, functionName: 'scriptChunkCount' });
|
|
511
571
|
}
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
572
|
+
// ── unbounded returns: each one may assemble a whole document on-chain ──
|
|
573
|
+
// `contractURI` first so a huge per-token tokenURI can never cost us the collection's own URI.
|
|
574
|
+
const heavy = [
|
|
575
|
+
{ ...token, functionName: 'contractURI' },
|
|
576
|
+
...tokenIds.map((id) => ({ ...token, functionName: 'tokenURI', args: [BigInt(id)] })),
|
|
577
|
+
];
|
|
578
|
+
const [cheapVals, heavyVals] = await Promise.all([
|
|
579
|
+
multicallChunked(client, cheap, cheap.length), // one batch: all short returns
|
|
580
|
+
multicallChunked(client, heavy, HEAVY_READ_CHUNK),
|
|
581
|
+
]);
|
|
582
|
+
const val = (i) => cheapVals[i] ?? null;
|
|
517
583
|
state.name = val(0) ?? null;
|
|
518
584
|
state.symbol = val(1) ?? null;
|
|
519
585
|
state.owner = val(2) ?? state.owner;
|
|
520
|
-
|
|
586
|
+
const nonZero = (a) => a && a !== '0x0000000000000000000000000000000000000000' ? a : null;
|
|
587
|
+
state.tokenURIRenderer = nonZero(val(3));
|
|
588
|
+
state.tokenURILocked = val(4) ?? null;
|
|
589
|
+
state.contractURIRenderer = nonZero(val(5));
|
|
590
|
+
state.contractURILocked = val(6) ?? null;
|
|
591
|
+
if (factory) {
|
|
592
|
+
state.isCanonical = cheapVals[factoryIdx] ?? null;
|
|
593
|
+
state.implementation = cheapVals[factoryIdx + 1] ?? null;
|
|
594
|
+
}
|
|
595
|
+
state.contractURI = heavyVals[0] ?? null;
|
|
521
596
|
tokenIds.forEach((id, k) => {
|
|
522
597
|
const tok = state.tokens.find((t) => t.tokenId === id);
|
|
523
598
|
if (tok)
|
|
524
|
-
tok.tokenURI =
|
|
599
|
+
tok.tokenURI = heavyVals[1 + k] ?? null;
|
|
525
600
|
});
|
|
526
|
-
if (factory) {
|
|
527
|
-
const base = 4 + tokenIds.length;
|
|
528
|
-
state.isCanonical = val(base) ?? null;
|
|
529
|
-
state.implementation = val(base + 1) ?? null;
|
|
530
|
-
}
|
|
531
|
-
const nonZero = (a) => a && a !== '0x0000000000000000000000000000000000000000' ? a : null;
|
|
532
|
-
state.tokenURIRenderer = nonZero(val(cfgBase));
|
|
533
|
-
state.tokenURILocked = val(cfgBase + 1) ?? null;
|
|
534
|
-
state.contractURIRenderer = nonZero(val(cfgBase + 2));
|
|
535
|
-
state.contractURILocked = val(cfgBase + 3) ?? null;
|
|
536
601
|
if (state.script) {
|
|
537
|
-
const count =
|
|
602
|
+
const count = cheapVals[scriptIdx] ?? null;
|
|
538
603
|
state.script.chunkCount = count === null ? null : Number(count);
|
|
539
604
|
// digest = keccak over the concatenated chunks — the content half of effect inputsHash
|
|
540
|
-
// values. Chunks are
|
|
605
|
+
// values. Chunks are bounded (~24 KB each) but there can be many, and the same aggregate cap
|
|
606
|
+
// applies, so they read through the chunked path too.
|
|
541
607
|
const n = state.script.chunkCount ?? 0;
|
|
542
608
|
if (n > 0) {
|
|
543
|
-
const chunkReads =
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
})),
|
|
550
|
-
allowFailure: true,
|
|
551
|
-
}));
|
|
609
|
+
const chunkReads = await multicallChunked(client, Array.from({ length: n }, (_, i) => ({
|
|
610
|
+
address: state.address,
|
|
611
|
+
abi: seriesCodeAbi,
|
|
612
|
+
functionName: 'scriptChunk',
|
|
613
|
+
args: [BigInt(i)],
|
|
614
|
+
})), HEAVY_READ_CHUNK);
|
|
552
615
|
const parts = [];
|
|
553
616
|
for (const r of chunkReads) {
|
|
554
|
-
if (r
|
|
617
|
+
if (r === null)
|
|
555
618
|
return; // partial read — leave digest unset rather than wrong
|
|
556
|
-
parts.push(r
|
|
619
|
+
parts.push(r);
|
|
557
620
|
}
|
|
558
621
|
state.script.digest = keccak256(concatHex(parts));
|
|
559
622
|
}
|
package/dist/reconstruct.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconstruct.js","sourceRoot":"","sources":["../src/reconstruct.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reconstruct.js","sourceRoot":"","sources":["../src/reconstruct.ts"],"names":[],"mappings":"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"}
|
package/dist/tokens.d.ts
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { type Address, type Hex, type PublicClient } from 'viem';
|
|
2
|
+
export interface TokenRow {
|
|
3
|
+
tokenId: string;
|
|
4
|
+
/**
|
|
5
|
+
* `null` when `ownerOf` reverts. That is deliberately NOT reported as "not minted": an id past
|
|
6
|
+
* the mint frontier and a **burned** id both revert identically, and a chain-only read cannot
|
|
7
|
+
* tell them apart without the Transfer log it is the point of this path not to need.
|
|
8
|
+
*/
|
|
9
|
+
owner: Address | null;
|
|
10
|
+
/**
|
|
11
|
+
* The mint-time seed as the raw `bytes32` — exactly what `tokenData` carries. A schema is what
|
|
12
|
+
* buys a human decode and `seed` deliberately has none, so raw hex IS its canonical form.
|
|
13
|
+
* `null` ⇒ no seed set for this token (no seed source, or not minted).
|
|
14
|
+
*/
|
|
15
|
+
seed: Hex | null;
|
|
16
|
+
/**
|
|
17
|
+
* Token-scope params, decoded to their canonical strings. Contract-scope params are listed once
|
|
18
|
+
* on {@link TokenListing.contractParams} rather than repeated per row; the artwork sees
|
|
19
|
+
* contract ∪ token with **token winning** (see `buildTokenData`, the canonical assembly).
|
|
20
|
+
*/
|
|
21
|
+
params: Record<string, string>;
|
|
22
|
+
}
|
|
23
|
+
export interface TokenListing {
|
|
24
|
+
chainId: number;
|
|
25
|
+
address: Address;
|
|
26
|
+
/** Ids `0 … nextTokenId - 1` have been minted at some point. `null` on a token type with no
|
|
27
|
+
* sequential mint frontier (a 1/1, which is always just token 0). */
|
|
28
|
+
nextTokenId: number | null;
|
|
29
|
+
/** Live supply (mints − burns) — differs from `nextTokenId` only if tokens were burned. */
|
|
30
|
+
totalSupply: number | null;
|
|
31
|
+
maxInvocations: number | null;
|
|
32
|
+
/**
|
|
33
|
+
* Whether the contract exposes the params surface at all. `false` for the image token types
|
|
34
|
+
* (they have no Params extension), in which case every row's `seed` is `null` and `params` is
|
|
35
|
+
* empty — correct, not a failed read.
|
|
36
|
+
*/
|
|
37
|
+
hasParams: boolean;
|
|
38
|
+
/** Whether the contract exposes on-chain param *enumeration*. `false` on a project deployed
|
|
39
|
+
* before enumeration shipped: seeds still read (by name), but params can't be listed. */
|
|
40
|
+
hasParamEnumeration: boolean;
|
|
41
|
+
contractParams: Record<string, string>;
|
|
42
|
+
tokens: TokenRow[];
|
|
43
|
+
}
|
|
44
|
+
export interface ListTokensOptions {
|
|
45
|
+
/** Read only this many ids from `from` (default: all). */
|
|
46
|
+
limit?: number;
|
|
47
|
+
/** First token id to read (default 0). */
|
|
48
|
+
from?: number;
|
|
49
|
+
concurrency?: number;
|
|
50
|
+
/** Called after each token resolves — for a progress line on a large collection. */
|
|
51
|
+
onProgress?: (done: number, total: number) => void;
|
|
52
|
+
}
|
|
53
|
+
/** Every token's owner, seed, and params, straight from the contract. */
|
|
54
|
+
export declare function listTokens(client: PublicClient, address: Address, opts?: ListTokensOptions): Promise<TokenListing>;
|
|
55
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,YAAY,EAAC,MAAM,MAAM,CAAC;AA+B5E,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB;;;;OAIG;IACH,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;IACjB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB;0EACsE;IACtE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,2FAA2F;IAC3F,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;8FAC0F;IAC1F,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAED,yEAAyE;AACzE,wBAAsB,UAAU,CAC9B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,YAAY,CAAC,CAsFvB"}
|
package/dist/tokens.js
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { zeroAddress } from 'viem';
|
|
2
|
+
import { seriesCodeAbi } from './abi/index.js';
|
|
3
|
+
import { readParamSchema } from './ops.js';
|
|
4
|
+
import { AUTH_OPTIONS, decodeTag, encodeTag, PARAM_TYPES } from './spine.js';
|
|
5
|
+
import { decodeParam } from './tokendata.js';
|
|
6
|
+
/**
|
|
7
|
+
* The whole collection's tokens — seeds, owners, and params — read **from chain alone**.
|
|
8
|
+
*
|
|
9
|
+
* No indexer projection, no event scan, no running resolver: every input is a plain `eth_call`
|
|
10
|
+
* against the token contract, because the params store maintains its own key lists inside its
|
|
11
|
+
* write paths (`tokenParamKeys` / `contractParamKeys`) and the seed is just a reserved param.
|
|
12
|
+
* That matters for the question this answers — *for a generative collection the seed list IS the
|
|
13
|
+
* collection* — since it means the answer is available to anyone with an RPC URL, including
|
|
14
|
+
* before any indexing has happened, and it can never disagree with the chain.
|
|
15
|
+
*
|
|
16
|
+
* Deliberately not built on {@link reconstructProject}: that folds the event spine (a `getLogs`
|
|
17
|
+
* range scan, which a range-capped RPC can refuse) to recover *structure*. Here every value
|
|
18
|
+
* wanted is a head read, so a scan would be strictly more fragile for strictly less.
|
|
19
|
+
*/
|
|
20
|
+
/** The reserved param the seed source writes at mint. Never in the enumerable key lists (every
|
|
21
|
+
* consumer reads it as a tokenData coordinate), so it is read by name. */
|
|
22
|
+
const SEED_KEY = 'seed';
|
|
23
|
+
/** How many tokens to read concurrently. Each token costs ~2 + (params) `eth_call`s, so a
|
|
24
|
+
* 1000-token collection is a few thousand reads — wide enough to be quick, narrow enough that a
|
|
25
|
+
* free-tier RPC doesn't rate-limit. */
|
|
26
|
+
const DEFAULT_CONCURRENCY = 8;
|
|
27
|
+
/** Every token's owner, seed, and params, straight from the contract. */
|
|
28
|
+
export async function listTokens(client, address, opts = {}) {
|
|
29
|
+
const read = async (functionName, args = []) => {
|
|
30
|
+
try {
|
|
31
|
+
// dynamic dispatch over the superset ABI — cast past viem's literal-name inference. Every
|
|
32
|
+
// getter here is absent on at least one token type, so the try/catch IS the capability probe.
|
|
33
|
+
return (await client.readContract({ address, abi: seriesCodeAbi, functionName, args }));
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return null; // absent on this token type, or an unminted id — the caller decides what that means
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const [chainId, nextTokenId, totalSupply, maxInvocations, contractKeys] = await Promise.all([
|
|
40
|
+
client.getChainId(),
|
|
41
|
+
read('nextTokenId'),
|
|
42
|
+
read('totalSupply'),
|
|
43
|
+
read('maxInvocations'),
|
|
44
|
+
read('contractParamKeys'),
|
|
45
|
+
]);
|
|
46
|
+
// The params surface is probed by a read that only a params-bearing token answers. `seed` is the
|
|
47
|
+
// cheapest such probe that works on a LEGACY project too (deployed before enumeration shipped),
|
|
48
|
+
// so the two capabilities are detected separately rather than collapsed.
|
|
49
|
+
const seedProbe = await read('tokenParam', [0n, encodeTag(SEED_KEY)]);
|
|
50
|
+
const hasParams = seedProbe !== null || contractKeys !== null;
|
|
51
|
+
const hasParamEnumeration = contractKeys !== null;
|
|
52
|
+
// Schemas are read once per key and shared across every token — on a 1000-token collection this
|
|
53
|
+
// is the difference between one read per key and one per key PER TOKEN.
|
|
54
|
+
const schemaCache = new Map();
|
|
55
|
+
const schemaOf = (key) => {
|
|
56
|
+
let hit = schemaCache.get(key);
|
|
57
|
+
if (!hit) {
|
|
58
|
+
hit = schemaFor(client, address, key);
|
|
59
|
+
schemaCache.set(key, hit);
|
|
60
|
+
}
|
|
61
|
+
return hit;
|
|
62
|
+
};
|
|
63
|
+
const contractParams = {};
|
|
64
|
+
for (const raw of contractKeys ?? []) {
|
|
65
|
+
const key = decodeTag(raw);
|
|
66
|
+
const slot = await read('contractParam', [raw]);
|
|
67
|
+
if (!slot?.[2])
|
|
68
|
+
continue; // not set
|
|
69
|
+
const p = { key, value: slot[0], valueIsHash: slot[1], updatedBy: address };
|
|
70
|
+
contractParams[key] = (await decodeParam(client, address, '0', p, false, await schemaOf(key))).value;
|
|
71
|
+
}
|
|
72
|
+
// The id range. `nextTokenId` is the mint frontier; a 1/1 has none and is always token 0 alone.
|
|
73
|
+
const count = nextTokenId !== null ? Number(nextTokenId) : totalSupply !== null ? Number(totalSupply) : 1;
|
|
74
|
+
const from = Math.max(0, opts.from ?? 0);
|
|
75
|
+
const end = opts.limit === undefined ? count : Math.min(count, from + Math.max(0, opts.limit));
|
|
76
|
+
const ids = Array.from({ length: Math.max(0, end - from) }, (_, i) => from + i);
|
|
77
|
+
let done = 0;
|
|
78
|
+
const tokens = await pool(ids, opts.concurrency ?? DEFAULT_CONCURRENCY, async (id) => {
|
|
79
|
+
const tokenId = String(id);
|
|
80
|
+
const [owner, seedSlot, keys] = await Promise.all([
|
|
81
|
+
read('ownerOf', [BigInt(id)]),
|
|
82
|
+
hasParams ? read('tokenParam', [BigInt(id), encodeTag(SEED_KEY)]) : null,
|
|
83
|
+
hasParamEnumeration ? read('tokenParamKeys', [BigInt(id)]) : null,
|
|
84
|
+
]);
|
|
85
|
+
const params = {};
|
|
86
|
+
for (const raw of keys ?? []) {
|
|
87
|
+
const key = decodeTag(raw);
|
|
88
|
+
const slot = await read('tokenParam', [BigInt(id), raw]);
|
|
89
|
+
if (!slot?.[2])
|
|
90
|
+
continue;
|
|
91
|
+
const p = { key, value: slot[0], valueIsHash: slot[1], updatedBy: address };
|
|
92
|
+
params[key] = (await decodeParam(client, address, tokenId, p, true, await schemaOf(key))).value;
|
|
93
|
+
}
|
|
94
|
+
opts.onProgress?.(++done, ids.length);
|
|
95
|
+
return { tokenId, owner, seed: seedSlot?.[2] ? seedSlot[0] : null, params };
|
|
96
|
+
});
|
|
97
|
+
return {
|
|
98
|
+
chainId,
|
|
99
|
+
address,
|
|
100
|
+
nextTokenId: nextTokenId === null ? null : Number(nextTokenId),
|
|
101
|
+
totalSupply: totalSupply === null ? null : Number(totalSupply),
|
|
102
|
+
maxInvocations: maxInvocations === null ? null : Number(maxInvocations),
|
|
103
|
+
hasParams,
|
|
104
|
+
hasParamEnumeration,
|
|
105
|
+
contractParams,
|
|
106
|
+
tokens,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* One key's declared schema in the shape {@link decodeParam} wants, or `undefined` when the key is
|
|
111
|
+
* un-governed or the contract has no schema surface. A schema-less param is a normal, supported
|
|
112
|
+
* state — its value simply stays raw, which is exactly what `seed` relies on.
|
|
113
|
+
*
|
|
114
|
+
* Delegates the read to {@link readParamSchema} (the one implementation, which also backs the
|
|
115
|
+
* read-modify-write in `set-schema`) and only maps its numeric enums onto their canonical names.
|
|
116
|
+
*/
|
|
117
|
+
async function schemaFor(client, address, key) {
|
|
118
|
+
try {
|
|
119
|
+
const s = await readParamSchema(client, address, key);
|
|
120
|
+
if (!s.exists)
|
|
121
|
+
return undefined;
|
|
122
|
+
return {
|
|
123
|
+
key,
|
|
124
|
+
paramType: PARAM_TYPES[s.paramType] ?? String(s.paramType),
|
|
125
|
+
auth: AUTH_OPTIONS[s.auth] ?? String(s.auth),
|
|
126
|
+
authAddress: s.authAddress === zeroAddress ? null : s.authAddress,
|
|
127
|
+
lockAfter: String(s.lockAfter),
|
|
128
|
+
min: s.min,
|
|
129
|
+
max: s.max,
|
|
130
|
+
selectOptions: s.selectOptions,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
return undefined; // no schema surface on this token type
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/** Bounded-concurrency map, order-preserving. */
|
|
138
|
+
async function pool(items, width, fn) {
|
|
139
|
+
const out = new Array(items.length);
|
|
140
|
+
let next = 0;
|
|
141
|
+
const workers = Array.from({ length: Math.max(1, Math.min(width, items.length)) }, async () => {
|
|
142
|
+
for (;;) {
|
|
143
|
+
const i = next++;
|
|
144
|
+
if (i >= items.length)
|
|
145
|
+
return;
|
|
146
|
+
out[i] = await fn(items[i]);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
await Promise.all(workers);
|
|
150
|
+
return out;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=tokens.js.map
|