@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) • 942 B
JavaScript
import{Decimal as r,MAX_UINT256 as t}from"../../../utils/numerics/index.js";import{decodeOrder as n,decodeFloat as e}from"../../../utils/encoders/index.js";const i=r.ln("1.0001"),o=1;function c(r,t){const n=r.ln().div(i);return t?n.ceil().toNumber():n.floor().toNumber()}function u(r){return r.A.isZero()?t.toString():r.z.div(e(r.A)).toString()}function s(t){const e=n(t);return new r(e.marginalRate).sqrt().mul(new r(2).pow(96)).floor().toString()}function l(t,e){const i=n(t),o=new r(i.lowestRate),l=new r(i.highestRate);if(e)return{tickUpper:c(l,!0),tickLower:c(o,!1),liquidity:u(t),sqrtPriceX96:s(t)};const d=new r(1).div(l);return{tickUpper:c(new r(1).div(o),!0),tickLower:c(d,!1),liquidity:u(t),sqrtPriceX96:s(t)}}function d(r){var t;return{pool:(t=r.token0,{xAxisToken:r.token1,yAxisToken:t,tickSpacing:o}),sellOrder:l(r.order0,!0),buyOrder:l(r.order1,!1)}}function f(r){return r.map(d)}export{f as batchCastToUniV3,d as castToUniV3};