@cardano-sdk/input-selection 0.7.1-nightly.3 → 0.8.1-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.
- package/dist/cjs/index.d.ts +0 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +0 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/types.d.ts +1 -1
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/index.d.ts +0 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/types.d.ts +1 -1
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/cjs/selectionConstraints.d.ts +0 -14
- package/dist/cjs/selectionConstraints.d.ts.map +0 -1
- package/dist/cjs/selectionConstraints.js +0 -53
- package/dist/cjs/selectionConstraints.js.map +0 -1
- package/dist/esm/selectionConstraints.d.ts +0 -14
- package/dist/esm/selectionConstraints.d.ts.map +0 -1
- package/dist/esm/selectionConstraints.js +0 -45
- package/dist/esm/selectionConstraints.js.map +0 -1
package/dist/esm/types.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ export interface InputSelectionParameters {
|
|
|
33
33
|
export interface InputSelector {
|
|
34
34
|
select(params: InputSelectionParameters): Promise<SelectionResult>;
|
|
35
35
|
}
|
|
36
|
-
export declare type ProtocolParametersForInputSelection = Pick<Cardano.ProtocolParameters, 'coinsPerUtxoByte' | 'maxTxSize' | 'maxValueSize' | 'minFeeCoefficient' | 'minFeeConstant'>;
|
|
36
|
+
export declare type ProtocolParametersForInputSelection = Pick<Cardano.ProtocolParameters, 'coinsPerUtxoByte' | 'maxTxSize' | 'maxValueSize' | 'minFeeCoefficient' | 'minFeeConstant' | 'prices'>;
|
|
37
37
|
export declare type ProtocolParametersRequiredByInputSelection = Required<{
|
|
38
38
|
[k in keyof ProtocolParametersForInputSelection]: ProtocolParametersForInputSelection[k];
|
|
39
39
|
}>;
|
package/dist/esm/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAOhC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAI1B,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAM5B,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAK3B,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC;CACvB;AAED,oBAAY,SAAS,GAAG,iBAAiB,CAAC;AAE1C,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,SAAS,CAAC;IAOrB,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;AAKD,oBAAY,aAAa,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAKhG,oBAAY,2BAA2B,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AAKtF,oBAAY,0BAA0B,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,QAAQ,CAAC;AAMrF,oBAAY,qBAAqB,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE9F,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,EAAE,aAAa,CAAC;IAClC,2BAA2B,EAAE,2BAA2B,CAAC;IACzD,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,qBAAqB,EAAE,qBAAqB,CAAC;CAC9C;AAKD,MAAM,WAAW,aAAa;IAI5B,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;IAKjC,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IAIvC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAIxB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAI5B,WAAW,EAAE,oBAAoB,CAAC;IAIlC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAM5B,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACpE;AAED,oBAAY,mCAAmC,GAAG,IAAI,CACpD,OAAO,CAAC,kBAAkB,EAC1B,kBAAkB,GAAG,WAAW,GAAG,cAAc,GAAG,mBAAmB,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAOhC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAI1B,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAM5B,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAK3B,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC;CACvB;AAED,oBAAY,SAAS,GAAG,iBAAiB,CAAC;AAE1C,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,SAAS,CAAC;IAOrB,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;AAKD,oBAAY,aAAa,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAKhG,oBAAY,2BAA2B,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AAKtF,oBAAY,0BAA0B,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,QAAQ,CAAC;AAMrF,oBAAY,qBAAqB,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE9F,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,EAAE,aAAa,CAAC;IAClC,2BAA2B,EAAE,2BAA2B,CAAC;IACzD,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,qBAAqB,EAAE,qBAAqB,CAAC;CAC9C;AAKD,MAAM,WAAW,aAAa;IAI5B,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;IAKjC,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IAIvC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAIxB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAI5B,WAAW,EAAE,oBAAoB,CAAC;IAIlC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAM5B,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACpE;AAED,oBAAY,mCAAmC,GAAG,IAAI,CACpD,OAAO,CAAC,kBAAkB,EAC1B,kBAAkB,GAAG,WAAW,GAAG,cAAc,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,QAAQ,CACtG,CAAC;AAEF,oBAAY,0CAA0C,GAAG,QAAQ,CAAC;KAC/D,CAAC,IAAI,MAAM,mCAAmC,GAAG,mCAAmC,CAAC,CAAC,CAAC;CACzF,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cardano-sdk/input-selection",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.1-nightly.0",
|
|
4
4
|
"description": "TypeScript definitions for input-selection (Coin Selection Algorithms for Cardano)",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=14.20.1"
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"test:debug": "DEBUG=true yarn test"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@cardano-sdk/util-dev": "^0.7.
|
|
56
|
+
"@cardano-sdk/util-dev": "^0.7.1-nightly.0",
|
|
57
57
|
"@types/lodash": "^4.14.182",
|
|
58
58
|
"eslint": "^7.32.0",
|
|
59
59
|
"fast-check": "^2.17.0",
|
|
@@ -66,8 +66,8 @@
|
|
|
66
66
|
"typescript": "^4.7.4"
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
|
-
"@cardano-sdk/core": "^0.
|
|
70
|
-
"@cardano-sdk/util": "^0.
|
|
69
|
+
"@cardano-sdk/core": "^0.9.0-nightly.0",
|
|
70
|
+
"@cardano-sdk/util": "^0.8.1-nightly.0",
|
|
71
71
|
"lodash": "^4.17.21",
|
|
72
72
|
"ts-custom-error": "^3.2.0"
|
|
73
73
|
},
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"LICENSE",
|
|
78
78
|
"NOTICE"
|
|
79
79
|
],
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "cc05ae16d15a2cbfe1be5df3655f453d4889d529"
|
|
81
81
|
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { CML } from '@cardano-sdk/core';
|
|
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
|
-
export interface DefaultSelectionConstraintsProps {
|
|
6
|
-
protocolParameters: ProtocolParametersForInputSelection;
|
|
7
|
-
buildTx: BuildTx;
|
|
8
|
-
}
|
|
9
|
-
export declare const computeMinimumCost: ({ minFeeCoefficient, minFeeConstant }: Pick<ProtocolParametersRequiredByInputSelection, 'minFeeCoefficient' | 'minFeeConstant'>, buildTx: BuildTx) => EstimateTxFee;
|
|
10
|
-
export declare const computeMinimumCoinQuantity: (coinsPerUtxoByte: ProtocolParametersRequiredByInputSelection['coinsPerUtxoByte']) => ComputeMinimumCoinQuantity;
|
|
11
|
-
export declare const tokenBundleSizeExceedsLimit: (maxValueSize: ProtocolParametersRequiredByInputSelection['maxValueSize']) => TokenBundleSizeExceedsLimit;
|
|
12
|
-
export declare const computeSelectionLimit: (maxTxSize: ProtocolParametersRequiredByInputSelection['maxTxSize'], buildTx: BuildTx) => ComputeSelectionLimit;
|
|
13
|
-
export declare const defaultSelectionConstraints: ({ protocolParameters: { coinsPerUtxoByte, maxTxSize, maxValueSize, minFeeCoefficient, minFeeConstant }, buildTx }: DefaultSelectionConstraintsProps) => SelectionConstraints;
|
|
14
|
-
//# sourceMappingURL=selectionConstraints.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.defaultSelectionConstraints = exports.computeSelectionLimit = exports.tokenBundleSizeExceedsLimit = exports.computeMinimumCoinQuantity = exports.computeMinimumCost = void 0;
|
|
4
|
-
const core_1 = require("@cardano-sdk/core");
|
|
5
|
-
const util_1 = require("@cardano-sdk/util");
|
|
6
|
-
const computeMinimumCost = ({ minFeeCoefficient, minFeeConstant }, buildTx) => (selection) => (0, util_1.usingAutoFree)(async (scope) => {
|
|
7
|
-
const tx = await buildTx(selection, scope);
|
|
8
|
-
const priceMem = scope.manage(core_1.CML.UnitInterval.new(scope.manage(core_1.CML.BigNum.from_str('577')), scope.manage(core_1.CML.BigNum.from_str('10000'))));
|
|
9
|
-
const priceStep = scope.manage(core_1.CML.UnitInterval.new(scope.manage(core_1.CML.BigNum.from_str('721')), scope.manage(core_1.CML.BigNum.from_str('100000000'))));
|
|
10
|
-
const exInitPrices = scope.manage(core_1.CML.ExUnitPrices.new(priceMem, priceStep));
|
|
11
|
-
const linearFee = scope.manage(core_1.CML.LinearFee.new(scope.manage(core_1.CML.BigNum.from_str(minFeeCoefficient.toString())), scope.manage(core_1.CML.BigNum.from_str(minFeeConstant.toString()))));
|
|
12
|
-
const minFee = scope.manage(core_1.CML.min_fee(tx, linearFee, exInitPrices));
|
|
13
|
-
return BigInt(minFee.to_str());
|
|
14
|
-
});
|
|
15
|
-
exports.computeMinimumCost = computeMinimumCost;
|
|
16
|
-
const computeMinimumCoinQuantity = (coinsPerUtxoByte) => (output) => (0, util_1.usingAutoFree)((scope) => BigInt(scope
|
|
17
|
-
.manage(core_1.CML.min_ada_required(core_1.coreToCml.txOut(scope, output), scope.manage(core_1.CML.BigNum.from_str(coinsPerUtxoByte.toString()))))
|
|
18
|
-
.to_str()));
|
|
19
|
-
exports.computeMinimumCoinQuantity = computeMinimumCoinQuantity;
|
|
20
|
-
const tokenBundleSizeExceedsLimit = (maxValueSize) => (tokenBundle) => {
|
|
21
|
-
if (!tokenBundle) {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
return (0, util_1.usingAutoFree)((scope) => {
|
|
25
|
-
const value = scope.manage(core_1.CML.Value.new(core_1.cmlUtil.maxBigNum(scope)));
|
|
26
|
-
value.set_multiasset(core_1.coreToCml.tokenMap(scope, tokenBundle));
|
|
27
|
-
return value.to_bytes().length > maxValueSize;
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
exports.tokenBundleSizeExceedsLimit = tokenBundleSizeExceedsLimit;
|
|
31
|
-
const getTxSize = (tx) => tx.to_bytes().length;
|
|
32
|
-
const computeSelectionLimit = (maxTxSize, buildTx) => (selectionSkeleton) => (0, util_1.usingAutoFree)(async (scope) => {
|
|
33
|
-
const tx = await buildTx(selectionSkeleton, scope);
|
|
34
|
-
const txSize = getTxSize(tx);
|
|
35
|
-
if (txSize <= maxTxSize) {
|
|
36
|
-
return selectionSkeleton.inputs.size;
|
|
37
|
-
}
|
|
38
|
-
return selectionSkeleton.inputs.size - 1;
|
|
39
|
-
});
|
|
40
|
-
exports.computeSelectionLimit = computeSelectionLimit;
|
|
41
|
-
const defaultSelectionConstraints = ({ protocolParameters: { coinsPerUtxoByte, maxTxSize, maxValueSize, minFeeCoefficient, minFeeConstant }, buildTx }) => {
|
|
42
|
-
if (!coinsPerUtxoByte || !maxTxSize || !maxValueSize || !minFeeCoefficient || !minFeeConstant) {
|
|
43
|
-
throw new core_1.InvalidProtocolParametersError('Missing one of: coinsPerUtxoByte, maxTxSize, maxValueSize, minFeeCoefficient, minFeeConstant');
|
|
44
|
-
}
|
|
45
|
-
return {
|
|
46
|
-
computeMinimumCoinQuantity: (0, exports.computeMinimumCoinQuantity)(coinsPerUtxoByte),
|
|
47
|
-
computeMinimumCost: (0, exports.computeMinimumCost)({ minFeeCoefficient, minFeeConstant }, buildTx),
|
|
48
|
-
computeSelectionLimit: (0, exports.computeSelectionLimit)(maxTxSize, buildTx),
|
|
49
|
-
tokenBundleSizeExceedsLimit: (0, exports.tokenBundleSizeExceedsLimit)(maxValueSize)
|
|
50
|
-
};
|
|
51
|
-
};
|
|
52
|
-
exports.defaultSelectionConstraints = defaultSelectionConstraints;
|
|
53
|
-
//# sourceMappingURL=selectionConstraints.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selectionConstraints.js","sourceRoot":"","sources":["../../src/selectionConstraints.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { CML } from '@cardano-sdk/core';
|
|
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
|
-
export interface DefaultSelectionConstraintsProps {
|
|
6
|
-
protocolParameters: ProtocolParametersForInputSelection;
|
|
7
|
-
buildTx: BuildTx;
|
|
8
|
-
}
|
|
9
|
-
export declare const computeMinimumCost: ({ minFeeCoefficient, minFeeConstant }: Pick<ProtocolParametersRequiredByInputSelection, 'minFeeCoefficient' | 'minFeeConstant'>, buildTx: BuildTx) => EstimateTxFee;
|
|
10
|
-
export declare const computeMinimumCoinQuantity: (coinsPerUtxoByte: ProtocolParametersRequiredByInputSelection['coinsPerUtxoByte']) => ComputeMinimumCoinQuantity;
|
|
11
|
-
export declare const tokenBundleSizeExceedsLimit: (maxValueSize: ProtocolParametersRequiredByInputSelection['maxValueSize']) => TokenBundleSizeExceedsLimit;
|
|
12
|
-
export declare const computeSelectionLimit: (maxTxSize: ProtocolParametersRequiredByInputSelection['maxTxSize'], buildTx: BuildTx) => ComputeSelectionLimit;
|
|
13
|
-
export declare const defaultSelectionConstraints: ({ protocolParameters: { coinsPerUtxoByte, maxTxSize, maxValueSize, minFeeCoefficient, minFeeConstant }, buildTx }: DefaultSelectionConstraintsProps) => SelectionConstraints;
|
|
14
|
-
//# sourceMappingURL=selectionConstraints.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,45 +0,0 @@
|
|
|
1
|
-
import { CML, InvalidProtocolParametersError, cmlUtil, coreToCml } from '@cardano-sdk/core';
|
|
2
|
-
import { usingAutoFree } from '@cardano-sdk/util';
|
|
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
|
-
export const tokenBundleSizeExceedsLimit = (maxValueSize) => (tokenBundle) => {
|
|
16
|
-
if (!tokenBundle) {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
return usingAutoFree((scope) => {
|
|
20
|
-
const value = scope.manage(CML.Value.new(cmlUtil.maxBigNum(scope)));
|
|
21
|
-
value.set_multiasset(coreToCml.tokenMap(scope, tokenBundle));
|
|
22
|
-
return value.to_bytes().length > maxValueSize;
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
const getTxSize = (tx) => tx.to_bytes().length;
|
|
26
|
-
export const computeSelectionLimit = (maxTxSize, buildTx) => (selectionSkeleton) => usingAutoFree(async (scope) => {
|
|
27
|
-
const tx = await buildTx(selectionSkeleton, scope);
|
|
28
|
-
const txSize = getTxSize(tx);
|
|
29
|
-
if (txSize <= maxTxSize) {
|
|
30
|
-
return selectionSkeleton.inputs.size;
|
|
31
|
-
}
|
|
32
|
-
return selectionSkeleton.inputs.size - 1;
|
|
33
|
-
});
|
|
34
|
-
export const defaultSelectionConstraints = ({ protocolParameters: { coinsPerUtxoByte, maxTxSize, maxValueSize, minFeeCoefficient, minFeeConstant }, buildTx }) => {
|
|
35
|
-
if (!coinsPerUtxoByte || !maxTxSize || !maxValueSize || !minFeeCoefficient || !minFeeConstant) {
|
|
36
|
-
throw new InvalidProtocolParametersError('Missing one of: coinsPerUtxoByte, maxTxSize, maxValueSize, minFeeCoefficient, minFeeConstant');
|
|
37
|
-
}
|
|
38
|
-
return {
|
|
39
|
-
computeMinimumCoinQuantity: computeMinimumCoinQuantity(coinsPerUtxoByte),
|
|
40
|
-
computeMinimumCost: computeMinimumCost({ minFeeCoefficient, minFeeConstant }, buildTx),
|
|
41
|
-
computeSelectionLimit: computeSelectionLimit(maxTxSize, buildTx),
|
|
42
|
-
tokenBundleSizeExceedsLimit: tokenBundleSizeExceedsLimit(maxValueSize)
|
|
43
|
-
};
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=selectionConstraints.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selectionConstraints.js","sourceRoot":"","sources":["../../src/selectionConstraints.ts"],"names":[],"mappings":"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"}
|