@artblocks/abx-sdk 0.1.0-alpha.6 → 0.1.0-alpha.8
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 +585 -12
- package/dist/abi/generated.d.ts.map +1 -1
- package/dist/abi/generated.js +16 -16
- package/dist/abi/generated.js.map +1 -1
- package/dist/abi/index.d.ts +209 -12
- package/dist/abi/index.d.ts.map +1 -1
- package/dist/chunks.d.ts +33 -0
- package/dist/chunks.d.ts.map +1 -1
- package/dist/chunks.js +40 -0
- package/dist/chunks.js.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 +28 -13
- package/dist/deployments.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ops.d.ts +3 -2
- package/dist/ops.d.ts.map +1 -1
- package/dist/ops.js +3 -2
- package/dist/ops.js.map +1 -1
- package/dist/tokendata.d.ts +37 -2
- package/dist/tokendata.d.ts.map +1 -1
- package/dist/tokendata.js +30 -14
- package/dist/tokendata.js.map +1 -1
- package/package.json +1 -1
package/dist/tokendata.js
CHANGED
|
@@ -15,7 +15,16 @@ import { decodeScalarParam } from './spine.js';
|
|
|
15
15
|
* schema is what buys a human decode — `seed` is the canonical example); a data-backed
|
|
16
16
|
* value reads its blob (`String` → UTF-8, `Bytes`/schema-less → base64).
|
|
17
17
|
*/
|
|
18
|
-
|
|
18
|
+
/** The tokenData coordinates — never enumerable as params (the on-chain params store excludes
|
|
19
|
+
* `seed` from its key lists, and the generator/renderer skip the other three defensively).
|
|
20
|
+
* Exported because every off-chain surface that enumerates params must exclude exactly this
|
|
21
|
+
* set: two lists that have to agree are one list. */
|
|
22
|
+
export const RESERVED_TOKEN_DATA_KEYS = new Set([
|
|
23
|
+
'chainId',
|
|
24
|
+
'contractAddress',
|
|
25
|
+
'tokenId',
|
|
26
|
+
'seed',
|
|
27
|
+
]);
|
|
19
28
|
const augmentHookAbi = parseAbi([
|
|
20
29
|
'function augmentTokenParams(address token, uint256 tokenId) view returns ((bytes32 key, string value)[])',
|
|
21
30
|
]);
|
|
@@ -60,9 +69,9 @@ export async function buildTokenData(client, state, token, opts = {}) {
|
|
|
60
69
|
for (const p of token.params ?? [])
|
|
61
70
|
merged.set(p.key, { p, tokenScope: true });
|
|
62
71
|
for (const [key, { p, tokenScope }] of merged) {
|
|
63
|
-
if (
|
|
72
|
+
if (RESERVED_TOKEN_DATA_KEYS.has(key) && key !== 'seed')
|
|
64
73
|
continue; // coordinates win
|
|
65
|
-
data[key] = await decodeParam(client, state.address, token.tokenId, p, tokenScope, schemas.get(key));
|
|
74
|
+
data[key] = (await decodeParam(client, state.address, token.tokenId, p, tokenScope, schemas.get(key))).value;
|
|
66
75
|
}
|
|
67
76
|
// augment hook — last, wins per key (except the reserved coordinates). Skipped for the
|
|
68
77
|
// SETTLED form (opts.augment false): live data belongs in the live view, never in the
|
|
@@ -78,7 +87,7 @@ export async function buildTokenData(client, state, token, opts = {}) {
|
|
|
78
87
|
}));
|
|
79
88
|
for (const e of entries) {
|
|
80
89
|
const key = decodeBytes32Key(e.key);
|
|
81
|
-
if (
|
|
90
|
+
if (RESERVED_TOKEN_DATA_KEYS.has(key))
|
|
82
91
|
continue;
|
|
83
92
|
data[key] = e.value;
|
|
84
93
|
}
|
|
@@ -154,20 +163,25 @@ export const BOUND_ARTIFACT_MAX_BYTES = 64 * 1024;
|
|
|
154
163
|
export function isBoundOutput(effectKey, outputKey) {
|
|
155
164
|
return BOUND_EFFECT_OUTPUTS.has(`${effectKey}/${outputKey}`);
|
|
156
165
|
}
|
|
157
|
-
|
|
158
|
-
|
|
166
|
+
/**
|
|
167
|
+
* The canonical per-param decode — the one implementation every off-chain surface shares
|
|
168
|
+
* (tokenData assembly here, `abx_params` in the resolver), so a value reads the same
|
|
169
|
+
* everywhere and stays byte-parallel with the on-chain generator and renderer.
|
|
170
|
+
*/
|
|
171
|
+
export async function decodeParam(client, token, tokenId, p, tokenScope, schema) {
|
|
172
|
+
const literal = (value) => ({ value, contentBytes: null });
|
|
159
173
|
if (!p.valueIsHash) {
|
|
160
174
|
if (!schema)
|
|
161
|
-
return p.key === 'seed' ? p.value : decodeTagLoose(p.value);
|
|
175
|
+
return literal(p.key === 'seed' ? p.value : decodeTagLoose(p.value));
|
|
162
176
|
if (schema.paramType === 'Select') {
|
|
163
177
|
const idx = Number(BigInt(p.value));
|
|
164
|
-
return schema.selectOptions[idx] ?? String(idx);
|
|
178
|
+
return literal(schema.selectOptions[idx] ?? String(idx));
|
|
165
179
|
}
|
|
166
|
-
return decodeScalarParam(schema.paramType, p.value);
|
|
180
|
+
return literal(decodeScalarParam(schema.paramType, p.value));
|
|
167
181
|
}
|
|
168
182
|
// data-backed: read the blob (token scope falls back to contract scope by construction)
|
|
169
183
|
if (!client)
|
|
170
|
-
return p.value; // best-effort floor: the hash itself
|
|
184
|
+
return literal(p.value); // best-effort floor: the hash itself
|
|
171
185
|
try {
|
|
172
186
|
const blob = (await client.readContract({
|
|
173
187
|
address: token,
|
|
@@ -176,14 +190,16 @@ async function decodeParam(client, token, tokenId, p, tokenScope, schema) {
|
|
|
176
190
|
args: tokenScope ? [BigInt(tokenId), keyToBytes32(p.key)] : [keyToBytes32(p.key)],
|
|
177
191
|
}));
|
|
178
192
|
const bytes = hexToBytes(blob);
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
193
|
+
const value = schema?.paramType === 'String'
|
|
194
|
+
? new TextDecoder().decode(bytes)
|
|
195
|
+
: Buffer.from(bytes).toString('base64'); // Bytes + schema-less: base64 at read
|
|
196
|
+
return { value, contentBytes: bytes.length };
|
|
182
197
|
}
|
|
183
198
|
catch {
|
|
184
|
-
return p.value;
|
|
199
|
+
return literal(p.value);
|
|
185
200
|
}
|
|
186
201
|
}
|
|
202
|
+
// ── internals ──────────────────────────────────────────────────────────────────
|
|
187
203
|
/** A readable-ASCII `bytes32` literal as its string (e.g. a `display.animation` value). */
|
|
188
204
|
function decodeTagLoose(value) {
|
|
189
205
|
const bytes = hexToBytes(value);
|
package/dist/tokendata.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokendata.js","sourceRoot":"","sources":["../src/tokendata.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,UAAU,EACV,SAAS,EACT,QAAQ,EACR,aAAa,GAId,MAAM,MAAM,CAAC;AACd,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAC,iBAAiB,EAAqB,MAAM,YAAY,CAAC;AAGjE;;;;;;;;;;;;;GAaG;AAEH,MAAM,
|
|
1
|
+
{"version":3,"file":"tokendata.js","sourceRoot":"","sources":["../src/tokendata.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artblocks/abx-sdk",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.8",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ABX SDK (Layer 2) — the neutral, low-level library that turns protocol operations into typed function calls. No provider, no chain, no UX baked in.",
|
|
6
6
|
"type": "module",
|