@artblocks/abx-cli 0.1.0 → 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.
@@ -680,7 +680,7 @@ export async function cmdVerifyBody(address, flags, emit) {
680
680
  generatorCurrent, // true | false | null (no canonical generator recorded for this chain)
681
681
  tokenURIRenderer: state.tokenURIRenderer ?? null,
682
682
  // null ⇒ no renderer set at all (nothing to compare) — distinct from `false` (set, but not
683
- // spec v11). See `isCurrentRenderer`: a read failure ALSO reports `false`, same as a stale
683
+ // spec v12). See `isCurrentRenderer`: a read failure ALSO reports `false`, same as a stale
684
684
  // renderer — the underlying probe cannot tell those apart, so neither can this field.
685
685
  tokenURIRendererCurrent: rendererCurrent,
686
686
  branch: status.branchName,
@@ -699,9 +699,9 @@ export async function cmdVerifyBody(address, flags, emit) {
699
699
  info(`generator is NOT the current canonical one for ${CHAIN} ${dim('(a prior deployment this project is pinned to, or a fully custom field renderer — it still works; repoint with')} ${bold(`abx set-field ${address} --field animation_url --representation renderer --value <generator> --collection`)}${dim(')')}`);
700
700
  } // null: no canonical generator recorded for this chain at all — nothing to compare against, so say nothing rather than a false "NOT current".
701
701
  if (rendererCurrent === true)
702
- ok(`tokenURI renderer is CURRENT (spec v11)`);
702
+ ok(`tokenURI renderer is CURRENT (spec v12)`);
703
703
  else if (rendererCurrent === false) {
704
- info(`tokenURI renderer is NOT current (spec v11) ${dim(`— an older renderer still serves fine; it just doesn't have v11's capabilities (see the renderer's changelog in deployments.ts). Repoint with`)} ${bold(`abx set-renderer ${address} --collection`)}${dim(' (and without --collection for the per-token pointer)')}`);
704
+ info(`tokenURI renderer is NOT current (spec v12) ${dim(`— an older renderer still serves fine; it just doesn't have v12's capabilities (see the renderer's changelog in deployments.ts). Repoint with`)} ${bold(`abx set-renderer ${address} --collection`)}${dim(' (and without --collection for the per-token pointer)')}`);
705
705
  }
706
706
  if (status.branchName === 'template') {
707
707
  ok(`generator branch: template — the document assembles from the on-chain script chunks`);
@@ -363,6 +363,15 @@ export declare function guardOnChainSize(bytesLen: number, label: string): Promi
363
363
  * so the count the human is told up front is the same one the real staging will produce.
364
364
  */
365
365
  export declare function computeContentPlan(bytes: Buffer, compress: Compress): ContentPlan;
366
+ /**
367
+ * The `abx_image_type` a file stored in the `image` field needs: `null` for SVG (the default, nothing
368
+ * to declare), else the type named by the file's extension — the same declared-type convention
369
+ * `abx attach` uses; bytes are never sniffed for a raster type. Throws, before anything is staged,
370
+ * for a file no browser would draw as an image.
371
+ */
372
+ export declare function storedImageTypeFor(bytes: Uint8Array, path: string): string | null;
373
+ /** The inline `abx_image_type` field declaring `type` for stored image bytes. */
374
+ export declare const imageTypeField: (type: string) => OnChainFieldInput;
366
375
  export declare function refusePrewrappedImage(bytes: Uint8Array | string, label: string): void;
367
376
  /**
368
377
  * Dry-run preview of staging an image fully on-chain — the REAL chunk + transaction plan,
@@ -379,7 +388,7 @@ export declare function previewImageStaging(imagePath: string, compress: Compres
379
388
  * The manifest is deployer-independent, so this is computed once and reused for any signer.
380
389
  */
381
390
  export declare function stageImageField(imagePath: string, compress: Compress, send: SendTx): Promise<{
382
- field: OnChainFieldInput;
391
+ fields: OnChainFieldInput[];
383
392
  note: string;
384
393
  }>;
385
394
  /**
@@ -387,10 +396,12 @@ export declare function stageImageField(imagePath: string, compress: Compress, s
387
396
  * {@link stageImageField} for a Series. The store is resolved/deployed **once** (not per token),
388
397
  * then every file is staged against it and returned as its own `reader`-backed `image` field.
389
398
  * Each field still points at its own manifest, so each token's work is independent; they just
390
- * share the store contract. Returns the fields in input order (token order).
399
+ * share the store contract. Returns the fields in input order (token order), with each file's
400
+ * `abx_image_type` declaration (`null` for SVG) at the same index in `typeFields`.
391
401
  */
392
402
  export declare function stageImageFieldsBatch(imagePaths: string[], compress: Compress, send: SendTx, storeOverride?: string): Promise<{
393
403
  fields: OnChainFieldInput[];
404
+ typeFields: (OnChainFieldInput | null)[];
394
405
  store: Address;
395
406
  }>;
396
407
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ownerops.d.ts","sourceRoot":"","sources":["../src/ownerops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ownerops.d.ts","sourceRoot":"","sources":["../src/ownerops.ts"],"names":[],"mappings":"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"}
package/dist/ownerops.js CHANGED
@@ -6,9 +6,9 @@
6
6
  * served state reflects the change. The agent picks the lane; the human only
7
7
  * approves (wallet lane) or it's the env key (hot lane).
8
8
  */
9
- import { MAX_ROYALTY_BPS, assertChainId, ensureChunkStore as sdkEnsureChunkStore, predictFixedPriceMinter, predictFixedPriceMinter1155, makeHotSender, makePublicClient, makeWalletClient, oneOfOneImageAbi, oneOfOneEditionAbi, seriesImageAbi, deployFixedPriceMinter, deployFixedPriceMinter1155, prepareConfigureSale, prepareConfigureSale1155, preparePurchase, preparePurchase1155, readSaleConfig, readSaleConfig1155, prepareEditionMint, prepareEditionTransfer, prepareSetMaxSupply, preparePingURI, prepareLockContractField, prepareLockContractURI, prepareLockTokenField, prepareLockTokenURI, prepareMint, mintedTokenIds, prepareSeriesMintMany, prepareSetMinter, prepareSetMaxInvocations, prepareSetPrimaryPayee, prepareSetPaused, prepareSetContractField, prepareSetContractURIBase, prepareSetContractURIOverride, prepareSetContractURIRenderer, prepareSetParamHooks, prepareSetParamSchema, prepareRetireParam, readParamSchema, PARAM_TYPES, prepareSetRoyalty, prepareReduceMaxRoyaltyBps, prepareSetTokenField, batchOps, prepareSetTokenURIBase, prepareSetTokenURIOverride, prepareSetTokenURIRenderer, prepareSetTransferValidator, prepareSetSeedSource, probeSeedSource, readSeedSource, predictSeedSource, getDeployment, prepareTransfer, prepareTransferOwnership, probeTransferValidator, readCreatorTokenStatus, resolveRecommendedTransferValidator, RECOMMENDED_TRANSFER_VALIDATOR, KNOWN_CHAIN_KEYS, resolveChain, resolveRpcUrl, redactRpcUrl, encodeTag, METADATA_FIELD as F, METADATA_REPRESENTATION as R, stageFieldContent, planStagedContent, exceedsOnchainSoftLimit, classifyOnchainReadSize, tokenUriGasEstimate, ONCHAIN_IMAGE_SOFT_LIMIT, ONCHAIN_PROJECT_SOFT_LIMIT, ONCHAIN_READ_WARN_BYTES, ETH_CALL_GAS_FLOOR, readableBytesAtGas, probeBestEthCallGasCap, assertUriBaseLockable, } from '@artblocks/abx-sdk';
9
+ import { MAX_ROYALTY_BPS, assertChainId, ensureChunkStore as sdkEnsureChunkStore, predictFixedPriceMinter, predictFixedPriceMinter1155, makeHotSender, makePublicClient, makeWalletClient, oneOfOneImageAbi, oneOfOneEditionAbi, seriesImageAbi, deployFixedPriceMinter, deployFixedPriceMinter1155, prepareConfigureSale, prepareConfigureSale1155, preparePurchase, preparePurchase1155, readSaleConfig, readSaleConfig1155, prepareEditionMint, prepareEditionTransfer, prepareSetMaxSupply, preparePingURI, prepareLockContractField, prepareLockContractURI, prepareLockTokenField, prepareLockTokenURI, prepareMint, mintedTokenIds, prepareSeriesMintMany, prepareSetMinter, prepareSetMaxInvocations, prepareSetPrimaryPayee, prepareSetPaused, prepareSetContractField, prepareSetContractURIBase, prepareSetContractURIOverride, prepareSetContractURIRenderer, prepareSetParamHooks, prepareSetParamSchema, prepareRetireParam, readParamSchema, PARAM_TYPES, prepareSetRoyalty, prepareReduceMaxRoyaltyBps, prepareSetTokenField, batchOps, prepareSetTokenURIBase, prepareSetTokenURIOverride, prepareSetTokenURIRenderer, prepareSetTransferValidator, prepareSetSeedSource, probeSeedSource, readSeedSource, predictSeedSource, getDeployment, prepareTransfer, prepareTransferOwnership, probeTransferValidator, readCreatorTokenStatus, resolveRecommendedTransferValidator, RECOMMENDED_TRANSFER_VALIDATOR, KNOWN_CHAIN_KEYS, resolveChain, resolveRpcUrl, redactRpcUrl, encodeTag, decodeTag, METADATA_FIELD as F, METADATA_REPRESENTATION as R, stageFieldContent, planStagedContent, exceedsOnchainSoftLimit, classifyOnchainReadSize, tokenUriGasEstimate, ONCHAIN_IMAGE_SOFT_LIMIT, ONCHAIN_PROJECT_SOFT_LIMIT, ONCHAIN_READ_WARN_BYTES, ETH_CALL_GAS_FLOOR, readableBytesAtGas, probeBestEthCallGasCap, assertUriBaseLockable, } from '@artblocks/abx-sdk';
10
10
  import { encodeScalarParam, encodeTag as encodeTagSdk, isAccepted, prepareConfigureTokenParam, prepareConfigureTokenParamData, prepareSetContractParam, prepareSetContractParamData, seriesCodeAbi, tryReadContract, } from '@artblocks/abx-sdk';
11
- import { hasParamEnumeration, GATEWAY_FIELD, GATEWAY_FLOOR, gatewayPrefixFrom, readCollectionPolicy, readEnv } from '@artblocks/abx-sdk';
11
+ import { hasParamEnumeration, GATEWAY_FIELD, GATEWAY_FLOOR, gatewayPrefixFrom, readCollectionPolicy, readEnv, DEFAULT_STORED_IMAGE_TYPE, isDeclarableImageType, storedImageType } from '@artblocks/abx-sdk';
12
12
  import { decodeFieldRenderer, encodeFieldRenderer, resolveGenerator, DEP_RESOLUTION, parseDependencyRef, prepareLockDependencies, prepareLockParamHooks, prepareLockScript, prepareRemoveLastDependency, prepareSetDependency, prepareSetDependencyRegistry, } from '@artblocks/abx-sdk';
13
13
  import { planScriptReplace, prepareRemoveLastScriptChunk, prepareSetScriptChunk, verifyScriptReplace, } from '@artblocks/abx-sdk';
14
14
  import { contentTypeFromPath } from '@artblocks/abx-storage';
@@ -1823,6 +1823,78 @@ async function putContentOnChain(bytes, compress, field, send, finalLabel = '1 o
1823
1823
  },
1824
1824
  });
1825
1825
  }
1826
+ // ── stored image types (`abx_image_type`, renderer spec v12) ──────────────────
1827
+ // Bytes stored in the `image` field carry no type of their own, so both serving planes label them
1828
+ // with the reserved `abx_image_type` declaration, SVG when unset. Every path that stores image bytes
1829
+ // on chain must therefore declare a raster's type alongside it — before v12 nothing could, and a
1830
+ // JPEG staged with `--onchain-image` was served as `image/svg+xml` and drew as a broken image.
1831
+ /** Types a stored `image` may carry: the formats browsers and marketplaces draw from a `data:` URI.
1832
+ * (`contentTypeFromPath` also knows TIFF and PSD, which no browser renders as an image.) */
1833
+ const STORABLE_IMAGE_TYPES = new Set(['image/svg+xml', 'image/png', 'image/jpeg', 'image/gif', 'image/webp', 'image/avif']);
1834
+ /**
1835
+ * The `abx_image_type` a file stored in the `image` field needs: `null` for SVG (the default, nothing
1836
+ * to declare), else the type named by the file's extension — the same declared-type convention
1837
+ * `abx attach` uses; bytes are never sniffed for a raster type. Throws, before anything is staged,
1838
+ * for a file no browser would draw as an image.
1839
+ */
1840
+ export function storedImageTypeFor(bytes, path) {
1841
+ if (/^\s*<(\?xml|svg)/i.test(new TextDecoder().decode(bytes.subarray(0, 256))))
1842
+ return null;
1843
+ const type = contentTypeFromPath(path);
1844
+ if (type === DEFAULT_STORED_IMAGE_TYPE)
1845
+ return null;
1846
+ if (!STORABLE_IMAGE_TYPES.has(type) || !isDeclarableImageType(type)) {
1847
+ const named = type === 'application/octet-stream' ? 'has no recognised image extension' : `is ${type}`;
1848
+ throw new Error(`${basename(path)} ${named}. An on-chain image must be SVG, PNG, JPEG, GIF, WebP or AVIF, and its type is ` +
1849
+ 'declared from the file extension — rename the file with its real extension, or convert it first.');
1850
+ }
1851
+ return type;
1852
+ }
1853
+ /** The inline `abx_image_type` field declaring `type` for stored image bytes. */
1854
+ export const imageTypeField = (type) => ({
1855
+ field: encodeTag(F.imageType),
1856
+ representation: encodeTag(R.inline),
1857
+ value: toHex(type),
1858
+ });
1859
+ /**
1860
+ * The `abx_image_type` write that must accompany storing `bytes` in the `image` field at this scope,
1861
+ * or `null` when the type already served is right. Both scopes are read because the served type
1862
+ * walks token → collection: a token inheriting `image/png` from its collection still needs its own
1863
+ * declaration for a JPEG, and an SVG replacing a raster needs `image/svg+xml` written back (the
1864
+ * field store rejects an empty value, so an explicit SVG declaration is how a type is cleared).
1865
+ * Refuses — before anything is staged — when the needed write would hit a locked field.
1866
+ */
1867
+ async function planImageTypeWrite(contract, collection, tokenId, bytes, path) {
1868
+ const wanted = storedImageTypeFor(bytes, path) ?? DEFAULT_STORED_IMAGE_TYPE;
1869
+ const publicClient = makePublicClient({ chainKey: CHAIN });
1870
+ const tag = encodeTag(F.imageType);
1871
+ const asField = (r) => r && r[1] !== '0x' ? [{ field: F.imageType, representation: decodeTag(r[0]), value: r[1] }] : [];
1872
+ const coll = asField(await tryReadContract(publicClient, { address: contract, abi: oneOfOneImageAbi, functionName: 'contractField', args: [tag] }));
1873
+ const tok = collection
1874
+ ? undefined
1875
+ : asField(await tryReadContract(publicClient, { address: contract, abi: oneOfOneImageAbi, functionName: 'tokenField', args: [tokenId, tag] }));
1876
+ if (storedImageType(tok, coll) === wanted)
1877
+ return null;
1878
+ const locked = collection
1879
+ ? await tryReadContract(publicClient, { address: contract, abi: oneOfOneImageAbi, functionName: 'contractFieldLocked', args: [tag] })
1880
+ : await tryReadContract(publicClient, { address: contract, abi: oneOfOneImageAbi, functionName: 'tokenFieldLocked', args: [tokenId, tag] });
1881
+ if (locked) {
1882
+ throw new Error(`${basename(path)} must be served as ${wanted}, but ${F.imageType} is locked${collection ? ' at collection scope' : ` on token #${tokenId}`} ` +
1883
+ `with a different type. Storing it would publish an image every browser mislabels, so nothing was staged.`);
1884
+ }
1885
+ return wanted;
1886
+ }
1887
+ /** A hand-set `abx_image_type` must be a value the renderer honors — anything else is silently
1888
+ * ignored on read and the image keeps serving as SVG, which is exactly the failure it exists to fix. */
1889
+ function assertImageTypeValue(flags) {
1890
+ const text = flags.text && flags.text !== 'true' ? flags.text : undefined;
1891
+ const rep = flags.representation ?? R.inline;
1892
+ if (!text || rep !== R.inline || !isDeclarableImageType(text)) {
1893
+ throw new Error(`${F.imageType} declares the media type of STORED image bytes and must be an inline image type, e.g.\n` +
1894
+ ` abx set-field <address> --field ${F.imageType} --text image/jpeg [--collection | --token 0]\n` +
1895
+ ' (lowercase `image/<subtype>`, no parameters). `abx set-field --field image --file <path>` writes it for you.');
1896
+ }
1897
+ }
1826
1898
  export function refusePrewrappedImage(bytes, label) {
1827
1899
  const head = typeof bytes === 'string' ? bytes.slice(0, 40) : new TextDecoder().decode(bytes.subarray(0, 40));
1828
1900
  if (/^\s*data:/i.test(head)) {
@@ -1839,13 +1911,15 @@ export function refusePrewrappedImage(bytes, label) {
1839
1911
  export async function previewImageStaging(imagePath, compress) {
1840
1912
  const bytes = readFileSync(resolvePath(imagePath));
1841
1913
  refusePrewrappedImage(bytes, basename(resolvePath(imagePath)));
1914
+ const type = storedImageTypeFor(bytes, resolvePath(imagePath));
1842
1915
  const p = computeContentPlan(bytes, compress);
1843
1916
  // The gate runs on the dry-run too: a refusal a creator only meets after the first staging tx has
1844
1917
  // landed is a refusal that already cost them gas.
1845
1918
  await guardOnChainSize(bytes.length, basename(resolvePath(imagePath)));
1846
1919
  return (`would stage ${basename(resolvePath(imagePath))} on-chain (chunk store): ` +
1847
1920
  `${planSizeLine(bytes.length, p, compress)} as ${p.representation}; ` +
1848
- `${planTxLine(p, '1 deploy (bakes the reader field)')}`);
1921
+ `${planTxLine(p, '1 deploy (bakes the reader field)')}` +
1922
+ (type ? `; declares ${type} (abx_image_type)` : ''));
1849
1923
  }
1850
1924
  /**
1851
1925
  * Stage an image file fully on-chain (chunk store) and return the `reader`-backed
@@ -1857,10 +1931,12 @@ export async function previewImageStaging(imagePath, compress) {
1857
1931
  export async function stageImageField(imagePath, compress, send) {
1858
1932
  const bytes = readFileSync(resolvePath(imagePath));
1859
1933
  refusePrewrappedImage(bytes, basename(resolvePath(imagePath)));
1934
+ const type = storedImageTypeFor(bytes, resolvePath(imagePath)); // refuse before the first staging tx
1860
1935
  const { value, representation } = await putContentOnChain(bytes, compress, 'image', send, '1 deploy (bakes the reader field)');
1861
1936
  return {
1862
- field: { field: encodeTag(F.image), representation: encodeTag(representation), value },
1863
- note: `image: ${bytes.length}B staged ON-CHAIN via reader (${representation}) — baked into the deploy`,
1937
+ // A raster also bakes its declared type — without it every plane serves the bytes as SVG.
1938
+ fields: [{ field: encodeTag(F.image), representation: encodeTag(representation), value }, ...(type ? [imageTypeField(type)] : [])],
1939
+ note: `image: ${bytes.length}B staged ON-CHAIN via reader (${representation})${type ? `, declared ${type}` : ''} — baked into the deploy`,
1864
1940
  };
1865
1941
  }
1866
1942
  /**
@@ -1868,9 +1944,15 @@ export async function stageImageField(imagePath, compress, send) {
1868
1944
  * {@link stageImageField} for a Series. The store is resolved/deployed **once** (not per token),
1869
1945
  * then every file is staged against it and returned as its own `reader`-backed `image` field.
1870
1946
  * Each field still points at its own manifest, so each token's work is independent; they just
1871
- * share the store contract. Returns the fields in input order (token order).
1947
+ * share the store contract. Returns the fields in input order (token order), with each file's
1948
+ * `abx_image_type` declaration (`null` for SVG) at the same index in `typeFields`.
1872
1949
  */
1873
1950
  export async function stageImageFieldsBatch(imagePaths, compress, send, storeOverride) {
1951
+ // Every file's type is settled before the store is touched, so an unstorable file costs nothing.
1952
+ const typeFields = imagePaths.map((imagePath) => {
1953
+ const type = storedImageTypeFor(readFileSync(resolvePath(imagePath)), resolvePath(imagePath));
1954
+ return type ? imageTypeField(type) : null;
1955
+ });
1874
1956
  const store = await ensureChunkStore(send, storeOverride);
1875
1957
  const fields = [];
1876
1958
  for (const imagePath of imagePaths) {
@@ -1878,7 +1960,7 @@ export async function stageImageFieldsBatch(imagePaths, compress, send, storeOve
1878
1960
  const { value, representation } = await putContentOnChain(bytes, compress, 'image', send, '1 deploy (bakes the reader fields)', store);
1879
1961
  fields.push({ field: encodeTag(F.image), representation: encodeTag(representation), value });
1880
1962
  }
1881
- return { fields, store };
1963
+ return { fields, typeFields, store };
1882
1964
  }
1883
1965
  // ── the generator repoint guard ───────────────────────────────────────────────
1884
1966
  // The canonical AbxGenerator reads a token's param surface FROM CHAIN (`tokenParamKeys` /
@@ -2040,9 +2122,18 @@ export async function cmdSetField(address, flags) {
2040
2122
  const owner = await read(contract, 'owner');
2041
2123
  await assertGeneratorRepointable(contract, field, flags); // legacy impl + the current generator = params silently invisible
2042
2124
  const staging = !!(flags.file && flags.file !== 'true'); // large content ON-CHAIN via chunk store/reader
2043
- if (staging && field === 'image') {
2044
- refusePrewrappedImage(readFileSync(resolvePath(flags.file)), `--file`);
2045
- }
2125
+ // Stored image bytes are served with the declared `abx_image_type`, so settle the type write that
2126
+ // must follow the image write now — an unstorable file or a locked declaration is refused here,
2127
+ // before any chunk is staged.
2128
+ let imageTypeWrite = null;
2129
+ if (staging && field === F.image) {
2130
+ const path = resolvePath(flags.file);
2131
+ const bytes = readFileSync(path);
2132
+ refusePrewrappedImage(bytes, `--file`);
2133
+ imageTypeWrite = await planImageTypeWrite(contract, collection, BigInt(flags.token ?? '0'), bytes, path);
2134
+ }
2135
+ if (field === F.imageType)
2136
+ assertImageTypeValue(flags);
2046
2137
  // --file + --dry-run: preview the on-chain staging plan and store/send NOTHING. (The locator/text
2047
2138
  // path flows through runWrite, which previews there; staging must short-circuit before any upload.)
2048
2139
  if (staging && isDryRun(flags)) {
@@ -2053,12 +2144,17 @@ export async function cmdSetField(address, flags) {
2053
2144
  console.log(`\n ${bold('◆ set-field ' + field)} ${dim('(dry run — nothing staged or sent)')}`);
2054
2145
  console.log(` ${dim('scope'.padEnd(12))} ${collection ? 'collection' : `token #${flags.token ?? '0'}`}`);
2055
2146
  console.log(` ${planSizeLine(bytes.length, p, parseCompress(flags.compress))}`);
2147
+ if (imageTypeWrite)
2148
+ console.log(` ${dim('then'.padEnd(12))} set ${F.imageType} = ${imageTypeWrite} ${dim('(1 more tx — the type the image is served with)')}`);
2056
2149
  console.log(dim(`\n Re-run without --dry-run to stage on-chain (lane: ${lane}).\n`));
2057
2150
  return;
2058
2151
  }
2059
- const buildTx = (value, representation) => collection
2060
- ? prepareSetContractField({ contract, field, representation, value, chainId: chainId() })
2061
- : prepareSetTokenField({ contract, tokenId: BigInt(flags.token ?? '0'), field, representation, value, chainId: chainId() });
2152
+ const buildFieldTx = (f, value, representation) => collection
2153
+ ? prepareSetContractField({ contract, field: f, representation, value, chainId: chainId() })
2154
+ : prepareSetTokenField({ contract, tokenId: BigInt(flags.token ?? '0'), field: f, representation, value, chainId: chainId() });
2155
+ const buildTx = (value, representation) => buildFieldTx(field, value, representation);
2156
+ // The declaration that follows a stored image, at the image's own scope.
2157
+ const typeTx = imageTypeWrite ? buildFieldTx(F.imageType, toHex(imageTypeWrite), R.inline) : null;
2062
2158
  // On-chain staging (--file) is a SEQUENCE — chunk write(s) → manifest → the field-set that
2063
2159
  // references it — where each tx's receipt feeds the next, so it can't be signed offline.
2064
2160
  if (staging && lane === 'unsigned') {
@@ -2076,6 +2172,8 @@ export async function cmdSetField(address, flags) {
2076
2172
  try {
2077
2173
  const { value, representation } = await putContentOnChain(bytes, compress, field, sessionStagingSender(session));
2078
2174
  await session.send(buildTx(value, representation));
2175
+ if (typeTx)
2176
+ await session.send(typeTx);
2079
2177
  }
2080
2178
  finally {
2081
2179
  session.close();
@@ -2093,7 +2191,7 @@ export async function cmdSetField(address, flags) {
2093
2191
  const session = await openWalletSession({
2094
2192
  chainKey: CHAIN,
2095
2193
  expectedSigner: owner,
2096
- total: stagingTxs + 1,
2194
+ total: stagingTxs + 1 + (typeTx ? 1 : 0),
2097
2195
  port: flags.port ? Number(flags.port) : undefined,
2098
2196
  signUrlFile: flags['sign-url-file'],
2099
2197
  });
@@ -2101,6 +2199,8 @@ export async function cmdSetField(address, flags) {
2101
2199
  await session.connect();
2102
2200
  const { value, representation } = await putContentOnChain(bytes, compress, field, sessionStagingSender(session));
2103
2201
  await session.send(buildTx(value, representation));
2202
+ if (typeTx)
2203
+ await session.send(typeTx);
2104
2204
  }
2105
2205
  finally {
2106
2206
  session.close();
@@ -2133,7 +2233,9 @@ export async function cmdSetField(address, flags) {
2133
2233
  value = encodeStructuredFieldValue(representation, value);
2134
2234
  if (representation === R.renderer)
2135
2235
  await assertFieldRendererDeployed(value);
2136
- const sent = await runWrite(contract, buildTx(value, representation), flags, owner);
2236
+ let sent = await runWrite(contract, buildTx(value, representation), flags, owner);
2237
+ if (sent && typeTx)
2238
+ sent = await runWrite(contract, typeTx, flags, owner);
2137
2239
  // Then prove the thing the creator actually cares about: that the served document still reads.
2138
2240
  // A field renderer is the project's OWN contract — it can revert for reasons no static check
2139
2241
  // sees — so the honest confirmation is to call tokenURI once, after the write.