@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 = {
@@ -11,7 +11,7 @@ const PINS = {
11
11
  bid: ["KCC20OrderbookFeeBidV1.placeholder.json", "KCC20OrderbookFeeBidV1", "98d7c97319bbe1ca954c7f4f6a02467e90a7f3e84c14c91db650f8ef5887ee0e"],
12
12
  ticket: ["KCC20FeeTicket.placeholder.json", "KCC20FeeTicket", "289f3f74914deb383d2cccc11128187a77e4bcea90e61c83e05d86c5c9d63bc5"],
13
13
  wrapper: ["KCC20WrapperFeeV1.placeholder.json", "KCC20WrapperFeeV1", "84c3844493efd4bdf6b2e3435e1ac511f5b5a7f58b5b6c093c91e2edcae1a2e0"],
14
- argentWrapper: ["KCC20WrapperFeeArgentV1.placeholder.json", "KCC20WrapperFeeArgentV1", "130f25462e070523821579d28809577fac6d010f8d5deabc66ad2de1c11d2c73"],
14
+ argentWrapper: ["KCC20WrapperFeeArgentV2.placeholder.json", "KCC20WrapperFeeArgentV2", "8a3b33e4c4b340fb88069e86536106b446014fe68cd533117fe4ec1499325c23"],
15
15
  };
16
16
  const POLICY_ROLES = ["receipt", "root", "holder", "ask", "bid", "ticket"];
17
17
  function hex(bytes) {
@@ -427,4 +427,11 @@ 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";
430
437
  //# sourceMappingURL=escrow-market-setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"escrow-market-setup.d.ts","sourceRoot":"","sources":["../src/escrow-market-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgD,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1G,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,8BAA8B,CAAC;AAatC,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,cAAc,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACpC,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED,gFAAgF;AAChF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;EAuB7E;AAED,gFAAgF;AAChF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,0BAA0B,GAAG;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBA;AAED,iFAAiF;AACjF,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,0BAA0B,GAAG;IACrF,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,yBAAyB,EAAE,MAAM,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;CACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCA;AAED,gFAAgF;AAChF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,0BAA0B,GAAG;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBA;AAED,sEAAsE;AACtE,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,0BAA0B,GAAG;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBA"}
1
+ {"version":3,"file":"escrow-market-setup.d.ts","sourceRoot":"","sources":["../src/escrow-market-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgD,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1G,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,8BAA8B,CAAC;AAatC,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,cAAc,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACpC,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED,gFAAgF;AAChF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;EAuB7E;AAED,gFAAgF;AAChF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,0BAA0B,GAAG;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBA;AAED,iFAAiF;AACjF,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,0BAA0B,GAAG;IACrF,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,yBAAyB,EAAE,MAAM,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;CACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCA;AAED,gFAAgF;AAChF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,0BAA0B,GAAG;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBA;AAED,sEAAsE;AACtE,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,0BAA0B,GAAG;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBA;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,IAAI,CAAC,0BAA0B,EAAE,gBAAgB,CAAC,GAAG;IAC9G,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,GAAG,QAAQ,GAAG,QAAQ,CAYtB"}
@@ -130,4 +130,22 @@ export function prepareKcc20FeeMarketBid(input) {
130
130
  role: "bid", state: bidState });
131
131
  return { binding, bidState, bid };
132
132
  }
133
+ /** Resolve an existing role's bound wrapper against both pinned profiles.
134
+ * The caller must still authenticate the complete role script against its live UTXO.
135
+ */
136
+ export function resolveKcc20FeeMarketWrapperProfile(input) {
137
+ const expected = hex32(input.wrapperScriptHash, "bound wrapper script hash");
138
+ const marketId = hex32(input.marketId, "market ID");
139
+ for (const wrapperProfile of ["native", "argent"]) {
140
+ if (wrapperProfile === "argent" && input.policy.creatorFeeBps !== 0)
141
+ continue;
142
+ const genesis = prepareKcc20FeeMarketGenesis({ ...input, wrapperProfile });
143
+ const role = wrapperProfile === "native" ? "wrapper" : "argentWrapper";
144
+ const wrapper = buildKcc20FeeMarketRoleScript({ artifact: input.artifacts[role], role,
145
+ state: { ...genesis.state, enabled: true, authenticatedMarketId: marketId } });
146
+ if (wrapper.scriptHash === expected)
147
+ return wrapperProfile;
148
+ }
149
+ throw new Error("bound wrapper does not match a supported fee-market profile");
150
+ }
133
151
  //# 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":"AAAA,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAA0B,MAAM,oBAAoB,CAAC;AAC1G,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,GAE9B,MAAM,8BAA8B,CAAC;AAEtC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC7B,MAAM,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;AAE7B,SAAS,KAAK,CAAC,KAAc,EAAE,KAAa,EAAE,SAAS,GAAG,KAAK;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;QAC3D,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;AAC7B,CAAC;AAWD,gFAAgF;AAChF,MAAM,UAAU,4BAA4B,CAAC,KAAiC;IAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACnE,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,IAAI,EAAE,IAAI,KAAK,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;QAC7F,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,KAAK,CAAC,cAAc,KAAK,QAAQ,IAAI,KAAK,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,KAAK,CAAC,cAAc,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,6BAA6B,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,EAChE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACnH,MAAM,KAAK,GAAG;QACZ,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE;QAClF,WAAW,EAAE,SAAS,EAAE,qBAAqB,EAAE,IAAI;KACpD,CAAC;IACF,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;IAC7E,MAAM,OAAO,GAAG,6BAA6B,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAChG,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5D,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,4BAA4B,CAAC,KAK5C;IACC,MAAM,OAAO,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,oBAAoB,GAAG,KAAK,CAAC,KAAK,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;IAC1F,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,eAAe,GAAG,CAAC,IAAI,KAAK,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;QACvG,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;IAC7E,MAAM,YAAY,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,CAAC;IAC1F,MAAM,OAAO,GAAG,6BAA6B,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IAC9G,MAAM,SAAS,GAAG;QAChB,gBAAgB,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,eAAe;QACxF,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW;QACxE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS;QAC3E,kBAAkB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,OAAO,CAAC,UAAU;KAC/E,CAAC;IACF,MAAM,IAAI,GAAG,6BAA6B,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/G,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACvE,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,kCAAkC,CAAC,KAMlD;IACC,MAAM,OAAO,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;IACxE,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,CAAC;IAC9F,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,oBAAoB,CAAC;QAC7C,KAAK,CAAC,oBAAoB,GAAG,CAAC,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,IAAI,EAAE,IAAI,KAAK,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC;QAChG,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;IACpF,MAAM,YAAY,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,CAAC;IAC1F,MAAM,OAAO,GAAG,6BAA6B,CAAC;QAC5C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY;KAC/E,CAAC,CAAC;IACH,MAAM,WAAW,GAAG;QAClB,gBAAgB,EAAE,OAAO,CAAC,OAAO;QACjC,KAAK,EAAE,cAAc;QACrB,YAAY,EAAE,KAAK,CAAC,oBAAoB;QACxC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE;QACpC,IAAI,EAAE,GAAG;QACT,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE;QACvC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS;QAClC,kBAAkB,EAAE,gBAAgB;QACpC,gBAAgB,EAAE,OAAO,CAAC,UAAU;KACrC,CAAC;IACF,MAAM,MAAM,GAAG,6BAA6B,CAAC;QAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW;KACrE,CAAC,CAAC;IACH,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AAClE,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,wBAAwB,CAAC,KAQxC;IACC,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,IAAI,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY;QAC7D,KAAK,CAAC,YAAY,IAAI,EAAE,IAAI,KAAK,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,MAAM,GAAG,kCAAkC,CAAC,EAAE,GAAG,KAAK;QAC1D,cAAc,EAAE,KAAK,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,CAAC,WAAW;QACpE,yBAAyB,EAAE,KAAK,CAAC,gBAAgB;QACjD,WAAW,EAAE,KAAK,CAAC,YAAY;KAChC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE;QAC1E,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC;IACxD,MAAM,GAAG,GAAG,6BAA6B,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG;QACvE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC;IACvD,MAAM,MAAM,GAAG,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,kCAAkC,CAAC,EAAE,GAAG,KAAK;QAC3E,cAAc,EAAE,KAAK,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,CAAC,WAAW;QACpE,yBAAyB,EAAE,KAAK,CAAC,gBAAgB,EAAE,WAAW,EAAE,SAAS;KAC1E,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACV,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AACtD,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,wBAAwB,CAAC,KAUxC;IACC,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,IAAI,KAAK,CAAC,SAAS,GAAG,GAAG;QAC9C,KAAK,CAAC,YAAY,IAAI,EAAE,IAAI,KAAK,CAAC,YAAY,GAAG,GAAG;QACpD,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC;QAC7D,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,OAAO,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,EAAE,GAAG,OAAO,CAAC,SAAS;QACrC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,WAAW;QACvE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG;QAC7C,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE;QACxC,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,EAAE,CAAC;IAC9E,MAAM,GAAG,GAAG,6BAA6B,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG;QACvE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mCAAmC,CAAC,KAGnD;IACC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACpD,KAAK,MAAM,cAAc,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAU,EAAE,CAAC;QAC3D,IAAI,cAAc,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,KAAK,CAAC;YAAE,SAAS;QAC9E,MAAM,OAAO,GAAG,4BAA4B,CAAC,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;QACvE,MAAM,OAAO,GAAG,6BAA6B,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI;YACnF,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACjF,IAAI,OAAO,CAAC,UAAU,KAAK,QAAQ;YAAE,OAAO,cAAc,CAAC;IAC7D,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;AACjF,CAAC"}
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schema": "kcc20-example-compatibility/v1",
3
- "packageVersion": "0.8.0-fee.11",
3
+ "packageVersion": "0.8.0-fee.13",
4
4
  "contractsRepository": "https://github.com/KASPACOM/kaspa-covenants",
5
- "contractsCommit": "5deb1769e69142595576ef7c573af9f433a48a3c",
5
+ "contractsCommit": "1a15362b35661464587cf07ffe8a42186a545897",
6
6
  "compiler": {
7
7
  "repository": "https://github.com/kaspanet/silverscript",
8
8
  "tag": "v1.0.0",
@@ -80,6 +80,14 @@
80
80
  "constructorArgsSha256": "1d6b2ac27fa5fea7e6c419543d4968f5b623b3139e880984d2fa5a116a453635",
81
81
  "abiSha256": "f4e503b480fd8c63194fcbe987e3818998bf4c387c360cb0371bebf542c60050",
82
82
  "compilerBuild": "verified-release"
83
+ },
84
+ "KCC20WrapperFeeArgentV2.placeholder.json": {
85
+ "fileSha256": "eec339c8b255fc59790fbff699acbbf6c1f06baecb855fbbd590c9428d5611be",
86
+ "scriptSha256": "aa4e622b7dfae9b111816baad53139064725062adaf5b304ed77de7fce03da1c",
87
+ "sourceSha256": "58dea339989b15246a3b2023bd26a6d7961a3de9ae03a157794a0321218c99ec",
88
+ "constructorArgsSha256": "59ff68e3dfb05dcf7c6324687de8e0cb68669fea9d517f9dc90e4d03f410361d",
89
+ "abiSha256": "f7074233d7055be3ada2445a3266bf56fcafb72b9915a743e6a99c9e6b691f72",
90
+ "compilerBuild": "verified-release"
83
91
  }
84
92
  },
