refactor confirmation tiers to shared crypto-agnostic types and validation
This commit is contained in:
@@ -1,21 +0,0 @@
|
||||
import { resolveMinConfirmations } from './resolveMinConfirmations';
|
||||
|
||||
const tiers = [
|
||||
{ upToTotalFiat: '25', minConfirmations: 0 },
|
||||
{ upToTotalFiat: '250', minConfirmations: 5 },
|
||||
{ minConfirmations: 10 }
|
||||
] as const;
|
||||
|
||||
describe('resolveMinConfirmations', () => {
|
||||
it('returns 0 for small orders (tx-detected tier)', () => {
|
||||
expect(resolveMinConfirmations(10, [...tiers])).toBe(0);
|
||||
});
|
||||
|
||||
it('returns the middle tier for medium orders', () => {
|
||||
expect(resolveMinConfirmations(100, [...tiers])).toBe(5);
|
||||
});
|
||||
|
||||
it('returns the catch-all tier for large orders', () => {
|
||||
expect(resolveMinConfirmations(500, [...tiers])).toBe(10);
|
||||
});
|
||||
});
|
||||
@@ -1,16 +0,0 @@
|
||||
import Decimal from 'decimal.js';
|
||||
import type { MoneroConfirmationTier } from '../../types/MoneroConfirmationTier';
|
||||
|
||||
export const resolveMinConfirmations = (totalFiat: number, tiers: MoneroConfirmationTier[]): number => {
|
||||
for (const tier of tiers) {
|
||||
if (tier.upToTotalFiat === undefined) {
|
||||
return tier.minConfirmations;
|
||||
}
|
||||
|
||||
if (new Decimal(totalFiat).lte(tier.upToTotalFiat)) {
|
||||
return tier.minConfirmations;
|
||||
}
|
||||
}
|
||||
|
||||
return tiers[tiers.length - 1].minConfirmations;
|
||||
};
|
||||
Reference in New Issue
Block a user