@cardano-sdk/input-selection 0.6.1-nightly.1 → 0.7.0-nightly.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,7 +1,7 @@
1
1
  import { CML } from '@cardano-sdk/core';
2
- import { ComputeMinimumCoinQuantity, ComputeSelectionLimit, EstimateTxFee, ProtocolParametersForInputSelection, SelectionConstraints, SelectionSkeleton, TokenBundleSizeExceedsLimit } from './types';
3
- import { ProtocolParametersRequiredByInputSelection } from '.';
4
- export declare type BuildTx = (selection: SelectionSkeleton) => Promise<CML.Transaction>;
2
+ import { ComputeMinimumCoinQuantity, ComputeSelectionLimit, EstimateTxFee, ProtocolParametersForInputSelection, ProtocolParametersRequiredByInputSelection, SelectionConstraints, SelectionSkeleton, TokenBundleSizeExceedsLimit } from './types';
3
+ import { ManagedFreeableScope } from '@cardano-sdk/util';
4
+ export declare type BuildTx = (selection: SelectionSkeleton, scope: ManagedFreeableScope) => Promise<CML.Transaction>;
5
5
  export interface DefaultSelectionConstraintsProps {
6
6
  protocolParameters: ProtocolParametersForInputSelection;
7
7
  buildTx: BuildTx;
@@ -1 +1 @@
1
- {"version":3,"file":"selectionConstraints.d.ts","sourceRoot":"","sources":["../../src/selectionConstraints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAsD,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,aAAa,EACb,mCAAmC,EACnC,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,0CAA0C,EAAE,MAAM,GAAG,CAAC;AAG/D,oBAAY,OAAO,GAAG,CAAC,SAAS,EAAE,iBAAiB,KAAK,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAEjF,MAAM,WAAW,gCAAgC;IAC/C,kBAAkB,EAAE,mCAAmC,CAAC;IACxD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,0CAKxB,KAAK,0CAA0C,EAAE,mBAAmB,GAAG,gBAAgB,CAAC,WAClF,OAAO,KACf,aAuBF,CAAC;AAEJ,eAAO,MAAM,0BAA0B,qBAClB,0CAA0C,CAAC,kBAAkB,CAAC,KAAG,0BASjF,CAAC;AAEN,eAAO,MAAM,2BAA2B,iBACvB,0CAA0C,CAAC,cAAc,CAAC,KAAG,2BAW3E,CAAC;AAWJ,eAAO,MAAM,qBAAqB,cACpB,0CAA0C,CAAC,WAAW,CAAC,WAAW,OAAO,KAAG,qBAQvF,CAAC;AAEJ,eAAO,MAAM,2BAA2B,sHAGrC,gCAAgC,KAAG,oBAYrC,CAAC"}
1
+ {"version":3,"file":"selectionConstraints.d.ts","sourceRoot":"","sources":["../../src/selectionConstraints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAsD,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,aAAa,EACb,mCAAmC,EACnC,0CAA0C,EAC1C,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,oBAAoB,EAAiB,MAAM,mBAAmB,CAAC;AAExE,oBAAY,OAAO,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAE9G,MAAM,WAAW,gCAAgC;IAC/C,kBAAkB,EAAE,mCAAmC,CAAC;IACxD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,0CAKxB,KAAK,0CAA0C,EAAE,mBAAmB,GAAG,gBAAgB,CAAC,WAClF,OAAO,KACf,aAsBC,CAAC;AAEP,eAAO,MAAM,0BAA0B,qBAClB,0CAA0C,CAAC,kBAAkB,CAAC,KAAG,0BAajF,CAAC;AAEN,eAAO,MAAM,2BAA2B,iBACvB,0CAA0C,CAAC,cAAc,CAAC,KAAG,2BAW3E,CAAC;AAWJ,eAAO,MAAM,qBAAqB,cACpB,0CAA0C,CAAC,WAAW,CAAC,WAAW,OAAO,KAAG,qBASpF,CAAC;AAEP,eAAO,MAAM,2BAA2B,sHAGrC,gCAAgC,KAAG,oBAYrC,CAAC"}
@@ -1,17 +1,17 @@
1
1
  import { CML, InvalidProtocolParametersError, cmlUtil, coreToCml } from '@cardano-sdk/core';
2
2
  import { usingAutoFree } from '@cardano-sdk/util';
3
- export const computeMinimumCost = ({ minFeeCoefficient, minFeeConstant }, buildTx) => async (selection) => {
4
- const tx = await buildTx(selection);
5
- return usingAutoFree((scope) => {
6
- const priceMem = scope.manage(CML.UnitInterval.new(scope.manage(CML.BigNum.from_str('577')), scope.manage(CML.BigNum.from_str('10000'))));
7
- const priceStep = scope.manage(CML.UnitInterval.new(scope.manage(CML.BigNum.from_str('721')), scope.manage(CML.BigNum.from_str('100000000'))));
8
- const exInitPrices = scope.manage(CML.ExUnitPrices.new(priceMem, priceStep));
9
- const linearFee = scope.manage(CML.LinearFee.new(scope.manage(CML.BigNum.from_str(minFeeCoefficient.toString())), scope.manage(CML.BigNum.from_str(minFeeConstant.toString()))));
10
- const minFee = scope.manage(CML.min_fee(tx, linearFee, exInitPrices));
11
- return BigInt(minFee.to_str());
12
- });
13
- };
14
- export const computeMinimumCoinQuantity = (coinsPerUtxoByte) => (output) => usingAutoFree((scope) => BigInt(CML.min_ada_required(coreToCml.txOut(scope, output), scope.manage(CML.BigNum.from_str(coinsPerUtxoByte.toString()))).to_str()));
3
+ export const computeMinimumCost = ({ minFeeCoefficient, minFeeConstant }, buildTx) => (selection) => usingAutoFree(async (scope) => {
4
+ const tx = await buildTx(selection, scope);
5
+ const priceMem = scope.manage(CML.UnitInterval.new(scope.manage(CML.BigNum.from_str('577')), scope.manage(CML.BigNum.from_str('10000'))));
6
+ const priceStep = scope.manage(CML.UnitInterval.new(scope.manage(CML.BigNum.from_str('721')), scope.manage(CML.BigNum.from_str('100000000'))));
7
+ const exInitPrices = scope.manage(CML.ExUnitPrices.new(priceMem, priceStep));
8
+ const linearFee = scope.manage(CML.LinearFee.new(scope.manage(CML.BigNum.from_str(minFeeCoefficient.toString())), scope.manage(CML.BigNum.from_str(minFeeConstant.toString()))));
9
+ const minFee = scope.manage(CML.min_fee(tx, linearFee, exInitPrices));
10
+ return BigInt(minFee.to_str());
11
+ });
12
+ export const computeMinimumCoinQuantity = (coinsPerUtxoByte) => (output) => usingAutoFree((scope) => BigInt(scope
13
+ .manage(CML.min_ada_required(coreToCml.txOut(scope, output), scope.manage(CML.BigNum.from_str(coinsPerUtxoByte.toString()))))
14
+ .to_str()));
15
15
  export const tokenBundleSizeExceedsLimit = (maxValueSize) => (tokenBundle) => {
16
16
  if (!tokenBundle) {
17
17
  return false;
@@ -23,14 +23,14 @@ export const tokenBundleSizeExceedsLimit = (maxValueSize) => (tokenBundle) => {
23
23
  });
24
24
  };
25
25
  const getTxSize = (tx) => tx.to_bytes().length;
26
- export const computeSelectionLimit = (maxTxSize, buildTx) => async (selectionSkeleton) => {
27
- const tx = await buildTx(selectionSkeleton);
26
+ export const computeSelectionLimit = (maxTxSize, buildTx) => (selectionSkeleton) => usingAutoFree(async (scope) => {
27
+ const tx = await buildTx(selectionSkeleton, scope);
28
28
  const txSize = getTxSize(tx);
29
29
  if (txSize <= maxTxSize) {
30
30
  return selectionSkeleton.inputs.size;
31
31
  }
32
32
  return selectionSkeleton.inputs.size - 1;
33
- };
33
+ });
34
34
  export const defaultSelectionConstraints = ({ protocolParameters: { coinsPerUtxoByte, maxTxSize, maxValueSize, minFeeCoefficient, minFeeConstant }, buildTx }) => {
35
35
  if (!coinsPerUtxoByte || !maxTxSize || !maxValueSize || !minFeeCoefficient || !minFeeConstant) {
36
36
  throw new InvalidProtocolParametersError('Missing one of: coinsPerUtxoByte, maxTxSize, maxValueSize, minFeeCoefficient, minFeeConstant');
@@ -1 +1 @@
1
- {"version":3,"file":"selectionConstraints.js","sourceRoot":"","sources":["../../src/selectionConstraints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selectionConstraints.js","sourceRoot":"","sources":["../../src/selectionConstraints.ts"],"names":[],"mappings":"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"}