@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.
- package/CHANGELOG.md +7 -0
- package/dist/cjs/engine.js +35 -26
- package/dist/cjs/engine.js.map +1 -1
- package/dist/cjs/token-operation.d.ts +2 -0
- package/dist/cjs/token-operation.js +7 -2
- package/dist/cjs/token-operation.js.map +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +35 -26
- package/dist/engine.js.map +1 -1
- package/dist/token-operation.d.ts +2 -0
- package/dist/token-operation.d.ts.map +1 -1
- package/dist/token-operation.js +7 -2
- package/dist/token-operation.js.map +1 -1
- package/docs/RECIPES.md +3 -1
- package/examples/shared/recipe-fixtures.ts +1 -0
- package/package.json +4 -3
- package/src/engine.ts +66 -9
- package/src/token-operation.ts +15 -2
|
@@ -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): {
|
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.buildKcc20MintTokenOperation = buildKcc20MintTokenOperation;
|
|
4
4
|
exports.buildKcc20TransferTokenOperation = buildKcc20TransferTokenOperation;
|
|
5
5
|
exports.buildKcc20NativeConsolidationOperation = buildKcc20NativeConsolidationOperation;
|
|
6
|
+
const token_profiles_js_1 = require("./token-profiles.js");
|
|
7
|
+
const token_profiles_generated_js_1 = require("./token-profiles.generated.js");
|
|
6
8
|
const action_source_resolver_js_1 = require("./action-source-resolver.js");
|
|
7
9
|
const token_amount_js_1 = require("./token-amount.js");
|
|
8
10
|
const paid_mint_amount_js_1 = require("./paid-mint-amount.js");
|
|
@@ -173,8 +175,11 @@ function buildKcc20TransferTokenOperation(wallet, input, options = {}) {
|
|
|
173
175
|
function buildKcc20NativeConsolidationOperation(wallet, input, options = {}) {
|
|
174
176
|
const covenantId = requireHex32(input.token.covenantId, "covenantId");
|
|
175
177
|
const owner = (0, token_amount_js_1.normalizeKcc20OwnerIdentifier)(wallet.kcc20Owner, "wallet owner");
|
|
178
|
+
const profile = (0, token_profiles_js_1.resolveAuthenticatedTokenProfile)({ manifest: token_profiles_generated_js_1.BUNDLED_TOKEN_PROFILES, sha256: token_profiles_generated_js_1.BUNDLED_TOKEN_PROFILE_DIGEST }, input.tokenProfileId);
|
|
179
|
+
if (profile.maxTokenInputs < 2 || !profile.operations.includes("transfer"))
|
|
180
|
+
throw new Error("token profile does not support consolidation");
|
|
176
181
|
const compatible = (0, action_source_resolver_js_1.ownerNativeHolderUtxos)(input.activeUtxos, owner);
|
|
177
|
-
const selected = (0, action_source_resolver_js_1.selectConsolidationBatch)(compatible, input.sourceOutpoints,
|
|
182
|
+
const selected = (0, action_source_resolver_js_1.selectConsolidationBatch)(compatible, input.sourceOutpoints, profile.maxTokenInputs);
|
|
178
183
|
if (selected.length < 2)
|
|
179
184
|
throw new Error("at least two compatible KCC20 holder UTXOs are required for consolidation");
|
|
180
185
|
const nativeIds = new Set(selected.map((utxo) => utxo.covenantId ?? covenantId));
|
|
@@ -219,7 +224,7 @@ function buildKcc20NativeConsolidationOperation(wallet, input, options = {}) {
|
|
|
219
224
|
},
|
|
220
225
|
],
|
|
221
226
|
warnings: [
|
|
222
|
-
|
|
227
|
+
`Consolidation merges between two and ${profile.maxTokenInputs} wallet-owned holder UTXOs into one larger holder UTXO.`,
|
|
223
228
|
"Repeat consolidation when more compatible holder UTXOs remain.",
|
|
224
229
|
],
|
|
225
230
|
}, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-operation.js","sourceRoot":"","sources":["../../src/token-operation.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"token-operation.js","sourceRoot":"","sources":["../../src/token-operation.ts"],"names":[],"mappings":"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"}
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAwErD,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,cAAc,CAAC,EAAE;QACf,mBAAmB,CAAC,IAAI,EAAE;YAAE,SAAS,EAAE,MAAM,EAAE,CAAA;SAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACtE,CAAC;IACF,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,GAAG,CAAC;IAC5C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yBAAyB,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IACjE,gFAAgF;IAChF,oBAAoB,CAAC,EAAE;QAAE,QAAQ,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3E;AAED,MAAM,WAAW,8BAA8B;IAC7C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,qCAAqC,CAAC,KAAK,EAAE;QAC3C,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC5C,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,6BAA6B,GACrC,sBAAsB,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAwErD,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,cAAc,CAAC,EAAE;QACf,mBAAmB,CAAC,IAAI,EAAE;YAAE,SAAS,EAAE,MAAM,EAAE,CAAA;SAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACtE,CAAC;IACF,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,GAAG,CAAC;IAC5C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yBAAyB,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IACjE,gFAAgF;IAChF,oBAAoB,CAAC,EAAE;QAAE,QAAQ,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3E;AAED,MAAM,WAAW,8BAA8B;IAC7C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,qCAAqC,CAAC,KAAK,EAAE;QAC3C,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC5C,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,6BAA6B,GACrC,sBAAsB,CA0kaxB"}
|
package/dist/engine.js
CHANGED
|
@@ -424,7 +424,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
424
424
|
}
|
|
425
425
|
requireMatchingCovenantId(rootEntry, rootId, "active FeeTicket root UTXO");
|
|
426
426
|
const rootOutputIndex = 0;
|
|
427
|
-
const fundingEntry = selectFundingEntry(walletUtxos.entries, priorityFee + 10000n);
|
|
427
|
+
const fundingEntry = selectFundingEntry(walletUtxos.entries, priorityFee + 10000n, [], request.params?.fundingOutpoint);
|
|
428
428
|
const fundingInputIndex = 1;
|
|
429
429
|
const fundingChangeOutputIndex = 1;
|
|
430
430
|
const fundingChange = utxoAmountSompi(fundingEntry) - priorityFee;
|
|
@@ -616,7 +616,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
616
616
|
utilityInputSompi +
|
|
617
617
|
10000n
|
|
618
618
|
: priorityFee + 10000n;
|
|
619
|
-
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding);
|
|
619
|
+
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding, [], request.params?.fundingOutpoint);
|
|
620
620
|
const fundingInputIndex = 2;
|
|
621
621
|
const change = rootInputSompi +
|
|
622
622
|
utilityInputSompi +
|
|
@@ -794,7 +794,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
794
794
|
return entry;
|
|
795
795
|
});
|
|
796
796
|
const outputs = entries.map((entry, index) => new TransactionOutput(utxoAmountSompi(entry), p2pkScriptPubKey(kw, bytesToHex(states[index].ownerIdentifier))));
|
|
797
|
-
const fundingEntry = selectFundingEntry(walletUtxos.entries, priorityFee + 10000n);
|
|
797
|
+
const fundingEntry = selectFundingEntry(walletUtxos.entries, priorityFee + 10000n, [], request.params?.fundingOutpoint);
|
|
798
798
|
const fundingInputIndex = entries.length;
|
|
799
799
|
const fundingChangeOutputIndex = outputs.length;
|
|
800
800
|
const fundingChange = utxoAmountSompi(fundingEntry) - priorityFee;
|
|
@@ -944,7 +944,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
944
944
|
ownerIdentifier: hexToBytes(recipientOwner),
|
|
945
945
|
}));
|
|
946
946
|
const outputs = entries.map((entry, index) => new TransactionOutput(utxoAmountSompi(entry), payToScriptHashScript(buildKcc20FeeTicketScriptForState(artifactInfos[index].artifact.script, recipientStates[index])), new CovenantBinding(index, new Hash(ticketId))));
|
|
947
|
-
const fundingEntry = selectFundingEntry(walletUtxos.entries, priorityFee + 10000n);
|
|
947
|
+
const fundingEntry = selectFundingEntry(walletUtxos.entries, priorityFee + 10000n, [], request.params?.fundingOutpoint);
|
|
948
948
|
const fundingInputIndex = entries.length;
|
|
949
949
|
const fundingChangeOutputIndex = outputs.length;
|
|
950
950
|
const fundingChange = utxoAmountSompi(fundingEntry) - priorityFee;
|
|
@@ -1746,7 +1746,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
1746
1746
|
evidence.address)
|
|
1747
1747
|
throw new Error("token evidence script does not match RPC");
|
|
1748
1748
|
const utxos = await getUtxosByAddresses(rpc, [walletAddress]);
|
|
1749
|
-
const fundingEntry = selectFundingEntry(utxos.entries, deploySompi * 2n + priorityFee + 10000000n);
|
|
1749
|
+
const fundingEntry = selectFundingEntry(utxos.entries, deploySompi * 2n + priorityFee + 10000000n, [], request.params?.fundingOutpoint);
|
|
1750
1750
|
const fundingChangeOutputIndex = 2;
|
|
1751
1751
|
const change = utxoAmountSompi(fundingEntry) - deploySompi * 2n - priorityFee;
|
|
1752
1752
|
if (change <= 10000n) {
|
|
@@ -2034,7 +2034,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
2034
2034
|
const requiredFunding = outputSompi + priorityFee > covenantInputSompi
|
|
2035
2035
|
? outputSompi + priorityFee - covenantInputSompi + 10000n
|
|
2036
2036
|
: priorityFee + 10000n;
|
|
2037
|
-
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding);
|
|
2037
|
+
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding, [], request.params?.fundingOutpoint);
|
|
2038
2038
|
const fundingInputIndex = 2;
|
|
2039
2039
|
const change = covenantInputSompi +
|
|
2040
2040
|
utxoAmountSompi(fundingEntry) -
|
|
@@ -2329,7 +2329,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
2329
2329
|
const requiredFunding = outputSompi + priorityFee > covenantInputSompi
|
|
2330
2330
|
? outputSompi + priorityFee - covenantInputSompi + 10000n
|
|
2331
2331
|
: priorityFee + 10000n;
|
|
2332
|
-
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding);
|
|
2332
|
+
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding, [], request.params?.fundingOutpoint);
|
|
2333
2333
|
const fundingInputIndex = 3;
|
|
2334
2334
|
const change = covenantInputSompi +
|
|
2335
2335
|
utxoAmountSompi(fundingEntry) -
|
|
@@ -2605,7 +2605,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
2605
2605
|
const requiredFunding = outputSompi + priorityFee > covenantInputSompi
|
|
2606
2606
|
? outputSompi + priorityFee - covenantInputSompi + 10000n
|
|
2607
2607
|
: priorityFee + 10000n;
|
|
2608
|
-
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding);
|
|
2608
|
+
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding, [], request.params?.fundingOutpoint);
|
|
2609
2609
|
const fundingInputIndex = 1;
|
|
2610
2610
|
const change = covenantInputSompi +
|
|
2611
2611
|
utxoAmountSompi(fundingEntry) -
|
|
@@ -2887,7 +2887,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
2887
2887
|
const requiredFunding = outputSompi + priorityFee > covenantInputSompi
|
|
2888
2888
|
? outputSompi + priorityFee - covenantInputSompi + 10000n
|
|
2889
2889
|
: priorityFee + 10000n;
|
|
2890
|
-
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding);
|
|
2890
|
+
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding, [], request.params?.fundingOutpoint);
|
|
2891
2891
|
const ticketInputIndex = ticketEntry ? 1 : -1;
|
|
2892
2892
|
const fundingInputIndex = ticketEntry ? 2 : 1;
|
|
2893
2893
|
const change = covenantInputSompi +
|
|
@@ -3244,7 +3244,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
3244
3244
|
const requiredFunding = outputSompi + priorityFee > covenantInputSompi
|
|
3245
3245
|
? outputSompi + priorityFee - covenantInputSompi + 10000n
|
|
3246
3246
|
: priorityFee + 10000n;
|
|
3247
|
-
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding);
|
|
3247
|
+
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding, [], request.params?.fundingOutpoint);
|
|
3248
3248
|
const ticketInputIndex = ticketEntry ? 2 : -1;
|
|
3249
3249
|
const fundingInputIndex = ticketEntry ? 3 : 2;
|
|
3250
3250
|
const change = covenantInputSompi +
|
|
@@ -3625,7 +3625,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
3625
3625
|
covenantInputSompi +
|
|
3626
3626
|
MIN_FUNDING_CHANGE_SOMPI
|
|
3627
3627
|
: priorityFee + MIN_FUNDING_CHANGE_SOMPI;
|
|
3628
|
-
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding);
|
|
3628
|
+
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding, [], request.params?.fundingOutpoint);
|
|
3629
3629
|
const fundingInputIndex = resolvedLegs.length + (sharedTicketEntry ? 1 : 0);
|
|
3630
3630
|
const change = covenantInputSompi +
|
|
3631
3631
|
utxoAmountSompi(fundingEntry) -
|
|
@@ -4079,7 +4079,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
4079
4079
|
: priorityFee + 10000n;
|
|
4080
4080
|
let fundingEntry;
|
|
4081
4081
|
try {
|
|
4082
|
-
fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding);
|
|
4082
|
+
fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding, [], request.params?.fundingOutpoint);
|
|
4083
4083
|
}
|
|
4084
4084
|
catch (error) {
|
|
4085
4085
|
if (totalSellerFundedHolderTopUpSompi > 0n) {
|
|
@@ -4565,7 +4565,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
4565
4565
|
: priorityFee + 10000n;
|
|
4566
4566
|
let fundingEntry;
|
|
4567
4567
|
try {
|
|
4568
|
-
fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding);
|
|
4568
|
+
fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding, [], request.params?.fundingOutpoint);
|
|
4569
4569
|
}
|
|
4570
4570
|
catch (error) {
|
|
4571
4571
|
if (totalSellerFundedHolderTopUpSompi > 0n) {
|
|
@@ -4888,7 +4888,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
4888
4888
|
new TransactionOutput(refundSompi, payToAddressScript(walletAddress)),
|
|
4889
4889
|
];
|
|
4890
4890
|
const requiredFunding = priorityFee + MIN_FUNDING_CHANGE_SOMPI;
|
|
4891
|
-
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding);
|
|
4891
|
+
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding, [], request.params?.fundingOutpoint);
|
|
4892
4892
|
const fundingInputIndex = entries.length;
|
|
4893
4893
|
const change = utxoAmountSompi(fundingEntry) - priorityFee;
|
|
4894
4894
|
let fundingChangeOutputIndex = -1;
|
|
@@ -5264,7 +5264,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
5264
5264
|
const requiredFunding = outputSompi + transactionFeeReserve > covenantInputSompi
|
|
5265
5265
|
? outputSompi + transactionFeeReserve - covenantInputSompi + 10000n
|
|
5266
5266
|
: transactionFeeReserve + 10000n;
|
|
5267
|
-
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding);
|
|
5267
|
+
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding, [], request.params?.fundingOutpoint);
|
|
5268
5268
|
const ticketInputIndex = ticketEntry ? 2 : -1;
|
|
5269
5269
|
const fundingInputIndex = ticketEntry ? 3 : 2;
|
|
5270
5270
|
const change = covenantInputSompi +
|
|
@@ -5543,7 +5543,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
5543
5543
|
const requiredFunding = outputSompi + priorityFee > covenantInputSompi
|
|
5544
5544
|
? outputSompi + priorityFee - covenantInputSompi + 10000n
|
|
5545
5545
|
: priorityFee + 10000n;
|
|
5546
|
-
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding);
|
|
5546
|
+
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding, [], request.params?.fundingOutpoint);
|
|
5547
5547
|
const fundingInputIndex = 1;
|
|
5548
5548
|
const change = covenantInputSompi +
|
|
5549
5549
|
utxoAmountSompi(fundingEntry) -
|
|
@@ -5786,7 +5786,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
5786
5786
|
const requiredFunding = outputSompi + priorityFee > minterInputSompi
|
|
5787
5787
|
? outputSompi + priorityFee - minterInputSompi + 10000n
|
|
5788
5788
|
: priorityFee + 10000n;
|
|
5789
|
-
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding);
|
|
5789
|
+
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding, [], request.params?.fundingOutpoint);
|
|
5790
5790
|
const fundingInputIndex = 1;
|
|
5791
5791
|
const change = minterInputSompi +
|
|
5792
5792
|
BigInt(fundingEntry.amount) -
|
|
@@ -6061,7 +6061,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
6061
6061
|
minterInputSompi: BigInt(minterEntry.amount),
|
|
6062
6062
|
};
|
|
6063
6063
|
});
|
|
6064
|
-
const fundingEntry = selectFundingEntry(walletUtxos.entries, priorityFee + 10000n);
|
|
6064
|
+
const fundingEntry = selectFundingEntry(walletUtxos.entries, priorityFee + 10000n, [], request.params?.fundingOutpoint);
|
|
6065
6065
|
const fundingInputIndex = resolvedLanes.length;
|
|
6066
6066
|
const fundingChange = BigInt(fundingEntry.amount) - priorityFee;
|
|
6067
6067
|
const outputs = resolvedLanes.map((lane, laneIndex) => tokenOutput(kaspaWasm, lane.resolvedArtifact.artifact, lane.outputState, lane.minterInputSompi, lane.spendCovenantId, laneIndex));
|
|
@@ -6203,8 +6203,16 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
6203
6203
|
const holderUtxos = Array.isArray(params.activeHolderUtxos)
|
|
6204
6204
|
? params.activeHolderUtxos
|
|
6205
6205
|
: [];
|
|
6206
|
-
if (holderUtxos.length < 2
|
|
6207
|
-
throw new Error("
|
|
6206
|
+
if (holderUtxos.length < 2) {
|
|
6207
|
+
throw new Error("at least two KCC20 holder UTXOs are required");
|
|
6208
|
+
}
|
|
6209
|
+
const maximumProfileInputs = Math.max(0, ...tokenProfiles.profiles.map((p) => p.maxTokenInputs));
|
|
6210
|
+
if (holderUtxos.length > maximumProfileInputs) {
|
|
6211
|
+
throw new Error(`consolidation exceeds the token profile input bound (${maximumProfileInputs})`);
|
|
6212
|
+
}
|
|
6213
|
+
const sourceOutpoints = holderUtxos.map((u) => `${requireHex32(u.txidHex, "holder txid")}:${parseVout(u.vout, "holder vout")}`);
|
|
6214
|
+
if (new Set(sourceOutpoints).size !== holderUtxos.length) {
|
|
6215
|
+
throw new Error("consolidation requires distinct holder outpoints");
|
|
6208
6216
|
}
|
|
6209
6217
|
const covenantId = requireHex32(params.activeHolderNativeCovenantId || params.covenantId, "canonical covenant id");
|
|
6210
6218
|
const appCanonicalTokenId = requireHex32(params.appCanonicalCovenantId || params.covenantId || covenantId, "app canonical token id");
|
|
@@ -6228,7 +6236,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
6228
6236
|
}
|
|
6229
6237
|
const profile = resolvedArtifacts[0].profile;
|
|
6230
6238
|
if (holderUtxos.length > profile.maxTokenInputs) {
|
|
6231
|
-
throw new Error(
|
|
6239
|
+
throw new Error(`consolidation exceeds the token profile input bound (${profile.maxTokenInputs})`);
|
|
6232
6240
|
}
|
|
6233
6241
|
const artifact = resolvedArtifacts[0].artifact;
|
|
6234
6242
|
for (const peerState of states.slice(1)) {
|
|
@@ -6244,7 +6252,8 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
6244
6252
|
const txid = requireHex32(utxo.txidHex, `holder ${index} txid`);
|
|
6245
6253
|
const vout = parseVout(utxo.vout, `holder ${index} vout`);
|
|
6246
6254
|
const address = requireKaspaAddress(utxo.address);
|
|
6247
|
-
|
|
6255
|
+
// Resolution already authenticated this profile's complete state layout.
|
|
6256
|
+
const script = resolvedArtifacts[index].script;
|
|
6248
6257
|
assertScriptAddress(kw, script, address, network, `holder ${index} UTXO address`);
|
|
6249
6258
|
return { txid, vout, address, script };
|
|
6250
6259
|
});
|
|
@@ -6287,7 +6296,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
6287
6296
|
new TransactionOutput(refundSompi, payToAddressScript(walletAddress)),
|
|
6288
6297
|
];
|
|
6289
6298
|
const requiredFunding = priorityFee + MIN_FUNDING_CHANGE_SOMPI;
|
|
6290
|
-
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding);
|
|
6299
|
+
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding, [], request.params?.fundingOutpoint);
|
|
6291
6300
|
const fundingInputIndex = entries.length;
|
|
6292
6301
|
const change = utxoAmountSompi(fundingEntry) - priorityFee;
|
|
6293
6302
|
let fundingChangeOutputIndex = -1;
|
|
@@ -6428,7 +6437,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
6428
6437
|
tokenOutput(kw, artifact, inputState, tokenOutputSompi, spendCovenantId, 0),
|
|
6429
6438
|
];
|
|
6430
6439
|
const requiredFunding = priorityFee + 10000n;
|
|
6431
|
-
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding);
|
|
6440
|
+
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding, [], request.params?.fundingOutpoint);
|
|
6432
6441
|
const fundingInputIndex = 1;
|
|
6433
6442
|
const change = utxoAmountSompi(fundingEntry) - priorityFee;
|
|
6434
6443
|
let fundingChangeOutputIndex = -1;
|
|
@@ -6619,7 +6628,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
6619
6628
|
const requiredFunding = outputSompi + priorityFee > tokenInputSompi
|
|
6620
6629
|
? outputSompi + priorityFee - tokenInputSompi + 10000n
|
|
6621
6630
|
: priorityFee + 10000n;
|
|
6622
|
-
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding);
|
|
6631
|
+
const fundingEntry = selectFundingEntry(walletUtxos.entries, requiredFunding, [], request.params?.fundingOutpoint);
|
|
6623
6632
|
const fundingInputIndex = 1;
|
|
6624
6633
|
const change = tokenInputSompi +
|
|
6625
6634
|
utxoAmountSompi(fundingEntry) -
|
|
@@ -7014,7 +7023,7 @@ export function createKcc20PsktBuilderEngine(options) {
|
|
|
7014
7023
|
await rpc.connect();
|
|
7015
7024
|
try {
|
|
7016
7025
|
const utxos = await getUtxosByAddresses(rpc, [walletAddress]);
|
|
7017
|
-
const fundingEntry = selectFundingEntry(utxos.entries, deploySompi + priorityFee + 10000000n);
|
|
7026
|
+
const fundingEntry = selectFundingEntry(utxos.entries, deploySompi + priorityFee + 10000000n, [], request.params?.fundingOutpoint);
|
|
7018
7027
|
const created = await createTransactions({
|
|
7019
7028
|
entries: [fundingEntry],
|
|
7020
7029
|
outputs: [{ address: contractAddress, amount: deploySompi }],
|