@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 4.05 kB
JavaScript
var R=Object.create;var l=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var a=(t,r)=>{for(var o in r)l(t,o,{get:r[o],enumerable:!0})},A=(t,r,o,u)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of m(r))!y.call(t,n)&&n!==o&&l(t,n,{get:()=>r[n],enumerable:!(u=X(r,n))||u.enumerable});return t};var B=(t,r,o)=>(o=t!=null?R(O(t)):{},A(r||!t||!t.__esModule?l(o,"default",{value:t,enumerable:!0}):o,t)),M=t=>A(l({},"__esModule",{value:!0}),t);var F={};a(F,{PositionUtils:()=>G});module.exports=M(F);var N=B(require("bn.js"));var E=B(require("bn.js")),k=B(require("decimal.js"));var e=B(require("bn.js")),h=new e.default(1).shln(64);var _=new e.default(1).shln(128),Z=new e.default(1).shln(64).subn(1),v=new e.default(1).shln(128).subn(1);var C=new e.default("4295048016"),q=new e.default("79226673521066979257578248091"),Q=new e.default("59543866431248"),K=new e.default("184467440737095516"),V=new e.default("15793534762490258745");var Y=new e.default("18446743708227953217"),z=[{bit:0,factor:new e.default("fffcb933bd6fb800",16)},{bit:1,factor:new e.default("fff97272373d4000",16)},{bit:2,factor:new e.default("fff2e50f5f657000",16)},{bit:3,factor:new e.default("ffe5caca7e10f000",16)},{bit:4,factor:new e.default("ffcb9843d60f7000",16)},{bit:5,factor:new e.default("ff973b41fa98e800",16)},{bit:6,factor:new e.default("ff2ea16466c9b000",16)},{bit:7,factor:new e.default("fe5dee046a9a3800",16)},{bit:8,factor:new e.default("fcbe86c7900bb000",16)},{bit:9,factor:new e.default("f987a7253ac65800",16)},{bit:10,factor:new e.default("f3392b0822bb6000",16)},{bit:11,factor:new e.default("e7159475a2caf000",16)},{bit:12,factor:new e.default("d097f3bdfd2f2000",16)},{bit:13,factor:new e.default("a9f746462d9f8000",16)},{bit:14,factor:new e.default("70d869a156f31c00",16)},{bit:15,factor:new e.default("31be135f97ed3200",16)},{bit:16,factor:new e.default("9aa508b5b85a500",16)},{bit:17,factor:new e.default("5d6af8dedc582c",16)},{bit:18,factor:new e.default("2216e584f5fa",16)}];var D=new e.default(0),g=new e.default(1),W=new e.default(-1);var $=new e.default("18446744073700000000");function b(t,r,o){if(o.isZero())throw new Error("Division by zero");return t.mul(r).div(o)}var j=new E.default(1).shln(256).subn(1);function s(t,r){return t.add(_).sub(r).mod(_)}var G=class{static getfeeGrowthInside(r,o,u){let n=new N.default(0),c=new N.default(0);r.tickCurrent>=o.tick?(n=o.feeGrowthOutsideX64A,c=o.feeGrowthOutsideX64B):(n=s(r.feeGrowthGlobalX64A,o.feeGrowthOutsideX64A),c=s(r.feeGrowthGlobalX64B,o.feeGrowthOutsideX64B));let i=new N.default(0),f=new N.default(0);r.tickCurrent<u.tick?(i=u.feeGrowthOutsideX64A,f=u.feeGrowthOutsideX64B):(i=s(r.feeGrowthGlobalX64A,u.feeGrowthOutsideX64A),f=s(r.feeGrowthGlobalX64B,u.feeGrowthOutsideX64B));let w=s(s(r.feeGrowthGlobalX64A,n),i),d=s(s(r.feeGrowthGlobalX64B,c),f);return{feeGrowthInsideX64A:w,feeGrowthInsideBX64:d}}static GetPositionFees(r,o,u,n){let{feeGrowthInsideX64A:c,feeGrowthInsideBX64:i}=this.getfeeGrowthInside(r,u,n),f=b(s(c,o.feeGrowthInsideLastX64A),o.liquidity,h),w=o.tokenFeesOwedA.add(f),d=b(s(i,o.feeGrowthInsideLastX64B),o.liquidity,h),p=o.tokenFeesOwedB.add(d);return{tokenFeeAmountA:w,tokenFeeAmountB:p}}static GetPositionRewards(r,o,u,n){let c=[],i=this.getRewardGrowthInside(r.tickCurrent,u,n,r.rewardInfos);for(let f=0;f<i.length;f++){let w=i[f],d=o.rewardInfos[f],p=s(w,d.growthInsideLastX64),I=b(p,o.liquidity,h),T=d.rewardAmountOwed.add(I);c.push(T)}return c}static getRewardGrowthInside(r,o,u,n){let c=[];for(let i=0;i<n.length;i++){let f=new N.default(0);o.liquidityGross.eqn(0)?f=n[i].growthGlobalX64:r<o.tick?f=s(n[i].growthGlobalX64,o.rewardGrowthsOutsideX64[i]):f=o.rewardGrowthsOutsideX64[i];let w=new N.default(0);u.liquidityGross.eqn(0)||(r<u.tick?w=u.rewardGrowthsOutsideX64[i]:w=s(n[i].growthGlobalX64,u.rewardGrowthsOutsideX64[i])),c.push(s(s(n[i].growthGlobalX64,f),w))}return c}};0&&(module.exports={PositionUtils});
//# sourceMappingURL=position.js.map