@cardano-sdk/tx-construction 0.24.3 → 0.25.0
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/fees/fees.d.ts +2 -6
- package/dist/cjs/fees/fees.d.ts.map +1 -1
- package/dist/cjs/fees/fees.js +30 -9
- package/dist/cjs/fees/fees.js.map +1 -1
- package/dist/cjs/input-selection/selectionConstraints.d.ts +2 -2
- package/dist/cjs/input-selection/selectionConstraints.d.ts.map +1 -1
- package/dist/cjs/input-selection/selectionConstraints.js +13 -8
- package/dist/cjs/input-selection/selectionConstraints.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/tx-builder/GreedyTxEvaluator.js +5 -5
- package/dist/cjs/tx-builder/GreedyTxEvaluator.js.map +1 -1
- package/dist/esm/fees/fees.d.ts +2 -6
- package/dist/esm/fees/fees.d.ts.map +1 -1
- package/dist/esm/fees/fees.js +29 -6
- package/dist/esm/fees/fees.js.map +1 -1
- package/dist/esm/input-selection/selectionConstraints.d.ts +2 -2
- package/dist/esm/input-selection/selectionConstraints.d.ts.map +1 -1
- package/dist/esm/input-selection/selectionConstraints.js +14 -9
- package/dist/esm/input-selection/selectionConstraints.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/tx-builder/GreedyTxEvaluator.js +5 -5
- package/dist/esm/tx-builder/GreedyTxEvaluator.js.map +1 -1
- package/package.json +8 -8
package/dist/cjs/fees/fees.d.ts
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { Cardano } from '@cardano-sdk/core';
|
|
2
|
-
import {
|
|
3
|
-
export declare type MinFeeConstant = OpaqueNumber<'MinFeeConstant'>;
|
|
4
|
-
export declare const MinFeeConstant: (value: number) => MinFeeConstant;
|
|
5
|
-
export declare type MinFeeCoefficient = OpaqueNumber<'MinFeeCoefficient'>;
|
|
6
|
-
export declare const MinFeeCoefficient: (value: number) => MinFeeCoefficient;
|
|
2
|
+
import { ProtocolParametersForInputSelection } from '@cardano-sdk/input-selection';
|
|
7
3
|
export declare const minAdaRequired: (output: Cardano.TxOut, coinsPerUtxoByte: bigint) => bigint;
|
|
8
|
-
export declare const minFee: (tx: Cardano.Tx,
|
|
4
|
+
export declare const minFee: (tx: Cardano.Tx, resolvedInputs: Cardano.Utxo[], pparams: ProtocolParametersForInputSelection) => bigint;
|
|
9
5
|
//# sourceMappingURL=fees.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fees.d.ts","sourceRoot":"","sources":["../../../src/fees/fees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAiB,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fees.d.ts","sourceRoot":"","sources":["../../../src/fees/fees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAiB,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,mCAAmC,EAAE,MAAM,8BAA8B,CAAC;AA2InF,eAAO,MAAM,cAAc,WAAY,QAAQ,KAAK,oBAAoB,MAAM,KAAG,MAqBhF,CAAC;AASF,eAAO,MAAM,MAAM,OAAQ,QAAQ,EAAE,kBAAkB,QAAQ,IAAI,EAAE,WAAW,mCAAmC,WAOhH,CAAC"}
|
package/dist/cjs/fees/fees.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.minFee = exports.minAdaRequired =
|
|
3
|
+
exports.minFee = exports.minAdaRequired = void 0;
|
|
4
4
|
const core_1 = require("@cardano-sdk/core");
|
|
5
5
|
const MIN_ADA_CONSTANT_OVERHEAD = 160;
|
|
6
6
|
const serializeBigInt = (bigInt) => {
|
|
@@ -18,16 +18,36 @@ const getTotalExUnits = (redeemers) => {
|
|
|
18
18
|
}
|
|
19
19
|
return totalExUnits;
|
|
20
20
|
};
|
|
21
|
-
const
|
|
22
|
-
if (
|
|
21
|
+
const minRefScriptFee = (tx, resolvedInputs, coinsPerRefScriptByte) => {
|
|
22
|
+
if (coinsPerRefScriptByte === 0)
|
|
23
23
|
return BigInt(0);
|
|
24
|
+
let base = coinsPerRefScriptByte;
|
|
25
|
+
const range = 25600;
|
|
26
|
+
const multiplier = 1.2;
|
|
27
|
+
let totalRefScriptsSize = 0;
|
|
28
|
+
const totalInputs = [...tx.body.inputs, ...(tx.body.referenceInputs ?? [])];
|
|
29
|
+
for (const output of totalInputs) {
|
|
30
|
+
const resolvedInput = resolvedInputs.find((input) => input[0].txId === output.txId && input[0].index === output.index);
|
|
31
|
+
if (resolvedInput && resolvedInput[1].scriptReference) {
|
|
32
|
+
totalRefScriptsSize += core_1.Serialization.Script.fromCore(resolvedInput[1].scriptReference).toCbor().length / 2;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
let scriptRefFee = 0;
|
|
36
|
+
while (totalRefScriptsSize > 0) {
|
|
37
|
+
scriptRefFee += Math.ceil(Math.min(range, totalRefScriptsSize) * base);
|
|
38
|
+
totalRefScriptsSize = Math.max(totalRefScriptsSize - range, 0);
|
|
39
|
+
base *= multiplier;
|
|
40
|
+
}
|
|
41
|
+
return BigInt(scriptRefFee);
|
|
42
|
+
};
|
|
43
|
+
const minScriptFee = (tx, exUnitsPrice, resolvedInputs, coinsPerRefScriptByte) => {
|
|
44
|
+
const scriptRefFee = minRefScriptFee(tx, resolvedInputs, coinsPerRefScriptByte);
|
|
45
|
+
if (!tx.witness.redeemers)
|
|
46
|
+
return BigInt(scriptRefFee);
|
|
24
47
|
const totalExUnits = getTotalExUnits(tx.witness.redeemers);
|
|
25
|
-
return BigInt(Math.ceil(totalExUnits.steps * exUnitsPrice.steps + totalExUnits.memory * exUnitsPrice.memory))
|
|
48
|
+
return (BigInt(Math.ceil(totalExUnits.steps * exUnitsPrice.steps + totalExUnits.memory * exUnitsPrice.memory)) +
|
|
49
|
+
scriptRefFee);
|
|
26
50
|
};
|
|
27
|
-
const MinFeeConstant = (value) => value;
|
|
28
|
-
exports.MinFeeConstant = MinFeeConstant;
|
|
29
|
-
const MinFeeCoefficient = (value) => value;
|
|
30
|
-
exports.MinFeeCoefficient = MinFeeCoefficient;
|
|
31
51
|
const minNoScriptFee = (tx, minFeeConstant, minFeeCoefficient) => {
|
|
32
52
|
const txSize = serializeTx(tx).length;
|
|
33
53
|
return BigInt(Math.ceil(txSize * minFeeCoefficient + minFeeConstant));
|
|
@@ -47,6 +67,7 @@ const minAdaRequired = (output, coinsPerUtxoByte) => {
|
|
|
47
67
|
return BigInt(serializeTxOutputSize(output) + MIN_ADA_CONSTANT_OVERHEAD + sizeChange) * coinsPerUtxoByte;
|
|
48
68
|
};
|
|
49
69
|
exports.minAdaRequired = minAdaRequired;
|
|
50
|
-
const minFee = (tx,
|
|
70
|
+
const minFee = (tx, resolvedInputs, pparams) => minNoScriptFee(tx, pparams.minFeeConstant, pparams.minFeeCoefficient) +
|
|
71
|
+
minScriptFee(tx, pparams.prices, resolvedInputs, pparams.minFeeRefScriptCostPerByte ? Number(pparams.minFeeRefScriptCostPerByte) : 0);
|
|
51
72
|
exports.minFee = minFee;
|
|
52
73
|
//# sourceMappingURL=fees.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fees.js","sourceRoot":"","sources":["../../../src/fees/fees.ts"],"names":[],"mappings":";;;AAAA,4CAA2D;AAO3D,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAOtC,MAAM,eAAe,GAAG,CAAC,MAAc,EAAE,EAAE;IACzC,MAAM,MAAM,GAAG,IAAI,oBAAa,CAAC,UAAU,EAAE,CAAC;IAE9C,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAEhC,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;AACzB,CAAC,CAAC;AAOF,MAAM,qBAAqB,GAAG,CAAC,MAAqB,EAAE,EAAE,CACtD,oBAAa,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAOvE,MAAM,WAAW,GAAG,CAAC,EAAc,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;AAO5G,MAAM,eAAe,GAAG,CAAC,SAA6B,EAAmB,EAAE;IACzE,MAAM,YAAY,GAAoB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAE9D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAChC,YAAY,CAAC,MAAM,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC;QACtD,YAAY,CAAC,KAAK,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC;KACrD;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"fees.js","sourceRoot":"","sources":["../../../src/fees/fees.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,9 +17,9 @@ export interface DefaultSelectionConstraintsProps {
|
|
|
17
17
|
redeemersByType: RedeemersByType;
|
|
18
18
|
txEvaluator: TxEvaluator;
|
|
19
19
|
}
|
|
20
|
-
export declare const computeMinimumCost: (
|
|
20
|
+
export declare const computeMinimumCost: (pparams: ProtocolParametersForInputSelection, buildTx: BuildTx, txEvaluator: TxEvaluator, redeemersByType: RedeemersByType) => EstimateTxCosts;
|
|
21
21
|
export declare const computeMinimumCoinQuantity: (coinsPerUtxoByte: ProtocolParametersRequiredByInputSelection['coinsPerUtxoByte']) => ComputeMinimumCoinQuantity;
|
|
22
22
|
export declare const tokenBundleSizeExceedsLimit: (maxValueSize: ProtocolParametersRequiredByInputSelection['maxValueSize']) => TokenBundleSizeExceedsLimit;
|
|
23
23
|
export declare const computeSelectionLimit: (maxTxSize: ProtocolParametersRequiredByInputSelection['maxTxSize'], buildTx: BuildTx) => ComputeSelectionLimit;
|
|
24
|
-
export declare const defaultSelectionConstraints: ({ protocolParameters
|
|
24
|
+
export declare const defaultSelectionConstraints: ({ protocolParameters, buildTx, redeemersByType, txEvaluator }: DefaultSelectionConstraintsProps) => SelectionConstraints;
|
|
25
25
|
//# sourceMappingURL=selectionConstraints.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectionConstraints.d.ts","sourceRoot":"","sources":["../../../src/input-selection/selectionConstraints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAiD,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,eAAe,EACf,mCAAmC,EACnC,0CAA0C,EAC1C,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,EAE5B,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"selectionConstraints.d.ts","sourceRoot":"","sources":["../../../src/input-selection/selectionConstraints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAiD,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,eAAe,EACf,mCAAmC,EACnC,0CAA0C,EAC1C,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,EAE5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAsB,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG/E,eAAO,MAAM,OAAO,wBAA8B,CAAC;AAEnD,oBAAY,OAAO,GAAG,CAAC,SAAS,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAE5E,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,gCAAgC;IAC/C,kBAAkB,EAAE,mCAAmC,CAAC;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;CAC1B;AAwED,eAAO,MAAM,kBAAkB,YAElB,mCAAmC,WACnC,OAAO,eACH,WAAW,mBACP,eAAe,KAC/B,eAgBF,CAAC;AAEJ,eAAO,MAAM,0BAA0B,qBAClB,0CAA0C,CAAC,kBAAkB,CAAC,KAAG,0BAElC,CAAC;AAErD,eAAO,MAAM,2BAA2B,iBACvB,0CAA0C,CAAC,cAAc,CAAC,KAAG,2BAU3E,CAAC;AAWJ,eAAO,MAAM,qBAAqB,cACpB,0CAA0C,CAAC,WAAW,CAAC,WAAW,OAAO,KAAG,qBAQvF,CAAC;AAEJ,eAAO,MAAM,2BAA2B,kEAKrC,gCAAgC,KAAG,oBAmBrC,CAAC"}
|
|
@@ -52,7 +52,7 @@ const reorgRedeemers = (redeemerByType, witness, txInputs) => {
|
|
|
52
52
|
}
|
|
53
53
|
return redeemers;
|
|
54
54
|
};
|
|
55
|
-
const computeMinimumCost = (
|
|
55
|
+
const computeMinimumCost = (pparams, buildTx, txEvaluator, redeemersByType) => async (selection) => {
|
|
56
56
|
const tx = await buildTx(selection);
|
|
57
57
|
const utxos = [...selection.inputs];
|
|
58
58
|
const txIns = utxos.map((utxo) => utxo[0]).sort(input_selection_1.sortTxIn);
|
|
@@ -61,7 +61,7 @@ const computeMinimumCost = ({ minFeeCoefficient, minFeeConstant, prices }, build
|
|
|
61
61
|
tx.witness.redeemers = updateRedeemers(await txEvaluator.evaluate(tx, utxos), redeemersByType, txIns);
|
|
62
62
|
}
|
|
63
63
|
return {
|
|
64
|
-
fee: (0, fees_1.minFee)(tx,
|
|
64
|
+
fee: (0, fees_1.minFee)(tx, utxos, pparams),
|
|
65
65
|
redeemers: tx.witness.redeemers
|
|
66
66
|
};
|
|
67
67
|
};
|
|
@@ -87,15 +87,20 @@ const computeSelectionLimit = (maxTxSize, buildTx) => async (selectionSkeleton)
|
|
|
87
87
|
return selectionSkeleton.inputs.size - 1;
|
|
88
88
|
};
|
|
89
89
|
exports.computeSelectionLimit = computeSelectionLimit;
|
|
90
|
-
const defaultSelectionConstraints = ({ protocolParameters
|
|
91
|
-
if (!coinsPerUtxoByte ||
|
|
90
|
+
const defaultSelectionConstraints = ({ protocolParameters, buildTx, redeemersByType, txEvaluator }) => {
|
|
91
|
+
if (!protocolParameters.coinsPerUtxoByte ||
|
|
92
|
+
!protocolParameters.maxTxSize ||
|
|
93
|
+
!protocolParameters.maxValueSize ||
|
|
94
|
+
!protocolParameters.minFeeCoefficient ||
|
|
95
|
+
!protocolParameters.minFeeConstant ||
|
|
96
|
+
!protocolParameters.prices) {
|
|
92
97
|
throw new core_1.InvalidProtocolParametersError('Missing one of: coinsPerUtxoByte, maxTxSize, maxValueSize, minFeeCoefficient, minFeeConstant, prices');
|
|
93
98
|
}
|
|
94
99
|
return {
|
|
95
|
-
computeMinimumCoinQuantity: (0, exports.computeMinimumCoinQuantity)(coinsPerUtxoByte),
|
|
96
|
-
computeMinimumCost: (0, exports.computeMinimumCost)(
|
|
97
|
-
computeSelectionLimit: (0, exports.computeSelectionLimit)(maxTxSize, buildTx),
|
|
98
|
-
tokenBundleSizeExceedsLimit: (0, exports.tokenBundleSizeExceedsLimit)(maxValueSize)
|
|
100
|
+
computeMinimumCoinQuantity: (0, exports.computeMinimumCoinQuantity)(protocolParameters.coinsPerUtxoByte),
|
|
101
|
+
computeMinimumCost: (0, exports.computeMinimumCost)(protocolParameters, buildTx, txEvaluator, redeemersByType),
|
|
102
|
+
computeSelectionLimit: (0, exports.computeSelectionLimit)(protocolParameters.maxTxSize, buildTx),
|
|
103
|
+
tokenBundleSizeExceedsLimit: (0, exports.tokenBundleSizeExceedsLimit)(protocolParameters.maxValueSize)
|
|
99
104
|
};
|
|
100
105
|
};
|
|
101
106
|
exports.defaultSelectionConstraints = defaultSelectionConstraints;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectionConstraints.js","sourceRoot":"","sources":["../../../src/input-selection/selectionConstraints.ts"],"names":[],"mappings":";;;AAAA,4CAA2F;AAC3F,kEAUsC;
|
|
1
|
+
{"version":3,"file":"selectionConstraints.js","sourceRoot":"","sources":["../../../src/input-selection/selectionConstraints.ts"],"names":[],"mappings":"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"}
|