85
93
  "contractsSourceStatus": "reviewed source and generated inputs pinned to contractsCommit",
@@ -0,0 +1,7 @@
1
+ # Argent fee wrap regression
2
+
3
+ Builder CI 41546707711 and DEV TN10 rejected the V1 wrapper's signed wrap. The normalized token adapter omits Argent's generated marker; V1 had been compiled with that adapter span although its contract reads all seven runtime fields.
4
+
5
+ The builder now uses `KCC20WrapperFeeArgentV2` from kaspa-covenants PR #747. V2 uses the compiler span, offset 1 and length 145, instead of adapter offset 34 and length 112. Old artifacts and their integrity pins remain packaged. New Argent setup rejects the old wrapper. Native and snapshot artifacts are unchanged.
6
+
7
+ The consensus workflow executes signed partial/final wraps, unwraps, buys, multi-ask buys, both seller sweeps and crosses using the exact packaged artifact. A Node construction test alone is not consensus proof. The original failed run remains the regression evidence; final V2 consensus and funded lifecycle are pending.
@@ -0,0 +1,9 @@
1
+ # Imported fee-market wallet transactions
2
+
3
+ The shared builder supports the pinned Argent reference token at zero creator fees. It identifies the token profile from its authenticated artifact and source script. Wrap and unwrap use the matching versioned wrapper witness, including the generated Argent template marker.
4
+
5
+ Existing holder, ask, bid and root inputs commit an exact wrapper script hash. Trading and consolidation resolve that hash against the pinned native and Argent wrappers for the same token, market and policy. Each operation still verifies the complete input script, lineage and principal against the live node before signing. A request profile label cannot substitute another wrapper.
6
+
7
+ The token profile has no authenticated creator-consent interface. Nonzero creator fees remain rejected. Existing artifacts, fee arithmetic and native/snapshot flows are unchanged.
8
+
9
+ Signed offline fixtures cover partial/final wrap and unwrap, ask/bid creation and cancellation, partial/final buys, two-ask groups, 3/10-bid sweeps and crosses. The pinned consensus harness executes the exact generated transactions. Funded TN10 import, decoding and backend lifecycle checks are separate release gates.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaspacom/kcc20-tx-builder",
3
- "version": "0.8.0-fee.11",
3
+ "version": "0.8.0-fee.13",
4
4
  "description": "Runtime-independent KCC20 covenant transaction and PSKT construction primitives.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "KaspaCom",
