@kaspacom/kcc20-tx-builder 0.8.0-fee.2 → 0.8.0-fee.3

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.
Files changed (45) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/RELEASING.md +6 -6
  3. package/dist/cjs/engine.js +252 -0
  4. package/dist/cjs/engine.js.map +1 -1
  5. package/dist/cjs/escrow-account-setup.d.ts +53 -0
  6. package/dist/cjs/escrow-account-setup.js +103 -0
  7. package/dist/cjs/escrow-account-setup.js.map +1 -0
  8. package/dist/cjs/escrow-claim-plan.d.ts +1 -1
  9. package/dist/cjs/escrow-receipt.d.ts +32 -0
  10. package/dist/cjs/escrow-receipt.js +50 -1
  11. package/dist/cjs/escrow-receipt.js.map +1 -1
  12. package/dist/cjs/index.d.ts +1 -0
  13. package/dist/cjs/index.js +1 -0
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/operations.d.ts +1 -1
  16. package/dist/cjs/operations.js +2 -0
  17. package/dist/cjs/operations.js.map +1 -1
  18. package/dist/engine.d.ts.map +1 -1
  19. package/dist/engine.js +252 -0
  20. package/dist/engine.js.map +1 -1
  21. package/dist/escrow-account-setup.d.ts +54 -0
  22. package/dist/escrow-account-setup.d.ts.map +1 -0
  23. package/dist/escrow-account-setup.js +99 -0
  24. package/dist/escrow-account-setup.js.map +1 -0
  25. package/dist/escrow-claim-plan.d.ts +1 -1
  26. package/dist/escrow-receipt.d.ts +32 -0
  27. package/dist/escrow-receipt.d.ts.map +1 -1
  28. package/dist/escrow-receipt.js +48 -1
  29. package/dist/escrow-receipt.js.map +1 -1
  30. package/dist/index.d.ts +1 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +1 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/operations.d.ts +1 -1
  35. package/dist/operations.d.ts.map +1 -1
  36. package/dist/operations.js +2 -0
  37. package/dist/operations.js.map +1 -1
  38. package/docs/COMPATIBILITY.json +1 -1
  39. package/docs/escrow-fees.md +28 -3
  40. package/package.json +3 -3
  41. package/src/engine.ts +292 -0
  42. package/src/escrow-account-setup.ts +124 -0
  43. package/src/escrow-receipt.ts +64 -1
  44. package/src/index.ts +1 -0
  45. package/src/operations.ts +2 -0
