Skip to content

Commit 1632c1d

Browse files
committed
refactor(util-dev)!: rename mock minimumCost to minimumCostCoefficient
computeMinimumCost is now a function of # of inputs
1 parent 1d103a5 commit 1632c1d

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

packages/util-dev/src/selectionConstraints.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,21 @@ import { SelectionConstraints } from '@cardano-sdk/cip2';
33

44
export interface MockSelectionConstraints {
55
minimumCoinQuantity: bigint;
6-
minimumCost: bigint;
6+
minimumCostCoefficient: bigint;
77
maxTokenBundleSize: number;
88
selectionLimit: number;
99
}
1010

1111
export const MOCK_NO_CONSTRAINTS: MockSelectionConstraints = {
1212
maxTokenBundleSize: Number.POSITIVE_INFINITY,
1313
minimumCoinQuantity: 0n,
14-
minimumCost: 0n,
14+
minimumCostCoefficient: 0n,
1515
selectionLimit: Number.POSITIVE_INFINITY
1616
};
1717

1818
export const mockConstraintsToConstraints = (constraints: MockSelectionConstraints): SelectionConstraints => ({
1919
computeMinimumCoinQuantity: () => constraints.minimumCoinQuantity,
20-
computeMinimumCost: async () => constraints.minimumCost,
20+
computeMinimumCost: async ({ inputs }) => constraints.minimumCostCoefficient * BigInt(inputs.size),
2121
computeSelectionLimit: async () => constraints.selectionLimit,
2222
tokenBundleSizeExceedsLimit: (assets?: Cardano.TokenMap) => (assets?.size || 0) > constraints.maxTokenBundleSize
2323
});

packages/util-dev/test/selectionConstraints.test.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ describe('selectionConstraints', () => {
66
const constraints = mockConstraintsToConstraints({
77
maxTokenBundleSize: 1,
88
minimumCoinQuantity: 10n,
9-
minimumCost: 20n,
9+
minimumCostCoefficient: 20n,
1010
selectionLimit: 3
1111
});
1212
expect(constraints.computeMinimumCoinQuantity()).toBe(10n);
13-
expect(await constraints.computeMinimumCost({} as any)).toBe(20n);
13+
expect(await constraints.computeMinimumCost({ inputs: new Set([[]]) } as any)).toBe(20n);
14+
expect(await constraints.computeMinimumCost({ inputs: new Set([[], []]) } as any)).toBe(40n);
1415
expect(await constraints.computeSelectionLimit({} as any)).toBe(3);
1516
expect(constraints.tokenBundleSizeExceedsLimit()).toBe(false);
1617
expect(constraints.tokenBundleSizeExceedsLimit({ size: 2 } as any)).toBe(true);

0 commit comments

Comments
 (0)