@cardano-sdk/tx-construction 0.24.4 → 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.
@@ -1,9 +1,5 @@
1
1
  import { Cardano } from '@cardano-sdk/core';
2
- import { OpaqueNumber } from '@cardano-sdk/util';
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, exUnitsPrice: Cardano.Prices, minFeeConstant: MinFeeConstant, minFeeCoefficient: MinFeeCoefficient) => bigint;
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,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAwEjD,oBAAY,cAAc,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;AAC5D,eAAO,MAAM,cAAc,UAAW,MAAM,KAAG,cAAoD,CAAC;AAMpG,oBAAY,iBAAiB,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;AAClE,eAAO,MAAM,iBAAiB,UAAW,MAAM,KAAG,iBAA0D,CAAC;AAwB7G,eAAO,MAAM,cAAc,WAAY,QAAQ,KAAK,oBAAoB,MAAM,KAAG,MAqBhF,CAAC;AAUF,eAAO,MAAM,MAAM,OACb,QAAQ,EAAE,gBACA,QAAQ,MAAM,kBACZ,cAAc,qBACX,iBAAiB,WACqD,CAAC"}
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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.minFee = exports.minAdaRequired = exports.MinFeeCoefficient = exports.MinFeeConstant = void 0;
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 minScriptFee = (tx, exUnitsPrice) => {
22
- if (!tx.witness.redeemers)
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, exUnitsPrice, minFeeConstant, minFeeCoefficient) => minNoScriptFee(tx, minFeeConstant, minFeeCoefficient) + minScriptFee(tx, exUnitsPrice);
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":"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"}
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: ({ minFeeCoefficient, minFeeConstant, prices }: Pick<ProtocolParametersRequiredByInputSelection, 'minFeeCoefficient' | 'minFeeConstant' | 'prices'>, buildTx: BuildTx, txEvaluator: TxEvaluator, redeemersByType: RedeemersByType) => EstimateTxCosts;
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: { coinsPerUtxoByte, maxTxSize, maxValueSize, minFeeCoefficient, minFeeConstant, prices }, buildTx, redeemersByType, txEvaluator }: DefaultSelectionConstraintsProps) => SelectionConstraints;
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;AAEtC,OAAO,EAAsB,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE/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,kDAMxB,KAAK,0CAA0C,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,QAAQ,CAAC,WAC7F,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,4JAKrC,gCAAgC,KAAG,oBAiBrC,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 = ({ minFeeCoefficient, minFeeConstant, prices }, buildTx, txEvaluator, redeemersByType) => async (selection) => {
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, prices, (0, fees_1.MinFeeConstant)(minFeeConstant), (0, fees_1.MinFeeCoefficient)(minFeeCoefficient)),
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: { coinsPerUtxoByte, maxTxSize, maxValueSize, minFeeCoefficient, minFeeConstant, prices }, buildTx, redeemersByType, txEvaluator }) => {
91
- if (!coinsPerUtxoByte || !maxTxSize || !maxValueSize || !minFeeCoefficient || !minFeeConstant || !prices) {
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)({ minFeeCoefficient, minFeeConstant, prices }, buildTx, txEvaluator, redeemersByType),
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":"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"}
1
+ {"version":3,"file":"selectionConstraints.js","sourceRoot":"","sources":["../../../src/input-selection/selectionConstraints.ts"],"names":[],"mappings":"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"}