@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.07 kB
JavaScript
;var e=require("./numerics-WtCLBFmj.cjs"),r=require("./encoders-Ff4HNvrj.cjs");const t=e.Decimal.ln("1.0001"),i=1;function n(e,r){const i=e.ln().div(t);return r?i.ceil().toNumber():i.floor().toNumber()}function o(t){return t.A.isZero()?e.MAX_UINT256.toString():t.z.div(r.decodeFloat(t.A)).toString()}function c(t){const i=r.decodeOrder(t);return new e.Decimal(i.marginalRate).sqrt().mul(new e.Decimal(2).pow(96)).floor().toString()}function s(t,i){const s=r.decodeOrder(t),a=new e.Decimal(s.lowestRate),u=new e.Decimal(s.highestRate);if(i)return{tickUpper:n(u,!0),tickLower:n(a,!1),liquidity:o(t),sqrtPriceX96:c(t)};const l=new e.Decimal(1).div(u);return{tickUpper:n(new e.Decimal(1).div(a),!0),tickLower:n(l,!1),liquidity:o(t),sqrtPriceX96:c(t)}}function a(e){var r;return{pool:(r=e.token0,{xAxisToken:e.token1,yAxisToken:r,tickSpacing:i}),sellOrder:s(e.order0,!0),buyOrder:s(e.order1,!1)}}function u(e){return e.map(a)}var l=Object.freeze({__proto__:null,batchCastToUniV3:u,castToUniV3:a});exports.batchCastToUniV3=u,exports.castToUniV3=a,exports.index=l;