@kaspacom/kcc20-tx-builder 0.8.0-fee.11 → 0.8.0-fee.13

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.
@@ -7,7 +7,7 @@ declare const PINS: {
7
7
  readonly bid: readonly ["KCC20OrderbookFeeBidV1.placeholder.json", "KCC20OrderbookFeeBidV1", "98d7c97319bbe1ca954c7f4f6a02467e90a7f3e84c14c91db650f8ef5887ee0e"];
8
8
  readonly ticket: readonly ["KCC20FeeTicket.placeholder.json", "KCC20FeeTicket", "289f3f74914deb383d2cccc11128187a77e4bcea90e61c83e05d86c5c9d63bc5"];
9
9
  readonly wrapper: readonly ["KCC20WrapperFeeV1.placeholder.json", "KCC20WrapperFeeV1", "84c3844493efd4bdf6b2e3435e1ac511f5b5a7f58b5b6c093c91e2edcae1a2e0"];
10
- readonly argentWrapper: readonly ["KCC20WrapperFeeArgentV1.placeholder.json", "KCC20WrapperFeeArgentV1", "130f25462e070523821579d28809577fac6d010f8d5deabc66ad2de1c11d2c73"];
10
+ readonly argentWrapper: readonly ["KCC20WrapperFeeArgentV2.placeholder.json", "KCC20WrapperFeeArgentV2", "8a3b33e4c4b340fb88069e86536106b446014fe68cd533117fe4ec1499325c23"];
11
11
  };
12
12
  export type Kcc20FeeArtifactRole = keyof typeof PINS;
13
13
  export type Kcc20FeeArtifactSet = {
@@ -15,7 +15,7 @@ const PINS = {
15
15
  bid: ["KCC20OrderbookFeeBidV1.placeholder.json", "KCC20OrderbookFeeBidV1", "98d7c97319bbe1ca954c7f4f6a02467e90a7f3e84c14c91db650f8ef5887ee0e"],
16
16
  ticket: ["KCC20FeeTicket.placeholder.json", "KCC20FeeTicket", "289f3f74914deb383d2cccc11128187a77e4bcea90e61c83e05d86c5c9d63bc5"],
17
17
  wrapper: ["KCC20WrapperFeeV1.placeholder.json", "KCC20WrapperFeeV1", "84c3844493efd4bdf6b2e3435e1ac511f5b5a7f58b5b6c093c91e2edcae1a2e0"],
18
- argentWrapper: ["KCC20WrapperFeeArgentV1.placeholder.json", "KCC20WrapperFeeArgentV1", "130f25462e070523821579d28809577fac6d010f8d5deabc66ad2de1c11d2c73"],
18
+ argentWrapper: ["KCC20WrapperFeeArgentV2.placeholder.json", "KCC20WrapperFeeArgentV2", "8a3b33e4c4b340fb88069e86536106b446014fe68cd533117fe4ec1499325c23"],
19
19
  };
20
20
  const POLICY_ROLES = ["receipt", "root", "holder", "ask", "bid", "ticket"];
21
21
  function hex(bytes) {
@@ -427,3 +427,10 @@ export declare function prepareKcc20FeeMarketBid(input: Kcc20FeeMarketGenesisInp
427
427
  };
428
428
  };
429
429
  };
430
+ /** Resolve an existing role's bound wrapper against both pinned profiles.
431
+ * The caller must still authenticate the complete role script against its live UTXO.
432
+ */
433
+ export declare function resolveKcc20FeeMarketWrapperProfile(input: Omit<Kcc20FeeMarketGenesisInput, "wrapperProfile"> & {
434
+ marketId: string;
435
+ wrapperScriptHash: string;
436
+ }): "native" | "argent";
@@ -5,6 +5,7 @@ exports.prepareKcc20FeeMarketBinding = prepareKcc20FeeMarketBinding;
5
5
  exports.prepareKcc20FeeMarketWrappedHolder = prepareKcc20FeeMarketWrappedHolder;
6
6
  exports.prepareKcc20FeeMarketAsk = prepareKcc20FeeMarketAsk;
