@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"}
@@ -15,14 +15,36 @@ const getTotalExUnits = (redeemers) => {
15
15
  }
16
16
  return totalExUnits;
17
17
  };
18
- const minScriptFee = (tx, exUnitsPrice) => {
19
- if (!tx.witness.redeemers)
18
+ const minRefScriptFee = (tx, resolvedInputs, coinsPerRefScriptByte) => {
19
+ if (coinsPerRefScriptByte === 0)
20
20
  return BigInt(0);
21
+ let base = coinsPerRefScriptByte;
22
+ const range = 25600;
23
+ const multiplier = 1.2;
24
+ let totalRefScriptsSize = 0;
25
+ const totalInputs = [...tx.body.inputs, ...(tx.body.referenceInputs ?? [])];
26
+ for (const output of totalInputs) {
27
+ const resolvedInput = resolvedInputs.find((input) => input[0].txId === output.txId && input[0].index === output.index);
28
+ if (resolvedInput && resolvedInput[1].scriptReference) {
29
+ totalRefScriptsSize += Serialization.Script.fromCore(resolvedInput[1].scriptReference).toCbor().length / 2;
30
+ }
31
+ }
32
+ let scriptRefFee = 0;
33
+ while (totalRefScriptsSize > 0) {
34
+ scriptRefFee += Math.ceil(Math.min(range, totalRefScriptsSize) * base);
35
+ totalRefScriptsSize = Math.max(totalRefScriptsSize - range, 0);
36
+ base *= multiplier;
37
+ }
38
+ return BigInt(scriptRefFee);
39
+ };
40
+ const minScriptFee = (tx, exUnitsPrice, resolvedInputs, coinsPerRefScriptByte) => {
41
+ const scriptRefFee = minRefScriptFee(tx, resolvedInputs, coinsPerRefScriptByte);
42
+ if (!tx.witness.redeemers)
43
+ return BigInt(scriptRefFee);
21
44
  const totalExUnits = getTotalExUnits(tx.witness.redeemers);
22
- return BigInt(Math.ceil(totalExUnits.steps * exUnitsPrice.steps + totalExUnits.memory * exUnitsPrice.memory));
45
+ return (BigInt(Math.ceil(totalExUnits.steps * exUnitsPrice.steps + totalExUnits.memory * exUnitsPrice.memory)) +
46
+ scriptRefFee);
23
47
  };
24
- export const MinFeeConstant = (value) => value;
25
- export const MinFeeCoefficient = (value) => value;
26
48
  const minNoScriptFee = (tx, minFeeConstant, minFeeCoefficient) => {
27
49
  const txSize = serializeTx(tx).length;
28
50
  return BigInt(Math.ceil(txSize * minFeeCoefficient + minFeeConstant));
@@ -41,5 +63,6 @@ export const minAdaRequired = (output, coinsPerUtxoByte) => {
41
63
  const sizeChange = latestSize - oldCoinSize;
42
64
  return BigInt(serializeTxOutputSize(output) + MIN_ADA_CONSTANT_OVERHEAD + sizeChange) * coinsPerUtxoByte;
43
65
  };
44
- export const minFee = (tx, exUnitsPrice, minFeeConstant, minFeeCoefficient) => minNoScriptFee(tx, minFeeConstant, minFeeCoefficient) + minScriptFee(tx, exUnitsPrice);
66
+ export const minFee = (tx, resolvedInputs, pparams) => minNoScriptFee(tx, pparams.minFeeConstant, pparams.minFeeCoefficient) +
67
+ minScriptFee(tx, pparams.prices, resolvedInputs, pparams.minFeeRefScriptCostPerByte ? Number(pparams.minFeeRefScriptCostPerByte) : 0);
45
68
  //# 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"}
@@ -1,6 +1,6 @@
1
1
  import { Cardano, InvalidProtocolParametersError, Serialization } from '@cardano-sdk/core';
2
2
  import { sortTxIn } from '@cardano-sdk/input-selection';
3
- import { MinFeeCoefficient, MinFeeConstant, minAdaRequired, minFee } from '../fees/index.js';
3
+ import { minAdaRequired, minFee } from '../fees/index.js';
4
4
  export const MAX_U64 = 18446744073709551615n;
5
5
  const updateRedeemers = (evaluation, redeemersByType, txInputs) => {
6
6
  const result = [];
@@ -49,7 +49,7 @@ const reorgRedeemers = (redeemerByType, witness, txInputs) => {
49
49
  }
50
50
  return redeemers;
51
51
  };
52
- export const computeMinimumCost = ({ minFeeCoefficient, minFeeConstant, prices }, buildTx, txEvaluator, redeemersByType) => async (selection) => {
52
+ export const computeMinimumCost = (pparams, buildTx, txEvaluator, redeemersByType) => async (selection) => {
53
53
  const tx = await buildTx(selection);
54
54
  const utxos = [...selection.inputs];
55
55
  const txIns = utxos.map((utxo) => utxo[0]).sort(sortTxIn);
@@ -58,7 +58,7 @@ export const computeMinimumCost = ({ minFeeCoefficient, minFeeConstant, prices }
58
58
  tx.witness.redeemers = updateRedeemers(await txEvaluator.evaluate(tx, utxos), redeemersByType, txIns);
59
59
  }
60
60
  return {
61
- fee: minFee(tx, prices, MinFeeConstant(minFeeConstant), MinFeeCoefficient(minFeeCoefficient)),
61
+ fee: minFee(tx, utxos, pparams),
62
62
  redeemers: tx.witness.redeemers
63
63
  };
64
64
  };
@@ -80,15 +80,20 @@ export const computeSelectionLimit = (maxTxSize, buildTx) => async (selectionSke
80
80
  }
81
81
  return selectionSkeleton.inputs.size - 1;
82
82
  };
83
- export const defaultSelectionConstraints = ({ protocolParameters: { coinsPerUtxoByte, maxTxSize, maxValueSize, minFeeCoefficient, minFeeConstant, prices }, buildTx, redeemersByType, txEvaluator }) => {
84
- if (!coinsPerUtxoByte || !maxTxSize || !maxValueSize || !minFeeCoefficient || !minFeeConstant || !prices) {
83
+ export const defaultSelectionConstraints = ({ protocolParameters, buildTx, redeemersByType, txEvaluator }) => {
84
+ if (!protocolParameters.coinsPerUtxoByte ||
85
+ !protocolParameters.maxTxSize ||
86
+ !protocolParameters.maxValueSize ||
87
+ !protocolParameters.minFeeCoefficient ||
88
+ !protocolParameters.minFeeConstant ||
89
+ !protocolParameters.prices) {
85
90
  throw new InvalidProtocolParametersError('Missing one of: coinsPerUtxoByte, maxTxSize, maxValueSize, minFeeCoefficient, minFeeConstant, prices');
86
91
  }
87
92
  return {
88
- computeMinimumCoinQuantity: computeMinimumCoinQuantity(coinsPerUtxoByte),
89
- computeMinimumCost: computeMinimumCost({ minFeeCoefficient, minFeeConstant, prices }, buildTx, txEvaluator, redeemersByType),
90
- computeSelectionLimit: computeSelectionLimit(maxTxSize, buildTx),
91
- tokenBundleSizeExceedsLimit: tokenBundleSizeExceedsLimit(maxValueSize)
93
+ computeMinimumCoinQuantity: computeMinimumCoinQuantity(protocolParameters.coinsPerUtxoByte),
94
+ computeMinimumCost: computeMinimumCost(protocolParameters, buildTx, txEvaluator, redeemersByType),
95
+ computeSelectionLimit: computeSelectionLimit(protocolParameters.maxTxSize, buildTx),
96
+ tokenBundleSizeExceedsLimit: tokenBundleSizeExceedsLimit(protocolParameters.maxValueSize)
92
97
  };
93
98
  };
94
99
  //# sourceMappingURL=selectionConstraints.js.map
@@ -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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"}