@thespidercode/openbook-swap
Version:
Ready-to-use swap tool using Openbook DEX
62 lines (61 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getFeeTier = exports.getFeeRates = exports.supportsSrmFeeDiscounts = void 0;
const tokens_and_markets_1 = require("./tokens_and_markets");
function supportsSrmFeeDiscounts(programId) {
return (0, tokens_and_markets_1.getLayoutVersion)(programId) > 1;
}
exports.supportsSrmFeeDiscounts = supportsSrmFeeDiscounts;
function getFeeRates(feeTier) {
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 };
}
exports.getFeeRates = getFeeRates;
function getFeeTier(msrmBalance, srmBalance) {
if (msrmBalance >= 1) {
return 6;
}
else if (srmBalance >= 1000000) {
return 5;
}
else if (srmBalance >= 100000) {
return 4;
}
else if (srmBalance >= 10000) {
return 3;
}
else if (srmBalance >= 1000) {
return 2;
}
else if (srmBalance >= 100) {
return 1;
}
else {
return 0;
}
}
exports.getFeeTier = getFeeTier;