@@ -0,0 +1,54 @@
1
+ import type { Kcc20FeeAccountState } from "./escrow-claim-plan.js";
2
+ import { type Kcc20IndexedFeeReceipt, type Kcc20LiveFeeReceiptUtxo } from "./escrow-receipt.js";
3
+ /**
4
+ * Construct the initial account output. Its covenant lineage is assigned by
5
+ * the transaction; the market can bind that lineage only after it is known.
6
+ * This function does not select funding, sign, or estimate transaction mass.
7
+ */
8
+ export declare function buildKcc20InitialFeeAccount(input: {
9
+ artifact: unknown;
10
+ tokenId: string;
11
+ ownerSchnorrPublicKey: string;
12
+ principalSompi: bigint;
13
+ }): {
14
+ redeemScript: Uint8Array<ArrayBuffer>;
15
+ scriptHash: string;
16
+ scriptPublicKey: {
17
+ version: 0;
18
+ scriptHex: string;
19
+ };
20
+ escrowTemplate: {
21
+ hash: string;
22
+ prefixLength: number;
23
+ suffixLength: number;
24
+ };
25
+ state: Kcc20FeeAccountState;
26
+ amountSompi: bigint;
27
+ };
28
+ /**
29
+ * Verify the current unbound account output and plan the exact continuation.
30
+ * The owner signs bindMarket once; later claims use the account's authority.
31
+ */
32
+ export declare function planKcc20FeeAccountBinding(input: {
33
+ artifact: unknown;
34
+ indexed: Kcc20IndexedFeeReceipt;
35
+ live: Kcc20LiveFeeReceiptUtxo;
36
+ tokenId: string;
37
+ accountId: string;
38
+ marketId: string;
39
+ policyId: string;
40
+ }): {
41
+ entrypoint: "bindMarket";
42
+ account: import("./escrow-claim-plan.js").Kcc20FeeClaimAccount;
43
+ currentRedeemScript: Uint8Array<ArrayBufferLike>;
44
+ successorState: Kcc20FeeAccountState;
45
+ successorRedeemScript: Uint8Array<ArrayBuffer>;
46
+ successorScriptPublicKey: {
47
+ version: 0;
48
+ scriptHex: string;
49
+ };
50
+ successorAmountSompi: bigint;
51
+ requiresOwnerSchnorrSignature: true;
52
+ requiresSeparateNetworkFunding: true;
53
+ };
54
+ //# sourceMappingURL=escrow-account-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrow-account-setup.d.ts","sourceRoot":"","sources":["../src/escrow-account-setup.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AA0C7B;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;CACxB;;;;;;;;;;;;;;EAgBA;AAMD;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,sBAAsB,CAAC;IAChC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;;;;;;;;;;;;;EA6BA"}
@@ -0,0 +1,99 @@
1
+ import { normalizeSilverScriptArtifact, templateParts } from "./abi.js";
2
+ import { KCC20_ESCROW_MAX_INT } from "./escrow-fee.js";
3
+ import { buildKcc20FeeEscrowScript, verifyKcc20UnboundFeeAccountForBinding, } from "./escrow-receipt.js";
4
+ const ZERO = "00".repeat(32);
5
+ const SECP256K1_FIELD = (1n << 256n) - (1n << 32n) - 977n;
6
+ function hex32(value, label) {
7
+ if (typeof value !== "string" || !/^[0-9a-f]{64}$/i.test(value)) {
8
+ throw new Error(`${label} must be 32-byte hex`);
9
+ }
10
+ return value.toLowerCase();
11
+ }
12
+ function principal(value) {
13
+ if (typeof value !== "bigint" || value <= 0n || value > KCC20_ESCROW_MAX_INT) {
14
+ throw new Error("fee account principal must be a positive contract-range bigint");
15
+ }
16
+ return value;
17
+ }
18
+ function modPow(base, exponent) {
19
+ let result = 1n;
20
+ let factor = base % SECP256K1_FIELD;
21
+ for (let remaining = exponent; remaining > 0n; remaining >>= 1n) {
22
+ if (remaining & 1n)
23
+ result = (result * factor) % SECP256K1_FIELD;
24
+ factor = (factor * factor) % SECP256K1_FIELD;
25
+ }
26
+ return result;
27
+ }
28
+ /** BIP340 keys encode an x-coordinate that must lift to a secp256k1 point. */
29
+ function requireSchnorrXOnlyPublicKey(value) {
30
+ const key = hex32(value, "owner Schnorr public key");
31
+ const x = BigInt(`0x${key}`);
32
+ if (x >= SECP256K1_FIELD)
33
+ throw new Error("owner Schnorr public key is not a curve point");
34
+ const square = (x * x % SECP256K1_FIELD * x + 7n) % SECP256K1_FIELD;
35
+ const y = modPow(square, (SECP256K1_FIELD + 1n) / 4n);
36
+ if (y * y % SECP256K1_FIELD !== square) {
37
+ throw new Error("owner Schnorr public key is not a curve point");
38
+ }
39
+ return key;
40
+ }
41
+ /**
42
+ * Construct the initial account output. Its covenant lineage is assigned by
43
+ * the transaction; the market can bind that lineage only after it is known.
44
+ * This function does not select funding, sign, or estimate transaction mass.
45
+ */
46
+ export function buildKcc20InitialFeeAccount(input) {
47
+ const token = hex32(input.tokenId, "token");
48
+ const owner = requireSchnorrXOnlyPublicKey(input.ownerSchnorrPublicKey);
49
+ if (token === ZERO || owner === ZERO)
50
+ throw new Error("fee account token and owner must be nonzero");
51
+ const amountSompi = principal(input.principalSompi);
52
+ const template = templateParts(normalizeSilverScriptArtifact(input.artifact));
53
+ const state = {
54
+ role: "1", token, market: ZERO, policy: ZERO,
55
+ protocol_account: ZERO, creator_account: ZERO,
56
+ protocol_amount: "0", creator_amount: "0", owner,
57
+ owner_scheme: 0, guard_template: ZERO, guard_prefix: "0", guard_suffix: "0",
58
+ action_hash: ZERO,
59
+ self_template: toHex(template.hash),
60
+ self_prefix: String(template.prefixLength), self_suffix: String(template.suffixLength),
61
+ };
62
+ return { state, amountSompi, ...buildKcc20FeeEscrowScript(input.artifact, state) };
63
+ }
64
+ function toHex(bytes) {
65
+ return Array.from(bytes, byte => byte.toString(16).padStart(2, "0")).join("");
66
+ }
67
+ /**
68
+ * Verify the current unbound account output and plan the exact continuation.
69
+ * The owner signs bindMarket once; later claims use the account's authority.
70
+ */
71
+ export function planKcc20FeeAccountBinding(input) {
72
+ const market = hex32(input.marketId, "market");
73
+ const policy = hex32(input.policyId, "policy");
74
+ if (market === ZERO || policy === ZERO)
75
+ throw new Error("fee account binding requires a market and policy");
76
+ const verified = verifyKcc20UnboundFeeAccountForBinding({
77
+ artifact: input.artifact,
78
+ indexed: input.indexed,
79
+ live: input.live,
80
+ expected: { tokenId: input.tokenId, accountId: input.accountId },
81
+ });
82
+ const successorState = {
83
+ ...verified.account.state,
84
+ market, policy,
85
+ };
86
+ const successor = buildKcc20FeeEscrowScript(input.artifact, successorState);
87
+ return {
88
+ entrypoint: "bindMarket",
89
+ account: verified.account,
90
+ currentRedeemScript: verified.redeemScript,
91
+ successorState,
92
+ successorRedeemScript: successor.redeemScript,
93
+ successorScriptPublicKey: successor.scriptPublicKey,
94
+ successorAmountSompi: verified.account.principalSompi,
95
+ requiresOwnerSchnorrSignature: true,
96
+ requiresSeparateNetworkFunding: true,
97
+ };
98
+ }
99
+ //# sourceMappingURL=escrow-account-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrow-account-setup.js","sourceRoot":"","sources":["../src/escrow-account-setup.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,7 @@ export declare function planKcc20FeeClaimTransition(input: {
45
45
  /** Serialized ScriptPublicKey including its two-byte little-endian version. */