package/src/artifacts.ts CHANGED
@@ -37,6 +37,8 @@ export const KCC20_ARTIFACT_SCRIPT_SHA256 = Object.freeze({
37
37
  "53338a33d4e57964ff76ffe2c95e25786995f7c1f96f9375b57bcac3c124d3ba",
38
38
  "KCC20WrapperFeeArgentV1.placeholder.json":
39
39
  "b7ebdf13e66a10407c36e56a24f9f91a0db27602508eb2a297da613d1c43cdbd",
40
+ "KCC20WrapperFeeArgentV2.placeholder.json":
41
+ "aa4e622b7dfae9b111816baad53139064725062adaf5b304ed77de7fce03da1c",
40
42
  });
41
43
 
42
44
  /** Raw file pins cover the ABI and dispatch tags as well as the script bytes. */
@@ -49,6 +51,7 @@ export const KCC20_FEE_V1_ARTIFACT_SHA256 = Object.freeze({
49
51
  "KCC20OrderbookFeeBidV1.placeholder.json": "4a6150291bb9e459a4ca61609854af7063c5f7314e0f5c2438a7f462627d33d4",
50
52
  "KCC20WrapperFeeV1.placeholder.json": "345cbefc8f870b2daa408e2608c4fcf50d27d9f5ebb505439ee22092715f0007",
51
53
  "KCC20WrapperFeeArgentV1.placeholder.json": "d14cdd05f9522b393e9b5e674a4645cf6b51f8831a5bb370882eb0e9a2f8d4b0",
54
+ "KCC20WrapperFeeArgentV2.placeholder.json": "eec339c8b255fc59790fbff699acbbf6c1f06baecb855fbbd590c9428d5611be",
52
55
  });
53
56
 
54
57
  export const KCC20_FEE_V1_POLICY_MANIFEST_SHA256 =
package/src/engine.ts CHANGED
@@ -80,7 +80,7 @@ import {
80
80
  } from "./abi.js";
