goosefx-amm-sdk
Version:
SDK for the GooseFx AMM
2 lines • 2.11 kB
JavaScript
;var g=Object.create;var l=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty;var R=(n,e)=>{for(var t in e)l(n,t,{get:e[t],enumerable:!0})},S=(n,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of F(e))!P.call(n,r)&&r!==t&&l(n,r,{get:()=>e[r],enumerable:!(o=T(e,r))||o.enumerable});return n};var m=(n,e,t)=>(t=n!=null?g(O(n)):{},S(e||!n||!n.__esModule?l(t,"default",{value:n,enumerable:!0}):t,n)),h=n=>S(l({},"__esModule",{value:!0}),n);var A={};R(A,{ConstantProductCurve:()=>w});module.exports=h(A);var v=m(require("bn.js"));var x=m(require("bn.js"));var c=m(require("bn.js")),k=m(require("decimal.js-light"));var B=m(require("bn.js")),u=new B.default(0);function b(n,e){if(e.isZero())throw Error("divisor is zero");return n.mod(e)}function p(n,e){if(e.isZero())throw Error("rhs is zero");let t=n.div(e);return t.isZero()?[t,e]:n.sub(t.mul(e)).isZero()?[t,e]:[t.add(new B.default(1)),e]}var _=new c.default(100),q=new c.default(1e6);var Z=new c.default(3600),I=new c.default(1e5),W=new c.default(3e5);var w=class{static swapWithoutFees(e,t,o){let r=t.mul(o),a=t.add(e),[i,s]=p(r,a),f=s.sub(t),d=o.sub(i);if(d.isZero())throw Error("destinationAmountSwapped is zero");return{sourceAmountSwapped:f,destinationAmountSwapped:d}}static swapWithoutFeesBaseOut(e,t,o){if(e.isZero())throw new Error("destinationAmount is zero");if(e.gt(o))throw new Error("destinationAmount exceeds available destination reserve");let r=t.mul(e),a=o.sub(e);if(a.isZero())throw new Error("denominator is zero");let[i]=p(r,a);return{sourceAmountSwapped:i,destinationAmountSwapped:e}}static lpTokensToTradingTokens(e,t,o,r,a){let i=e.mul(o).div(t),s=e.mul(r).div(t);if(a===0)return{tokenAmount0:i,tokenAmount1:s};if(a===1)return b(e.mul(o),t).gt(u)&&i.gt(u)&&(i=i.add(new v.default(1))),b(e.mul(r),t).gt(u)&&s.gt(u)&&(s=s.add(new v.default(1))),{tokenAmount0:i,tokenAmount1:s};throw Error("roundDirection value error")}};0&&(module.exports={ConstantProductCurve});
//# sourceMappingURL=constantProduct.js.map