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