81
81
  import { KCC20_BUILDER_KEYS } from "./operations.js";
82
82
  import { buildKcc20InitialFeeAccount, planKcc20FeeAccountBinding } from "./escrow-account-setup.js";
83
- import { prepareKcc20FeeMarketGenesis, prepareKcc20FeeMarketBinding, prepareKcc20FeeMarketWrappedHolder, prepareKcc20FeeMarketAsk, prepareKcc20FeeMarketBid } from "./escrow-market-setup.js";
83
+ import { resolveKcc20FeeMarketWrapperProfile, prepareKcc20FeeMarketGenesis, prepareKcc20FeeMarketBinding, prepareKcc20FeeMarketWrappedHolder, prepareKcc20FeeMarketAsk, prepareKcc20FeeMarketBid } from "./escrow-market-setup.js";
84
84
  import { buildKcc20FeeMarketRoleScript } from "./escrow-market-artifacts.js";
85
85
  import { calculateKcc20EscrowFees } from "./escrow-fee.js";
86
86
  import { kcc20CreatorFeeConsent, decodeKcc20EscrowPolicy } from "./escrow-policy.js";
@@ -2976,7 +2976,7 @@ export function createKcc20PsktBuilderEngine(
2976
2976
  receipt: "KCC20FeeEscrowV1", root: "KCC20OrderbookFeeRootV1",
2977
2977
  holder: "KCC20OrderbookFeeHolderV1", ask: "KCC20OrderbookFeeAskV1",
2978
2978
  bid: "KCC20OrderbookFeeBidV1", ticket: "KCC20FeeTicket",
2979
- wrapper: "KCC20WrapperFeeV1", argentWrapper: "KCC20WrapperFeeArgentV1",
2979
+ wrapper: "KCC20WrapperFeeV1", argentWrapper: "KCC20WrapperFeeArgentV2",
2980
2980
  };
