@cardano-sdk/input-selection 0.11.2 → 0.11.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/dist/cjs/GreedySelection/GreedyInputSelector.d.ts.map +1 -1
- package/dist/cjs/GreedySelection/GreedyInputSelector.js +18 -9
- package/dist/cjs/GreedySelection/GreedyInputSelector.js.map +1 -1
- package/dist/cjs/GreedySelection/util.d.ts.map +1 -1
- package/dist/cjs/GreedySelection/util.js +29 -19
- package/dist/cjs/GreedySelection/util.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/GreedySelection/GreedyInputSelector.d.ts.map +1 -1
- package/dist/esm/GreedySelection/GreedyInputSelector.js +18 -9
- package/dist/esm/GreedySelection/GreedyInputSelector.js.map +1 -1
- package/dist/esm/GreedySelection/util.d.ts.map +1 -1
- package/dist/esm/GreedySelection/util.js +30 -20
- package/dist/esm/GreedySelection/util.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GreedyInputSelector.d.ts","sourceRoot":"","sources":["../../../src/GreedySelection/GreedyInputSelector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAA2B,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAwB,eAAe,EAAE,MAAM,UAAU,CAAC;AAe1G,MAAM,WAAW,mBAAmB;IAalC,kBAAkB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;CACxE;
|
|
1
|
+
{"version":3,"file":"GreedyInputSelector.d.ts","sourceRoot":"","sources":["../../../src/GreedySelection/GreedyInputSelector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAA2B,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAwB,eAAe,EAAE,MAAM,UAAU,CAAC;AAe1G,MAAM,WAAW,mBAAmB;IAalC,kBAAkB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;CACxE;AA6ID,qBAAa,mBAAoB,YAAW,aAAa;;gBAG3C,KAAK,EAAE,mBAAmB;IAIhC,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,eAAe,CAAC;CAuDzE"}
|
|
@@ -26,7 +26,7 @@ const adjustOutputsForFee = async (changeLovelace, constraints, inputs, outputs,
|
|
|
26
26
|
outputs: totalOutputs
|
|
27
27
|
});
|
|
28
28
|
if (fee === changeLovelace)
|
|
29
|
-
return { change: [], fee };
|
|
29
|
+
return { change: [], fee, feeAccountedFor: true };
|
|
30
30
|
if (changeLovelace < fee)
|
|
31
31
|
throw new InputSelectionError_1.InputSelectionError(InputSelectionError_1.InputSelectionFailure.UtxoBalanceInsufficient);
|
|
32
32
|
const updatedOutputs = [...changeOutputs];
|
|
@@ -40,16 +40,13 @@ const adjustOutputsForFee = async (changeLovelace, constraints, inputs, outputs,
|
|
|
40
40
|
break;
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
|
|
44
|
-
throw new InputSelectionError_1.InputSelectionError(InputSelectionError_1.InputSelectionFailure.UtxoFullyDepleted);
|
|
45
|
-
}
|
|
46
|
-
return { change: [...updatedOutputs], fee };
|
|
43
|
+
return { change: [...updatedOutputs], fee, feeAccountedFor };
|
|
47
44
|
};
|
|
48
45
|
const splitChangeAndComputeFee = async (inputs, outputs, changeLovelace, changeAssets, constraints, getChangeAddresses, fee) => {
|
|
49
46
|
const changeOutputs = await (0, util_2.splitChange)(getChangeAddresses, changeLovelace, changeAssets, constraints.computeMinimumCoinQuantity, constraints.tokenBundleSizeExceedsLimit, fee);
|
|
50
|
-
|
|
47
|
+
let adjustedChangeOutputs = await adjustOutputsForFee(changeLovelace, constraints, inputs, outputs, changeOutputs, fee);
|
|
51
48
|
if (adjustedChangeOutputs.fee >= changeLovelace) {
|
|
52
|
-
|
|
49
|
+
const result = {
|
|
53
50
|
change: [
|
|
54
51
|
{
|
|
55
52
|
address: util_1.stubMaxSizeAddress,
|
|
@@ -59,12 +56,24 @@ const splitChangeAndComputeFee = async (inputs, outputs, changeLovelace, changeA
|
|
|
59
56
|
}
|
|
60
57
|
}
|
|
61
58
|
],
|
|
62
|
-
fee: adjustedChangeOutputs.fee
|
|
59
|
+
fee: adjustedChangeOutputs.fee,
|
|
60
|
+
feeAccountedFor: true
|
|
63
61
|
};
|
|
62
|
+
if (result.change[0].value.coins < constraints.computeMinimumCoinQuantity(result.change[0]))
|
|
63
|
+
throw new InputSelectionError_1.InputSelectionError(InputSelectionError_1.InputSelectionFailure.UtxoFullyDepleted);
|
|
64
|
+
return result;
|
|
64
65
|
}
|
|
65
66
|
if (fee < adjustedChangeOutputs.fee) {
|
|
66
|
-
|
|
67
|
+
adjustedChangeOutputs = await splitChangeAndComputeFee(inputs, outputs, changeLovelace, changeAssets, constraints, getChangeAddresses, adjustedChangeOutputs.fee);
|
|
68
|
+
if (adjustedChangeOutputs.change.length === 0)
|
|
69
|
+
throw new InputSelectionError_1.InputSelectionError(InputSelectionError_1.InputSelectionFailure.UtxoFullyDepleted);
|
|
67
70
|
}
|
|
71
|
+
for (const out of adjustedChangeOutputs.change) {
|
|
72
|
+
if (out.value.coins < constraints.computeMinimumCoinQuantity(out))
|
|
73
|
+
throw new InputSelectionError_1.InputSelectionError(InputSelectionError_1.InputSelectionFailure.UtxoFullyDepleted);
|
|
74
|
+
}
|
|
75
|
+
if (!adjustedChangeOutputs.feeAccountedFor)
|
|
76
|
+
throw new InputSelectionError_1.InputSelectionError(InputSelectionError_1.InputSelectionFailure.UtxoFullyDepleted);
|
|
68
77
|
return adjustedChangeOutputs;
|
|
69
78
|
};
|
|
70
79
|
class GreedyInputSelector {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GreedyInputSelector.js","sourceRoot":"","sources":["../../../src/GreedySelection/GreedyInputSelector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAAqE;AACrE,gEAAoF;AAEpF,kCAQiB;AACjB,iCAAqC;AAgCrC,MAAM,mBAAmB,GAAG,KAAK,EAC/B,cAAsB,EACtB,WAAiC,EACjC,MAAyB,EACzB,OAA2B,EAC3B,aAAmC,EACnC,UAAkB,
|
|
1
|
+
{"version":3,"file":"GreedyInputSelector.js","sourceRoot":"","sources":["../../../src/GreedySelection/GreedyInputSelector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/GreedySelection/util.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/GreedySelection/util.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAA2B,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AA2KnF,eAAO,MAAM,WAAW,uBACF,MAAM,QAAQ,IAAI,QAAQ,cAAc,EAAE,MAAM,CAAC,CAAC,uBACjD,MAAM,qBACR,QAAQ,QAAQ,GAAG,SAAS,8BACnB,0BAA0B,+BACzB,2BAA2B,OACnD,MAAM,KACV,QAAQ,MAAM,QAAQ,KAAK,CAAC,CA2C9B,CAAC"}
|
|
@@ -2,27 +2,36 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.splitChange = void 0;
|
|
4
4
|
const bignumber_js_1 = require("bignumber.js");
|
|
5
|
+
const core_1 = require("@cardano-sdk/core");
|
|
5
6
|
const InputSelectionError_1 = require("../InputSelectionError");
|
|
6
7
|
const util_1 = require("../util");
|
|
7
8
|
const PERCENTAGE_TOLERANCE = 0.05;
|
|
8
9
|
const distributeAssets = (outputs, computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit, fee) => {
|
|
9
10
|
const adjustedOutputs = [...outputs];
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
11
|
+
if (adjustedOutputs.length === 0)
|
|
12
|
+
return adjustedOutputs;
|
|
13
|
+
const totalAssets = (0, core_1.coalesceValueQuantities)(adjustedOutputs.map((out) => out.value)).assets;
|
|
14
|
+
if (!totalAssets || totalAssets.size === 0)
|
|
15
|
+
return adjustedOutputs;
|
|
16
|
+
for (const utxo of adjustedOutputs)
|
|
17
|
+
utxo.value.assets = undefined;
|
|
18
|
+
let i = 0;
|
|
19
|
+
const availableOutputs = adjustedOutputs;
|
|
20
|
+
while (totalAssets.size > 0) {
|
|
21
|
+
const splicedAsset = new Map([...totalAssets.entries()].splice(0, 1));
|
|
22
|
+
const currentUtxoIndex = i % availableOutputs.length;
|
|
23
|
+
const currentValue = { ...availableOutputs[currentUtxoIndex].value };
|
|
24
|
+
currentValue.assets = (0, util_1.addTokenMaps)(currentValue.assets, splicedAsset);
|
|
25
|
+
if (!(0, util_1.isValidValue)(currentValue, computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit, fee)) {
|
|
26
|
+
availableOutputs.splice(currentUtxoIndex, 1);
|
|
25
27
|
}
|
|
28
|
+
else {
|
|
29
|
+
availableOutputs[currentUtxoIndex].value = currentValue;
|
|
30
|
+
totalAssets.delete([...splicedAsset.keys()][0]);
|
|
31
|
+
}
|
|
32
|
+
if (availableOutputs.length === 0)
|
|
33
|
+
throw new InputSelectionError_1.InputSelectionError(InputSelectionError_1.InputSelectionFailure.UtxoFullyDepleted);
|
|
34
|
+
++i;
|
|
26
35
|
}
|
|
27
36
|
return adjustedOutputs;
|
|
28
37
|
};
|
|
@@ -36,14 +45,14 @@ const getMinUtxoAmount = (amount) => {
|
|
|
36
45
|
}
|
|
37
46
|
return BigInt(new bignumber_js_1.BigNumber(minLovelaceStr).multipliedBy(granularityFactor).toFixed(0, 0));
|
|
38
47
|
};
|
|
39
|
-
const splitChangeOutput = (output, computeMinimumCoinQuantity) => {
|
|
48
|
+
const splitChangeOutput = (output, computeMinimumCoinQuantity, fee) => {
|
|
40
49
|
const amount = output.value.coins;
|
|
41
50
|
const minUtxoAdaAmount = getMinUtxoAmount(amount);
|
|
42
51
|
let remaining = amount;
|
|
43
52
|
let runningAmount = 0n;
|
|
44
53
|
const amounts = new Array();
|
|
45
54
|
const divisor = new bignumber_js_1.BigNumber(2);
|
|
46
|
-
while (remaining
|
|
55
|
+
while (remaining >= minUtxoAdaAmount) {
|
|
47
56
|
const val = BigInt(new bignumber_js_1.BigNumber(remaining.toString()).dividedBy(divisor).toFixed(0, 0));
|
|
48
57
|
const updatedRemaining = remaining - val;
|
|
49
58
|
if (updatedRemaining <= minUtxoAdaAmount ||
|
|
@@ -51,7 +60,8 @@ const splitChangeOutput = (output, computeMinimumCoinQuantity) => {
|
|
|
51
60
|
computeMinimumCoinQuantity({
|
|
52
61
|
address: output.address,
|
|
53
62
|
value: { assets: output.value.assets, coins: amount - runningAmount }
|
|
54
|
-
})
|
|
63
|
+
}) +
|
|
64
|
+
fee) {
|
|
55
65
|
amounts.push(amount - runningAmount);
|
|
56
66
|
break;
|
|
57
67
|
}
|
|
@@ -88,7 +98,7 @@ const splitChange = async (getChangeAddresses, totalChangeLovelace, totalChangeA
|
|
|
88
98
|
const missingAllocation = totalChangeLovelace - runningTotal;
|
|
89
99
|
changeOutputs[changeOutputs.length - 1].value.coins += missingAllocation;
|
|
90
100
|
}
|
|
91
|
-
const splitOutputs = changeOutputs.flatMap((output) => splitChangeOutput(output, computeMinimumCoinQuantity));
|
|
101
|
+
const splitOutputs = changeOutputs.flatMap((output) => splitChangeOutput(output, computeMinimumCoinQuantity, fee));
|
|
92
102
|
const sortedOutputs = splitOutputs.sort(util_1.sortByCoins).filter((out) => out.value.coins > 0n);
|
|
93
103
|
if (sortedOutputs && sortedOutputs.length > 0)
|
|
94
104
|
sortedOutputs[0].value.assets = totalChangeAssets;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/GreedySelection/util.ts"],"names":[],"mappings":";;;AACA,+CAAyC;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/GreedySelection/util.ts"],"names":[],"mappings":"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"}
|