@bancor/carbon-sdk
Version:
The SDK is a READ-ONLY tool, intended to facilitate working with Carbon contracts. It's a convenient wrapper around our matching algorithm, allowing programs and users get a ready to use transaction data that will allow them to manage strategies and fulfi
2 lines (1 loc) • 1.24 kB
JavaScript
;var e=require("./numerics-WtCLBFmj.cjs"),t=require("./encoders-DGguE7eh.cjs"),r=require("@ethersproject/bignumber");const i=e.Decimal.ln("1.0001"),n=1;function o(e,t){const r=e.ln().div(i);return t?r.ceil().toNumber():r.floor().toNumber()}function c(r){return r.A.isZero()?(1/0).toString():r.z.mul(e.ONE).div(t.decodeFloat(r.A)).toString()}function s(t,r){const i=t.sqrt().mul(new e.Decimal(2).pow(96));return r?i.ceil().toString():i.floor().toString()}function u(r,i){const n=t.decodeOrder(r),u=new e.Decimal(n.lowestRate),l=new e.Decimal(n.highestRate),a=new e.Decimal(n.marginalRate);if(!i)return{tickUpper:o(l,!0),tickLower:o(u,!1),liquidity:c(r),sqrtPriceX96:s(a,!1)};const m=new e.Decimal(1).div(l),d=new e.Decimal(1).div(u),k=new e.Decimal(1).div(a);return{tickUpper:o(d,!0),tickLower:o(m,!1),liquidity:c(r),sqrtPriceX96:s(k,!0)}}function l(e){const t=r.BigNumber.from(e.token0),i=r.BigNumber.from(e.token1),o=t.lt(i);return{pool:{xAxisToken:o?e.token0:e.token1,yAxisToken:o?e.token1:e.token0,tickSpacing:n},sellOrder:u(e.order0,o),buyOrder:u(e.order1,!o)}}function a(e){return e.map(l)}var m=Object.freeze({__proto__:null,batchCastToUniV3:a,castToUniV3:l});exports.batchCastToUniV3=a,exports.castToUniV3=l,exports.index=m;