@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.81 kB
JavaScript
import"../../utils/numerics/index.js";import{buildTradeOverrides as t,isETHAddress as e}from"../utils/index.js";import{Logger as r}from"../../common/logger/index.js";import{BigNumber as o}from"@ethersproject/bignumber";const a=new r("Composer.ts");class n{_contracts;constructor(t){this._contracts=t}tradeByTargetAmount(e,r,o,n,c,s){a.debug("tradeByTargetAmount called",arguments);const u=t(e,o,!0,c,s);return a.debug("tradeByTargetAmount overrides",u),this._contracts.carbonController.populateTransaction.tradeByTargetAmount(e,r,o,n,c,u)}tradeBySourceAmount(e,r,o,n,c,s){a.debug("tradeBySourceAmount called",arguments);const u=t(e,o,!1,-1,s);return a.debug("tradeBySourceAmount overrides",u),this._contracts.carbonController.populateTransaction.tradeBySourceAmount(e,r,o,n,c,u)}createStrategy(t,r,o,n,c){a.debug("createStrategy called",arguments);const s={...c};return e(t)?s.value=o.y:e(r)&&(s.value=n.y),a.debug("createStrategy overrides",s),this._contracts.carbonController.populateTransaction.createStrategy(t,r,[o,n],s)}batchCreateStrategies(t,r){a.debug("batchCreateStrategies called",arguments);const n={...r};let c=o.from(0);for(const r of t)e(r.token0)?c=c.add(r.order0.y):e(r.token1)&&(c=c.add(r.order1.y));return c.gt(0)&&(n.value=c),a.debug("batchCreateStrategies overrides",n),this._contracts.carbonBatcher.populateTransaction.batchCreate(t.map((t=>({tokens:[t.token0,t.token1],orders:[t.order0,t.order1]}))),n)}deleteStrategy(t){return this._contracts.carbonController.populateTransaction.deleteStrategy(t)}updateStrategy(t,r,o,n,c,s){const u={...s};return e(r)&&c[0].y.gt(n[0].y)?u.value=c[0].y.sub(n[0].y):e(o)&&c[1].y.gt(n[1].y)&&(u.value=c[1].y.sub(n[1].y)),a.debug("updateStrategy overrides",u),this._contracts.carbonController.populateTransaction.updateStrategy(t,n,c,u)}}export{n as default};