@kaspacom/kcc20-tx-builder 0.6.1 → 0.6.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.
@@ -100,6 +100,8 @@ export declare function buildKcc20TransferTokenOperation(wallet: Kcc20ActionWall
100
100
  };
101
101
  export declare function buildKcc20NativeConsolidationOperation(wallet: Kcc20ActionWalletInfo, input: {
102
102
  token: Kcc20ActionTokenInfo;
103
+ /** From authenticated token readiness; construction rechecks every source script. */
104
+ tokenProfileId: string;
103
105
  activeUtxos: readonly Kcc20IndexedCovenantUtxo[];
104
106
  sourceOutpoints?: readonly string[];
105
107
  }, options?: Kcc20TokenOperationOptions): {
@@ -1 +1 @@
1
- {"version":3,"file":"token-operation.d.ts","sourceRoot":"","sources":["../src/token-operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,wBAAwB,EAC9B,MAAM,6BAA6B,CAAC;AAcrC,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE;QACX,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,gBAAgB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;QAClC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;CACH;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE;IACL,KAAK,EAAE,oBAAoB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACjD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,EACD,OAAO,GAAE,0BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsIzC;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE;IACL,KAAK,EAAE,oBAAoB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,EACD,OAAO,GAAE,0BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsFzC;AAED,wBAAgB,sCAAsC,CACpD,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE;IACL,KAAK,EAAE,oBAAoB,CAAC;IAC5B,WAAW,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACjD,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,EACD,OAAO,GAAE,0BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2EzC"}
1
+ {"version":3,"file":"token-operation.d.ts","sourceRoot":"","sources":["../src/token-operation.ts"],"names":[],"mappings":"AAKA,OAAO,EAML,KAAK,wBAAwB,EAC9B,MAAM,6BAA6B,CAAC;AAcrC,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE;QACX,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,gBAAgB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;QAClC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;CACH;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE;IACL,KAAK,EAAE,oBAAoB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACjD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,EACD,OAAO,GAAE,0BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsIzC;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE;IACL,KAAK,EAAE,oBAAoB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,EACD,OAAO,GAAE,0BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsFzC;AAED,wBAAgB,sCAAsC,CACpD,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE;IACL,KAAK,EAAE,oBAAoB,CAAC;IAC5B,qFAAqF;IACrF,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACjD,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,EACD,OAAO,GAAE,0BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiFzC"}
@@ -1,3 +1,5 @@
1
+ import { resolveAuthenticatedTokenProfile } from "./token-profiles.js";
2
+ import { BUNDLED_TOKEN_PROFILES, BUNDLED_TOKEN_PROFILE_DIGEST, } from "./token-profiles.generated.js";
1
3
  import { ownerNativeHolderUtxos, selectActiveMinterUtxo, selectConsolidationBatch, selectOwnerNativeHolderUtxo, summarizeHolderUtxos, } from "./action-source-resolver.js";
2
4
  import { kcc20DisplayScaleForDecimals, normalizeKcc20Decimals, normalizeKcc20OwnerIdentifier, parseKcc20DisplayAmountToBaseUnits, } from "./token-amount.js";
3
5
  import { kcc20ValidatePaidMintAmount } from "./paid-mint-amount.js";
@@ -168,8 +170,11 @@ export function buildKcc20TransferTokenOperation(wallet, input, options = {}) {
168
170
  export function buildKcc20NativeConsolidationOperation(wallet, input, options = {}) {
169
171
  const covenantId = requireHex32(input.token.covenantId, "covenantId");
170
172
  const owner = normalizeKcc20OwnerIdentifier(wallet.kcc20Owner, "wallet owner");
173
+ const profile = resolveAuthenticatedTokenProfile({ manifest: BUNDLED_TOKEN_PROFILES, sha256: BUNDLED_TOKEN_PROFILE_DIGEST }, input.tokenProfileId);
174
+ if (profile.maxTokenInputs < 2 || !profile.operations.includes("transfer"))
175
+ throw new Error("token profile does not support consolidation");
171
176
  const compatible = ownerNativeHolderUtxos(input.activeUtxos, owner);
172
- const selected = selectConsolidationBatch(compatible, input.sourceOutpoints, 8);
177
+ const selected = selectConsolidationBatch(compatible, input.sourceOutpoints, profile.maxTokenInputs);
173
178
  if (selected.length < 2)
174
179
  throw new Error("at least two compatible KCC20 holder UTXOs are required for consolidation");
175
180
  const nativeIds = new Set(selected.map((utxo) => utxo.covenantId ?? covenantId));
@@ -214,7 +219,7 @@ export function buildKcc20NativeConsolidationOperation(wallet, input, options =
214
219
  },
215
220
  ],
216
221
  warnings: [
217
- "Consolidation merges between two and eight wallet-owned holder UTXOs into one larger holder UTXO.",
222
+ `Consolidation merges between two and ${profile.maxTokenInputs} wallet-owned holder UTXOs into one larger holder UTXO.`,
218
223
  "Repeat consolidation when more compatible holder UTXOs remain.",
219
224
  ],
220
225
  }, options);
@@ -1 +1 @@
1
- {"version":3,"file":"token-operation.js","sourceRoot":"","sources":["../src/token-operation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-operation.js","sourceRoot":"","sources":["../src/token-operation.ts"],"names":[],"mappings":"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"}
package/docs/RECIPES.md CHANGED
@@ -79,7 +79,7 @@ them with current decoded state and RPC entries for live use; see the
79
79
  | `transfer` | `buildKcc20TransferTokenOperation` | Token identity/decimals, display amount, recipient owner, current holder UTXOs. |
80
80
  | `mint` | `buildKcc20MintTokenOperation` | Token mint policy, amount, active authority UTXOs, optional recipient. |
81
81
  | `mintAvailability` | `buildKcc20MintAvailabilityOperation` | Token, active mint-authority state, requested enabled state. |
82
- | `consolidate` | `buildKcc20NativeConsolidationOperation` | Token, owner holder UTXOs, optional target amount. |
82
+ | `consolidate` | `buildKcc20NativeConsolidationOperation` | Token, authenticated `tokenProfileId`, owner holder UTXOs, optional source outpoints. |
83
83
  | `reveal` | `buildKcc20VerifyTokenOperation` | Token identity and a spendable holder/authority snapshot. |
84
84
 
85
85
  ```ts
@@ -173,3 +173,5 @@ operator configuration. Never enable it in the frontend, expose operator
173
173
  credentials through a client configuration object, or forward all of `process.env`
174
174
  to the engine. Public minting, transfer, and user order actions do not require
175
175
  this matcher or KaspaCom's backend.
176
+
177
+ Native consolidation uses the bundled profile's `maxTokenInputs`; no universal three-input cap applies. Supply `tokenProfileId` from the backend consolidation status. Unknown profiles fail closed. The transaction engine independently matches source scripts to authenticated artifacts, rejects mixed templates and oversized batches, and keeps the network mass checks.
@@ -402,6 +402,7 @@ export async function recipeFixtures(
402
402
  wallet,
403
403
  {
404
404
  token: { covenantId: tokenId, decimals: 2 },
405
+ tokenProfileId: "kaspacom-kcc20-last-call-v1",
405
406
  activeUtxos: holders,
406
407
  sourceOutpoints: holders.map((x) => x.outpoint!),
407
408
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaspacom/kcc20-tx-builder",
3
- "version": "0.6.1",
3
+ "version": "0.6.3",
4
4
  "description": "Runtime-independent KCC20 covenant transaction and PSKT construction primitives.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "KaspaCom",
@@ -86,11 +86,12 @@
86
86
  "scripts": {
87
87
  "build": "tsc -p tsconfig.json && tsc -p tsconfig.cjs.json && node scripts/write-cjs-package.mjs",
88
88
  "typecheck": "tsc -p tsconfig.json --noEmit",
89
- "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",
89
+ "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 && node test/pinned-funding.mjs",
90
90
  "prepack": "npm test",
91
91
  "test:examples": "npm run verify:compatibility && node scripts/test-examples.mjs --browser",
92
92
  "verify:compatibility": "node scripts/verify-compatibility.mjs",
93
- "test:snapshot:transactions": "npm run build && node test/snapshot-transactions.mjs && node test/snapshot-claims.mjs"
93
+ "test:snapshot:transactions": "npm run build && node test/snapshot-transactions.mjs && node test/snapshot-claims.mjs",
94
+ "test:consolidation:consensus": "npm run build && node scripts/test-consolidation-consensus.mjs"
94
95
  },
95
96
  "devDependencies": {
96
97
  "typescript": "^5.9.3"
package/src/engine.ts CHANGED
@@ -703,6 +703,8 @@ export function createKcc20PsktBuilderEngine(
703
703
  const fundingEntry = selectFundingEntry(
704
704
  walletUtxos.entries,
705
705
  priorityFee + 10_000n,
706
+ [],
707
+ request.params?.fundingOutpoint,
706
708
  );
707
709
  const fundingInputIndex = 1;
708
710
  const fundingChangeOutputIndex = 1;
@@ -1026,6 +1028,8 @@ export function createKcc20PsktBuilderEngine(
1026
1028
  const fundingEntry = selectFundingEntry(
1027
1029
  walletUtxos.entries,
1028
1030
  requiredFunding,
1031
+ [],
1032
+ request.params?.fundingOutpoint,
1029
1033
  );
1030
1034
  const fundingInputIndex = 2;
1031
1035
  const change =
@@ -1284,6 +1288,8 @@ export function createKcc20PsktBuilderEngine(
1284
1288
  const fundingEntry = selectFundingEntry(
1285
1289
  walletUtxos.entries,
1286
1290
  priorityFee + 10_000n,
1291
+ [],
1292
+ request.params?.fundingOutpoint,
1287
1293
  );
1288
1294
  const fundingInputIndex = entries.length;
1289
1295
  const fundingChangeOutputIndex = outputs.length;
@@ -1529,6 +1535,8 @@ export function createKcc20PsktBuilderEngine(
1529
1535
  const fundingEntry = selectFundingEntry(
1530
1536
  walletUtxos.entries,
1531
1537
  priorityFee + 10_000n,
1538
+ [],
1539
+ request.params?.fundingOutpoint,
1532
1540
  );
1533
1541
  const fundingInputIndex = entries.length;
1534
1542
  const fundingChangeOutputIndex = outputs.length;
@@ -2772,6 +2780,8 @@ export function createKcc20PsktBuilderEngine(
2772
2780
  const fundingEntry = selectFundingEntry(
2773
2781
  utxos.entries,
2774
2782
  deploySompi * 2n + priorityFee + 10_000_000n,
2783
+ [],
2784
+ request.params?.fundingOutpoint,
2775
2785
  );
2776
2786
  const fundingChangeOutputIndex = 2;
2777
2787
  const change =
@@ -3256,6 +3266,8 @@ export function createKcc20PsktBuilderEngine(
3256
3266
  const fundingEntry = selectFundingEntry(
3257
3267
  walletUtxos.entries,
3258
3268
  requiredFunding,
3269
+ [],
3270
+ request.params?.fundingOutpoint,
3259
3271
  );
3260
3272
  const fundingInputIndex = 2;
3261
3273
  const change =
@@ -3707,6 +3719,8 @@ export function createKcc20PsktBuilderEngine(
3707
3719
  const fundingEntry = selectFundingEntry(
3708
3720
  walletUtxos.entries,
3709
3721
  requiredFunding,
3722
+ [],
3723
+ request.params?.fundingOutpoint,
3710
3724
  );
3711
3725
  const fundingInputIndex = 3;
3712
3726
  const change =
@@ -4099,6 +4113,8 @@ export function createKcc20PsktBuilderEngine(
4099
4113
  const fundingEntry = selectFundingEntry(
4100
4114
  walletUtxos.entries,
4101
4115
  requiredFunding,
4116
+ [],
4117
+ request.params?.fundingOutpoint,
4102
4118
  );
4103
4119
  const fundingInputIndex = 1;
4104
4120
  const change =
@@ -4513,6 +4529,8 @@ export function createKcc20PsktBuilderEngine(
4513
4529
  const fundingEntry = selectFundingEntry(
4514
4530
  walletUtxos.entries,
4515
4531
  requiredFunding,
4532
+ [],
4533
+ request.params?.fundingOutpoint,
4516
4534
  );
4517
4535
  const ticketInputIndex = ticketEntry ? 1 : -1;
4518
4536
  const fundingInputIndex = ticketEntry ? 2 : 1;
@@ -5055,6 +5073,8 @@ export function createKcc20PsktBuilderEngine(
5055
5073
  const fundingEntry = selectFundingEntry(
5056
5074
  walletUtxos.entries,
5057
5075
  requiredFunding,
5076
+ [],
5077
+ request.params?.fundingOutpoint,
5058
5078
  );
5059
5079
  const ticketInputIndex = ticketEntry ? 2 : -1;
5060
5080
  const fundingInputIndex = ticketEntry ? 3 : 2;
@@ -5601,6 +5621,8 @@ export function createKcc20PsktBuilderEngine(
5601
5621
  const fundingEntry = selectFundingEntry(
5602
5622
  walletUtxos.entries,
5603
5623
  requiredFunding,
5624
+ [],
5625
+ request.params?.fundingOutpoint,
5604
5626
  );
5605
5627
  const fundingInputIndex =
5606
5628
  resolvedLegs.length + (sharedTicketEntry ? 1 : 0);
@@ -6301,7 +6323,7 @@ export function createKcc20PsktBuilderEngine(
6301
6323
  : priorityFee + 10_000n;
6302
6324
  let fundingEntry;
6303
6325
  try {
6304
- fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding);
6326
+ fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding, [], request.params?.fundingOutpoint);
6305
6327
  } catch (error) {
6306
6328
  if (totalSellerFundedHolderTopUpSompi > 0n) {
6307
6329
  throw kcc20PsktBuilderError(
@@ -7046,7 +7068,7 @@ export function createKcc20PsktBuilderEngine(
7046
7068
  : priorityFee + 10_000n;
7047
7069
  let fundingEntry;
7048
7070
  try {
7049
- fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding);
7071
+ fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding, [], request.params?.fundingOutpoint);
7050
7072
  } catch (error) {
7051
7073
  if (totalSellerFundedHolderTopUpSompi > 0n) {
7052
7074
  throw kcc20PsktBuilderError(
@@ -7495,6 +7517,8 @@ export function createKcc20PsktBuilderEngine(
7495
7517
  const fundingEntry = selectFundingEntry(
7496
7518
  walletUtxos.entries,
7497
7519
  requiredFunding,
7520
+ [],
7521
+ request.params?.fundingOutpoint,
7498
7522
  );
7499
7523
  const fundingInputIndex = entries.length;
7500
7524
  const change = utxoAmountSompi(fundingEntry) - priorityFee;
@@ -8050,6 +8074,8 @@ export function createKcc20PsktBuilderEngine(
8050
8074
  const fundingEntry = selectFundingEntry(
8051
8075
  walletUtxos.entries,
8052
8076
  requiredFunding,
8077
+ [],
8078
+ request.params?.fundingOutpoint,
8053
8079
  );
8054
8080
  const ticketInputIndex = ticketEntry ? 2 : -1;
8055
8081
  const fundingInputIndex = ticketEntry ? 3 : 2;
@@ -8463,6 +8489,8 @@ export function createKcc20PsktBuilderEngine(
8463
8489
  const fundingEntry = selectFundingEntry(
8464
8490
  walletUtxos.entries,
8465
8491
  requiredFunding,
8492
+ [],
8493
+ request.params?.fundingOutpoint,
8466
8494
  );
8467
8495
  const fundingInputIndex = 1;
8468
8496
  const change =
@@ -8855,6 +8883,8 @@ export function createKcc20PsktBuilderEngine(
8855
8883
  const fundingEntry = selectFundingEntry(
8856
8884
  walletUtxos.entries,
8857
8885
  requiredFunding,
8886
+ [],
8887
+ request.params?.fundingOutpoint,
8858
8888
  );
8859
8889
  const fundingInputIndex = 1;
8860
8890
  const change =
@@ -9227,6 +9257,8 @@ export function createKcc20PsktBuilderEngine(
9227
9257
  const fundingEntry = selectFundingEntry(
9228
9258
  walletUtxos.entries,
9229
9259
  priorityFee + 10_000n,
9260
+ [],
9261
+ request.params?.fundingOutpoint,
9230
9262
  );
9231
9263
  const fundingInputIndex = resolvedLanes.length;
9232
9264
  const fundingChange = BigInt(fundingEntry.amount) - priorityFee;
@@ -9418,8 +9450,25 @@ export function createKcc20PsktBuilderEngine(
9418
9450
  const holderUtxos = Array.isArray(params.activeHolderUtxos)
9419
9451
  ? params.activeHolderUtxos
9420
9452
  : [];
9421
- if (holderUtxos.length < 2 || holderUtxos.length > 3) {
9422
- throw new Error("between two and three KCC20 holder UTXOs are required");
9453
+ if (holderUtxos.length < 2) {
9454
+ throw new Error("at least two KCC20 holder UTXOs are required");
9455
+ }
9456
+
9457
+ const maximumProfileInputs = Math.max(
9458
+ 0,
9459
+ ...tokenProfiles.profiles.map((p) => p.maxTokenInputs),
9460
+ );
9461
+ if (holderUtxos.length > maximumProfileInputs) {
9462
+ throw new Error(
9463
+ `consolidation exceeds the token profile input bound (${maximumProfileInputs})`,
9464
+ );
9465
+ }
9466
+ const sourceOutpoints = holderUtxos.map(
9467
+ (u) =>
9468
+ `${requireHex32(u.txidHex, "holder txid")}:${parseVout(u.vout, "holder vout")}`,
9469
+ );
9470
+ if (new Set(sourceOutpoints).size !== holderUtxos.length) {
9471
+ throw new Error("consolidation requires distinct holder outpoints");
9423
9472
  }
9424
9473
 
9425
9474
  const covenantId = requireHex32(
@@ -9477,7 +9526,9 @@ export function createKcc20PsktBuilderEngine(
9477
9526
  }
9478
9527
  const profile = resolvedArtifacts[0].profile;
9479
9528
  if (holderUtxos.length > profile.maxTokenInputs) {
9480
- throw new Error("consolidation exceeds the token profile input bound");
9529
+ throw new Error(
9530
+ `consolidation exceeds the token profile input bound (${profile.maxTokenInputs})`,
9531
+ );
9481
9532
  }
9482
9533
  const artifact = resolvedArtifacts[0].artifact;
9483
9534
  for (const peerState of states.slice(1)) {
@@ -9500,10 +9551,8 @@ export function createKcc20PsktBuilderEngine(
9500
9551
  const txid = requireHex32(utxo.txidHex, `holder ${index} txid`);
9501
9552
  const vout = parseVout(utxo.vout, `holder ${index} vout`);
9502
9553
  const address = requireKaspaAddress(utxo.address);
9503
- const script = buildNativeKcc20ScriptForState(
9504
- artifact.script,
9505
- states[index],
9506
- );
9554
+ // Resolution already authenticated this profile's complete state layout.
9555
+ const script = resolvedArtifacts[index].script;
9507
9556
  assertScriptAddress(
9508
9557
  kw,
9509
9558
  script,
@@ -9581,6 +9630,8 @@ export function createKcc20PsktBuilderEngine(
9581
9630
  const fundingEntry = selectFundingEntry(
9582
9631
  walletUtxos.entries,
9583
9632
  requiredFunding,
9633
+ [],
9634
+ request.params?.fundingOutpoint,
9584
9635
  );
9585
9636
  const fundingInputIndex = entries.length;
9586
9637
  const change = utxoAmountSompi(fundingEntry) - priorityFee;
@@ -9785,6 +9836,8 @@ export function createKcc20PsktBuilderEngine(
9785
9836
  const fundingEntry = selectFundingEntry(
9786
9837
  walletUtxos.entries,
9787
9838
  requiredFunding,
9839
+ [],
9840
+ request.params?.fundingOutpoint,
9788
9841
  );
9789
9842
  const fundingInputIndex = 1;
9790
9843
  const change = utxoAmountSompi(fundingEntry) - priorityFee;
@@ -10068,6 +10121,8 @@ export function createKcc20PsktBuilderEngine(
10068
10121
  const fundingEntry = selectFundingEntry(
10069
10122
  walletUtxos.entries,
10070
10123
  requiredFunding,
10124
+ [],
10125
+ request.params?.fundingOutpoint,
10071
10126
  );
10072
10127
  const fundingInputIndex = 1;
10073
10128
  const change =
@@ -10625,6 +10680,8 @@ export function createKcc20PsktBuilderEngine(
10625
10680
  const fundingEntry = selectFundingEntry(
10626
10681
  utxos.entries,
10627
10682
  deploySompi + priorityFee + 10_000_000n,
10683
+ [],
10684
+ request.params?.fundingOutpoint,
10628
10685
  );
10629
10686
  const created = await createTransactions({
10630
10687
  entries: [fundingEntry],
@@ -1,3 +1,8 @@
1
+ import { resolveAuthenticatedTokenProfile } from "./token-profiles.js";
2
+ import {
3
+ BUNDLED_TOKEN_PROFILES,
4
+ BUNDLED_TOKEN_PROFILE_DIGEST,
5
+ } from "./token-profiles.generated.js";
1
6
  import {
2
7
  ownerNativeHolderUtxos,
3
8
  selectActiveMinterUtxo,
@@ -293,6 +298,8 @@ export function buildKcc20NativeConsolidationOperation(
293
298
  wallet: Kcc20ActionWalletInfo,
294
299
  input: {
295
300
  token: Kcc20ActionTokenInfo;
301
+ /** From authenticated token readiness; construction rechecks every source script. */
302
+ tokenProfileId: string;
296
303
  activeUtxos: readonly Kcc20IndexedCovenantUtxo[];
297
304
  sourceOutpoints?: readonly string[];
298
305
  },
@@ -303,11 +310,17 @@ export function buildKcc20NativeConsolidationOperation(
303
310
  wallet.kcc20Owner,
304
311
  "wallet owner",
305
312
  );
313
+ const profile = resolveAuthenticatedTokenProfile(
314
+ { manifest: BUNDLED_TOKEN_PROFILES, sha256: BUNDLED_TOKEN_PROFILE_DIGEST },
315
+ input.tokenProfileId,
316
+ );
317
+ if (profile.maxTokenInputs < 2 || !profile.operations.includes("transfer"))
318
+ throw new Error("token profile does not support consolidation");
306
319
  const compatible = ownerNativeHolderUtxos(input.activeUtxos, owner);
307
320
  const selected = selectConsolidationBatch(
308
321
  compatible,
309
322
  input.sourceOutpoints,
310
- 8,
323
+ profile.maxTokenInputs,
311
324
  );
312
325
  if (selected.length < 2)
313
326
  throw new Error(
@@ -365,7 +378,7 @@ export function buildKcc20NativeConsolidationOperation(
365
378
  },
366
379
  ],
367
380
  warnings: [
368
- "Consolidation merges between two and eight wallet-owned holder UTXOs into one larger holder UTXO.",
381
+ `Consolidation merges between two and ${profile.maxTokenInputs} wallet-owned holder UTXOs into one larger holder UTXO.`,
369
382
  "Repeat consolidation when more compatible holder UTXOs remain.",
370
383
  ],
371
384
  },