46
46
  payoutScriptPublicKey: Uint8Array;
47
47
  }): {
48
- party: "creator" | "protocol";
48
+ party: "protocol" | "creator";
49
49
  claimSompi: bigint;
50
50
  accountPrincipalSompi: bigint;
51
51
  remainderSompi: bigint;
@@ -30,6 +30,20 @@ export interface Kcc20FeeReceiptIdentity {
30
30
  protocolAccountId: string;
31
31
  creatorAccountId: string;
32
32
  }
33
+ /** Render an escrow state using only the packaged, pinned v1 program. */
34
+ export declare function buildKcc20FeeEscrowScript(artifactInput: unknown, state: Record<string, unknown>): {
35
+ redeemScript: Uint8Array<ArrayBuffer>;
36
+ scriptHash: string;
37
+ scriptPublicKey: {
38
+ version: 0;
39
+ scriptHex: string;
40
+ };
41
+ escrowTemplate: {
42
+ hash: string;
43
+ prefixLength: number;
44
+ suffixLength: number;
45
+ };
46
+ };
33
47
  /**
34
48
  * Check a receipt hint against the pinned program and a fresh node UTXO.
35
49
  * The caller must fetch `live` from a qualified canonical node, authenticate
@@ -69,4 +83,22 @@ export declare function verifyKcc20FeeAccountForClaim(input: {
69
83
  suffixLength: number;
70
84
  };
71
85
  };
86
+ /** Verify an unbound account before its one-time market binding. */
87
+ export declare function verifyKcc20UnboundFeeAccountForBinding(input: {
88
+ artifact: unknown;
89
+ indexed: Kcc20IndexedFeeReceipt;
90
+ live: Kcc20LiveFeeReceiptUtxo;
91
+ expected: {
92
+ tokenId: string;
93
+ accountId: string;
94
+ };
95
+ }): {
96
+ account: Kcc20FeeClaimAccount;
97
+ redeemScript: Uint8Array;
98
+ escrowTemplate: {
99
+ hash: string;
100
+ prefixLength: number;
101
+ suffixLength: number;
102
+ };
103
+ };
72
104
  //# sourceMappingURL=escrow-receipt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"escrow-receipt.d.ts","sourceRoot":"","sources":["../src/escrow-receipt.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoD,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAChH,OAAO,KAAK,EAAwB,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAoBzF,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACvC;AAED,gFAAgF;AAChF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAuCD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,sBAAsB,CAAC;IAChC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,QAAQ,EAAE,uBAAuB,CAAC;CACnC,GAAG;IAAE,OAAO,EAAE,sBAAsB,CAAC;IAAC,YAAY,EAAE,UAAU,CAAC;IAC1D,cAAc,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAiFnF;AAED,gGAAgG;AAChG,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,sBAAsB,CAAC;IAChC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACtF,GAAG;IAAE,OAAO,EAAE,oBAAoB,CAAC;IAAC,YAAY,EAAE,UAAU,CAAC;IACxD,cAAc,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CA+EnF"}
1
+ {"version":3,"file":"escrow-receipt.d.ts","sourceRoot":"","sources":["../src/escrow-receipt.ts"],"names":[],"mappings":"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"}
@@ -60,6 +60,38 @@ function encodeState(state) {
60
60
  throw new Error("fee receipt state width mismatch");
61
61
  return Uint8Array.from(encoded);
62
62
  }
63
+ /** Render an escrow state using only the packaged, pinned v1 program. */
64
+ export function buildKcc20FeeEscrowScript(artifactInput, state) {
65
+ const artifactHash = Array.from(sha256(new TextEncoder().encode(JSON.stringify(artifactInput))), byte => byte.toString(16).padStart(2, "0")).join("");
66
+ if (artifactHash !== ARTIFACT_CANONICAL_SHA256)
67
+ throw new Error("fee escrow artifact metadata mismatch");
68
+ const artifact = normalizeSilverScriptArtifact(artifactInput);
69
+ assertKcc20ArtifactScriptHash(ARTIFACT_KEY, artifact);
70
+ if (artifact.contract_name !== "KCC20FeeEscrowV1" ||
71
+ artifact.state_layout?.start !== STATE_START || artifact.state_layout?.len !== STATE_LENGTH) {
72
+ throw new Error("unsupported fee escrow artifact layout");
73
+ }
74
+ const base = Uint8Array.from(artifact.script);
75
+ const prefix = base.slice(0, STATE_START);
76
+ const suffix = base.slice(STATE_START + STATE_LENGTH);
77
+ const hash = Array.from(templateHash(prefix, suffix), byte => byte.toString(16).padStart(2, "0")).join("");
78
+ if (hex32(state.self_template, "self_template") !== hash ||
79
+ natural(state.self_prefix, "self_prefix") !== BigInt(prefix.length) ||
80
+ natural(state.self_suffix, "self_suffix") !== BigInt(suffix.length)) {
81
+ throw new Error("fee escrow self-template mismatch");
82
+ }
83
+ const redeemScript = new Uint8Array(prefix.length + STATE_LENGTH + suffix.length);
84
+ redeemScript.set(prefix);
85
+ redeemScript.set(encodeState(state), prefix.length);
86
+ redeemScript.set(suffix, prefix.length + STATE_LENGTH);
87
+ const scriptHash = Array.from(blake2b(redeemScript, { dkLen: 32 }), byte => byte.toString(16).padStart(2, "0")).join("");
88
+ return {
89
+ redeemScript,
90
+ scriptHash,
91
+ scriptPublicKey: { version: 0, scriptHex: `aa20${scriptHash}87` },
92
+ escrowTemplate: { hash, prefixLength: prefix.length, suffixLength: suffix.length },
93
+ };
94
+ }
63
95
  /**
64
96
  * Check a receipt hint against the pinned program and a fresh node UTXO.
65
97
  * The caller must fetch `live` from a qualified canonical node, authenticate
@@ -153,6 +185,16 @@ export function verifyKcc20FeeReceiptForClaim(input) {
153
185
  }
154
186
  /** Authenticate a fee-account hint against the pinned escrow artifact and a fresh node UTXO. */
155
187
  export function verifyKcc20FeeAccountForClaim(input) {
188
+ return verifyFeeAccount(input, false);
189
+ }
190
+ /** Verify an unbound account before its one-time market binding. */
191
+ export function verifyKcc20UnboundFeeAccountForBinding(input) {
192
+ return verifyFeeAccount({
193
+ ...input,
194
+ expected: { ...input.expected, marketId: ZERO, policyId: ZERO },
195
+ }, true);
196
+ }
197
+ function verifyFeeAccount(input, requireUnbound) {
156
198
  const artifactHash = Array.from(sha256(new TextEncoder().encode(JSON.stringify(input.artifact))), byte => byte.toString(16).padStart(2, "0")).join("");
157
199
  if (artifactHash !== ARTIFACT_CANONICAL_SHA256)
158
200
  throw new Error("fee account artifact metadata mismatch");
@@ -172,8 +214,10 @@ export function verifyKcc20FeeAccountForClaim(input) {
172
214
  const marketId = hex32(input.expected.marketId, "expected market");
173
215
  const policyId = hex32(input.expected.policyId, "expected policy");
174
216
  const accountId = hex32(input.expected.accountId, "expected account");
175
- if ([tokenId, marketId, policyId, accountId].includes(ZERO))
217
+ if (tokenId === ZERO || accountId === ZERO ||
218
+ (requireUnbound ? (marketId !== ZERO || policyId !== ZERO) : (marketId === ZERO || policyId === ZERO))) {
176
219
  throw new Error("invalid fee account identity");
220
+ }
177
221
  for (const [name, expected] of [["token", tokenId], ["market", marketId], ["policy", policyId]]) {
178
222
  if (hex32(state[name], name) !== expected)
179
223
  throw new Error(`fee account ${name} mismatch`);
@@ -198,6 +242,9 @@ export function verifyKcc20FeeAccountForClaim(input) {
198
242
  throw new Error("invalid fee account guard state");
199
243
  }
200
244
  hex32(state.action_hash, "action_hash");
245
+ if (requireUnbound && (scheme !== 0 || state.action_hash !== ZERO)) {
246
+ throw new Error("unbound fee account must have its initial owner and action state");
247
+ }
201
248
  const selfHash = Array.from(templateHash(prefix, suffix), byte => byte.toString(16).padStart(2, "0")).join("");
202
249
  if (hex32(state.self_template, "self_template") !== selfHash ||
203
250
  natural(state.self_prefix, "self_prefix") !== BigInt(prefix.length) ||
@@ -1 +1 @@
1
- {"version":3,"file":"escrow-receipt.js","sourceRoot":"","sources":["../src/escrow-receipt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"escrow-receipt.js","sourceRoot":"","sources":["../src/escrow-receipt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAA+B,MAAM,iBAAiB,CAAC;AAGhH,MAAM,YAAY,GAAG,mCAAmC,CAAC;AACzD,8EAA8E;AAC9E,8EAA8E;AAC9E,MAAM,yBAAyB,GAAG,kEAAkE,CAAC;AACrG,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC7B,MAAM,MAAM,GAAG;IACb,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC5D,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC;IACtD,CAAC,iBAAiB,EAAE,SAAS,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,CAAC;IAC1D,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;IAC/C,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC;IACvD,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC;IAChD,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC;IACxD,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC;CACtC,CAAC;AA6BX,SAAS,KAAK,CAAC,KAAc,EAAE,IAAY;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,sBAAsB,CAAC,CAAC;IAChH,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,OAAO,CAAC,KAAc,EAAE,IAAY;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,qCAAqC,CAAC,CAAC;IAC9H,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,MAAM,GAAG,oBAAoB;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,6BAA6B,CAAC,CAAC;IACzF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,KAAK,CAAC,KAAc,EAAE,IAAY;IACzC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAChC,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,WAAW,CAAC,KAA8B;IACjD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;QAClC,IAAI,KAAiB,CAAC;QACtB,IAAI,IAAI,KAAK,SAAS;YAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;aACpD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAK,KAAgB,GAAG,CAAC,IAAK,KAAgB,GAAG,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,iBAAiB,CAAC,CAAC;YAC5H,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,KAAe,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YACzC,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACzF,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,yBAAyB,CAAC,aAAsB,EAAE,KAA8B;IAC9F,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,EAC7F,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,IAAI,YAAY,KAAK,yBAAyB;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACzG,MAAM,QAAQ,GAAG,6BAA6B,CAAC,aAAa,CAAC,CAAC;IAC9D,6BAA6B,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,aAAa,KAAK,kBAAkB;QAC7C,QAAQ,CAAC,YAAY,EAAE,KAAK,KAAK,WAAW,IAAI,QAAQ,CAAC,YAAY,EAAE,GAAG,KAAK,YAAY,EAAE,CAAC;QAChG,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3G,IAAI,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC,KAAK,IAAI;QACpD,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QACnE,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAClF,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzH,OAAO;QACL,YAAY;QACZ,UAAU;QACV,eAAe,EAAE,EAAE,OAAO,EAAE,CAAU,EAAE,SAAS,EAAE,OAAO,UAAU,IAAI,EAAE;QAC1E,cAAc,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;KACnF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAK7C;IAEC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC9F,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,IAAI,YAAY,KAAK,yBAAyB;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC1G,MAAM,QAAQ,GAAG,6BAA6B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/D,6BAA6B,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,aAAa,KAAK,kBAAkB;QAC7C,QAAQ,CAAC,YAAY,EAAE,KAAK,KAAK,WAAW,IAAI,QAAQ,CAAC,YAAY,EAAE,GAAG,KAAK,YAAY,EAAE,CAAC;QAChG,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACtH,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAC7D,MAAM,iBAAiB,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;IACzF,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;IACtF,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/D,iBAAiB,KAAK,gBAAgB;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC5F,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI;QAC1B,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC9D,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;KACtE,EAAE,CAAC;QACX,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE,YAAY,IAAI,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,WAAW,CAAC,CAAC;IACrH,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC;QAC9E,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,cAAc,KAAK,IAAI;QACrD,KAAK,CAAC,YAAY,KAAK,GAAG,IAAI,KAAK,CAAC,YAAY,KAAK,GAAG,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/G,IAAI,KAAK,CAAC,aAAa,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/E,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IACjC,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,GAAG,oBAAoB;QAC5C,CAAC,QAAQ,GAAG,EAAE,IAAI,QAAQ,GAAG,0BAA0B,CAAC;QACxD,CAAC,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,0BAA0B,CAAC;QACtD,CAAC,gBAAgB,KAAK,IAAI,IAAI,OAAO,KAAK,EAAE,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACpH,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,UAAU;QAClG,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvH,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,kBAAkB,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;QACtG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACrG,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;QAC5G,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACvF,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzH,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,qBAAqB,CAAC,KAAK,UAAU;QACxE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,KAAK,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,OAAO,UAAU,IAAI,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO;QACL,OAAO,EAAE;YACP,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;YAC5D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB;YAChE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO;SAClE;QACD,YAAY;QACZ,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;KAC7F,CAAC;AACJ,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,6BAA6B,CAAC,KAK7C;IAEC,OAAO,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,sCAAsC,CAAC,KAKtD;IAEC,OAAO,gBAAgB,CAAC;QACtB,GAAG,KAAK;QACR,QAAQ,EAAE,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;KAChE,EAAE,IAAI,CAAC,CAAC;AACX,CAAC;AAED,SAAS,gBAAgB,CAAC,KAKzB,EAAE,cAAuB;IAExB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC9F,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,IAAI,YAAY,KAAK,yBAAyB;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC1G,MAAM,QAAQ,GAAG,6BAA6B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/D,6BAA6B,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,aAAa,KAAK,kBAAkB;QAC7C,QAAQ,CAAC,YAAY,EAAE,KAAK,KAAK,WAAW,IAAI,QAAQ,CAAC,YAAY,EAAE,GAAG,KAAK,YAAY,EAAE,CAAC;QAChG,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACtH,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IACtE,IAAI,OAAO,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI;QACtC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;QAC3G,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAU,EAAE,CAAC;QACzG,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,WAAW,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAClD,KAAK,CAAC,KAAK,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,KAAK,IAAI;QAC1D,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,iBAAiB,CAAC,KAAK,IAAI;QACxD,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,iBAAiB,CAAC,KAAK,EAAE;QACxD,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,KAAK,EAAE;QACtD,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI;QACpC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,IAAK,KAAK,CAAC,YAAuB,GAAG,CAAC;QAC1E,KAAK,CAAC,YAAuB,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,KAAK,CAAC,YAAsB,CAAC;IAC5C,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,WAAW,KAAK,EAAE,IAAI,WAAW,KAAK,EAAE,CAAC,CAAC;QAC7E,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,WAAW,KAAK,EAAE,IAAI,WAAW,KAAK,EAAE,CAAC,CAAC;QAC9E,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,WAAW,KAAK,EAAE,IAAI,WAAW,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;QACnF,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACxC,IAAI,cAAc,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/G,IAAI,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC,KAAK,QAAQ;QACxD,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QACnE,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACpH,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,UAAU;QAClG,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK;QAClH,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,kBAAkB,CAAC,KAAK,SAAS;QACpE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,KAAK,SAAS,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;IAC/E,IAAI,SAAS,KAAK,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAChH,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACvF,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzH,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,qBAAqB,CAAC,KAAK,UAAU;QACxE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,KAAK,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,OAAO,UAAU,IAAI,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO;QACL,OAAO,EAAE;YACP,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;YAC5D,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS;YAChD,KAAK,EAAE,KAAwC;SAChD;QACD,YAAY;QACZ,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;KAC7F,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -23,6 +23,7 @@ export * from "./escrow-policy.js";
23
23
  export * from "./escrow-group.js";
24
24
  export * from "./escrow-receipt.js";
25
25
  export * from "./escrow-claim-plan.js";
26
+ export * from "./escrow-account-setup.js";
26
27
  export * from "./trading-operation.js";
27
28
  export * from "./protocol.js";
28
29
  export * from "./runtime.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uCAAuC,CAAC;AACtD,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AAEtC,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,oBAAoB,MAAM,uCAAuC,CAAC;AAC9E,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uCAAuC,CAAC;AACtD,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AAEtC,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,oBAAoB,MAAM,uCAAuC,CAAC;AAC9E,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -23,6 +23,7 @@ export * from "./escrow-policy.js";
23
23
  export * from "./escrow-group.js";
24
24
  export * from "./escrow-receipt.js";
25
25
  export * from "./escrow-claim-plan.js";
26
+ export * from "./escrow-account-setup.js";
26
27
  export * from "./trading-operation.js";
27
28
  export * from "./protocol.js";
28
29
  export * from "./runtime.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uCAAuC,CAAC;AACtD,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AAEtC,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,oBAAoB,MAAM,uCAAuC,CAAC;AAC9E,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uCAAuC,CAAC;AACtD,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AAEtC,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,oBAAoB,MAAM,uCAAuC,CAAC;AAC9E,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
@@ -1,4 +1,4 @@
1
- export declare const KCC20_BUILDER_KEYS: readonly ["kcc20.deploy-token", "kcc20.mint", "kcc20.set-public-mint-active", "kcc20.transfer", "kcc20.consolidate-holders", "kcc20.reveal-token", "kcc20wrapper.deploy-market", "kcc20wrapper.wrap", "kcc20wrapper.unwrap", "kcc20orderbook.create-bid", "kcc20orderbook.create-ask", "kcc20orderbook.fill-ask", "kcc20orderbook.fill-bid", "kcc20orderbook.sweep-asks", "kcc20orderbook.sweep-bids", "kcc20orderbook.consolidate-holders", "kcc20orderbook.cancel-ask", "kcc20orderbook.cancel-bid", "fee-ticket.deploy-root", "fee-ticket.update-denomination", "fee-ticket.create-from-utility-burn", "fee-ticket.burn", "fee-ticket.transfer", "kcc20-snapshot.deploy-bootstrap", "kcc20-snapshot.deploy-controller", "kcc20-snapshot.start", "kcc20-snapshot.claim"];
1
+ export declare const KCC20_BUILDER_KEYS: readonly ["kcc20.deploy-token", "kcc20.mint", "kcc20.set-public-mint-active", "kcc20.transfer", "kcc20.consolidate-holders", "kcc20.reveal-token", "kcc20wrapper.deploy-market", "kcc20wrapper.wrap", "kcc20wrapper.unwrap", "kcc20orderbook.create-bid", "kcc20orderbook.create-ask", "kcc20orderbook.fill-ask", "kcc20orderbook.fill-bid", "kcc20orderbook.sweep-asks", "kcc20orderbook.sweep-bids", "kcc20orderbook.consolidate-holders", "kcc20orderbook.cancel-ask", "kcc20orderbook.cancel-bid", "fee-ticket.deploy-root", "fee-ticket.update-denomination", "fee-ticket.create-from-utility-burn", "fee-ticket.burn", "fee-ticket.transfer", "kcc20fee.create-account", "kcc20fee.bind-account", "kcc20-snapshot.deploy-bootstrap", "kcc20-snapshot.deploy-controller", "kcc20-snapshot.start", "kcc20-snapshot.claim"];
2
2
  export type Kcc20BuilderKey = (typeof KCC20_BUILDER_KEYS)[number];
3
3
  export declare function isKcc20BuilderKey(value: string): value is Kcc20BuilderKey;
4
4
  export declare const BACKEND_ONLY_BUILDER_KEYS: readonly ["kcc20orderbook.matcher-settle-crossed"];
@@ -1 +1 @@
1
- {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,4uBA4BrB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,eAAe,CAEzE;AAED,eAAO,MAAM,yBAAyB,oDAE5B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/E,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,qBAAqB,CAKhC"}
1
+ {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,gyBA8BrB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,eAAe,CAEzE;AAED,eAAO,MAAM,yBAAyB,oDAE5B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/E,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,qBAAqB,CAKhC"}
@@ -22,6 +22,8 @@ export const KCC20_BUILDER_KEYS = [
22
22
  "fee-ticket.create-from-utility-burn",
23
23
  "fee-ticket.burn",
24
24
  "fee-ticket.transfer",
25
+ "kcc20fee.create-account",
26
+ "kcc20fee.bind-account",
25
27
  "kcc20-snapshot.deploy-bootstrap",
26
28
  "kcc20-snapshot.deploy-controller",
27
29
  "kcc20-snapshot.start",
@@ -1 +1 @@
1
- {"version":3,"file":"operations.js","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,oBAAoB;IACpB,YAAY;IACZ,8BAA8B;IAC9B,gBAAgB;IAChB,2BAA2B;IAC3B,oBAAoB;IACpB,4BAA4B;IAC5B,mBAAmB;IACnB,qBAAqB;IACrB,2BAA2B;IAC3B,2BAA2B;IAC3B,yBAAyB;IACzB,yBAAyB;IACzB,2BAA2B;IAC3B,2BAA2B;IAC3B,oCAAoC;IACpC,2BAA2B;IAC3B,2BAA2B;IAC3B,wBAAwB;IACxB,gCAAgC;IAChC,qCAAqC;IACrC,iBAAiB;IACjB,qBAAqB;IACrB,iCAAiC;IACjC,kCAAkC;IAClC,sBAAsB;IACtB,sBAAsB;CACd,CAAC;AAIX,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAQ,kBAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,uCAAuC;CAC/B,CAAC;AAIX,MAAM,UAAU,uBAAuB,CACrC,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACxB,yBAA+C,CAAC,QAAQ,CAAC,KAAK,CAAC,CACjE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,oBAAoB;IACpB,YAAY;IACZ,8BAA8B;IAC9B,gBAAgB;IAChB,2BAA2B;IAC3B,oBAAoB;IACpB,4BAA4B;IAC5B,mBAAmB;IACnB,qBAAqB;IACrB,2BAA2B;IAC3B,2BAA2B;IAC3B,yBAAyB;IACzB,yBAAyB;IACzB,2BAA2B;IAC3B,2BAA2B;IAC3B,oCAAoC;IACpC,2BAA2B;IAC3B,2BAA2B;IAC3B,wBAAwB;IACxB,gCAAgC;IAChC,qCAAqC;IACrC,iBAAiB;IACjB,qBAAqB;IACrB,yBAAyB;IACzB,uBAAuB;IACvB,iCAAiC;IACjC,kCAAkC;IAClC,sBAAsB;IACtB,sBAAsB;CACd,CAAC;AAIX,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAQ,kBAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,uCAAuC;CAC/B,CAAC;AAIX,MAAM,UAAU,uBAAuB,CACrC,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACxB,yBAA+C,CAAC,QAAQ,CAAC,KAAK,CAAC,CACjE,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema": "kcc20-example-compatibility/v1",
3
- "packageVersion": "0.8.0-fee.2",
3
+ "packageVersion": "0.8.0-fee.3",
4
4
  "contractsRepository": "https://github.com/KASPACOM/kaspa-covenants",
5
5
  "contractsCommit": "5deb1769e69142595576ef7c573af9f433a48a3c",
6
6
  "compiler": {
@@ -1,8 +1,33 @@
1
1
  # Experimental fee escrow primitives
2
2
 
3
- These exports support the new DEV fee-market contracts. Existing transaction
4
- construction still uses the legacy fee version. These functions do not build,
5
- authorize or submit escrow spends, and this change does not publish a package.
3
+ These exports support the new DEV fee-market contracts. Existing trading
4
+ transactions still use the legacy fee version. New fee-market creation remains
5
+ disabled, and this change does not publish a package.
6
+
7
+ ## Fee account setup
8
+
9
+ `kcc20fee.create-account` builds a version 1 PSKT with one unbound fee-account
10
+ genesis output and a separate wallet change output. The caller supplies the
11
+ native token ID and account principal in sompi. The connected wallet's Schnorr
12
+ public key controls the account. The builder pins the escrow artifact, checks
13
+ the key, computes the account covenant ID, and checks the signed transaction's
14
+ fee and mass before returning the PSKT. The wallet signs the funding input.
15
+
16
+ The creation result includes `metadata.accountGenesisHint`. Save it with the
17
+ broadcast result and add the accepted transaction ID as `txidHex`. An unspent
18
+ P2SH genesis output does not reveal its account state to the indexer.
19
+
20
+ `kcc20fee.bind-account` accepts that saved `accountGenesisHint`, or an
21
+ equivalent active account record, plus the token, account, market and policy
22
+ IDs. It fetches the current account UTXO from the node and checks its script,
23
+ lineage, outpoint and principal against the pinned artifact. The wallet signs
24
+ the account input and a separate funding input. The bound output keeps the
25
+ same account ID and exact principal. Binding is a one-time operation; later
26
+ authority changes use the contract's rotation path.
27
+
28
+ These operations prepare wallet-signable transactions. They do not broadcast
29
+ or establish funded TN10 execution. Account creation and binding are only the
30
+ first setup steps; trading, claims and rotation still need signed builders.
6
31
 
7
32
  `calculateKcc20EscrowFees` implements the fixed 1% protocol fee and optional
8
33
  0–5% creator fee. Each nonzero share has a 0.5 KAS minimum, applied per fill.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaspacom/kcc20-tx-builder",
3
- "version": "0.8.0-fee.2",
3
+ "version": "0.8.0-fee.3",
4
4
  "description": "Runtime-independent KCC20 covenant transaction and PSKT construction primitives.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "KaspaCom",
@@ -88,8 +88,8 @@
88
88
  "scripts": {
89
89
  "build": "tsc -p tsconfig.json && tsc -p tsconfig.cjs.json && node scripts/write-cjs-package.mjs",
90
90
  "typecheck": "tsc -p tsconfig.json --noEmit",
91
- "test:escrow-fee": "npm run build && node --test test/escrow-fee.mjs test/escrow-policy.mjs test/escrow-group.mjs test/escrow-receipt.mjs test/escrow-claim-plan.mjs",
92
- "test": "npm run typecheck && npm run build && node test/smoke.mjs && node test/cjs-smoke.cjs && node test/snapshot-plan.mjs && node test/token-profiles.mjs && node test/profile-transfer.mjs && node --test test/mint-availability-limit.mjs test/consolidation-profile.mjs test/consolidation-transaction.mjs test/escrow-fee.mjs test/escrow-policy.mjs test/escrow-group.mjs test/escrow-receipt.mjs test/escrow-claim-plan.mjs && node test/pinned-funding.mjs",
91
+ "test:escrow-fee": "npm run build && node --test test/escrow-fee.mjs test/escrow-policy.mjs test/escrow-group.mjs test/escrow-receipt.mjs test/escrow-claim-plan.mjs test/escrow-account-setup.mjs test/escrow-account-bind-pskt.mjs",
92
+ "test": "npm run typecheck && npm run build && node test/smoke.mjs && node test/cjs-smoke.cjs && node test/snapshot-plan.mjs && node test/token-profiles.mjs && node test/profile-transfer.mjs && node --test test/mint-availability-limit.mjs test/consolidation-profile.mjs test/consolidation-transaction.mjs test/escrow-fee.mjs test/escrow-policy.mjs test/escrow-group.mjs test/escrow-receipt.mjs test/escrow-claim-plan.mjs test/escrow-account-setup.mjs test/escrow-account-bind-pskt.mjs && node test/pinned-funding.mjs",
93
93
  "prepack": "npm test",
94
94
  "test:examples": "npm run verify:compatibility && node scripts/test-examples.mjs --browser",
95
95
  "verify:compatibility": "node scripts/verify-compatibility.mjs",