@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.
- package/CHANGELOG.md +11 -1
- package/artifacts/KCC20WrapperFeeArgentV2.placeholder.json +29503 -0
- package/dist/artifacts.d.ts +2 -0
- package/dist/artifacts.d.ts.map +1 -1
- package/dist/artifacts.js +2 -0
- package/dist/artifacts.js.map +1 -1
- package/dist/cjs/artifacts.d.ts +2 -0
- package/dist/cjs/artifacts.js +2 -0
- package/dist/cjs/artifacts.js.map +1 -1
- package/dist/cjs/engine.js +70 -26
- package/dist/cjs/engine.js.map +1 -1
- package/dist/cjs/escrow-market-artifacts.d.ts +1 -1
- package/dist/cjs/escrow-market-artifacts.js +1 -1
- package/dist/cjs/escrow-market-setup.d.ts +7 -0
- package/dist/cjs/escrow-market-setup.js +19 -0
- package/dist/cjs/escrow-market-setup.js.map +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +71 -27
- package/dist/engine.js.map +1 -1
- package/dist/escrow-market-artifacts.d.ts +1 -1
- package/dist/escrow-market-artifacts.js +1 -1
- package/dist/escrow-market-setup.d.ts +7 -0
- package/dist/escrow-market-setup.d.ts.map +1 -1
- package/dist/escrow-market-setup.js +18 -0
- package/dist/escrow-market-setup.js.map +1 -1
- package/docs/COMPATIBILITY.json +10 -2
- package/docs/evidence/argent-fee-runtime-span.md +7 -0
- package/docs/fee-imported-wallet.md +9 -0
- package/package.json +1 -1
- package/src/artifacts.ts +3 -0
- package/src/engine.ts +73 -27
- package/src/escrow-market-artifacts.ts +1 -1
- package/src/escrow-market-setup.ts +20 -0
|
@@ -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 ["
|
|
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: ["
|
|
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":"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"}
|
package/docs/COMPATIBILITY.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "kcc20-example-compatibility/v1",
|
|
3
|
-
"packageVersion": "0.8.0-fee.
|
|
3
|
+
"packageVersion": "0.8.0-fee.13",
|
|
4
4
|
"contractsRepository": "https://github.com/KASPACOM/kaspa-covenants",
|
|
5
|
-
"contractsCommit": "
|
|
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
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: "
|
|
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
|
-
|
|
3447
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
3680
|
-
|
|
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
|
|
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
|
-
|
|
3839
|
-
|
|
3840
|
+
addFeeMarketNativeState(wrapperPrefix, recipientState, tokenProfile);
|
|
3841
|
+
addFeeMarketNativeState(wrapperPrefix, reserveChangeState, tokenProfile);
|
|
3840
3842
|
addFeeMarketRoleState(wrapperPrefix, wrappedChangeState);
|
|
3841
|
-
wrapperPrefix.addData(dispatchTagFor(artifacts
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
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: ["
|
|
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
|
+
}
|