@sega-so/sega-sdk
Version:
An SDK for building applications on top of SEGA.
1 lines • 1.65 kB
Source Map (JSON)
{"version":3,"sources":["../../../../src/sega/cpmm/curve/fee.ts"],"sourcesContent":["import BN from \"bn.js\";\n\nexport const FEE_RATE_DENOMINATOR_VALUE = new BN(1_000_000);\n\nexport function ceilDiv(tokenAmount: BN, feeNumerator: BN, feeDenominator: BN): BN {\n return tokenAmount.mul(feeNumerator).add(feeDenominator).sub(new BN(1)).div(feeDenominator);\n}\n\nexport function floorDiv(tokenAmount: BN, feeNumerator: BN, feeDenominator: BN): BN {\n return tokenAmount.mul(feeNumerator).div(feeDenominator);\n}\n\nexport class CpmmFee {\n static tradingFee(amount: BN, tradeFeeRate: BN): BN {\n return ceilDiv(amount, tradeFeeRate, FEE_RATE_DENOMINATOR_VALUE);\n }\n static protocolFee(amount: BN, protocolFeeRate: BN): BN {\n return floorDiv(amount, protocolFeeRate, FEE_RATE_DENOMINATOR_VALUE);\n }\n static fundFee(amount: BN, fundFeeRate: BN): BN {\n return floorDiv(amount, fundFeeRate, FEE_RATE_DENOMINATOR_VALUE);\n }\n}\n"],"mappings":"AAAA,OAAOA,MAAQ,QAER,IAAMC,EAA6B,IAAID,EAAG,GAAS,EAEnD,SAASE,EAAQC,EAAiBC,EAAkBC,EAAwB,CACjF,OAAOF,EAAY,IAAIC,CAAY,EAAE,IAAIC,CAAc,EAAE,IAAI,IAAIL,EAAG,CAAC,CAAC,EAAE,IAAIK,CAAc,CAC5F,CAEO,SAASC,EAASH,EAAiBC,EAAkBC,EAAwB,CAClF,OAAOF,EAAY,IAAIC,CAAY,EAAE,IAAIC,CAAc,CACzD,CAEO,IAAME,EAAN,KAAc,CACnB,OAAO,WAAWC,EAAYC,EAAsB,CAClD,OAAOP,EAAQM,EAAQC,EAAcR,CAA0B,CACjE,CACA,OAAO,YAAYO,EAAYE,EAAyB,CACtD,OAAOJ,EAASE,EAAQE,EAAiBT,CAA0B,CACrE,CACA,OAAO,QAAQO,EAAYG,EAAqB,CAC9C,OAAOL,EAASE,EAAQG,EAAaV,CAA0B,CACjE,CACF","names":["BN","FEE_RATE_DENOMINATOR_VALUE","ceilDiv","tokenAmount","feeNumerator","feeDenominator","floorDiv","CpmmFee","amount","tradeFeeRate","protocolFeeRate","fundFeeRate"]}