serum-js/src/fees.ts

49 lines
1.2 KiB
TypeScript

import { PublicKey } from '@solana/web3.js';
import { getLayoutVersion } from './tokens_and_markets';
export function supportsSrmFeeDiscounts(programId: PublicKey) {
return getLayoutVersion(programId) > 1;
}
export function getFeeRates(feeTier: number): { taker: number; maker: number } {
if (feeTier === 1) {
// SRM2
return { taker: 0.002, maker: -0.0003 };
} else if (feeTier === 2) {
// SRM3
return { taker: 0.0018, maker: -0.0003 };
} else if (feeTier === 3) {
// SRM4
return { taker: 0.0016, maker: -0.0003 };
} else if (feeTier === 4) {
// SRM5
return { taker: 0.0014, maker: -0.0003 };
} else if (feeTier === 5) {
// SRM6
return { taker: 0.0012, maker: -0.0003 };
} else if (feeTier === 6) {
// MSRM
return { taker: 0.001, maker: -0.0005 };
}
// Base
return { taker: 0.0022, maker: -0.0003 };
}
export function getFeeTier(msrmBalance: number, srmBalance: number): number {
if (msrmBalance >= 1) {
return 6;
} else if (srmBalance >= 1_000_000) {
return 5;
} else if (srmBalance >= 100_000) {
return 4;
} else if (srmBalance >= 10_000) {
return 3;
} else if (srmBalance >= 1_000) {
return 2;
} else if (srmBalance >= 100) {
return 1;
} else {
return 0;
}
}