UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 3.83 kB
var O=Object.create;var l=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var I=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var D=(r,e)=>{for(var n in e)l(r,n,{get:e[n],enumerable:!0})},x=(r,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of h(e))!g.call(r,i)&&i!==n&&l(r,i,{get:()=>e[i],enumerable:!(o=T(e,i))||o.enumerable});return r};var b=(r,e,n)=>(n=r!=null?O(I(r)):{},x(e||!r||!r.__esModule?l(n,"default",{value:r,enumerable:!0}):n,r)),M=r=>x(l({},"__esModule",{value:!0}),r);var F={};D(F,{SqrtPriceMath:()=>E});module.exports=M(F);var d=b(require("bn.js")),a=b(require("decimal.js"));var t=b(require("bn.js")),w=new t.default(1).shln(64),_=64,v=new t.default(1).shln(128),S=new t.default(1).shln(64).subn(1),Z=new t.default(1).shln(128).subn(1);var k=new t.default("4295048016"),Q=new t.default("79226673521066979257578248091"),G=new t.default("59543866431248"),L=new t.default("184467440737095516"),y=new t.default("15793534762490258745");var U=new t.default("18446743708227953217"),K=[{bit:0,factor:new t.default("fffcb933bd6fb800",16)},{bit:1,factor:new t.default("fff97272373d4000",16)},{bit:2,factor:new t.default("fff2e50f5f657000",16)},{bit:3,factor:new t.default("ffe5caca7e10f000",16)},{bit:4,factor:new t.default("ffcb9843d60f7000",16)},{bit:5,factor:new t.default("ff973b41fa98e800",16)},{bit:6,factor:new t.default("ff2ea16466c9b000",16)},{bit:7,factor:new t.default("fe5dee046a9a3800",16)},{bit:8,factor:new t.default("fcbe86c7900bb000",16)},{bit:9,factor:new t.default("f987a7253ac65800",16)},{bit:10,factor:new t.default("f3392b0822bb6000",16)},{bit:11,factor:new t.default("e7159475a2caf000",16)},{bit:12,factor:new t.default("d097f3bdfd2f2000",16)},{bit:13,factor:new t.default("a9f746462d9f8000",16)},{bit:14,factor:new t.default("70d869a156f31c00",16)},{bit:15,factor:new t.default("31be135f97ed3200",16)},{bit:16,factor:new t.default("9aa508b5b85a500",16)},{bit:17,factor:new t.default("5d6af8dedc582c",16)},{bit:18,factor:new t.default("2216e584f5fa",16)}];var f=new t.default(0),s=new t.default(1),V=new t.default(-1);var Y=new t.default("18446744073700000000");function p(r,e,n){if(n.isZero())throw new Error("Division by zero");return r.mul(e).div(n)}function B(r,e,n){if(n.isZero())throw new Error("Division by zero");let o=r.mul(e),i=o.div(n);return o.mod(n).isZero()?i:i.addn(1)}function R(r,e){return r.div(e).add(r.mod(e).isZero()?f:s)}var $=new d.default(1).shln(256).subn(1);var E=class{static getNextSqrtPriceFromAmountARoundingUp(e,n,o,i){if(o.isZero())return e;let u=n.shln(_);if(i){let N=o.mul(e),c=u.add(N);if(c.gte(u))return B(u,e,c);let A=p(u,s,e);return B(u,s,A.add(o))}else{let N=o.mul(e);if(u.lte(N))throw new Error("Insufficient liquidity for token0 removal");let c=u.sub(N);return B(u,e,c)}}static getNextSqrtPriceFromAmountBRoundingDown(e,n,o,i){if(o.isZero())return e;if(i){let u=o.shln(_).div(n);return e.add(u)}else{let u=R(o.shln(_),n);return e.sub(u)}}static getNextSqrtPriceFromInput(e,n,o,i){if(!e.gt(f))throw Error("sqrtPriceX64.gt(BN_ZERO)");if(!n.gt(f))throw Error("liquidity.gt(BN_ZERO)");return i?this.getNextSqrtPriceFromAmountARoundingUp(e,n,o,!0):this.getNextSqrtPriceFromAmountBRoundingDown(e,n,o,!0)}static getNextSqrtPriceFromOutput(e,n,o,i){if(!e.gt(f))throw Error("sqrtPriceX64.gt(BN_ZERO)");if(!n.gt(f))throw Error("liquidity.gt(BN_ZERO)");return i?this.getNextSqrtPriceFromAmountBRoundingDown(e,n,o,!1):this.getNextSqrtPriceFromAmountARoundingUp(e,n,o,!1)}static getAmountADeltaUnsigned(e,n,o,i){e.gt(n)&&([e,n]=[n,e]);let u=n.sub(e),N=o.mul(u).shln(64),c=e.mul(n);return i?B(N,s,c):p(N,s,c)}static getAmountBDeltaUnsigned(e,n,o,i){e.gt(n)&&([e,n]=[n,e]);let u=n.sub(e);return i?B(o,u,w):p(o,u,w)}};0&&(module.exports={SqrtPriceMath}); //# sourceMappingURL=sqrtPriceMath.js.map