UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 191 kB
var Er=Object.defineProperty,Fr=Object.defineProperties;var _r=Object.getOwnPropertyDescriptors;var ln=Object.getOwnPropertySymbols;var Ai=Object.prototype.hasOwnProperty,xi=Object.prototype.propertyIsEnumerable;var Ti=(i,e,t)=>e in i?Er(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,v=(i,e)=>{for(var t in e||(e={}))Ai.call(e,t)&&Ti(i,t,e[t]);if(ln)for(var t of ln(e))xi.call(e,t)&&Ti(i,t,e[t]);return i},j=(i,e)=>Fr(i,_r(e));var It=(i,e)=>{var t={};for(var n in i)Ai.call(i,n)&&e.indexOf(n)<0&&(t[n]=i[n]);if(i!=null&&ln)for(var n of ln(i))e.indexOf(n)<0&&xi.call(i,n)&&(t[n]=i[n]);return t};import{PublicKey as R}from"@solana/web3.js";import _e from"bn.js";var St=9e15,ft=1e9,En="0123456789abcdef",mn="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",fn="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Fn={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-St,maxE:St,crypto:!1},Ci,nt,X=!0,gn="[DecimalError] ",mt=gn+"Invalid argument: ",Ki=gn+"Precision limit exceeded",Ni=gn+"crypto unavailable",Li="[object Decimal]",Ne=Math.floor,Pe=Math.pow,vr=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Dr=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Wr=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Ri=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Xe=1e7,V=7,qr=9007199254740991,Vr=mn.length-1,_n=fn.length-1,I={toStringTag:Li};I.absoluteValue=I.abs=function(){var i=new this.constructor(this);return i.s<0&&(i.s=1),D(i)};I.ceil=function(){return D(new this.constructor(this),this.e+1,2)};I.clampedTo=I.clamp=function(i,e){var t,n=this,r=n.constructor;if(i=new r(i),e=new r(e),!i.s||!e.s)return new r(NaN);if(i.gt(e))throw Error(mt+e);return t=n.cmp(i),t<0?i:n.cmp(e)>0?e:new r(n)};I.comparedTo=I.cmp=function(i){var e,t,n,r,o=this,s=o.d,a=(i=new o.constructor(i)).d,c=o.s,u=i.s;if(!s||!a)return!c||!u?NaN:c!==u?c:s===a?0:!s^c<0?1:-1;if(!s[0]||!a[0])return s[0]?c:a[0]?-u:0;if(c!==u)return c;if(o.e!==i.e)return o.e>i.e^c<0?1:-1;for(n=s.length,r=a.length,e=0,t=n<r?n:r;e<t;++e)if(s[e]!==a[e])return s[e]>a[e]^c<0?1:-1;return n===r?0:n>r^c<0?1:-1};I.cosine=I.cos=function(){var i,e,t=this,n=t.constructor;return t.d?t.d[0]?(i=n.precision,e=n.rounding,n.precision=i+Math.max(t.e,t.sd())+V,n.rounding=1,t=Ur(n,_i(n,t)),n.precision=i,n.rounding=e,D(nt==2||nt==3?t.neg():t,i,e,!0)):new n(1):new n(NaN)};I.cubeRoot=I.cbrt=function(){var i,e,t,n,r,o,s,a,c,u,l=this,d=l.constructor;if(!l.isFinite()||l.isZero())return new d(l);for(X=!1,o=l.s*Pe(l.s*l,1/3),!o||Math.abs(o)==1/0?(t=Be(l.d),i=l.e,(o=(i-t.length+1)%3)&&(t+=o==1||o==-2?"0":"00"),o=Pe(t,1/3),i=Ne((i+1)/3)-(i%3==(i<0?-1:2)),o==1/0?t="5e"+i:(t=o.toExponential(),t=t.slice(0,t.indexOf("e")+1)+i),n=new d(t),n.s=l.s):n=new d(o.toString()),s=(i=d.precision)+3;;)if(a=n,c=a.times(a).times(a),u=c.plus(l),n=oe(u.plus(l).times(a),u.plus(c),s+2,1),Be(a.d).slice(0,s)===(t=Be(n.d)).slice(0,s))if(t=t.slice(s-3,s+1),t=="9999"||!r&&t=="4999"){if(!r&&(D(a,i+1,0),a.times(a).times(a).eq(l))){n=a;break}s+=4,r=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(D(n,i+1,1),e=!n.times(n).times(n).eq(l));break}return X=!0,D(n,i,d.rounding,e)};I.decimalPlaces=I.dp=function(){var i,e=this.d,t=NaN;if(e){if(i=e.length-1,t=(i-Ne(this.e/V))*V,i=e[i],i)for(;i%10==0;i/=10)t--;t<0&&(t=0)}return t};I.dividedBy=I.div=function(i){return oe(this,new this.constructor(i))};I.dividedToIntegerBy=I.divToInt=function(i){var e=this,t=e.constructor;return D(oe(e,new t(i),0,1,1),t.precision,t.rounding)};I.equals=I.eq=function(i){return this.cmp(i)===0};I.floor=function(){return D(new this.constructor(this),this.e+1,3)};I.greaterThan=I.gt=function(i){return this.cmp(i)>0};I.greaterThanOrEqualTo=I.gte=function(i){var e=this.cmp(i);return e==1||e===0};I.hyperbolicCosine=I.cosh=function(){var i,e,t,n,r,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;t=s.precision,n=s.rounding,s.precision=t+Math.max(o.e,o.sd())+4,s.rounding=1,r=o.d.length,r<32?(i=Math.ceil(r/3),e=(1/yn(4,i)).toString()):(i=16,e="2.3283064365386962890625e-10"),o=Ct(s,1,o.times(e),new s(1),!0);for(var c,u=i,l=new s(8);u--;)c=o.times(o),o=a.minus(c.times(l.minus(c.times(l))));return D(o,s.precision=t,s.rounding=n,!0)};I.hyperbolicSine=I.sinh=function(){var i,e,t,n,r=this,o=r.constructor;if(!r.isFinite()||r.isZero())return new o(r);if(e=o.precision,t=o.rounding,o.precision=e+Math.max(r.e,r.sd())+4,o.rounding=1,n=r.d.length,n<3)r=Ct(o,2,r,r,!0);else{i=1.4*Math.sqrt(n),i=i>16?16:i|0,r=r.times(1/yn(5,i)),r=Ct(o,2,r,r,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);i--;)s=r.times(r),r=r.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=e,o.rounding=t,D(r,e,t,!0)};I.hyperbolicTangent=I.tanh=function(){var i,e,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(i=n.precision,e=n.rounding,n.precision=i+7,n.rounding=1,oe(t.sinh(),t.cosh(),n.precision=i,n.rounding=e)):new n(t.s)};I.inverseCosine=I.acos=function(){var i,e=this,t=e.constructor,n=e.abs().cmp(1),r=t.precision,o=t.rounding;return n!==-1?n===0?e.isNeg()?Ge(t,r,o):new t(0):new t(NaN):e.isZero()?Ge(t,r+4,o).times(.5):(t.precision=r+6,t.rounding=1,e=e.asin(),i=Ge(t,r+4,o).times(.5),t.precision=r,t.rounding=o,i.minus(e))};I.inverseHyperbolicCosine=I.acosh=function(){var i,e,t=this,n=t.constructor;return t.lte(1)?new n(t.eq(1)?0:NaN):t.isFinite()?(i=n.precision,e=n.rounding,n.precision=i+Math.max(Math.abs(t.e),t.sd())+4,n.rounding=1,X=!1,t=t.times(t).minus(1).sqrt().plus(t),X=!0,n.precision=i,n.rounding=e,t.ln()):new n(t)};I.inverseHyperbolicSine=I.asinh=function(){var i,e,t=this,n=t.constructor;return!t.isFinite()||t.isZero()?new n(t):(i=n.precision,e=n.rounding,n.precision=i+2*Math.max(Math.abs(t.e),t.sd())+6,n.rounding=1,X=!1,t=t.times(t).plus(1).sqrt().plus(t),X=!0,n.precision=i,n.rounding=e,t.ln())};I.inverseHyperbolicTangent=I.atanh=function(){var i,e,t,n,r=this,o=r.constructor;return r.isFinite()?r.e>=0?new o(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(i=o.precision,e=o.rounding,n=r.sd(),Math.max(n,i)<2*-r.e-1?D(new o(r),i,e,!0):(o.precision=t=n-r.e,r=oe(r.plus(1),new o(1).minus(r),t+i,1),o.precision=i+4,o.rounding=1,r=r.ln(),o.precision=i,o.rounding=e,r.times(.5))):new o(NaN)};I.inverseSine=I.asin=function(){var i,e,t,n,r=this,o=r.constructor;return r.isZero()?new o(r):(e=r.abs().cmp(1),t=o.precision,n=o.rounding,e!==-1?e===0?(i=Ge(o,t+4,n).times(.5),i.s=r.s,i):new o(NaN):(o.precision=t+6,o.rounding=1,r=r.div(new o(1).minus(r.times(r)).sqrt().plus(1)).atan(),o.precision=t,o.rounding=n,r.times(2)))};I.inverseTangent=I.atan=function(){var i,e,t,n,r,o,s,a,c,u=this,l=u.constructor,d=l.precision,f=l.rounding;if(u.isFinite()){if(u.isZero())return new l(u);if(u.abs().eq(1)&&d+4<=_n)return s=Ge(l,d+4,f).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(d+4<=_n)return s=Ge(l,d+4,f).times(.5),s.s=u.s,s}for(l.precision=a=d+10,l.rounding=1,t=Math.min(28,a/V+2|0),i=t;i;--i)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(X=!1,e=Math.ceil(a/V),n=1,c=u.times(u),s=new l(u),r=u;i!==-1;)if(r=r.times(c),o=s.minus(r.div(n+=2)),r=r.times(c),s=o.plus(r.div(n+=2)),s.d[e]!==void 0)for(i=e;s.d[i]===o.d[i]&&i--;);return t&&(s=s.times(2<<t-1)),X=!0,D(s,l.precision=d,l.rounding=f,!0)};I.isFinite=function(){return!!this.d};I.isInteger=I.isInt=function(){return!!this.d&&Ne(this.e/V)>this.d.length-2};I.isNaN=function(){return!this.s};I.isNegative=I.isNeg=function(){return this.s<0};I.isPositive=I.isPos=function(){return this.s>0};I.isZero=function(){return!!this.d&&this.d[0]===0};I.lessThan=I.lt=function(i){return this.cmp(i)<0};I.lessThanOrEqualTo=I.lte=function(i){return this.cmp(i)<1};I.logarithm=I.log=function(i){var e,t,n,r,o,s,a,c,u=this,l=u.constructor,d=l.precision,f=l.rounding,m=5;if(i==null)i=new l(10),e=!0;else{if(i=new l(i),t=i.d,i.s<0||!t||!t[0]||i.eq(1))return new l(NaN);e=i.eq(10)}if(t=u.d,u.s<0||!t||!t[0]||u.eq(1))return new l(t&&!t[0]?-1/0:u.s!=1?NaN:t?0:1/0);if(e)if(t.length>1)o=!0;else{for(r=t[0];r%10===0;)r/=10;o=r!==1}if(X=!1,a=d+m,s=dt(u,a),n=e?pn(l,a+10):dt(i,a),c=oe(s,n,a,1),vt(c.d,r=d,f))do if(a+=10,s=dt(u,a),n=e?pn(l,a+10):dt(i,a),c=oe(s,n,a,1),!o){+Be(c.d).slice(r+1,r+15)+1==1e14&&(c=D(c,d+1,0));break}while(vt(c.d,r+=10,f));return X=!0,D(c,d,f)};I.minus=I.sub=function(i){var e,t,n,r,o,s,a,c,u,l,d,f,m=this,p=m.constructor;if(i=new p(i),!m.d||!i.d)return!m.s||!i.s?i=new p(NaN):m.d?i.s=-i.s:i=new p(i.d||m.s!==i.s?m:NaN),i;if(m.s!=i.s)return i.s=-i.s,m.plus(i);if(u=m.d,f=i.d,a=p.precision,c=p.rounding,!u[0]||!f[0]){if(f[0])i.s=-i.s;else if(u[0])i=new p(m);else return new p(c===3?-0:0);return X?D(i,a,c):i}if(t=Ne(i.e/V),l=Ne(m.e/V),u=u.slice(),o=l-t,o){for(d=o<0,d?(e=u,o=-o,s=f.length):(e=f,t=l,s=u.length),n=Math.max(Math.ceil(a/V),s)+2,o>n&&(o=n,e.length=1),e.reverse(),n=o;n--;)e.push(0);e.reverse()}else{for(n=u.length,s=f.length,d=n<s,d&&(s=n),n=0;n<s;n++)if(u[n]!=f[n]){d=u[n]<f[n];break}o=0}for(d&&(e=u,u=f,f=e,i.s=-i.s),s=u.length,n=f.length-s;n>0;--n)u[s++]=0;for(n=f.length;n>o;){if(u[--n]<f[n]){for(r=n;r&&u[--r]===0;)u[r]=Xe-1;--u[r],u[n]+=Xe}u[n]-=f[n]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--t;return u[0]?(i.d=u,i.e=bn(u,t),X?D(i,a,c):i):new p(c===3?-0:0)};I.modulo=I.mod=function(i){var e,t=this,n=t.constructor;return i=new n(i),!t.d||!i.s||i.d&&!i.d[0]?new n(NaN):!i.d||t.d&&!t.d[0]?D(new n(t),n.precision,n.rounding):(X=!1,n.modulo==9?(e=oe(t,i.abs(),0,3,1),e.s*=i.s):e=oe(t,i,0,n.modulo,1),e=e.times(i),X=!0,t.minus(e))};I.naturalExponential=I.exp=function(){return vn(this)};I.naturalLogarithm=I.ln=function(){return dt(this)};I.negated=I.neg=function(){var i=new this.constructor(this);return i.s=-i.s,D(i)};I.plus=I.add=function(i){var e,t,n,r,o,s,a,c,u,l,d=this,f=d.constructor;if(i=new f(i),!d.d||!i.d)return!d.s||!i.s?i=new f(NaN):d.d||(i=new f(i.d||d.s===i.s?d:NaN)),i;if(d.s!=i.s)return i.s=-i.s,d.minus(i);if(u=d.d,l=i.d,a=f.precision,c=f.rounding,!u[0]||!l[0])return l[0]||(i=new f(d)),X?D(i,a,c):i;if(o=Ne(d.e/V),n=Ne(i.e/V),u=u.slice(),r=o-n,r){for(r<0?(t=u,r=-r,s=l.length):(t=l,n=o,s=u.length),o=Math.ceil(a/V),s=o>s?o+1:s+1,r>s&&(r=s,t.length=1),t.reverse();r--;)t.push(0);t.reverse()}for(s=u.length,r=l.length,s-r<0&&(r=s,t=l,l=u,u=t),e=0;r;)e=(u[--r]=u[r]+l[r]+e)/Xe|0,u[r]%=Xe;for(e&&(u.unshift(e),++n),s=u.length;u[--s]==0;)u.pop();return i.d=u,i.e=bn(u,n),X?D(i,a,c):i};I.precision=I.sd=function(i){var e,t=this;if(i!==void 0&&i!==!!i&&i!==1&&i!==0)throw Error(mt+i);return t.d?(e=Mi(t.d),i&&t.e+1>e&&(e=t.e+1)):e=NaN,e};I.round=function(){var i=this,e=i.constructor;return D(new e(i),i.e+1,e.rounding)};I.sine=I.sin=function(){var i,e,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(i=n.precision,e=n.rounding,n.precision=i+Math.max(t.e,t.sd())+V,n.rounding=1,t=Xr(n,_i(n,t)),n.precision=i,n.rounding=e,D(nt>2?t.neg():t,i,e,!0)):new n(NaN)};I.squareRoot=I.sqrt=function(){var i,e,t,n,r,o,s=this,a=s.d,c=s.e,u=s.s,l=s.constructor;if(u!==1||!a||!a[0])return new l(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(X=!1,u=Math.sqrt(+s),u==0||u==1/0?(e=Be(a),(e.length+c)%2==0&&(e+="0"),u=Math.sqrt(e),c=Ne((c+1)/2)-(c<0||c%2),u==1/0?e="5e"+c:(e=u.toExponential(),e=e.slice(0,e.indexOf("e")+1)+c),n=new l(e)):n=new l(u.toString()),t=(c=l.precision)+3;;)if(o=n,n=o.plus(oe(s,o,t+2,1)).times(.5),Be(o.d).slice(0,t)===(e=Be(n.d)).slice(0,t))if(e=e.slice(t-3,t+1),e=="9999"||!r&&e=="4999"){if(!r&&(D(o,c+1,0),o.times(o).eq(s))){n=o;break}t+=4,r=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(D(n,c+1,1),i=!n.times(n).eq(s));break}return X=!0,D(n,c,l.rounding,i)};I.tangent=I.tan=function(){var i,e,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(i=n.precision,e=n.rounding,n.precision=i+10,n.rounding=1,t=t.sin(),t.s=1,t=oe(t,new n(1).minus(t.times(t)).sqrt(),i+10,0),n.precision=i,n.rounding=e,D(nt==2||nt==4?t.neg():t,i,e,!0)):new n(NaN)};I.times=I.mul=function(i){var e,t,n,r,o,s,a,c,u,l=this,d=l.constructor,f=l.d,m=(i=new d(i)).d;if(i.s*=l.s,!f||!f[0]||!m||!m[0])return new d(!i.s||f&&!f[0]&&!m||m&&!m[0]&&!f?NaN:!f||!m?i.s/0:i.s*0);for(t=Ne(l.e/V)+Ne(i.e/V),c=f.length,u=m.length,c<u&&(o=f,f=m,m=o,s=c,c=u,u=s),o=[],s=c+u,n=s;n--;)o.push(0);for(n=u;--n>=0;){for(e=0,r=c+n;r>n;)a=o[r]+m[n]*f[r-n-1]+e,o[r--]=a%Xe|0,e=a/Xe|0;o[r]=(o[r]+e)%Xe|0}for(;!o[--s];)o.pop();return e?++t:o.shift(),i.d=o,i.e=bn(o,t),X?D(i,d.precision,d.rounding):i};I.toBinary=function(i,e){return Wn(this,2,i,e)};I.toDecimalPlaces=I.toDP=function(i,e){var t=this,n=t.constructor;return t=new n(t),i===void 0?t:(ve(i,0,ft),e===void 0?e=n.rounding:ve(e,0,8),D(t,i+t.e+1,e))};I.toExponential=function(i,e){var t,n=this,r=n.constructor;return i===void 0?t=je(n,!0):(ve(i,0,ft),e===void 0?e=r.rounding:ve(e,0,8),n=D(new r(n),i+1,e),t=je(n,!0,i+1)),n.isNeg()&&!n.isZero()?"-"+t:t};I.toFixed=function(i,e){var t,n,r=this,o=r.constructor;return i===void 0?t=je(r):(ve(i,0,ft),e===void 0?e=o.rounding:ve(e,0,8),n=D(new o(r),i+r.e+1,e),t=je(n,!1,i+n.e+1)),r.isNeg()&&!r.isZero()?"-"+t:t};I.toFraction=function(i){var e,t,n,r,o,s,a,c,u,l,d,f,m=this,p=m.d,g=m.constructor;if(!p)return new g(m);if(u=t=new g(1),n=c=new g(0),e=new g(n),o=e.e=Mi(p)-m.e-1,s=o%V,e.d[0]=Pe(10,s<0?V+s:s),i==null)i=o>0?e:u;else{if(a=new g(i),!a.isInt()||a.lt(u))throw Error(mt+a);i=a.gt(e)?o>0?e:u:a}for(X=!1,a=new g(Be(p)),l=g.precision,g.precision=o=p.length*V*2;d=oe(a,e,0,1,1),r=t.plus(d.times(n)),r.cmp(i)!=1;)t=n,n=r,r=u,u=c.plus(d.times(r)),c=r,r=e,e=a.minus(d.times(r)),a=r;return r=oe(i.minus(t),n,0,1,1),c=c.plus(r.times(u)),t=t.plus(r.times(n)),c.s=u.s=m.s,f=oe(u,n,o,1).minus(m).abs().cmp(oe(c,t,o,1).minus(m).abs())<1?[u,n]:[c,t],g.precision=l,X=!0,f};I.toHexadecimal=I.toHex=function(i,e){return Wn(this,16,i,e)};I.toNearest=function(i,e){var t=this,n=t.constructor;if(t=new n(t),i==null){if(!t.d)return t;i=new n(1),e=n.rounding}else{if(i=new n(i),e===void 0?e=n.rounding:ve(e,0,8),!t.d)return i.s?t:i;if(!i.d)return i.s&&(i.s=t.s),i}return i.d[0]?(X=!1,t=oe(t,i,0,e,1).times(i),X=!0,D(t)):(i.s=t.s,t=i),t};I.toNumber=function(){return+this};I.toOctal=function(i,e){return Wn(this,8,i,e)};I.toPower=I.pow=function(i){var e,t,n,r,o,s,a=this,c=a.constructor,u=+(i=new c(i));if(!a.d||!i.d||!a.d[0]||!i.d[0])return new c(Pe(+a,u));if(a=new c(a),a.eq(1))return a;if(n=c.precision,o=c.rounding,i.eq(1))return D(a,n,o);if(e=Ne(i.e/V),e>=i.d.length-1&&(t=u<0?-u:u)<=qr)return r=Oi(c,a,t,n),i.s<0?new c(1).div(r):D(r,n,o);if(s=a.s,s<0){if(e<i.d.length-1)return new c(NaN);if((i.d[e]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return t=Pe(+a,u),e=t==0||!isFinite(t)?Ne(u*(Math.log("0."+Be(a.d))/Math.LN10+a.e+1)):new c(t+"").e,e>c.maxE+1||e<c.minE-1?new c(e>0?s/0:0):(X=!1,c.rounding=a.s=1,t=Math.min(12,(e+"").length),r=vn(i.times(dt(a,n+t)),n),r.d&&(r=D(r,n+5,1),vt(r.d,n,o)&&(e=n+10,r=D(vn(i.times(dt(a,e+t)),e),e+5,1),+Be(r.d).slice(n+1,n+15)+1==1e14&&(r=D(r,n+1,0)))),r.s=s,X=!0,c.rounding=o,D(r,n,o))};I.toPrecision=function(i,e){var t,n=this,r=n.constructor;return i===void 0?t=je(n,n.e<=r.toExpNeg||n.e>=r.toExpPos):(ve(i,1,ft),e===void 0?e=r.rounding:ve(e,0,8),n=D(new r(n),i,e),t=je(n,i<=n.e||n.e<=r.toExpNeg,i)),n.isNeg()&&!n.isZero()?"-"+t:t};I.toSignificantDigits=I.toSD=function(i,e){var t=this,n=t.constructor;return i===void 0?(i=n.precision,e=n.rounding):(ve(i,1,ft),e===void 0?e=n.rounding:ve(e,0,8)),D(new n(t),i,e)};I.toString=function(){var i=this,e=i.constructor,t=je(i,i.e<=e.toExpNeg||i.e>=e.toExpPos);return i.isNeg()&&!i.isZero()?"-"+t:t};I.truncated=I.trunc=function(){return D(new this.constructor(this),this.e+1,1)};I.valueOf=I.toJSON=function(){var i=this,e=i.constructor,t=je(i,i.e<=e.toExpNeg||i.e>=e.toExpPos);return i.isNeg()?"-"+t:t};function Be(i){var e,t,n,r=i.length-1,o="",s=i[0];if(r>0){for(o+=s,e=1;e<r;e++)n=i[e]+"",t=V-n.length,t&&(o+=lt(t)),o+=n;s=i[e],n=s+"",t=V-n.length,t&&(o+=lt(t))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function ve(i,e,t){if(i!==~~i||i<e||i>t)throw Error(mt+i)}function vt(i,e,t,n){var r,o,s,a;for(o=i[0];o>=10;o/=10)--e;return--e<0?(e+=V,r=0):(r=Math.ceil((e+1)/V),e%=V),o=Pe(10,V-e),a=i[r]%o|0,n==null?e<3?(e==0?a=a/100|0:e==1&&(a=a/10|0),s=t<4&&a==99999||t>3&&a==49999||a==5e4||a==0):s=(t<4&&a+1==o||t>3&&a+1==o/2)&&(i[r+1]/o/100|0)==Pe(10,e-2)-1||(a==o/2||a==0)&&(i[r+1]/o/100|0)==0:e<4?(e==0?a=a/1e3|0:e==1?a=a/100|0:e==2&&(a=a/10|0),s=(n||t<4)&&a==9999||!n&&t>3&&a==4999):s=((n||t<4)&&a+1==o||!n&&t>3&&a+1==o/2)&&(i[r+1]/o/1e3|0)==Pe(10,e-3)-1,s}function dn(i,e,t){for(var n,r=[0],o,s=0,a=i.length;s<a;){for(o=r.length;o--;)r[o]*=e;for(r[0]+=En.indexOf(i.charAt(s++)),n=0;n<r.length;n++)r[n]>t-1&&(r[n+1]===void 0&&(r[n+1]=0),r[n+1]+=r[n]/t|0,r[n]%=t)}return r.reverse()}function Ur(i,e){var t,n,r;if(e.isZero())return e;n=e.d.length,n<32?(t=Math.ceil(n/3),r=(1/yn(4,t)).toString()):(t=16,r="2.3283064365386962890625e-10"),i.precision+=t,e=Ct(i,1,e.times(r),new i(1));for(var o=t;o--;){var s=e.times(e);e=s.times(s).minus(s).times(8).plus(1)}return i.precision-=t,e}var oe=function(){function i(n,r,o){var s,a=0,c=n.length;for(n=n.slice();c--;)s=n[c]*r+a,n[c]=s%o|0,a=s/o|0;return a&&n.unshift(a),n}function e(n,r,o,s){var a,c;if(o!=s)c=o>s?1:-1;else for(a=c=0;a<o;a++)if(n[a]!=r[a]){c=n[a]>r[a]?1:-1;break}return c}function t(n,r,o,s){for(var a=0;o--;)n[o]-=a,a=n[o]<r[o]?1:0,n[o]=a*s+n[o]-r[o];for(;!n[0]&&n.length>1;)n.shift()}return function(n,r,o,s,a,c){var u,l,d,f,m,p,g,y,b,h,P,T,k,w,A,x,B,K,N,L,E=n.constructor,C=n.s==r.s?1:-1,M=n.d,_=r.d;if(!M||!M[0]||!_||!_[0])return new E(!n.s||!r.s||(M?_&&M[0]==_[0]:!_)?NaN:M&&M[0]==0||!_?C*0:C/0);for(c?(m=1,l=n.e-r.e):(c=Xe,m=V,l=Ne(n.e/m)-Ne(r.e/m)),N=_.length,B=M.length,b=new E(C),h=b.d=[],d=0;_[d]==(M[d]||0);d++);if(_[d]>(M[d]||0)&&l--,o==null?(w=o=E.precision,s=E.rounding):a?w=o+(n.e-r.e)+1:w=o,w<0)h.push(1),p=!0;else{if(w=w/m+2|0,d=0,N==1){for(f=0,_=_[0],w++;(d<B||f)&&w--;d++)A=f*c+(M[d]||0),h[d]=A/_|0,f=A%_|0;p=f||d<B}else{for(f=c/(_[0]+1)|0,f>1&&(_=i(_,f,c),M=i(M,f,c),N=_.length,B=M.length),x=N,P=M.slice(0,N),T=P.length;T<N;)P[T++]=0;L=_.slice(),L.unshift(0),K=_[0],_[1]>=c/2&&++K;do f=0,u=e(_,P,N,T),u<0?(k=P[0],N!=T&&(k=k*c+(P[1]||0)),f=k/K|0,f>1?(f>=c&&(f=c-1),g=i(_,f,c),y=g.length,T=P.length,u=e(g,P,y,T),u==1&&(f--,t(g,N<y?L:_,y,c))):(f==0&&(u=f=1),g=_.slice()),y=g.length,y<T&&g.unshift(0),t(P,g,T,c),u==-1&&(T=P.length,u=e(_,P,N,T),u<1&&(f++,t(P,N<T?L:_,T,c))),T=P.length):u===0&&(f++,P=[0]),h[d++]=f,u&&P[0]?P[T++]=M[x]||0:(P=[M[x]],T=1);while((x++<B||P[0]!==void 0)&&w--);p=P[0]!==void 0}h[0]||h.shift()}if(m==1)b.e=l,Ci=p;else{for(d=1,f=h[0];f>=10;f/=10)d++;b.e=d+l*m-1,D(b,a?o+b.e+1:o,s,p)}return b}}();function D(i,e,t,n){var r,o,s,a,c,u,l,d,f,m=i.constructor;e:if(e!=null){if(d=i.d,!d)return i;for(r=1,a=d[0];a>=10;a/=10)r++;if(o=e-r,o<0)o+=V,s=e,l=d[f=0],c=l/Pe(10,r-s-1)%10|0;else if(f=Math.ceil((o+1)/V),a=d.length,f>=a)if(n){for(;a++<=f;)d.push(0);l=c=0,r=1,o%=V,s=o-V+1}else break e;else{for(l=a=d[f],r=1;a>=10;a/=10)r++;o%=V,s=o-V+r,c=s<0?0:l/Pe(10,r-s-1)%10|0}if(n=n||e<0||d[f+1]!==void 0||(s<0?l:l%Pe(10,r-s-1)),u=t<4?(c||n)&&(t==0||t==(i.s<0?3:2)):c>5||c==5&&(t==4||n||t==6&&(o>0?s>0?l/Pe(10,r-s):0:d[f-1])%10&1||t==(i.s<0?8:7)),e<1||!d[0])return d.length=0,u?(e-=i.e+1,d[0]=Pe(10,(V-e%V)%V),i.e=-e||0):d[0]=i.e=0,i;if(o==0?(d.length=f,a=1,f--):(d.length=f+1,a=Pe(10,V-o),d[f]=s>0?(l/Pe(10,r-s)%Pe(10,s)|0)*a:0),u)for(;;)if(f==0){for(o=1,s=d[0];s>=10;s/=10)o++;for(s=d[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(i.e++,d[0]==Xe&&(d[0]=1));break}else{if(d[f]+=a,d[f]!=Xe)break;d[f--]=0,a=1}for(o=d.length;d[--o]===0;)d.pop()}return X&&(i.e>m.maxE?(i.d=null,i.e=NaN):i.e<m.minE&&(i.e=0,i.d=[0])),i}function je(i,e,t){if(!i.isFinite())return Fi(i);var n,r=i.e,o=Be(i.d),s=o.length;return e?(t&&(n=t-s)>0?o=o.charAt(0)+"."+o.slice(1)+lt(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(i.e<0?"e":"e+")+i.e):r<0?(o="0."+lt(-r-1)+o,t&&(n=t-s)>0&&(o+=lt(n))):r>=s?(o+=lt(r+1-s),t&&(n=t-r-1)>0&&(o=o+"."+lt(n))):((n=r+1)<s&&(o=o.slice(0,n)+"."+o.slice(n)),t&&(n=t-s)>0&&(r+1===s&&(o+="."),o+=lt(n))),o}function bn(i,e){var t=i[0];for(e*=V;t>=10;t/=10)e++;return e}function pn(i,e,t){if(e>Vr)throw X=!0,t&&(i.precision=t),Error(Ki);return D(new i(mn),e,1,!0)}function Ge(i,e,t){if(e>_n)throw Error(Ki);return D(new i(fn),e,t,!0)}function Mi(i){var e=i.length-1,t=e*V+1;if(e=i[e],e){for(;e%10==0;e/=10)t--;for(e=i[0];e>=10;e/=10)t++}return t}function lt(i){for(var e="";i--;)e+="0";return e}function Oi(i,e,t,n){var r,o=new i(1),s=Math.ceil(n/V+4);for(X=!1;;){if(t%2&&(o=o.times(e),Ii(o.d,s)&&(r=!0)),t=Ne(t/2),t===0){t=o.d.length-1,r&&o.d[t]===0&&++o.d[t];break}e=e.times(e),Ii(e.d,s)}return X=!0,o}function Bi(i){return i.d[i.d.length-1]&1}function Ei(i,e,t){for(var n,r=new i(e[0]),o=0;++o<e.length;)if(n=new i(e[o]),n.s)r[t](n)&&(r=n);else{r=n;break}return r}function vn(i,e){var t,n,r,o,s,a,c,u=0,l=0,d=0,f=i.constructor,m=f.rounding,p=f.precision;if(!i.d||!i.d[0]||i.e>17)return new f(i.d?i.d[0]?i.s<0?0:1/0:1:i.s?i.s<0?0:i:0/0);for(e==null?(X=!1,c=p):c=e,a=new f(.03125);i.e>-2;)i=i.times(a),d+=5;for(n=Math.log(Pe(2,d))/Math.LN10*2+5|0,c+=n,t=o=s=new f(1),f.precision=c;;){if(o=D(o.times(i),c,1),t=t.times(++l),a=s.plus(oe(o,t,c,1)),Be(a.d).slice(0,c)===Be(s.d).slice(0,c)){for(r=d;r--;)s=D(s.times(s),c,1);if(e==null)if(u<3&&vt(s.d,c-n,m,u))f.precision=c+=10,t=o=a=new f(1),l=0,u++;else return D(s,f.precision=p,m,X=!0);else return f.precision=p,s}s=a}}function dt(i,e){var t,n,r,o,s,a,c,u,l,d,f,m=1,p=10,g=i,y=g.d,b=g.constructor,h=b.rounding,P=b.precision;if(g.s<0||!y||!y[0]||!g.e&&y[0]==1&&y.length==1)return new b(y&&!y[0]?-1/0:g.s!=1?NaN:y?0:g);if(e==null?(X=!1,l=P):l=e,b.precision=l+=p,t=Be(y),n=t.charAt(0),Math.abs(o=g.e)<15e14){for(;n<7&&n!=1||n==1&&t.charAt(1)>3;)g=g.times(i),t=Be(g.d),n=t.charAt(0),m++;o=g.e,n>1?(g=new b("0."+t),o++):g=new b(n+"."+t.slice(1))}else return u=pn(b,l+2,P).times(o+""),g=dt(new b(n+"."+t.slice(1)),l-p).plus(u),b.precision=P,e==null?D(g,P,h,X=!0):g;for(d=g,c=s=g=oe(g.minus(1),g.plus(1),l,1),f=D(g.times(g),l,1),r=3;;){if(s=D(s.times(f),l,1),u=c.plus(oe(s,new b(r),l,1)),Be(u.d).slice(0,l)===Be(c.d).slice(0,l))if(c=c.times(2),o!==0&&(c=c.plus(pn(b,l+2,P).times(o+""))),c=oe(c,new b(m),l,1),e==null)if(vt(c.d,l-p,h,a))b.precision=l+=p,u=s=g=oe(d.minus(1),d.plus(1),l,1),f=D(g.times(g),l,1),r=a=1;else return D(c,b.precision=P,h,X=!0);else return b.precision=P,c;c=u,r+=2}}function Fi(i){return String(i.s*i.s/0)}function Dn(i,e){var t,n,r;for((t=e.indexOf("."))>-1&&(e=e.replace(".","")),(n=e.search(/e/i))>0?(t<0&&(t=n),t+=+e.slice(n+1),e=e.substring(0,n)):t<0&&(t=e.length),n=0;e.charCodeAt(n)===48;n++);for(r=e.length;e.charCodeAt(r-1)===48;--r);if(e=e.slice(n,r),e){if(r-=n,i.e=t=t-n-1,i.d=[],n=(t+1)%V,t<0&&(n+=V),n<r){for(n&&i.d.push(+e.slice(0,n)),r-=V;n<r;)i.d.push(+e.slice(n,n+=V));e=e.slice(n),n=V-e.length}else n-=r;for(;n--;)e+="0";i.d.push(+e),X&&(i.e>i.constructor.maxE?(i.d=null,i.e=NaN):i.e<i.constructor.minE&&(i.e=0,i.d=[0]))}else i.e=0,i.d=[0];return i}function Gr(i,e){var t,n,r,o,s,a,c,u,l;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),Ri.test(e))return Dn(i,e)}else if(e==="Infinity"||e==="NaN")return+e||(i.s=NaN),i.e=NaN,i.d=null,i;if(Dr.test(e))t=16,e=e.toLowerCase();else if(vr.test(e))t=2;else if(Wr.test(e))t=8;else throw Error(mt+e);for(o=e.search(/p/i),o>0?(c=+e.slice(o+1),e=e.substring(2,o)):e=e.slice(2),o=e.indexOf("."),s=o>=0,n=i.constructor,s&&(e=e.replace(".",""),a=e.length,o=a-o,r=Oi(n,new n(t),o,o*2)),u=dn(e,t,Xe),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new n(i.s*0):(i.e=bn(u,l),i.d=u,X=!1,s&&(i=oe(i,r,a*4)),c&&(i=i.times(Math.abs(c)<54?Pe(2,c):Dt.pow(2,c))),X=!0,i)}function Xr(i,e){var t,n=e.d.length;if(n<3)return e.isZero()?e:Ct(i,2,e,e);t=1.4*Math.sqrt(n),t=t>16?16:t|0,e=e.times(1/yn(5,t)),e=Ct(i,2,e,e);for(var r,o=new i(5),s=new i(16),a=new i(20);t--;)r=e.times(e),e=e.times(o.plus(r.times(s.times(r).minus(a))));return e}function Ct(i,e,t,n,r){var o,s,a,c,u=1,l=i.precision,d=Math.ceil(l/V);for(X=!1,c=t.times(t),a=new i(n);;){if(s=oe(a.times(c),new i(e++*e++),l,1),a=r?n.plus(s):n.minus(s),n=oe(s.times(c),new i(e++*e++),l,1),s=a.plus(n),s.d[d]!==void 0){for(o=d;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=n,n=s,s=o,u++}return X=!0,s.d.length=d+1,s}function yn(i,e){for(var t=i;--e;)t*=i;return t}function _i(i,e){var t,n=e.s<0,r=Ge(i,i.precision,1),o=r.times(.5);if(e=e.abs(),e.lte(o))return nt=n?4:1,e;if(t=e.divToInt(r),t.isZero())nt=n?3:2;else{if(e=e.minus(t.times(r)),e.lte(o))return nt=Bi(t)?n?2:3:n?4:1,e;nt=Bi(t)?n?1:4:n?3:2}return e.minus(r).abs()}function Wn(i,e,t,n){var r,o,s,a,c,u,l,d,f,m=i.constructor,p=t!==void 0;if(p?(ve(t,1,ft),n===void 0?n=m.rounding:ve(n,0,8)):(t=m.precision,n=m.rounding),!i.isFinite())l=Fi(i);else{for(l=je(i),s=l.indexOf("."),p?(r=2,e==16?t=t*4-3:e==8&&(t=t*3-2)):r=e,s>=0&&(l=l.replace(".",""),f=new m(1),f.e=l.length-s,f.d=dn(je(f),10,r),f.e=f.d.length),d=dn(l,10,r),o=c=d.length;d[--c]==0;)d.pop();if(!d[0])l=p?"0p+0":"0";else{if(s<0?o--:(i=new m(i),i.d=d,i.e=o,i=oe(i,f,t,n,0,r),d=i.d,o=i.e,u=Ci),s=d[t],a=r/2,u=u||d[t+1]!==void 0,u=n<4?(s!==void 0||u)&&(n===0||n===(i.s<0?3:2)):s>a||s===a&&(n===4||u||n===6&&d[t-1]&1||n===(i.s<0?8:7)),d.length=t,u)for(;++d[--t]>r-1;)d[t]=0,t||(++o,d.unshift(1));for(c=d.length;!d[c-1];--c);for(s=0,l="";s<c;s++)l+=En.charAt(d[s]);if(p){if(c>1)if(e==16||e==8){for(s=e==16?4:3,--c;c%s;c++)l+="0";for(d=dn(l,r,e),c=d.length;!d[c-1];--c);for(s=1,l="1.";s<c;s++)l+=En.charAt(d[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)l="0"+l;l="0."+l}else if(++o>c)for(o-=c;o--;)l+="0";else o<c&&(l=l.slice(0,o)+"."+l.slice(o))}l=(e==16?"0x":e==2?"0b":e==8?"0o":"")+l}return i.s<0?"-"+l:l}function Ii(i,e){if(i.length>e)return i.length=e,!0}function Hr(i){return new this(i).abs()}function zr(i){return new this(i).acos()}function Zr(i){return new this(i).acosh()}function jr(i,e){return new this(i).plus(e)}function Yr(i){return new this(i).asin()}function Jr(i){return new this(i).asinh()}function Qr(i){return new this(i).atan()}function $r(i){return new this(i).atanh()}function eo(i,e){i=new this(i),e=new this(e);var t,n=this.precision,r=this.rounding,o=n+4;return!i.s||!e.s?t=new this(NaN):!i.d&&!e.d?(t=Ge(this,o,1).times(e.s>0?.25:.75),t.s=i.s):!e.d||i.isZero()?(t=e.s<0?Ge(this,n,r):new this(0),t.s=i.s):!i.d||e.isZero()?(t=Ge(this,o,1).times(.5),t.s=i.s):e.s<0?(this.precision=o,this.rounding=1,t=this.atan(oe(i,e,o,1)),e=Ge(this,o,1),this.precision=n,this.rounding=r,t=i.s<0?t.minus(e):t.plus(e)):t=this.atan(oe(i,e,o,1)),t}function to(i){return new this(i).cbrt()}function no(i){return D(i=new this(i),i.e+1,2)}function io(i,e,t){return new this(i).clamp(e,t)}function ro(i){if(!i||typeof i!="object")throw Error(gn+"Object expected");var e,t,n,r=i.defaults===!0,o=["precision",1,ft,"rounding",0,8,"toExpNeg",-St,0,"toExpPos",0,St,"maxE",0,St,"minE",-St,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(t=o[e],r&&(this[t]=Fn[t]),(n=i[t])!==void 0)if(Ne(n)===n&&n>=o[e+1]&&n<=o[e+2])this[t]=n;else throw Error(mt+t+": "+n);if(t="crypto",r&&(this[t]=Fn[t]),(n=i[t])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[t]=!0;else throw Error(Ni);else this[t]=!1;else throw Error(mt+t+": "+n);return this}function oo(i){return new this(i).cos()}function so(i){return new this(i).cosh()}function vi(i){var e,t,n;function r(o){var s,a,c,u=this;if(!(u instanceof r))return new r(o);if(u.constructor=r,Si(o)){u.s=o.s,X?!o.d||o.e>r.maxE?(u.e=NaN,u.d=null):o.e<r.minE?(u.e=0,u.d=[0]):(u.e=o.e,u.d=o.d.slice()):(u.e=o.e,u.d=o.d?o.d.slice():o.d);return}if(c=typeof o,c==="number"){if(o===0){u.s=1/o<0?-1:1,u.e=0,u.d=[0];return}if(o<0?(o=-o,u.s=-1):u.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;X?s>r.maxE?(u.e=NaN,u.d=null):s<r.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[o]):(u.e=s,u.d=[o]);return}else if(o*0!==0){o||(u.s=NaN),u.e=NaN,u.d=null;return}return Dn(u,o.toString())}else if(c!=="string")throw Error(mt+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),Ri.test(o)?Dn(u,o):Gr(u,o)}if(r.prototype=I,r.ROUND_UP=0,r.ROUND_DOWN=1,r.ROUND_CEIL=2,r.ROUND_FLOOR=3,r.ROUND_HALF_UP=4,r.ROUND_HALF_DOWN=5,r.ROUND_HALF_EVEN=6,r.ROUND_HALF_CEIL=7,r.ROUND_HALF_FLOOR=8,r.EUCLID=9,r.config=r.set=ro,r.clone=vi,r.isDecimal=Si,r.abs=Hr,r.acos=zr,r.acosh=Zr,r.add=jr,r.asin=Yr,r.asinh=Jr,r.atan=Qr,r.atanh=$r,r.atan2=eo,r.cbrt=to,r.ceil=no,r.clamp=io,r.cos=oo,r.cosh=so,r.div=ao,r.exp=co,r.floor=uo,r.hypot=lo,r.ln=mo,r.log=fo,r.log10=go,r.log2=po,r.max=bo,r.min=yo,r.mod=wo,r.mul=ho,r.pow=Po,r.random=ko,r.round=To,r.sign=Ao,r.sin=xo,r.sinh=Bo,r.sqrt=Io,r.sub=So,r.sum=Co,r.tan=Ko,r.tanh=No,r.trunc=Lo,i===void 0&&(i={}),i&&i.defaults!==!0)for(n=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<n.length;)i.hasOwnProperty(t=n[e++])||(i[t]=this[t]);return r.config(i),r}function ao(i,e){return new this(i).div(e)}function co(i){return new this(i).exp()}function uo(i){return D(i=new this(i),i.e+1,3)}function lo(){var i,e,t=new this(0);for(X=!1,i=0;i<arguments.length;)if(e=new this(arguments[i++]),e.d)t.d&&(t=t.plus(e.times(e)));else{if(e.s)return X=!0,new this(1/0);t=e}return X=!0,t.sqrt()}function Si(i){return i instanceof Dt||i&&i.toStringTag===Li||!1}function mo(i){return new this(i).ln()}function fo(i,e){return new this(i).log(e)}function po(i){return new this(i).log(2)}function go(i){return new this(i).log(10)}function bo(){return Ei(this,arguments,"lt")}function yo(){return Ei(this,arguments,"gt")}function wo(i,e){return new this(i).mod(e)}function ho(i,e){return new this(i).mul(e)}function Po(i,e){return new this(i).pow(e)}function ko(i){var e,t,n,r,o=0,s=new this(1),a=[];if(i===void 0?i=this.precision:ve(i,1,ft),n=Math.ceil(i/V),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(n));o<n;)r=e[o],r>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=r%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(n*=4);o<n;)r=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((e[o+3]&127)<<24),r>=214e7?crypto.randomBytes(4).copy(e,o):(a.push(r%1e7),o+=4);o=n/4}else throw Error(Ni);else for(;o<n;)a[o++]=Math.random()*1e7|0;for(n=a[--o],i%=V,n&&i&&(r=Pe(10,V-i),a[o]=(n/r|0)*r);a[o]===0;o--)a.pop();if(o<0)t=0,a=[0];else{for(t=-1;a[0]===0;t-=V)a.shift();for(n=1,r=a[0];r>=10;r/=10)n++;n<V&&(t-=V-n)}return s.e=t,s.d=a,s}function To(i){return D(i=new this(i),i.e+1,this.rounding)}function Ao(i){return i=new this(i),i.d?i.d[0]?i.s:0*i.s:i.s||NaN}function xo(i){return new this(i).sin()}function Bo(i){return new this(i).sinh()}function Io(i){return new this(i).sqrt()}function So(i,e){return new this(i).sub(e)}function Co(){var i=0,e=arguments,t=new this(e[i]);for(X=!1;t.s&&++i<e.length;)t=t.plus(e[i]);return X=!0,D(t,this.precision,this.rounding)}function Ko(i){return new this(i).tan()}function No(i){return new this(i).tanh()}function Lo(i){return D(i=new this(i),i.e+1,1)}I[Symbol.for("nodejs.util.inspect.custom")]=I.toString;I[Symbol.toStringTag]="Decimal";var Dt=I.constructor=vi(Fn);mn=new Dt(mn);fn=new Dt(fn);var O=Dt;import{PublicKey as qi}from"@solana/web3.js";import{get as Di,set as Ro}from"lodash";var qn=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let t=e.map(n=>typeof n=="object"?JSON.stringify(n):n).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},Wi={},Mo={};function Ie(i){let e=Di(Wi,i);if(!e){let t=Di(Mo,i);e=new qn({name:i,logLevel:t}),Ro(Wi,i,e)}return e}import{MINT_SIZE as Oo,TOKEN_PROGRAM_ID as Eo,getTransferFeeConfig as Fo,unpackMint as _o}from"@solana/spl-token";var Vn=Ie("Raydium_accountInfo_util");async function it(i,e,t){let{batchRequest:n,commitment:r="confirmed",chunkCount:o=100}=v({batchRequest:!1},t),s=Un(e,o),a=new Array(s.length).fill([]);if(n){let c=s.map(d=>{let f=i._buildArgs([d.map(m=>m.toBase58())],r,"base64");return{methodName:"getMultipleAccounts",args:f}}),u=Un(c,10);a=(await(await Promise.all(u.map(async d=>await i._rpcBatchRequest(d)))).flat()).map(d=>(d.error&&Vn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${d.error.message}`),d.result.value.map(f=>{if(f){let{data:m,executable:p,lamports:g,owner:y,rentEpoch:b}=f;return m.length!==2&&m[1]!=="base64"&&Vn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(m[0],"base64"),executable:p,lamports:g,owner:new qi(y),rentEpoch:b}}return null})))}else try{a=await Promise.all(s.map(c=>i.getMultipleAccountsInfo(c,r)))}catch(c){c instanceof Error&&Vn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}async function rt(i,e,t){let n=await it(i,e.map(r=>r.pubkey),t);return e.map((r,o)=>j(v({},r),{accountInfo:n[o]}))}async function Vi({connection:i,mints:e,config:t}){var o,s,a;if(e.length===0)return{};let n=await rt(i,e.map(c=>({pubkey:ht(c)})),t),r={};for(let c of n){if(!c.accountInfo||c.accountInfo.data.length<Oo){console.log("invalid mint account",c.pubkey.toBase58());continue}let u=_o(c.pubkey,c.accountInfo,(o=c.accountInfo)==null?void 0:o.owner);r[c.pubkey.toString()]=j(v({},u),{programId:((s=c.accountInfo)==null?void 0:s.owner)||Eo,feeConfig:(a=Fo(u))!=null?a:void 0})}return r[qi.default.toBase58()]=r[ee.toBase58()],r}import ot from"bn.js";import Xo from"big.js";import Pn from"bn.js";import vo from"toformat";var Do=vo,Wt=Do;import hn from"big.js";import qo from"bn.js";import Vo from"decimal.js-light";import qt from"bn.js";var Ui=9007199254740991;function Ae(i){let e=Ie("Raydium_parseBigNumberish");if(i instanceof qt)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new qt(i);e.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&e.logWithError(`BigNumberish number underflow: ${i}`),(i>=Ui||i<=-Ui)&&e.logWithError(`BigNumberish number overflow: ${i}`),new qt(String(i))):typeof i=="bigint"?new qt(i.toString()):(e.error(`invalid BigNumberish value: ${i}`),new qt(0))}var wn=Ie("module/fraction"),Gn=Wt(hn),Vt=Wt(Vo),Uo={[0]:Vt.ROUND_DOWN,[1]:Vt.ROUND_HALF_UP,[2]:Vt.ROUND_UP},Go={[0]:hn.roundDown,[1]:hn.roundHalfUp,[2]:hn.roundUp},te=class{constructor(e,t=new qo(1)){this.numerator=Ae(e),this.denominator=Ae(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new te(this.denominator,this.numerator)}add(e){let t=e instanceof te?e:new te(Ae(e));return this.denominator.eq(t.denominator)?new te(this.numerator.add(t.numerator),this.denominator):new te(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof te?e:new te(Ae(e));return this.denominator.eq(t.denominator)?new te(this.numerator.sub(t.numerator),this.denominator):new te(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof te?e:new te(Ae(e));return new te(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof te?e:new te(Ae(e));return new te(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||wn.logWithError(`${e} is not an integer.`),e<=0&&wn.logWithError(`${e} is not positive.`),Vt.set({precision:e+1,rounding:Uo[n]});let r=new Vt(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},n=1){return Number.isInteger(e)||wn.logWithError(`${e} is not an integer.`),e<0&&wn.logWithError(`${e} is negative.`),Gn.DP=e,Gn.RM=Go[n]||1,new Gn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Ho=Ie("Raydium_amount"),Gi=Wt(Xo);function zo(i,e){let t="0",n="0";if(i.includes(".")){let r=i.split(".");r.length===2?([t,n]=r,n=n.padEnd(e,"0")):Ho.logWithError(`invalid number string, num: ${i}`)}else t=i;return[t,n.slice(0,e)||n]}var Se=class extends te{constructor(t,n,r=!0,o){let s=new Pn(0),a=Xn.pow(new Pn(t.decimals));if(r)s=Ae(n);else{let c=new Pn(0),u=new Pn(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[l,d]=zo(n.toString(),t.decimals);c=Ae(l),u=Ae(d)}c=c.mul(a),s=c.add(u)}super(s,a);this.logger=Ie(o||"TokenAmount"),this.token=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.token.equals(t.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(t.raw)}lt(t){return this.token.equals(t.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(t.raw)}add(t){return this.token.equals(t.token)||this.logger.logWithError("add token not equals"),new Se(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new Se(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,n,r=0){return super.toSignificant(t,n,r)}toFixed(t=this.token.decimals,n,r=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,n,r)}toExact(t={groupSeparator:""}){return Gi.DP=this.token.decimals,new Gi(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Zo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Xi}from"@solana/spl-token";var Hn={chainId:101,address:Zo.default.toBase58(),programId:Xi.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},pt={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Xi.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as Yn}from"@solana/web3.js";import{PublicKey as de,SystemProgram as Hi,SYSVAR_RENT_PUBKEY as jo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Yo}from"@solana/spl-token";function zn({pubkey:i,isSigner:e=!1,isWritable:t=!0}){return{pubkey:i,isWritable:t,isSigner:e}}var Ia=[zn({pubkey:Yo,isWritable:!1}),zn({pubkey:Hi.programId,isWritable:!1}),zn({pubkey:jo,isWritable:!1})];function Zn({publicKey:i,transformSol:e}){let t=zi(i.toString());if(t instanceof de)return e&&t.equals(Ut)?ee:t;if(e&&t.toString()===Ut.toBase58())return ee;if(typeof t=="string"){if(t===de.default.toBase58())return de.default;try{return new de(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function zi(i){try{return new de(i)}catch{return i}}var kn=new de("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),jn=new de("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),gt=new de("SysvarRent111111111111111111111111111111111"),Sa=new de("SysvarC1ock11111111111111111111111111111111"),Pt=new de("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Ca=new de("Sysvar1nstructions1111111111111111111111111"),Ka=Hi.programId,Na=new de("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),La=new de("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ra=new de("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ma=new de("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Oa=new de("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ea=new de("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Fa=new de("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),_a=new de("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),va=new de("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Da=new de("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Wa=new de("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ee=new de("So11111111111111111111111111111111111111112"),Ut=de.default;function ht(i){return Zn({publicKey:i,transformSol:!0})}var Jn=class{constructor({mint:e,decimals:t,symbol:n,name:r,skipMint:o=!1,isToken2022:s=!1}){if(e===Ut.toBase58()||e instanceof Yn&&Ut.equals(e)){this.decimals=pt.decimals,this.symbol=pt.symbol,this.name=pt.name,this.mint=new Yn(pt.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=n||e.toString().substring(0,6),this.name=r||e.toString().substring(0,6),this.mint=o?Yn.default:Zn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},Ye=Jn;Ye.WSOL=new Jn(j(v({},pt),{mint:pt.address}));var Qn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},Tn=Qn;Tn.SOL=new Qn(Hn);import Jo from"bn.js";var Zi=new te(new Jo(100)),bt=class extends te{toSignificant(e=5,t,n){return this.mul(Zi).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(Zi).toFixed(e,t,n)}};var Qo=Ie("Raydium_price"),He=class extends te{constructor(t){let{baseToken:n,quoteToken:r,numerator:o,denominator:s}=t;super(o,s);this.baseToken=n,this.quoteToken=r,this.scalar=new te($n(n.decimals),$n(r.decimals))}get raw(){return new te(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new He({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&Qo.logWithError("mul token not equals");let n=super.mul(t);return new He({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:n.denominator,numerator:n.numerator})}toSignificant(t=this.quoteToken.decimals,n,r){return this.adjusted.toSignificant(t,n,r)}toFixed(t=this.quoteToken.decimals,n,r){return this.adjusted.toFixed(t,n,r)}};var $o=new ot(0),Kc=new ot(1),Nc=new ot(2),Lc=new ot(3),Rc=new ot(5),Xn=new ot(10),Mc=new ot(100),Oc=new ot(1e3),Ec=new ot(1e4);function $n(i){return Xn.pow(Ae(i))}function Un(i,e=1,t=[]){let n=[...i];if(e<=0)return t;for(;n.length;)t.push(n.splice(0,e));return t}import{PublicKey as ss}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as as}from"@solana/spl-token";import{ComputeBudgetProgram as ji,Keypair as Ji,PublicKey as es,Transaction as Qi,TransactionMessage as ts,VersionedTransaction as $i}from"@solana/web3.js";var se={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as ns}from"@solana/spl-token";var Yi=Ie("Raydium_txUtil"),er=1644;function An(i){let e=[],t=[];return i.microLamports&&(e.push(ji.setComputeUnitPrice({microLamports:i.microLamports})),t.push(se.SetComputeUnitPrice)),i.units&&(e.push(ji.setComputeUnitLimit({units:i.units})),t.push(se.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Kt(i,e){var n,r;let t=e!=null?e:"confirmed";return(r=await((n=i.getLatestBlockhash)==null?void 0:n.call(i,{commitment:t})))==null?void 0:r.blockhash}async function xn(i,e){return i.getSignatureStatuses([e]),new Promise((t,n)=>{let r=setTimeout(n,6e4);i.onSignature(e,o=>{if(clearTimeout(r),!o.err){t("");return}n(Object.assign(o.err,{txId:e}))},"confirmed")})}function is(i,e){i.length<1&&Yi.logWithError(`no instructions provided: ${i.toString()}`),e.length<1&&Yi.logWithError(`no signers provided:, ${e.toString()}`);let t=new Qi;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...i);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<er}catch{return!1}}function Le(i,e){let[t,n]=es.findProgramAddressSync(i,e);return{publicKey:t,nonce:n}}function Gt({instructions:i,payer:e,signers:t}){return is(i,[e,...t])}function Xt({instructions:i,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=Ji.generate().publicKey.toString()}){let o=new ts({payerKey:e,recentBlockhash:n,instructions:i}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new $i(o).serialize()).toString("base64").length<er}catch{return!1}}var rs=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),os=i=>{let e=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof $i&&(e=rs(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function kt(i){let e=[];return i.forEach(t=>{t instanceof Qi&&(t.recentBlockhash||(t.recentBlockhash=ns.toBase58()),t.feePayer||(t.feePayer=Ji.generate().publicKey)),e.push(os(t))}),console.log("simulate tx string:",e),e}function ae(i,e,t){return Le([i.toBuffer(),(t!=null?t:as).toBuffer(),e.toBuffer()],new ss("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as q}from"@solana/web3.js";var nu=new q("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),iu=new q("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),ru=new q("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),ou=new q("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),su=new q("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),au=new q("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),cu=new q("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),uu=new q("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),lu=new q("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),du=new q("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ht=new q("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),zt=new q("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Bn=new q("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),mu=new q("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),fu=new q("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),pu=new q("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),gu=new q("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),bu=new q("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),yu=new q("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),wu=new q("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),hu=new q("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Pu=new q("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),ku=new q("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Tu=new q("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Au=new q("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),xu=new q("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Bu=new q("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Iu=new q("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Su=new q("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Cu=new q("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Ku=new q("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Nu={OPEN_BOOK_PROGRAM:new q("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new q("Ray1111111111111111111111111111111111111111"),AMM_V4:new q("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new q("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new q("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new q("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new q("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new q("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new q("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new q("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new q("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new q("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:q.default,Router:new q("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new q("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new q("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new q("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new q("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new q("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new q("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new q("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new q("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new q("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new q("Ray1111111111111111111111111111111111111111")};import ze from"bn.js";var Zt=1e4;function ye(i,e,t,n){if(e===void 0)return{amount:i,fee:void 0,expirationTime:void 0};let r=j(v({},e),{olderTransferFee:{epoch:BigInt(e.olderTransferFee.epoch),maximumFee:BigInt(e.olderTransferFee.maximumFee),transferFeeBasisPoints:e.olderTransferFee.transferFeeBasisPoints},newerTransferFee:{epoch:BigInt(e.newerTransferFee.epoch),maximumFee:BigInt(e.newerTransferFee.maximumFee),transferFeeBasisPoints:e.newerTransferFee.transferFeeBasisPoints}}),o=t.epoch<r.newerTransferFee.epoch?r.olderTransferFee:r.newerTransferFee,s=new ze(o.maximumFee.toString()),a=t.epoch<r.newerTransferFee.epoch?(Number(r.newerTransferFee.epoch)*t.slotsInEpoch-t.absoluteSlot)*400/1e3:void 0;if(n)if(o.transferFeeBasisPoints===Zt){let c=new ze(o.maximumFee.toString());return{amount:i.add(c),fee:c,expirationTime:a}}else{let c=ei(i.mul(new ze(Zt)),new ze(Zt-o.transferFeeBasisPoints)),u=new ze(o.maximumFee.toString()),l=c.sub(i).gt(u)?i.add(u):c,d=ei(l.mul(new ze(o.transferFeeBasisPoints)),new ze(Zt)),f=d.gt(s)?s:d;return{amount:l,fee:f,expirationTime:a}}else{let c=ei(i.mul(new ze(o.transferFeeBasisPoints)),new ze(Zt)),u=c.gt(s)?s:c;return{amount:i,fee:u,expirationTime:a}}}function yt(i,e){return i===void 0?e:e===void 0?i:Math.min(i,e)}function ei(i,e){let{div:t,mod:n}=i.divmod(e);return n.gt(new ze(0))?t.add(new ze(1)):t}import{PublicKey as ti,AddressLookupTableAccount as Rt}from"@solana/web3.js";async function ni({connection:i,address:e,cluster:t="mainnet"}){let n=await it(i,[...new Set(e.map(o=>o.toString()))].map(o=>new ti(o))),r={};for(let o=0;o<e.length;o++){let s=n[o],a=e[o];if(!s)continue;let c=new Rt({key:a,state:Rt.deserialize(s.data)});r[a.toString()]=c,t==="devnet"?Lt[a.toString()]=c:Nt[a.toString()]=c}return r}var Nt={},ii=async i=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Nt[e])return Nt;let t=new ti(e),n=await i.getAccountInfo(t);return n&&(Nt[e]=new Rt({key:t,state:Rt.deserialize(n.data)})),Nt},Lt={},ri=async i=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Lt[e])return Lt;let t=new ti(e),n=await i.getAccountInfo(t);return n&&(Lt[e]=new Rt({key:t,state:Rt.deserialize(n.data)})),Lt};import{PublicKey as Mt,sendAndConfirmTransaction as oi,SystemProgram as us,Transaction as jt,TransactionMessage as Yt,VersionedTransaction as Jt}from"@solana/web3.js";import ls from"axios";var In=2e3,Sn=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var n;let e=(await ls.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(n=e==null?void 0:e[15])!=null?n:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:n}=An(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(us.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Mt(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(se.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let n=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(n))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:n=[],instructionTypes:r=[],endInstructionTypes:o=[],lookupTableAddress:s=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...n),this.instructionTypes.push(...r),this.endInstructionTypes.push(...o),this.lookupTableAddress.push(...s.filter(a=>a!==Mt.default.toString())),this}async versionBuild({txVersion:e,extInfo:t}){return e===0?await this.buildV0(v({},t||{})):this.build(t)}build(e){var n;let t=new jt;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((n=this.owner)==null?void 0:n.signer)&&!this.signers.some(r=>r.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async r=>{var l;let{recentBlockHash:o,skipPreflight:s=!0,sendAndConfirm:a,notSendToRpc:c}=r||{},u=o!=null?o:await Kt(this.connection,this.blockhashCommitment);if(t.recentBlockhash=u,this.signers.length&&t.sign(...this.signers),kt([t]),(l=this.owner)!=null&&l.isKeyPair)return{txId:a?await oi(this.connection,t,this.signers.find(f=>f.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:s}),signedTx:t};if(this.signAllTransactions){let d=await this.signAllTransactions([t]);if(this.signers.length)for(let f of d)try{f.sign(...this.signers)}catch{}return{txId:c?"":await this.connection.sendRawTransaction(d[0].serialize(),{skipPreflight:s}),signedTx:d[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var u;let{extraPreBuildData:t=[],extInfo:n}=e,{transaction:r}=this.build(n),o=t.filter(l=>l.transaction.instructions.length>0),s=[r,...o.map(l=>l.transaction)],a=[this.signers,...o.map(l=>l.signers)],c=[...this.instructionTypes,...o.map(l=>l.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&a.forEach(l=>{l.some(d=>d.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:a,instructionTypes:c,execute:async l=>{var b;let{sequentially:d,onTxUpdate:f,skipTxCount:m=0,recentBlockHash:p,skipPreflight:g=!0}=l||{},y=p!=null?p:await Kt(this.connection,this.blockhashCommitment);if((b=this.owner)!=null&&b.isKeyPair){if(d){let h=[],P=0;for(let T of s){if(++P,P<=m)continue;let k=await oi(this.connection,T,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});h.push(k)}return{txIds:h,signedTxs:s}}return{txIds:await await Promise.all(s.map(async h=>(h.recentBlockhash=y,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:g})))),signedTxs:s}}if(this.signAllTransactions){let h=s.map((T,k)=>(T.recentBlockhash=y,a[k].length&&T.sign(...a[k]),T));kt(h);let P=await this.signAllTransactions(h);if(d){let T=0,k=[],w=async()=>{if(!P[T])return;let A=await this.connection.sendRawTransaction(P[T].serialize(),{skipPreflight:g});k.push({txId:A,status:"sent",signedTx:P[T]}),f==null||f([...k]),T++;let x=!1,B=null,K=null,N=L=>{B!==null&&clearInterval(B),K!==null&&this.connection.removeSignatureListener(K);let E=k.findIndex(C=>C.txId===A);if(E>-1){if(k[E].status==="error"||k[E].status==="success")return;k[E].status=L.err?"error":"success"}f==null||f([...k]),L.err||w()};this.loopMultiTxStatus&&(B=setInterval(async()=>{var L;if(x){clearInterval(B);return}try{let E=await this.connection.getTransaction(A,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(x=!0,clearInterval(B),N({err:((L=E.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",A))}catch(E){x=!0,clearInterval(B),console.error("getTransaction timeout:",E,A)}},In)),K=this.connection.onSignature(A,L=>{if(x){this.connection.removeSignatureListener(K);return}x=!0,N(L)},"confirmed"),this.connection.getSignatureStatus(A)};return await w(),{txIds:k.map(A=>A.txId),signedTxs:P}}else{let T=[];for(let k=0;k<P.length;k+=1){let w=await this.connection.sendRawTransaction(P[k].serialize(),{skipPreflight:g});T.push(w)}return{txIds:T,signedTxs:P}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:n}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:n||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:n})}async buildV0(e){var g;let p=e||{},{lookupTableCache:t={},lookupTableAddress:n=[],forerunCreate:r,recentBlockhash:o}=p,s=It(p,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=v(v({},this.cluster==="devnet"?await ri(this.connection):await ii(this.connection)),t),c=Array.from(new Set([...n,...this.lookupTableAddress])),u=[];for(let y of c)a[y]===void 0&&u.push(new Mt(y));let l=await ni({connection:this.connection,address:u});for(let[y,b]of Object.entries(l))a[y]=b;let d=r?Mt.default.toBase58():o!=null?o:await Kt(this.connection,this.blockhashCommitment),f=new Yt({payerKey:this.feePayer,recentBlockhash:d,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(a));((g=this.owner)==null?void 0:g.signer)&&!this.signers.some(y=>y.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let m=new Jt(f);return m.sign(this.signers),{builder:this,transaction:m,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async y=>{var T;let{skipPreflight:b=!0,sendAndConfirm:h,notSendToRpc:P}=y||{};if(kt([m]),(T=this.owner)!=null&&T.isKeyPair){let k=await this.connection.sendTransaction(m,{skipPreflight:b});return h&&await xn(this.connection,k),{txId:k,signedTx:m}}if(this.signAllTransactions){let k=await this.signAllTransactions([m]);if(this.signers.length)for(let w of k)try{w.sign(this.signers)}catch{}return{txId:P?"":await this.connection.sendTransaction(k[0],{skipPreflight:b}),signedTx:k[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}async buildV0MultiTx(e){var u;let{extraPreBuildData:t=[],buildProps:n}=e,{transaction:r}=await this.buildV0(n),o=t.filter(l=>l.builder.instructions.length>0),s=[r,...o.map(l=>l.transaction)],a=[this.signers,...o.map(l=>l.signers)],c=[...this.instructionTypes,...o.map(l=>l.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&a.forEach(l=>{l.some(d=>d.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach(async(l,d)=>{l.sign(a[d])}),{builder:this,transactions:s,signers:a,instructionTypes:c,buildProps:n,execute:async l=>{var g;let{sequentially:d,onTxUpdate:f,recentBlockHash:m,skipPreflight:p=!0}=l||{};if(m&&s.forEach(y=>y.message.recentBlockhash=m),kt(s),(g=this.owner)!=null&&g.isKeyPair){if(d){let y=[];for(let b of s){let h=await this.connection.sendTransaction(b,{skipPreflight:p});await xn(this.connection,h),y.push(h)}return{txIds:y,signedTxs:s}}return{txIds:await Promise.all(s.map(async y=>await this.connection.sendTransaction(y,{skipPreflight:p}))),signedTxs:s}}if(this.signAllTransactions){let y=await this.signAllTransactions(s);if(d){let b=0,h=[],P=async()=>{if(!y[b])return;let T=await this.connection.sendTransaction(y[b],{skipPreflight:p});h.push({txId:T,status:"sent",signedTx:y[b]}),f==null||f([...h]),b++;let k=!1,w=null,A=null,x=B=>{w!==null&&clearInterval(w),A!==null&&this.connection.removeSignatureListener(A);let K=h.findIndex(N=>N.txId===T);if(K>-1){if(h[K].status==="error"||h[K].status==="success")return;h[K].status=B.err?"error":"success"}f==null||f([...h]),B.err||P()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var B;if(k){clearInterval(w);return}try{let K=await this.connection.getTransaction(T,{commitment:"confirmed",maxSupportedTransactionVersion:0});K&&(k=!0,clearInterval(w),x({err:((B=K.meta)==null?void 0:B.err)||null}),console.log("tx status from getTransaction:",T))}catch(K){k=!0,clearInterval(w),console.error("getTransaction timeout:",K,T)}},In)),A=this.connection.onSignature(T,B=>{if(k){this.connection.removeSignatureListener(A);return}k=!0,x(B)},"confirmed"),this.connection.getSignatureStatus(T)};return P(),{txIds:[],signedTxs:y}}else{let b=[];for(let h=0;h<y.length;h+=1){let P=await this.connection.sendTransaction(y[h],{skipPreflight:p});b.push(P)}return{txIds:b,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async sizeCheckBuild(e){var f;let d=e||{},{splitIns:t=[],computeBudgetConfig:n}=d,r=It(d,["splitIns","computeBudgetConfig"]),o=n?An(n):{instructions:[],instructionTypes:[]},s=this.signers.reduce((m,p)=>j(v({},m),{[p.publicKey.toBase58()]:p}),{}),a=[],c=[],u=[],l=0;if(this.allInstructions.forEach(m=>{let p=[...u,m],g=n?[...o.instructions,...p]:p,b=[...new Set(p.map(h=>h.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(h=>new Mt(h));if(m!==t[l]&&u.length<12&&(Gt({instructions:g,payer:this.feePayer,signers:b})||Gt({instructions:p,payer:this.feePayer,signers:b})))u.push(m);else{if(u.length===0)throw Error("item ins too big");l+=m===t[l]?1:0,Gt({instructions:n?[...o.instructions,...u]:[...u],payer:this.feePayer,signers:b})?a.push(new jt().add(...o.instructions,...u)):a.push(new jt().add(...u)),c.push(Array.from(new Set(u.map(h=>h.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat())).map(h=>s[h]).filter(h=>h!==void 0)),u=[m]}}),u.length>0){let p=[...new Set(u.map(g=>g.keys.filter(y=>y.isSigner).map(y=>y.pubkey.toString())).flat()).values()].map(g=>s[g]).filter(g=>g!==void 0);Gt({instructions:n?[...o.instructions,...u]:[...u],payer:this.feePayer,signers:p.map(g=>g.publicKey)})?a.push(new jt().add(...o.instructions,...u)):a.push(new jt().add(...u)),c.push(p)}return a.forEach(m=>m.feePayer=this.feePayer),(f=this.owner)!=null&&f.signer&&c.forEach(m=>{m.some(p=>p.publicKey.equals(this.owner.publicKey))||m.push(this.owner.signer)}),{builder:this,transactions:a,signers:c,instructionTypes:this.instructionTypes,execute:async m=>{var T;let{sequentially:p,onTxUpdate:g,skipTxCount:y=0,recentBlockHash:b,skipPreflight:h=!0}=m||{},P=b!=null?b:await Kt(this.connection,this.blockhashCommitment);if(a.forEach(async(k,w)=>{k.recentBlockhash=P,c[w].length&&k.sign(...c[w])}),kt(a),(T=this.owner)!=null&&T.isKeyPair){if(p){let k=0,w=[];for(let A of a){if(++k,k<=y){w.push("tx skipped");continue}let x=await oi(this.connection,A,this.signers.find(B=>B.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});w.push(x)}return{txIds:w,signedTxs:a}}return{txIds:await Promise.all(a.map(async k=>await this.connection.sendRawTransaction(k.serialize(),{skipPreflight:h}))),signedTxs:a}}if(this.signAllTransactions){let k=await this.signAllTransactions(a.slice(y,a.length)),w=[...a.slice(0,y),...k];if(p){let A=0,x=[],B=async()=>{if(!w[A])return;A<y&&(x.push({txId:"",status:"success",signedTx:w[A]}),g==null||g([...x]),A++,B());let K=await this.connection.sendRawTransaction(w[A].serialize(),{skipPreflight:h});x.push({txId:K,status:"sent",signedTx:w[A]}),g==null||g([...x]),A++;let N=!1,L=null,E=null,C=M=>{L!==null&&clearInterval(L),E!==null&&this.connection.removeSignatureListener(E);let _=x.findIndex(Te=>Te.txId===K);if(_>-1){if(x[_].status==="error"||x[_].status==="success")return;x[_].status=M.err?"error":"success"}g==null||g([...x]),M.err||B()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var M;if(N){clearInterval(L);return}try{let _=await this.connection.getTransaction(K,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(N=!0,clearInterval(L),C({err:((M=_.meta)==null?void 0:M.err)||null}),console.log("tx status from getTransaction:",K))}catch(_){N=!0,clearInterval(L),console.error("getTransaction timeout:",_,K)}},In)),E=this.connection.onSignature(K,M=>{if(N){this.connection.removeSignatureListener(E);return}N=!0,C(M)},"confirmed"),this.connection.getSignatureStatus(K)};return await B(),{txIds:x.map(K=>K.txId),signedTxs:w}}else{let A=[];for(let x=0;x<w.length;x+=1){let B=await this.connection.sendRawTransaction(w[x].serialize(),{skipPreflight:h});A.push(B)}return{txIds:A,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var P;let h=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:r={},lookupTableAddress:o=[]}=h,s=It(h,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress"]),a=v(v({},this.cluster==="devnet"?await ri(this.connection):await ii(this.connection)),r),c=Array.from(new Set([...this.lookupTableAddress,...o])),u=[];for(let T of c)a[T]===void 0&&u.push(new Mt(T));let l=await ni({connection:this.connection,address:u});for(let[T,k]of Object.entries(l))a[T]=k;let d=t?An(t):{instructions:[],instructionTypes:[]},f=await Kt(this.connection,this.blockhashCommitment),m=this.signers.reduce((T,k)=>j(v({},T),{[k.publicKey.toBase58()]:k}),{}),p=[],g=[],y=[],b=0;if(this.allInstructions.forEach(T=>{let k=[...y,T],w=t?[...d.instructions,...k]:k;if(T!==n[b]&&y.length<12&&(Xt({instructions:w,payer:this.feePayer,lookupTableAddressAccount:a})||Xt({instructions:k,payer:this.feePayer,lookupTableAddressAccount:a})))y.push(T);else{if(y.length===0)throw Error("item ins too big");b+=T===n[b]?1:0;let A={};for(let x of[...new Set(c)])a[x]!==void 0&&(A[x]=a[x]);if(t&&Xt({instructions:[...d.instructions,...y],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:f})){let x=new Yt({payerKey:this.feePayer,recentBlockhash:f,instructions:[...d.instructions,...y]}).compileToV0Message(Object.values(a));p.push(new Jt(x))}else{let x=new Yt({payerKey:this.feePayer,recentBlockhash:f,instructions:[...y]}).compileToV0Message(Object.values(a));p.push(new Jt(x))}g.push(Array.from(new Set(y.map(x=>x.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat())).map(x=>m[x]).filter(x=>x!==void 0)),y=[T]}}),y.length>0){let k=[...new Set(y.map(w=>w.keys.filter(A=>A.isSigner).map(A=>A.pubkey.toString())).flat()).values()].map(w=>m[w]).filter(w=>w!==void 0);if(t&&Xt({instructions:[...d.instructions,...y],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:f})){let w=new Yt({payerKey:this.feePayer,recentBlockhash:f,instructions:[...d.instructions,...y]}).compileToV0Message(Object.values(a));p.push(new Jt(w))}else{let w=new Yt({payerKey:this.feePayer,recentBlockhash:f,instructions:[...y]}).compileToV0Message(Object.values(a));p.push(new Jt(w))}g.push(k)}return(P=this.owner)!=null&&P.signer&&g.forEach(T=>{T.some(k=>k.publicKey.equals(this.owner.publicKey))||T.push(this.owner.signer)}),p.forEach((T,k)=>{T.sign(g[k])}),{builder:this,transactions:p,buildProps:e,signers:g,instructionTypes:this.instructionTypes,execute:async T=>{var K;let{sequentially:k,onTxUpdate:w,skipTxCount:A=0,recentBlockHash:x,skipPreflight:B=!0}=T||{};if(p.map(async(N,L)=>{g[L].length&&N.sign(g[L]),x&&(N.message.recentBlockhash=x)}),kt(p),(K=this.owner)!=null&&K.isKeyPair){if(k){let N=0,L=[];for(let E of p){if(++N,N<=A){console.log("skip tx: ",N),L.push("tx skipped");continue}let C=await this.connection.sendTransaction(E,{skipPreflight:B});await xn(this.connection,C),L.push(C)}return{txIds:L,signedTxs:p}}return{txIds:await Promise.all(p.map(async N=>await this.connection.sendTransaction(N,{skipPreflight:B}))),signedTxs:p}}if(this.signAllTransactions){let N=await this.signAllTransactions(p.slice(A,p.length)),L=[...p.slice(0,A),...N];if(k){let E=0,C=[],M=async()=>{if(!L[E])return;if(E<A){C.push({txId:"",status:"success",signedTx:L[E]}),w==null||w([...C]),E++,M();return}let _=await this.connection.sendTransaction(L[E],{skipPreflight:B});C.push({txId:_,status:"sent",signedTx:L[E]}),w==null||w([...C]),E++;let Te=!1,Ke=null,tt=null,Bt=we=>{Ke!==null&&clearInterval(Ke),tt!==null&&this.connection.removeSignatureListener(tt);let Me=C.findIndex(ut=>ut.txId===_);if(Me>-1){if(C[Me].status==="error"||C[Me].status==="success")return;C[Me].status=we.err?"error":"success"}w==null||w([...C]),we.err||M()};this.loopMultiTxStatus&&(Ke=setInterval(async()=>{var we;if(Te){clearInterval(Ke);return}try{let Me=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});Me&&(Te=!0,clearInterval(Ke),Bt({err:((we=Me.meta)==null?void 0:we.err)||null}),console.log("tx status from getTransaction:",_))}catch(Me){Te=!0,clearInterval(Ke),console.error("getTransaction timeout:",Me,_)}},In)),tt=this.connection.onSignature(_,we=>{if(Te){this.connection.removeSignatureListener(tt);return}Te=!0,Bt(we)},"confirmed"),this.connection.getSignatureStatus(_)};return M(),{txIds:[],signedTxs:L}}else{let E=[];for(let C=0;C<L.length;C+=1){let M=await this.connection.sendTransaction(L[C],{skipPreflight:B});E.push(M)}return{txIds:E,signedTxs:L}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}};import{PublicKey as Ju}from"@solana/web3.js";import $u from"bn.js";import ds from"bn.js";var rl=new ds(1e6);import{AccountLayout as Lr,createAssociatedTokenAccountIdempotentInstruction as Rr,TOKEN_2022_PROGRAM_ID as wt,TOKEN_PROGRAM_ID as un}from"@solana/spl-token";import{PublicKey as Sl}from"@solana/web3.js";import{MintLayout as Kl,TOKEN_PROGRAM_ID as Ll}from"@solana/spl-token";var Cn=r=>{var o=r,{address:i,programId:e,decimals:t}=o,n=It(o,["address","programId","decimals"]);return v({chainId:101,address:ht(i).toBase58(),programId:e,logoURI:"",symbol:"",name:"",decimals:t,tags:[],extensions:n.extensions||{}},n)},si=i=>i?j(v({},i),{transferFeeConfigAuthority:i.transferFeeConfigAuthority.toBase58(),withdrawWithheldAuthority:i.withdrawWithheldAuthority.toBase58(),withheldAmount:i.withheldAmount.toString(),olderTransferFee:j(v({},i.olderTransferFee),{epoch:i.olderTransferFee.epoch.toString(),maximumFee:i.olderTransferFee.maximumFee.toString()}),newerTransferFee:j(v({},i.newerTransferFee),{epoch:i.newerTransferFee.epoch.toString(),maximumFee:i.newerTransferFee.maximumFee.toString()})}):void 0;var ai=(...i)=>i.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),Qt=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=Ie(t)}createTxBuilder(e){return this.scope.checkOwner(),new Sn({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(ai(e))}logInfo(...e){this.logger.info(ai(e))}logAndCreateError(...e){let t=ai(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{Keypair as On,PublicKey as S,SystemProgram as ct,TransactionInstruction as Ce}from"@solana/web3.js";import Pi from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as cn,TOKEN_2022_PROGRAM_ID as be,TOKEN_PROGRAM_ID as ie}from"@solana/spl-token";import{PublicKey as Ps}from"@solana/web3.js";import rr,{isBN as or}from"bn.js";import{bits as Vl,BitStructure as Ul,blob as ms,Blob as Gl,cstr as Xl,f32 as Hl,f32be as zl,f64 as Zl,f64be as jl,greedy as Yl,Layout as fs,ns64 as Jl,ns64be as Ql,nu64 as $l,nu64be as ed,offset as td,s16 as nd,s16be as id,s24 as rd,s24be as od,s32 as ps,s32be as sd,s40 as ad,s40be as cd,s48 as ud,s48be as ld,s8 as dd,seq as gs,struct as md,Structure as bs,u16 as ys,u16be as fd,u24 as pd,u24be as gd,u32 as bd,u32be as yd,u40 as wd,u40be as hd,u48 as Pd,u48be as kd,u8 as ws,UInt as hs,union as Td,Union as Ad,unionLayoutDiscriminator as xd,utf8 as Bd}from"@solana/buffer-layout";var ci=fs,tr=bs;var ui=hs;var nr=ws,$t=ys;var ce=ps;var ir=gs;var De=ms;var Ot=class extends ci{constructor(t,n,r){super(t,r);this.blob=De(t),this.signed=n}decode(t,n=0){let r=new rr(this.blob.decode(t,n),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(t,n,r=0){return typeof t=="number"&&(t=new rr(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,r)}};function ge(i){return new ui(1,i)}function Et(i){return new ui(4,i)}function W(i){return new Ot(8,!1,i)}function Y(i){return new Ot(16,!1,i)}function sr(i){return new Ot(8,!0,i)}function ar(i){return new Ot(16,!0,i)}var Kn=class extends ci{constructor(t,n,r,o){super(t.span,o);this.layout=t,this.decoder=n,this.encoder=r}decode(t,n){return this.decoder(this.layout.decode(t,n))}encode(t,n,r){return this.layout.encode(this.encoder(t),n,r)}getSpan(t,n){return this.layout.getSpan(t,n)}};function re(i){return new Kn(De(32),e=>new Ps(e),e=>e.toBuffer(),i)}function Oe(i){return new Kn(nr(),ks,Ts,i)}function ks(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Ts(i){return i?1:0}var li=class extends tr{decode(e,t){return super.decode(e,t)}};function ne(i,e,t){return new li(i,e,t)}function me(i,e,t){let n,r=typeof e=="number"?e:or(e)?e.toNumber():new Proxy(e,{get(o,s){if(!n){let a=Reflect.get(o,"count");n=or(a)?a.toNumber():a,Reflect.set(o,"count",n)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(n=a),Reflect.set(o,s,a)}});return ir(i,r,t)}import Ms from"bn.js";import Ue from"bn.js";var fe=new Ue(0),Je=new Ue(1),st=new Ue(-1),We=new Ue(1).shln(64),Nn=new Ue(1).shln(128),di=We.sub(Je),en=64,cr=Nn.subn(1),Re=-443636,Ee=-Re,Qe=new Ue("4295048016"),$e=new Ue("79226673521066979257578248091"),Dd=new Ue("4295048017"),Wd=new Ue("79226673521066979257578248090"),ur=16,lr="59543866431248",dr="184467440737095516",mr="15793534762490258745",Ln=new Ue(10).pow(new Ue(6));var fr={tvl:0,volumeQuote:0,mintAmountA:0,mintAmountB:0,rewardDefaultInfos:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0,day:{volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[0]},week:{volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[0]},month:{volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[0]},pooltype:[]},qd=new Ue("18446744073700000000");import Z from"bn.js";function Rn(i){let e=new ArrayBuffer(4);return new DataView(e).setInt32(0,i,!1),new Uint8Array(e)}function mi(i,e){let t=0;for(let n=i-1;n>=0&&!e.testn(n);n--)t++;return t}function fi(i,e){let t=0;for(let n=0;n<i&&!e.testn(n);n++)t++;return t}function tn(i,e){for(let t=0;t<i;t++)if(e.testn(t))return!1;return!0}function pr(i,e){return tn(i,e)?null:mi(i,e)}function gr(i,e){return tn(i,e)?null:fi(i,e)}var zd=Buffer.from("amm_config","utf8"),As=Buffer.from("pool","utf8"),xs=Buffer.from("pool_vault","utf8"),Bs=Buffer.from("pool_reward_vault","utf8"),br=Buffer.from("position","utf8"),Is=Buffer.from("tick_array","utf8"),Ss=Buffer.from("operation","utf8"),Cs=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Ks=Buffer.from("observation","utf8");function yr(i,e,t,n){return Le([As,e.toBuffer(),t.toBuffer(),n.toBuffer()],i)}function pi(i,e,t){return Le([xs,e.toBuffer(),t.toBuffer()],i)}function wr(i,e,t){return Le([Bs,e.toBuffer(),t.toBuffer()],i)}function J(i,e,t){return Le([Is,e.toBuffer(),Rn(t)],i)}function Ze(i,e,t,n){return Le([br,e.toBuffer(),Rn(t),Rn(n)],i)}function Fe(i,e){return Le([br,e.toBuffer()],i)}function nn(i){return Le([Buffer.from("metadata","utf8"),Pt.toBuffer(),i.toBuffer()],Pt)}function rn(i){return Le([Ss],i)}function he(i,e){return Le([Cs,e.toBuffer()],i)}function hr(i,e){return Le([Ks,e.toBuffer()],i)}var Pr=Buffer.from("locked_position","utf8");function gi(i,e){return Le([Pr,e.toBuffer()],i)}function Ft(i,e){return Le([Pr,e.toBuffer()],i)}var Ns=Buffer.from("support_mint","utf8");function bi(i,e){return Le([Ns,e.toBuffer()],i)}import{PublicKey as qe}from"@solana/web3.js";import{TOKEN_2022_PROGRAM_ID as kr}from"@solana/spl-token";import ue from"bn.js";import et from"bn.js";var on=class{static getfeeGrowthInside(e,t,n){let r=new et(0),o=new et(0);e.tickCurrent>=t.tick?(r=t.feeGrowthOutsideX64A,o=t.feeGrowthOutsideX64B):(r=e.feeGrowthGlobalX64A.sub(t.feeGrowthOutsideX64A),o=e.feeGrowthGlobalX64B.sub(t.feeGrowthOutsideX64B));let s=new et(0),a=new et(0);e.tickCurrent<n.tick?(s=n.feeGrowthOutsideX64A,a=n.feeGrowthOutsideX64B):(s=e.feeGrowthGlobalX64A.sub(n.feeGrowthOutsideX64A),a=e.feeGrowthGlobalX64B.sub(n.feeGrowthOutsideX64B));let c=G.wrappingSubU128(G.wrappingSubU128(e.feeGrowthGlobalX64A,r),s),u=G.wrappingSubU128(G.wrappingSubU128(e.feeGrowthGlobalX64B,o),a);return{feeGrowthInsideX64A:c,feeGrowthInsideBX64:u}}static GetPositionFees(e,t,n,r){let{feeGrowthInsideX64A:o,feeGrowthInsideBX64:s}=this.getfeeGrowthInside(e,n,r),a=G.mulDivFloor(G.wrappingSubU128(o,t.feeGrowthInsideLastX64A),t.liquidity,We),c=t.tokenFeesOwedA.add(a),u=G.mulDivFloor(G.wrappingSubU128(s,t.feeGrowthInsideLastX64B),t.liquidity,We),l=t.tokenFeesOwedB.add(u);return{tokenFeeAmountA:c,tokenFeeAmountB:l}}static GetPositionFeesV2(e,t,n,r){let{feeGrowthInsideX64A:o,feeGrowthInsideBX64:s}=this.getfeeGrowthInside(e,n,r),a=G.mulDivFloor(G.wrappingSubU128(o,t.feeGrowthInsideLastX64A),t.liquidity,We),c=t.tokenFeesOwedA.add(a),u=G.mulDivFloor(G.wrappingSubU128(s,t.feeGrowthInsideLastX64B),t.liquidity,We),l=t.tokenFeesOwedB.add(u);return{tokenFeeAmountA:c,tokenFeeAmountB:l}}static GetPositionRewardsV2(e,t,n,r){let o=[],s=this.getRewardGrowthInsideV2(e.tickCurrent,n,r,e.rewardInfos);for(let a=0;a<s.length;a++){let c=s[a],u=t.rewardInfos[a],l=G.wrappingSubU128(c,u.growthInsideLastX64),d=G.mulDivFloor(l,t.liquidity,We),f=u.rewardAmountOwed.add(d);o.push(f)}return o}static GetPositionRewards(e,t,n,r){let o=[],s=this.getRewardGrowthInside(e.tickCurrent,n,r,e.rewardInfos);for(let a=0;a<s.length;a++){let c=s[a],u=t.rewardInfos[a],l=G.wrappingSubU128(c,u.growthInsideLastX64),d=G.mulDivFloor(l,t.liquidity,We),f=u.rewardAmountOwed.add(d);o.push(f)}return o}static getRewardGrowthInside(e,t,n,r){let o=[];for(let s=0;s<r.length;s++){let a=new et(0);t.liquidityGross.eqn(0)?a=r[s].rewardGrowthGlobalX64:e<t.tick?a=r[s].rewardGrowthGlobalX64.sub(t.rewardGrowthsOutsideX64[s]):a=t.rewardGrowthsOutsideX64[s];let c=new et(0);n.liquidityGross.eqn(0)||(e<n.tick?c=n.rewardGrowthsOutsideX64[s]:c=r[s].rewardGrowthGlobalX64.sub(n.rewardGrowthsOutsideX64[s])),o.push(G.wrappingSubU128(G.wrappingSubU128(r[s].rewardGrowthGlobalX64,a),c))}return o}static getRewardGrowthInsideV2(e,t,n,r){let o=[];for(let s=0;s<r.length;s++){let a=new et(0);t.liquidityGross.eqn(0)?a=r[s].rewardGrowthGlobalX64:e<t.tick?a=r[s].rewardGrowthGlobalX64.sub(t.rewardGrowthsOutsideX64[s]):a=t.rewardGrowthsOutsideX64[s];let c=new et(0);n.liquidityGross.eqn(0)||(e<n.tick?c=n.rewardGrowthsOutsideX64[s]:c=r[s].rewardGrowthGlobalX64.sub(n.rewardGrowthsOutsideX64[s])),o.push(G.wrappingSubU128(G.wrappingSubU128(r[s].rewardGrowthGlobalX64,a),c))}return o}static getAmountsFromLiquidity({poolInfo:e,ownerPosition:t,liquidity:n,slippage:r,add:o,epochInfo:s}){var y,b,h,P;let a=U.priceToSqrtPriceX64(new O(e.price),e.mintA.decimals,e.mintB.decimals),c=U.getSqrtPriceX64FromTick(t.tickLower),u=U.getSqrtPriceX64FromTick(t.tickUpper),l=o?1+r:1-r,d=$.getAmountsFromLiquidity(a,c,u,n,o),[f,m]=[ye(d.amountA,(y=e.mintA.extensions)==null?void 0:y.feeConfig,s,!0),ye(d.amountB,(b=e.mintB.extensions)==null?void 0:b.feeConfig,s,!0)],[p,g]=[ye(new et(new O(d.amountA.toString()).mul(l).toFixed(0)),(h=e.mintA.extensions)==null?void 0:h.feeConfig,s,!0),ye(new et(new O(d.amountB.toString()).mul(l).toFixed(0)),(P=e.mintB.extensions)==null?void 0:P.feeConfig,s,!0)];return{liquidity:n,amountA:f,amountB:m,amountSlippageA:p,amountSlippageB:g,expirationTime:yt(f.expirationTime,m.expirationTime)}}};var Ls=15,Q=class{static async getTickArrays(e,t,n,r,o,s,a){let c=[],u=F.getTickArrayStartIndexByTick(r,o),l=F.getInitializedTickArrayInRange(s,a,o,u,Math.floor(Ls/2));for(let m=0;m<l.length;m++){let{publicKey:p}=J(t,n,l[m]);c.push(p)}let d=(await it(e,c)).map(m=>m!==null?sn.decode(m.data):null),f={};for(let m=0;m<c.length;m++){let p=d[m];p!==null&&(f[p.startTickIndex]=j(v({},p),{address:c[m]}))}return f}static nextInitializedTick(e,t,n,r,o,s){let{initializedTick:a,tickArrayAddress:c,tickArrayStartTickIndex:u}=this.nextInitializedTickInOneArray(e,t,n,r,o,s);for(;a==null||a.liquidityGross.lten(0);){if(u=F.getNextTickArrayStartIndex(u,o,s),this.checkIsValidStartIndex(u,o))throw new Error("No enough initialized tickArray");let l=n[u];if(l===void 0)continue;let{nextTick:d,tickArrayAddress:f,tickArrayStartTickIndex:m}=this.firstInitializedTickInOneArray(e,t,l,s);[a,c,u]=[d,f,m]}if(a==null)throw new Error("No invaild tickArray cache");return{nextTick:a,tickArrayAddress:c,tickArrayStartTickIndex:u}}static nextInitializedTickArray(e,t,n,r,o){let s=Math.floor(e/Q.tickCount(t)),a=n?F.searchLowBitFromStart(r,o,s-1,1,t):F.searchHightBitFromStart(r,o,s+1,1,t);return a.length>0?{isExist:!0,nextStartIndex:a[0]}:{isExist:!1,nextStartIndex:0}}static firstInitializedTickInOneArray(e,t,n,r){let o;if(r){let a=ke-1;for(;a>=0;){let c=n.ticks[a];if(c.liquidityGross.gtn(0)){o=c;break}a=a-1}}else{let a=0;for(;a<ke;){let c=n.ticks[a];if(c.liquidityGross.gtn(0)){o=c;break}a=a+1}}let{publicKey:s}=J(e,t,n.startTickIndex);return{nextTick:o,tickArrayAddress:s,tickArrayStartTickIndex:n.startTickIndex}}static nextInitializedTickInOneArray(e,t,n,r,o,s){let a=F.getTickArrayStartIndexByTick(r,o),c=Math.floor((r-a)/o),u=n[a];if(u==null)return{initializedTick:void 0,tickArrayAddress:void 0,tickArrayStartTickIndex:a};let l;if(s)for(;c>=0;){let f=u.ticks[c];if(f.liquidityGross.gtn(0)){l=f;break}c=c-1}else for(c=c+1;c<ke;){let f=u.ticks[c];if(f.liquidityGross.gtn(0)){l=f;break}c=c+1}let{publicKey:d}=J(e,t,a);return{initializedTick:l,tickArrayAddress:d,tickArrayStartTickIndex:u.startTickIndex}}static getArrayStartIndex(e,t){let n=this.tickCount(t);return Math.floor(e/n)*n}static checkIsValidStartIndex(e,t){if(F.checkIsOutOfBoundary(e)){if(e>Ee)return!1;let n=F.getTickArrayStartIndexByTick(Re,t);return e==n}return e%this.tickCount(t)==0}static tickCount(e){return ke*e}};var yi=14,at=class{static maxTickInTickarrayBitmap(e){return e*ke*Tt}static getBitmapTickBoundary(e,t){let n=this.maxTickInTickarrayBitmap(t),r=Math.floor(Math.abs(e)/n);e<0&&Math.abs(e)%n!=0&&(r+=1);let o=n*r;return e<0?{minValue:-o,maxValue:-o+n}:{minValue:o,maxValue:o+n}}static nextInitializedTickArrayStartIndex(e,t,n,r){if(!Q.checkIsValidStartIndex(t,n))throw Error("nextInitializedTickArrayStartIndex check error");let o=this.maxTickInTickarrayBitmap(n),s=r?t-Q.tickCount(n):t+Q.tickCount(n);if(s<-o||s>=o)return{isInit:!1,tickIndex:t};let a=n*ke,c=s/a+512;s<0&&s%a!=0&&c--;let u=Math.abs(c);if(r){let l=e.shln(1024-u-1),d=pr(1024,l);if(d!==null){let f=(u-d-512)*a;return{isInit:!0,tickIndex:f}}else return{isInit:!1,tickIndex:-o}}else{let l=e.shrn(u),d=gr(1024,l);if(d!==null){let f=(u+d-512)*a;return{isInit:!0,tickIndex:f}}else return{isInit:!1,tickIndex:o-Q.tickCount(n)}}}},an=class{static getBitmapOffset(e,t){if(!Q.checkIsValidStartIndex(e,t))throw new Error("No enough initialized tickArray");this.checkExtensionBoundary(e,t);let n=at.maxTickInTickarrayBitmap(t),r=Math.floor(Math.abs(e)/n)-1;return e<0&&Math.abs(e)%n===0&&r--,r}static getBitmap(e,t,n){let r=this.getBitmapOffset(e,t);return e<0?{offset:r,tickarrayBitmap:n.negativeTickArrayBitmap[r]}:{offset:r,tickarrayBitmap:n.positiveTickArrayBitmap[r]}}static checkExtensionBoundary(e,t){let{positiveTickBoundary:n,negativeTickBoundary:r}=this.extensionTickBoundary(t);if(e>=r&&e<n)throw Error("checkExtensionBoundary -> InvalidTickArrayBoundary")}static extensionTickBoundary(e){let t=at.maxTickInTickarrayBitmap(e),n=-t;if(Ee<=t)throw Error(`extensionTickBoundary check error: ${Ee}, ${t}`);if(n<=Re)throw Error(`extensionTickBoundary check error: ${n}, ${Re}`);return{positiveTickBoundary:t,negativeTickBoundary:n}}static checkTickArrayIsInit(e,t,n){let{tickarrayBitmap:r}=this.getBitmap(e,t,n),o=this.tickArrayOffsetInBitmap(e,t);return{isInitialized:F.mergeTickArrayBitmap(r).testn(o),startIndex:e}}static nextInitializedTickArrayFromOneBitmap(e,t,n,r){let o=Q.tickCount(t),s=n?e-o:e+o,{tickarrayBitmap:a}=this.getBitmap(s,t,r);return this.nextInitializedTickArrayInBitmap(a,s,t,n)}static nextInitializedTickArrayInBitmap(e,t,n,r){let{minValue:o,maxValue:s}=at.getBitmapTickBoundary(t,n),a=this.tickArrayOffsetInBitmap(t,n);if(r){let c=F.mergeTickArrayBitmap(e).shln(Tt-1-a),u=tn(512,c)?null:mi(512,c);if(u!==null){let l=t-u*Q.tickCount(n);return{isInit:!0,tickIndex:l}}else return{isInit:!1,tickIndex:o}}else{let c=F.mergeTickArrayBitmap(e).shrn(a),u=tn(512,c)?null:fi(512,c);if(u!==null){let l=t+u*Q.tickCount(n);return{isInit:!0,tickIndex:l}}else return{isInit:!1,tickIndex:s-Q.tickCount(n)}}}static tickArrayOffsetInBitmap(e,t){let n=Math.abs(e)%at.maxTickInTickarrayBitmap(t),r=Math.floor(n/Q.tickCount(t));return e<0&&n!=0&&(r=Tt-r),r}};var pe=class{static getOutputAmountAndRemainAccounts(e,t,n,r,o,s=!1){let a=n.toBase58()===e.mintA.address,c=[],{isExist:u,startIndex:l,nextAccountMeta:d}=this.getFirstInitializedTickArray(e,a);if(!u||l===void 0||!d)throw new Error("Invalid tick array");c.push(d);let{allTrade:f,amountCalculated:m,accounts:p,sqrtPriceX64:g,feeAmount:y}=At.swapCompute(e.programId,e.id,t,e.tickArrayBitmap,e.exBitmapInfo,a,e.ammConfig.tradeFeeRate,e.liquidity,e.tickCurrent,e.tickSpacing,e.sqrtPriceX64,r,l,o,s);return c.push(...p),{allTrade:f,expectedAmountOut:m.mul(st),remainingAccounts:c,executionPrice:g,feeAmount:y}}static getInputAmountAndRemainAccounts(e,t,n,r,o){let s=n.toBase58()===e.mintB.address,a=[],{isExist:c,startIndex:u,nextAccountMeta:l}=this.getFirstInitializedTickArray(e,s);if(!c||u===void 0||!l)throw new Error("Invalid tick array");try{let g=this.preInitializedTickArrayStartIndex(e,s);if(g.isExist){let{publicKey:y}=J(e.programId,e.id,g.nextStartIndex);a.push(y)}}catch{}a.push(l);let{amountCalculated:d,accounts:f,sqrtPriceX64:m,feeAmount:p}=At.swapCompute(e.programId,e.id,t,e.tickArrayBitmap,e.exBitmapInfo,s,e.ammConfig.tradeFeeRate,e.liquidity,e.tickCurrent,e.tickSpacing,e.sqrtPriceX64,r.mul(st),u,o);return a.push(...f),{expectedAmountIn:d,remainingAccounts:a,executionPrice:m,feeAmount:p}}static getFirstInitializedTickArray(e,t){let{isInitialized:n,startIndex:r}=pe.isOverflowDefaultTickarrayBitmap(e.tickSpacing,[e.tickCurrent])?an.checkTickArrayIsInit(Q.getArrayStartIndex(e.tickCurrent,e.tickSpacing),e.tickSpacing,e.exBitmapInfo):F.checkTickArrayIsInitialized(F.mergeTickArrayBitmap(e.tickArrayBitmap),e.tickCurrent,e.tickSpacing);if(n){let{publicKey:a}=J(e.programId,e.id,r);return{isExist:!0,startIndex:r,nextAccountMeta:a}}let{isExist:o,nextStartIndex:s}=this.nextInitializedTickArrayStartIndex(e,Q.getArrayStartIndex(e.tickCurrent,e.tickSpacing),t);if(o){let{publicKey:a}=J(e.programId,e.id,s);return{isExist:!0,startIndex:s,nextAccountMeta:a}}return{isExist:!1,nextAccountMeta:void 0,startIndex:void 0}}static preInitializedTickArrayStartIndex(e,t){let n=Math.floor(e.tickCurrent/Q.tickCount(e.tickSpacing)),r=t?F.searchHightBitFromStart(e.tickArrayBitmap,e.exBitmapInfo,n+1,1,e.tickSpacing):F.searchLowBitFromStart(e.tickArrayBitmap,e.exBitmapInfo,n-1,1,e.tickSpacing);return r.length>0?{isExist:!0,nextStartIndex:r[0]}:{isExist:!1,nextStartIndex:0}}static nextInitializedTickArrayStartIndex(e,t,n){for(t=Q.getArrayStartIndex(e.tickCurrent,e.tickSpacing);;){let{isInit:r,tickIndex:o}=at.nextInitializedTickArrayStartIndex(F.mergeTickArrayBitmap(e.tickArrayBitmap),t,e.tickSpacing,n);if(r)return{isExist:!0,nextStartIndex:o};t=o;let{isInit:s,tickIndex:a}=an.nextInitializedTickArrayFromOneBitmap(t,e.tickSpacing,n,e.exBitmapInfo);if(s)return{isExist:!0,nextStartIndex:a};if(t=a,t<Re||t>Ee)return{isExist:!1,nextStartIndex:0}}}static async updatePoolRewardInfos({connection:e,apiPoolInfo:t,chainTime:n,poolLiquidity:r,rewardInfos:o}){var a,c,u;let s=[];for(let l=0;l<o.length;l++){let d=o[l],f=(u=(a=t.rewardDefaultInfos[l])==null?void 0:a.mint.programId)!=null?u:(c=await e.getAccountInfo(d.tokenMint))==null?void 0:c.owner;if(f===void 0)throw Error("get new reward mint info error");let m=j(v({},d),{perSecond:G.x64ToDecimal(d.emissionsPerSecondX64),remainingRewards:void 0,tokenProgramId:new qe(f)});if(m.tokenMint.equals(qe.default))continue;if(n<=m.openTime.toNumber()||r.eq(fe)){s.push(m);continue}let p=new ue(Math.min(m.endTime.toNumber(),n)),g=p.sub(m.lastUpdateTime),y=G.mulDivFloor(g,m.emissionsPerSecondX64,r),b=m.rewardGrowthGlobalX64.add(y),h=G.mulDivFloor(g,m.emissionsPerSecondX64,We),P=m.rewardTotalEmissioned.add(h);s.push(j(v({},m),{rewardGrowthGlobalX64:b,rewardTotalEmissioned:P,lastUpdateTime:p}))}return s}static isOverflowDefaultTickarrayBitmap(e,t){let{maxTickBoundary:n,minTickBoundary:r}=this.tickRange(e);for(let o of t){let s=F.getTickArrayStartIndexByTick(o,e);if(s>=n||s<r)return!0}return!1}static tickRange(e){let t=at.maxTickInTickarrayBitmap(e),n=-t;return t>Ee&&(t=Q.getArrayStartIndex(Ee,e)+Q.tickCount(e)),n<Re&&(n=Q.getArrayStartIndex(Re,e)),{maxTickBoundary:t,minTickBoundary:n}}static get_tick_array_offset(e,t){if(!Q.checkIsValidStartIndex(e,t))throw new Error("No enough initialized tickArray");return e/Q.tickCount(t)*Tt}static async fetchExBitmaps({connection:e,exBitmapAddress:t,batchRequest:n}){let r=await rt(e,t.map(s=>({pubkey:s})),{batchRequest:n}),o={};for(let s of r)s.accountInfo!==null&&(o[s.pubkey.toString()]=Ar.decode(s.accountInfo.data));return o}static async fetchMultiplePoolTickArrays({connection:e,poolKeys:t,batchRequest:n}){let r={},o=[];for(let c of t){let u=F.getTickArrayStartIndexByTick(c.tickCurrent,c.tickSpacing),l=F.getInitializedTickArrayInRange(c.tickArrayBitmap,c.exBitmapInfo,c.tickSpacing,u,7);for(let d of l){let{publicKey:f}=J(c.programId,c.id,d);o.push({pubkey:f}),r[f.toString()]=c.id}}let s=await rt(e,o,{batchRequest:n}),a={};for(let c of s){if(!c.accountInfo)continue;let u=r[c.pubkey.toString()];if(!u)continue;a[u.toString()]===void 0&&(a[u.toString()]={});let l=sn.decode(c.accountInfo.data);a[u.toString()][l.startTickIndex]=j(v({},l),{address:c.pubkey})}return a}static async fetchPoolsAccountPosition({pools:e,connection:t,ownerInfo:n,batchRequest:r=!1,updateOwnerRewardAndFee:o=!0}){var a;let s=[];for(let c=0;c<e.length;c++){let u=e[c];u!==null&&(s.find(l=>l.equals(u.state.programId))||s.push(u.state.programId))}if(n){let c=n.tokenAccounts.map(f=>f.accountInfo.mint),u=[];for(let f of c)for(let m of s)u.push(Fe(m,f).publicKey);let l=await it(t,u,{batchRequest:r}),d={};for(let f of l){if(f===null)continue;let m=_t.decode(f.data),p=m.poolId.toString(),g=e.find(x=>x.state.id.toBase58()===p);if(g===void 0)continue;let y=g.state,b=F._getTickPriceLegacy({poolInfo:y,tick:m.tickLower,baseIn:!0}),h=F._getTickPriceLegacy({poolInfo:y,tick:m.tickUpper,baseIn:!0}),{amountA:P,amountB:T}=$.getAmountsFromLiquidity(y.sqrtPriceX64,b.tickSqrtPriceX64,h.tickSqrtPriceX64,m.liquidity,!1),k=1/(1-Math.sqrt(Math.sqrt(b.price.div(h.price).toNumber())));g.positionAccount=[...(a=g.positionAccount)!=null?a:[],{poolId:m.poolId,nftMint:m.nftMint,priceLower:b.price,priceUpper:h.price,amountA:P,amountB:T,tickLower:m.tickLower,tickUpper:m.tickUpper,liquidity:m.liquidity,feeGrowthInsideLastX64A:m.feeGrowthInsideLastX64A,feeGrowthInsideLastX64B:m.feeGrowthInsideLastX64B,tokenFeesOwedA:m.tokenFeesOwedA,tokenFeesOwedB:m.tokenFeesOwedB,rewardInfos:m.rewardInfos.map(x=>j(v({},x),{pendingReward:new ue(0)})),leverage:k,tokenFeeAmountA:new ue(0),tokenFeeAmountB:new ue(0)}];let w=await F.getTickArrayAddressByTick(g.state.programId,m.poolId,m.tickLower,g.state.tickSpacing),A=await F.getTickArrayAddressByTick(g.state.programId,m.poolId,m.tickUpper,g.state.tickSpacing);d[`${g.state.programId.toString()}-${m.poolId.toString()}-${m.tickLower}`]=w,d[`${g.state.programId.toString()}-${m.poolId.toString()}-${m.tickUpper}`]=A}if(o){let f=Object.values(d),m=await it(t,f,{batchRequest:r}),p={};for(let g=0;g<f.length;g++){let y=m[g];if(y===null)continue;let b=f[g].toString();p[b]=sn.decode(y.data)}for(let{state:g,positionAccount:y}of e)if(!!y)for(let b of y){let h=`${g.programId.toString()}-${g.id.toString()}-${b.tickLower}`,P=`${g.programId.toString()}-${g.id.toString()}-${b.tickUpper}`,T=p[d[h].toString()],k=p[d[P].toString()],w=T.ticks[F.getTickOffsetInArray(b.tickLower,g.tickSpacing)],A=k.ticks[F.getTickOffsetInArray(b.tickUpper,g.tickSpacing)],{tokenFeeAmountA:x,tokenFeeAmountB:B}=await on.GetPositionFees(g,b,w,A),K=await on.GetPositionRewards(g,b,w,A);b.tokenFeeAmountA=x.gte(new ue(0))?x:new ue(0),b.tokenFeeAmountB=B.gte(new ue(0))?B:new ue(0);for(let N=0;N<K.length;N++)b.rewardInfos[N].pendingReward=K[N].gte(new ue(0))?K[N]:new ue(0)}}}return e}static computeAmountOut({poolInfo:e,tickArrayCache:t,baseMint:n,epochInfo:r,amountIn:o,slippage:s,priceLimit:a=new O(0),catchLiquidityInsufficient:c=!1}){var L;let u,l=n.toBase58()===e.mintA.address,[d,f]=l?[e.mintA.extensions.feeConfig,e.mintB.extensions.feeConfig]:[e.mintB.extensions.feeConfig,e.mintA.extensions.feeConfig];a.equals(new O(0))?u=l?Qe.add(new ue(1)):$e.sub(new ue(1)):u=U.priceToSqrtPriceX64(a,e.mintA.decimals,e.mintB.decimals);let m=ye(o,d,r,!1),{allTrade:p,expectedAmountOut:g,remainingAccounts:y,executionPrice:b,feeAmount:h}=pe.getOutputAmountAndRemainAccounts(e,t,n,m.amount.sub((L=m.fee)!=null?L:fe),u,c),P=ye(g,f,r,!1),T=U.sqrtPriceX64ToPrice(b,e.mintA.decimals,e.mintB.decimals),k=l?T:new O(1).div(T),w=g.mul(new ue(Math.floor((1-s)*1e10))).div(new ue(1e10)),A=ye(w,f,r,!1),x=l?e.currentPrice:new O(1).div(e.currentPrice),B=new O(k).sub(x).abs(),K=x,N=new bt(new O(B).mul(10**15).toFixed(0),new O(K).mul(10**15).toFixed(0));return{allTrade:p,realAmountIn:m,amountOut:P,minAmountOut:A,expirationTime:yt(m.expirationTime,P.expirationTime),currentPrice:e.currentPrice,executionPrice:k,priceImpact:N,fee:h,remainingAccounts:y,executionPriceX64:b}}static computeAmountOutFormat({poolInfo:e,tickArrayCache:t,amountIn:n,tokenOut:r,slippage:o,epochInfo:s,catchLiquidityInsufficient:a=!1}){let c=r.address===e.mintB.address,[u,l]=c?[e.mintA,e.mintB]:[e.mintB,e.mintA],[d,f]=[new Ye(j(v({},u),{mint:u.address,isToken2022:u.programId===kr.toBase58()})),new Ye(j(v({},l),{mint:l.address,isToken2022:l.programId===kr.toBase58()}))],{allTrade:m,realAmountIn:p,amountOut:g,minAmountOut:y,expirationTime:b,currentPrice:h,executionPrice:P,priceImpact:T,fee:k,remainingAccounts:w,executionPriceX64:A}=pe.computeAmountOut({poolInfo:e,tickArrayCache:t,baseMint:new qe(u.address),amountIn:n,slippage:o,epochInfo:s,catchLiquidityInsufficient:a}),x=j(v({},p),{amount:new Se(d,p.amount),fee:p.fee===void 0?void 0:new Se(d,p.fee)}),B=j(v({},g),{amount:new Se(f,g.amount),fee:g.fee===void 0?void 0:new Se(f,g.fee)}),K=j(v({},y),{amount:new Se(f,y.amount),fee:y.fee===void 0?void 0:new Se(f,y.fee)}),N=new He({baseToken:d,denominator:new ue(10).pow(new ue(20+d.decimals)),quoteToken:f,numerator:h.mul(new O(10**(20+f.decimals))).toFixed(0)}),L=new He({baseToken:d,denominator:new ue(10).pow(new ue(20+d.decimals)),quoteToken:f,numerator:P.mul(new O(10**(20+f.decimals))).toFixed(0)}),E=new Se(d,k);return{allTrade:m,realAmountIn:x,amountOut:B,minAmountOut:K,expirationTime:b,currentPrice:N,executionPrice:L,priceImpact:T,fee:E,remainingAccounts:w,executionPriceX64:A}}static computeAmountIn({poolInfo:e,tickArrayCache:t,baseMint:n,epochInfo:r,amountOut:o,slippage:s,priceLimit:a=new O(0)}){var K;let c=n.toBase58()===e.mintA.address,u={[e.mintA.address]:e.mintA.extensions.feeConfig,[e.mintB.address]:e.mintB.extensions.feeConfig},l;a.equals(new O(0))?l=c?$e.sub(new ue(1)):Qe.add(new ue(1)):l=U.priceToSqrtPriceX64(a,e.mintA.decimals,e.mintB.decimals);let d=ye(o,u[n.toString()],r,!0),{expectedAmountIn:f,remainingAccounts:m,executionPrice:p,feeAmount:g}=pe.getInputAmountAndRemainAccounts(e,t,n,d.amount.sub((K=d.fee)!=null?K:fe),l),y=c?e.mintB.address:e.mintA.address,b=ye(f,u[y],r,!1),h=U.sqrtPriceX64ToPrice(p,e.mintA.decimals,e.mintB.decimals),P=c?h:new O(1).div(h),T=f.mul(new ue(Math.floor((1+s)*1e10))).div(new ue(1e10)),k=ye(T,u[y],r,!0),w=c?e.currentPrice:new O(1).div(e.currentPrice),A=new O(P).sub(w).abs(),x=w,B=new bt(new O(A).mul(10**15).toFixed(0),new O(x).mul(10**15).toFixed(0));return{amountIn:b,maxAmountIn:k,realAmountOut:d,expirationTime:yt(b.expirationTime,d.expirationTime),currentPrice:e.currentPrice,executionPrice:P,priceImpact:B,fee:g,remainingAccounts:m}}static estimateAprsForPriceRangeMultiplier({poolInfo:e,aprType:t,positionTickLowerIndex:n,positionTickUpperIndex:r}){var p,g,y;let o=e[t],s=F.getTickPrice({poolInfo:e,tick:n,baseIn:!0}).price.toNumber(),a=F.getTickPrice({poolInfo:e,tick:r,baseIn:!0}).price.toNumber(),c=Math.max(s,o.priceMin),l=Math.min(a,o.priceMax)-c,d=a-s,f=o.priceMax-o.priceMin,m;return l<=0?m=0:d===l?m=f/l:f===l?m=l/d:m=l/f*(l/d),{feeApr:o.feeApr*m,rewardsApr:[((p=o.rewardApr[0])!=null?p:0)*m,((g=o.rewardApr[1])!=null?g:0)*m,((y=o.rewardApr[2])!=null?y:0)*m],apr:o.apr*m}}static estimateAprsForPriceRangeDelta({poolInfo:e,poolLiquidity:t,aprType:n,mintPrice:r,liquidity:o,positionTickLowerIndex:s,positionTickUpperIndex:a,chainTime:c}){let u=n==="day"?1:n==="week"?7:n==="month"?30:0,l=e[n],d=r[ht(e.mintA.address).toString()],f=r[ht(e.mintB.address).toString()],m=e.mintA.decimals,p=e.mintB.decimals;if(!l||!d||!f)return{feeApr:0,rewardsApr:[0,0,0],apr:0};let g=U.priceToSqrtPriceX64(new O(e.price),e.mintA.decimals,e.mintB.decimals),y=U.getSqrtPriceX64FromTick(s),b=U.getSqrtPriceX64FromTick(a),{amountSlippageA:h,amountSlippageB:P}=$.getAmountsFromLiquidityWithSlippage(g,y,b,t,!1,!1,0),{amountSlippageA:T,amountSlippageB:k}=$.getAmountsFromLiquidityWithSlippage(g,y,b,o,!1,!1,0),w=new O(h.toString()).div(new O(10).pow(m)).mul(d.value).add(new O(P.toString()).div(new O(10).pow(p)).mul(f.value)),A=new O(T.toString()).div(new O(10).pow(m)).mul(d.value).add(new O(k.toString()).div(new O(10).pow(p)).mul(f.value)),x=new O(1).div(w.add(A)),K=new O(l.volumeFee).mul(365).div(u).mul(x).mul(100).toNumber(),N=3600*24*365,L=e.rewardDefaultInfos.map(E=>{var _,Te;let C=E.mint.decimals,M=r[E.mint.address];return c<((_=E.startTime)!=null?_:0)||c>((Te=E.endTime)!=null?Te:0)||!E.perSecond||!M||C===void 0?0:new O(M.value).mul(new O(E.perSecond).mul(N)).div(new O(10).pow(C)).mul(x).mul(100).toNumber()});return{feeApr:K,rewardsApr:L,apr:K+L.reduce((E,C)=>E+C,0)}}static async getLiquidityAmountOutFromAmountIn({poolInfo:e,inputA:t,tickLower:n,tickUpper:r,amount:o,slippage:s,add:a,epochInfo:c,amountHasFee:u}){var b,h;let l=U.priceToSqrtPriceX64(new O(e.price),e.mintA.decimals,e.mintB.decimals),d=U.getSqrtPriceX64FromTick(n),f=U.getSqrtPriceX64FromTick(r),m=ye(o,(b=e[t?"mintA":"mintB"].extensions)==null?void 0:b.feeConfig,c,!u),p=new ue(new O(m.amount.sub((h=m.fee)!=null?h:fe).toString()).toFixed(0)),g;if(l.lte(d))g=t?$.getLiquidityFromTokenAmountA(d,f,p,!a):new ue(0);else if(l.lte(f)){let P=$.getLiquidityFromTokenAmountA(l,f,p,!a),T=$.getLiquidityFromTokenAmountB(d,l,p);g=t?P:T}else g=t?new ue(0):$.getLiquidityFromTokenAmountB(d,f,p);let y=await pe.getAmountsFromLiquidity({epochInfo:c,poolInfo:e,tickLower:n,tickUpper:r,liquidity:g,slippage:s,add:a});return{liquidity:g,amountA:t?m:y.amountA,amountB:t?y.amountB:m,amountSlippageA:t?m:y.amountSlippageA,amountSlippageB:t?y.amountSlippageB:m,expirationTime:y.expirationTime}}static async getAmountsFromLiquidity({epochInfo:e,poolInfo:t,tickLower:n,tickUpper:r,liquidity:o,slippage:s,add:a}){var y,b,h,P;let c=U.getSqrtPriceX64FromTick(n),u=U.getSqrtPriceX64FromTick(r),l=a?1+s:1-s,d=$.getAmountsFromLiquidity(U.priceToSqrtPriceX64(new O(t.price),t.mintA.decimals,t.mintB.decimals),c,u,o,a),[f,m]=[ye(d.amountA,(y=t.mintA.extensions)==null?void 0:y.feeConfig,e,!0),ye(d.amountB,(b=t.mintB.extensions)==null?void 0:b.feeConfig,e,!0)],[p,g]=[ye(d.amountA.muln(l),(h=t.mintA.extensions)==null?void 0:h.feeConfig,e,!0),ye(d.amountB.muln(l),(P=t.mintB.extensions)==null?void 0:P.feeConfig,e,!0)];return{liquidity:o,amountA:f,amountB:m,amountSlippageA:p,amountSlippageB:g,expirationTime:yt(f.expirationTime,m.expirationTime)}}static async fetchComputeMultipleClmmInfo({connection:e,poolList:t,rpcDataMap:n={}}){let r=t.filter(c=>!n[c.id]).map(c=>new qe(c.id));(await it(e,r)).forEach((c,u)=>{!c||(n[r[u].toBase58()]=Mn.decode(c.data))});let s=t.map(c=>he(new qe(c.programId),new qe(c.id)).publicKey),a=await pe.fetchExBitmaps({connection:e,exBitmapAddress:s,batchRequest:!1});return t.reduce((c,u)=>j(v({},c),{[u.id]:j(v({},n[u.id]),{id:new qe(u.id),version:6,programId:new qe(u.programId),mintA:u.mintA,mintB:u.mintB,ammConfig:j(v({},u.config),{id:new qe(u.config.id),fundOwner:""}),currentPrice:new O(u.price),exBitmapAccount:he(new qe(u.programId),new qe(u.id)).publicKey,exBitmapInfo:a[he(new qe(u.programId),new qe(u.id)).publicKey.toBase58()],startTime:n[u.id].startTime.toNumber(),rewardInfos:n[u.id].rewardInfos})}),{})}static async fetchComputeClmmInfo({connection:e,poolInfo:t,rpcData:n}){return(await this.fetchComputeMultipleClmmInfo({connection:e,rpcDataMap:n?{[t.id]:n}:void 0,poolList:[t]}))[t.id]}};var wi={volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[]};function Tr(i){return j(v({},i),{type:"Concentrated",programId:i.programId.toString(),id:i.id.toString(),rewardDefaultInfos:[],rewardDefaultPoolInfos:"Clmm",price:i.currentPrice.toNumber(),mintAmountA:0,mintAmountB:0,feeRate:i.ammConfig.tradeFeeRate,openTime:i.startTime.toString(),tvl:0,day:wi,week:wi,month:wi,pooltype:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0,burnPercent:0,config:j(v({},i.ammConfig),{id:i.ammConfig.id.toString(),defaultRange:0,defaultRangePoint:[]})})}var G=class{static mulDivRoundingUp(e,t,n){let r=e.mul(t),o=r.div(n);return r.mod(n).eq(fe)||(o=o.add(Je)),o}static mulDivFloor(e,t,n){if(n.eq(fe))throw new Error("division by 0");return e.mul(t).div(n)}static mulDivCeil(e,t,n){if(n.eq(fe))throw new Error("division by 0");return e.mul(t).add(n.sub(Je)).div(n)}static x64ToDecimal(e,t){return new O(e.toString()).div(O.pow(2,64)).toDecimalPlaces(t)}static decimalToX64(e){return new Z(e.mul(O.pow(2,64)).floor().toFixed())}static wrappingSubU128(e,t){return e.add(Nn).sub(t).mod(Nn)}};function xe(i,e){return hi(i.mul(e),64,256)}function Rs(i,e,t){let n=i.toTwos(t).shln(e);return n.imaskn(t+1),n.fromTwos(t)}function hi(i,e,t){let n=i.toTwos(t).shrn(e);return n.imaskn(t-e+1),n.fromTwos(t-e)}var U=class{static sqrtPriceX64ToPrice(e,t,n){return G.x64ToDecimal(e).pow(2).mul(O.pow(10,t-n))}static priceToSqrtPriceX64(e,t,n){return G.decimalToX64(e.mul(O.pow(10,n-t)).sqrt())}static getNextSqrtPriceX64FromInput(e,t,n,r){if(!e.gt(fe))throw new Error("sqrtPriceX64 must greater than 0");if(!t.gt(fe))throw new Error("liquidity must greater than 0");return r?this.getNextSqrtPriceFromTokenAmountARoundingUp(e,t,n,!0):this.getNextSqrtPriceFromTokenAmountBRoundingDown(e,t,n,!0)}static getNextSqrtPriceX64FromOutput(e,t,n,r){if(!e.gt(fe))throw new Error("sqrtPriceX64 must greater than 0");if(!t.gt(fe))throw new Error("liquidity must greater than 0");return r?this.getNextSqrtPriceFromTokenAmountBRoundingDown(e,t,n,!1):this.getNextSqrtPriceFromTokenAmountARoundingUp(e,t,n,!1)}static getNextSqrtPriceFromTokenAmountARoundingUp(e,t,n,r){if(n.eq(fe))return e;let o=t.shln(en);if(r){let s=o,a=o.add(n.mul(e));return a.gte(s)?G.mulDivCeil(s,e,a):G.mulDivRoundingUp(s,Je,s.div(e).add(n))}else{let s=n.mul(e);if(!o.gt(s))throw new Error("getNextSqrtPriceFromTokenAmountARoundingUp,liquidityLeftShift must gt amountMulSqrtPrice");let a=o.sub(s);return G.mulDivCeil(o,e,a)}}static getNextSqrtPriceFromTokenAmountBRoundingDown(e,t,n,r){let o=n.shln(en);if(r)return e.add(o.div(t));{let s=G.mulDivRoundingUp(o,Je,t);if(!e.gt(s))throw new Error("getNextSqrtPriceFromTokenAmountBRoundingDown sqrtPriceX64 must gt amountDivLiquidity");return e.sub(s)}}static getSqrtPriceX64FromTick(e){if(!Number.isInteger(e))throw new Error("tick must be integer");if(e<Re||e>Ee)throw new Error("tick must be in MIN_TICK and MAX_TICK");let t=e<0?e*-1:e,n=(t&1)!=0?new Z("18445821805675395072"):new Z("18446744073709551616");return(t&2)!=0&&(n=xe(n,new Z("18444899583751176192"))),(t&4)!=0&&(n=xe(n,new Z("18443055278223355904"))),(t&8)!=0&&(n=xe(n,new Z("18439367220385607680"))),(t&16)!=0&&(n=xe(n,new Z("18431993317065453568"))),(t&32)!=0&&(n=xe(n,new Z("18417254355718170624"))),(t&64)!=0&&(n=xe(n,new Z("18387811781193609216"))),(t&128)!=0&&(n=xe(n,new Z("18329067761203558400"))),(t&256)!=0&&(n=xe(n,new Z("18212142134806163456"))),(t&512)!=0&&(n=xe(n,new Z("17980523815641700352"))),(t&1024)!=0&&(n=xe(n,new Z("17526086738831433728"))),(t&2048)!=0&&(n=xe(n,new Z("16651378430235570176"))),(t&4096)!=0&&(n=xe(n,new Z("15030750278694412288"))),(t&8192)!=0&&(n=xe(n,new Z("12247334978884435968"))),(t&16384)!=0&&(n=xe(n,new Z("8131365268886854656"))),(t&32768)!=0&&(n=xe(n,new Z("3584323654725218816"))),(t&65536)!=0&&(n=xe(n,new Z("696457651848324352"))),(t&131072)!=0&&(n=xe(n,new Z("26294789957507116"))),(t&262144)!=0&&(n=xe(n,new Z("37481735321082"))),e>0&&(n=cr.div(n)),n}static getTickFromPrice(e,t,n){return U.getTickFromSqrtPriceX64(U.priceToSqrtPriceX64(e,t,n))}static getTickFromSqrtPriceX64(e){if(e.gt($e)||e.lt(Qe))throw new Error("Provided sqrtPrice is not within the supported sqrtPrice range.");let t=e.bitLength()-1,n=new Z(t-64),r=Rs(n,32,128),o=new Z("8000000000000000","hex"),s=0,a=new Z(0),c=t>=64?e.shrn(t-63):e.shln(63-t);for(;o.gt(new Z(0))&&s<ur;){c=c.mul(c);let p=c.shrn(127);c=c.shrn(63+p.toNumber()),a=a.add(o.mul(p)),o=o.shrn(1),s+=1}let u=a.shrn(32),d=r.add(u).mul(new Z(lr)),f=hi(d.sub(new Z(dr)),64,128).toNumber(),m=hi(d.add(new Z(mr)),64,128).toNumber();return f==m?f:U.getSqrtPriceX64FromTick(m).lte(e)?m:f}},xt=class{static getTickWithPriceAndTickspacing(e,t,n,r){let s=U.getTickFromSqrtPriceX64(U.priceToSqrtPriceX64(e,n,r))/t;return s<0?s=Math.floor(s):s=Math.ceil(s),s*t}static roundPriceWithTickspacing(e,t,n,r){let o=xt.getTickWithPriceAndTickspacing(e,t,n,r),s=U.getSqrtPriceX64FromTick(o);return U.sqrtPriceX64ToPrice(s,n,r)}},$=class{static addDelta(e,t){return e.add(t)}static getTokenAmountAFromLiquidity(e,t,n,r){if(e.gt(t)&&([e,t]=[t,e]),!e.gt(fe))throw new Error("sqrtPriceX64A must greater than 0");let o=n.ushln(en),s=t.sub(e);return r?G.mulDivRoundingUp(G.mulDivCeil(o,s,t),Je,e):G.mulDivFloor(o,s,t).div(e)}static getTokenAmountBFromLiquidity(e,t,n,r){if(e.gt(t)&&([e,t]=[t,e]),!e.gt(fe))throw new Error("sqrtPriceX64A must greater than 0");return r?G.mulDivCeil(n,t.sub(e),We):G.mulDivFloor(n,t.sub(e),We)}static getLiquidityFromTokenAmountA(e,t,n,r){e.gt(t)&&([e,t]=[t,e]);let o=n.mul(e).mul(t),s=t.sub(e),a=o.div(s);return r?G.mulDivRoundingUp(a,Je,di):a.shrn(en)}static getLiquidityFromTokenAmountB(e,t,n){return e.gt(t)&&([e,t]=[t,e]),G.mulDivFloor(n,di,t.sub(e))}static getLiquidityFromTokenAmounts(e,t,n,r,o){if(t.gt(n)&&([t,n]=[n,t]),e.lte(t))return $.getLiquidityFromTokenAmountA(t,n,r,!1);if(e.lt(n)){let s=$.getLiquidityFromTokenAmountA(e,n,r,!1),a=$.getLiquidityFromTokenAmountB(t,e,o);return s.lt(a)?s:a}else return $.getLiquidityFromTokenAmountB(t,n,o)}static getAmountsFromLiquidity(e,t,n,r,o){if(t.gt(n)&&([t,n]=[n,t]),e.lte(t))return{amountA:$.getTokenAmountAFromLiquidity(t,n,r,o),amountB:new Z(0)};if(e.lt(n)){let s=$.getTokenAmountAFromLiquidity(e,n,r,o),a=$.getTokenAmountBFromLiquidity(t,e,r,o);return{amountA:s,amountB:a}}else return{amountA:new Z(0),amountB:$.getTokenAmountBFromLiquidity(t,n,r,o)}}static getAmountsFromLiquidityWithSlippage(e,t,n,r,o,s,a){let{amountA:c,amountB:u}=$.getAmountsFromLiquidity(e,t,n,r,s),l=o?1+a:1-a,d=new Z(new O(c.toString()).mul(l).toFixed(0)),f=new Z(new O(u.toString()).mul(l).toFixed(0));return{amountSlippageA:d,amountSlippageB:f}}static getAmountsOutFromLiquidity({poolInfo:e,tickLower:t,tickUpper:n,liquidity:r,slippage:o,add:s,epochInfo:a,amountAddFee:c}){var h,P,T,k;let u=U.priceToSqrtPriceX64(new O(e.price),e.mintA.decimals,e.mintB.decimals),l=U.getSqrtPriceX64FromTick(t),d=U.getSqrtPriceX64FromTick(n),f=s?1+o:1-o,m=$.getAmountsFromLiquidity(u,l,d,r,s),[p,g]=[ye(m.amountA,(h=e.mintA.extensions)==null?void 0:h.feeConfig,a,c),ye(m.amountB,(P=e.mintB.extensions)==null?void 0:P.feeConfig,a,c)],[y,b]=[ye(new Z(new O(m.amountA.toString()).mul(f).toFixed(0)),(T=e.mintA.extensions)==null?void 0:T.feeConfig,a,c),ye(new Z(new O(m.amountB.toString()).mul(f).toFixed(0)),(k=e.mintB.extensions)==null?void 0:k.feeConfig,a,c)];return{liquidity:r,amountA:p,amountB:g,amountSlippageA:y,amountSlippageB:b,expirationTime:yt(p.expirationTime,g.expirationTime)}}},At=class{static swapCompute(e,t,n,r,o,s,a,c,u,l,d,f,m,p,g=!1){if(f.eq(fe))throw new Error("amountSpecified must not be 0");if(p||(p=s?Qe.add(Je):$e.sub(Je)),s){if(p.lt(Qe))throw new Error("sqrtPriceX64 must greater than MIN_SQRT_PRICE_X64");if(p.gte(d))throw new Error("sqrtPriceX64 must smaller than current")}else{if(p.gt($e))throw new Error("sqrtPriceX64 must smaller than MAX_SQRT_PRICE_X64");if(p.lte(d))throw new Error("sqrtPriceX64 must greater than current")}let y=f.gt(fe),b={amountSpecifiedRemaining:f,amountCalculated:fe,sqrtPriceX64:d,tick:u>m?Math.min(m+Q.tickCount(l)-1,u):m,accounts:[],liquidity:c,feeAmount:new Z(0)},h=m,P=n[m],T=0,k=!s&&P.startTickIndex===b.tick;for(;!b.amountSpecifiedRemaining.eq(fe)&&!b.sqrtPriceX64.eq(p);){T>10;let w={};w.sqrtPriceStartX64=b.sqrtPriceX64;let A=F.nextInitTick(P,b.tick,l,s,k),x=A||null,B=null;if(!(x!=null&&x.liquidityGross.gtn(0))){let N=pe.nextInitializedTickArrayStartIndex({tickCurrent:b.tick,tickSpacing:l,tickArrayBitmap:r,exBitmapInfo:o},h,s);if(!N.isExist){if(g)return{allTrade:!1,amountSpecifiedRemaining:b.amountSpecifiedRemaining,amountCalculated:b.amountCalculated,feeAmount:b.feeAmount,sqrtPriceX64:b.sqrtPriceX64,liquidity:b.liquidity,tickCurrent:b.tick,accounts:b.accounts};throw Error("swapCompute LiquidityInsufficient")}h=N.nextStartIndex;let{publicKey:L}=J(e,t,h);B=L,P=n[h];try{x=F.firstInitializedTick(P,s)}catch{throw Error("not found next tick info")}}w.tickNext=x.tick,w.initialized=x.liquidityGross.gtn(0),m!==h&&B&&(b.accounts.push(B),m=h),w.tickNext<Re?w.tickNext=Re:w.tickNext>Ee&&(w.tickNext=Ee),w.sqrtPriceNextX64=U.getSqrtPriceX64FromTick(w.tickNext);let K;if(s&&w.sqrtPriceNextX64.lt(p)||!s&&w.sqrtPriceNextX64.gt(p)?K=p:K=w.sqrtPriceNextX64,[b.sqrtPriceX64,w.amountIn,w.amountOut,w.feeAmount]=At.swapStepCompute(b.sqrtPriceX64,K,b.liquidity,b.amountSpecifiedRemaining,a,s),b.feeAmount=b.feeAmount.add(w.feeAmount),y?(b.amountSpecifiedRemaining=b.amountSpecifiedRemaining.sub(w.amountIn.add(w.feeAmount)),b.amountCalculated=b.amountCalculated.sub(w.amountOut)):(b.amountSpecifiedRemaining=b.amountSpecifiedRemaining.add(w.amountOut),b.amountCalculated=b.amountCalculated.add(w.amountIn.add(w.feeAmount))),b.sqrtPriceX64.eq(w.sqrtPriceNextX64)){if(w.initialized){let N=x.liquidityNet;s&&(N=N.mul(st)),b.liquidity=$.addDelta(b.liquidity,N)}k=w.tickNext!=b.tick&&!s&&P.startTickIndex===w.tickNext,b.tick=s?w.tickNext-1:w.tickNext}else if(b.sqrtPriceX64!=w.sqrtPriceStartX64){let N=U.getTickFromSqrtPriceX64(b.sqrtPriceX64);k=N!=b.tick&&!s&&P.startTickIndex===N,b.tick=N}++T}try{let{nextStartIndex:w,isExist:A}=Q.nextInitializedTickArray(b.tick,l,s,r,o);A&&m!==w&&(b.accounts.push(J(e,t,w).publicKey),m=w)}catch{}return{allTrade:!0,amountSpecifiedRemaining:fe,amountCalculated:b.amountCalculated,feeAmount:b.feeAmount,sqrtPriceX64:b.sqrtPriceX64,liquidity:b.liquidity,tickCurrent:b.tick,accounts:b.accounts}}static swapStepCompute(e,t,n,r,o,s){let a={sqrtPriceX64Next:new Z(0),amountIn:new Z(0),amountOut:new Z(0),feeAmount:new Z(0)},c=r.gte(fe);if(c){let l=G.mulDivFloor(r,Ln.sub(new Z(o.toString())),Ln);a.amountIn=s?$.getTokenAmountAFromLiquidity(t,e,n,!0):$.getTokenAmountBFromLiquidity(e,t,n,!0),l.gte(a.amountIn)?a.sqrtPriceX64Next=t:a.sqrtPriceX64Next=U.getNextSqrtPriceX64FromInput(e,n,l,s)}else a.amountOut=s?$.getTokenAmountBFromLiquidity(t,e,n,!1):$.getTokenAmountAFromLiquidity(e,t,n,!1),r.mul(st).gte(a.amountOut)?a.sqrtPriceX64Next=t:a.sqrtPriceX64Next=U.getNextSqrtPriceX64FromOutput(e,n,r.mul(st),s);let u=t.eq(a.sqrtPriceX64Next);return s?(u&&c||(a.amountIn=$.getTokenAmountAFromLiquidity(a.sqrtPriceX64Next,e,n,!0)),u&&!c||(a.amountOut=$.getTokenAmountBFromLiquidity(a.sqrtPriceX64Next,e,n,!1))):(a.amountIn=u&&c?a.amountIn:$.getTokenAmountBFromLiquidity(e,a.sqrtPriceX64Next,n,!0),a.amountOut=u&&!c?a.amountOut:$.getTokenAmountAFromLiquidity(e,a.sqrtPriceX64Next,n,!1)),!c&&a.amountOut.gt(r.mul(st))&&(a.amountOut=r.mul(st)),c&&!a.sqrtPriceX64Next.eq(t)?a.feeAmount=r.sub(a.amountIn):a.feeAmount=G.mulDivCeil(a.amountIn,new Z(o),Ln.sub(new Z(o))),[a.sqrtPriceX64Next,a.amountIn,a.amountOut,a.feeAmount]}};var ke=60,Tt=512,F=class{static getTickArrayAddressByTick(e,t,n,r){let o=F.getTickArrayStartIndexByTick(n,r),{publicKey:s}=J(e,t,o);return s}static getTickOffsetInArray(e,t){if(e%t!=0)throw new Error("tickIndex % tickSpacing not equal 0");let n=F.getTickArrayStartIndexByTick(e,t),r=Math.floor((e-n)/t);if(r<0||r>=ke)throw new Error("tick offset in array overflow");return r}static getTickArrayBitIndex(e,t){let n=Q.tickCount(t),r=e/n;return e<0&&e%n!=0?r=Math.ceil(r)-1:r=Math.floor(r),r}static getTickArrayStartIndexByTick(e,t){return this.getTickArrayBitIndex(e,t)*Q.tickCount(t)}static getTickArrayOffsetInBitmapByTick(e,t){let n=t*ke,r=Math.floor(e/n)+512;return Math.abs(r)}static checkTickArrayIsInitialized(e,t,n){let r=n*ke,o=Math.floor(t/r)+512,s=Math.abs(o);return{isInitialized:e.testn(s),startIndex:(s-512)*r}}static getNextTickArrayStartIndex(e,t,n){return n?e-t*ke:e+t*ke}static mergeTickArrayBitmap(e){let t=new Ms(0);for(let n=0;n<e.length;n++)t=t.add(e[n].shln(64*n));return t}static getInitializedTickArrayInRange(e,t,n,r,o){let s=Math.floor(r/(n*ke));return[...F.searchLowBitFromStart(e,t,s-1,o,n),...F.searchHightBitFromStart(e,t,s,o,n)]}static getAllInitializedTickArrayStartIndex(e,t,n){return F.searchHightBitFromStart(e,t,-7680,Tt,n)}static getAllInitializedTickArrayInfo(e,t,n,r,o){let s=[],a=F.getAllInitializedTickArrayStartIndex(n,r,o);for(let c of a){let{publicKey:u}=J(e,t,c);s.push({tickArrayStartIndex:c,tickArrayAddress:u})}return s}static getAllInitializedTickInTickArray(e){return e.ticks.filter(t=>t.liquidityGross.gtn(0))}static searchLowBitFromStart(e,t,n,r,o){let s=[...[...t.negativeTickArrayBitmap].reverse(),e.slice(0,8),e.slice(8,16),...t.positiveTickArrayBitmap].map(u=>F.mergeTickArrayBitmap(u)),a=[];for(;n>=-7680;){let u=Math.floor((n+7680)/512),l=(n+7680)%512;if(s[u].testn(l)&&a.push(n),n--,a.length===r)break}let c=Q.tickCount(o);return a.map(u=>u*c)}static searchHightBitFromStart(e,t,n,r,o){let s=[...[...t.negativeTickArrayBitmap].reverse(),e.slice(0,8),e.slice(8,16),...t.positiveTickArrayBitmap].map(u=>F.mergeTickArrayBitmap(u)),a=[];for(;n<7680;){let u=Math.floor((n+7680)/512),l=(n+7680)%512;if(s[u].testn(l)&&a.push(n),n++,a.length===r)break}let c=Q.tickCount(o);return a.map(u=>u*c)}static checkIsOutOfBoundary(e){return e<Re||e>Ee}static nextInitTick(e,t,n,r,o){if(Q.getArrayStartIndex(t,n)!=e.startTickIndex)return null;let a=Math.floor((t-e.startTickIndex)/n);if(r)for(;a>=0;){if(e.ticks[a].liquidityGross.gtn(0))return e.ticks[a];a=a-1}else for(o||(a=a+1);a<ke;){if(e.ticks[a].liquidityGross.gtn(0))return e.ticks[a];a=a+1}return null}static firstInitializedTick(e,t){if(t){let n=ke-1;for(;n>=0;){if(e.ticks[n].liquidityGross.gtn(0))return e.ticks[n];n=n-1}}else{let n=0;for(;n<ke;){if(e.ticks[n].liquidityGross.gtn(0))return e.ticks[n];n=n+1}}throw Error(`firstInitializedTick check error: ${e} - ${t}`)}static _getTickPriceLegacy({poolInfo:e,tick:t,baseIn:n}){let r=U.getSqrtPriceX64FromTick(t),o=U.sqrtPriceX64ToPrice(r,e.mintA.decimals,e.mintB.decimals);return n?{tick:t,price:o,tickSqrtPriceX64:r}:{tick:t,price:new O(1).div(o),tickSqrtPriceX64:r}}static _getPriceAndTickLegacy({poolInfo:e,price:t,baseIn:n}){let r=n?t:new O(1).div(t),o=xt.getTickWithPriceAndTickspacing(r,e.ammConfig.tickSpacing,e.mintA.decimals,e.mintB.decimals),s=U.getSqrtPriceX64FromTick(o),a=U.sqrtPriceX64ToPrice(s,e.mintA.decimals,e.mintB.decimals);return n?{tick:o,price:a}:{tick:o,price:new O(1).div(a)}}static getTickPrice({poolInfo:e,tick:t,baseIn:n}){let r=U.getSqrtPriceX64FromTick(t),o=U.sqrtPriceX64ToPrice(r,e.mintA.decimals,e.mintB.decimals);return n?{tick:t,price:o,tickSqrtPriceX64:r}:{tick:t,price:new O(1).div(o),tickSqrtPriceX64:r}}static getPriceAndTick({poolInfo:e,price:t,baseIn:n}){let r=n?t:new O(1).div(t),o=xt.getTickWithPriceAndTickspacing(r,e.config.tickSpacing,e.mintA.decimals,e.mintB.decimals),s=U.getSqrtPriceX64FromTick(o),a=U.sqrtPriceX64ToPrice(s,e.mintA.decimals,e.mintB.decimals);return n?{tick:o,price:a}:{tick:o,price:new O(1).div(a)}}};var xr=ne([De(8),ge("bump"),$t("index"),re(""),Et("protocolFeeRate"),Et("tradeFeeRate"),$t("tickSpacing"),me(W(),8,"")]),Os=ne([Et("blockTimestamp"),sr("tickCumulative"),me(W(),4)]),Br=ne([De(8),Oe("initialized"),W("recentEpoch"),$t("observationIndex"),re("poolId"),me(Os,100,"observations"),me(W(),4)]),Es=ne([ge("rewardState"),W("openTime"),W("endTime"),W("lastUpdateTime"),Y("emissionsPerSecondX64"),W("rewardTotalEmissioned"),W("rewardClaimed"),re("tokenMint"),re("tokenVault"),re("creator"),Y("rewardGrowthGlobalX64")]),Mn=ne([De(8),ge("bump"),re("ammConfig"),re("creator"),re("mintA"),re("mintB"),re("vaultA"),re("vaultB"),re("observationId"),ge("mintDecimalsA"),ge("mintDecimalsB"),$t("tickSpacing"),Y("liquidity"),Y("sqrtPriceX64"),ce("tickCurrent"),Et(),Y("feeGrowthGlobalX64A"),Y("feeGrowthGlobalX64B"),W("protocolFeesTokenA"),W("protocolFeesTokenB"),Y("swapInAmountTokenA"),Y("swapOutAmountTokenB"),Y("swapInAmountTokenB"),Y("swapOutAmountTokenA"),ge("status"),me(ge(),7,""),me(Es,3,"rewardInfos"),me(W(),16,"tickArrayBitmap"),W("totalFeesTokenA"),W("totalFeesClaimedTokenA"),W("totalFeesTokenB"),W("totalFeesClaimedTokenB"),W("fundFeesTokenA"),W("fundFeesTokenB"),W("startTime"),me(W(),15*4-3,"padding")]),Fs=ne([Y("growthInsideLastX64"),W("rewardAmountOwed")]),_t=ne([De(8),ge("bump"),re("nftMint"),re("poolId"),ce("tickLower"),ce("tickUpper"),Y("liquidity"),Y("feeGrowthInsideLastX64A"),Y("feeGrowthInsideLastX64B"),W("tokenFeesOwedA"),W("tokenFeesOwedB"),me(Fs,3,"rewardInfos"),me(W(),8,"")]),nf=ne([De(8),ge("bump"),re("poolId"),ce("tickLowerIndex"),ce("tickUpperIndex"),Y("liquidity"),Y("feeGrowthInsideLastX64A"),Y("feeGrowthInsideLastX64B"),W("tokenFeesOwedA"),W("tokenFeesOwedB"),me(Y(),3,"rewardGrowthInside"),me(W(),8,"")]),_s=ne([ce("tick"),ar("liquidityNet"),Y("liquidityGross"),Y("feeGrowthOutsideX64A"),Y("feeGrowthOutsideX64B"),me(Y(),3,"rewardGrowthsOutsideX64"),me(Et(),13,"")]),sn=ne([De(8),re("poolId"),ce("startTickIndex"),me(_s,ke,"ticks"),ge("initializedTickCount"),me(ge(),115,"")]),Ir=ne([De(329),me(re(),100,"whitelistMints")]),Ar=ne([De(8),re("poolId"),me(me(W(),8),yi,"positiveTickArrayBitmap"),me(me(W(),8),yi,"negativeTickArrayBitmap")]),rf=ne([W(),ge("bump"),re("owner"),re("poolId"),re("positionId"),re("nftAccount"),me(W(),8)]),Sr=ne([De(8),ge("bump"),re("lockOwner"),re("poolId"),re("positionId"),re("nftAccount"),re("lockNftMint"),W("recentEpoch"),me(W(),8)]);Br.span;var Cr=Ie("Raydium_Clmm"),Ve={createPool:[233,146,209,142,207,104,64,188],initReward:[95,135,192,196,242,129,230,68],setRewardEmissions:[112,52,167,75,32,201,211,137],openPosition:[77,184,74,214,112,86,241,199],openPositionWithTokenEx:[77,255,174,82,125,29,201,46],closePosition:[123,134,81,0,49,68,98,98],increaseLiquidity:[133,29,89,223,69,238,176,10],decreaseLiquidity:[58,127,188,62,79,82,196,96],swap:[43,4,237,11,26,201,30,98],collectReward:[18,237,166,197,34,16,213,144]},Kr=[188,37,179,131,82,150,84,73],Nr=[16,72,250,198,14,162,212,19],le=class{static createPoolInstruction(e,t,n,r,o,s,a,c,u,l,d,f,m,p){let g=ne([Y("sqrtPriceX64"),W("zero")]),y=[{pubkey:n,isSigner:!0,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:ct.programId,isSigner:!1,isWritable:!1},{pubkey:gt,isSigner:!1,isWritable:!1},...(p==null?void 0:p.map(P=>({pubkey:P,isSigner:!1,isWritable:!1})))||[]],b=Buffer.alloc(g.span);g.encode({sqrtPriceX64:m,zero:fe},b);let h=Buffer.from([...Ve.createPool,...b]);return new Ce({keys:y,programId:e,data:h})}static async createPoolInstructions(e){let{programId:t,owner:n,mintA:r,mintB:o,ammConfigId:s,initialPriceX64:a,extendMintAccount:c}=e,[u,l]=[new S(r.address),new S(o.address)],{publicKey:d}=yr(t,s,u,l),{publicKey:f}=hr(t,d),{publicKey:m}=pi(t,d,u),{publicKey:p}=pi(t,d,l),g=he(t,d).publicKey,y=[this.createPoolInstruction(t,d,n,s,f,u,m,new S(r.programId||ie),l,p,new S(o.programId||ie),g,a,c)];return{signers:[],instructions:y,instructionTypes:[se.CreateAccount,se.ClmmCreatePool],address:{poolId:d,observationId:f,exBitmapAccount:g,mintAVault:m,mintBVault:p},lookupTableAddress:[]}}static openPositionFromLiquidityInstruction(e,t,n,r,o,s,a,c,u,l,d,f,m,p,g,y,b,h,P,T,k,w,A,x,B,K){let N=ne([ce("tickLowerIndex"),ce("tickUpperIndex"),ce("tickArrayLowerStartIndex"),ce("tickArrayUpperStartIndex"),Y("liquidity"),W("amountMaxA"),W("amountMaxB"),Oe("withMetadata"),ge("optionBaseFlag"),Oe("baseFlag")]),L=[...K?[{pubkey:K,isSigner:!1,isWritable:!0}]:[]],E=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!0,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:gt,isSigner:!1,isWritable:!1},{pubkey:ct.programId,isSigner:!1,isWritable:!1},{pubkey:ie,isSigner:!1,isWritable:!1},{pubkey:cn,isSigner:!1,isWritable:!1},{pubkey:Pt,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},...L],C=Buffer.alloc(N.span);N.encode({tickLowerIndex:h,tickUpperIndex:P,tickArrayLowerStartIndex:T,tickArrayUpperStartIndex:k,liquidity:w,amountMaxA:A,amountMaxB:x,withMetadata:B==="create",baseFlag:!1,optionBaseFlag:0},C);let M=Buffer.from([...Ve.openPosition,...C]);return new Ce({keys:E,programId:e,data:M})}static openPositionFromLiquidityInstruction22(e,t,n,r,o,s,a,c,u,l,d,f,m,p,g,y,b,h,P,T,k,w,A,x,B){let K=ne([ce("tickLowerIndex"),ce("tickUpperIndex"),ce("tickArrayLowerStartIndex"),ce("tickArrayUpperStartIndex"),Y("liquidity"),W("amountMaxA"),W("amountMaxB"),Oe("withMetadata"),ge("optionBaseFlag"),Oe("baseFlag")]),N=[...B?[{pubkey:B,isSigner:!1,isWritable:!0}]:[]],L=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!0,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:gt,isSigner:!1,isWritable:!1},{pubkey:ct.programId,isSigner:!1,isWritable:!1},{pubkey:ie,isSigner:!1,isWritable:!1},{pubkey:cn,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!1},...N],E=Buffer.alloc(K.span);K.encode({tickLowerIndex:b,tickUpperIndex:h,tickArrayLowerStartIndex:P,tickArrayUpperStartIndex:T,liquidity:k,amountMaxA:w,amountMaxB:A,withMetadata:x==="create",baseFlag:!1,optionBaseFlag:0},E);let C=Buffer.from([...Ve.openPositionWithTokenEx,...E]);return new Ce({keys:L,programId:e,data:C})}static async openPositionInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,tickLower:r,tickUpper:o,liquidity:s,amountMaxA:a,amountMaxB:c,withMetadata:u,getEphemeralSigners:l,nft2022:d}){let f=[],[m,p]=[new S(e.programId),new S(e.id)],g;if(l)g=new S((await l(1))[0]);else{let B=On.generate();f.push(B),g=B.publicKey}let y=F.getTickArrayStartIndexByTick(r,e.config.tickSpacing),b=F.getTickArrayStartIndexByTick(o,e.config.tickSpacing),{publicKey:h}=J(m,p,y),{publicKey:P}=J(m,p,b),{publicKey:T}=d?ae(n.wallet,g,be):ae(n.wallet,g,ie),{publicKey:k}=nn(g),{publicKey:w}=Fe(m,g),{publicKey:A}=Ze(m,p,r,o),x=d?this.openPositionFromLiquidityInstruction22(m,n.feePayer,p,n.wallet,g,T,A,h,P,w,n.tokenAccountA,n.tokenAccountB,new S(t.vault.A),new S(t.vault.B),new S(e.mintA.address),new S(e.mintB.address),r,o,y,b,s,a,c,u,pe.isOverflowDefaultTickarrayBitmap(e.config.tickSpacing,[y,b])?he(m,p).publicKey:void 0):this.openPositionFromLiquidityInstruction(m,n.feePayer,p,n.wallet,g,T,k,A,h,P,w,n.tokenAccountA,n.tokenAccountB,new S(t.vault.A),new S(t.vault.B),new S(e.mintA.address),new S(e.mintB.address),r,o,y,b,s,a,c,u,pe.isOverflowDefaultTickarrayBitmap(e.config.tickSpacing,[y,b])?he(m,p).publicKey:void 0);return{signers:f,instructions:[x],instructionTypes:[se.ClmmOpenPosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[],address:{nftMint:g,tickArrayLower:h,tickArrayUpper:P,positionNftAccount:T,metadataAccount:k,personalPosition:w,protocolPosition:A}}}static async openPositionFromBaseInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,tickLower:r,tickUpper:o,base:s,baseAmount:a,otherAmountMax:c,withMetadata:u,getEphemeralSigners:l,nft2022:d}){let f=[],[m,p]=[new S(e.programId),new S(e.id)],g;if(l)g=new S((await l(1))[0]);else{let B=On.generate();f.push(B),g=B.publicKey}let y=F.getTickArrayStartIndexByTick(r,e.config.tickSpacing),b=F.getTickArrayStartIndexByTick(o,e.config.tickSpacing),{publicKey:h}=J(m,p,y),{publicKey:P}=J(m,p,b),{publicKey:T}=d?ae(n.wallet,g,be):ae(n.wallet,g,ie),{publicKey:k}=nn(g),{publicKey:w}=Fe(m,g),{publicKey:A}=Ze(m,p,r,o),x=d?this.openPositionFromBaseInstruction22(m,n.feePayer,p,n.wallet,g,T,A,h,P,w,n.tokenAccountA,n.tokenAccountB,new S(t.vault.A),new S(t.vault.B),new S(e.mintA.address),new S(e.mintB.address),r,o,y,b,u,s,a,c,pe.isOverflowDefaultTickarrayBitmap(e.config.tickSpacing,[y,b])?he(m,p).publicKey:void 0):this.openPositionFromBaseInstruction(m,n.feePayer,p,n.wallet,g,T,k,A,h,P,w,n.tokenAccountA,n.tokenAccountB,new S(t.vault.A),new S(t.vault.B),new S(e.mintA.address),new S(e.mintB.address),r,o,y,b,u,s,a,c,pe.isOverflowDefaultTickarrayBitmap(e.config.tickSpacing,[y,b])?he(m,p).publicKey:void 0);return{address:{nftMint:g,tickArrayLower:h,tickArrayUpper:P,positionNftAccount:T,metadataAccount:k,personalPosition:w,protocolPosition:A},instructions:[x],signers:f,instructionTypes:[se.ClmmOpenPosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static openPositionFromBaseInstruction(e,t,n,r,o,s,a,c,u,l,d,f,m,p,g,y,b,h,P,T,k,w,A,x,B,K){let N=ne([ce("tickLowerIndex"),ce("tickUpperIndex"),ce("tickArrayLowerStartIndex"),ce("tickArrayUpperStartIndex"),Y("liquidity"),W("amountMaxA"),W("amountMaxB"),Oe("withMetadata"),ge("optionBaseFlag"),Oe("baseFlag")]),L=[...K?[{pubkey:K,isSigner:!1,isWritable:!0}]:[]],E=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!0,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:gt,isSigner:!1,isWritable:!1},{pubkey:ct.programId,isSigner:!1,isWritable:!1},{pubkey:ie,isSigner:!1,isWritable:!1},{pubkey:cn,isSigner:!1,isWritable:!1},{pubkey:Pt,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},...L],C=Buffer.alloc(N.span);N.encode({tickLowerIndex:h,tickUpperIndex:P,tickArrayLowerStartIndex:T,tickArrayUpperStartIndex:k,liquidity:new Pi(0),amountMaxA:A==="MintA"?x:B,amountMaxB:A==="MintA"?B:x,withMetadata:w==="create",baseFlag:A==="MintA",optionBaseFlag:1},C);let M=Buffer.from([...Ve.openPosition,...C]);return new Ce({keys:E,programId:e,data:M})}static openPositionFromBaseInstruction22(e,t,n,r,o,s,a,c,u,l,d,f,m,p,g,y,b,h,P,T,k,w,A,x,B){let K=ne([ce("tickLowerIndex"),ce("tickUpperIndex"),ce("tickArrayLowerStartIndex"),ce("tickArrayUpperStartIndex"),Y("liquidity"),W("amountMaxA"),W("amountMaxB"),Oe("withMetadata"),ge("optionBaseFlag"),Oe("baseFlag")]),N=[...B?[{pubkey:B,isSigner:!1,isWritable:!0}]:[]],L=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!0,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:gt,isSigner:!1,isWritable:!1},{pubkey:ct.programId,isSigner:!1,isWritable:!1},{pubkey:ie,isSigner:!1,isWritable:!1},{pubkey:cn,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!1},...N],E=Buffer.alloc(K.span);K.encode({tickLowerIndex:b,tickUpperIndex:h,tickArrayLowerStartIndex:P,tickArrayUpperStartIndex:T,liquidity:new Pi(0),amountMaxA:w==="MintA"?A:x,amountMaxB:w==="MintA"?x:A,withMetadata:k==="create",baseFlag:w==="MintA",optionBaseFlag:1},E);let C=Buffer.from([...Ve.openPositionWithTokenEx,...E]);return new Ce({keys:L,programId:e,data:C})}static async openPositionFromLiquidityInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,tickLower:r,tickUpper:o,liquidity:s,amountMaxA:a,amountMaxB:c,withMetadata:u,getEphemeralSigners:l,nft2022:d}){let f,m=[];if(l)f=new S((await l(1))[0]);else{let B=On.generate();m.push(B),f=B.publicKey}let[p,g]=[new S(e.programId),new S(e.id)],y=F.getTickArrayStartIndexByTick(r,e.config.tickSpacing),b=F.getTickArrayStartIndexByTick(o,e.config.tickSpacing),{publicKey:h}=J(p,g,y),{publicKey:P}=J(p,g,b),{publicKey:T}=d?ae(n.wallet,f,be):ae(n.wallet,f,ie),{publicKey:k}=nn(f),{publicKey:w}=Fe(p,f),{publicKey:A}=Ze(p,g,r,o),x=d?this.openPositionFromLiquidityInstruction22(p,n.wallet,g,n.wallet,f,T,A,h,P,w,n.tokenAccountA,n.tokenAccountB,new S(t.vault.A),new S(t.vault.B),new S(t.mintA.address),new S(t.mintB.address),r,o,y,b,s,a,c,u,pe.isOverflowDefaultTickarrayBitmap(e.config.tickSpacing,[y,b])?he(p,g).publicKey:void 0):this.openPositionFromLiquidityInstruction(p,n.wallet,g,n.wallet,f,T,k,A,h,P,w,n.tokenAccountA,n.tokenAccountB,new S(t.vault.A),new S(t.vault.B),new S(t.mintA.address),new S(t.mintB.address),r,o,y,b,s,a,c,u,pe.isOverflowDefaultTickarrayBitmap(e.config.tickSpacing,[y,b])?he(p,g).publicKey:void 0);return{address:{nftMint:f,tickArrayLower:h,tickArrayUpper:P,positionNftAccount:T,metadataAccount:k,personalPosition:w,protocolPosition:A},instructions:[x],signers:m,instructionTypes:[se.ClmmOpenPosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static closePositionInstruction(e,t,n,r,o,s){let a=ne([]),c=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:ct.programId,isSigner:!1,isWritable:!1},{pubkey:s?be:ie,isSigner:!1,isWritable:!1}],u=Buffer.alloc(a.span);a.encode({},u);let l=Buffer.from([...Ve.closePosition,...u]);return new Ce({keys:c,programId:e,data:l})}static closePositionInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,ownerPosition:r,nft2022:o}){let s=new S(e.programId),a=o?ae(n.wallet,r.nftMint,be).publicKey:ae(n.wallet,r.nftMint,ie).publicKey,{publicKey:c}=Fe(s,r.nftMint),u=[];return u.push(this.closePositionInstruction(s,n.wallet,r.nftMint,a,c,o)),{address:{positionNftAccount:a,personalPosition:c},signers:[],instructions:u,instructionTypes:[se.ClmmClosePosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static increasePositionFromLiquidityInstruction(e,t,n,r,o,s,a,c,u,l,d,f,m,p,g,y,b,h){let P=ne([Y("liquidity"),W("amountMaxA"),W("amountMaxB"),ge("optionBaseFlag"),Oe("baseFlag")]),T=[...h?[{pubkey:h,isSigner:!1,isWritable:!0}]:[]],k=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:ie,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},...T],w=Buffer.alloc(P.span);P.encode({liquidity:g,amountMaxA:y,amountMaxB:b,optionBaseFlag:0,baseFlag:!1},w);let A=Buffer.from([...Ve.increaseLiquidity,...w]);return new Ce({keys:k,programId:e,data:A})}static increasePositionFromLiquidityInstructions({poolInfo:e,poolKeys:t,ownerPosition:n,ownerInfo:r,liquidity:o,amountMaxA:s,amountMaxB:a,nft2022:c}){let[u,l]=[new S(e.programId),new S(e.id)],d=F.getTickArrayStartIndexByTick(n.tickLower,e.config.tickSpacing),f=F.getTickArrayStartIndexByTick(n.tickUpper,e.config.tickSpacing),{publicKey:m}=J(u,l,d),{publicKey:p}=J(u,l,f),{publicKey:g}=c?ae(r.wallet,n.nftMint,be):ae(r.wallet,n.nftMint,ie),{publicKey:y}=Fe(u,n.nftMint),{publicKey:b}=Ze(u,l,n.tickLower,n.tickUpper),h=this.increasePositionFromLiquidityInstruction(u,r.wallet,g,y,l,b,m,p,r.tokenAccountA,r.tokenAccountB,new S(t.vault.A),new S(t.vault.B),new S(e.mintA.address),new S(e.mintB.address),o,s,a,pe.isOverflowDefaultTickarrayBitmap(e.config.tickSpacing,[d,f])?he(u,l).publicKey:void 0);return{address:{tickArrayLower:m,tickArrayUpper:p,positionNftAccount:g,personalPosition:y,protocolPosition:b},signers:[],instructions:[h],instructionTypes:[se.ClmmIncreasePosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static increasePositionFromBaseInstructions({poolInfo:e,poolKeys:t,ownerPosition:n,ownerInfo:r,base:o,baseAmount:s,otherAmountMax:a,nft2022:c}){let[u,l]=[new S(e.programId),new S(e.id)],d=F.getTickArrayStartIndexByTick(n.tickLower,e.config.tickSpacing),f=F.getTickArrayStartIndexByTick(n.tickUpper,e.config.tickSpacing),{publicKey:m}=J(u,l,d),{publicKey:p}=J(u,l,f),{publicKey:g}=c?ae(r.wallet,n.nftMint,be):ae(r.wallet,n.nftMint,ie),{publicKey:y}=Fe(u,n.nftMint),{publicKey:b}=Ze(u,l,n.tickLower,n.tickUpper);return{address:{tickArrayLower:m,tickArrayUpper:p,positionNftAccount:g,personalPosition:y,protocolPosition:b},instructions:[this.increasePositionFromBaseInstruction(u,r.wallet,g,y,l,b,m,p,r.tokenAccountA,r.tokenAccountB,new S(t.vault.A),new S(t.vault.B),new S(e.mintA.address),new S(e.mintB.address),o,s,a,pe.isOverflowDefaultTickarrayBitmap(e.config.tickSpacing,[d,f])?he(u,l).publicKey:void 0)],signers:[],instructionTypes:[se.ClmmIncreasePosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static increasePositionFromBaseInstruction(e,t,n,r,o,s,a,c,u,l,d,f,m,p,g,y,b,h){let P=ne([Y("liquidity"),W("amountMaxA"),W("amountMaxB"),ge("optionBaseFlag"),Oe("baseFlag")]),T=[...h?[{pubkey:h,isSigner:!1,isWritable:!0}]:[]],k=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:ie,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},...T],w=Buffer.alloc(P.span);P.encode({liquidity:new Pi(0),amountMaxA:g==="MintA"?y:b,amountMaxB:g==="MintA"?b:y,baseFlag:g==="MintA",optionBaseFlag:1},w);let A=Buffer.from([...Ve.increaseLiquidity,...w]);return new Ce({keys:k,programId:e,data:A})}static decreaseLiquidityInstruction(e,t,n,r,o,s,a,c,u,l,d,f,m,p,g,y,b,h,P){let T=ne([Y("liquidity"),W("amountMinA"),W("amountMinB")]),k=[...P?[{pubkey:P,isSigner:!1,isWritable:!0}]:[],...g.map(B=>[{pubkey:B.poolRewardVault,isSigner:!1,isWritable:!0},{pubkey:B.ownerRewardVault,isSigner:!1,isWritable:!0},{pubkey:B.rewardMint,isSigner:!1,isWritable:!1}]).flat()],w=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:ie,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:kn,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},...k],A=Buffer.alloc(T.span);T.encode({liquidity:y,amountMinA:b,amountMinB:h},A);let x=Buffer.from([...Ve.decreaseLiquidity,...A]);return new Ce({keys:w,programId:e,data:x})}static decreaseLiquidityInstructions({poolInfo:e,poolKeys:t,ownerPosition:n,ownerInfo:r,liquidity:o,amountMinA:s,amountMinB:a,programId:c,nft2022:u}){let[l,d]=[new S(e.programId),new S(e.id)],f=F.getTickArrayStartIndexByTick(n.tickLower,e.config.tickSpacing),m=F.getTickArrayStartIndexByTick(n.tickUpper,e.config.tickSpacing),{publicKey:p}=J(l,d,f),{publicKey:g}=J(l,d,m),{publicKey:y}=u?ae(r.wallet,n.nftMint,be):ae(r.wallet,n.nftMint,c),{publicKey:b}=Fe(l,n.nftMint),{publicKey:h}=Ze(l,d,n.tickLower,n.tickUpper),P=[];for(let w=0;w<e.rewardDefaultInfos.length;w++)P.push({poolRewardVault:new S(t.rewardInfos[w].vault),ownerRewardVault:r.rewardAccounts[w],rewardMint:new S(e.rewardDefaultInfos[w].mint.address)});let T=[],k=this.decreaseLiquidityInstruction(l,r.wallet,y,b,d,h,p,g,r.tokenAccountA,r.tokenAccountB,new S(t.vault.A),new S(t.vault.B),new S(e.mintA.address),new S(e.mintB.address),P,o,s,a,pe.isOverflowDefaultTickarrayBitmap(e.config.tickSpacing,[f,m])?he(l,d).publicKey:void 0);return T.push(k),{address:{tickArrayLower:p,tickArrayUpper:g,positionNftAccount:y,personalPosition:b,protocolPosition:h},signers:[],instructions:T,instructionTypes:[se.ClmmDecreasePosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static swapInstruction(e,t,n,r,o,s,a,c,u,l,d,f,m,p,g,y,b){let h=ne([W("amount"),W("otherAmountThreshold"),Y("sqrtPriceLimitX64"),Oe("isBaseInput")]),P=[...b?[{pubkey:b,isSigner:!1,isWritable:!0}]:[],...d.map(A=>({pubkey:A,isSigner:!1,isWritable:!0}))],T=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:ie,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:kn,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},...P],k=Buffer.alloc(h.span);h.encode({amount:m,otherAmountThreshold:p,sqrtPriceLimitX64:g,isBaseInput:y},k);let w=Buffer.from([...Ve.swap,...k]);return new Ce({keys:T,programId:e,data:w})}static makeSwapBaseInInstructions({poolInfo:e,poolKeys:t,observationId:n,ownerInfo:r,inputMint:o,amountIn:s,amountOutMin:a,sqrtPriceLimitX64:c,remainingAccounts:u}){let[l,d]=[new S(e.programId),new S(e.id)],[f,m]=[new S(t.vault.A),new S(t.vault.B)],[p,g]=[new S(e.mintA.address),new S(e.mintB.address)],y=e.mintA.address===o.toString(),b=[this.swapInstruction(l,r.wallet,d,new S(e.config.id),y?r.tokenAccountA:r.tokenAccountB,y?r.tokenAccountB:r.tokenAccountA,y?f:m,y?m:f,y?p:g,y?g:p,u,n,s,a,c,!0,he(l,d).publicKey)];return{signers:[],instructions:b,instructionTypes:[se.ClmmSwapBaseIn],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[],address:{}}}static makeSwapBaseOutInstructions({poolInfo:e,poolKeys:t,observationId:n,ownerInfo:r,outputMint:o,amountOut:s,amountInMax:a,sqrtPriceLimitX64:c,remainingAccounts:u}){let[l,d]=[new S(e.programId),new S(e.id)],[f,m]=[new S(t.vault.A),new S(t.vault.B)],[p,g]=[new S(e.mintA.address),new S(e.mintB.address)],y=e.mintA.address===o.toBase58(),b=[this.swapInstruction(l,r.wallet,d,new S(e.config.id),y?r.tokenAccountB:r.tokenAccountA,y?r.tokenAccountA:r.tokenAccountB,y?m:f,y?f:m,y?g:p,y?p:g,u,n,s,a,c,!1,he(l,d).publicKey)];return{signers:[],instructions:b,instructionTypes:[se.ClmmSwapBaseOut],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[],address:{}}}static initRewardInstruction(e,t,n,r,o,s,a,c,u,l,d,f){let m=ne([W("openTime"),W("endTime"),Y("emissionsPerSecondX64")]),p=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:ct.programId,isSigner:!1,isWritable:!1},{pubkey:gt,isSigner:!1,isWritable:!1}],g=Buffer.alloc(m.span);m.encode({openTime:Ae(l),endTime:Ae(d),emissionsPerSecondX64:f},g);let y=Buffer.from([...Ve.initReward,...g]);return new Ce({keys:p,programId:e,data:y})}static initRewardInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,rewardInfo:r}){let[o,s]=[new S(e.programId),new S(e.id)],a=wr(o,s,r.mint).publicKey,c=rn(o).publicKey,u=[this.initRewardInstruction(o,n.wallet,s,c,new S(e.config.id),n.tokenAccount,r.programId,r.mint,a,r.openTime,r.endTime,r.emissionsPerSecondX64)];return{address:{poolRewardVault:a,operationId:c},signers:[],instructions:u,instructionTypes:[se.ClmmInitReward],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static setRewardInstruction(e,t,n,r,o,s,a,c,u,l,d,f){let m=ne([ge("rewardIndex"),Y("emissionsPerSecondX64"),W("openTime"),W("endTime")]),p=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:ie,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0}],g=Buffer.alloc(m.span);m.encode({rewardIndex:u,emissionsPerSecondX64:f,openTime:Ae(l),endTime:Ae(d)},g);let y=Buffer.from([...Ve.setRewardEmissions,...g]);return new Ce({keys:p,programId:e,data:y})}static setRewardInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,rewardInfo:r}){let[o,s]=[new S(e.programId),new S(e.id)],a,c,u;for(let f=0;f<e.rewardDefaultInfos.length;f++)e.rewardDefaultInfos[f].mint.address===r.mint.toString()&&(a=f,c=new S(t.rewardInfos[f].vault),u=new S(t.rewardInfos[f].mint.address));(a===void 0||c===void 0)&&Cr.logWithError("reward mint check error","no reward mint",e.rewardDefaultInfos);let l=rn(o).publicKey,d=[this.setRewardInstruction(o,n.wallet,s,l,new S(e.config.id),n.tokenAccount,c,u,a,r.openTime,r.endTime,r.emissionsPerSecondX64)];return{address:{rewardVault:c,operationId:l},signers:[],instructions:d,instructionTypes:[se.ClmmSetReward],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static collectRewardInstruction(e,t,n,r,o,s,a){let c=ne([ge("rewardIndex")]),u=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:ie,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:kn,isSigner:!1,isWritable:!1}],l=Buffer.alloc(c.span);c.encode({rewardIndex:a},l);let d=Buffer.from([...Ve.collectReward,...l]);return new Ce({keys:u,programId:e,data:d})}static collectRewardInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,rewardMint:r}){let[o,s]=[new S(e.programId),new S(e.id)],a,c;for(let l=0;l<e.rewardDefaultInfos.length;l++)e.rewardDefaultInfos[l].mint.address===r.toString()&&(a=l,c=new S(t.rewardInfos[l].vault));(a===void 0||c===void 0)&&Cr.logWithError("reward mint check error","no reward mint",e.rewardDefaultInfos);let u=[this.collectRewardInstruction(o,n.wallet,s,n.tokenAccount,c,r,a)];return{address:{rewardVault:c},signers:[],instructions:u,instructionTypes:[se.ClmmCollectReward],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static async makeLockPositions({programId:e,authProgramId:t,poolProgramId:n,payer:r,wallet:o,nftMint:s,nft2022:a,getEphemeralSigners:c}){let u=[],l;if(c)l=new S((await c(1))[0]);else{let b=On.generate();u.push(b),l=b.publicKey}let d=a?ae(o,s,be).publicKey:ae(o,s,ie).publicKey,{publicKey:f}=Fe(n,s),m=Ft(e,l).publicKey,p=ae(o,l,ie).publicKey,g=nn(l).publicKey,y=le.lockPositionInstructionV2({programId:e,auth:t,payer:r,positionOwner:o,lockOwner:o,positionNftAccount:d,positionId:f,lockPositionId:m,lockNftMint:l,lockNftAccount:p,metadataAccount:g,withMetadata:!0,nft2022:a,positionNftMint:s,authPositionNftAccount:ae(t,s,a?be:ie).publicKey,positionNftProgram:a?be:ie});return{address:{positionId:f,lockPositionId:m,lockNftAccount:p,lockNftMint:l,positionNftAccount:d,metadataAccount:g},instructions:[y],signers:u,instructionTypes:[se.ClmmLockPosition],lookupTableAddress:[]}}static lockPositionInstructionV2({programId:e,auth:t,payer:n,positionOwner:r,lockOwner:o,positionNftAccount:s,positionId:a,positionNftMint:c,authPositionNftAccount:u,positionNftProgram:l,lockPositionId:d,lockNftMint:f,lockNftAccount:m,metadataAccount:p,withMetadata:g}){let y=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!0,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:Pt,isSigner:!1,isWritable:!1},{pubkey:cn,isSigner:!1,isWritable:!1},{pubkey:gt,isSigner:!1,isWritable:!1},{pubkey:ie,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:ct.programId,isSigner:!1,isWritable:!1}],b=ne([Oe("withMetadata")]),h=Buffer.alloc(b.span);b.encode({withMetadata:g},h);let P=Buffer.from([...Kr,...h]);return new Ce({keys:y,programId:e,data:P})}static lockPositionInstruction({programId:e,authProgramId:t,poolProgramId:n,owner:r,positionNft:o}){let{publicKey:s}=ae(r,o,ie),{publicKey:a}=Fe(n,o),c=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:gi(e,a).publicKey,isSigner:!1,isWritable:!0},{pubkey:ie,isSigner:!1,isWritable:!1},{pubkey:ct.programId,isSigner:!1,isWritable:!1}];return new Ce({keys:c,programId:e,data:Buffer.from(Kr)})}static harvestLockPositionInstruction(e){let[t,n]=[new S(e.poolKeys.programId),new S(e.poolKeys.id)],r=F.getTickArrayStartIndexByTick(e.ownerPosition.tickLower,e.poolKeys.config.tickSpacing),o=F.getTickArrayStartIndexByTick(e.ownerPosition.tickUpper,e.poolKeys.config.tickSpacing),{publicKey:s}=J(t,n,r),{publicKey:a}=J(t,n,o),{publicKey:c}=ae(e.owner,e.ownerPosition.nftMint,ie),{publicKey:u}=Fe(t,e.ownerPosition.nftMint),{publicKey:l}=Ze(t,n,e.ownerPosition.tickLower,e.ownerPosition.tickUpper),d=[];for(let p=0;p<e.poolKeys.rewardInfos.length;p++)d.push({poolRewardVault:new S(e.poolKeys.rewardInfos[p].vault),ownerRewardVault:e.ownerRewardAccounts[p],rewardMint:new S(e.poolKeys.rewardInfos[p].mint.address)});let f=[...d.map(p=>[{pubkey:p.poolRewardVault,isSigner:!1,isWritable:!0},{pubkey:p.ownerRewardVault,isSigner:!1,isWritable:!0},{pubkey:p.rewardMint,isSigner:!1,isWritable:!1}]).flat()],m=[{pubkey:e.authProgramId,isSigner:!1,isWritable:!1},{pubkey:gi(e.programId,u).publicKey,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:e.owner,isSigner:!0,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:new S(e.poolKeys.vault.A),isSigner:!1,isWritable:!0},{pubkey:new S(e.poolKeys.vault.B),isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:e.userVaultA,isSigner:!1,isWritable:!0},{pubkey:e.userVaultB,isSigner:!1,isWritable:!0},{pubkey:ie,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:jn,isSigner:!1,isWritable:!1},{pubkey:new S(e.poolKeys.mintA.address),isSigner:!1,isWritable:!1},{pubkey:new S(e.poolKeys.mintB.address),isSigner:!1,isWritable:!1},...f];return new Ce({keys:m,programId:e.programId,data:Buffer.from(Nr)})}static harvestLockPositionInstructionV2({programId:e,auth:t,lockPositionId:n,clmmProgram:r,lockOwner:o,lockNftMint:s,lockNftAccount:a,positionNftAccount:c,positionId:u,poolId:l,protocolPosition:d,vaultA:f,vaultB:m,tickArrayLower:p,tickArrayUpper:g,userVaultA:y,userVaultB:b,mintA:h,mintB:P,rewardAccounts:T,exTickArrayBitmap:k}){let w=[...k?[{pubkey:k,isSigner:!1,isWritable:!0}]:[],...T.map(x=>[{pubkey:x.poolRewardVault,isSigner:!1,isWritable:!0},{pubkey:x.ownerRewardVault,isSigner:!1,isWritable:!0},{pubkey:x.rewardMint,isSigner:!1,isWritable:!1}]).flat()],A=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!0,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:ie,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:jn,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!1},{pubkey:P,isSigner:!1,isWritable:!1},...w];return new Ce({keys:A,programId:e,data:Buffer.from(Nr)})}};var Mr=class extends Qt{constructor(e){super(e)}async getClmmPoolKeys(e){return(await this.scope.api.fetchPoolKeysById({idList:[e]}))[0]}async createPool(e){var A;let{programId:t,owner:n=((A=this.scope.owner)==null?void 0:A.publicKey)||R.default,mint1:r,mint2:o,ammConfig:s,initialPrice:a,computeBudgetConfig:c,forerunCreate:u,getObserveState:l,txVersion:d,txTipConfig:f,feePayer:m}=e,p=this.createTxBuilder(m),[g,y,b]=new _e(new R(r.address).toBuffer()).gt(new _e(new R(o.address).toBuffer()))?[o,r,new O(1).div(a)]:[r,o,a],h=U.priceToSqrtPriceX64(b,g.decimals,y.decimals),P=[],T=[];g.programId===wt.toBase58()&&T.push(bi(t,new R(g.address)).publicKey),y.programId===wt.toBase58()&&T.push(bi(t,new R(y.address)).publicKey),(await this.scope.connection.getMultipleAccountsInfo(T)).forEach((x,B)=>{x&&P.push(T[B])});let w=await le.createPoolInstructions({connection:this.scope.connection,programId:t,owner:n,mintA:g,mintB:y,ammConfigId:s.id,initialPriceX64:h,forerunCreate:!l&&u,extendMintAccount:P});return p.addInstruction(w),p.addCustomComputeBudget(c),p.addTipInstruction(f),p.versionBuild({txVersion:d,extInfo:{address:j(v({},w.address),{observationId:w.address.observationId.toBase58(),exBitmapAccount:w.address.exBitmapAccount.toBase58(),programId:t.toString(),id:w.address.poolId.toString(),mintA:g,mintB:y,openTime:"0",vault:{A:w.address.mintAVault.toString(),B:w.address.mintBVault.toString()},rewardInfos:[],config:{id:s.id.toString(),index:s.index,protocolFeeRate:s.protocolFeeRate,tradeFeeRate:s.tradeFeeRate,tickSpacing:s.tickSpacing,fundFeeRate:s.fundFeeRate,description:s.description,defaultRange:0,defaultRangePoint:[]}}),mockPoolInfo:v({type:"Concentrated",rewardDefaultPoolInfos:"Clmm",id:w.address.poolId.toString(),mintA:g,mintB:y,feeRate:s.tradeFeeRate,openTime:"0",programId:t.toString(),price:b.toNumber(),config:{id:s.id.toString(),index:s.index,protocolFeeRate:s.protocolFeeRate,tradeFeeRate:s.tradeFeeRate,tickSpacing:s.tickSpacing,fundFeeRate:s.fundFeeRate,description:s.description,defaultRange:0,defaultRangePoint:[]},burnPercent:0},fr),forerunCreate:u}})}async openPositionFromBase({poolInfo:e,poolKeys:t,ownerInfo:n,tickLower:r,tickUpper:o,base:s,baseAmount:a,otherAmountMax:c,nft2022:u,associatedOnly:l=!0,checkCreateATAOwner:d=!1,withMetadata:f="create",getEphemeralSigners:m,computeBudgetConfig:p,txTipConfig:g,txVersion:y,feePayer:b}){this.scope.availability.addConcentratedPosition===!1&&this.logAndCreateError("add position feature disabled in your region"),this.scope.checkOwner();let h=this.createTxBuilder(b),P=null,T=null,k=n.useSOLBalance&&e.mintA.address===ee.toString(),w=n.useSOLBalance&&e.mintB.address===ee.toString(),[A,x]=s==="MintA"?[a,c]:[c,a],{account:B,instructionParams:K}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintA.programId,mint:new R(e.mintA.address),owner:this.scope.ownerPubKey,createInfo:k||A.isZero()?{payer:this.scope.ownerPubKey,amount:A}:void 0,skipCloseAccount:!k,notUseTokenAccount:k,associatedOnly:k?!1:l,checkCreateATAOwner:d});B&&(P=B),h.addInstruction(K||{});let{account:N,instructionParams:L}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintB.programId,mint:new R(e.mintB.address),owner:this.scope.ownerPubKey,createInfo:w||x.isZero()?{payer:this.scope.ownerPubKey,amount:x}:void 0,skipCloseAccount:!w,notUseTokenAccount:w,associatedOnly:w?!1:l,checkCreateATAOwner:d});N&&(T=N),h.addInstruction(L||{}),(!P||!T)&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",{ownerTokenAccountA:P==null?void 0:P.toBase58(),ownerTokenAccountB:T==null?void 0:T.toBase58()});let E=t||await this.getClmmPoolKeys(e.id),C=await le.openPositionFromBaseInstructions({poolInfo:e,poolKeys:E,ownerInfo:j(v({},n),{feePayer:this.scope.ownerPubKey,wallet:this.scope.ownerPubKey,tokenAccountA:P,tokenAccountB:T}),tickLower:r,tickUpper:o,base:s,baseAmount:a,otherAmountMax:c,withMetadata:f,getEphemeralSigners:m,nft2022:u});return h.addInstruction(C),h.addCustomComputeBudget(p),h.addTipInstruction(g),h.versionBuild({txVersion:y,extInfo:v({},C.address)})}async openPositionFromLiquidity({poolInfo:e,poolKeys:t,ownerInfo:n,amountMaxA:r,amountMaxB:o,tickLower:s,tickUpper:a,liquidity:c,associatedOnly:u=!0,checkCreateATAOwner:l=!1,withMetadata:d="create",txVersion:f,computeBudgetConfig:m,txTipConfig:p,getEphemeralSigners:g,nft2022:y,feePayer:b}){this.scope.availability.createConcentratedPosition===!1&&this.logAndCreateError("open position feature disabled in your region");let h=this.createTxBuilder(b),P=null,T=null,k=n.useSOLBalance&&e.mintA.address===ee.toBase58(),w=n.useSOLBalance&&e.mintB.address===ee.toBase58(),{account:A,instructionParams:x}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintA.programId,mint:new R(e.mintA.address),owner:this.scope.ownerPubKey,createInfo:k||r.isZero()?{payer:this.scope.ownerPubKey,amount:r}:void 0,skipCloseAccount:!k,notUseTokenAccount:k,associatedOnly:k?!1:u,checkCreateATAOwner:l});A&&(P=A),h.addInstruction(x||{});let{account:B,instructionParams:K}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintB.programId,mint:new R(e.mintB.address),owner:this.scope.ownerPubKey,createInfo:w||o.isZero()?{payer:this.scope.ownerPubKey,amount:o}:void 0,skipCloseAccount:!w,notUseTokenAccount:w,associatedOnly:w?!1:u,checkCreateATAOwner:l});B&&(T=B),h.addInstruction(K||{}),(P===void 0||T===void 0)&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",this.scope.account.tokenAccounts);let N=t||await this.getClmmPoolKeys(e.id),L=await le.openPositionFromLiquidityInstructions({poolInfo:e,poolKeys:N,ownerInfo:{wallet:this.scope.ownerPubKey,tokenAccountA:P,tokenAccountB:T},tickLower:s,tickUpper:a,liquidity:c,amountMaxA:r,amountMaxB:o,withMetadata:d,getEphemeralSigners:g,nft2022:y});return h.addInstruction(L),h.addCustomComputeBudget(m),h.addTipInstruction(p),h.versionBuild({txVersion:f,extInfo:{address:L.address}})}async increasePositionFromLiquidity(e){var K;let{poolInfo:t,poolKeys:n,ownerPosition:r,amountMaxA:o,amountMaxB:s,liquidity:a,ownerInfo:c,associatedOnly:u=!0,checkCreateATAOwner:l=!1,computeBudgetConfig:d,txTipConfig:f,txVersion:m,feePayer:p}=e,g=this.createTxBuilder(p),y,b,h=c.useSOLBalance&&t.mintA.address===ee.toString(),P=c.useSOLBalance&&t.mintB.address===ee.toString(),{account:T,instructionParams:k}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new R(t.mintA.address),notUseTokenAccount:h,owner:this.scope.ownerPubKey,createInfo:h||o.isZero()?{payer:this.scope.ownerPubKey,amount:o}:void 0,skipCloseAccount:!h,associatedOnly:h?!1:u,checkCreateATAOwner:l});T&&(y=T),g.addInstruction(k||{});let{account:w,instructionParams:A}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new R(t.mintB.address),owner:this.scope.ownerPubKey,createInfo:P||s.isZero()?{payer:this.scope.ownerPubKey,amount:s}:void 0,notUseTokenAccount:P,skipCloseAccount:!P,associatedOnly:P?!1:u,checkCreateATAOwner:l});w&&(b=w),g.addInstruction(A||{}),!y&&!b&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",this.scope.account.tokenAccounts);let x=n!=null?n:await this.getClmmPoolKeys(t.id),B=le.increasePositionFromLiquidityInstructions({poolInfo:t,poolKeys:x,ownerPosition:r,ownerInfo:{wallet:this.scope.ownerPubKey,tokenAccountA:y,tokenAccountB:b},liquidity:a,amountMaxA:o,amountMaxB:s,nft2022:(K=await this.scope.connection.getAccountInfo(r.nftMint))==null?void 0:K.owner.equals(wt)});return g.addInstruction(B),g.addCustomComputeBudget(d),g.addTipInstruction(f),g.versionBuild({txVersion:m,extInfo:{address:B.address}})}async increasePositionFromBase(e){var B;let{poolInfo:t,ownerPosition:n,base:r,baseAmount:o,otherAmountMax:s,ownerInfo:a,associatedOnly:c=!0,checkCreateATAOwner:u=!1,computeBudgetConfig:l,txTipConfig:d,txVersion:f,feePayer:m}=e,p=this.createTxBuilder(m),g,y,b=a.useSOLBalance&&t.mintA.address===ee.toString(),h=a.useSOLBalance&&t.mintB.address===ee.toString(),{account:P,instructionParams:T}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new R(t.mintA.address),notUseTokenAccount:b,owner:this.scope.ownerPubKey,createInfo:b||(r==="MintA"?o:s).isZero()?{payer:this.scope.ownerPubKey,amount:r==="MintA"?o:s}:void 0,skipCloseAccount:!b,associatedOnly:b?!1:c,checkCreateATAOwner:u});P&&(g=P),p.addInstruction(T||{});let{account:k,instructionParams:w}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new R(t.mintB.address),owner:this.scope.ownerPubKey,createInfo:h||(r==="MintA"?s:o).isZero()?{payer:this.scope.ownerPubKey,amount:r==="MintA"?s:o}:void 0,notUseTokenAccount:h,skipCloseAccount:!h,associatedOnly:h?!1:c,checkCreateATAOwner:u});k&&(y=k),p.addInstruction(w||{}),!g&&!y&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",this.scope.account.tokenAccounts);let A=await this.getClmmPoolKeys(t.id),x=le.increasePositionFromBaseInstructions({poolInfo:t,poolKeys:A,ownerPosition:n,ownerInfo:{wallet:this.scope.ownerPubKey,tokenAccountA:g,tokenAccountB:y},base:r,baseAmount:o,otherAmountMax:s,nft2022:(B=await this.scope.connection.getAccountInfo(n.nftMint))==null?void 0:B.owner.equals(wt)});return p.addInstruction(x),p.addCustomComputeBudget(l),p.addTipInstruction(d),p.versionBuild({txVersion:f,extInfo:{address:x.address}})}async decreaseLiquidity(e){var E;let{poolInfo:t,poolKeys:n,ownerPosition:r,ownerInfo:o,amountMinA:s,amountMinB:a,liquidity:c,associatedOnly:u=!0,checkCreateATAOwner:l=!1,computeBudgetConfig:d,txTipConfig:f,txVersion:m,feePayer:p}=e;this.scope.availability.removeConcentratedPosition===!1&&this.logAndCreateError("remove position feature disabled in your region");let g=this.createTxBuilder(p),y=o.useSOLBalance&&t.mintA.address===ee.toString(),b=o.useSOLBalance&&t.mintB.address===ee.toString(),h,P,{account:T,instructionParams:k}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new R(t.mintA.address),notUseTokenAccount:y,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!y,associatedOnly:y?!1:u,checkCreateATAOwner:l});h=T,k&&g.addInstruction(k);let{account:w,instructionParams:A}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new R(t.mintB.address),notUseTokenAccount:b,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!b,associatedOnly:b?!1:u,checkCreateATAOwner:l});P=w,A&&g.addInstruction(A);let x=[];for(let C of t.rewardDefaultInfos){let M=o.useSOLBalance&&C.mint.address===ee.toString(),_;if(C.mint.address===t.mintA.address)_=h;else if(C.mint.address===t.mintB.address)_=P;else{let{account:Te,instructionParams:Ke}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:new R(C.mint.programId),mint:new R(C.mint.address),notUseTokenAccount:M,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!M,associatedOnly:M?!1:u,checkCreateATAOwner:l});_=Te,Ke&&g.addInstruction(Ke)}x.push(_)}!h&&!P&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",this.scope.account.tokenAccountRawInfos);let B=n!=null?n:await this.getClmmPoolKeys(t.id),K=(E=await this.scope.connection.getAccountInfo(r.nftMint))==null?void 0:E.owner.equals(wt),N=await le.decreaseLiquidityInstructions({poolInfo:t,poolKeys:B,ownerPosition:r,ownerInfo:{wallet:this.scope.ownerPubKey,tokenAccountA:h,tokenAccountB:P,rewardAccounts:x},liquidity:c,amountMinA:s,amountMinB:a,nft2022:K});g.addInstruction({instructions:N.instructions,instructionTypes:[se.ClmmDecreasePosition]});let L=v({},N.address);if(o.closePosition){let C=await le.closePositionInstructions({poolInfo:t,poolKeys:B,ownerInfo:{wallet:this.scope.ownerPubKey},ownerPosition:r,nft2022:K});g.addInstruction({endInstructions:C.instructions,endInstructionTypes:C.instructionTypes}),L=v(v({},L),C.address)}return g.addCustomComputeBudget(d),g.addTipInstruction(f),g.versionBuild({txVersion:m,extInfo:{address:L}})}async lockPosition(e){var p;let{programId:t=zt,authProgramId:n=Bn,poolProgramId:r=Ht,ownerPosition:o,payer:s,computeBudgetConfig:a,txTipConfig:c,txVersion:u,getEphemeralSigners:l,feePayer:d}=e,f=this.createTxBuilder(d),m=await le.makeLockPositions({programId:t,authProgramId:n,poolProgramId:r,wallet:this.scope.ownerPubKey,payer:s!=null?s:this.scope.ownerPubKey,nftMint:o.nftMint,getEphemeralSigners:l,nft2022:(p=await this.scope.connection.getAccountInfo(o.nftMint))==null?void 0:p.owner.equals(wt)});return f.addInstruction(m),f.addCustomComputeBudget(a),f.addTipInstruction(c),f.versionBuild({txVersion:u,extInfo:m.address})}async harvestLockPosition(e){let{programId:t=zt,authProgramId:n=Bn,clmmProgram:r=Ht,poolKeys:o,lockData:s,ownerInfo:a={useSOLBalance:!0},associatedOnly:c=!0,checkCreateATAOwner:u=!1,computeBudgetConfig:l,txTipConfig:d,txVersion:f,feePayer:m}=e,p=o||await this.getClmmPoolKeys(s.poolId.toString()),g=this.createTxBuilder(m),y=await this.scope.connection.getAccountInfo(s.positionId);y||this.logger.logWithError("position not found",s.positionId);let b=_t.decode(y.data),h=a.useSOLBalance&&p.mintA.address===ee.toString(),P=a.useSOLBalance&&p.mintB.address===ee.toString(),T,k,{account:w,instructionParams:A}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:p.mintA.programId,mint:new R(p.mintA.address),notUseTokenAccount:h,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!h,associatedOnly:h?!1:c,checkCreateATAOwner:u});T=w,A&&g.addInstruction(A);let{account:x,instructionParams:B}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:p.mintB.programId,mint:new R(p.mintB.address),notUseTokenAccount:P,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!P,associatedOnly:P?!1:c,checkCreateATAOwner:u});k=x,B&&g.addInstruction(B);let K={},N=[];for(let we of p.rewardInfos){let Me=a.useSOLBalance&&we.mint.address===ee.toString(),ut=K[we.mint.address];if(!ut){let{account:Or,instructionParams:ki}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:new R(we.mint.programId),mint:new R(we.mint.address),notUseTokenAccount:Me,owner:this.scope.ownerPubKey,skipCloseAccount:!Me,createInfo:{payer:this.scope.ownerPubKey,amount:0},associatedOnly:Me?!1:c});ut=Or,ki&&g.addInstruction(ki)}K[we.mint.address]=ut,N.push(ut)}let L=Ft(t,s.lockNftMint).publicKey,E=ae(this.scope.ownerPubKey,s.lockNftMint,un).publicKey,C=F.getTickArrayStartIndexByTick(b.tickLower,p.config.tickSpacing),M=F.getTickArrayStartIndexByTick(b.tickUpper,p.config.tickSpacing),{publicKey:_}=J(new R(p.programId),s.poolId,C),{publicKey:Te}=J(new R(p.programId),s.poolId,M),{publicKey:Ke}=Ze(new R(p.programId),s.poolId,b.tickLower,b.tickUpper),tt=[];for(let we=0;we<p.rewardInfos.length;we++)tt.push({poolRewardVault:new R(p.rewardInfos[we].vault),ownerRewardVault:N[we],rewardMint:new R(p.rewardInfos[we].mint.address)});let Bt=await le.harvestLockPositionInstructionV2({programId:t,auth:n,lockPositionId:L,clmmProgram:r,lockOwner:this.scope.ownerPubKey,lockNftMint:s.lockNftMint,lockNftAccount:E,positionNftAccount:s.nftAccount,positionId:s.positionId,poolId:s.poolId,protocolPosition:Ke,vaultA:new R(p.vault.A),vaultB:new R(p.vault.B),tickArrayLower:_,tickArrayUpper:Te,userVaultA:T,userVaultB:k,mintA:new R(p.mintA.address),mintB:new R(p.mintB.address),rewardAccounts:tt,exTickArrayBitmap:he(r,s.poolId).publicKey});return g.addInstruction({instructions:[Bt],instructionTypes:[se.ClmmHarvestLockPosition]}),g.addCustomComputeBudget(l),g.addTipInstruction(d),g.versionBuild({txVersion:f})}async closePosition({poolInfo:e,poolKeys:t,ownerPosition:n,txVersion:r,computeBudgetConfig:o,txTipConfig:s,feePayer:a}){var d;this.scope.availability.removeConcentratedPosition===!1&&this.logAndCreateError("remove position feature disabled in your region");let c=this.createTxBuilder(a),u=t!=null?t:await this.getClmmPoolKeys(e.id),l=le.closePositionInstructions({poolInfo:e,poolKeys:u,ownerInfo:{wallet:this.scope.ownerPubKey},ownerPosition:n,nft2022:(d=await this.scope.connection.getAccountInfo(n.nftMint))==null?void 0:d.owner.equals(wt)});return c.addCustomComputeBudget(o),c.addTipInstruction(s),c.addInstruction(l).versionBuild({txVersion:r,extInfo:{address:l.address}})}async initReward({poolInfo:e,ownerInfo:t,rewardInfo:n,associatedOnly:r=!0,checkCreateATAOwner:o=!1,computeBudgetConfig:s,txVersion:a,feePayer:c}){n.endTime<=n.openTime&&this.logAndCreateError("reward time error","rewardInfo",n);let u=this.createTxBuilder(c),l=t.useSOLBalance&&n.mint.address.toString()===ee.toString(),d=n.perSecond.mul(n.endTime-n.openTime),{account:f,instructionParams:m}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:new R(n.mint.address),mint:new R(n.mint.address),notUseTokenAccount:!!l,skipCloseAccount:!l,owner:this.scope.ownerPubKey,createInfo:l?{payer:t.feePayer||this.scope.ownerPubKey,amount:new _e(new O(d.toFixed(0)).gte(d)?d.toFixed(0):d.add(1).toFixed(0))}:void 0,associatedOnly:l?!1:r,checkCreateATAOwner:o});m&&u.addInstruction(m),f||this.logAndCreateError("no money","ownerRewardAccount",this.scope.account.tokenAccountRawInfos);let p=await this.getClmmPoolKeys(e.id),g=le.initRewardInstructions({poolInfo:e,poolKeys:p,ownerInfo:{wallet:this.scope.ownerPubKey,tokenAccount:f},rewardInfo:{programId:new R(n.mint.programId),mint:new R(n.mint.address),openTime:n.openTime,endTime:n.endTime,emissionsPerSecondX64:G.decimalToX64(n.perSecond)}});return u.addInstruction(g),u.addCustomComputeBudget(s),u.versionBuild({txVersion:a,extInfo:{address:g.address}})}async initRewards({poolInfo:e,poolKeys:t,ownerInfo:n,rewardInfos:r,associatedOnly:o=!0,checkCreateATAOwner:s=!1,computeBudgetConfig:a,txTipConfig:c,txVersion:u,feePayer:l}){for(let m of r)m.endTime<=m.openTime&&this.logAndCreateError("reward time error","rewardInfo",m);let d=this.createTxBuilder(l),f={};for(let m of r){let p=n.useSOLBalance&&m.mint.address===ee.toString(),g=m.perSecond.mul(m.endTime-m.openTime),{account:y,instructionParams:b}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:new R(m.mint.programId),mint:new R(m.mint.address),notUseTokenAccount:!!p,skipCloseAccount:!p,owner:this.scope.ownerPubKey,createInfo:p?{payer:n.feePayer||this.scope.ownerPubKey,amount:new _e(new O(g.toFixed(0)).gte(g)?g.toFixed(0):g.add(1).toFixed(0))}:void 0,associatedOnly:p?!1:o,checkCreateATAOwner:s});b&&d.addInstruction(b),y||this.logAndCreateError("no money","ownerRewardAccount",this.scope.account.tokenAccountRawInfos);let h=t!=null?t:await this.getClmmPoolKeys(e.id),P=le.initRewardInstructions({poolInfo:e,poolKeys:h,ownerInfo:{wallet:this.scope.ownerPubKey,tokenAccount:y},rewardInfo:{programId:new R(m.mint.programId),mint:new R(m.mint.address),openTime:m.openTime,endTime:m.endTime,emissionsPerSecondX64:G.decimalToX64(m.perSecond)}});f=v(v({},f),P.address),d.addInstruction(P)}return d.addCustomComputeBudget(a),d.addTipInstruction(c),d.versionBuild({txVersion:u,extInfo:{address:f}})}async setReward({poolInfo:e,ownerInfo:t,rewardInfo:n,associatedOnly:r=!0,checkCreateATAOwner:o=!1,computeBudgetConfig:s,txTipConfig:a,txVersion:c,feePayer:u}){n.endTime<=n.openTime&&this.logAndCreateError("reward time error","rewardInfo",n);let l=this.createTxBuilder(u),d=t.useSOLBalance&&n.mint.equals(ee),{account:f,instructionParams:m}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:n.programId,mint:n.mint,notUseTokenAccount:d,owner:this.scope.ownerPubKey,createInfo:d?{payer:t.feePayer||this.scope.ownerPubKey,amount:new _e(new O(n.perSecond.mul(n.endTime-n.openTime).toFixed(0)).gte(n.perSecond.mul(n.endTime-n.openTime))?n.perSecond.mul(n.endTime-n.openTime).toFixed(0):n.perSecond.mul(n.endTime-n.openTime).add(1).toFixed(0))}:void 0,associatedOnly:d?!1:r,checkCreateATAOwner:o});m&&l.addInstruction(m),f||this.logAndCreateError("no money","ownerRewardAccount",this.scope.account.tokenAccountRawInfos);let p=await this.getClmmPoolKeys(e.id),g=le.setRewardInstructions({poolInfo:e,poolKeys:p,ownerInfo:{wallet:this.scope.ownerPubKey,tokenAccount:f},rewardInfo:{mint:n.mint,openTime:n.openTime,endTime:n.endTime,emissionsPerSecondX64:G.decimalToX64(n.perSecond)}});return l.addInstruction(g),l.addCustomComputeBudget(s),l.addTipInstruction(a),l.versionBuild({txVersion:c,extInfo:{address:g.address}})}async setRewards({poolInfo:e,poolKeys:t,ownerInfo:n,rewardInfos:r,associatedOnly:o=!0,checkCreateATAOwner:s=!1,computeBudgetConfig:a,txTipConfig:c,txVersion:u,feePayer:l}){let d=this.createTxBuilder(l),f={};for(let m of r){m.endTime<=m.openTime&&this.logAndCreateError("reward time error","rewardInfo",m);let p=n.useSOLBalance&&m.mint.address===ee.toString(),{account:g,instructionParams:y}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:new R(m.mint.programId),mint:new R(m.mint.address),notUseTokenAccount:p,owner:this.scope.ownerPubKey,createInfo:p?{payer:n.feePayer||this.scope.ownerPubKey,amount:new _e(new O(m.perSecond.mul(m.endTime-m.openTime).toFixed(0)).gte(m.perSecond.mul(m.endTime-m.openTime))?m.perSecond.mul(m.endTime-m.openTime).toFixed(0):m.perSecond.mul(m.endTime-m.openTime).add(1).toFixed(0))}:void 0,associatedOnly:p?!1:o,checkCreateATAOwner:s});y&&d.addInstruction(y),g||this.logAndCreateError("no money","ownerRewardAccount",this.scope.account.tokenAccountRawInfos);let b=t!=null?t:await this.getClmmPoolKeys(e.id),h=le.setRewardInstructions({poolInfo:e,poolKeys:b,ownerInfo:{wallet:this.scope.ownerPubKey,tokenAccount:g},rewardInfo:{mint:new R(m.mint.address),openTime:m.openTime,endTime:m.endTime,emissionsPerSecondX64:G.decimalToX64(m.perSecond)}});d.addInstruction(h),f=v(v({},f),h.address)}return d.addCustomComputeBudget(a),d.addTipInstruction(c),d.versionBuild({txVersion:u,extInfo:{address:f}})}async collectReward({poolInfo:e,ownerInfo:t,rewardMint:n,associatedOnly:r=!0,checkCreateATAOwner:o=!1,computeBudgetConfig:s,txTipConfig:a,txVersion:c,feePayer:u}){let l=e.rewardDefaultInfos.find(b=>b.mint.address===n.toString());l||this.logAndCreateError("reward mint error","not found reward mint",n);let d=this.createTxBuilder(u),f=t.useSOLBalance&&n.equals(ee),{account:m,instructionParams:p}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:new R(l.mint.programId),mint:n,notUseTokenAccount:f,owner:this.scope.ownerPubKey,skipCloseAccount:!f,createInfo:{payer:t.feePayer||this.scope.ownerPubKey,amount:0},associatedOnly:f?!1:r,checkCreateATAOwner:o});p&&d.addInstruction(p),m||this.logAndCreateError("no money","ownerRewardAccount",this.scope.account.tokenAccountRawInfos);let g=await this.getClmmPoolKeys(e.id),y=le.collectRewardInstructions({poolInfo:e,poolKeys:g,ownerInfo:{wallet:this.scope.ownerPubKey,tokenAccount:m},rewardMint:n});return d.addInstruction(y),d.addCustomComputeBudget(s),d.addTipInstruction(a),d.versionBuild({txVersion:c,extInfo:{address:y.address}})}async collectRewards({poolInfo:e,ownerInfo:t,rewardMints:n,associatedOnly:r=!0,checkCreateATAOwner:o=!1,computeBudgetConfig:s,txTipConfig:a,feePayer:c}){let u=this.createTxBuilder(c),l={};for(let d of n){let f=e.rewardDefaultInfos.find(h=>h.mint.address===d.toString());if(!f){this.logAndCreateError("reward mint error","not found reward mint",d);continue}let m=t.useSOLBalance&&d.equals(ee),{account:p,instructionParams:g}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:new R(f.mint.programId),mint:d,notUseTokenAccount:m,owner:this.scope.ownerPubKey,skipCloseAccount:!m,createInfo:{payer:t.feePayer||this.scope.ownerPubKey,amount:0},associatedOnly:m?!1:r,checkCreateATAOwner:o});p||this.logAndCreateError("no money","ownerRewardAccount",this.scope.account.tokenAccountRawInfos),g&&u.addInstruction(g);let y=await this.getClmmPoolKeys(e.id),b=le.collectRewardInstructions({poolInfo:e,poolKeys:y,ownerInfo:{wallet:this.scope.ownerPubKey,tokenAccount:p},rewardMint:d});u.addInstruction(b),l=v(v({},l),b.address)}return u.addCustomComputeBudget(s),u.addTipInstruction(a),u.build({address:l})}async swap({poolInfo:e,poolKeys:t,inputMint:n,amountIn:r,amountOutMin:o,priceLimit:s,observationId:a,ownerInfo:c,remainingAccounts:u,associatedOnly:l=!0,checkCreateATAOwner:d=!1,txVersion:f,computeBudgetConfig:m,txTipConfig:p,feePayer:g}){let y=this.createTxBuilder(g),b=n.toString()===e.mintA.address,h=c.useSOLBalance&&e.mintA.address===ee.toBase58(),P=c.useSOLBalance&&e.mintB.address===ee.toBase58(),T;!s||s.equals(new O(0))?T=b?Qe.add(new _e(1)):$e.sub(new _e(1)):T=U.priceToSqrtPriceX64(s,e.mintA.decimals,e.mintB.decimals);let k;if(!k){let{account:x,instructionParams:B}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintA.programId,mint:new R(e.mintA.address),notUseTokenAccount:h,owner:this.scope.ownerPubKey,skipCloseAccount:!h,createInfo:h||!b?{payer:c.feePayer||this.scope.ownerPubKey,amount:b?r:0}:void 0,associatedOnly:h?!1:l,checkCreateATAOwner:d});k=x,B&&y.addInstruction(B)}let w;if(!w){let{account:x,instructionParams:B}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintB.programId,mint:new R(e.mintB.address),notUseTokenAccount:P,owner:this.scope.ownerPubKey,skipCloseAccount:!P,createInfo:P||b?{payer:c.feePayer||this.scope.ownerPubKey,amount:b?0:r}:void 0,associatedOnly:P?!1:l,checkCreateATAOwner:d});w=x,B&&y.addInstruction(B)}(!k||!w)&&this.logAndCreateError("user do not have token account",{tokenA:e.mintA.symbol||e.mintA.address,tokenB:e.mintB.symbol||e.mintB.address,ownerTokenAccountA:k,ownerTokenAccountB:w,mintAUseSOLBalance:h,mintBUseSOLBalance:P,associatedOnly:l});let A=t!=null?t:await this.getClmmPoolKeys(e.id);return y.addInstruction(le.makeSwapBaseInInstructions({poolInfo:e,poolKeys:A,observationId:a,ownerInfo:{wallet:this.scope.ownerPubKey,tokenAccountA:k,tokenAccountB:w},inputMint:new R(n),amountIn:r,amountOutMin:o,sqrtPriceLimitX64:T,remainingAccounts:u})),y.addCustomComputeBudget(m),y.addTipInstruction(p),y.versionBuild({txVersion:f})}async swapBaseOut({poolInfo:e,poolKeys:t,outputMint:n,amountOut:r,amountInMax:o,priceLimit:s,observationId:a,ownerInfo:c,remainingAccounts:u,associatedOnly:l=!0,checkCreateATAOwner:d=!1,txVersion:f,computeBudgetConfig:m,txTipConfig:p,feePayer:g}){let y=this.createTxBuilder(g),b=n.toString()===e.mintB.address,h=c.useSOLBalance&&e.mintA.address===ee.toBase58(),P=c.useSOLBalance&&e.mintB.address===ee.toBase58(),T;!s||s.equals(new O(0))?T=n.toString()===e.mintB.address?Qe.add(new _e(1)):$e.sub(new _e(1)):T=U.priceToSqrtPriceX64(s,e.mintA.decimals,e.mintB.decimals);let k;if(!k){let{account:x,instructionParams:B}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintA.programId,mint:new R(e.mintA.address),notUseTokenAccount:h,owner:this.scope.ownerPubKey,skipCloseAccount:!h,createInfo:h||!b?{payer:c.feePayer||this.scope.ownerPubKey,amount:b?o:0}:void 0,associatedOnly:h?!1:l,checkCreateATAOwner:d});k=x,B&&y.addInstruction(B)}let w;if(!w){let{account:x,instructionParams:B}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintB.programId,mint:new R(e.mintB.address),notUseTokenAccount:P,owner:this.scope.ownerPubKey,skipCloseAccount:!P,createInfo:P||b?{payer:c.feePayer||this.scope.ownerPubKey,amount:b?0:o}:void 0,associatedOnly:P?!1:l,checkCreateATAOwner:d});w=x,B&&y.addInstruction(B)}(!k||!w)&&this.logAndCreateError("user do not have token account",{tokenA:e.mintA.symbol||e.mintA.address,tokenB:e.mintB.symbol||e.mintB.address,ownerTokenAccountA:k,ownerTokenAccountB:w,mintAUseSOLBalance:h,mintBUseSOLBalance:P,associatedOnly:l});let A=t!=null?t:await this.getClmmPoolKeys(e.id);return y.addInstruction(le.makeSwapBaseOutInstructions({poolInfo:e,poolKeys:A,observationId:a,ownerInfo:{wallet:this.scope.ownerPubKey,tokenAccountA:k,tokenAccountB:w},outputMint:new R(n),amountOut:r,amountInMax:o,sqrtPriceLimitX64:T,remainingAccounts:u})),y.addCustomComputeBudget(m),y.addTipInstruction(p),y.versionBuild({txVersion:f})}async harvestAllRewards({allPoolInfo:e,allPositions:t,lockInfo:n,ownerInfo:r,associatedOnly:o=!0,checkCreateATAOwner:s=!1,programId:a,txVersion:c,computeBudgetConfig:u,feePayer:l,lockProgram:d=zt,lockAuth:f=Bn,clmmProgram:m=Ht}){var P,T;let p={};for(let k of this.scope.account.tokenAccountRawInfos)o?ae(this.scope.ownerPubKey,k.accountInfo.mint,a).publicKey.equals(k.pubkey)&&(p[k.accountInfo.mint.toString()]=k.pubkey):p[k.accountInfo.mint.toString()]=k.pubkey;let g=Object.values(t).flat().map(k=>k.nftMint),y=await rt(this.scope.connection,g.map(k=>({pubkey:k}))),b={};y.forEach(k=>{var w,A;b[k.pubkey.toBase58()]=(A=(w=k==null?void 0:k.accountInfo)==null?void 0:w.owner)!=null?A:null});let h=this.createTxBuilder(l);for(let k of Object.values(e)){if(t[k.id]===void 0||!t[k.id].find(C=>!C.liquidity.isZero()||C.rewardInfos.find(M=>!M.rewardAmountOwed.isZero())))continue;let w=k,A=r.useSOLBalance&&w.mintA.address===ee.toString(),x=r.useSOLBalance&&w.mintB.address===ee.toString(),B=p[w.mintA.address];if(!B)if(A){let{account:C,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:w.mintA.programId,mint:new R(w.mintA.address),notUseTokenAccount:A,owner:this.scope.ownerPubKey,skipCloseAccount:!A,createInfo:{payer:r.feePayer||this.scope.ownerPubKey,amount:0},associatedOnly:A?!1:o,checkCreateATAOwner:s});B=C,M&&h.addInstruction(M)}else{let C=new R(w.mintA.address);B=this.scope.account.getAssociatedTokenAccount(C,new R(w.mintA.programId)),h.addInstruction({instructions:[Rr(this.scope.ownerPubKey,B,this.scope.ownerPubKey,C,new R(w.mintA.programId))]})}let K=p[w.mintB.address];if(!K)if(x){let{account:C,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:w.mintB.programId,mint:new R(w.mintB.address),notUseTokenAccount:x,owner:this.scope.ownerPubKey,skipCloseAccount:!x,createInfo:{payer:r.feePayer||this.scope.ownerPubKey,amount:0},associatedOnly:x?!1:o,checkCreateATAOwner:s});K=C,M&&h.addInstruction(M)}else{let C=new R(w.mintB.address);K=this.scope.account.getAssociatedTokenAccount(C,new R(w.mintB.programId)),h.addInstruction({instructions:[Rr(this.scope.ownerPubKey,K,this.scope.ownerPubKey,C,new R(w.mintB.programId))]})}p[w.mintA.address]=B,p[w.mintB.address]=K;let N=[];for(let C of w.rewardDefaultInfos){let M=r.useSOLBalance&&C.mint.address===ee.toString(),_=p[C.mint.address];if(!_){let{account:Te,instructionParams:Ke}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:new R(C.mint.programId),mint:new R(C.mint.address),notUseTokenAccount:M,owner:this.scope.ownerPubKey,skipCloseAccount:!M,createInfo:{payer:r.feePayer||this.scope.ownerPubKey,amount:0},associatedOnly:M?!1:o});_=Te,Ke&&h.addInstruction(Ke)}p[C.mint.address]=_,N.push(_)}let L=await this.getClmmPoolKeys(w.id),E=[];for(let C=0;C<L.rewardInfos.length;C++)E.push({poolRewardVault:new R(L.rewardInfos[C].vault),ownerRewardVault:N[C],rewardMint:new R(L.rewardInfos[C].mint.address)});for(let C of t[k.id]){let M=(P=n==null?void 0:n[k.id])==null?void 0:P[C.nftMint.toBase58()];if(M){let _=ae(this.scope.ownerPubKey,M.lockNftMint,un).publicKey,Te=F.getTickArrayStartIndexByTick(C.tickLower,L.config.tickSpacing),Ke=F.getTickArrayStartIndexByTick(C.tickUpper,L.config.tickSpacing),{publicKey:tt}=J(new R(L.programId),M.poolId,Te),{publicKey:Bt}=J(new R(L.programId),M.poolId,Ke),{publicKey:we}=Ze(new R(L.programId),M.poolId,C.tickLower,C.tickUpper),Me=Ft(d,M.lockNftMint).publicKey,ut=le.harvestLockPositionInstructionV2({programId:d,auth:f,lockPositionId:Me,clmmProgram:m,lockOwner:this.scope.ownerPubKey,lockNftMint:M.lockNftMint,lockNftAccount:_,positionNftAccount:M.nftAccount,positionId:M.positionId,poolId:M.poolId,protocolPosition:we,vaultA:new R(L.vault.A),vaultB:new R(L.vault.B),tickArrayLower:tt,tickArrayUpper:Bt,userVaultA:B,userVaultB:K,mintA:new R(L.mintA.address),mintB:new R(L.mintB.address),rewardAccounts:E,exTickArrayBitmap:he(m,M.poolId).publicKey});h.addInstruction({instructions:[ut],instructionTypes:[se.ClmmHarvestLockPosition],lookupTableAddress:L.lookupTableAccount?[L.lookupTableAccount]:[]})}else{let _=le.decreaseLiquidityInstructions({poolInfo:w,poolKeys:L,ownerPosition:C,ownerInfo:{wallet:this.scope.ownerPubKey,tokenAccountA:B,tokenAccountB:K,rewardAccounts:N},liquidity:new _e(0),amountMinA:new _e(0),amountMinB:new _e(0),nft2022:(T=b[C.nftMint.toBase58()])==null?void 0:T.equals(wt)});h.addInstruction(_)}}}return c===0?h.sizeCheckBuildV0({computeBudgetConfig:u}):h.sizeCheckBuild({computeBudgetConfig:u})}async getWhiteListMint({programId:e}){let t=await this.scope.connection.getAccountInfo(rn(e).publicKey);return t?Ir.decode(t.data).whitelistMints.filter(r=>!r.equals(R.default)):[]}async getOwnerPositionInfo({programId:e=Ht}){await this.scope.account.fetchWalletTokenAccounts();let n=this.scope.account.tokenAccountRawInfos.filter(s=>s.accountInfo.amount.eq(new _e(1))).map(s=>Fe(new R(e),s.accountInfo.mint).publicKey),r=await this.scope.connection.getMultipleAccountsInfo(n),o=[];return r.forEach(s=>{if(!s)return;let a=_t.decode(s.data);o.push(a)}),o}async getOwnerLockedPositionInfo({programId:e=zt}){await this.scope.account.fetchWalletTokenAccounts();let n=this.scope.account.tokenAccountRawInfos.filter(c=>c.accountInfo.amount.eq(new _e(1))).map(c=>Ft(new R(e),c.accountInfo.mint).publicKey),r=await this.scope.connection.getMultipleAccountsInfo(n),o=[];r.forEach(c=>{if(!c)return;let u=Sr.decode(c.data);o.push(u)});let s=await this.scope.connection.getMultipleAccountsInfo(o.map(c=>c.positionId)),a=[];return s.forEach(c=>{if(!c)return;let u=_t.decode(c.data);a.push(u)}),o.map((c,u)=>({position:a[u],lockInfo:c}))}async getRpcClmmPoolInfo({poolId:e}){return(await this.getRpcClmmPoolInfos({poolIds:[e]}))[String(e)]}async getRpcClmmPoolInfos({poolIds:e,config:t}){let n=await rt(this.scope.connection,e.map(o=>({pubkey:new R(o)})),t),r={};for(let o=0;o<e.length;o++){let s=n[o];if(s===null||!s.accountInfo)throw Error("fetch pool info error: "+String(e[o]));let a=Mn.decode(s.accountInfo.data),c=U.sqrtPriceX64ToPrice(a.sqrtPriceX64,a.mintDecimalsA,a.mintDecimalsB).toNumber();r[String(e[o])]=j(v({},a),{currentPrice:c,programId:s.accountInfo.owner})}return r}async getComputeClmmPoolInfos({clmmPoolsRpcInfo:e,mintInfos:t}){let n=new Set(Object.keys(e).map(c=>e[c].ammConfig.toBase58())),r=await rt(this.scope.connection,Array.from(n).map(c=>({pubkey:new R(c)}))),o={};r.forEach(c=>{!c.accountInfo||(o[c.pubkey.toBase58()]=xr.decode(c.accountInfo.data))});let s=await pe.fetchComputeMultipleClmmInfo({connection:this.scope.connection,rpcDataMap:e,poolList:Object.keys(e).map(c=>{var d,f,m,p;let[u,l]=[e[c].mintA.toBase58(),e[c].mintB.toBase58()];return{id:c,programId:e[c].programId.toBase58(),mintA:Cn({address:u,decimals:e[c].mintDecimalsA,programId:t[u].programId.toBase58()||un.toBase58(),extensions:{feeConfig:(d=t[u])!=null&&d.feeConfig?si((f=t[u])==null?void 0:f.feeConfig):void 0}}),mintB:Cn({address:l,decimals:e[c].mintDecimalsB,programId:t[l].programId.toBase58()||un.toBase58(),extensions:{feeConfig:(m=t[l])!=null&&m.feeConfig?si((p=t[l])==null?void 0:p.feeConfig):void 0}}),price:e[c].currentPrice,config:j(v({},o[e[c].ammConfig.toBase58()]),{id:e[c].ammConfig.toBase58(),fundFeeRate:0,description:"",defaultRange:0,defaultRangePoint:[]})}})}),a=await pe.fetchMultiplePoolTickArrays({connection:this.scope.connection,poolKeys:Object.values(s)});return{computeClmmPoolInfo:s,computePoolTickData:a}}async getPoolInfoFromRpc(e){var l;let t=await this.getRpcClmmPoolInfo({poolId:e}),n=new Set([t.mintA.toBase58(),t.mintB.toBase58()]),r=await Vi({connection:this.scope.connection,mints:Array.from(n).map(d=>new R(d))}),{computeClmmPoolInfo:o,computePoolTickData:s}=await this.scope.clmm.getComputeClmmPoolInfos({clmmPoolsRpcInfo:{[e]:t},mintInfos:r}),a=await rt(this.scope.connection,[{pubkey:t.vaultA},{pubkey:t.vaultB}]),c=Tr(o[e]);if(!a[0].accountInfo||!a[1].accountInfo)throw new Error("pool vault data not found");c.mintAmountA=Number(Lr.decode(a[0].accountInfo.data).amount.toString()),c.mintAmountB=Number(Lr.decode((l=a[1].accountInfo)==null?void 0:l.data).amount.toString());let u=j(v({},o[e]),{exBitmapAccount:o[e].exBitmapAccount.toBase58(),observationId:o[e].observationId.toBase58(),id:e,programId:t.programId.toBase58(),openTime:t.startTime.toString(),vault:{A:t.vaultA.toBase58(),B:t.vaultB.toBase58()},config:c.config,rewardInfos:o[e].rewardInfos.filter(d=>!d.tokenVault.equals(R.default)).map(d=>({mint:Cn({address:d.tokenMint.toBase58(),programId:un.toBase58(),decimals:10}),vault:d.tokenVault.toBase58()}))});return{poolInfo:c,poolKeys:u,computePoolInfo:o[e],tickData:s}}};export{Mr as Clmm};
//# sourceMappingURL=clmm.mjs.map