7
7
  exports.prepareKcc20FeeMarketBid = prepareKcc20FeeMarketBid;
8
+ exports.resolveKcc20FeeMarketWrapperProfile = resolveKcc20FeeMarketWrapperProfile;
8
9
  const escrow_policy_js_1 = require("./escrow-policy.js");
9
10
  const escrow_market_artifacts_js_1 = require("./escrow-market-artifacts.js");
10
11
  const ZERO = "00".repeat(32);
@@ -137,4 +138,22 @@ function prepareKcc20FeeMarketBid(input) {
137
138
  role: "bid", state: bidState });
138
139
  return { binding, bidState, bid };
139
140
  }
141
+ /** Resolve an existing role's bound wrapper against both pinned profiles.
142
+ * The caller must still authenticate the complete role script against its live UTXO.
143
+ */
144
+ function resolveKcc20FeeMarketWrapperProfile(input) {
145
+ const expected = hex32(input.wrapperScriptHash, "bound wrapper script hash");
146
+ const marketId = hex32(input.marketId, "market ID");
147
+ for (const wrapperProfile of ["native", "argent"]) {
148
+ if (wrapperProfile === "argent" && input.policy.creatorFeeBps !== 0)
149
+ continue;
150
+ const genesis = prepareKcc20FeeMarketGenesis({ ...input, wrapperProfile });
151
+ const role = wrapperProfile === "native" ? "wrapper" : "argentWrapper";
152
+ const wrapper = (0, escrow_market_artifacts_js_1.buildKcc20FeeMarketRoleScript)({ artifact: input.artifacts[role], role,
153
+ state: { ...genesis.state, enabled: true, authenticatedMarketId: marketId } });
154
+ if (wrapper.scriptHash === expected)
155
+ return wrapperProfile;
156
+ }
157
+ throw new Error("bound wrapper does not match a supported fee-market profile");
158
+ }
140
159
  //# sourceMappingURL=escrow-market-setup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"escrow-market-setup.js","sourceRoot":"","sources":["../../src/escrow-market-setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"escrow-market-setup.js","sourceRoot":"","sources":["../../src/escrow-market-setup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAkFrD,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,cAAc,CAAC,EAAE;QACf,mBAAmB,CAAC,IAAI,EAAE;YAAE,SAAS,EAAE,MAAM,EAAE,CAAA;SAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACtE,CAAC;IACF,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,GAAG,CAAC;IAC5C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yBAAyB,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IACjE,gFAAgF;IAChF,oBAAoB,CAAC,EAAE;QAAE,QAAQ,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3E;AAED,MAAM,WAAW,8BAA8B;IAC7C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,qCAAqC,CAAC,KAAK,EAAE;QAC3C,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC5C,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,6BAA6B,GACrC,sBAAsB,CAwmhBxB"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAkFrD,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,cAAc,CAAC,EAAE;QACf,mBAAmB,CAAC,IAAI,EAAE;YAAE,SAAS,EAAE,MAAM,EAAE,CAAA;SAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACtE,CAAC;IACF,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,GAAG,CAAC;IAC5C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yBAAyB,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IACjE,gFAAgF;IAChF,oBAAoB,CAAC,EAAE;QAAE,QAAQ,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3E;AAED,MAAM,WAAW,8BAA8B;IAC7C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,qCAAqC,CAAC,KAAK,EAAE;QAC3C,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC5C,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,6BAA6B,GACrC,sBAAsB,CAsphBxB"}
