UNPKG

@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) 651 B
import{Decimal as n}from"../../utils/numerics/index.js";function e(e){return e.reduce(((e,i)=>n.min(e,i.lowestRate)),new n(1/0))}function i(e){return e.reduce(((e,i)=>n.max(e,i.marginalRate)),new n(-1/0))}function t(e,i){const t=e.map((e=>{const i=new n(e.lowestRate).sqrt(),t=new n(e.marginalRate).sqrt();return{liq:new n(e.liquidity),min:i,mid:t,midMinusMin:t.sub(i)}}));return i.map((e=>{const i=e.sqrt();return t.reduce(((e,t)=>e.add(function(e,i){if(i.lte(e.min))return e.liq;if(i.gte(e.mid))return new n(0);return e.liq.sub(e.liq.mul(i.sub(e.min)).div(e.midMinusMin))}(t,i))),new n(0))}))}export{t as getDepths,i as getMaxRate,e as getMinRate};