2981
2981
  const entries = await Promise.all(Object.entries(names).map(async ([role, name]) => {
2982
2982
  const key = `${name}.placeholder.json`;
@@ -3443,8 +3443,9 @@ export function createKcc20PsktBuilderEngine(
3443
3443
  const tokenProfile = await resolveKcc20ArtifactForState(
3444
3444
  tokenState, requireKaspaAddress(source.address), network);
3445
3445
  requireTokenCapability(tokenProfile.profile, "wrap");
3446
- if (tokenProfile.profile.id !== "kaspacom-kcc20-last-call-v1") {
3447
- throw new Error("fee-market wrap for this token profile needs its signed witness proof");
3446
+ const wrapperProfile = tokenProfile.profile.id === "argent-reference-kcc20-v1" ? "argent" : "native";
3447
+ if (wrapperProfile === "native" && tokenProfile.profile.id !== "kaspacom-kcc20-last-call-v1") {
3448
+ throw new Error("unsupported fee-market token profile");
3448
3449
  }
3449
3450
  const creatorConsent = verifyReusableCreatorConsent(params, tokenId, marketId, feeTicketId,
3450
3451
  priceScale, false);
@@ -3474,12 +3475,12 @@ export function createKcc20PsktBuilderEngine(
3474
3475
  const artifacts = await readFeeMarketArtifacts();
3475
3476
  const plan = prepareKcc20FeeMarketWrappedHolder({
3476
3477
  tokenId, feeTicketId, priceScale, policy: params.feePolicy,
3477
- wrapperProfile: "native", artifacts, marketId, recipientOwner,
3478
+ wrapperProfile, artifacts, marketId, recipientOwner,
3478
3479
  recipientOwnerScheme: 0, recipientPayoutScriptHash: payoutHash,
3479
3480
  tokenAmount,
3480
3481
  });
3481
3482
  if (prepareKcc20FeeMarketGenesis({ tokenId, feeTicketId, priceScale,
3482
- policy: params.feePolicy, wrapperProfile: "native", artifacts }).policyId !==
3483
+ policy: params.feePolicy, wrapperProfile, artifacts }).policyId !==
3483
3484
  requireHex32(params.policyId, "policy ID")) {
3484
3485
  throw new Error("fee-market wrap policy ID mismatch");
3485
3486
  }
@@ -3586,12 +3587,12 @@ export function createKcc20PsktBuilderEngine(
3586
3587
  const holderParts = templateParts(normalizeSilverScriptArtifact(artifacts.holder));
3587
3588
  wrapperPrefix.addData(holderParts.prefix);
3588
3589
  wrapperPrefix.addData(holderParts.suffix);
3589
- addKcc20State(wrapperPrefix, lockedState);
3590
+ addFeeMarketNativeState(wrapperPrefix, lockedState, tokenProfile);
3590
3591
  addFeeMarketRoleState(wrapperPrefix, plan.holderState);
3591
3592
  wrapperPrefix.addData(creatorHolderExtension);
3592
3593
  wrapperPrefix.addData(creatorConsent
3593
3594
  ? hexToBytes(creatorConsent.signature) : new Uint8Array(64));
3594
- wrapperPrefix.addData(dispatchTagFor(artifacts.wrapper, "wrap"));
3595
+ wrapperPrefix.addData(dispatchTagFor(artifacts[wrapperProfile === "argent" ? "argentWrapper" : "wrapper"], "wrap"));
3595
3596
  transaction.inputs[1].signatureScript = encodeCovenantP2shSignatureScript(
3596
3597
  wrapperPrefix.drain(), plan.wrapper.redeemScript);
3597
3598
  const scripts = [{ inputIndex: 0, scriptHex: bytesToHex(tokenScript),
@@ -3676,8 +3677,9 @@ export function createKcc20PsktBuilderEngine(
3676
3677
  const tokenProfile = await resolveKcc20ArtifactForState(
3677
3678
  reserveState, requireKaspaAddress(reserveUtxo.address), network);
3678
3679
  requireTokenCapability(tokenProfile.profile, "unwrap");
3679
- if (tokenProfile.profile.id !== "kaspacom-kcc20-last-call-v1") {
3680
- throw new Error("fee-market unwrap for this token profile needs its signed witness proof");
3680
+ const wrapperProfile = tokenProfile.profile.id === "argent-reference-kcc20-v1" ? "argent" : "native";
3681
+ if (wrapperProfile === "native" && tokenProfile.profile.id !== "kaspacom-kcc20-last-call-v1") {
3682
+ throw new Error("unsupported fee-market token profile");
3681
3683
  }
3682
3684
  const kw = kaspaWasm;
3683
3685
  const payoutSpk = p2pkScriptPubKey(kw, recipientOwner);
@@ -3693,7 +3695,7 @@ export function createKcc20PsktBuilderEngine(
3693
3695
  }
3694
3696
  const artifacts = await readFeeMarketArtifacts();
3695
3697
  const planInput = { tokenId, feeTicketId, priceScale, policy: params.feePolicy,
3696
- wrapperProfile: "native", artifacts, marketId, recipientOwner,
3698
+ wrapperProfile, artifacts, marketId, recipientOwner,
3697
3699
  recipientOwnerScheme: 0, recipientPayoutScriptHash: payoutHash };
3698
3700
  const plan = prepareKcc20FeeMarketWrappedHolder({ ...planInput,
3699
3701
  tokenAmount: wrappedAmount });
@@ -3835,10 +3837,10 @@ export function createKcc20PsktBuilderEngine(
3835
3837
  wrapperPrefix.addData(hexToBytes(recipientOwner));
3836
3838
  addExplicitByte(wrapperPrefix, 0);
3837
3839
  wrapperPrefix.addI64(tokenAmount);
3838
- addKcc20State(wrapperPrefix, recipientState);
3839
- addKcc20State(wrapperPrefix, reserveChangeState);
3840
+ addFeeMarketNativeState(wrapperPrefix, recipientState, tokenProfile);
3841
+ addFeeMarketNativeState(wrapperPrefix, reserveChangeState, tokenProfile);
3840
3842
  addFeeMarketRoleState(wrapperPrefix, wrappedChangeState);
3841
- wrapperPrefix.addData(dispatchTagFor(artifacts.wrapper, "unwrap"));
3843
+ wrapperPrefix.addData(dispatchTagFor(artifacts[wrapperProfile === "argent" ? "argentWrapper" : "wrapper"], "unwrap"));
3842
3844
  transaction.inputs[2].signatureScript = encodeCovenantP2shSignatureScript(
3843
3845
  wrapperPrefix.drain(), plan.wrapper.redeemScript);
3844
3846
  const reservePrefix = buildKcc20TransferSigScript(kw, tokenProfile.artifact, {
@@ -3919,8 +3921,11 @@ export function createKcc20PsktBuilderEngine(
3919
3921
  payoutBytes.set(payoutScript, 11);
3920
3922
  const payoutHash = bytesToHex(blake3(payoutBytes));
3921
3923
  const artifacts = await readFeeMarketArtifacts();
3924
+ const wrapperProfile = resolveKcc20FeeMarketWrapperProfile({ tokenId, marketId,
3925
+ feeTicketId, priceScale, policy: params.feePolicy, artifacts,
3926
+ wrapperScriptHash: sources[0]?.state?.wrapper_spk_hash });
3922
3927
  const planInput = { tokenId, feeTicketId, priceScale, policy: params.feePolicy,
3923
- wrapperProfile: params.wrapperProfile || "native", artifacts, marketId,
3928
+ wrapperProfile, artifacts, marketId,
3924
3929
  recipientOwner: owner, recipientOwnerScheme: 0,
3925
3930
  recipientPayoutScriptHash: payoutHash };
3926
3931
  if (prepareKcc20FeeMarketGenesis(planInput).policyId !==
@@ -4103,8 +4108,11 @@ export function createKcc20PsktBuilderEngine(
4103
4108
  payoutBytes.set(payoutScript, 11);
4104
4109
  const payoutHash = bytesToHex(blake3(payoutBytes));
4105
4110
  const artifacts = await readFeeMarketArtifacts();
4111
+ const wrapperProfile = resolveKcc20FeeMarketWrapperProfile({ tokenId, marketId,
4112
+ feeTicketId, priceScale, policy: params.feePolicy, artifacts,
4113
+ wrapperScriptHash: source?.state?.wrapper_spk_hash });
4106
4114
  const planInput = { tokenId, feeTicketId, priceScale, policy: params.feePolicy,
4107
- wrapperProfile: "native", artifacts, marketId, owner, ownerScheme: 0,
4115
+ wrapperProfile, artifacts, marketId, owner, ownerScheme: 0,
4108
4116
  payoutScriptHash: payoutHash, holderAmount, askAmount, askUnitPrice };
4109
4117
  const plan = prepareKcc20FeeMarketAsk(planInput);
4110
4118
  if (prepareKcc20FeeMarketGenesis(planInput).policyId !==
@@ -4256,8 +4264,11 @@ export function createKcc20PsktBuilderEngine(
4256
4264
  throw new Error("ask payout differs from signing wallet");
4257
4265
  }
4258
4266
  const artifacts = await readFeeMarketArtifacts();
4267
+ const wrapperProfile = resolveKcc20FeeMarketWrapperProfile({ tokenId, marketId,
4268
+ feeTicketId, priceScale, policy: params.feePolicy, artifacts,
4269
+ wrapperScriptHash: source?.state?.wrapper_spk_hash });
4259
4270
  const planInput = { tokenId, feeTicketId, priceScale, policy: params.feePolicy,
4260
- wrapperProfile: "native", artifacts, marketId, owner, ownerScheme: 0,
4271
+ wrapperProfile, artifacts, marketId, owner, ownerScheme: 0,
4261
4272
  payoutScriptHash: payoutHash, holderAmount: askAmount, askAmount, askUnitPrice };
4262
4273
  const plan = prepareKcc20FeeMarketAsk(planInput);
4263
4274
  if (prepareKcc20FeeMarketGenesis(planInput).policyId !==
@@ -4398,8 +4409,11 @@ export function createKcc20PsktBuilderEngine(
4398
4409
  payoutBytes.set(payoutScript, 11);
4399
4410
  const payoutHash = bytesToHex(blake3(payoutBytes));
4400
4411
  const artifacts = await readFeeMarketArtifacts();
4412
+ const wrapperProfile = resolveKcc20FeeMarketWrapperProfile({ tokenId, marketId,
4413
+ feeTicketId, priceScale, policy: params.feePolicy, artifacts,
4414
+ wrapperScriptHash: rootUtxo?.state?.wrapper_spk_hash });
4401
4415
  const planInput = { tokenId, feeTicketId, priceScale, policy: params.feePolicy,
4402
- wrapperProfile: "native", artifacts, marketId,
4416
+ wrapperProfile, artifacts, marketId,
4403
4417
  rootOwner: requireHex32(rootUtxo.state.owner, "root owner"),
4404
4418
  rootOwnerScheme: Number(rootUtxo.state.owner_scheme),
4405
4419
  rootPayoutScriptHash: requireHex32(rootUtxo.state.payout_script_hash,
@@ -4551,8 +4565,11 @@ export function createKcc20PsktBuilderEngine(
4551
4565
  throw new Error("bid payout differs from signing wallet");
4552
4566
  }
4553
4567
  const artifacts = await readFeeMarketArtifacts();
4568
+ const wrapperProfile = resolveKcc20FeeMarketWrapperProfile({ tokenId, marketId,
4569
+ feeTicketId, priceScale, policy: params.feePolicy, artifacts,
4570
+ wrapperScriptHash: source?.state?.wrapper_spk_hash });
4554
4571
  const planInput = { tokenId, feeTicketId, priceScale, policy: params.feePolicy,
4555
- wrapperProfile: "native", artifacts, marketId,
4572
+ wrapperProfile, artifacts, marketId,
4556
4573
  rootOwner: owner, rootOwnerScheme: 0, rootPayoutScriptHash: payoutHash,
4557
4574
  buyer: owner, buyerScheme: 0, buyerPayoutScriptHash: payoutHash,
4558
4575
  bidAmount, bidUnitPrice };
@@ -4746,8 +4763,11 @@ export function createKcc20PsktBuilderEngine(
4746
4763
  throw new Error("ask seller payout does not match authenticated owner");
4747
4764
  }
4748
4765
  const artifacts = await readFeeMarketArtifacts();
4766
+ const wrapperProfile = resolveKcc20FeeMarketWrapperProfile({ tokenId, marketId,
4767
+ feeTicketId, priceScale, policy: params.feePolicy, artifacts,
4768
+ wrapperScriptHash: askUtxo?.state?.wrapper_spk_hash });
4749
4769
  const planInput = { tokenId, feeTicketId, priceScale, policy: params.feePolicy,
4750
- wrapperProfile: "native", artifacts, marketId,
4770
+ wrapperProfile, artifacts, marketId,
4751
4771
  recipientOwner: buyer, recipientOwnerScheme: 0,
4752
4772
  recipientPayoutScriptHash: buyerPayout.hash, tokenAmount: fillAmount };
4753
4773
  const buyerPlan = prepareKcc20FeeMarketWrappedHolder(planInput);
@@ -4763,7 +4783,7 @@ export function createKcc20PsktBuilderEngine(
4763
4783
  throw new Error("fee-market ask differs from fixed market policy");
4764
4784
  }
4765
4785
  const sellerPlan = prepareKcc20FeeMarketAsk({ tokenId, feeTicketId,
4766
- priceScale, policy: params.feePolicy, wrapperProfile: "native", artifacts,
4786
+ priceScale, policy: params.feePolicy, wrapperProfile, artifacts,
4767
4787
  marketId, owner: seller, ownerScheme: sellerScheme,
4768
4788
  payoutScriptHash: sellerPayout.hash, holderAmount: askAmount,
4769
4789
  askAmount, askUnitPrice });
@@ -4975,8 +4995,11 @@ export function createKcc20PsktBuilderEngine(
4975
4995
  payoutBytes.set(payoutScript, 11);
4976
4996
  const buyerPayoutHash = bytesToHex(blake3(payoutBytes));
4977
4997
  const artifacts = await readFeeMarketArtifacts();
4998
+ const wrapperProfile = resolveKcc20FeeMarketWrapperProfile({ tokenId, marketId,
4999
+ feeTicketId, priceScale, policy: params.feePolicy, artifacts,
5000
+ wrapperScriptHash: asks[0]?.state?.wrapper_spk_hash });
4978
5001
  const base = { tokenId, feeTicketId, priceScale, policy: params.feePolicy,
4979
- wrapperProfile: "native", artifacts, marketId };
5002
+ wrapperProfile, artifacts, marketId };
4980
5003
  const policyId = prepareKcc20FeeMarketGenesis(base).policyId;
4981
5004
  if (policyId !== requireHex32(params.policyId, "policy ID")) {
4982
5005
  throw new Error("fee-market buyer group policy ID mismatch");
@@ -5246,6 +5269,9 @@ export function createKcc20PsktBuilderEngine(
5246
5269
  sellerPayoutBytes.set(sellerScript, 11);
5247
5270
  const sellerPayoutHash = bytesToHex(blake3(sellerPayoutBytes));
5248
5271
  const artifacts = await readFeeMarketArtifacts();
5272
+ const wrapperProfile = resolveKcc20FeeMarketWrapperProfile({ tokenId, marketId,
5273
+ feeTicketId, priceScale, policy: params.feePolicy, artifacts,
5274
+ wrapperScriptHash: source?.state?.wrapper_spk_hash });
5249
5275
  let ticket = null;
5250
5276
  if (ticketRequest) {
5251
5277
  const ticketState = kcc20FeeTicketStateFromUtxo(ticketRequest, request.owner);
@@ -5270,7 +5296,7 @@ export function createKcc20PsktBuilderEngine(
5270
5296
  amountSompiExact: String(ticketRequest.amountSompiExact) };
5271
5297
  }
5272
5298
  const base = { tokenId, feeTicketId, priceScale, policy: params.feePolicy,
5273
- wrapperProfile: "native", artifacts, marketId };
5299
+ wrapperProfile, artifacts, marketId };
5274
5300
  const policyId = prepareKcc20FeeMarketGenesis(base).policyId;
5275
5301
  if (policyId !== requireHex32(params.policyId, "policy ID")) {
5276
5302
  throw new Error("fee-market seller group policy ID mismatch");
@@ -5323,16 +5349,20 @@ export function createKcc20PsktBuilderEngine(
5323
5349
  String(utxo.state.wrapper_spk_hash).toLowerCase() !== holderPlan.wrapper.scriptHash) {
5324
5350
  throw new Error(`bid ${slot} differs from fixed market policy`);
5325
5351
  }
5326
- // The indexer adds policy summary fields for API consumers. They are not
5352
+ // The indexer adds policy summaries and an ownerScheme alias. They are not
5327
5353
  // part of the on-chain bid state and must not enter script reconstruction.
5328
5354
  const { creatorFeeBps: indexedCreatorFeeBps,
5329
- feePolicyVersion: indexedFeePolicyVersion, ...bidState } = utxo.state;
5355
+ feePolicyVersion: indexedFeePolicyVersion,
5356
+ ownerScheme: indexedOwnerScheme, ...bidState } = utxo.state;
5330
5357
  if ((indexedCreatorFeeBps !== undefined &&
5331
5358
  Number(indexedCreatorFeeBps) !== params.feePolicy.creatorFeeBps) ||
5332
5359
  (indexedFeePolicyVersion !== undefined &&
5333
5360
  Number(indexedFeePolicyVersion) !== params.feePolicy.version)) {
5334
5361
  throw new Error(`bid ${slot} indexed policy summary differs from fixed policy`);
5335
5362
  }
5363
+ if (indexedOwnerScheme !== undefined && indexedOwnerScheme !== scheme) {
5364
+ throw new Error(`bid ${slot} indexed owner scheme differs from contract state`);
5365
+ }
5336
5366
  const bidScript = buildKcc20FeeMarketRoleScript({ artifact: artifacts.bid,
5337
5367
  role: "bid", state: bidState });
5338
5368
  const buyerPlan = prepareKcc20FeeMarketWrappedHolder({ ...base,
@@ -11059,8 +11089,11 @@ export function createKcc20PsktBuilderEngine(
11059
11089
  const priceScale = parsePositiveU64(ask.state.priceScale, "price scale");
11060
11090
  const policy = decodeKcc20EscrowPolicy(hexToBytes(ask.state.feePolicy));
11061
11091
  const artifacts = await readFeeMarketArtifacts();
11092
+ const wrapperProfile = resolveKcc20FeeMarketWrapperProfile({ tokenId, marketId,
11093
+ feeTicketId, priceScale, policy: policy, artifacts,
11094
+ wrapperScriptHash: ask?.state?.wrapper_spk_hash });
11062
11095
  const genesis = prepareKcc20FeeMarketGenesis({ tokenId, feeTicketId,
11063
- priceScale, policy, wrapperProfile: "native", artifacts });
11096
+ priceScale, policy, wrapperProfile, artifacts });
11064
11097
  const policyId = genesis.policyId;
11065
11098
  for (const order of [ask, bid]) {
11066
11099
  for (const field of ["canonicalTokenId", "feeTicketId", "feePolicy", "priceScale", "wrapper_spk_hash"]) {
@@ -11116,7 +11149,7 @@ export function createKcc20PsktBuilderEngine(
11116
11149
  const fees = calculateKcc20EscrowFees({ grossSompi: gross, creatorFeeBps: policy.creatorFeeBps, protocolWaived: false });
11117
11150
  const askRemaining = askAmount - fill, bidRemaining = bidAmount - fill;
11118
11151
  const buyerPlan = prepareKcc20FeeMarketWrappedHolder({ tokenId, marketId,
11119
- feeTicketId, priceScale, policy, wrapperProfile: "native", artifacts,
11152
+ feeTicketId, priceScale, policy, wrapperProfile, artifacts,
11120
11153
  recipientOwner: bid.state.owner, recipientOwnerScheme: Number(bid.state.owner_scheme),
11121
11154
  recipientPayoutScriptHash: bid.state.payout_script_hash, tokenAmount: fill });
11122
11155
  if (buyerPlan.holderState.feePolicy !== String(ask.state.feePolicy).toLowerCase() ||
@@ -15546,6 +15579,19 @@ export function createKcc20PsktBuilderEngine(
15546
15579
  return builder.drain();
15547
15580
  }
15548
15581
 
15582
+ function addFeeMarketNativeState(builder, state, tokenProfile) {
15583
+ if (tokenProfile.profile.id === "argent-reference-kcc20-v1") {
15584
+ // The pinned Argent artifact stores its generated template marker before
15585
+ // the six mutable KCC-2 fields. The wrapper ABI includes that marker.
15586
+ const artifact = normalizeSilverScriptArtifact(tokenProfile.artifact);
15587
+ if (artifact.state_layout.start !== 34 || artifact.script[1] !== 32) {
15588
+ throw new Error("Argent token template marker layout mismatch");
15589
+ }
15590
+ builder.addData(Uint8Array.from(artifact.script.slice(2, 34)));
15591
+ }
15592
+ addKcc20State(builder, state);
15593
+ }
15594
+
15549
15595
  function addKcc20State(builder, state) {
15550
15596
  builder.addI64(BigInt(state.amount));
15551
15597
  builder.addData(state.ownerIdentifier ?? state.owner);
@@ -12,7 +12,7 @@ const PINS = {
12
12
  bid: ["KCC20OrderbookFeeBidV1.placeholder.json", "KCC20OrderbookFeeBidV1", "98d7c97319bbe1ca954c7f4f6a02467e90a7f3e84c14c91db650f8ef5887ee0e"],
13
13
  ticket: ["KCC20FeeTicket.placeholder.json", "KCC20FeeTicket", "289f3f74914deb383d2cccc11128187a77e4bcea90e61c83e05d86c5c9d63bc5"],
14
14
  wrapper: ["KCC20WrapperFeeV1.placeholder.json", "KCC20WrapperFeeV1", "84c3844493efd4bdf6b2e3435e1ac511f5b5a7f58b5b6c093c91e2edcae1a2e0"],
15
- argentWrapper: ["KCC20WrapperFeeArgentV1.placeholder.json", "KCC20WrapperFeeArgentV1", "130f25462e070523821579d28809577fac6d010f8d5deabc66ad2de1c11d2c73"],
15
+ argentWrapper: ["KCC20WrapperFeeArgentV2.placeholder.json", "KCC20WrapperFeeArgentV2", "8a3b33e4c4b340fb88069e86536106b446014fe68cd533117fe4ec1499325c23"],
16
16
  } as const;
17
17
 
18
18
  export type Kcc20FeeArtifactRole = keyof typeof PINS;
@@ -180,3 +180,23 @@ export function prepareKcc20FeeMarketBid(input: Kcc20FeeMarketGenesisInput & {
180
180
  role: "bid", state: bidState });
181
181
  return { binding, bidState, bid };
182
182
  }
183
+
184
+ /** Resolve an existing role's bound wrapper against both pinned profiles.
185
+ * The caller must still authenticate the complete role script against its live UTXO.
186
+ */
187
+ export function resolveKcc20FeeMarketWrapperProfile(input: Omit<Kcc20FeeMarketGenesisInput, "wrapperProfile"> & {
188
+ marketId: string;
189
+ wrapperScriptHash: string;
190
+ }): "native" | "argent" {
191
+ const expected = hex32(input.wrapperScriptHash, "bound wrapper script hash");
192
+ const marketId = hex32(input.marketId, "market ID");
193
+ for (const wrapperProfile of ["native", "argent"] as const) {
194
+ if (wrapperProfile === "argent" && input.policy.creatorFeeBps !== 0) continue;
195
+ const genesis = prepareKcc20FeeMarketGenesis({ ...input, wrapperProfile });
196
+ const role = wrapperProfile === "native" ? "wrapper" : "argentWrapper";
197
+ const wrapper = buildKcc20FeeMarketRoleScript({ artifact: input.artifacts[role], role,
198
+ state: { ...genesis.state, enabled: true, authenticatedMarketId: marketId } });
199
+ if (wrapper.scriptHash === expected) return wrapperProfile;
200
+ }
201
+ throw new Error("bound wrapper does not match a supported fee-market profile");
202
+ }