package/dist/engine.js CHANGED
@@ -10,7 +10,7 @@ import { DEFAULT_COMPUTE_BUDGET, DEFAULT_KCC20_FEE_BPS, DEFAULT_KCC20_MIN_PROTOC
10
10
  import { buildKcc20BurnSigScript, buildKcc20MintByOwnerSigScript, buildKcc20MintPublicSigScript, buildKcc20ScriptForState, buildKcc20SetPublicMintActiveSigScript, buildKcc20TransferSigScript, dispatchTagFor, templateHash, encodeKcc20StateRecordArrays, holderExtensionCommitment, mintExtensionCommitment, normalizeSilverScriptArtifact, ownerAuthorizationWitness, } from "./abi.js";
11
11
  import { KCC20_BUILDER_KEYS } from "./operations.js";
12
12
  import { buildKcc20InitialFeeAccount, planKcc20FeeAccountBinding } from "./escrow-account-setup.js";
13
- import { prepareKcc20FeeMarketGenesis, prepareKcc20FeeMarketBinding, prepareKcc20FeeMarketWrappedHolder, prepareKcc20FeeMarketAsk, prepareKcc20FeeMarketBid } from "./escrow-market-setup.js";
13
+ import { resolveKcc20FeeMarketWrapperProfile, prepareKcc20FeeMarketGenesis, prepareKcc20FeeMarketBinding, prepareKcc20FeeMarketWrappedHolder, prepareKcc20FeeMarketAsk, prepareKcc20FeeMarketBid } from "./escrow-market-setup.js";
14
14
  import { buildKcc20FeeMarketRoleScript } from "./escrow-market-artifacts.js";
15
15
  import { calculateKcc20EscrowFees } from "./escrow-fee.js";
16
16
  import { kcc20CreatorFeeConsent, decodeKcc20EscrowPolicy } from "./escrow-policy.js";
@@ -1972,7 +1972,7 @@ export function createKcc20PsktBuilderEngine(options) {
1972
1972
  receipt: "KCC20FeeEscrowV1", root: "KCC20OrderbookFeeRootV1",
1973
1973
  holder: "KCC20OrderbookFeeHolderV1", ask: "KCC20OrderbookFeeAskV1",
1974
1974
  bid: "KCC20OrderbookFeeBidV1", ticket: "KCC20FeeTicket",
1975
- wrapper: "KCC20WrapperFeeV1", argentWrapper: "KCC20WrapperFeeArgentV1",
1975
+ wrapper: "KCC20WrapperFeeV1", argentWrapper: "KCC20WrapperFeeArgentV2",
1976
1976
  };
1977
1977
  const entries = await Promise.all(Object.entries(names).map(async ([role, name]) => {
1978
1978
  const key = `${name}.placeholder.json`;
@@ -2397,8 +2397,9 @@ export function createKcc20PsktBuilderEngine(options) {
2397
2397
  throw new Error("wrapped amount exceeds token input");
2398
2398
  const tokenProfile = await resolveKcc20ArtifactForState(tokenState, requireKaspaAddress(source.address), network);
2399
2399
  requireTokenCapability(tokenProfile.profile, "wrap");
2400
- if (tokenProfile.profile.id !== "kaspacom-kcc20-last-call-v1") {
2401
- throw new Error("fee-market wrap for this token profile needs its signed witness proof");
2400
+ const wrapperProfile = tokenProfile.profile.id === "argent-reference-kcc20-v1" ? "argent" : "native";
2401
+ if (wrapperProfile === "native" && tokenProfile.profile.id !== "kaspacom-kcc20-last-call-v1") {
2402
+ throw new Error("unsupported fee-market token profile");
2402
2403
  }
2403
2404
  const creatorConsent = verifyReusableCreatorConsent(params, tokenId, marketId, feeTicketId, priceScale, false);
2404
2405
  let creatorHolderExtension = new Uint8Array(0);
@@ -2426,12 +2427,12 @@ export function createKcc20PsktBuilderEngine(options) {
2426
2427
  const artifacts = await readFeeMarketArtifacts();
2427
2428
  const plan = prepareKcc20FeeMarketWrappedHolder({
2428
2429
  tokenId, feeTicketId, priceScale, policy: params.feePolicy,
2429
- wrapperProfile: "native", artifacts, marketId, recipientOwner,
2430
+ wrapperProfile, artifacts, marketId, recipientOwner,
2430
2431
  recipientOwnerScheme: 0, recipientPayoutScriptHash: payoutHash,
2431
2432
  tokenAmount,
2432
2433
  });
2433
2434
  if (prepareKcc20FeeMarketGenesis({ tokenId, feeTicketId, priceScale,
2434
- policy: params.feePolicy, wrapperProfile: "native", artifacts }).policyId !==
2435
+ policy: params.feePolicy, wrapperProfile, artifacts }).policyId !==
2435
2436
  requireHex32(params.policyId, "policy ID")) {
2436
2437
  throw new Error("fee-market wrap policy ID mismatch");
2437
2438
  }
@@ -2527,12 +2528,12 @@ export function createKcc20PsktBuilderEngine(options) {
2527
2528
  const holderParts = templateParts(normalizeSilverScriptArtifact(artifacts.holder));
2528
2529
  wrapperPrefix.addData(holderParts.prefix);
2529
2530
  wrapperPrefix.addData(holderParts.suffix);
2530
- addKcc20State(wrapperPrefix, lockedState);
2531
+ addFeeMarketNativeState(wrapperPrefix, lockedState, tokenProfile);
2531
2532
  addFeeMarketRoleState(wrapperPrefix, plan.holderState);
2532
2533
  wrapperPrefix.addData(creatorHolderExtension);
2533
2534
  wrapperPrefix.addData(creatorConsent
2534
2535
  ? hexToBytes(creatorConsent.signature) : new Uint8Array(64));
2535
- wrapperPrefix.addData(dispatchTagFor(artifacts.wrapper, "wrap"));
2536
+ wrapperPrefix.addData(dispatchTagFor(artifacts[wrapperProfile === "argent" ? "argentWrapper" : "wrapper"], "wrap"));
2536
2537
  transaction.inputs[1].signatureScript = encodeCovenantP2shSignatureScript(wrapperPrefix.drain(), plan.wrapper.redeemScript);
2537
2538
  const scripts = [{ inputIndex: 0, scriptHex: bytesToHex(tokenScript),
2538
2539
  signType: 1, signatureScript: { mode: "ordered-args",
@@ -2609,8 +2610,9 @@ export function createKcc20PsktBuilderEngine(options) {
2609
2610
  }
2610
2611
  const tokenProfile = await resolveKcc20ArtifactForState(reserveState, requireKaspaAddress(reserveUtxo.address), network);
2611
2612
  requireTokenCapability(tokenProfile.profile, "unwrap");
2612
- if (tokenProfile.profile.id !== "kaspacom-kcc20-last-call-v1") {
2613
- throw new Error("fee-market unwrap for this token profile needs its signed witness proof");
2613
+ const wrapperProfile = tokenProfile.profile.id === "argent-reference-kcc20-v1" ? "argent" : "native";
2614
+ if (wrapperProfile === "native" && tokenProfile.profile.id !== "kaspacom-kcc20-last-call-v1") {
2615
+ throw new Error("unsupported fee-market token profile");
2614
2616
  }
2615
2617
  const kw = kaspaWasm;
2616
2618
  const payoutSpk = p2pkScriptPubKey(kw, recipientOwner);
@@ -2626,7 +2628,7 @@ export function createKcc20PsktBuilderEngine(options) {
2626
2628
  }
2627
2629
  const artifacts = await readFeeMarketArtifacts();
2628
2630
  const planInput = { tokenId, feeTicketId, priceScale, policy: params.feePolicy,
2629
- wrapperProfile: "native", artifacts, marketId, recipientOwner,
2631
+ wrapperProfile, artifacts, marketId, recipientOwner,
2630
2632
  recipientOwnerScheme: 0, recipientPayoutScriptHash: payoutHash };
2631
2633
  const plan = prepareKcc20FeeMarketWrappedHolder({ ...planInput,
2632
2634
  tokenAmount: wrappedAmount });
@@ -2754,10 +2756,10 @@ export function createKcc20PsktBuilderEngine(options) {
2754
2756
  wrapperPrefix.addData(hexToBytes(recipientOwner));
2755
2757
  addExplicitByte(wrapperPrefix, 0);
2756
2758
  wrapperPrefix.addI64(tokenAmount);
2757
- addKcc20State(wrapperPrefix, recipientState);
2758
- addKcc20State(wrapperPrefix, reserveChangeState);
2759
+ addFeeMarketNativeState(wrapperPrefix, recipientState, tokenProfile);
2760
+ addFeeMarketNativeState(wrapperPrefix, reserveChangeState, tokenProfile);
2759
2761
  addFeeMarketRoleState(wrapperPrefix, wrappedChangeState);
2760
- wrapperPrefix.addData(dispatchTagFor(artifacts.wrapper, "unwrap"));
2762
+ wrapperPrefix.addData(dispatchTagFor(artifacts[wrapperProfile === "argent" ? "argentWrapper" : "wrapper"], "unwrap"));
2761
2763
  transaction.inputs[2].signatureScript = encodeCovenantP2shSignatureScript(wrapperPrefix.drain(), plan.wrapper.redeemScript);
2762
2764
  const reservePrefix = buildKcc20TransferSigScript(kw, tokenProfile.artifact, {
2763
2765
  nextStates: reserveRemaining > 0n
@@ -2832,8 +2834,11 @@ export function createKcc20PsktBuilderEngine(options) {
2832
2834
  payoutBytes.set(payoutScript, 11);
2833
2835
  const payoutHash = bytesToHex(blake3(payoutBytes));
2834
2836
  const artifacts = await readFeeMarketArtifacts();
2837
+ const wrapperProfile = resolveKcc20FeeMarketWrapperProfile({ tokenId, marketId,
2838
+ feeTicketId, priceScale, policy: params.feePolicy, artifacts,
2839
+ wrapperScriptHash: sources[0]?.state?.wrapper_spk_hash });
2835
2840
  const planInput = { tokenId, feeTicketId, priceScale, policy: params.feePolicy,
2836
- wrapperProfile: params.wrapperProfile || "native", artifacts, marketId,
2841
+ wrapperProfile, artifacts, marketId,
2837
2842
  recipientOwner: owner, recipientOwnerScheme: 0,
2838
2843
  recipientPayoutScriptHash: payoutHash };
2839
2844
  if (prepareKcc20FeeMarketGenesis(planInput).policyId !==
@@ -3004,8 +3009,11 @@ export function createKcc20PsktBuilderEngine(options) {
3004
3009
  payoutBytes.set(payoutScript, 11);
3005
3010
  const payoutHash = bytesToHex(blake3(payoutBytes));
3006
3011
  const artifacts = await readFeeMarketArtifacts();
3012
+ const wrapperProfile = resolveKcc20FeeMarketWrapperProfile({ tokenId, marketId,
3013
+ feeTicketId, priceScale, policy: params.feePolicy, artifacts,
3014
+ wrapperScriptHash: source?.state?.wrapper_spk_hash });
3007
3015
  const planInput = { tokenId, feeTicketId, priceScale, policy: params.feePolicy,
3008
- wrapperProfile: "native", artifacts, marketId, owner, ownerScheme: 0,
3016
+ wrapperProfile, artifacts, marketId, owner, ownerScheme: 0,
3009
3017
  payoutScriptHash: payoutHash, holderAmount, askAmount, askUnitPrice };
3010
3018
  const plan = prepareKcc20FeeMarketAsk(planInput);
3011
3019
  if (prepareKcc20FeeMarketGenesis(planInput).policyId !==
@@ -3146,8 +3154,11 @@ export function createKcc20PsktBuilderEngine(options) {
3146
3154
  throw new Error("ask payout differs from signing wallet");
3147
3155
  }
3148
3156
  const artifacts = await readFeeMarketArtifacts();
3157
+ const wrapperProfile = resolveKcc20FeeMarketWrapperProfile({ tokenId, marketId,
3158
+ feeTicketId, priceScale, policy: params.feePolicy, artifacts,
3159
+ wrapperScriptHash: source?.state?.wrapper_spk_hash });
3149
3160
  const planInput = { tokenId, feeTicketId, priceScale, policy: params.feePolicy,
3150
- wrapperProfile: "native", artifacts, marketId, owner, ownerScheme: 0,
3161
+ wrapperProfile, artifacts, marketId, owner, ownerScheme: 0,
3151
3162
  payoutScriptHash: payoutHash, holderAmount: askAmount, askAmount, askUnitPrice };
3152
3163
  const plan = prepareKcc20FeeMarketAsk(planInput);
3153
3164
  if (prepareKcc20FeeMarketGenesis(planInput).policyId !==
@@ -3278,8 +3289,11 @@ export function createKcc20PsktBuilderEngine(options) {
3278
3289
  payoutBytes.set(payoutScript, 11);
3279
3290
  const payoutHash = bytesToHex(blake3(payoutBytes));
3280
3291
  const artifacts = await readFeeMarketArtifacts();
3292
+ const wrapperProfile = resolveKcc20FeeMarketWrapperProfile({ tokenId, marketId,
3293
+ feeTicketId, priceScale, policy: params.feePolicy, artifacts,
3294
+ wrapperScriptHash: rootUtxo?.state?.wrapper_spk_hash });
3281
3295
  const planInput = { tokenId, feeTicketId, priceScale, policy: params.feePolicy,
3282
- wrapperProfile: "native", artifacts, marketId,
3296
+ wrapperProfile, artifacts, marketId,
3283
3297
  rootOwner: requireHex32(rootUtxo.state.owner, "root owner"),
3284
3298
  rootOwnerScheme: Number(rootUtxo.state.owner_scheme),
3285
3299
  rootPayoutScriptHash: requireHex32(rootUtxo.state.payout_script_hash, "root payout hash"),
@@ -3417,8 +3431,11 @@ export function createKcc20PsktBuilderEngine(options) {
3417
3431
  throw new Error("bid payout differs from signing wallet");
3418
3432
  }
3419
3433
  const artifacts = await readFeeMarketArtifacts();
3434
+ const wrapperProfile = resolveKcc20FeeMarketWrapperProfile({ tokenId, marketId,
3435
+ feeTicketId, priceScale, policy: params.feePolicy, artifacts,
3436
+ wrapperScriptHash: source?.state?.wrapper_spk_hash });
3420
3437
  const planInput = { tokenId, feeTicketId, priceScale, policy: params.feePolicy,
3421
- wrapperProfile: "native", artifacts, marketId,
3438
+ wrapperProfile, artifacts, marketId,
3422
3439
  rootOwner: owner, rootOwnerScheme: 0, rootPayoutScriptHash: payoutHash,
3423
3440
  buyer: owner, buyerScheme: 0, buyerPayoutScriptHash: payoutHash,
3424
3441
  bidAmount, bidUnitPrice };
@@ -3601,8 +3618,11 @@ export function createKcc20PsktBuilderEngine(options) {
3601
3618
  throw new Error("ask seller payout does not match authenticated owner");
3602
3619
  }
3603
3620
  const artifacts = await readFeeMarketArtifacts();
3621
+ const wrapperProfile = resolveKcc20FeeMarketWrapperProfile({ tokenId, marketId,
3622
+ feeTicketId, priceScale, policy: params.feePolicy, artifacts,
3623
+ wrapperScriptHash: askUtxo?.state?.wrapper_spk_hash });
3604
3624
  const planInput = { tokenId, feeTicketId, priceScale, policy: params.feePolicy,
3605
- wrapperProfile: "native", artifacts, marketId,
3625
+ wrapperProfile, artifacts, marketId,
3606
3626
  recipientOwner: buyer, recipientOwnerScheme: 0,
3607
3627
  recipientPayoutScriptHash: buyerPayout.hash, tokenAmount: fillAmount };
3608
3628
  const buyerPlan = prepareKcc20FeeMarketWrappedHolder(planInput);
@@ -3618,7 +3638,7 @@ export function createKcc20PsktBuilderEngine(options) {
3618
3638
  throw new Error("fee-market ask differs from fixed market policy");
3619
3639
  }
3620
3640
  const sellerPlan = prepareKcc20FeeMarketAsk({ tokenId, feeTicketId,
3621
- priceScale, policy: params.feePolicy, wrapperProfile: "native", artifacts,
3641
+ priceScale, policy: params.feePolicy, wrapperProfile, artifacts,
3622
3642
  marketId, owner: seller, ownerScheme: sellerScheme,
3623
3643
  payoutScriptHash: sellerPayout.hash, holderAmount: askAmount,
3624
3644
  askAmount, askUnitPrice });
@@ -3814,8 +3834,11 @@ export function createKcc20PsktBuilderEngine(options) {
3814
3834
  payoutBytes.set(payoutScript, 11);
3815
3835
  const buyerPayoutHash = bytesToHex(blake3(payoutBytes));
3816
3836
  const artifacts = await readFeeMarketArtifacts();
3837
+ const wrapperProfile = resolveKcc20FeeMarketWrapperProfile({ tokenId, marketId,
3838
+ feeTicketId, priceScale, policy: params.feePolicy, artifacts,
3839
+ wrapperScriptHash: asks[0]?.state?.wrapper_spk_hash });
3817
3840
  const base = { tokenId, feeTicketId, priceScale, policy: params.feePolicy,
3818
- wrapperProfile: "native", artifacts, marketId };
3841
+ wrapperProfile, artifacts, marketId };
3819
3842
  const policyId = prepareKcc20FeeMarketGenesis(base).policyId;
3820
3843
  if (policyId !== requireHex32(params.policyId, "policy ID")) {
3821
3844
  throw new Error("fee-market buyer group policy ID mismatch");
@@ -4072,6 +4095,9 @@ export function createKcc20PsktBuilderEngine(options) {
4072
4095
  sellerPayoutBytes.set(sellerScript, 11);
4073
4096
  const sellerPayoutHash = bytesToHex(blake3(sellerPayoutBytes));
4074
4097
  const artifacts = await readFeeMarketArtifacts();
4098
+ const wrapperProfile = resolveKcc20FeeMarketWrapperProfile({ tokenId, marketId,
4099
+ feeTicketId, priceScale, policy: params.feePolicy, artifacts,
4100
+ wrapperScriptHash: source?.state?.wrapper_spk_hash });
4075
4101
  let ticket = null;
4076
4102
  if (ticketRequest) {
4077
4103
  const ticketState = kcc20FeeTicketStateFromUtxo(ticketRequest, request.owner);
@@ -4095,7 +4121,7 @@ export function createKcc20PsktBuilderEngine(options) {
4095
4121
  amountSompiExact: String(ticketRequest.amountSompiExact) };
4096
4122
  }
4097
4123
  const base = { tokenId, feeTicketId, priceScale, policy: params.feePolicy,
4098
- wrapperProfile: "native", artifacts, marketId };
4124
+ wrapperProfile, artifacts, marketId };
4099
4125
  const policyId = prepareKcc20FeeMarketGenesis(base).policyId;
4100
4126
  if (policyId !== requireHex32(params.policyId, "policy ID")) {
4101
4127
  throw new Error("fee-market seller group policy ID mismatch");
@@ -4146,15 +4172,18 @@ export function createKcc20PsktBuilderEngine(options) {
4146
4172
  String(utxo.state.wrapper_spk_hash).toLowerCase() !== holderPlan.wrapper.scriptHash) {
4147
4173
  throw new Error(`bid ${slot} differs from fixed market policy`);
4148
4174
  }
4149
- // The indexer adds policy summary fields for API consumers. They are not
4175
+ // The indexer adds policy summaries and an ownerScheme alias. They are not
4150
4176
  // part of the on-chain bid state and must not enter script reconstruction.
4151
- const { creatorFeeBps: indexedCreatorFeeBps, feePolicyVersion: indexedFeePolicyVersion, ...bidState } = utxo.state;
4177
+ const { creatorFeeBps: indexedCreatorFeeBps, feePolicyVersion: indexedFeePolicyVersion, ownerScheme: indexedOwnerScheme, ...bidState } = utxo.state;
4152
4178
  if ((indexedCreatorFeeBps !== undefined &&
4153
4179
  Number(indexedCreatorFeeBps) !== params.feePolicy.creatorFeeBps) ||
4154
4180
  (indexedFeePolicyVersion !== undefined &&
4155
4181
  Number(indexedFeePolicyVersion) !== params.feePolicy.version)) {
4156
4182
  throw new Error(`bid ${slot} indexed policy summary differs from fixed policy`);
4157
4183
  }
4184
+ if (indexedOwnerScheme !== undefined && indexedOwnerScheme !== scheme) {
4185
+ throw new Error(`bid ${slot} indexed owner scheme differs from contract state`);
4186
+ }
4158
4187
  const bidScript = buildKcc20FeeMarketRoleScript({ artifact: artifacts.bid,
4159
4188
  role: "bid", state: bidState });
4160
4189
  const buyerPlan = prepareKcc20FeeMarketWrappedHolder({ ...base,
@@ -8151,8 +8180,11 @@ export function createKcc20PsktBuilderEngine(options) {
8151
8180
  const priceScale = parsePositiveU64(ask.state.priceScale, "price scale");
8152
8181
  const policy = decodeKcc20EscrowPolicy(hexToBytes(ask.state.feePolicy));
8153
8182
  const artifacts = await readFeeMarketArtifacts();
8183
+ const wrapperProfile = resolveKcc20FeeMarketWrapperProfile({ tokenId, marketId,
8184
+ feeTicketId, priceScale, policy: policy, artifacts,
8185
+ wrapperScriptHash: ask?.state?.wrapper_spk_hash });
8154
8186
  const genesis = prepareKcc20FeeMarketGenesis({ tokenId, feeTicketId,
8155
- priceScale, policy, wrapperProfile: "native", artifacts });
8187
+ priceScale, policy, wrapperProfile, artifacts });
8156
8188
  const policyId = genesis.policyId;
8157
8189
  for (const order of [ask, bid]) {
8158
8190
  for (const field of ["canonicalTokenId", "feeTicketId", "feePolicy", "priceScale", "wrapper_spk_hash"]) {
@@ -8210,7 +8242,7 @@ export function createKcc20PsktBuilderEngine(options) {
8210
8242
  const fees = calculateKcc20EscrowFees({ grossSompi: gross, creatorFeeBps: policy.creatorFeeBps, protocolWaived: false });
8211
8243
  const askRemaining = askAmount - fill, bidRemaining = bidAmount - fill;
8212
8244
  const buyerPlan = prepareKcc20FeeMarketWrappedHolder({ tokenId, marketId,
8213
- feeTicketId, priceScale, policy, wrapperProfile: "native", artifacts,
8245
+ feeTicketId, priceScale, policy, wrapperProfile, artifacts,
8214
8246
  recipientOwner: bid.state.owner, recipientOwnerScheme: Number(bid.state.owner_scheme),
8215
8247
  recipientPayoutScriptHash: bid.state.payout_script_hash, tokenAmount: fill });
8216
8248
  if (buyerPlan.holderState.feePolicy !== String(ask.state.feePolicy).toLowerCase() ||
@@ -11412,6 +11444,18 @@ export function createKcc20PsktBuilderEngine(options) {
11412
11444
  builder.addData(dispatchTagFor(args.feeTicketArtifact, "createBatchFromUtilityBurn"));
11413
11445
  return builder.drain();
11414
11446
  }
11447
+ function addFeeMarketNativeState(builder, state, tokenProfile) {
11448
+ if (tokenProfile.profile.id === "argent-reference-kcc20-v1") {
11449
+ // The pinned Argent artifact stores its generated template marker before
11450
+ // the six mutable KCC-2 fields. The wrapper ABI includes that marker.
11451
+ const artifact = normalizeSilverScriptArtifact(tokenProfile.artifact);
11452
+ if (artifact.state_layout.start !== 34 || artifact.script[1] !== 32) {
11453
+ throw new Error("Argent token template marker layout mismatch");
11454
+ }
11455
+ builder.addData(Uint8Array.from(artifact.script.slice(2, 34)));
11456
+ }
11457
+ addKcc20State(builder, state);
11458
+ }
11415
11459
  function addKcc20State(builder, state) {
11416
11460
  builder.addI64(BigInt(state.amount));
11417
11461
  builder.addData(state.ownerIdentifier ?? state.owner);