@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 164 kB
JavaScript
var Co=Object.defineProperty,No=Object.defineProperties;var Ro=Object.getOwnPropertyDescriptors;var ci=Object.getOwnPropertySymbols;var Lo=Object.prototype.hasOwnProperty,Oo=Object.prototype.propertyIsEnumerable;var li=(i,e,t)=>e in i?Co(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,Q=(i,e)=>{for(var t in e||(e={}))Lo.call(e,t)&&li(i,t,e[t]);if(ci)for(var t of ci(e))Oo.call(e,t)&&li(i,t,e[t]);return i},J=(i,e)=>No(i,Ro(e));import{PublicKey as Qw,SystemProgram as Zw}from"@solana/web3.js";import{createTransferInstruction as Jw,TOKEN_PROGRAM_ID as $w,TOKEN_2022_PROGRAM_ID as eT,createAssociatedTokenAccountIdempotentInstruction as tT,createSyncNativeInstruction as oT}from"@solana/spl-token";import Ta from"bn.js";var Bt=9e15,bt=1e9,wn="0123456789abcdef",Ht="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Qt="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Tn={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Bt,maxE:Bt,crypto:!1},fi,nt,X=!0,jt="[DecimalError] ",ft=jt+"Invalid argument: ",bi=jt+"Precision limit exceeded",yi=jt+"crypto unavailable",gi="[object Decimal]",Ne=Math.floor,ke=Math.pow,Mo=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Fo=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,vo=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Pi=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Xe=1e7,_=7,Eo=9007199254740991,Wo=Ht.length-1,hn=Qt.length-1,w={toStringTag:gi};w.absoluteValue=w.abs=function(){var i=new this.constructor(this);return i.s<0&&(i.s=1),V(i)};w.ceil=function(){return V(new this.constructor(this),this.e+1,2)};w.clampedTo=w.clamp=function(i,e){var t,n=this,o=n.constructor;if(i=new o(i),e=new o(e),!i.s||!e.s)return new o(NaN);if(i.gt(e))throw Error(ft+e);return t=n.cmp(i),t<0?i:n.cmp(e)>0?e:new o(n)};w.comparedTo=w.cmp=function(i){var e,t,n,o,r=this,s=r.d,a=(i=new r.constructor(i)).d,u=r.s,c=i.s;if(!s||!a)return!u||!c?NaN:u!==c?u:s===a?0:!s^u<0?1:-1;if(!s[0]||!a[0])return s[0]?u:a[0]?-c:0;if(u!==c)return u;if(r.e!==i.e)return r.e>i.e^u<0?1:-1;for(n=s.length,o=a.length,e=0,t=n<o?n:o;e<t;++e)if(s[e]!==a[e])return s[e]>a[e]^u<0?1:-1;return n===o?0:n>o^u<0?1:-1};w.cosine=w.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())+_,n.rounding=1,t=Vo(n,hi(n,t)),n.precision=i,n.rounding=e,V(nt==2||nt==3?t.neg():t,i,e,!0)):new n(1):new n(NaN)};w.cubeRoot=w.cbrt=function(){var i,e,t,n,o,r,s,a,u,c,l=this,p=l.constructor;if(!l.isFinite()||l.isZero())return new p(l);for(X=!1,r=l.s*ke(l.s*l,1/3),!r||Math.abs(r)==1/0?(t=Ke(l.d),i=l.e,(r=(i-t.length+1)%3)&&(t+=r==1||r==-2?"0":"00"),r=ke(t,1/3),i=Ne((i+1)/3)-(i%3==(i<0?-1:2)),r==1/0?t="5e"+i:(t=r.toExponential(),t=t.slice(0,t.indexOf("e")+1)+i),n=new p(t),n.s=l.s):n=new p(r.toString()),s=(i=p.precision)+3;;)if(a=n,u=a.times(a).times(a),c=u.plus(l),n=re(c.plus(l).times(a),c.plus(u),s+2,1),Ke(a.d).slice(0,s)===(t=Ke(n.d)).slice(0,s))if(t=t.slice(s-3,s+1),t=="9999"||!o&&t=="4999"){if(!o&&(V(a,i+1,0),a.times(a).times(a).eq(l))){n=a;break}s+=4,o=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(V(n,i+1,1),e=!n.times(n).times(n).eq(l));break}return X=!0,V(n,i,p.rounding,e)};w.decimalPlaces=w.dp=function(){var i,e=this.d,t=NaN;if(e){if(i=e.length-1,t=(i-Ne(this.e/_))*_,i=e[i],i)for(;i%10==0;i/=10)t--;t<0&&(t=0)}return t};w.dividedBy=w.div=function(i){return re(this,new this.constructor(i))};w.dividedToIntegerBy=w.divToInt=function(i){var e=this,t=e.constructor;return V(re(e,new t(i),0,1,1),t.precision,t.rounding)};w.equals=w.eq=function(i){return this.cmp(i)===0};w.floor=function(){return V(new this.constructor(this),this.e+1,3)};w.greaterThan=w.gt=function(i){return this.cmp(i)>0};w.greaterThanOrEqualTo=w.gte=function(i){var e=this.cmp(i);return e==1||e===0};w.hyperbolicCosine=w.cosh=function(){var i,e,t,n,o,r=this,s=r.constructor,a=new s(1);if(!r.isFinite())return new s(r.s?1/0:NaN);if(r.isZero())return a;t=s.precision,n=s.rounding,s.precision=t+Math.max(r.e,r.sd())+4,s.rounding=1,o=r.d.length,o<32?(i=Math.ceil(o/3),e=(1/$t(4,i)).toString()):(i=16,e="2.3283064365386962890625e-10"),r=It(s,1,r.times(e),new s(1),!0);for(var u,c=i,l=new s(8);c--;)u=r.times(r),r=a.minus(u.times(l.minus(u.times(l))));return V(r,s.precision=t,s.rounding=n,!0)};w.hyperbolicSine=w.sinh=function(){var i,e,t,n,o=this,r=o.constructor;if(!o.isFinite()||o.isZero())return new r(o);if(e=r.precision,t=r.rounding,r.precision=e+Math.max(o.e,o.sd())+4,r.rounding=1,n=o.d.length,n<3)o=It(r,2,o,o,!0);else{i=1.4*Math.sqrt(n),i=i>16?16:i|0,o=o.times(1/$t(5,i)),o=It(r,2,o,o,!0);for(var s,a=new r(5),u=new r(16),c=new r(20);i--;)s=o.times(o),o=o.times(a.plus(s.times(u.times(s).plus(c))))}return r.precision=e,r.rounding=t,V(o,e,t,!0)};w.hyperbolicTangent=w.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,re(t.sinh(),t.cosh(),n.precision=i,n.rounding=e)):new n(t.s)};w.inverseCosine=w.acos=function(){var i,e=this,t=e.constructor,n=e.abs().cmp(1),o=t.precision,r=t.rounding;return n!==-1?n===0?e.isNeg()?Ue(t,o,r):new t(0):new t(NaN):e.isZero()?Ue(t,o+4,r).times(.5):(t.precision=o+6,t.rounding=1,e=e.asin(),i=Ue(t,o+4,r).times(.5),t.precision=o,t.rounding=r,i.minus(e))};w.inverseHyperbolicCosine=w.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)};w.inverseHyperbolicSine=w.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())};w.inverseHyperbolicTangent=w.atanh=function(){var i,e,t,n,o=this,r=o.constructor;return o.isFinite()?o.e>=0?new r(o.abs().eq(1)?o.s/0:o.isZero()?o:NaN):(i=r.precision,e=r.rounding,n=o.sd(),Math.max(n,i)<2*-o.e-1?V(new r(o),i,e,!0):(r.precision=t=n-o.e,o=re(o.plus(1),new r(1).minus(o),t+i,1),r.precision=i+4,r.rounding=1,o=o.ln(),r.precision=i,r.rounding=e,o.times(.5))):new r(NaN)};w.inverseSine=w.asin=function(){var i,e,t,n,o=this,r=o.constructor;return o.isZero()?new r(o):(e=o.abs().cmp(1),t=r.precision,n=r.rounding,e!==-1?e===0?(i=Ue(r,t+4,n).times(.5),i.s=o.s,i):new r(NaN):(r.precision=t+6,r.rounding=1,o=o.div(new r(1).minus(o.times(o)).sqrt().plus(1)).atan(),r.precision=t,r.rounding=n,o.times(2)))};w.inverseTangent=w.atan=function(){var i,e,t,n,o,r,s,a,u,c=this,l=c.constructor,p=l.precision,d=l.rounding;if(c.isFinite()){if(c.isZero())return new l(c);if(c.abs().eq(1)&&p+4<=hn)return s=Ue(l,p+4,d).times(.25),s.s=c.s,s}else{if(!c.s)return new l(NaN);if(p+4<=hn)return s=Ue(l,p+4,d).times(.5),s.s=c.s,s}for(l.precision=a=p+10,l.rounding=1,t=Math.min(28,a/_+2|0),i=t;i;--i)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(X=!1,e=Math.ceil(a/_),n=1,u=c.times(c),s=new l(c),o=c;i!==-1;)if(o=o.times(u),r=s.minus(o.div(n+=2)),o=o.times(u),s=r.plus(o.div(n+=2)),s.d[e]!==void 0)for(i=e;s.d[i]===r.d[i]&&i--;);return t&&(s=s.times(2<<t-1)),X=!0,V(s,l.precision=p,l.rounding=d,!0)};w.isFinite=function(){return!!this.d};w.isInteger=w.isInt=function(){return!!this.d&&Ne(this.e/_)>this.d.length-2};w.isNaN=function(){return!this.s};w.isNegative=w.isNeg=function(){return this.s<0};w.isPositive=w.isPos=function(){return this.s>0};w.isZero=function(){return!!this.d&&this.d[0]===0};w.lessThan=w.lt=function(i){return this.cmp(i)<0};w.lessThanOrEqualTo=w.lte=function(i){return this.cmp(i)<1};w.logarithm=w.log=function(i){var e,t,n,o,r,s,a,u,c=this,l=c.constructor,p=l.precision,d=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=c.d,c.s<0||!t||!t[0]||c.eq(1))return new l(t&&!t[0]?-1/0:c.s!=1?NaN:t?0:1/0);if(e)if(t.length>1)r=!0;else{for(o=t[0];o%10===0;)o/=10;r=o!==1}if(X=!1,a=p+m,s=dt(c,a),n=e?Zt(l,a+10):dt(i,a),u=re(s,n,a,1),Ct(u.d,o=p,d))do if(a+=10,s=dt(c,a),n=e?Zt(l,a+10):dt(i,a),u=re(s,n,a,1),!r){+Ke(u.d).slice(o+1,o+15)+1==1e14&&(u=V(u,p+1,0));break}while(Ct(u.d,o+=10,d));return X=!0,V(u,p,d)};w.minus=w.sub=function(i){var e,t,n,o,r,s,a,u,c,l,p,d,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(c=m.d,d=i.d,a=P.precision,u=P.rounding,!c[0]||!d[0]){if(d[0])i.s=-i.s;else if(c[0])i=new P(m);else return new P(u===3?-0:0);return X?V(i,a,u):i}if(t=Ne(i.e/_),l=Ne(m.e/_),c=c.slice(),r=l-t,r){for(p=r<0,p?(e=c,r=-r,s=d.length):(e=d,t=l,s=c.length),n=Math.max(Math.ceil(a/_),s)+2,r>n&&(r=n,e.length=1),e.reverse(),n=r;n--;)e.push(0);e.reverse()}else{for(n=c.length,s=d.length,p=n<s,p&&(s=n),n=0;n<s;n++)if(c[n]!=d[n]){p=c[n]<d[n];break}r=0}for(p&&(e=c,c=d,d=e,i.s=-i.s),s=c.length,n=d.length-s;n>0;--n)c[s++]=0;for(n=d.length;n>r;){if(c[--n]<d[n]){for(o=n;o&&c[--o]===0;)c[o]=Xe-1;--c[o],c[n]+=Xe}c[n]-=d[n]}for(;c[--s]===0;)c.pop();for(;c[0]===0;c.shift())--t;return c[0]?(i.d=c,i.e=Jt(c,t),X?V(i,a,u):i):new P(u===3?-0:0)};w.modulo=w.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]?V(new n(t),n.precision,n.rounding):(X=!1,n.modulo==9?(e=re(t,i.abs(),0,3,1),e.s*=i.s):e=re(t,i,0,n.modulo,1),e=e.times(i),X=!0,t.minus(e))};w.naturalExponential=w.exp=function(){return Bn(this)};w.naturalLogarithm=w.ln=function(){return dt(this)};w.negated=w.neg=function(){var i=new this.constructor(this);return i.s=-i.s,V(i)};w.plus=w.add=function(i){var e,t,n,o,r,s,a,u,c,l,p=this,d=p.constructor;if(i=new d(i),!p.d||!i.d)return!p.s||!i.s?i=new d(NaN):p.d||(i=new d(i.d||p.s===i.s?p:NaN)),i;if(p.s!=i.s)return i.s=-i.s,p.minus(i);if(c=p.d,l=i.d,a=d.precision,u=d.rounding,!c[0]||!l[0])return l[0]||(i=new d(p)),X?V(i,a,u):i;if(r=Ne(p.e/_),n=Ne(i.e/_),c=c.slice(),o=r-n,o){for(o<0?(t=c,o=-o,s=l.length):(t=l,n=r,s=c.length),r=Math.ceil(a/_),s=r>s?r+1:s+1,o>s&&(o=s,t.length=1),t.reverse();o--;)t.push(0);t.reverse()}for(s=c.length,o=l.length,s-o<0&&(o=s,t=l,l=c,c=t),e=0;o;)e=(c[--o]=c[o]+l[o]+e)/Xe|0,c[o]%=Xe;for(e&&(c.unshift(e),++n),s=c.length;c[--s]==0;)c.pop();return i.d=c,i.e=Jt(c,n),X?V(i,a,u):i};w.precision=w.sd=function(i){var e,t=this;if(i!==void 0&&i!==!!i&&i!==1&&i!==0)throw Error(ft+i);return t.d?(e=Ai(t.d),i&&t.e+1>e&&(e=t.e+1)):e=NaN,e};w.round=function(){var i=this,e=i.constructor;return V(new e(i),i.e+1,e.rounding)};w.sine=w.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())+_,n.rounding=1,t=_o(n,hi(n,t)),n.precision=i,n.rounding=e,V(nt>2?t.neg():t,i,e,!0)):new n(NaN)};w.squareRoot=w.sqrt=function(){var i,e,t,n,o,r,s=this,a=s.d,u=s.e,c=s.s,l=s.constructor;if(c!==1||!a||!a[0])return new l(!c||c<0&&(!a||a[0])?NaN:a?s:1/0);for(X=!1,c=Math.sqrt(+s),c==0||c==1/0?(e=Ke(a),(e.length+u)%2==0&&(e+="0"),c=Math.sqrt(e),u=Ne((u+1)/2)-(u<0||u%2),c==1/0?e="5e"+u:(e=c.toExponential(),e=e.slice(0,e.indexOf("e")+1)+u),n=new l(e)):n=new l(c.toString()),t=(u=l.precision)+3;;)if(r=n,n=r.plus(re(s,r,t+2,1)).times(.5),Ke(r.d).slice(0,t)===(e=Ke(n.d)).slice(0,t))if(e=e.slice(t-3,t+1),e=="9999"||!o&&e=="4999"){if(!o&&(V(r,u+1,0),r.times(r).eq(s))){n=r;break}t+=4,o=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(V(n,u+1,1),i=!n.times(n).eq(s));break}return X=!0,V(n,u,l.rounding,i)};w.tangent=w.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=re(t,new n(1).minus(t.times(t)).sqrt(),i+10,0),n.precision=i,n.rounding=e,V(nt==2||nt==4?t.neg():t,i,e,!0)):new n(NaN)};w.times=w.mul=function(i){var e,t,n,o,r,s,a,u,c,l=this,p=l.constructor,d=l.d,m=(i=new p(i)).d;if(i.s*=l.s,!d||!d[0]||!m||!m[0])return new p(!i.s||d&&!d[0]&&!m||m&&!m[0]&&!d?NaN:!d||!m?i.s/0:i.s*0);for(t=Ne(l.e/_)+Ne(i.e/_),u=d.length,c=m.length,u<c&&(r=d,d=m,m=r,s=u,u=c,c=s),r=[],s=u+c,n=s;n--;)r.push(0);for(n=c;--n>=0;){for(e=0,o=u+n;o>n;)a=r[o]+m[n]*d[o-n-1]+e,r[o--]=a%Xe|0,e=a/Xe|0;r[o]=(r[o]+e)%Xe|0}for(;!r[--s];)r.pop();return e?++t:r.shift(),i.d=r,i.e=Jt(r,t),X?V(i,p.precision,p.rounding):i};w.toBinary=function(i,e){return xn(this,2,i,e)};w.toDecimalPlaces=w.toDP=function(i,e){var t=this,n=t.constructor;return t=new n(t),i===void 0?t:(Me(i,0,bt),e===void 0?e=n.rounding:Me(e,0,8),V(t,i+t.e+1,e))};w.toExponential=function(i,e){var t,n=this,o=n.constructor;return i===void 0?t=Je(n,!0):(Me(i,0,bt),e===void 0?e=o.rounding:Me(e,0,8),n=V(new o(n),i+1,e),t=Je(n,!0,i+1)),n.isNeg()&&!n.isZero()?"-"+t:t};w.toFixed=function(i,e){var t,n,o=this,r=o.constructor;return i===void 0?t=Je(o):(Me(i,0,bt),e===void 0?e=r.rounding:Me(e,0,8),n=V(new r(o),i+o.e+1,e),t=Je(n,!1,i+n.e+1)),o.isNeg()&&!o.isZero()?"-"+t:t};w.toFraction=function(i){var e,t,n,o,r,s,a,u,c,l,p,d,m=this,P=m.d,f=m.constructor;if(!P)return new f(m);if(c=t=new f(1),n=u=new f(0),e=new f(n),r=e.e=Ai(P)-m.e-1,s=r%_,e.d[0]=ke(10,s<0?_+s:s),i==null)i=r>0?e:c;else{if(a=new f(i),!a.isInt()||a.lt(c))throw Error(ft+a);i=a.gt(e)?r>0?e:c:a}for(X=!1,a=new f(Ke(P)),l=f.precision,f.precision=r=P.length*_*2;p=re(a,e,0,1,1),o=t.plus(p.times(n)),o.cmp(i)!=1;)t=n,n=o,o=c,c=u.plus(p.times(o)),u=o,o=e,e=a.minus(p.times(o)),a=o;return o=re(i.minus(t),n,0,1,1),u=u.plus(o.times(c)),t=t.plus(o.times(n)),u.s=c.s=m.s,d=re(c,n,r,1).minus(m).abs().cmp(re(u,t,r,1).minus(m).abs())<1?[c,n]:[u,t],f.precision=l,X=!0,d};w.toHexadecimal=w.toHex=function(i,e){return xn(this,16,i,e)};w.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:Me(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=re(t,i,0,e,1).times(i),X=!0,V(t)):(i.s=t.s,t=i),t};w.toNumber=function(){return+this};w.toOctal=function(i,e){return xn(this,8,i,e)};w.toPower=w.pow=function(i){var e,t,n,o,r,s,a=this,u=a.constructor,c=+(i=new u(i));if(!a.d||!i.d||!a.d[0]||!i.d[0])return new u(ke(+a,c));if(a=new u(a),a.eq(1))return a;if(n=u.precision,r=u.rounding,i.eq(1))return V(a,n,r);if(e=Ne(i.e/_),e>=i.d.length-1&&(t=c<0?-c:c)<=Eo)return o=ki(u,a,t,n),i.s<0?new u(1).div(o):V(o,n,r);if(s=a.s,s<0){if(e<i.d.length-1)return new u(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=ke(+a,c),e=t==0||!isFinite(t)?Ne(c*(Math.log("0."+Ke(a.d))/Math.LN10+a.e+1)):new u(t+"").e,e>u.maxE+1||e<u.minE-1?new u(e>0?s/0:0):(X=!1,u.rounding=a.s=1,t=Math.min(12,(e+"").length),o=Bn(i.times(dt(a,n+t)),n),o.d&&(o=V(o,n+5,1),Ct(o.d,n,r)&&(e=n+10,o=V(Bn(i.times(dt(a,e+t)),e),e+5,1),+Ke(o.d).slice(n+1,n+15)+1==1e14&&(o=V(o,n+1,0)))),o.s=s,X=!0,u.rounding=r,V(o,n,r))};w.toPrecision=function(i,e){var t,n=this,o=n.constructor;return i===void 0?t=Je(n,n.e<=o.toExpNeg||n.e>=o.toExpPos):(Me(i,1,bt),e===void 0?e=o.rounding:Me(e,0,8),n=V(new o(n),i,e),t=Je(n,i<=n.e||n.e<=o.toExpNeg,i)),n.isNeg()&&!n.isZero()?"-"+t:t};w.toSignificantDigits=w.toSD=function(i,e){var t=this,n=t.constructor;return i===void 0?(i=n.precision,e=n.rounding):(Me(i,1,bt),e===void 0?e=n.rounding:Me(e,0,8)),V(new n(t),i,e)};w.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};w.truncated=w.trunc=function(){return V(new this.constructor(this),this.e+1,1)};w.valueOf=w.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 Ke(i){var e,t,n,o=i.length-1,r="",s=i[0];if(o>0){for(r+=s,e=1;e<o;e++)n=i[e]+"",t=_-n.length,t&&(r+=pt(t)),r+=n;s=i[e],n=s+"",t=_-n.length,t&&(r+=pt(t))}else if(s===0)return"0";for(;s%10===0;)s/=10;return r+s}function Me(i,e,t){if(i!==~~i||i<e||i>t)throw Error(ft+i)}function Ct(i,e,t,n){var o,r,s,a;for(r=i[0];r>=10;r/=10)--e;return--e<0?(e+=_,o=0):(o=Math.ceil((e+1)/_),e%=_),r=ke(10,_-e),a=i[o]%r|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==r||t>3&&a+1==r/2)&&(i[o+1]/r/100|0)==ke(10,e-2)-1||(a==r/2||a==0)&&(i[o+1]/r/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==r||!n&&t>3&&a+1==r/2)&&(i[o+1]/r/1e3|0)==ke(10,e-3)-1,s}function Yt(i,e,t){for(var n,o=[0],r,s=0,a=i.length;s<a;){for(r=o.length;r--;)o[r]*=e;for(o[0]+=wn.indexOf(i.charAt(s++)),n=0;n<o.length;n++)o[n]>t-1&&(o[n+1]===void 0&&(o[n+1]=0),o[n+1]+=o[n]/t|0,o[n]%=t)}return o.reverse()}function Vo(i,e){var t,n,o;if(e.isZero())return e;n=e.d.length,n<32?(t=Math.ceil(n/3),o=(1/$t(4,t)).toString()):(t=16,o="2.3283064365386962890625e-10"),i.precision+=t,e=It(i,1,e.times(o),new i(1));for(var r=t;r--;){var s=e.times(e);e=s.times(s).minus(s).times(8).plus(1)}return i.precision-=t,e}var re=function(){function i(n,o,r){var s,a=0,u=n.length;for(n=n.slice();u--;)s=n[u]*o+a,n[u]=s%r|0,a=s/r|0;return a&&n.unshift(a),n}function e(n,o,r,s){var a,u;if(r!=s)u=r>s?1:-1;else for(a=u=0;a<r;a++)if(n[a]!=o[a]){u=n[a]>o[a]?1:-1;break}return u}function t(n,o,r,s){for(var a=0;r--;)n[r]-=a,a=n[r]<o[r]?1:0,n[r]=a*s+n[r]-o[r];for(;!n[0]&&n.length>1;)n.shift()}return function(n,o,r,s,a,u){var c,l,p,d,m,P,f,b,g,B,h,R,E,I,M,F,q,C,W,ye,se=n.constructor,Ie=n.s==o.s?1:-1,de=n.d,te=o.d;if(!de||!de[0]||!te||!te[0])return new se(!n.s||!o.s||(de?te&&de[0]==te[0]:!te)?NaN:de&&de[0]==0||!te?Ie*0:Ie/0);for(u?(m=1,l=n.e-o.e):(u=Xe,m=_,l=Ne(n.e/m)-Ne(o.e/m)),W=te.length,q=de.length,g=new se(Ie),B=g.d=[],p=0;te[p]==(de[p]||0);p++);if(te[p]>(de[p]||0)&&l--,r==null?(I=r=se.precision,s=se.rounding):a?I=r+(n.e-o.e)+1:I=r,I<0)B.push(1),P=!0;else{if(I=I/m+2|0,p=0,W==1){for(d=0,te=te[0],I++;(p<q||d)&&I--;p++)M=d*u+(de[p]||0),B[p]=M/te|0,d=M%te|0;P=d||p<q}else{for(d=u/(te[0]+1)|0,d>1&&(te=i(te,d,u),de=i(de,d,u),W=te.length,q=de.length),F=W,h=de.slice(0,W),R=h.length;R<W;)h[R++]=0;ye=te.slice(),ye.unshift(0),C=te[0],te[1]>=u/2&&++C;do d=0,c=e(te,h,W,R),c<0?(E=h[0],W!=R&&(E=E*u+(h[1]||0)),d=E/C|0,d>1?(d>=u&&(d=u-1),f=i(te,d,u),b=f.length,R=h.length,c=e(f,h,b,R),c==1&&(d--,t(f,W<b?ye:te,b,u))):(d==0&&(c=d=1),f=te.slice()),b=f.length,b<R&&f.unshift(0),t(h,f,R,u),c==-1&&(R=h.length,c=e(te,h,W,R),c<1&&(d++,t(h,W<R?ye:te,R,u))),R=h.length):c===0&&(d++,h=[0]),B[p++]=d,c&&h[0]?h[R++]=de[F]||0:(h=[de[F]],R=1);while((F++<q||h[0]!==void 0)&&I--);P=h[0]!==void 0}B[0]||B.shift()}if(m==1)g.e=l,fi=P;else{for(p=1,d=B[0];d>=10;d/=10)p++;g.e=p+l*m-1,V(g,a?r+g.e+1:r,s,P)}return g}}();function V(i,e,t,n){var o,r,s,a,u,c,l,p,d,m=i.constructor;e:if(e!=null){if(p=i.d,!p)return i;for(o=1,a=p[0];a>=10;a/=10)o++;if(r=e-o,r<0)r+=_,s=e,l=p[d=0],u=l/ke(10,o-s-1)%10|0;else if(d=Math.ceil((r+1)/_),a=p.length,d>=a)if(n){for(;a++<=d;)p.push(0);l=u=0,o=1,r%=_,s=r-_+1}else break e;else{for(l=a=p[d],o=1;a>=10;a/=10)o++;r%=_,s=r-_+o,u=s<0?0:l/ke(10,o-s-1)%10|0}if(n=n||e<0||p[d+1]!==void 0||(s<0?l:l%ke(10,o-s-1)),c=t<4?(u||n)&&(t==0||t==(i.s<0?3:2)):u>5||u==5&&(t==4||n||t==6&&(r>0?s>0?l/ke(10,o-s):0:p[d-1])%10&1||t==(i.s<0?8:7)),e<1||!p[0])return p.length=0,c?(e-=i.e+1,p[0]=ke(10,(_-e%_)%_),i.e=-e||0):p[0]=i.e=0,i;if(r==0?(p.length=d,a=1,d--):(p.length=d+1,a=ke(10,_-r),p[d]=s>0?(l/ke(10,o-s)%ke(10,s)|0)*a:0),c)for(;;)if(d==0){for(r=1,s=p[0];s>=10;s/=10)r++;for(s=p[0]+=a,a=1;s>=10;s/=10)a++;r!=a&&(i.e++,p[0]==Xe&&(p[0]=1));break}else{if(p[d]+=a,p[d]!=Xe)break;p[d--]=0,a=1}for(r=p.length;p[--r]===0;)p.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 Ti(i);var n,o=i.e,r=Ke(i.d),s=r.length;return e?(t&&(n=t-s)>0?r=r.charAt(0)+"."+r.slice(1)+pt(n):s>1&&(r=r.charAt(0)+"."+r.slice(1)),r=r+(i.e<0?"e":"e+")+i.e):o<0?(r="0."+pt(-o-1)+r,t&&(n=t-s)>0&&(r+=pt(n))):o>=s?(r+=pt(o+1-s),t&&(n=t-o-1)>0&&(r=r+"."+pt(n))):((n=o+1)<s&&(r=r.slice(0,n)+"."+r.slice(n)),t&&(n=t-s)>0&&(o+1===s&&(r+="."),r+=pt(n))),r}function Jt(i,e){var t=i[0];for(e*=_;t>=10;t/=10)e++;return e}function Zt(i,e,t){if(e>Wo)throw X=!0,t&&(i.precision=t),Error(bi);return V(new i(Ht),e,1,!0)}function Ue(i,e,t){if(e>hn)throw Error(bi);return V(new i(Qt),e,t,!0)}function Ai(i){var e=i.length-1,t=e*_+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 pt(i){for(var e="";i--;)e+="0";return e}function ki(i,e,t,n){var o,r=new i(1),s=Math.ceil(n/_+4);for(X=!1;;){if(t%2&&(r=r.times(e),pi(r.d,s)&&(o=!0)),t=Ne(t/2),t===0){t=r.d.length-1,o&&r.d[t]===0&&++r.d[t];break}e=e.times(e),pi(e.d,s)}return X=!0,r}function mi(i){return i.d[i.d.length-1]&1}function wi(i,e,t){for(var n,o=new i(e[0]),r=0;++r<e.length;)if(n=new i(e[r]),n.s)o[t](n)&&(o=n);else{o=n;break}return o}function Bn(i,e){var t,n,o,r,s,a,u,c=0,l=0,p=0,d=i.constructor,m=d.rounding,P=d.precision;if(!i.d||!i.d[0]||i.e>17)return new d(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,u=P):u=e,a=new d(.03125);i.e>-2;)i=i.times(a),p+=5;for(n=Math.log(ke(2,p))/Math.LN10*2+5|0,u+=n,t=r=s=new d(1),d.precision=u;;){if(r=V(r.times(i),u,1),t=t.times(++l),a=s.plus(re(r,t,u,1)),Ke(a.d).slice(0,u)===Ke(s.d).slice(0,u)){for(o=p;o--;)s=V(s.times(s),u,1);if(e==null)if(c<3&&Ct(s.d,u-n,m,c))d.precision=u+=10,t=r=a=new d(1),l=0,c++;else return V(s,d.precision=P,m,X=!0);else return d.precision=P,s}s=a}}function dt(i,e){var t,n,o,r,s,a,u,c,l,p,d,m=1,P=10,f=i,b=f.d,g=f.constructor,B=g.rounding,h=g.precision;if(f.s<0||!b||!b[0]||!f.e&&b[0]==1&&b.length==1)return new g(b&&!b[0]?-1/0:f.s!=1?NaN:b?0:f);if(e==null?(X=!1,l=h):l=e,g.precision=l+=P,t=Ke(b),n=t.charAt(0),Math.abs(r=f.e)<15e14){for(;n<7&&n!=1||n==1&&t.charAt(1)>3;)f=f.times(i),t=Ke(f.d),n=t.charAt(0),m++;r=f.e,n>1?(f=new g("0."+t),r++):f=new g(n+"."+t.slice(1))}else return c=Zt(g,l+2,h).times(r+""),f=dt(new g(n+"."+t.slice(1)),l-P).plus(c),g.precision=h,e==null?V(f,h,B,X=!0):f;for(p=f,u=s=f=re(f.minus(1),f.plus(1),l,1),d=V(f.times(f),l,1),o=3;;){if(s=V(s.times(d),l,1),c=u.plus(re(s,new g(o),l,1)),Ke(c.d).slice(0,l)===Ke(u.d).slice(0,l))if(u=u.times(2),r!==0&&(u=u.plus(Zt(g,l+2,h).times(r+""))),u=re(u,new g(m),l,1),e==null)if(Ct(u.d,l-P,B,a))g.precision=l+=P,c=s=f=re(p.minus(1),p.plus(1),l,1),d=V(f.times(f),l,1),o=a=1;else return V(u,g.precision=h,B,X=!0);else return g.precision=h,u;u=c,o+=2}}function Ti(i){return String(i.s*i.s/0)}function In(i,e){var t,n,o;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(o=e.length;e.charCodeAt(o-1)===48;--o);if(e=e.slice(n,o),e){if(o-=n,i.e=t=t-n-1,i.d=[],n=(t+1)%_,t<0&&(n+=_),n<o){for(n&&i.d.push(+e.slice(0,n)),o-=_;n<o;)i.d.push(+e.slice(n,n+=_));e=e.slice(n),n=_-e.length}else n-=o;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 Do(i,e){var t,n,o,r,s,a,u,c,l;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),Pi.test(e))return In(i,e)}else if(e==="Infinity"||e==="NaN")return+e||(i.s=NaN),i.e=NaN,i.d=null,i;if(Fo.test(e))t=16,e=e.toLowerCase();else if(Mo.test(e))t=2;else if(vo.test(e))t=8;else throw Error(ft+e);for(r=e.search(/p/i),r>0?(u=+e.slice(r+1),e=e.substring(2,r)):e=e.slice(2),r=e.indexOf("."),s=r>=0,n=i.constructor,s&&(e=e.replace(".",""),a=e.length,r=a-r,o=ki(n,new n(t),r,r*2)),c=Yt(e,t,Xe),l=c.length-1,r=l;c[r]===0;--r)c.pop();return r<0?new n(i.s*0):(i.e=Jt(c,l),i.d=c,X=!1,s&&(i=re(i,o,a*4)),u&&(i=i.times(Math.abs(u)<54?ke(2,u):Nt.pow(2,u))),X=!0,i)}function _o(i,e){var t,n=e.d.length;if(n<3)return e.isZero()?e:It(i,2,e,e);t=1.4*Math.sqrt(n),t=t>16?16:t|0,e=e.times(1/$t(5,t)),e=It(i,2,e,e);for(var o,r=new i(5),s=new i(16),a=new i(20);t--;)o=e.times(e),e=e.times(r.plus(o.times(s.times(o).minus(a))));return e}function It(i,e,t,n,o){var r,s,a,u,c=1,l=i.precision,p=Math.ceil(l/_);for(X=!1,u=t.times(t),a=new i(n);;){if(s=re(a.times(u),new i(e++*e++),l,1),a=o?n.plus(s):n.minus(s),n=re(s.times(u),new i(e++*e++),l,1),s=a.plus(n),s.d[p]!==void 0){for(r=p;s.d[r]===a.d[r]&&r--;);if(r==-1)break}r=a,a=n,n=s,s=r,c++}return X=!0,s.d.length=p+1,s}function $t(i,e){for(var t=i;--e;)t*=i;return t}function hi(i,e){var t,n=e.s<0,o=Ue(i,i.precision,1),r=o.times(.5);if(e=e.abs(),e.lte(r))return nt=n?4:1,e;if(t=e.divToInt(o),t.isZero())nt=n?3:2;else{if(e=e.minus(t.times(o)),e.lte(r))return nt=mi(t)?n?2:3:n?4:1,e;nt=mi(t)?n?1:4:n?3:2}return e.minus(o).abs()}function xn(i,e,t,n){var o,r,s,a,u,c,l,p,d,m=i.constructor,P=t!==void 0;if(P?(Me(t,1,bt),n===void 0?n=m.rounding:Me(n,0,8)):(t=m.precision,n=m.rounding),!i.isFinite())l=Ti(i);else{for(l=Je(i),s=l.indexOf("."),P?(o=2,e==16?t=t*4-3:e==8&&(t=t*3-2)):o=e,s>=0&&(l=l.replace(".",""),d=new m(1),d.e=l.length-s,d.d=Yt(Je(d),10,o),d.e=d.d.length),p=Yt(l,10,o),r=u=p.length;p[--u]==0;)p.pop();if(!p[0])l=P?"0p+0":"0";else{if(s<0?r--:(i=new m(i),i.d=p,i.e=r,i=re(i,d,t,n,0,o),p=i.d,r=i.e,c=fi),s=p[t],a=o/2,c=c||p[t+1]!==void 0,c=n<4?(s!==void 0||c)&&(n===0||n===(i.s<0?3:2)):s>a||s===a&&(n===4||c||n===6&&p[t-1]&1||n===(i.s<0?8:7)),p.length=t,c)for(;++p[--t]>o-1;)p[t]=0,t||(++r,p.unshift(1));for(u=p.length;!p[u-1];--u);for(s=0,l="";s<u;s++)l+=wn.charAt(p[s]);if(P){if(u>1)if(e==16||e==8){for(s=e==16?4:3,--u;u%s;u++)l+="0";for(p=Yt(l,o,e),u=p.length;!p[u-1];--u);for(s=1,l="1.";s<u;s++)l+=wn.charAt(p[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(r<0?"p":"p+")+r}else if(r<0){for(;++r;)l="0"+l;l="0."+l}else if(++r>u)for(r-=u;r--;)l+="0";else r<u&&(l=l.slice(0,r)+"."+l.slice(r))}l=(e==16?"0x":e==2?"0b":e==8?"0o":"")+l}return i.s<0?"-"+l:l}function pi(i,e){if(i.length>e)return i.length=e,!0}function qo(i){return new this(i).abs()}function Go(i){return new this(i).acos()}function Uo(i){return new this(i).acosh()}function Xo(i,e){return new this(i).plus(e)}function zo(i){return new this(i).asin()}function Yo(i){return new this(i).asinh()}function Ho(i){return new this(i).atan()}function Qo(i){return new this(i).atanh()}function Zo(i,e){i=new this(i),e=new this(e);var t,n=this.precision,o=this.rounding,r=n+4;return!i.s||!e.s?t=new this(NaN):!i.d&&!e.d?(t=Ue(this,r,1).times(e.s>0?.25:.75),t.s=i.s):!e.d||i.isZero()?(t=e.s<0?Ue(this,n,o):new this(0),t.s=i.s):!i.d||e.isZero()?(t=Ue(this,r,1).times(.5),t.s=i.s):e.s<0?(this.precision=r,this.rounding=1,t=this.atan(re(i,e,r,1)),e=Ue(this,r,1),this.precision=n,this.rounding=o,t=i.s<0?t.minus(e):t.plus(e)):t=this.atan(re(i,e,r,1)),t}function jo(i){return new this(i).cbrt()}function Jo(i){return V(i=new this(i),i.e+1,2)}function $o(i,e,t){return new this(i).clamp(e,t)}function er(i){if(!i||typeof i!="object")throw Error(jt+"Object expected");var e,t,n,o=i.defaults===!0,r=["precision",1,bt,"rounding",0,8,"toExpNeg",-Bt,0,"toExpPos",0,Bt,"maxE",0,Bt,"minE",-Bt,0,"modulo",0,9];for(e=0;e<r.length;e+=3)if(t=r[e],o&&(this[t]=Tn[t]),(n=i[t])!==void 0)if(Ne(n)===n&&n>=r[e+1]&&n<=r[e+2])this[t]=n;else throw Error(ft+t+": "+n);if(t="crypto",o&&(this[t]=Tn[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(yi);else this[t]=!1;else throw Error(ft+t+": "+n);return this}function tr(i){return new this(i).cos()}function nr(i){return new this(i).cosh()}function Bi(i){var e,t,n;function o(r){var s,a,u,c=this;if(!(c instanceof o))return new o(r);if(c.constructor=o,di(r)){c.s=r.s,X?!r.d||r.e>o.maxE?(c.e=NaN,c.d=null):r.e<o.minE?(c.e=0,c.d=[0]):(c.e=r.e,c.d=r.d.slice()):(c.e=r.e,c.d=r.d?r.d.slice():r.d);return}if(u=typeof r,u==="number"){if(r===0){c.s=1/r<0?-1:1,c.e=0,c.d=[0];return}if(r<0?(r=-r,c.s=-1):c.s=1,r===~~r&&r<1e7){for(s=0,a=r;a>=10;a/=10)s++;X?s>o.maxE?(c.e=NaN,c.d=null):s<o.minE?(c.e=0,c.d=[0]):(c.e=s,c.d=[r]):(c.e=s,c.d=[r]);return}else if(r*0!==0){r||(c.s=NaN),c.e=NaN,c.d=null;return}return In(c,r.toString())}else if(u!=="string")throw Error(ft+r);return(a=r.charCodeAt(0))===45?(r=r.slice(1),c.s=-1):(a===43&&(r=r.slice(1)),c.s=1),Pi.test(r)?In(c,r):Do(c,r)}if(o.prototype=w,o.ROUND_UP=0,o.ROUND_DOWN=1,o.ROUND_CEIL=2,o.ROUND_FLOOR=3,o.ROUND_HALF_UP=4,o.ROUND_HALF_DOWN=5,o.ROUND_HALF_EVEN=6,o.ROUND_HALF_CEIL=7,o.ROUND_HALF_FLOOR=8,o.EUCLID=9,o.config=o.set=er,o.clone=Bi,o.isDecimal=di,o.abs=qo,o.acos=Go,o.acosh=Uo,o.add=Xo,o.asin=zo,o.asinh=Yo,o.atan=Ho,o.atanh=Qo,o.atan2=Zo,o.cbrt=jo,o.ceil=Jo,o.clamp=$o,o.cos=tr,o.cosh=nr,o.div=ir,o.exp=or,o.floor=rr,o.hypot=sr,o.ln=ar,o.log=ur,o.log10=lr,o.log2=cr,o.max=mr,o.min=pr,o.mod=dr,o.mul=fr,o.pow=br,o.random=yr,o.round=gr,o.sign=Pr,o.sin=Ar,o.sinh=kr,o.sqrt=wr,o.sub=Tr,o.sum=hr,o.tan=Br,o.tanh=Ir,o.trunc=xr,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 o.config(i),o}function ir(i,e){return new this(i).div(e)}function or(i){return new this(i).exp()}function rr(i){return V(i=new this(i),i.e+1,3)}function sr(){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 di(i){return i instanceof Nt||i&&i.toStringTag===gi||!1}function ar(i){return new this(i).ln()}function ur(i,e){return new this(i).log(e)}function cr(i){return new this(i).log(2)}function lr(i){return new this(i).log(10)}function mr(){return wi(this,arguments,"lt")}function pr(){return wi(this,arguments,"gt")}function dr(i,e){return new this(i).mod(e)}function fr(i,e){return new this(i).mul(e)}function br(i,e){return new this(i).pow(e)}function yr(i){var e,t,n,o,r=0,s=new this(1),a=[];if(i===void 0?i=this.precision:Me(i,1,bt),n=Math.ceil(i/_),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(n));r<n;)o=e[r],o>=429e7?e[r]=crypto.getRandomValues(new Uint32Array(1))[0]:a[r++]=o%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(n*=4);r<n;)o=e[r]+(e[r+1]<<8)+(e[r+2]<<16)+((e[r+3]&127)<<24),o>=214e7?crypto.randomBytes(4).copy(e,r):(a.push(o%1e7),r+=4);r=n/4}else throw Error(yi);else for(;r<n;)a[r++]=Math.random()*1e7|0;for(n=a[--r],i%=_,n&&i&&(o=ke(10,_-i),a[r]=(n/o|0)*o);a[r]===0;r--)a.pop();if(r<0)t=0,a=[0];else{for(t=-1;a[0]===0;t-=_)a.shift();for(n=1,o=a[0];o>=10;o/=10)n++;n<_&&(t-=_-n)}return s.e=t,s.d=a,s}function gr(i){return V(i=new this(i),i.e+1,this.rounding)}function Pr(i){return i=new this(i),i.d?i.d[0]?i.s:0*i.s:i.s||NaN}function Ar(i){return new this(i).sin()}function kr(i){return new this(i).sinh()}function wr(i){return new this(i).sqrt()}function Tr(i,e){return new this(i).sub(e)}function hr(){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,V(t,this.precision,this.rounding)}function Br(i){return new this(i).tan()}function Ir(i){return new this(i).tanh()}function xr(i){return V(i=new this(i),i.e+1,1)}w[Symbol.for("nodejs.util.inspect.custom")]=w.toString;w[Symbol.toStringTag]="Decimal";var Nt=w.constructor=Bi(Tn);Ht=new Nt(Ht);Qt=new Nt(Qt);var O=Nt;import{PublicKey as Cr}from"@solana/web3.js";import{get as Ii,set as Sr}from"lodash";var Sn=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}},xi={},Kr={};function ae(i){let e=Ii(xi,i);if(!e){let t=Ii(Kr,i);e=new Sn({name:i,logLevel:t}),Sr(xi,i,e)}return e}import{MINT_SIZE as Ma,TOKEN_PROGRAM_ID as Fa,getTransferFeeConfig as va,unpackMint as Ea}from"@solana/spl-token";var Kn=ae("Raydium_accountInfo_util");async function yt(i,e,t){let{batchRequest:n,commitment:o="confirmed",chunkCount:r=100}=Q({batchRequest:!1},t),s=Cn(e,r),a=new Array(s.length).fill([]);if(n){let u=s.map(p=>{let d=i._buildArgs([p.map(m=>m.toBase58())],o,"base64");return{methodName:"getMultipleAccounts",args:d}}),c=Cn(u,10);a=(await(await Promise.all(c.map(async p=>await i._rpcBatchRequest(p)))).flat()).map(p=>(p.error&&Kn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${p.error.message}`),p.result.value.map(d=>{if(d){let{data:m,executable:P,lamports:f,owner:b,rentEpoch:g}=d;return m.length!==2&&m[1]!=="base64"&&Kn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(m[0],"base64"),executable:P,lamports:f,owner:new Cr(b),rentEpoch:g}}return null})))}else try{a=await Promise.all(s.map(u=>i.getMultipleAccountsInfo(u,o)))}catch(u){u instanceof Error&&Kn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${u.message}`)}return a.flat()}async function xt(i,e,t){let n=await yt(i,e.map(o=>o.pubkey),t);return e.map((o,r)=>J(Q({},o),{accountInfo:n[r]}))}import st from"bn.js";import Er from"big.js";import nn from"bn.js";import Nr from"toformat";var Rr=Nr,Lt=Rr;import tn from"big.js";import Or from"bn.js";import Mr from"decimal.js-light";import Ot from"bn.js";var Si=9007199254740991;function ue(i){let e=ae("Raydium_parseBigNumberish");if(i instanceof Ot)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new Ot(i);e.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&e.logWithError(`BigNumberish number underflow: ${i}`),(i>=Si||i<=-Si)&&e.logWithError(`BigNumberish number overflow: ${i}`),new Ot(String(i))):typeof i=="bigint"?new Ot(i.toString()):(e.error(`invalid BigNumberish value: ${i}`),new Ot(0))}var en=ae("module/fraction"),Nn=Lt(tn),Mt=Lt(Mr),Fr={[0]:Mt.ROUND_DOWN,[1]:Mt.ROUND_HALF_UP,[2]:Mt.ROUND_UP},vr={[0]:tn.roundDown,[1]:tn.roundHalfUp,[2]:tn.roundUp},$=class{constructor(e,t=new Or(1)){this.numerator=ue(e),this.denominator=ue(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new $(this.denominator,this.numerator)}add(e){let t=e instanceof $?e:new $(ue(e));return this.denominator.eq(t.denominator)?new $(this.numerator.add(t.numerator),this.denominator):new $(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof $?e:new $(ue(e));return this.denominator.eq(t.denominator)?new $(this.numerator.sub(t.numerator),this.denominator):new $(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof $?e:new $(ue(e));return new $(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof $?e:new $(ue(e));return new $(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||en.logWithError(`${e} is not an integer.`),e<=0&&en.logWithError(`${e} is not positive.`),Mt.set({precision:e+1,rounding:Fr[n]});let o=new Mt(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return o.toFormat(o.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},n=1){return Number.isInteger(e)||en.logWithError(`${e} is not an integer.`),e<0&&en.logWithError(`${e} is negative.`),Nn.DP=e,Nn.RM=vr[n]||1,new Nn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Wr=ae("Raydium_amount"),Ki=Lt(Er);function Vr(i,e){let t="0",n="0";if(i.includes(".")){let o=i.split(".");o.length===2?([t,n]=o,n=n.padEnd(e,"0")):Wr.logWithError(`invalid number string, num: ${i}`)}else t=i;return[t,n.slice(0,e)||n]}var we=class extends ${constructor(t,n,o=!0,r){let s=new nn(0),a=Rn.pow(new nn(t.decimals));if(o)s=ue(n);else{let u=new nn(0),c=new nn(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[l,p]=Vr(n.toString(),t.decimals);u=ue(l),c=ue(p)}u=u.mul(a),s=u.add(c)}super(s,a);this.logger=ae(r||"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 we(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new we(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,n,o=0){return super.toSignificant(t,n,o)}toFixed(t=this.token.decimals,n,o=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,n,o)}toExact(t={groupSeparator:""}){return Ki.DP=this.token.decimals,new Ki(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Dr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ci}from"@solana/spl-token";var Ln={chainId:101,address:Dr.default.toBase58(),programId:Ci.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},it={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Ci.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 Fn}from"@solana/web3.js";import{PublicKey as me,SystemProgram as Ni,SYSVAR_RENT_PUBKEY as _r}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as qr}from"@solana/spl-token";function A({pubkey:i,isSigner:e=!1,isWritable:t=!0}){return{pubkey:i,isWritable:t,isSigner:e}}var bu=[A({pubkey:qr,isWritable:!1}),A({pubkey:Ni.programId,isWritable:!1}),A({pubkey:_r,isWritable:!1})];function On({publicKey:i,transformSol:e}){let t=Mn(i.toString());if(t instanceof me)return e&&t.equals(Ft)?Rt:t;if(e&&t.toString()===Ft.toBase58())return Rt;if(typeof t=="string"){if(t===me.default.toBase58())return me.default;try{return new me(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Mn(i){try{return new me(i)}catch{return i}}var on=new me("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),gt=new me("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ze=new me("SysvarRent111111111111111111111111111111111"),yu=new me("SysvarC1ock11111111111111111111111111111111"),ot=new me("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),gu=new me("Sysvar1nstructions1111111111111111111111111"),Gr=Ni.programId,Pu=new me("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Au=new me("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ku=new me("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),wu=new me("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Tu=new me("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),hu=new me("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Bu=new me("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Iu=new me("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),xu=new me("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Su=new me("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ku=new me("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Rt=new me("So11111111111111111111111111111111111111112"),Ft=me.default;function St(i){return On({publicKey:i,transformSol:!0})}var vn=class{constructor({mint:e,decimals:t,symbol:n,name:o,skipMint:r=!1,isToken2022:s=!1}){if(e===Ft.toBase58()||e instanceof Fn&&Ft.equals(e)){this.decimals=it.decimals,this.symbol=it.symbol,this.name=it.name,this.mint=new Fn(it.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=n||e.toString().substring(0,6),this.name=o||e.toString().substring(0,6),this.mint=r?Fn.default:On({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},Ye=vn;Ye.WSOL=new vn(J(Q({},it),{mint:it.address}));var En=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},rn=En;rn.SOL=new En(Ln);import Ur from"bn.js";var Ri=new $(new Ur(100)),rt=class extends ${toSignificant(e=5,t,n){return this.mul(Ri).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(Ri).toFixed(e,t,n)}};var Xr=ae("Raydium_price"),Ee=class extends ${constructor(t){let{baseToken:n,quoteToken:o,numerator:r,denominator:s}=t;super(r,s);this.baseToken=n,this.quoteToken=o,this.scalar=new $(Wn(n.decimals),Wn(o.decimals))}get raw(){return new $(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new Ee({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&Xr.logWithError("mul token not equals");let n=super.mul(t);return new Ee({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:n.denominator,numerator:n.numerator})}toSignificant(t=this.quoteToken.decimals,n,o){return this.adjusted.toSignificant(t,n,o)}toFixed(t=this.quoteToken.decimals,n,o){return this.adjusted.toFixed(t,n,o)}};var Li=new st(0),zr=new st(1),gc=new st(2),Pc=new st(3),Ac=new st(5),Rn=new st(10),kc=new st(100),wc=new st(1e3),Tc=new st(1e4);function Wn(i){return Rn.pow(ue(i))}function Cn(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 Hr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Qr}from"@solana/spl-token";import{ComputeBudgetProgram as Nc,Keypair as Oc,PublicKey as Yr,Transaction as Fc,TransactionMessage as Ec,VersionedTransaction as Wc}from"@solana/web3.js";var ne={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 qc}from"@solana/spl-token";var Gc=ae("Raydium_txUtil");function xe(i,e){let[t,n]=Yr.findProgramAddressSync(i,e);return{publicKey:t,nonce:n}}function ie(i,e,t){return xe([i.toBuffer(),(t!=null?t:Qr).toBuffer(),e.toBuffer()],new Hr("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as D}from"@solana/web3.js";var Zr=new D("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),jr=new D("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Jr=new D("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),$r=new D("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),es=new D("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ts=new D("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Vn=new D("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Oi=new D("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),ns=new D("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),sn=new D("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Dn=new D("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Mi=new D("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Fi=new D("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),vt=new D("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),is=new D("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),os=new D("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Zc=new D("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),jc=new D("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Jc=new D("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),$c=new D("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),_n=new D("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),vi=new D("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),rs=new D("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ss=new D("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),as=new D("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ei=new D("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),us=new D("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),el=new D("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),tl=new D("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),cs=new D("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ls=new D("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Le={AMM_V4:Oi,AMM_STABLE:ns,CLMM_PROGRAM_ID:Dn,CLMM_LOCK_PROGRAM_ID:Mi,CLMM_LOCK_AUTH_ID:Fi,FARM_PROGRAM_ID_V3:Zr,FARM_PROGRAM_ID_V4:jr,FARM_PROGRAM_ID_V5:Jr,FARM_PROGRAM_ID_V6:$r,OPEN_BOOK_PROGRAM:ts,SERUM_PROGRAM_ID_V3:Vn,UTIL1216:es,Router:is,CREATE_CPMM_POOL_PROGRAM:_n,CREATE_CPMM_POOL_AUTH:vi,CREATE_CPMM_POOL_FEE_ACC:rs,LOCK_CPMM_PROGRAM:ss,LOCK_CPMM_AUTH:as,LAUNCHPAD_PROGRAM:Ei,LAUNCHPAD_AUTH:us,LAUNCHPAD_PLATFORM:cs,LAUNCHPAD_CONFIG:ls,FEE_DESTINATION_ID:os,MODEL_DATA_PUBKEY:vt},nl={OPEN_BOOK_PROGRAM:new D("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new D("Ray1111111111111111111111111111111111111111"),AMM_V4:new D("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new D("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new D("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new D("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new D("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new D("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new D("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new D("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new D("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new D("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:D.default,Router:new D("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new D("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new D("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new D("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new D("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new D("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new D("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new D("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new D("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new D("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new D("Ray1111111111111111111111111111111111111111")};import He from"bn.js";var Et=1e4;function ge(i,e,t,n){if(e===void 0)return{amount:i,fee:void 0,expirationTime:void 0};let o=J(Q({},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}}),r=t.epoch<o.newerTransferFee.epoch?o.olderTransferFee:o.newerTransferFee,s=new He(r.maximumFee.toString()),a=t.epoch<o.newerTransferFee.epoch?(Number(o.newerTransferFee.epoch)*t.slotsInEpoch-t.absoluteSlot)*400/1e3:void 0;if(n)if(r.transferFeeBasisPoints===Et){let u=new He(r.maximumFee.toString());return{amount:i.add(u),fee:u,expirationTime:a}}else{let u=qn(i.mul(new He(Et)),new He(Et-r.transferFeeBasisPoints)),c=new He(r.maximumFee.toString()),l=u.sub(i).gt(c)?i.add(c):u,p=qn(l.mul(new He(r.transferFeeBasisPoints)),new He(Et)),d=p.gt(s)?s:p;return{amount:l,fee:d,expirationTime:a}}else{let u=qn(i.mul(new He(r.transferFeeBasisPoints)),new He(Et)),c=u.gt(s)?s:u;return{amount:i,fee:c,expirationTime:a}}}function at(i,e){return i===void 0?e:e===void 0?i:Math.min(i,e)}function qn(i,e){let{div:t,mod:n}=i.divmod(e);return n.gt(new He(0))?t.add(new He(1)):t}import{PublicKey as ul,AddressLookupTableAccount as cl}from"@solana/web3.js";import{PublicKey as Bl,sendAndConfirmTransaction as Il,SystemProgram as Kl,Transaction as Cl,TransactionMessage as Rl,VersionedTransaction as Ll}from"@solana/web3.js";import Ml from"axios";import{PublicKey as ms}from"@solana/web3.js";import ps from"bn.js";function ds(i){return typeof i=="object"&&i!==null&&![Ye,we,ms,$,ps,Ee,rt].some(e=>typeof e=="object"&&i instanceof e)}function We(i){return typeof i=="string"?Mn(i):Array.isArray(i)?i.map(e=>We(e)):ds(i)?Object.fromEntries(Object.entries(i).map(([e,t])=>[e,We(t)])):i}import fs from"bn.js";var Vi=new fs(1e6);import{PublicKey as Is}from"@solana/web3.js";import Xi,{isBN as zi}from"bn.js";import{bits as dm,BitStructure as fm,blob as bs,Blob as bm,cstr as ym,f32 as gm,f32be as Pm,f64 as Am,f64be as km,greedy as wm,Layout as ys,ns64 as Tm,ns64be as hm,nu64 as Bm,nu64be as Im,offset as gs,s16 as xm,s16be as Sm,s24 as Km,s24be as Cm,s32 as Ps,s32be as Nm,s40 as Rm,s40be as Lm,s48 as Om,s48be as Mm,s8 as Fm,seq as As,struct as vm,Structure as ks,u16 as ws,u16be as Em,u24 as Wm,u24be as Vm,u32 as Ts,u32be as Dm,u40 as _m,u40be as qm,u48 as Gm,u48be as Um,u8 as hs,UInt as Bs,union as Xm,Union as zm,unionLayoutDiscriminator as Ym,utf8 as Hm}from"@solana/buffer-layout";var Un=ys,Di=ks;var Xn=Bs;var _i=hs,$e=ws;var qi=Ts;var ce=Ps;var Gi=As;var Pe=bs;var Ui=gs;var Kt=class extends Un{constructor(t,n,o){super(t,o);this.blob=Pe(t),this.signed=n}decode(t,n=0){let o=new Xi(this.blob.decode(t,n),10,"le");return this.signed?o.fromTwos(this.span*8).clone():o}encode(t,n,o=0){return typeof t=="number"&&(t=new Xi(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,o)}};function L(i){return new Xn(1,i)}function Ve(i){return new Xn(4,i)}function y(i){return new Kt(8,!1,i)}function G(i){return new Kt(16,!1,i)}function Yi(i){return new Kt(8,!0,i)}function Hi(i){return new Kt(16,!0,i)}var Wt=class extends Un{constructor(t,n,o,r){super(t.span,r);this.layout=t,this.decoder=n,this.encoder=o}decode(t,n){return this.decoder(this.layout.decode(t,n))}encode(t,n,o){return this.layout.encode(this.encoder(t),n,o)}getSpan(t,n){return this.layout.getSpan(t,n)}};function T(i){return new Wt(Pe(32),e=>new Is(e),e=>e.toBuffer(),i)}function Te(i){return new Wt(_i(),xs,Ss,i)}function xs(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Ss(i){return i?1:0}function Qi(i,e){let t=qi("length"),n=N([t,U(i,Ui(t,-t.span),"values")]);return new Wt(n,({values:o})=>o,o=>({values:o}),e)}var zn=class extends Di{decode(e,t){return super.decode(e,t)}};function N(i,e,t){return new zn(i,e,t)}function U(i,e,t){let n,o=typeof e=="number"?e:zi(e)?e.toNumber():new Proxy(e,{get(r,s){if(!n){let a=Reflect.get(r,"count");n=zi(a)?a.toNumber():a,Reflect.set(r,"count",n)}return Reflect.get(r,s)},set(r,s,a){return s==="count"&&(n=a),Reflect.set(r,s,a)}});return Gi(i,o,t)}import{PublicKey as uf}from"@solana/web3.js";import lf from"bn.js";import{AccountLayout as ff,createAssociatedTokenAccountIdempotentInstruction as bf,TOKEN_2022_PROGRAM_ID as yf,TOKEN_PROGRAM_ID as gf}from"@solana/spl-token";import{PublicKey as ap}from"@solana/web3.js";import{MintLayout as cp,TOKEN_PROGRAM_ID as mp}from"@solana/spl-token";import{Keypair as bn,PublicKey as K,SystemProgram as mt,TransactionInstruction as Ce}from"@solana/web3.js";import ti from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Ut,TOKEN_2022_PROGRAM_ID as be,TOKEN_PROGRAM_ID as oe}from"@solana/spl-token";import vs from"bn.js";import Ge from"bn.js";var pe=new Ge(0),De=new Ge(1),ut=new Ge(-1),Fe=new Ge(1).shln(64),an=new Ge(1).shln(128),un=Fe.sub(De),Vt=64,Zi=an.subn(1),Re=-443636,Oe=-Re,Qe=new Ge("4295048016"),Ze=new Ge("79226673521066979257578248091"),cn=new Ge("4295048017"),ln=new Ge("79226673521066979257578248090"),ji=16,Ji="59543866431248",$i="184467440737095516",eo="15793534762490258745",mn=new Ge(10).pow(new Ge(6));var hp=new Ge("18446744073700000000");import H from"bn.js";function pn(i){let e=new ArrayBuffer(4);return new DataView(e).setInt32(0,i,!1),new Uint8Array(e)}function Yn(i,e){let t=0;for(let n=i-1;n>=0&&!e.testn(n);n--)t++;return t}function Hn(i,e){let t=0;for(let n=0;n<i&&!e.testn(n);n++)t++;return t}function Dt(i,e){for(let t=0;t<i;t++)if(e.testn(t))return!1;return!0}function to(i,e){return Dt(i,e)?null:Yn(i,e)}function no(i,e){return Dt(i,e)?null:Hn(i,e)}var Kp=Buffer.from("amm_config","utf8"),io=Buffer.from("pool","utf8"),oo=Buffer.from("pool_vault","utf8"),Cs=Buffer.from("pool_reward_vault","utf8"),ro=Buffer.from("position","utf8"),Ns=Buffer.from("tick_array","utf8"),Rs=Buffer.from("operation","utf8"),Ls=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Os=Buffer.from("observation","utf8");function so(i,e,t,n){return xe([io,e.toBuffer(),t.toBuffer(),n.toBuffer()],i)}function Qn(i,e,t){return xe([oo,e.toBuffer(),t.toBuffer()],i)}function ao(i,e,t){return xe([Cs,e.toBuffer(),t.toBuffer()],i)}function ee(i,e,t){return xe([Ns,e.toBuffer(),pn(t)],i)}function ct(i,e,t,n){return xe([ro,e.toBuffer(),pn(t),pn(n)],i)}function ve(i,e){return xe([ro,e.toBuffer()],i)}function kt(i){return xe([Buffer.from("metadata","utf8"),ot.toBuffer(),i.toBuffer()],ot)}function dn(i){return xe([Rs],i)}function Ae(i,e){return xe([Ls,e.toBuffer()],i)}function uo(i,e){return xe([Os,e.toBuffer()],i)}var co=Buffer.from("locked_position","utf8");function Zn(i,e){return xe([co,e.toBuffer()],i)}function jn(i,e){return xe([co,e.toBuffer()],i)}var Cp=Buffer.from("support_mint","utf8");import{PublicKey as _e}from"@solana/web3.js";import{TOKEN_2022_PROGRAM_ID as lo}from"@solana/spl-token";import le from"bn.js";import et from"bn.js";var _t=class{static getfeeGrowthInside(e,t,n){let o=new et(0),r=new et(0);e.tickCurrent>=t.tick?(o=t.feeGrowthOutsideX64A,r=t.feeGrowthOutsideX64B):(o=e.feeGrowthGlobalX64A.sub(t.feeGrowthOutsideX64A),r=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 u=Y.wrappingSubU128(Y.wrappingSubU128(e.feeGrowthGlobalX64A,o),s),c=Y.wrappingSubU128(Y.wrappingSubU128(e.feeGrowthGlobalX64B,r),a);return{feeGrowthInsideX64A:u,feeGrowthInsideBX64:c}}static GetPositionFees(e,t,n,o){let{feeGrowthInsideX64A:r,feeGrowthInsideBX64:s}=this.getfeeGrowthInside(e,n,o),a=Y.mulDivFloor(Y.wrappingSubU128(r,t.feeGrowthInsideLastX64A),t.liquidity,Fe),u=t.tokenFeesOwedA.add(a),c=Y.mulDivFloor(Y.wrappingSubU128(s,t.feeGrowthInsideLastX64B),t.liquidity,Fe),l=t.tokenFeesOwedB.add(c);return{tokenFeeAmountA:u,tokenFeeAmountB:l}}static GetPositionFeesV2(e,t,n,o){let{feeGrowthInsideX64A:r,feeGrowthInsideBX64:s}=this.getfeeGrowthInside(e,n,o),a=Y.mulDivFloor(Y.wrappingSubU128(r,t.feeGrowthInsideLastX64A),t.liquidity,Fe),u=t.tokenFeesOwedA.add(a),c=Y.mulDivFloor(Y.wrappingSubU128(s,t.feeGrowthInsideLastX64B),t.liquidity,Fe),l=t.tokenFeesOwedB.add(c);return{tokenFeeAmountA:u,tokenFeeAmountB:l}}static GetPositionRewardsV2(e,t,n,o){let r=[],s=this.getRewardGrowthInsideV2(e.tickCurrent,n,o,e.rewardInfos);for(let a=0;a<s.length;a++){let u=s[a],c=t.rewardInfos[a],l=Y.wrappingSubU128(u,c.growthInsideLastX64),p=Y.mulDivFloor(l,t.liquidity,Fe),d=c.rewardAmountOwed.add(p);r.push(d)}return r}static GetPositionRewards(e,t,n,o){let r=[],s=this.getRewardGrowthInside(e.tickCurrent,n,o,e.rewardInfos);for(let a=0;a<s.length;a++){let u=s[a],c=t.rewardInfos[a],l=Y.wrappingSubU128(u,c.growthInsideLastX64),p=Y.mulDivFloor(l,t.liquidity,Fe),d=c.rewardAmountOwed.add(p);r.push(d)}return r}static getRewardGrowthInside(e,t,n,o){let r=[];for(let s=0;s<o.length;s++){let a=new et(0);t.liquidityGross.eqn(0)?a=o[s].rewardGrowthGlobalX64:e<t.tick?a=o[s].rewardGrowthGlobalX64.sub(t.rewardGrowthsOutsideX64[s]):a=t.rewardGrowthsOutsideX64[s];let u=new et(0);n.liquidityGross.eqn(0)||(e<n.tick?u=n.rewardGrowthsOutsideX64[s]:u=o[s].rewardGrowthGlobalX64.sub(n.rewardGrowthsOutsideX64[s])),r.push(Y.wrappingSubU128(Y.wrappingSubU128(o[s].rewardGrowthGlobalX64,a),u))}return r}static getRewardGrowthInsideV2(e,t,n,o){let r=[];for(let s=0;s<o.length;s++){let a=new et(0);t.liquidityGross.eqn(0)?a=o[s].rewardGrowthGlobalX64:e<t.tick?a=o[s].rewardGrowthGlobalX64.sub(t.rewardGrowthsOutsideX64[s]):a=t.rewardGrowthsOutsideX64[s];let u=new et(0);n.liquidityGross.eqn(0)||(e<n.tick?u=n.rewardGrowthsOutsideX64[s]:u=o[s].rewardGrowthGlobalX64.sub(n.rewardGrowthsOutsideX64[s])),r.push(Y.wrappingSubU128(Y.wrappingSubU128(o[s].rewardGrowthGlobalX64,a),u))}return r}static getAmountsFromLiquidity({poolInfo:e,ownerPosition:t,liquidity:n,slippage:o,add:r,epochInfo:s}){var b,g,B,h;let a=z.priceToSqrtPriceX64(new O(e.price),e.mintA.decimals,e.mintB.decimals),u=z.getSqrtPriceX64FromTick(t.tickLower),c=z.getSqrtPriceX64FromTick(t.tickUpper),l=r?1+o:1-o,p=j.getAmountsFromLiquidity(a,u,c,n,r),[d,m]=[ge(p.amountA,(b=e.mintA.extensions)==null?void 0:b.feeConfig,s,!0),ge(p.amountB,(g=e.mintB.extensions)==null?void 0:g.feeConfig,s,!0)],[P,f]=[ge(new et(new O(p.amountA.toString()).mul(l).toFixed(0)),(B=e.mintA.extensions)==null?void 0:B.feeConfig,s,!0),ge(new et(new O(p.amountB.toString()).mul(l).toFixed(0)),(h=e.mintB.extensions)==null?void 0:h.feeConfig,s,!0)];return{liquidity:n,amountA:d,amountB:m,amountSlippageA:P,amountSlippageB:f,expirationTime:at(d.expirationTime,m.expirationTime)}}};var Ms=15,Z=class{static async getTickArrays(e,t,n,o,r,s,a){let u=[],c=v.getTickArrayStartIndexByTick(o,r),l=v.getInitializedTickArrayInRange(s,a,r,c,Math.floor(Ms/2));for(let m=0;m<l.length;m++){let{publicKey:P}=ee(t,n,l[m]);u.push(P)}let p=(await yt(e,u)).map(m=>m!==null?qt.decode(m.data):null),d={};for(let m=0;m<u.length;m++){let P=p[m];P!==null&&(d[P.startTickIndex]=J(Q({},P),{address:u[m]}))}return d}static nextInitializedTick(e,t,n,o,r,s){let{initializedTick:a,tickArrayAddress:u,tickArrayStartTickIndex:c}=this.nextInitializedTickInOneArray(e,t,n,o,r,s);for(;a==null||a.liquidityGross.lten(0);){if(c=v.getNextTickArrayStartIndex(c,r,s),this.checkIsValidStartIndex(c,r))throw new Error("No enough initialized tickArray");let l=n[c];if(l===void 0)continue;let{nextTick:p,tickArrayAddress:d,tickArrayStartTickIndex:m}=this.firstInitializedTickInOneArray(e,t,l,s);[a,u,c]=[p,d,m]}if(a==null)throw new Error("No invaild tickArray cache");return{nextTick:a,tickArrayAddress:u,tickArrayStartTickIndex:c}}static nextInitializedTickArray(e,t,n,o,r){let s=Math.floor(e/Z.tickCount(t)),a=n?v.searchLowBitFromStart(o,r,s-1,1,t):v.searchHightBitFromStart(o,r,s+1,1,t);return a.length>0?{isExist:!0,nextStartIndex:a[0]}:{isExist:!1,nextStartIndex:0}}static firstInitializedTickInOneArray(e,t,n,o){let r;if(o){let a=he-1;for(;a>=0;){let u=n.ticks[a];if(u.liquidityGross.gtn(0)){r=u;break}a=a-1}}else{let a=0;for(;a<he;){let u=n.ticks[a];if(u.liquidityGross.gtn(0)){r=u;break}a=a+1}}let{publicKey:s}=ee(e,t,n.startTickIndex);return{nextTick:r,tickArrayAddress:s,tickArrayStartTickIndex:n.startTickIndex}}static nextInitializedTickInOneArray(e,t,n,o,r,s){let a=v.getTickArrayStartIndexByTick(o,r),u=Math.floor((o-a)/r),c=n[a];if(c==null)return{initializedTick:void 0,tickArrayAddress:void 0,tickArrayStartTickIndex:a};let l;if(s)for(;u>=0;){let d=c.ticks[u];if(d.liquidityGross.gtn(0)){l=d;break}u=u-1}else for(u=u+1;u<he;){let d=c.ticks[u];if(d.liquidityGross.gtn(0)){l=d;break}u=u+1}let{publicKey:p}=ee(e,t,a);return{initializedTick:l,tickArrayAddress:p,tickArrayStartTickIndex:c.startTickIndex}}static getArrayStartIndex(e,t){let n=this.tickCount(t);return Math.floor(e/n)*n}static checkIsValidStartIndex(e,t){if(v.checkIsOutOfBoundary(e)){if(e>Oe)return!1;let n=v.getTickArrayStartIndexByTick(Re,t);return e==n}return e%this.tickCount(t)==0}static tickCount(e){return he*e}};var Jn=14,lt=class{static maxTickInTickarrayBitmap(e){return e*he*wt}static getBitmapTickBoundary(e,t){let n=this.maxTickInTickarrayBitmap(t),o=Math.floor(Math.abs(e)/n);e<0&&Math.abs(e)%n!=0&&(o+=1);let r=n*o;return e<0?{minValue:-r,maxValue:-r+n}:{minValue:r,maxValue:r+n}}static nextInitializedTickArrayStartIndex(e,t,n,o){if(!Z.checkIsValidStartIndex(t,n))throw Error("nextInitializedTickArrayStartIndex check error");let r=this.maxTickInTickarrayBitmap(n),s=o?t-Z.tickCount(n):t+Z.tickCount(n);if(s<-r||s>=r)return{isInit:!1,tickIndex:t};let a=n*he,u=s/a+512;s<0&&s%a!=0&&u--;let c=Math.abs(u);if(o){let l=e.shln(1024-c-1),p=to(1024,l);if(p!==null){let d=(c-p-512)*a;return{isInit:!0,tickIndex:d}}else return{isInit:!1,tickIndex:-r}}else{let l=e.shrn(c),p=no(1024,l);if(p!==null){let d=(c+p-512)*a;return{isInit:!0,tickIndex:d}}else return{isInit:!1,tickIndex:r-Z.tickCount(n)}}}},Gt=class{static getBitmapOffset(e,t){if(!Z.checkIsValidStartIndex(e,t))throw new Error("No enough initialized tickArray");this.checkExtensionBoundary(e,t);let n=lt.maxTickInTickarrayBitmap(t),o=Math.floor(Math.abs(e)/n)-1;return e<0&&Math.abs(e)%n===0&&o--,o}static getBitmap(e,t,n){let o=this.getBitmapOffset(e,t);return e<0?{offset:o,tickarrayBitmap:n.negativeTickArrayBitmap[o]}:{offset:o,tickarrayBitmap:n.positiveTickArrayBitmap[o]}}static checkExtensionBoundary(e,t){let{positiveTickBoundary:n,negativeTickBoundary:o}=this.extensionTickBoundary(t);if(e>=o&&e<n)throw Error("checkExtensionBoundary -> InvalidTickArrayBoundary")}static extensionTickBoundary(e){let t=lt.maxTickInTickarrayBitmap(e),n=-t;if(Oe<=t)throw Error(`extensionTickBoundary check error: ${Oe}, ${t}`);if(n<=Re)throw Error(`extensionTickBoundary check error: ${n}, ${Re}`);return{positiveTickBoundary:t,negativeTickBoundary:n}}static checkTickArrayIsInit(e,t,n){let{tickarrayBitmap:o}=this.getBitmap(e,t,n),r=this.tickArrayOffsetInBitmap(e,t);return{isInitialized:v.mergeTickArrayBitmap(o).testn(r),startIndex:e}}static nextInitializedTickArrayFromOneBitmap(e,t,n,o){let r=Z.tickCount(t),s=n?e-r:e+r,{tickarrayBitmap:a}=this.getBitmap(s,t,o);return this.nextInitializedTickArrayInBitmap(a,s,t,n)}static nextInitializedTickArrayInBitmap(e,t,n,o){let{minValue:r,maxValue:s}=lt.getBitmapTickBoundary(t,n),a=this.tickArrayOffsetInBitmap(t,n);if(o){let u=v.mergeTickArrayBitmap(e).shln(wt-1-a),c=Dt(512,u)?null:Yn(512,u);if(c!==null){let l=t-c*Z.tickCount(n);return{isInit:!0,tickIndex:l}}else return{isInit:!1,tickIndex:r}}else{let u=v.mergeTickArrayBitmap(e).shrn(a),c=Dt(512,u)?null:Hn(512,u);if(c!==null){let l=t+c*Z.tickCount(n);return{isInit:!0,tickIndex:l}}else return{isInit:!1,tickIndex:s-Z.tickCount(n)}}}static tickArrayOffsetInBitmap(e,t){let n=Math.abs(e)%lt.maxTickInTickarrayBitmap(t),o=Math.floor(n/Z.tickCount(t));return e<0&&n!=0&&(o=wt-o),o}};var fe=class{static getOutputAmountAndRemainAccounts(e,t,n,o,r,s=!1){let a=n.toBase58()===e.mintA.address,u=[],{isExist:c,startIndex:l,nextAccountMeta:p}=this.getFirstInitializedTickArray(e,a);if(!c||l===void 0||!p)throw new Error("Invalid tick array");u.push(p);let{allTrade:d,amountCalculated:m,accounts:P,sqrtPriceX64:f,feeAmount:b}=Tt.swapCompute(e.programId,e.id,t,e.tickArrayBitmap,e.exBitmapInfo,a,e.ammConfig.tradeFeeRate,e.liquidity,e.tickCurrent,e.tickSpacing,e.sqrtPriceX64,o,l,r,s);return u.push(...P),{allTrade:d,expectedAmountOut:m.mul(ut),remainingAccounts:u,executionPrice:f,feeAmount:b}}static getInputAmountAndRemainAccounts(e,t,n,o,r){let s=n.toBase58()===e.mintB.address,a=[],{isExist:u,startIndex:c,nextAccountMeta:l}=this.getFirstInitializedTickArray(e,s);if(!u||c===void 0||!l)throw new Error("Invalid tick array");try{let f=this.preInitializedTickArrayStartIndex(e,s);if(f.isExist){let{publicKey:b}=ee(e.programId,e.id,f.nextStartIndex);a.push(b)}}catch{}a.push(l);let{amountCalculated:p,accounts:d,sqrtPriceX64:m,feeAmount:P}=Tt.swapCompute(e.programId,e.id,t,e.tickArrayBitmap,e.exBitmapInfo,s,e.ammConfig.tradeFeeRate,e.liquidity,e.tickCurrent,e.tickSpacing,e.sqrtPriceX64,o.mul(ut),c,r);return a.push(...d),{expectedAmountIn:p,remainingAccounts:a,executionPrice:m,feeAmount:P}}static getFirstInitializedTickArray(e,t){let{isInitialized:n,startIndex:o}=fe.isOverflowDefaultTickarrayBitmap(e.tickSpacing,[e.tickCurrent])?Gt.checkTickArrayIsInit(Z.getArrayStartIndex(e.tickCurrent,e.tickSpacing),e.tickSpacing,e.exBitmapInfo):v.checkTickArrayIsInitialized(v.mergeTickArrayBitmap(e.tickArrayBitmap),e.tickCurrent,e.tickSpacing);if(n){let{publicKey:a}=ee(e.programId,e.id,o);return{isExist:!0,startIndex:o,nextAccountMeta:a}}let{isExist:r,nextStartIndex:s}=this.nextInitializedTickArrayStartIndex(e,Z.getArrayStartIndex(e.tickCurrent,e.tickSpacing),t);if(r){let{publicKey:a}=ee(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/Z.tickCount(e.tickSpacing)),o=t?v.searchHightBitFromStart(e.tickArrayBitmap,e.exBitmapInfo,n+1,1,e.tickSpacing):v.searchLowBitFromStart(e.tickArrayBitmap,e.exBitmapInfo,n-1,1,e.tickSpacing);return o.length>0?{isExist:!0,nextStartIndex:o[0]}:{isExist:!1,nextStartIndex:0}}static nextInitializedTickArrayStartIndex(e,t,n){for(t=Z.getArrayStartIndex(e.tickCurrent,e.tickSpacing);;){let{isInit:o,tickIndex:r}=lt.nextInitializedTickArrayStartIndex(v.mergeTickArrayBitmap(e.tickArrayBitmap),t,e.tickSpacing,n);if(o)return{isExist:!0,nextStartIndex:r};t=r;let{isInit:s,tickIndex:a}=Gt.nextInitializedTickArrayFromOneBitmap(t,e.tickSpacing,n,e.exBitmapInfo);if(s)return{isExist:!0,nextStartIndex:a};if(t=a,t<Re||t>Oe)return{isExist:!1,nextStartIndex:0}}}static async updatePoolRewardInfos({connection:e,apiPoolInfo:t,chainTime:n,poolLiquidity:o,rewardInfos:r}){var a,u,c;let s=[];for(let l=0;l<r.length;l++){let p=r[l],d=(c=(a=t.rewardDefaultInfos[l])==null?void 0:a.mint.programId)!=null?c:(u=await e.getAccountInfo(p.tokenMint))==null?void 0:u.owner;if(d===void 0)throw Error("get new reward mint info error");let m=J(Q({},p),{perSecond:Y.x64ToDecimal(p.emissionsPerSecondX64),remainingRewards:void 0,tokenProgramId:new _e(d)});if(m.tokenMint.equals(_e.default))continue;if(n<=m.openTime.toNumber()||o.eq(pe)){s.push(m);continue}let P=new le(Math.min(m.endTime.toNumber(),n)),f=P.sub(m.lastUpdateTime),b=Y.mulDivFloor(f,m.emissionsPerSecondX64,o),g=m.rewardGrowthGlobalX64.add(b),B=Y.mulDivFloor(f,m.emissionsPerSecondX64,Fe),h=m.rewardTotalEmissioned.add(B);s.push(J(Q({},m),{rewardGrowthGlobalX64:g,rewardTotalEmissioned:h,lastUpdateTime:P}))}return s}static isOverflowDefaultTickarrayBitmap(e,t){let{maxTickBoundary:n,minTickBoundary:o}=this.tickRange(e);for(let r of t){let s=v.getTickArrayStartIndexByTick(r,e);if(s>=n||s<o)return!0}return!1}static tickRange(e){let t=lt.maxTickInTickarrayBitmap(e),n=-t;return t>Oe&&(t=Z.getArrayStartIndex(Oe,e)+Z.tickCount(e)),n<Re&&(n=Z.getArrayStartIndex(Re,e)),{maxTickBoundary:t,minTickBoundary:n}}static get_tick_array_offset(e,t){if(!Z.checkIsValidStartIndex(e,t))throw new Error("No enough initialized tickArray");return e/Z.tickCount(t)*wt}static async fetchExBitmaps({connection:e,exBitmapAddress:t,batchRequest:n}){let o=await xt(e,t.map(s=>({pubkey:s})),{batchRequest:n}),r={};for(let s of o)s.accountInfo!==null&&(r[s.pubkey.toString()]=mo.decode(s.accountInfo.data));return r}static async fetchMultiplePoolTickArrays({connection:e,poolKeys:t,batchRequest:n}){let o={},r=[];for(let u of t){let c=v.getTickArrayStartIndexByTick(u.tickCurrent,u.tickSpacing),l=v.getInitializedTickArrayInRange(u.tickArrayBitmap,u.exBitmapInfo,u.tickSpacing,c,7);for(let p of l){let{publicKey:d}=ee(u.programId,u.id,p);r.push({pubkey:d}),o[d.toString()]=u.id}}let s=await xt(e,r,{batchRequest:n}),a={};for(let u of s){if(!u.accountInfo)continue;let c=o[u.pubkey.toString()];if(!c)continue;a[c.toString()]===void 0&&(a[c.toString()]={});let l=qt.decode(u.accountInfo.data);a[c.toString()][l.startTickIndex]=J(Q({},l),{address:u.pubkey})}return a}static async fetchPoolsAccountPosition({pools:e,connection:t,ownerInfo:n,batchRequest:o=!1,updateOwnerRewardAndFee:r=!0}){var a;let s=[];for(let u=0;u<e.length;u++){let c=e[u];c!==null&&(s.find(l=>l.equals(c.state.programId))||s.push(c.state.programId))}if(n){let u=n.tokenAccounts.map(d=>d.accountInfo.mint),c=[];for(let d of u)for(let m of s)c.push(ve(m,d).publicKey);let l=await yt(t,c,{batchRequest:o}),p={};for(let d of l){if(d===null)continue;let m=$n.decode(d.data),P=m.poolId.toString(),f=e.find(F=>F.state.id.toBase58()===P);if(f===void 0)continue;let b=f.state,g=v._getTickPriceLegacy({poolInfo:b,tick:m.tickLower,baseIn:!0}),B=v._getTickPriceLegacy({poolInfo:b,tick:m.tickUpper,baseIn:!0}),{amountA:h,amountB:R}=j.getAmountsFromLiquidity(b.sqrtPriceX64,g.tickSqrtPriceX64,B.tickSqrtPriceX64,m.liquidity,!1),E=1/(1-Math.sqrt(Math.sqrt(g.price.div(B.price).toNumber())));f.positionAccount=[...(a=f.positionAccount)!=null?a:[],{poolId:m.poolId,nftMint:m.nftMint,priceLower:g.price,priceUpper:B.price,amountA:h,amountB:R,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(F=>J(Q({},F),{pendingReward:new le(0)})),leverage:E,tokenFeeAmountA:new le(0),tokenFeeAmountB:new le(0)}];let I=await v.getTickArrayAddressByTick(f.state.programId,m.poolId,m.tickLower,f.state.tickSpacing),M=await v.getTickArrayAddressByTick(f.state.programId,m.poolId,m.tickUpper,f.state.tickSpacing);p[`${f.state.programId.toString()}-${m.poolId.toString()}-${m.tickLower}`]=I,p[`${f.state.programId.toString()}-${m.poolId.toString()}-${m.tickUpper}`]=M}if(r){let d=Object.values(p),m=await yt(t,d,{batchRequest:o}),P={};for(let f=0;f<d.length;f++){let b=m[f];if(b===null)continue;let g=d[f].toString();P[g]=qt.decode(b.data)}for(let{state:f,positionAccount:b}of e)if(!!b)for(let g of b){let B=`${f.programId.toString()}-${f.id.toString()}-${g.tickLower}`,h=`${f.programId.toString()}-${f.id.toString()}-${g.tickUpper}`,R=P[p[B].toString()],E=P[p[h].toString()],I=R.ticks[v.getTickOffsetInArray(g.tickLower,f.tickSpacing)],M=E.ticks[v.getTickOffsetInArray(g.tickUpper,f.tickSpacing)],{tokenFeeAmountA:F,tokenFeeAmountB:q}=await _t.GetPositionFees(f,g,I,M),C=await _t.GetPositionRewards(f,g,I,M);g.tokenFeeAmountA=F.gte(new le(0))?F:new le(0),g.tokenFeeAmountB=q.gte(new le(0))?q:new le(0);for(let W=0;W<C.length;W++)g.rewardInfos[W].pendingReward=C[W].gte(new le(0))?C[W]:new le(0)}}}return e}static computeAmountOut({poolInfo:e,tickArrayCache:t,baseMint:n,epochInfo:o,amountIn:r,slippage:s,priceLimit:a=new O(0),catchLiquidityInsufficient:u=!1}){var ye;let c,l=n.toBase58()===e.mintA.address,[p,d]=l?[e.mintA.extensions.feeConfig,e.mintB.extensions.feeConfig]:[e.mintB.extensions.feeConfig,e.mintA.extensions.feeConfig];a.equals(new O(0))?c=l?Qe.add(new le(1)):Ze.sub(new le(1)):c=z.priceToSqrtPriceX64(a,e.mintA.decimals,e.mintB.decimals);let m=ge(r,p,o,!1),{allTrade:P,expectedAmountOut:f,remainingAccounts:b,executionPrice:g,feeAmount:B}=fe.getOutputAmountAndRemainAccounts(e,t,n,m.amount.sub((ye=m.fee)!=null?ye:pe),c,u),h=ge(f,d,o,!1),R=z.sqrtPriceX64ToPrice(g,e.mintA.decimals,e.mintB.decimals),E=l?R:new O(1).div(R),I=f.mul(new le(Math.floor((1-s)*1e10))).div(new le(1e10)),M=ge(I,d,o,!1),F=l?e.currentPrice:new O(1).div(e.currentPrice),q=new O(E).sub(F).abs(),C=F,W=new rt(new O(q).mul(10**15).toFixed(0),new O(C).mul(10**15).toFixed(0));return{allTrade:P,realAmountIn:m,amountOut:h,minAmountOut:M,expirationTime:at(m.expirationTime,h.expirationTime),currentPrice:e.currentPrice,executionPrice:E,priceImpact:W,fee:B,remainingAccounts:b,executionPriceX64:g}}static computeAmountOutFormat({poolInfo:e,tickArrayCache:t,amountIn:n,tokenOut:o,slippage:r,epochInfo:s,catchLiquidityInsufficient:a=!1}){let u=o.address===e.mintB.address,[c,l]=u?[e.mintA,e.mintB]:[e.mintB,e.mintA],[p,d]=[new Ye(J(Q({},c),{mint:c.address,isToken2022:c.programId===lo.toBase58()})),new Ye(J(Q({},l),{mint:l.address,isToken2022:l.programId===lo.toBase58()}))],{allTrade:m,realAmountIn:P,amountOut:f,minAmountOut:b,expirationTime:g,currentPrice:B,executionPrice:h,priceImpact:R,fee:E,remainingAccounts:I,executionPriceX64:M}=fe.computeAmountOut({poolInfo:e,tickArrayCache:t,baseMint:new _e(c.address),amountIn:n,slippage:r,epochInfo:s,catchLiquidityInsufficient:a}),F=J(Q({},P),{amount:new we(p,P.amount),fee:P.fee===void 0?void 0:new we(p,P.fee)}),q=J(Q({},f),{amount:new we(d,f.amount),fee:f.fee===void 0?void 0:new we(d,f.fee)}),C=J(Q({},b),{amount:new we(d,b.amount),fee:b.fee===void 0?void 0:new we(d,b.fee)}),W=new Ee({baseToken:p,denominator:new le(10).pow(new le(20+p.decimals)),quoteToken:d,numerator:B.mul(new O(10**(20+d.decimals))).toFixed(0)}),ye=new Ee({baseToken:p,denominator:new le(10).pow(new le(20+p.decimals)),quoteToken:d,numerator:h.mul(new O(10**(20+d.decimals))).toFixed(0)}),se=new we(p,E);return{allTrade:m,realAmountIn:F,amountOut:q,minAmountOut:C,expirationTime:g,currentPrice:W,executionPrice:ye,priceImpact:R,fee:se,remainingAccounts:I,executionPriceX64:M}}static computeAmountIn({poolInfo:e,tickArrayCache:t,baseMint:n,epochInfo:o,amountOut:r,slippage:s,priceLimit:a=new O(0)}){var C;let u=n.toBase58()===e.mintA.address,c={[e.mintA.address]:e.mintA.extensions.feeConfig,[e.mintB.address]:e.mintB.extensions.feeConfig},l;a.equals(new O(0))?l=u?Ze.sub(new le(1)):Qe.add(new le(1)):l=z.priceToSqrtPriceX64(a,e.mintA.decimals,e.mintB.decimals);let p=ge(r,c[n.toString()],o,!0),{expectedAmountIn:d,remainingAccounts:m,executionPrice:P,feeAmount:f}=fe.getInputAmountAndRemainAccounts(e,t,n,p.amount.sub((C=p.fee)!=null?C:pe),l),b=u?e.mintB.address:e.mintA.address,g=ge(d,c[b],o,!1),B=z.sqrtPriceX64ToPrice(P,e.mintA.decimals,e.mintB.decimals),h=u?B:new O(1).div(B),R=d.mul(new le(Math.floor((1+s)*1e10))).div(new le(1e10)),E=ge(R,c[b],o,!0),I=u?e.currentPrice:new O(1).div(e.currentPrice),M=new O(h).sub(I).abs(),F=I,q=new rt(new O(M).mul(10**15).toFixed(0),new O(F).mul(10**15).toFixed(0));return{amountIn:g,maxAmountIn:E,realAmountOut:p,expirationTime:at(g.expirationTime,p.expirationTime),currentPrice:e.currentPrice,executionPrice:h,priceImpact:q,fee:f,remainingAccounts:m}}static estimateAprsForPriceRangeMultiplier({poolInfo:e,aprType:t,positionTickLowerIndex:n,positionTickUpperIndex:o}){var P,f,b;let r=e[t],s=v.getTickPrice({poolInfo:e,tick:n,baseIn:!0}).price.toNumber(),a=v.getTickPrice({poolInfo:e,tick:o,baseIn:!0}).price.toNumber(),u=Math.max(s,r.priceMin),l=Math.min(a,r.priceMax)-u,p=a-s,d=r.priceMax-r.priceMin,m;return l<=0?m=0:p===l?m=d/l:d===l?m=l/p:m=l/d*(l/p),{feeApr:r.feeApr*m,rewardsApr:[((P=r.rewardApr[0])!=null?P:0)*m,((f=r.rewardApr[1])!=null?f:0)*m,((b=r.rewardApr[2])!=null?b:0)*m],apr:r.apr*m}}static estimateAprsForPriceRangeDelta({poolInfo:e,poolLiquidity:t,aprType:n,mintPrice:o,liquidity:r,positionTickLowerIndex:s,positionTickUpperIndex:a,chainTime:u}){let c=n==="day"?1:n==="week"?7:n==="month"?30:0,l=e[n],p=o[St(e.mintA.address).toString()],d=o[St(e.mintB.address).toString()],m=e.mintA.decimals,P=e.mintB.decimals;if(!l||!p||!d)return{feeApr:0,rewardsApr:[0,0,0],apr:0};let f=z.priceToSqrtPriceX64(new O(e.price),e.mintA.decimals,e.mintB.decimals),b=z.getSqrtPriceX64FromTick(s),g=z.getSqrtPriceX64FromTick(a),{amountSlippageA:B,amountSlippageB:h}=j.getAmountsFromLiquidityWithSlippage(f,b,g,t,!1,!1,0),{amountSlippageA:R,amountSlippageB:E}=j.getAmountsFromLiquidityWithSlippage(f,b,g,r,!1,!1,0),I=new O(B.toString()).div(new O(10).pow(m)).mul(p.value).add(new O(h.toString()).div(new O(10).pow(P)).mul(d.value)),M=new O(R.toString()).div(new O(10).pow(m)).mul(p.value).add(new O(E.toString()).div(new O(10).pow(P)).mul(d.value)),F=new O(1).div(I.add(M)),C=new O(l.volumeFee).mul(365).div(c).mul(F).mul(100).toNumber(),W=3600*24*365,ye=e.rewardDefaultInfos.map(se=>{var te,ui;let Ie=se.mint.decimals,de=o[se.mint.address];return u<((te=se.startTime)!=null?te:0)||u>((ui=se.endTime)!=null?ui:0)||!se.perSecond||!de||Ie===void 0?0:new O(de.value).mul(new O(se.perSecond).mul(W)).div(new O(10).pow(Ie)).mul(F).mul(100).toNumber()});return{feeApr:C,rewardsApr:ye,apr:C+ye.reduce((se,Ie)=>se+Ie,0)}}static async getLiquidityAmountOutFromAmountIn({poolInfo:e,inputA:t,tickLower:n,tickUpper:o,amount:r,slippage:s,add:a,epochInfo:u,amountHasFee:c}){var g,B;let l=z.priceToSqrtPriceX64(new O(e.price),e.mintA.decimals,e.mintB.decimals),p=z.getSqrtPriceX64FromTick(n),d=z.getSqrtPriceX64FromTick(o),m=ge(r,(g=e[t?"mintA":"mintB"].extensions)==null?void 0:g.feeConfig,u,!c),P=new le(new O(m.amount.sub((B=m.fee)!=null?B:pe).toString()).toFixed(0)),f;if(l.lte(p))f=t?j.getLiquidityFromTokenAmountA(p,d,P,!a):new le(0);else if(l.lte(d)){let h=j.getLiquidityFromTokenAmountA(l,d,P,!a),R=j.getLiquidityFromTokenAmountB(p,l,P);f=t?h:R}else f=t?new le(0):j.getLiquidityFromTokenAmountB(p,d,P);let b=await fe.getAmountsFromLiquidity({epochInfo:u,poolInfo:e,tickLower:n,tickUpper:o,liquidity:f,slippage:s,add:a});return{liquidity:f,amountA:t?m:b.amountA,amountB:t?b.amountB:m,amountSlippageA:t?m:b.amountSlippageA,amountSlippageB:t?b.amountSlippageB:m,expirationTime:b.expirationTime}}static async getAmountsFromLiquidity({epochInfo:e,poolInfo:t,tickLower:n,tickUpper:o,liquidity:r,slippage:s,add:a}){var b,g,B,h;let u=z.getSqrtPriceX64FromTick(n),c=z.getSqrtPriceX64FromTick(o),l=a?1+s:1-s,p=j.getAmountsFromLiquidity(z.priceToSqrtPriceX64(new O(t.price),t.mintA.decimals,t.mintB.decimals),u,c,r,a),[d,m]=[ge(p.amountA,(b=t.mintA.extensions)==null?void 0:b.feeConfig,e,!0),ge(p.amountB,(g=t.mintB.extensions)==null?void 0:g.feeConfig,e,!0)],[P,f]=[ge(p.amountA.muln(l),(B=t.mintA.extensions)==null?void 0:B.feeConfig,e,!0),ge(p.amountB.muln(l),(h=t.mintB.extensions)==null?void 0:h.feeConfig,e,!0)];return{liquidity:r,amountA:d,amountB:m,amountSlippageA:P,amountSlippageB:f,expirationTime:at(d.expirationTime,m.expirationTime)}}static async fetchComputeMultipleClmmInfo({connection:e,poolList:t,rpcDataMap:n={}}){let o=t.filter(u=>!n[u.id]).map(u=>new _e(u.id));(await yt(e,o)).forEach((u,c)=>{!u||(n[o[c].toBase58()]=fn.decode(u.data))});let s=t.map(u=>Ae(new _e(u.programId),new _e(u.id)).publicKey),a=await fe.fetchExBitmaps({connection:e,exBitmapAddress:s,batchRequest:!1});return t.reduce((u,c)=>J(Q({},u),{[c.id]:J(Q({},n[c.id]),{id:new _e(c.id),version:6,programId:new _e(c.programId),mintA:c.mintA,mintB:c.mintB,ammConfig:J(Q({},c.config),{id:new _e(c.config.id),fundOwner:""}),currentPrice:new O(c.price),exBitmapAccount:Ae(new _e(c.programId),new _e(c.id)).publicKey,exBitmapInfo:a[Ae(new _e(c.programId),new _e(c.id)).publicKey.toBase58()],startTime:n[c.id].startTime.toNumber(),rewardInfos:n[c.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 Y=class{static mulDivRoundingUp(e,t,n){let o=e.mul(t),r=o.div(n);return o.mod(n).eq(pe)||(r=r.add(De)),r}static mulDivFloor(e,t,n){if(n.eq(pe))throw new Error("division by 0");return e.mul(t).div(n)}static mulDivCeil(e,t,n){if(n.eq(pe))throw new Error("division by 0");return e.mul(t).add(n.sub(De)).div(n)}static x64ToDecimal(e,t){return new O(e.toString()).div(O.pow(2,64)).toDecimalPlaces(t)}static decimalToX64(e){return new H(e.mul(O.pow(2,64)).floor().toFixed())}static wrappingSubU128(e,t){return e.add(an).sub(t).mod(an)}};function Se(i,e){return ei(i.mul(e),64,256)}function Fs(i,e,t){let n=i.toTwos(t).shln(e);return n.imaskn(t+1),n.fromTwos(t)}function ei(i,e,t){let n=i.toTwos(t).shrn(e);return n.imaskn(t-e+1),n.fromTwos(t-e)}var z=class{static sqrtPriceX64ToPrice(e,t,n){return Y.x64ToDecimal(e).pow(2).mul(O.pow(10,t-n))}static priceToSqrtPriceX64(e,t,n){return Y.decimalToX64(e.mul(O.pow(10,n-t)).sqrt())}static getNextSqrtPriceX64FromInput(e,t,n,o){if(!e.gt(pe))throw new Error("sqrtPriceX64 must greater than 0");if(!t.gt(pe))throw new Error("liquidity must greater than 0");return o?this.getNextSqrtPriceFromTokenAmountARoundingUp(e,t,n,!0):this.getNextSqrtPriceFromTokenAmountBRoundingDown(e,t,n,!0)}static getNextSqrtPriceX64FromOutput(e,t,n,o){if(!e.gt(pe))throw new Error("sqrtPriceX64 must greater than 0");if(!t.gt(pe))throw new Error("liquidity must greater than 0");return o?this.getNextSqrtPriceFromTokenAmountBRoundingDown(e,t,n,!1):this.getNextSqrtPriceFromTokenAmountARoundingUp(e,t,n,!1)}static getNextSqrtPriceFromTokenAmountARoundingUp(e,t,n,o){if(n.eq(pe))return e;let r=t.shln(Vt);if(o){let s=r,a=r.add(n.mul(e));return a.gte(s)?Y.mulDivCeil(s,e,a):Y.mulDivRoundingUp(s,De,s.div(e).add(n))}else{let s=n.mul(e);if(!r.gt(s))throw new Error("getNextSqrtPriceFromTokenAmountARoundingUp,liquidityLeftShift must gt amountMulSqrtPrice");let a=r.sub(s);return Y.mulDivCeil(r,e,a)}}static getNextSqrtPriceFromTokenAmountBRoundingDown(e,t,n,o){let r=n.shln(Vt);if(o)return e.add(r.div(t));{let s=Y.mulDivRoundingUp(r,De,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>Oe)throw new Error("tick must be in MIN_TICK and MAX_TICK");let t=e<0?e*-1:e,n=(t&1)!=0?new H("18445821805675395072"):new H("18446744073709551616");return(t&2)!=0&&(n=Se(n,new H("18444899583751176192"))),(t&4)!=0&&(n=Se(n,new H("18443055278223355904"))),(t&8)!=0&&(n=Se(n,new H("18439367220385607680"))),(t&16)!=0&&(n=Se(n,new H("18431993317065453568"))),(t&32)!=0&&(n=Se(n,new H("18417254355718170624"))),(t&64)!=0&&(n=Se(n,new H("18387811781193609216"))),(t&128)!=0&&(n=Se(n,new H("18329067761203558400"))),(t&256)!=0&&(n=Se(n,new H("18212142134806163456"))),(t&512)!=0&&(n=Se(n,new H("17980523815641700352"))),(t&1024)!=0&&(n=Se(n,new H("17526086738831433728"))),(t&2048)!=0&&(n=Se(n,new H("16651378430235570176"))),(t&4096)!=0&&(n=Se(n,new H("15030750278694412288"))),(t&8192)!=0&&(n=Se(n,new H("12247334978884435968"))),(t&16384)!=0&&(n=Se(n,new H("8131365268886854656"))),(t&32768)!=0&&(n=Se(n,new H("3584323654725218816"))),(t&65536)!=0&&(n=Se(n,new H("696457651848324352"))),(t&131072)!=0&&(n=Se(n,new H("26294789957507116"))),(t&262144)!=0&&(n=Se(n,new H("37481735321082"))),e>0&&(n=Zi.div(n)),n}static getTickFromPrice(e,t,n){return z.getTickFromSqrtPriceX64(z.priceToSqrtPriceX64(e,t,n))}static getTickFromSqrtPriceX64(e){if(e.gt(Ze)||e.lt(Qe))throw new Error("Provided sqrtPrice is not within the supported sqrtPrice range.");let t=e.bitLength()-1,n=new H(t-64),o=Fs(n,32,128),r=new H("8000000000000000","hex"),s=0,a=new H(0),u=t>=64?e.shrn(t-63):e.shln(63-t);for(;r.gt(new H(0))&&s<ji;){u=u.mul(u);let P=u.shrn(127);u=u.shrn(63+P.toNumber()),a=a.add(r.mul(P)),r=r.shrn(1),s+=1}let c=a.shrn(32),p=o.add(c).mul(new H(Ji)),d=ei(p.sub(new H($i)),64,128).toNumber(),m=ei(p.add(new H(eo)),64,128).toNumber();return d==m?d:z.getSqrtPriceX64FromTick(m).lte(e)?m:d}},ht=class{static getTickWithPriceAndTickspacing(e,t,n,o){let s=z.getTickFromSqrtPriceX64(z.priceToSqrtPriceX64(e,n,o))/t;return s<0?s=Math.floor(s):s=Math.ceil(s),s*t}static roundPriceWithTickspacing(e,t,n,o){let r=ht.getTickWithPriceAndTickspacing(e,t,n,o),s=z.getSqrtPriceX64FromTick(r);return z.sqrtPriceX64ToPrice(s,n,o)}},j=class{static addDelta(e,t){return e.add(t)}static getTokenAmountAFromLiquidity(e,t,n,o){if(e.gt(t)&&([e,t]=[t,e]),!e.gt(pe))throw new Error("sqrtPriceX64A must greater than 0");let r=n.ushln(Vt),s=t.sub(e);return o?Y.mulDivRoundingUp(Y.mulDivCeil(r,s,t),De,e):Y.mulDivFloor(r,s,t).div(e)}static getTokenAmountBFromLiquidity(e,t,n,o){if(e.gt(t)&&([e,t]=[t,e]),!e.gt(pe))throw new Error("sqrtPriceX64A must greater than 0");return o?Y.mulDivCeil(n,t.sub(e),Fe):Y.mulDivFloor(n,t.sub(e),Fe)}static getLiquidityFromTokenAmountA(e,t,n,o){e.gt(t)&&([e,t]=[t,e]);let r=n.mul(e).mul(t),s=t.sub(e),a=r.div(s);return o?Y.mulDivRoundingUp(a,De,un):a.shrn(Vt)}static getLiquidityFromTokenAmountB(e,t,n){return e.gt(t)&&([e,t]=[t,e]),Y.mulDivFloor(n,un,t.sub(e))}static getLiquidityFromTokenAmounts(e,t,n,o,r){if(t.gt(n)&&([t,n]=[n,t]),e.lte(t))return j.getLiquidityFromTokenAmountA(t,n,o,!1);if(e.lt(n)){let s=j.getLiquidityFromTokenAmountA(e,n,o,!1),a=j.getLiquidityFromTokenAmountB(t,e,r);return s.lt(a)?s:a}else return j.getLiquidityFromTokenAmountB(t,n,r)}static getAmountsFromLiquidity(e,t,n,o,r){if(t.gt(n)&&([t,n]=[n,t]),e.lte(t))return{amountA:j.getTokenAmountAFromLiquidity(t,n,o,r),amountB:new H(0)};if(e.lt(n)){let s=j.getTokenAmountAFromLiquidity(e,n,o,r),a=j.getTokenAmountBFromLiquidity(t,e,o,r);return{amountA:s,amountB:a}}else return{amountA:new H(0),amountB:j.getTokenAmountBFromLiquidity(t,n,o,r)}}static getAmountsFromLiquidityWithSlippage(e,t,n,o,r,s,a){let{amountA:u,amountB:c}=j.getAmountsFromLiquidity(e,t,n,o,s),l=r?1+a:1-a,p=new H(new O(u.toString()).mul(l).toFixed(0)),d=new H(new O(c.toString()).mul(l).toFixed(0));return{amountSlippageA:p,amountSlippageB:d}}static getAmountsOutFromLiquidity({poolInfo:e,tickLower:t,tickUpper:n,liquidity:o,slippage:r,add:s,epochInfo:a,amountAddFee:u}){var B,h,R,E;let c=z.priceToSqrtPriceX64(new O(e.price),e.mintA.decimals,e.mintB.decimals),l=z.getSqrtPriceX64FromTick(t),p=z.getSqrtPriceX64FromTick(n),d=s?1+r:1-r,m=j.getAmountsFromLiquidity(c,l,p,o,s),[P,f]=[ge(m.amountA,(B=e.mintA.extensions)==null?void 0:B.feeConfig,a,u),ge(m.amountB,(h=e.mintB.extensions)==null?void 0:h.feeConfig,a,u)],[b,g]=[ge(new H(new O(m.amountA.toString()).mul(d).toFixed(0)),(R=e.mintA.extensions)==null?void 0:R.feeConfig,a,u),ge(new H(new O(m.amountB.toString()).mul(d).toFixed(0)),(E=e.mintB.extensions)==null?void 0:E.feeConfig,a,u)];return{liquidity:o,amountA:P,amountB:f,amountSlippageA:b,amountSlippageB:g,expirationTime:at(P.expirationTime,f.expirationTime)}}},Tt=class{static swapCompute(e,t,n,o,r,s,a,u,c,l,p,d,m,P,f=!1){if(d.eq(pe))throw new Error("amountSpecified must not be 0");if(P||(P=s?Qe.add(De):Ze.sub(De)),s){if(P.lt(Qe))throw new Error("sqrtPriceX64 must greater than MIN_SQRT_PRICE_X64");if(P.gte(p))throw new Error("sqrtPriceX64 must smaller than current")}else{if(P.gt(Ze))throw new Error("sqrtPriceX64 must smaller than MAX_SQRT_PRICE_X64");if(P.lte(p))throw new Error("sqrtPriceX64 must greater than current")}let b=d.gt(pe),g={amountSpecifiedRemaining:d,amountCalculated:pe,sqrtPriceX64:p,tick:c>m?Math.min(m+Z.tickCount(l)-1,c):m,accounts:[],liquidity:u,feeAmount:new H(0)},B=m,h=n[m],R=0,E=!s&&h.startTickIndex===g.tick;for(;!g.amountSpecifiedRemaining.eq(pe)&&!g.sqrtPriceX64.eq(P);){R>10;let I={};I.sqrtPriceStartX64=g.sqrtPriceX64;let M=v.nextInitTick(h,g.tick,l,s,E),F=M||null,q=null;if(!(F!=null&&F.liquidityGross.gtn(0))){let W=fe.nextInitializedTickArrayStartIndex({tickCurrent:g.tick,tickSpacing:l,tickArrayBitmap:o,exBitmapInfo:r},B,s);if(!W.isExist){if(f)return{allTrade:!1,amountSpecifiedRemaining:g.amountSpecifiedRemaining,amountCalculated:g.amountCalculated,feeAmount:g.feeAmount,sqrtPriceX64:g.sqrtPriceX64,liquidity:g.liquidity,tickCurrent:g.tick,accounts:g.accounts};throw Error("swapCompute LiquidityInsufficient")}B=W.nextStartIndex;let{publicKey:ye}=ee(e,t,B);q=ye,h=n[B];try{F=v.firstInitializedTick(h,s)}catch{throw Error("not found next tick info")}}I.tickNext=F.tick,I.initialized=F.liquidityGross.gtn(0),m!==B&&q&&(g.accounts.push(q),m=B),I.tickNext<Re?I.tickNext=Re:I.tickNext>Oe&&(I.tickNext=Oe),I.sqrtPriceNextX64=z.getSqrtPriceX64FromTick(I.tickNext);let C;if(s&&I.sqrtPriceNextX64.lt(P)||!s&&I.sqrtPriceNextX64.gt(P)?C=P:C=I.sqrtPriceNextX64,[g.sqrtPriceX64,I.amountIn,I.amountOut,I.feeAmount]=Tt.swapStepCompute(g.sqrtPriceX64,C,g.liquidity,g.amountSpecifiedRemaining,a,s),g.feeAmount=g.feeAmount.add(I.feeAmount),b?(g.amountSpecifiedRemaining=g.amountSpecifiedRemaining.sub(I.amountIn.add(I.feeAmount)),g.amountCalculated=g.amountCalculated.sub(I.amountOut)):(g.amountSpecifiedRemaining=g.amountSpecifiedRemaining.add(I.amountOut),g.amountCalculated=g.amountCalculated.add(I.amountIn.add(I.feeAmount))),g.sqrtPriceX64.eq(I.sqrtPriceNextX64)){if(I.initialized){let W=F.liquidityNet;s&&(W=W.mul(ut)),g.liquidity=j.addDelta(g.liquidity,W)}E=I.tickNext!=g.tick&&!s&&h.startTickIndex===I.tickNext,g.tick=s?I.tickNext-1:I.tickNext}else if(g.sqrtPriceX64!=I.sqrtPriceStartX64){let W=z.getTickFromSqrtPriceX64(g.sqrtPriceX64);E=W!=g.tick&&!s&&h.startTickIndex===W,g.tick=W}++R}try{let{nextStartIndex:I,isExist:M}=Z.nextInitializedTickArray(g.tick,l,s,o,r);M&&m!==I&&(g.accounts.push(ee(e,t,I).publicKey),m=I)}catch{}return{allTrade:!0,amountSpecifiedRemaining:pe,amountCalculated:g.amountCalculated,feeAmount:g.feeAmount,sqrtPriceX64:g.sqrtPriceX64,liquidity:g.liquidity,tickCurrent:g.tick,accounts:g.accounts}}static swapStepCompute(e,t,n,o,r,s){let a={sqrtPriceX64Next:new H(0),amountIn:new H(0),amountOut:new H(0),feeAmount:new H(0)},u=o.gte(pe);if(u){let l=Y.mulDivFloor(o,mn.sub(new H(r.toString())),mn);a.amountIn=s?j.getTokenAmountAFromLiquidity(t,e,n,!0):j.getTokenAmountBFromLiquidity(e,t,n,!0),l.gte(a.amountIn)?a.sqrtPriceX64Next=t:a.sqrtPriceX64Next=z.getNextSqrtPriceX64FromInput(e,n,l,s)}else a.amountOut=s?j.getTokenAmountBFromLiquidity(t,e,n,!1):j.getTokenAmountAFromLiquidity(e,t,n,!1),o.mul(ut).gte(a.amountOut)?a.sqrtPriceX64Next=t:a.sqrtPriceX64Next=z.getNextSqrtPriceX64FromOutput(e,n,o.mul(ut),s);let c=t.eq(a.sqrtPriceX64Next);return s?(c&&u||(a.amountIn=j.getTokenAmountAFromLiquidity(a.sqrtPriceX64Next,e,n,!0)),c&&!u||(a.amountOut=j.getTokenAmountBFromLiquidity(a.sqrtPriceX64Next,e,n,!1))):(a.amountIn=c&&u?a.amountIn:j.getTokenAmountBFromLiquidity(e,a.sqrtPriceX64Next,n,!0),a.amountOut=c&&!u?a.amountOut:j.getTokenAmountAFromLiquidity(e,a.sqrtPriceX64Next,n,!1)),!u&&a.amountOut.gt(o.mul(ut))&&(a.amountOut=o.mul(ut)),u&&!a.sqrtPriceX64Next.eq(t)?a.feeAmount=o.sub(a.amountIn):a.feeAmount=Y.mulDivCeil(a.amountIn,new H(r),mn.sub(new H(r))),[a.sqrtPriceX64Next,a.amountIn,a.amountOut,a.feeAmount]}};var he=60,wt=512,v=class{static getTickArrayAddressByTick(e,t,n,o){let r=v.getTickArrayStartIndexByTick(n,o),{publicKey:s}=ee(e,t,r);return s}static getTickOffsetInArray(e,t){if(e%t!=0)throw new Error("tickIndex % tickSpacing not equal 0");let n=v.getTickArrayStartIndexByTick(e,t),o=Math.floor((e-n)/t);if(o<0||o>=he)throw new Error("tick offset in array overflow");return o}static getTickArrayBitIndex(e,t){let n=Z.tickCount(t),o=e/n;return e<0&&e%n!=0?o=Math.ceil(o)-1:o=Math.floor(o),o}static getTickArrayStartIndexByTick(e,t){return this.getTickArrayBitIndex(e,t)*Z.tickCount(t)}static getTickArrayOffsetInBitmapByTick(e,t){let n=t*he,o=Math.floor(e/n)+512;return Math.abs(o)}static checkTickArrayIsInitialized(e,t,n){let o=n*he,r=Math.floor(t/o)+512,s=Math.abs(r);return{isInitialized:e.testn(s),startIndex:(s-512)*o}}static getNextTickArrayStartIndex(e,t,n){return n?e-t*he:e+t*he}static mergeTickArrayBitmap(e){let t=new vs(0);for(let n=0;n<e.length;n++)t=t.add(e[n].shln(64*n));return t}static getInitializedTickArrayInRange(e,t,n,o,r){let s=Math.floor(o/(n*he));return[...v.searchLowBitFromStart(e,t,s-1,r,n),...v.searchHightBitFromStart(e,t,s,r,n)]}static getAllInitializedTickArrayStartIndex(e,t,n){return v.searchHightBitFromStart(e,t,-7680,wt,n)}static getAllInitializedTickArrayInfo(e,t,n,o,r){let s=[],a=v.getAllInitializedTickArrayStartIndex(n,o,r);for(let u of a){let{publicKey:c}=ee(e,t,u);s.push({tickArrayStartIndex:u,tickArrayAddress:c})}return s}static getAllInitializedTickInTickArray(e){return e.ticks.filter(t=>t.liquidityGross.gtn(0))}static searchLowBitFromStart(e,t,n,o,r){let s=[...[...t.negativeTickArrayBitmap].reverse(),e.slice(0,8),e.slice(8,16),...t.positiveTickArrayBitmap].map(c=>v.mergeTickArrayBitmap(c)),a=[];for(;n>=-7680;){let c=Math.floor((n+7680)/512),l=(n+7680)%512;if(s[c].testn(l)&&a.push(n),n--,a.length===o)break}let u=Z.tickCount(r);return a.map(c=>c*u)}static searchHightBitFromStart(e,t,n,o,r){let s=[...[...t.negativeTickArrayBitmap].reverse(),e.slice(0,8),e.slice(8,16),...t.positiveTickArrayBitmap].map(c=>v.mergeTickArrayBitmap(c)),a=[];for(;n<7680;){let c=Math.floor((n+7680)/512),l=(n+7680)%512;if(s[c].testn(l)&&a.push(n),n++,a.length===o)break}let u=Z.tickCount(r);return a.map(c=>c*u)}static checkIsOutOfBoundary(e){return e<Re||e>Oe}static nextInitTick(e,t,n,o,r){if(Z.getArrayStartIndex(t,n)!=e.startTickIndex)return null;let a=Math.floor((t-e.startTickIndex)/n);if(o)for(;a>=0;){if(e.ticks[a].liquidityGross.gtn(0))return e.ticks[a];a=a-1}else for(r||(a=a+1);a<he;){if(e.ticks[a].liquidityGross.gtn(0))return e.ticks[a];a=a+1}return null}static firstInitializedTick(e,t){if(t){let n=he-1;for(;n>=0;){if(e.ticks[n].liquidityGross.gtn(0))return e.ticks[n];n=n-1}}else{let n=0;for(;n<he;){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 o=z.getSqrtPriceX64FromTick(t),r=z.sqrtPriceX64ToPrice(o,e.mintA.decimals,e.mintB.decimals);return n?{tick:t,price:r,tickSqrtPriceX64:o}:{tick:t,price:new O(1).div(r),tickSqrtPriceX64:o}}static _getPriceAndTickLegacy({poolInfo:e,price:t,baseIn:n}){let o=n?t:new O(1).div(t),r=ht.getTickWithPriceAndTickspacing(o,e.ammConfig.tickSpacing,e.mintA.decimals,e.mintB.decimals),s=z.getSqrtPriceX64FromTick(r),a=z.sqrtPriceX64ToPrice(s,e.mintA.decimals,e.mintB.decimals);return n?{tick:r,price:a}:{tick:r,price:new O(1).div(a)}}static getTickPrice({poolInfo:e,tick:t,baseIn:n}){let o=z.getSqrtPriceX64FromTick(t),r=z.sqrtPriceX64ToPrice(o,e.mintA.decimals,e.mintB.decimals);return n?{tick:t,price:r,tickSqrtPriceX64:o}:{tick:t,price:new O(1).div(r),tickSqrtPriceX64:o}}static getPriceAndTick({poolInfo:e,price:t,baseIn:n}){let o=n?t:new O(1).div(t),r=ht.getTickWithPriceAndTickspacing(o,e.config.tickSpacing,e.mintA.decimals,e.mintB.decimals),s=z.getSqrtPriceX64FromTick(r),a=z.sqrtPriceX64ToPrice(s,e.mintA.decimals,e.mintB.decimals);return n?{tick:r,price:a}:{tick:r,price:new O(1).div(a)}}};var Es=N([Pe(8),L("bump"),$e("index"),T(""),Ve("protocolFeeRate"),Ve("tradeFeeRate"),$e("tickSpacing"),U(y(),8,"")]),Ws=N([Ve("blockTimestamp"),Yi("tickCumulative"),U(y(),4)]),po=N([Pe(8),Te("initialized"),y("recentEpoch"),$e("observationIndex"),T("poolId"),U(Ws,100,"observations"),U(y(),4)]),Vs=N([L("rewardState"),y("openTime"),y("endTime"),y("lastUpdateTime"),G("emissionsPerSecondX64"),y("rewardTotalEmissioned"),y("rewardClaimed"),T("tokenMint"),T("tokenVault"),T("creator"),G("rewardGrowthGlobalX64")]),fn=N([Pe(8),L("bump"),T("ammConfig"),T("creator"),T("mintA"),T("mintB"),T("vaultA"),T("vaultB"),T("observationId"),L("mintDecimalsA"),L("mintDecimalsB"),$e("tickSpacing"),G("liquidity"),G("sqrtPriceX64"),ce("tickCurrent"),Ve(),G("feeGrowthGlobalX64A"),G("feeGrowthGlobalX64B"),y("protocolFeesTokenA"),y("protocolFeesTokenB"),G("swapInAmountTokenA"),G("swapOutAmountTokenB"),G("swapInAmountTokenB"),G("swapOutAmountTokenA"),L("status"),U(L(),7,""),U(Vs,3,"rewardInfos"),U(y(),16,"tickArrayBitmap"),y("totalFeesTokenA"),y("totalFeesClaimedTokenA"),y("totalFeesTokenB"),y("totalFeesClaimedTokenB"),y("fundFeesTokenA"),y("fundFeesTokenB"),y("startTime"),U(y(),15*4-3,"padding")]),Ds=N([G("growthInsideLastX64"),y("rewardAmountOwed")]),$n=N([Pe(8),L("bump"),T("nftMint"),T("poolId"),ce("tickLower"),ce("tickUpper"),G("liquidity"),G("feeGrowthInsideLastX64A"),G("feeGrowthInsideLastX64B"),y("tokenFeesOwedA"),y("tokenFeesOwedB"),U(Ds,3,"rewardInfos"),U(y(),8,"")]),Wd=N([Pe(8),L("bump"),T("poolId"),ce("tickLowerIndex"),ce("tickUpperIndex"),G("liquidity"),G("feeGrowthInsideLastX64A"),G("feeGrowthInsideLastX64B"),y("tokenFeesOwedA"),y("tokenFeesOwedB"),U(G(),3,"rewardGrowthInside"),U(y(),8,"")]),_s=N([ce("tick"),Hi("liquidityNet"),G("liquidityGross"),G("feeGrowthOutsideX64A"),G("feeGrowthOutsideX64B"),U(G(),3,"rewardGrowthsOutsideX64"),U(Ve(),13,"")]),qt=N([Pe(8),T("poolId"),ce("startTickIndex"),U(_s,he,"ticks"),L("initializedTickCount"),U(L(),115,"")]),qs=N([Pe(329),U(T(),100,"whitelistMints")]),mo=N([Pe(8),T("poolId"),U(U(y(),8),Jn,"positiveTickArrayBitmap"),U(U(y(),8),Jn,"negativeTickArrayBitmap")]),Vd=N([y(),L("bump"),T("owner"),T("poolId"),T("positionId"),T("nftAccount"),U(y(),8)]),Gs=N([Pe(8),L("bump"),T("lockOwner"),T("poolId"),T("positionId"),T("nftAccount"),T("lockNftMint"),y("recentEpoch"),U(y(),8)]);po.span;var fo=ae("Raydium_Clmm"),qe={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]},bo=[188,37,179,131,82,150,84,73],yo=[16,72,250,198,14,162,212,19],Pt=class{static createPoolInstruction(e,t,n,o,r,s,a,u,c,l,p,d,m,P){let f=N([G("sqrtPriceX64"),y("zero")]),b=[{pubkey:n,isSigner:!0,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:mt.programId,isSigner:!1,isWritable:!1},{pubkey:ze,isSigner:!1,isWritable:!1},...(P==null?void 0:P.map(h=>({pubkey:h,isSigner:!1,isWritable:!1})))||[]],g=Buffer.alloc(f.span);f.encode({sqrtPriceX64:m,zero:pe},g);let B=Buffer.from([...qe.createPool,...g]);return new Ce({keys:b,programId:e,data:B})}static async createPoolInstructions(e){let{programId:t,owner:n,mintA:o,mintB:r,ammConfigId:s,initialPriceX64:a,extendMintAccount:u}=e,[c,l]=[new K(o.address),new K(r.address)],{publicKey:p}=so(t,s,c,l),{publicKey:d}=uo(t,p),{publicKey:m}=Qn(t,p,c),{publicKey:P}=Qn(t,p,l),f=Ae(t,p).publicKey,b=[this.createPoolInstruction(t,p,n,s,d,c,m,new K(o.programId||oe),l,P,new K(r.programId||oe),f,a,u)];return{signers:[],instructions:b,instructionTypes:[ne.CreateAccount,ne.ClmmCreatePool],address:{poolId:p,observationId:d,exBitmapAccount:f,mintAVault:m,mintBVault:P},lookupTableAddress:[]}}static openPositionFromLiquidityInstruction(e,t,n,o,r,s,a,u,c,l,p,d,m,P,f,b,g,B,h,R,E,I,M,F,q,C){let W=N([ce("tickLowerIndex"),ce("tickUpperIndex"),ce("tickArrayLowerStartIndex"),ce("tickArrayUpperStartIndex"),G("liquidity"),y("amountMaxA"),y("amountMaxB"),Te("withMetadata"),L("optionBaseFlag"),Te("baseFlag")]),ye=[...C?[{pubkey:C,isSigner:!1,isWritable:!0}]:[]],se=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:P,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:ze,isSigner:!1,isWritable:!1},{pubkey:mt.programId,isSigner:!1,isWritable:!1},{pubkey:oe,isSigner:!1,isWritable:!1},{pubkey:Ut,isSigner:!1,isWritable:!1},{pubkey:ot,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},...ye],Ie=Buffer.alloc(W.span);W.encode({tickLowerIndex:B,tickUpperIndex:h,tickArrayLowerStartIndex:R,tickArrayUpperStartIndex:E,liquidity:I,amountMaxA:M,amountMaxB:F,withMetadata:q==="create",baseFlag:!1,optionBaseFlag:0},Ie);let de=Buffer.from([...qe.openPosition,...Ie]);return new Ce({keys:se,programId:e,data:de})}static openPositionFromLiquidityInstruction22(e,t,n,o,r,s,a,u,c,l,p,d,m,P,f,b,g,B,h,R,E,I,M,F,q){let C=N([ce("tickLowerIndex"),ce("tickUpperIndex"),ce("tickArrayLowerStartIndex"),ce("tickArrayUpperStartIndex"),G("liquidity"),y("amountMaxA"),y("amountMaxB"),Te("withMetadata"),L("optionBaseFlag"),Te("baseFlag")]),W=[...q?[{pubkey:q,isSigner:!1,isWritable:!0}]:[]],ye=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:P,isSigner:!1,isWritable:!0},{pubkey:ze,isSigner:!1,isWritable:!1},{pubkey:mt.programId,isSigner:!1,isWritable:!1},{pubkey:oe,isSigner:!1,isWritable:!1},{pubkey:Ut,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},...W],se=Buffer.alloc(C.span);C.encode({tickLowerIndex:g,tickUpperIndex:B,tickArrayLowerStartIndex:h,tickArrayUpperStartIndex:R,liquidity:E,amountMaxA:I,amountMaxB:M,withMetadata:F==="create",baseFlag:!1,optionBaseFlag:0},se);let Ie=Buffer.from([...qe.openPositionWithTokenEx,...se]);return new Ce({keys:ye,programId:e,data:Ie})}static async openPositionInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,tickLower:o,tickUpper:r,liquidity:s,amountMaxA:a,amountMaxB:u,withMetadata:c,getEphemeralSigners:l,nft2022:p}){let d=[],[m,P]=[new K(e.programId),new K(e.id)],f;if(l)f=new K((await l(1))[0]);else{let q=bn.generate();d.push(q),f=q.publicKey}let b=v.getTickArrayStartIndexByTick(o,e.config.tickSpacing),g=v.getTickArrayStartIndexByTick(r,e.config.tickSpacing),{publicKey:B}=ee(m,P,b),{publicKey:h}=ee(m,P,g),{publicKey:R}=p?ie(n.wallet,f,be):ie(n.wallet,f,oe),{publicKey:E}=kt(f),{publicKey:I}=ve(m,f),{publicKey:M}=ct(m,P,o,r),F=p?this.openPositionFromLiquidityInstruction22(m,n.feePayer,P,n.wallet,f,R,M,B,h,I,n.tokenAccountA,n.tokenAccountB,new K(t.vault.A),new K(t.vault.B),new K(e.mintA.address),new K(e.mintB.address),o,r,b,g,s,a,u,c,fe.isOverflowDefaultTickarrayBitmap(e.config.tickSpacing,[b,g])?Ae(m,P).publicKey:void 0):this.openPositionFromLiquidityInstruction(m,n.feePayer,P,n.wallet,f,R,E,M,B,h,I,n.tokenAccountA,n.tokenAccountB,new K(t.vault.A),new K(t.vault.B),new K(e.mintA.address),new K(e.mintB.address),o,r,b,g,s,a,u,c,fe.isOverflowDefaultTickarrayBitmap(e.config.tickSpacing,[b,g])?Ae(m,P).publicKey:void 0);return{signers:d,instructions:[F],instructionTypes:[ne.ClmmOpenPosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[],address:{nftMint:f,tickArrayLower:B,tickArrayUpper:h,positionNftAccount:R,metadataAccount:E,personalPosition:I,protocolPosition:M}}}static async openPositionFromBaseInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,tickLower:o,tickUpper:r,base:s,baseAmount:a,otherAmountMax:u,withMetadata:c,getEphemeralSigners:l,nft2022:p}){let d=[],[m,P]=[new K(e.programId),new K(e.id)],f;if(l)f=new K((await l(1))[0]);else{let q=bn.generate();d.push(q),f=q.publicKey}let b=v.getTickArrayStartIndexByTick(o,e.config.tickSpacing),g=v.getTickArrayStartIndexByTick(r,e.config.tickSpacing),{publicKey:B}=ee(m,P,b),{publicKey:h}=ee(m,P,g),{publicKey:R}=p?ie(n.wallet,f,be):ie(n.wallet,f,oe),{publicKey:E}=kt(f),{publicKey:I}=ve(m,f),{publicKey:M}=ct(m,P,o,r),F=p?this.openPositionFromBaseInstruction22(m,n.feePayer,P,n.wallet,f,R,M,B,h,I,n.tokenAccountA,n.tokenAccountB,new K(t.vault.A),new K(t.vault.B),new K(e.mintA.address),new K(e.mintB.address),o,r,b,g,c,s,a,u,fe.isOverflowDefaultTickarrayBitmap(e.config.tickSpacing,[b,g])?Ae(m,P).publicKey:void 0):this.openPositionFromBaseInstruction(m,n.feePayer,P,n.wallet,f,R,E,M,B,h,I,n.tokenAccountA,n.tokenAccountB,new K(t.vault.A),new K(t.vault.B),new K(e.mintA.address),new K(e.mintB.address),o,r,b,g,c,s,a,u,fe.isOverflowDefaultTickarrayBitmap(e.config.tickSpacing,[b,g])?Ae(m,P).publicKey:void 0);return{address:{nftMint:f,tickArrayLower:B,tickArrayUpper:h,positionNftAccount:R,metadataAccount:E,personalPosition:I,protocolPosition:M},instructions:[F],signers:d,instructionTypes:[ne.ClmmOpenPosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static openPositionFromBaseInstruction(e,t,n,o,r,s,a,u,c,l,p,d,m,P,f,b,g,B,h,R,E,I,M,F,q,C){let W=N([ce("tickLowerIndex"),ce("tickUpperIndex"),ce("tickArrayLowerStartIndex"),ce("tickArrayUpperStartIndex"),G("liquidity"),y("amountMaxA"),y("amountMaxB"),Te("withMetadata"),L("optionBaseFlag"),Te("baseFlag")]),ye=[...C?[{pubkey:C,isSigner:!1,isWritable:!0}]:[]],se=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:P,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:ze,isSigner:!1,isWritable:!1},{pubkey:mt.programId,isSigner:!1,isWritable:!1},{pubkey:oe,isSigner:!1,isWritable:!1},{pubkey:Ut,isSigner:!1,isWritable:!1},{pubkey:ot,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},...ye],Ie=Buffer.alloc(W.span);W.encode({tickLowerIndex:B,tickUpperIndex:h,tickArrayLowerStartIndex:R,tickArrayUpperStartIndex:E,liquidity:new ti(0),amountMaxA:M==="MintA"?F:q,amountMaxB:M==="MintA"?q:F,withMetadata:I==="create",baseFlag:M==="MintA",optionBaseFlag:1},Ie);let de=Buffer.from([...qe.openPosition,...Ie]);return new Ce({keys:se,programId:e,data:de})}static openPositionFromBaseInstruction22(e,t,n,o,r,s,a,u,c,l,p,d,m,P,f,b,g,B,h,R,E,I,M,F,q){let C=N([ce("tickLowerIndex"),ce("tickUpperIndex"),ce("tickArrayLowerStartIndex"),ce("tickArrayUpperStartIndex"),G("liquidity"),y("amountMaxA"),y("amountMaxB"),Te("withMetadata"),L("optionBaseFlag"),Te("baseFlag")]),W=[...q?[{pubkey:q,isSigner:!1,isWritable:!0}]:[]],ye=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:P,isSigner:!1,isWritable:!0},{pubkey:ze,isSigner:!1,isWritable:!1},{pubkey:mt.programId,isSigner:!1,isWritable:!1},{pubkey:oe,isSigner:!1,isWritable:!1},{pubkey:Ut,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},...W],se=Buffer.alloc(C.span);C.encode({tickLowerIndex:g,tickUpperIndex:B,tickArrayLowerStartIndex:h,tickArrayUpperStartIndex:R,liquidity:new ti(0),amountMaxA:I==="MintA"?M:F,amountMaxB:I==="MintA"?F:M,withMetadata:E==="create",baseFlag:I==="MintA",optionBaseFlag:1},se);let Ie=Buffer.from([...qe.openPositionWithTokenEx,...se]);return new Ce({keys:ye,programId:e,data:Ie})}static async openPositionFromLiquidityInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,tickLower:o,tickUpper:r,liquidity:s,amountMaxA:a,amountMaxB:u,withMetadata:c,getEphemeralSigners:l,nft2022:p}){let d,m=[];if(l)d=new K((await l(1))[0]);else{let q=bn.generate();m.push(q),d=q.publicKey}let[P,f]=[new K(e.programId),new K(e.id)],b=v.getTickArrayStartIndexByTick(o,e.config.tickSpacing),g=v.getTickArrayStartIndexByTick(r,e.config.tickSpacing),{publicKey:B}=ee(P,f,b),{publicKey:h}=ee(P,f,g),{publicKey:R}=p?ie(n.wallet,d,be):ie(n.wallet,d,oe),{publicKey:E}=kt(d),{publicKey:I}=ve(P,d),{publicKey:M}=ct(P,f,o,r),F=p?this.openPositionFromLiquidityInstruction22(P,n.wallet,f,n.wallet,d,R,M,B,h,I,n.tokenAccountA,n.tokenAccountB,new K(t.vault.A),new K(t.vault.B),new K(t.mintA.address),new K(t.mintB.address),o,r,b,g,s,a,u,c,fe.isOverflowDefaultTickarrayBitmap(e.config.tickSpacing,[b,g])?Ae(P,f).publicKey:void 0):this.openPositionFromLiquidityInstruction(P,n.wallet,f,n.wallet,d,R,E,M,B,h,I,n.tokenAccountA,n.tokenAccountB,new K(t.vault.A),new K(t.vault.B),new K(t.mintA.address),new K(t.mintB.address),o,r,b,g,s,a,u,c,fe.isOverflowDefaultTickarrayBitmap(e.config.tickSpacing,[b,g])?Ae(P,f).publicKey:void 0);return{address:{nftMint:d,tickArrayLower:B,tickArrayUpper:h,positionNftAccount:R,metadataAccount:E,personalPosition:I,protocolPosition:M},instructions:[F],signers:m,instructionTypes:[ne.ClmmOpenPosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static closePositionInstruction(e,t,n,o,r,s){let a=N([]),u=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:mt.programId,isSigner:!1,isWritable:!1},{pubkey:s?be:oe,isSigner:!1,isWritable:!1}],c=Buffer.alloc(a.span);a.encode({},c);let l=Buffer.from([...qe.closePosition,...c]);return new Ce({keys:u,programId:e,data:l})}static closePositionInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,ownerPosition:o,nft2022:r}){let s=new K(e.programId),a=r?ie(n.wallet,o.nftMint,be).publicKey:ie(n.wallet,o.nftMint,oe).publicKey,{publicKey:u}=ve(s,o.nftMint),c=[];return c.push(this.closePositionInstruction(s,n.wallet,o.nftMint,a,u,r)),{address:{positionNftAccount:a,personalPosition:u},signers:[],instructions:c,instructionTypes:[ne.ClmmClosePosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static increasePositionFromLiquidityInstruction(e,t,n,o,r,s,a,u,c,l,p,d,m,P,f,b,g,B){let h=N([G("liquidity"),y("amountMaxA"),y("amountMaxB"),L("optionBaseFlag"),Te("baseFlag")]),R=[...B?[{pubkey:B,isSigner:!1,isWritable:!0}]:[]],E=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:oe,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:P,isSigner:!1,isWritable:!1},...R],I=Buffer.alloc(h.span);h.encode({liquidity:f,amountMaxA:b,amountMaxB:g,optionBaseFlag:0,baseFlag:!1},I);let M=Buffer.from([...qe.increaseLiquidity,...I]);return new Ce({keys:E,programId:e,data:M})}static increasePositionFromLiquidityInstructions({poolInfo:e,poolKeys:t,ownerPosition:n,ownerInfo:o,liquidity:r,amountMaxA:s,amountMaxB:a,nft2022:u}){let[c,l]=[new K(e.programId),new K(e.id)],p=v.getTickArrayStartIndexByTick(n.tickLower,e.config.tickSpacing),d=v.getTickArrayStartIndexByTick(n.tickUpper,e.config.tickSpacing),{publicKey:m}=ee(c,l,p),{publicKey:P}=ee(c,l,d),{publicKey:f}=u?ie(o.wallet,n.nftMint,be):ie(o.wallet,n.nftMint,oe),{publicKey:b}=ve(c,n.nftMint),{publicKey:g}=ct(c,l,n.tickLower,n.tickUpper),B=this.increasePositionFromLiquidityInstruction(c,o.wallet,f,b,l,g,m,P,o.tokenAccountA,o.tokenAccountB,new K(t.vault.A),new K(t.vault.B),new K(e.mintA.address),new K(e.mintB.address),r,s,a,fe.isOverflowDefaultTickarrayBitmap(e.config.tickSpacing,[p,d])?Ae(c,l).publicKey:void 0);return{address:{tickArrayLower:m,tickArrayUpper:P,positionNftAccount:f,personalPosition:b,protocolPosition:g},signers:[],instructions:[B],instructionTypes:[ne.ClmmIncreasePosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static increasePositionFromBaseInstructions({poolInfo:e,poolKeys:t,ownerPosition:n,ownerInfo:o,base:r,baseAmount:s,otherAmountMax:a,nft2022:u}){let[c,l]=[new K(e.programId),new K(e.id)],p=v.getTickArrayStartIndexByTick(n.tickLower,e.config.tickSpacing),d=v.getTickArrayStartIndexByTick(n.tickUpper,e.config.tickSpacing),{publicKey:m}=ee(c,l,p),{publicKey:P}=ee(c,l,d),{publicKey:f}=u?ie(o.wallet,n.nftMint,be):ie(o.wallet,n.nftMint,oe),{publicKey:b}=ve(c,n.nftMint),{publicKey:g}=ct(c,l,n.tickLower,n.tickUpper);return{address:{tickArrayLower:m,tickArrayUpper:P,positionNftAccount:f,personalPosition:b,protocolPosition:g},instructions:[this.increasePositionFromBaseInstruction(c,o.wallet,f,b,l,g,m,P,o.tokenAccountA,o.tokenAccountB,new K(t.vault.A),new K(t.vault.B),new K(e.mintA.address),new K(e.mintB.address),r,s,a,fe.isOverflowDefaultTickarrayBitmap(e.config.tickSpacing,[p,d])?Ae(c,l).publicKey:void 0)],signers:[],instructionTypes:[ne.ClmmIncreasePosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static increasePositionFromBaseInstruction(e,t,n,o,r,s,a,u,c,l,p,d,m,P,f,b,g,B){let h=N([G("liquidity"),y("amountMaxA"),y("amountMaxB"),L("optionBaseFlag"),Te("baseFlag")]),R=[...B?[{pubkey:B,isSigner:!1,isWritable:!0}]:[]],E=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:oe,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:P,isSigner:!1,isWritable:!1},...R],I=Buffer.alloc(h.span);h.encode({liquidity:new ti(0),amountMaxA:f==="MintA"?b:g,amountMaxB:f==="MintA"?g:b,baseFlag:f==="MintA",optionBaseFlag:1},I);let M=Buffer.from([...qe.increaseLiquidity,...I]);return new Ce({keys:E,programId:e,data:M})}static decreaseLiquidityInstruction(e,t,n,o,r,s,a,u,c,l,p,d,m,P,f,b,g,B,h){let R=N([G("liquidity"),y("amountMinA"),y("amountMinB")]),E=[...h?[{pubkey:h,isSigner:!1,isWritable:!0}]:[],...f.map(q=>[{pubkey:q.poolRewardVault,isSigner:!1,isWritable:!0},{pubkey:q.ownerRewardVault,isSigner:!1,isWritable:!0},{pubkey:q.rewardMint,isSigner:!1,isWritable:!1}]).flat()],I=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:oe,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:on,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:P,isSigner:!1,isWritable:!1},...E],M=Buffer.alloc(R.span);R.encode({liquidity:b,amountMinA:g,amountMinB:B},M);let F=Buffer.from([...qe.decreaseLiquidity,...M]);return new Ce({keys:I,programId:e,data:F})}static decreaseLiquidityInstructions({poolInfo:e,poolKeys:t,ownerPosition:n,ownerInfo:o,liquidity:r,amountMinA:s,amountMinB:a,programId:u,nft2022:c}){let[l,p]=[new K(e.programId),new K(e.id)],d=v.getTickArrayStartIndexByTick(n.tickLower,e.config.tickSpacing),m=v.getTickArrayStartIndexByTick(n.tickUpper,e.config.tickSpacing),{publicKey:P}=ee(l,p,d),{publicKey:f}=ee(l,p,m),{publicKey:b}=c?ie(o.wallet,n.nftMint,be):ie(o.wallet,n.nftMint,u),{publicKey:g}=ve(l,n.nftMint),{publicKey:B}=ct(l,p,n.tickLower,n.tickUpper),h=[];for(let I=0;I<e.rewardDefaultInfos.length;I++)h.push({poolRewardVault:new K(t.rewardInfos[I].vault),ownerRewardVault:o.rewardAccounts[I],rewardMint:new K(e.rewardDefaultInfos[I].mint.address)});let R=[],E=this.decreaseLiquidityInstruction(l,o.wallet,b,g,p,B,P,f,o.tokenAccountA,o.tokenAccountB,new K(t.vault.A),new K(t.vault.B),new K(e.mintA.address),new K(e.mintB.address),h,r,s,a,fe.isOverflowDefaultTickarrayBitmap(e.config.tickSpacing,[d,m])?Ae(l,p).publicKey:void 0);return R.push(E),{address:{tickArrayLower:P,tickArrayUpper:f,positionNftAccount:b,personalPosition:g,protocolPosition:B},signers:[],instructions:R,instructionTypes:[ne.ClmmDecreasePosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static swapInstruction(e,t,n,o,r,s,a,u,c,l,p,d,m,P,f,b,g){let B=N([y("amount"),y("otherAmountThreshold"),G("sqrtPriceLimitX64"),Te("isBaseInput")]),h=[...g?[{pubkey:g,isSigner:!1,isWritable:!0}]:[],...p.map(M=>({pubkey:M,isSigner:!1,isWritable:!0}))],R=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:oe,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:on,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},...h],E=Buffer.alloc(B.span);B.encode({amount:m,otherAmountThreshold:P,sqrtPriceLimitX64:f,isBaseInput:b},E);let I=Buffer.from([...qe.swap,...E]);return new Ce({keys:R,programId:e,data:I})}static makeSwapBaseInInstructions({poolInfo:e,poolKeys:t,observationId:n,ownerInfo:o,inputMint:r,amountIn:s,amountOutMin:a,sqrtPriceLimitX64:u,remainingAccounts:c}){let[l,p]=[new K(e.programId),new K(e.id)],[d,m]=[new K(t.vault.A),new K(t.vault.B)],[P,f]=[new K(e.mintA.address),new K(e.mintB.address)],b=e.mintA.address===r.toString(),g=[this.swapInstruction(l,o.wallet,p,new K(e.config.id),b?o.tokenAccountA:o.tokenAccountB,b?o.tokenAccountB:o.tokenAccountA,b?d:m,b?m:d,b?P:f,b?f:P,c,n,s,a,u,!0,Ae(l,p).publicKey)];return{signers:[],instructions:g,instructionTypes:[ne.ClmmSwapBaseIn],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[],address:{}}}static makeSwapBaseOutInstructions({poolInfo:e,poolKeys:t,observationId:n,ownerInfo:o,outputMint:r,amountOut:s,amountInMax:a,sqrtPriceLimitX64:u,remainingAccounts:c}){let[l,p]=[new K(e.programId),new K(e.id)],[d,m]=[new K(t.vault.A),new K(t.vault.B)],[P,f]=[new K(e.mintA.address),new K(e.mintB.address)],b=e.mintA.address===r.toBase58(),g=[this.swapInstruction(l,o.wallet,p,new K(e.config.id),b?o.tokenAccountB:o.tokenAccountA,b?o.tokenAccountA:o.tokenAccountB,b?m:d,b?d:m,b?f:P,b?P:f,c,n,s,a,u,!1,Ae(l,p).publicKey)];return{signers:[],instructions:g,instructionTypes:[ne.ClmmSwapBaseOut],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[],address:{}}}static initRewardInstruction(e,t,n,o,r,s,a,u,c,l,p,d){let m=N([y("openTime"),y("endTime"),G("emissionsPerSecondX64")]),P=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:mt.programId,isSigner:!1,isWritable:!1},{pubkey:ze,isSigner:!1,isWritable:!1}],f=Buffer.alloc(m.span);m.encode({openTime:ue(l),endTime:ue(p),emissionsPerSecondX64:d},f);let b=Buffer.from([...qe.initReward,...f]);return new Ce({keys:P,programId:e,data:b})}static initRewardInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,rewardInfo:o}){let[r,s]=[new K(e.programId),new K(e.id)],a=ao(r,s,o.mint).publicKey,u=dn(r).publicKey,c=[this.initRewardInstruction(r,n.wallet,s,u,new K(e.config.id),n.tokenAccount,o.programId,o.mint,a,o.openTime,o.endTime,o.emissionsPerSecondX64)];return{address:{poolRewardVault:a,operationId:u},signers:[],instructions:c,instructionTypes:[ne.ClmmInitReward],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static setRewardInstruction(e,t,n,o,r,s,a,u,c,l,p,d){let m=N([L("rewardIndex"),G("emissionsPerSecondX64"),y("openTime"),y("endTime")]),P=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:oe,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0}],f=Buffer.alloc(m.span);m.encode({rewardIndex:c,emissionsPerSecondX64:d,openTime:ue(l),endTime:ue(p)},f);let b=Buffer.from([...qe.setRewardEmissions,...f]);return new Ce({keys:P,programId:e,data:b})}static setRewardInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,rewardInfo:o}){let[r,s]=[new K(e.programId),new K(e.id)],a,u,c;for(let d=0;d<e.rewardDefaultInfos.length;d++)e.rewardDefaultInfos[d].mint.address===o.mint.toString()&&(a=d,u=new K(t.rewardInfos[d].vault),c=new K(t.rewardInfos[d].mint.address));(a===void 0||u===void 0)&&fo.logWithError("reward mint check error","no reward mint",e.rewardDefaultInfos);let l=dn(r).publicKey,p=[this.setRewardInstruction(r,n.wallet,s,l,new K(e.config.id),n.tokenAccount,u,c,a,o.openTime,o.endTime,o.emissionsPerSecondX64)];return{address:{rewardVault:u,operationId:l},signers:[],instructions:p,instructionTypes:[ne.ClmmSetReward],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static collectRewardInstruction(e,t,n,o,r,s,a){let u=N([L("rewardIndex")]),c=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:oe,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:on,isSigner:!1,isWritable:!1}],l=Buffer.alloc(u.span);u.encode({rewardIndex:a},l);let p=Buffer.from([...qe.collectReward,...l]);return new Ce({keys:c,programId:e,data:p})}static collectRewardInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,rewardMint:o}){let[r,s]=[new K(e.programId),new K(e.id)],a,u;for(let l=0;l<e.rewardDefaultInfos.length;l++)e.rewardDefaultInfos[l].mint.address===o.toString()&&(a=l,u=new K(t.rewardInfos[l].vault));(a===void 0||u===void 0)&&fo.logWithError("reward mint check error","no reward mint",e.rewardDefaultInfos);let c=[this.collectRewardInstruction(r,n.wallet,s,n.tokenAccount,u,o,a)];return{address:{rewardVault:u},signers:[],instructions:c,instructionTypes:[ne.ClmmCollectReward],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static async makeLockPositions({programId:e,authProgramId:t,poolProgramId:n,payer:o,wallet:r,nftMint:s,nft2022:a,getEphemeralSigners:u}){let c=[],l;if(u)l=new K((await u(1))[0]);else{let g=bn.generate();c.push(g),l=g.publicKey}let p=a?ie(r,s,be).publicKey:ie(r,s,oe).publicKey,{publicKey:d}=ve(n,s),m=jn(e,l).publicKey,P=ie(r,l,oe).publicKey,f=kt(l).publicKey,b=Pt.lockPositionInstructionV2({programId:e,auth:t,payer:o,positionOwner:r,lockOwner:r,positionNftAccount:p,positionId:d,lockPositionId:m,lockNftMint:l,lockNftAccount:P,metadataAccount:f,withMetadata:!0,nft2022:a,positionNftMint:s,authPositionNftAccount:ie(t,s,a?be:oe).publicKey,positionNftProgram:a?be:oe});return{address:{positionId:d,lockPositionId:m,lockNftAccount:P,lockNftMint:l,positionNftAccount:p,metadataAccount:f},instructions:[b],signers:c,instructionTypes:[ne.ClmmLockPosition],lookupTableAddress:[]}}static lockPositionInstructionV2({programId:e,auth:t,payer:n,positionOwner:o,lockOwner:r,positionNftAccount:s,positionId:a,positionNftMint:u,authPositionNftAccount:c,positionNftProgram:l,lockPositionId:p,lockNftMint:d,lockNftAccount:m,metadataAccount:P,withMetadata:f}){let b=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!0},{pubkey:o,isSigner:!0,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!0,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:P,isSigner:!1,isWritable:!0},{pubkey:ot,isSigner:!1,isWritable:!1},{pubkey:Ut,isSigner:!1,isWritable:!1},{pubkey:ze,isSigner:!1,isWritable:!1},{pubkey:oe,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:mt.programId,isSigner:!1,isWritable:!1}],g=N([Te("withMetadata")]),B=Buffer.alloc(g.span);g.encode({withMetadata:f},B);let h=Buffer.from([...bo,...B]);return new Ce({keys:b,programId:e,data:h})}static lockPositionInstruction({programId:e,authProgramId:t,poolProgramId:n,owner:o,positionNft:r}){let{publicKey:s}=ie(o,r,oe),{publicKey:a}=ve(n,r),u=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!0,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:Zn(e,a).publicKey,isSigner:!1,isWritable:!0},{pubkey:oe,isSigner:!1,isWritable:!1},{pubkey:mt.programId,isSigner:!1,isWritable:!1}];return new Ce({keys:u,programId:e,data:Buffer.from(bo)})}static harvestLockPositionInstruction(e){let[t,n]=[new K(e.poolKeys.programId),new K(e.poolKeys.id)],o=v.getTickArrayStartIndexByTick(e.ownerPosition.tickLower,e.poolKeys.config.tickSpacing),r=v.getTickArrayStartIndexByTick(e.ownerPosition.tickUpper,e.poolKeys.config.tickSpacing),{publicKey:s}=ee(t,n,o),{publicKey:a}=ee(t,n,r),{publicKey:u}=ie(e.owner,e.ownerPosition.nftMint,oe),{publicKey:c}=ve(t,e.ownerPosition.nftMint),{publicKey:l}=ct(t,n,e.ownerPosition.tickLower,e.ownerPosition.tickUpper),p=[];for(let P=0;P<e.poolKeys.rewardInfos.length;P++)p.push({poolRewardVault:new K(e.poolKeys.rewardInfos[P].vault),ownerRewardVault:e.ownerRewardAccounts[P],rewardMint:new K(e.poolKeys.rewardInfos[P].mint.address)});let d=[...p.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:Zn(e.programId,c).publicKey,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:e.owner,isSigner:!0,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:new K(e.poolKeys.vault.A),isSigner:!1,isWritable:!0},{pubkey:new K(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:oe,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:gt,isSigner:!1,isWritable:!1},{pubkey:new K(e.poolKeys.mintA.address),isSigner:!1,isWritable:!1},{pubkey:new K(e.poolKeys.mintB.address),isSigner:!1,isWritable:!1},...d];return new Ce({keys:m,programId:e.programId,data:Buffer.from(yo)})}static harvestLockPositionInstructionV2({programId:e,auth:t,lockPositionId:n,clmmProgram:o,lockOwner:r,lockNftMint:s,lockNftAccount:a,positionNftAccount:u,positionId:c,poolId:l,protocolPosition:p,vaultA:d,vaultB:m,tickArrayLower:P,tickArrayUpper:f,userVaultA:b,userVaultB:g,mintA:B,mintB:h,rewardAccounts:R,exTickArrayBitmap:E}){let I=[...E?[{pubkey:E,isSigner:!1,isWritable:!0}]:[],...R.map(F=>[{pubkey:F.poolRewardVault,isSigner:!1,isWritable:!0},{pubkey:F.ownerRewardVault,isSigner:!1,isWritable:!0},{pubkey:F.rewardMint,isSigner:!1,isWritable:!1}]).flat()],M=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:P,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:oe,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1},{pubkey:gt,isSigner:!1,isWritable:!1},{pubkey:B,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!1},...I];return new Ce({keys:M,programId:e,data:Buffer.from(yo)})}};var eb=N([Pe(8),L("bump"),Te("disableCreatePool"),$e("index"),y("tradeFeeRate"),y("protocolFeeRate"),y("fundFeeRate"),y("createPoolFee"),T("protocolOwner"),T("fundOwner"),y("creatorFeeRate"),U(y(),15)]),Xs=N([Pe(8),T("configId"),T("poolCreator"),T("vaultA"),T("vaultB"),T("mintLp"),T("mintA"),T("mintB"),T("mintProgramA"),T("mintProgramB"),T("observationId"),L("bump"),L("status"),L("lpDecimals"),L("mintDecimalA"),L("mintDecimalB"),y("lpAmount"),y("protocolFeesMintA"),y("protocolFeesMintB"),y("fundFeesMintA"),y("fundFeesMintB"),y("openTime"),y("epoch"),L("feeOn"),Te("enableCreatorFee"),U(L(),6),y("creatorFeesMintA"),y("creatorFeesMintB"),U(y(),28)]),tb=N([Pe(8),T("configId"),U(y(),30)]);import{PublicKey as Pb,TransactionInstruction as zs,Keypair as kb,SystemProgram as wb}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as hb,TOKEN_2022_PROGRAM_ID as Bb,TOKEN_PROGRAM_ID as Ib}from"@solana/spl-token";var rb=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),sb=Buffer.from("amm_config","utf8"),ab=Buffer.from("pool","utf8"),ub=Buffer.from("pool_lp_mint","utf8"),cb=Buffer.from("pool_vault","utf8"),lb=Buffer.from("observation","utf8"),mb=Buffer.from("permission","utf8");var pb=Buffer.from("locked_liquidity","utf8");var Rb=ae("Raydium_cpmm"),Ys={initialize:[175,175,109,31,13,152,155,237],deposit:[242,35,198,137,82,225,242,182],withdraw:[183,18,70,156,148,109,161,34],swapBaseInput:[143,190,90,218,196,30,51,222],swapBaseOutput:[55,217,98,86,163,74,180,173],lockCpLiquidity:[216,157,29,78,38,51,31,26],collectCpFee:[8,30,51,199,209,184,247,133],createPermissionPda:Buffer.from([135,136,2,216,137,169,181,202]),closePermissionPda:Buffer.from([156,84,32,118,69,135,70,123]),initializeWithPermission:Buffer.from([63,55,254,65,49,178,89,121]),collectCreatorFee:Buffer.from([20,22,86,123,198,28,219,132])};function Ao(i,e,t,n,o,r,s,a,u,c,l,p,d,m,P,f){let b=N([y("amountIn"),y("amounOutMin")]),g=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0}],B=Buffer.alloc(b.span);return b.encode({amountIn:P,amounOutMin:f},B),new zs({keys:g,programId:i,data:Buffer.from([...Ys.swapBaseInput,...B])})}import Hb from"bn.js";import Hs from"bn.js";var vb=new Hs(0);import _b from"bn.js";import ko from"bn.js";var uy=new ko(25),cy=new ko(1e4);var ni=N([L("instruction"),y("amountIn"),y("minAmountOut")]),ii=N([L("instruction"),y("maxAmountIn"),y("amountOut")]),dy=N([L("instruction"),L("nonce")]),Zs=N([L("instruction"),L("nonce"),y("startTime")]),wo=N([y("status"),y("nonce"),y("maxOrder"),y("depth"),y("baseDecimal"),y("quoteDecimal"),y("state"),y("resetFlag"),y("minSize"),y("volMaxCutRatio"),y("amountWaveRatio"),y("baseLotSize"),y("quoteLotSize"),y("minPriceMultiplier"),y("maxPriceMultiplier"),y("systemDecimalValue"),y("minSeparateNumerator"),y("minSeparateDenominator"),y("tradeFeeNumerator"),y("tradeFeeDenominator"),y("pnlNumerator"),y("pnlDenominator"),y("swapFeeNumerator"),y("swapFeeDenominator"),y("baseNeedTakePnl"),y("quoteNeedTakePnl"),y("quoteTotalPnl"),y("baseTotalPnl"),y("poolOpenTime"),y("punishPcAmount"),y("punishCoinAmount"),y("orderbookToInitTime"),G("swapBaseInAmount"),G("swapQuoteOutAmount"),y("swapBase2QuoteFee"),G("swapQuoteInAmount"),G("swapBaseOutAmount"),y("swapQuote2BaseFee"),T("baseVault"),T("quoteVault"),T("baseMint"),T("quoteMint"),T("lpMint"),T("openOrders"),T("marketId"),T("marketProgramId"),T("targetOrders"),T("withdrawQueue"),T("lpVault"),T("owner"),y("lpReserve"),U(y(),3,"padding")]),fy=N([y("accountType"),y("status"),y("nonce"),y("maxOrder"),y("depth"),y("baseDecimal"),y("quoteDecimal"),y("state"),y("resetFlag"),y("minSize"),y("volMaxCutRatio"),y("amountWaveRatio"),y("baseLotSize"),y("quoteLotSize"),y("minPriceMultiplier"),y("maxPriceMultiplier"),y("systemDecimalsValue"),y("abortTradeFactor"),y("priceTickMultiplier"),y("priceTick"),y("minSeparateNumerator"),y("minSeparateDenominator"),y("tradeFeeNumerator"),y("tradeFeeDenominator"),y("pnlNumerator"),y("pnlDenominator"),y("swapFeeNumerator"),y("swapFeeDenominator"),y("baseNeedTakePnl"),y("quoteNeedTakePnl"),y("quoteTotalPnl"),y("baseTotalPnl"),y("poolOpenTime"),y("punishPcAmount"),y("punishCoinAmount"),y("orderbookToInitTime"),G("swapBaseInAmount"),G("swapQuoteOutAmount"),G("swapQuoteInAmount"),G("swapBaseOutAmount"),y("swapQuote2BaseFee"),y("swapBase2QuoteFee"),T("baseVault"),T("quoteVault"),T("baseMint"),T("quoteMint"),T("lpMint"),T("modelDataAccount"),T("openOrders"),T("marketId"),T("marketProgramId"),T("targetOrders"),T("owner"),U(y(),64,"padding")]),js=N([L("instruction"),y("baseAmountIn"),y("quoteAmountIn"),y("fixedSide"),y("otherAmountMin")]),Js=N([L("instruction"),y("lpAmount"),y("baseAmountMin"),y("quoteAmountMin")]);var by=N([y("fee")]);import{PublicKey as Yg}from"@solana/web3.js";import Qg from"bn.js";import{TOKEN_PROGRAM_ID as Jg}from"@solana/spl-token";import{PublicKey as tt,SystemProgram as Py,SYSVAR_RENT_PUBKEY as Ay,TransactionInstruction as Pn}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as wy,TOKEN_PROGRAM_ID as An}from"@solana/spl-token";import yn from"bn.js";var gn=ae("Raydium_liquidity_instruction");function $s({poolKeys:i,userKeys:e,amountIn:t,minAmountOut:n,modelDataPubKey:o=vt},r){let s=We(i),a=Buffer.alloc(ni.span);ni.encode({instruction:9,amountIn:ue(t),minAmountOut:ue(n)},a);let u=[A({pubkey:An,isWritable:!1}),A({pubkey:s.id}),A({pubkey:s.authority,isWritable:!1}),A({pubkey:s.openOrders})];return r===4&&u.push(A({pubkey:s.targetOrders})),u.push(A({pubkey:s.vault.A}),A({pubkey:s.vault.B})),r===5&&u.push(A({pubkey:o})),u.push(A({pubkey:s.marketProgramId,isWritable:!1}),A({pubkey:s.marketId}),A({pubkey:s.marketBids}),A({pubkey:s.marketAsks}),A({pubkey:s.marketEventQueue}),A({pubkey:s.marketBaseVault}),A({pubkey:s.marketQuoteVault}),A({pubkey:s.marketAuthority,isWritable:!1}),A({pubkey:e.tokenAccountIn}),A({pubkey:e.tokenAccountOut}),A({pubkey:e.owner,isWritable:!1,isSigner:!0})),new Pn({programId:s.programId,keys:u,data:a})}function ea({poolKeys:i,userKeys:e,maxAmountIn:t,amountOut:n,modelDataPubKey:o=vt},r){let s=We(i),a=Buffer.alloc(ii.span);ii.encode({instruction:11,maxAmountIn:ue(t),amountOut:ue(n)},a);let u=[A({pubkey:An,isWritable:!1}),A({pubkey:s.id}),A({pubkey:s.authority,isWritable:!1}),A({pubkey:s.openOrders}),A({pubkey:s.targetOrders}),A({pubkey:s.vault.A}),A({pubkey:s.vault.B})];return r===5&&u.push(A({pubkey:o})),u.push(A({pubkey:s.marketProgramId,isWritable:!1}),A({pubkey:s.marketId}),A({pubkey:s.marketBids}),A({pubkey:s.marketAsks}),A({pubkey:s.marketEventQueue}),A({pubkey:s.marketBaseVault}),A({pubkey:s.marketQuoteVault}),A({pubkey:s.marketAuthority,isWritable:!1}),A({pubkey:e.tokenAccountIn}),A({pubkey:e.tokenAccountOut}),A({pubkey:e.owner,isWritable:!1,isSigner:!0})),new Pn({programId:s.programId,keys:u,data:a})}function ta(i,e,t,n,o,r,s,a,u,c){let l=N([L("instructionId"),y("amountIn"),y("minAmountOut")]),p=Buffer.alloc(l.span);l.encode({instructionId:16,amountIn:u,minAmountOut:c},p);let d=[{pubkey:An,isWritable:!1,isSigner:!1},{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:t,isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!0,isSigner:!1},{pubkey:o,isWritable:!0,isSigner:!1},{pubkey:r,isWritable:!0,isSigner:!1},{pubkey:s,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!0}];return new Pn({programId:i,keys:d,data:p})}function na(i,e,t,n,o,r,s,a,u,c){let l=N([L("instructionId"),y("maxAmountIn"),y("amountOut")]),p=Buffer.alloc(l.span);l.encode({instructionId:17,maxAmountIn:u,amountOut:c},p);let d=[{pubkey:An,isWritable:!1,isSigner:!1},{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:t,isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!0,isSigner:!1},{pubkey:o,isWritable:!0,isSigner:!1},{pubkey:r,isWritable:!0,isSigner:!1},{pubkey:s,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!0}];return new Pn({programId:i,keys:d,data:p})}function To(i){let{poolKeys:e,version:t,userKeys:n,amountIn:o,amountOut:r,fixedSide:s}=i;if(t===4){if(s==="in")return ta(new tt(e.programId),new tt(e.id),new tt(e.authority),new tt(e.vault.A),new tt(e.vault.B),n.tokenAccountIn,n.tokenAccountOut,n.owner,new yn(o.toString()),new yn(r.toString()));if(s==="out")return na(new tt(e.programId),new tt(e.id),new tt(e.authority),new tt(e.vault.A),new tt(e.vault.B),n.tokenAccountIn,n.tokenAccountOut,n.owner,new yn(o.toString()),new yn(r.toString()));gn.logWithError("invalid params","params",i)}throw gn.logWithError("invalid version, only support pool v4","poolKeys.version",t),new Error("invalid version")}function ho(i){let{poolKeys:e,version:t,userKeys:n,amountIn:o,amountOut:r,fixedSide:s}=i;if(t===4||t===5){let a={poolKeys:e,userKeys:n};if(s==="in")return $s(J(Q({},a),{amountIn:o,minAmountOut:r}),t);if(s==="out")return ea(J(Q({},a),{maxAmountIn:o,amountOut:r}),t);gn.logWithError("invalid params","params",i)}throw gn.logWithError("invalid version","poolKeys.version",t),new Error("invalid version")}import{PublicKey as My}from"@solana/web3.js";var Ey=ae("Raydium_liquidity_serum");var ia=5e4,oa=N([y("x"),y("y"),y("price")]),_y=N([y("accountType"),y("status"),y("multiplier"),y("validDataCount"),U(oa,ia,"DataElement")]);var oi=N([T("mint"),T("owner"),y("amount"),Ve("delegateOption"),T("delegate"),L("state"),Ve("isNativeOption"),y("isNative"),y("delegatedAmount"),Ve("closeAuthorityOption"),T("closeAuthority")]);import{Keypair as Hy,PublicKey as Qy}from"@solana/web3.js";import Jy from"bn.js";import{TOKEN_PROGRAM_ID as tg}from"@solana/spl-token";var ig=ae("Raydium_Util");import{PublicKey as cg,SystemProgram as mg}from"@solana/web3.js";import fg from"bn.js";import{createCloseAccountInstruction as Pg,createInitializeAccountInstruction as Ag,createTransferInstruction as kg,TOKEN_PROGRAM_ID as wg}from"@solana/spl-token";var ra=N([Ve("mintAuthorityOption"),T("mintAuthority"),y("supply"),L("decimals"),L("isInitialized"),Ve("freezeAuthorityOption"),T("freezeAuthority")]);var sa={[Vn.toBase58()]:3};var aa=N([Pe(5),Pe(8),T("ownAddress"),y("vaultSignerNonce"),T("baseMint"),T("quoteMint"),T("baseVault"),y("baseDepositsTotal"),y("baseFeesAccrued"),T("quoteVault"),y("quoteDepositsTotal"),y("quoteFeesAccrued"),y("quoteDustThreshold"),T("requestQueue"),T("eventQueue"),T("bids"),T("asks"),y("baseLotSize"),y("quoteLotSize"),y("feeRateBps"),y("referrerRebatesAccrued"),Pe(7)]);import{PublicKey as hP}from"@solana/web3.js";var KP=ae("Serum");import{PublicKey as k,SystemProgram as Xt,TransactionInstruction as zt}from"@solana/web3.js";import je from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as ri,TOKEN_2022_PROGRAM_ID as si,TOKEN_PROGRAM_ID as At}from"@solana/spl-token";function GP(i,e,t,n,o,r,s,a,u,c,l,p){let d=N([L("instruction"),y("amountIn"),y("amountOut")]),m=[{pubkey:Xt.programId,isSigner:!1,isWritable:!1},{pubkey:At,isSigner:!1,isWritable:!1},{pubkey:new k(t.programId),isSigner:!1,isWritable:!1},{pubkey:new k(t.id),isSigner:!1,isWritable:!0},{pubkey:new k(n.id),isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!0,isWritable:!1}];if(e.type==="Concentrated"){let f=We(t);m.push({pubkey:f.config.id,isSigner:!1,isWritable:!1},{pubkey:f.id,isSigner:!1,isWritable:!0},{pubkey:f.mintA.address.equals(u)?f.vault.A:f.vault.B,isSigner:!1,isWritable:!0},{pubkey:f.mintA.address.equals(u)?f.vault.B:f.vault.A,isSigner:!1,isWritable:!0},{pubkey:f.id,isSigner:!1,isWritable:!0},...p.map(b=>({pubkey:b,isSigner:!1,isWritable:!0})))}else if(e.pooltype.includes("StablePool")){let f=We(t);m.push({pubkey:f.authority,isSigner:!1,isWritable:!1},{pubkey:f.marketProgramId,isSigner:!1,isWritable:!1},{pubkey:f.id,isSigner:!1,isWritable:!0},{pubkey:new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),isSigner:!1,isWritable:!1},{pubkey:f.openOrders,isSigner:!1,isWritable:!0},{pubkey:f.vault.A,isSigner:!1,isWritable:!0},{pubkey:f.vault.B,isSigner:!1,isWritable:!0},{pubkey:f.marketId,isSigner:!1,isWritable:!0},{pubkey:f.marketBids,isSigner:!1,isWritable:!0},{pubkey:f.marketAsks,isSigner:!1,isWritable:!0},{pubkey:f.marketEventQueue,isSigner:!1,isWritable:!0},{pubkey:f.id,isSigner:!1,isWritable:!0},{pubkey:f.id,isSigner:!1,isWritable:!0})}else{let f=We(t);m.push({pubkey:f.authority,isSigner:!1,isWritable:!1},{pubkey:f.marketProgramId,isSigner:!1,isWritable:!1},{pubkey:f.marketAuthority,isSigner:!1,isWritable:!1},{pubkey:f.openOrders,isSigner:!1,isWritable:!0},{pubkey:f.vault.A,isSigner:!1,isWritable:!0},{pubkey:f.vault.B,isSigner:!1,isWritable:!0},{pubkey:f.marketId,isSigner:!1,isWritable:!0},{pubkey:f.marketBids,isSigner:!1,isWritable:!0},{pubkey:f.marketAsks,isSigner:!1,isWritable:!0},{pubkey:f.marketEventQueue,isSigner:!1,isWritable:!0},...f.marketProgramId.toString()==="srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"?[{pubkey:f.marketBaseVault,isSigner:!1,isWritable:!0},{pubkey:f.marketQuoteVault,isSigner:!1,isWritable:!0}]:[{pubkey:f.id,isSigner:!1,isWritable:!0},{pubkey:f.id,isSigner:!1,isWritable:!0}])}let P=Buffer.alloc(d.span);return d.encode({instruction:4,amountIn:c,amountOut:l},P),new zt({keys:m,programId:i,data:P})}function UP(i,e,t,n,o,r,s,a,u,c){let l=N([L("instruction")]),p=[{pubkey:Xt.programId,isSigner:!1,isWritable:!1},{pubkey:At,isSigner:!1,isWritable:!1},{pubkey:new k(String(n.programId)),isSigner:!1,isWritable:!1},{pubkey:new k(String(n.id)),isSigner:!1,isWritable:!0},{pubkey:new k(String(t.id)),isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!0,isWritable:!1}];if(e.type==="Concentrated"){let m=We(n);p.push({pubkey:m.config.id,isSigner:!1,isWritable:!1},{pubkey:m.id,isSigner:!1,isWritable:!0},{pubkey:m.mintA.address.equals(u)?m.vault.A:m.vault.B,isSigner:!1,isWritable:!0},{pubkey:m.mintA.address.equals(u)?m.vault.B:m.vault.A,isSigner:!1,isWritable:!0},{pubkey:m.id,isSigner:!1,isWritable:!0},...c.map(P=>({pubkey:P,isSigner:!1,isWritable:!0})))}else if(e.pooltype.includes("StablePool")){let m=We(n);p.push({pubkey:m.authority,isSigner:!1,isWritable:!1},{pubkey:m.marketProgramId,isSigner:!1,isWritable:!1},{pubkey:m.id,isSigner:!1,isWritable:!0},{pubkey:new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),isSigner:!1,isWritable:!1},{pubkey:m.openOrders,isSigner:!1,isWritable:!0},{pubkey:m.vault.A,isSigner:!1,isWritable:!0},{pubkey:m.vault.B,isSigner:!1,isWritable:!0},{pubkey:m.marketId,isSigner:!1,isWritable:!0},{pubkey:m.marketBids,isSigner:!1,isWritable:!0},{pubkey:m.marketAsks,isSigner:!1,isWritable:!0},{pubkey:m.marketEventQueue,isSigner:!1,isWritable:!0},{pubkey:m.id,isSigner:!1,isWritable:!0},{pubkey:m.id,isSigner:!1,isWritable:!0})}else{let m=We(n);p.push({pubkey:m.authority,isSigner:!1,isWritable:!1},{pubkey:m.marketProgramId,isSigner:!1,isWritable:!1},{pubkey:m.marketAuthority,isSigner:!1,isWritable:!1},{pubkey:m.openOrders,isSigner:!1,isWritable:!0},{pubkey:m.vault.A,isSigner:!1,isWritable:!0},{pubkey:m.vault.B,isSigner:!1,isWritable:!0},{pubkey:m.marketId,isSigner:!1,isWritable:!0},{pubkey:m.marketBids,isSigner:!1,isWritable:!0},{pubkey:m.marketAsks,isSigner:!1,isWritable:!0},{pubkey:m.marketEventQueue,isSigner:!1,isWritable:!0},...m.marketProgramId.toString()==="srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"?[{pubkey:m.marketBaseVault,isSigner:!1,isWritable:!0},{pubkey:m.marketQuoteVault,isSigner:!1,isWritable:!0}]:[{pubkey:m.id,isSigner:!1,isWritable:!0},{pubkey:m.id,isSigner:!1,isWritable:!0}])}let d=Buffer.alloc(l.span);return l.encode({instruction:5},d),new zt({keys:p,programId:i,data:d})}function ua(i,e,t,n,o,r,s,a,u,c,l,p,d,m,P){var I;let f=[],b=[A({pubkey:At,isWritable:!1}),A({pubkey:si,isWritable:!1}),A({pubkey:ri,isWritable:!1}),A({pubkey:Xt.programId,isWritable:!1}),A({pubkey:e,isSigner:!0})];b.push(A({pubkey:t})),b.push(A({pubkey:o}));let g=[u,c],B=[l,p],h=[r,s,a];for(let M=0;M<g.length;M++){let F=g[M],q=h[M]===F.mintA.address;if(b.push(A({pubkey:new k(F.programId),isWritable:!1})),M===g.length-1?b.push(A({pubkey:o})):b.push(A({pubkey:n})),b.push(A({pubkey:new k(h[M])})),b.push(A({pubkey:new k(h[M+1])})),F.version===6){let C=B[M];b.push(A({pubkey:new k(C.config.id)})),b.push(A({pubkey:new k(C.id)})),b.push(A({pubkey:new k(q?C.vault.A:C.vault.B)})),b.push(A({pubkey:new k(q?C.vault.B:C.vault.A)})),b.push(A({pubkey:new k(F.observationId)})),b.push(A({pubkey:gt})),b.push(A({pubkey:Ae(new k(F.programId),new k(F.id)).publicKey})),f.push(ai(F.sqrtPriceX64.toString(),q));for(let W of(I=P[M])!=null?I:[])b.push(A({pubkey:new k(W)}))}else if(F.version===5){let C=B[M];b.push(A({pubkey:new k(C.id)})),b.push(A({pubkey:new k(C.authority),isWritable:!1})),b.push(A({pubkey:new k(C.marketProgramId)})),b.push(A({pubkey:new k(C.marketAuthority)})),b.push(A({pubkey:sn,isWritable:!1})),b.push(A({pubkey:new k(C.openOrders)})),b.push(A({pubkey:new k(C.vault.A)})),b.push(A({pubkey:new k(C.vault.B)})),b.push(A({pubkey:new k(C.id)})),b.push(A({pubkey:new k(C.id)})),b.push(A({pubkey:new k(C.id)})),b.push(A({pubkey:new k(C.id)})),b.push(A({pubkey:new k(C.id)})),b.push(A({pubkey:new k(C.id)})),b.push(A({pubkey:new k(C.marketId)})),b.push(A({pubkey:new k(C.marketBids)})),b.push(A({pubkey:new k(C.marketAsks)})),b.push(A({pubkey:new k(C.marketEventQueue)})),b.push(A({pubkey:new k(C.marketBaseVault)})),b.push(A({pubkey:new k(C.marketQuoteVault)}))}else if(F.version===4){let C=B[M],W=F.status!==1;b.push(A({pubkey:new k(C.id)})),b.push(A({pubkey:new k(C.authority),isWritable:!1})),b.push(A({pubkey:new k(W?C.id:C.marketProgramId)})),b.push(A({pubkey:new k(W?C.id:C.marketAuthority)})),b.push(A({pubkey:new k(W?C.id:C.openOrders)})),b.push(A({pubkey:new k(C.vault.A)})),b.push(A({pubkey:new k(C.vault.B)})),b.push(A({pubkey:new k(W?C.id:C.marketId)})),b.push(A({pubkey:new k(W?C.id:C.marketBids)})),b.push(A({pubkey:new k(W?C.id:C.marketAsks)})),b.push(A({pubkey:new k(W?C.id:C.marketEventQueue)})),b.push(A({pubkey:new k(W?C.id:C.marketBaseVault)})),b.push(A({pubkey:new k(W?C.id:C.marketQuoteVault)}))}else if(F.version===7){let C=B[M];b.push(A({pubkey:new k(C.authority)})),b.push(A({pubkey:new k(C.config.id)})),b.push(A({pubkey:new k(C.id)})),b.push(A({pubkey:new k(q?C.vault.A:C.vault.B)})),b.push(A({pubkey:new k(q?C.vault.B:C.vault.A)})),b.push(A({pubkey:new k(F.observationId)}))}else throw Error("pool type error")}let R=N([L("insId"),y("amountIn"),y("amountOut"),U(G(),f.length,"clmmPriceLimit")]),E=Buffer.alloc(R.span);return R.encode({insId:0,amountIn:d,amountOut:m,clmmPriceLimit:f},E),new zt({keys:b,programId:i,data:E})}function ai(i,e){if(i)if(e){let t=new je(i).div(new je(25));return t.gt(cn)?t:cn}else{let t=new je(i).mul(new je(25));return t.lt(ln)?t:ln}else return e?cn:ln}function ca({routeProgram:i,ownerInfo:e,inputMint:t,swapInfo:n}){var o,r,s,a,u,c,l,p,d;if(n.routeType==="amm")if(n.poolInfo[0].version===6){let m=n.poolKey[0],P=We(m),f=t.equals(P.mintA.address)?Qe.add(De):Ze.sub(De);return Pt.makeSwapBaseInInstructions({poolInfo:m,poolKeys:m,observationId:n.poolInfo[0].observationId,ownerInfo:{wallet:e.wallet,tokenAccountA:P.mintA.address.equals(t)?e.sourceToken:e.destinationToken,tokenAccountB:P.mintA.address.equals(t)?e.destinationToken:e.sourceToken},inputMint:t,amountIn:n.amountIn.amount.raw,amountOutMin:n.minAmountOut.amount.raw.sub((r=(o=n.minAmountOut.fee)==null?void 0:o.raw)!=null?r:new je(0)),sqrtPriceLimitX64:f,remainingAccounts:(s=n.remainingAccounts[0])!=null?s:[]})}else if(n.poolInfo[0].version===7){let m=n.poolInfo[0],P=t.toString()===n.poolInfo[0].mintA.address;return{signers:[],instructions:[Ao(m.programId,e.wallet,m.authority,m.configId,m.id,e.sourceToken,e.destinationToken,P?m.vaultA:m.vaultB,P?m.vaultB:m.vaultA,P?m.mintProgramA:m.mintProgramB,P?m.mintProgramB:m.mintProgramA,new k(m[P?"mintA":"mintB"].address),new k(m[P?"mintB":"mintA"].address),m.observationId,n.amountIn.amount.raw,n.minAmountOut.amount.raw)],lookupTableAddress:[],instructionTypes:[P?ne.CpmmSwapBaseIn:ne.CpmmSwapBaseOut],address:{}}}else{let m=n.poolKey[0];return{signers:[],instructions:[n.poolInfo[0].pooltype.includes("StablePool")?ho({poolKeys:m,version:n.poolInfo[0].pooltype.includes("StablePool")?5:4,userKeys:{tokenAccountIn:e.sourceToken,tokenAccountOut:e.destinationToken,owner:e.wallet},amountIn:n.amountIn.amount.raw,amountOut:n.minAmountOut.amount.raw.sub((u=(a=n.minAmountOut.fee)==null?void 0:a.raw)!=null?u:new je(0)),fixedSide:"in"}):To({poolKeys:m,version:n.poolInfo[0].pooltype.includes("StablePool")?5:4,userKeys:{tokenAccountIn:e.sourceToken,tokenAccountOut:e.destinationToken,owner:e.wallet},amountIn:n.amountIn.amount.raw,amountOut:n.minAmountOut.amount.raw.sub((l=(c=n.minAmountOut.fee)==null?void 0:c.raw)!=null?l:new je(0)),fixedSide:"in"})],lookupTableAddress:m.lookupTableAccount?[m.lookupTableAccount]:[],instructionTypes:[n.poolInfo[0].pooltype.includes("StablePool")?ne.AmmV5SwapBaseIn:ne.AmmV4SwapBaseIn],address:{}}}else if(n.routeType==="route"){let m=n.poolInfo[0],P=n.poolInfo[1],f=n.poolKey[0],b=n.poolKey[1];if(e.routeToken===void 0)throw Error("owner route token account check error");return{signers:[],instructions:[ua(i,e.wallet,e.sourceToken,e.routeToken,e.destinationToken,t.toString(),n.middleToken.mint.toString(),n.outputMint.toString(),m,P,f,b,n.amountIn.amount.raw,n.minAmountOut.amount.raw.sub((d=(p=n.minAmountOut.fee)==null?void 0:p.raw)!=null?d:new je(0)),n.remainingAccounts)],instructionTypes:[ne.RouteSwap],lookupTableAddress:[f.lookupTableAccount,b.lookupTableAccount].filter(g=>g!==void 0),address:{}}}else throw Error("route type error")}function XP({programId:i,wallet:e,amount:t,inputAccount:n,outputAccount:o,routeInfo:r,poolKeys:s}){var d;if(r.success===!1)throw Error("route info error");let a=[],u=[A({pubkey:At,isWritable:!1}),A({pubkey:si,isWritable:!1}),A({pubkey:ri,isWritable:!1}),A({pubkey:Xt.programId,isWritable:!1}),A({pubkey:e,isSigner:!0})],c={[r.data.inputMint]:n,[r.data.outputMint]:o};u.push(A({pubkey:c[r.data.inputMint]})),u.push(A({pubkey:c[r.data.outputMint]}));for(let m=0;m<s.length;m++){let P=r.data.routePlan[m],f=s[m],b=P.inputMint===f.mintA.address;if(u.push(A({pubkey:new k(f.programId),isWritable:!1})),m===s.length-1)u.push(A({pubkey:c[P.outputMint]}));else{let g=P.outputMint;if(c[g]===void 0){let B=ie(e,new k(g),f.programId===Le.CLMM_PROGRAM_ID.toBase58()||f.programId===Le.CREATE_CPMM_POOL_PROGRAM.toBase58()?new k(b?f.mintB.programId:f.mintA.programId):At).publicKey;c[g]=B}u.push(A({pubkey:c[g]}))}if(u.push(A({pubkey:new k(P.inputMint)})),u.push(A({pubkey:new k(P.outputMint)})),f.programId===Le.CLMM_PROGRAM_ID.toBase58()){let g=f;u.push(A({pubkey:new k(g.config.id)})),u.push(A({pubkey:new k(g.id)})),u.push(A({pubkey:new k(b?g.vault.A:g.vault.B)})),u.push(A({pubkey:new k(b?g.vault.B:g.vault.A)})),u.push(A({pubkey:new k(g.observationId)})),u.push(A({pubkey:gt,isWritable:!1})),u.push(A({pubkey:new k(g.exBitmapAccount)})),a.push(ai(P.lastPoolPriceX64,b));for(let B of(d=P.remainingAccounts)!=null?d:[])u.push(A({pubkey:new k(B)}))}else if(f.programId===Le.AMM_STABLE.toBase58()){let g=f;u.push(A({pubkey:new k(g.id)})),u.push(A({pubkey:new k(g.authority),isWritable:!1})),u.push(A({pubkey:new k(g.marketProgramId),isWritable:!1})),u.push(A({pubkey:new k(g.marketAuthority),isWritable:!1})),u.push(A({pubkey:sn,isWritable:!1})),u.push(A({pubkey:new k(g.openOrders)})),u.push(A({pubkey:new k(g.vault.A)})),u.push(A({pubkey:new k(g.vault.B)})),u.push(A({pubkey:new k(g.marketId)})),u.push(A({pubkey:new k(g.marketBids)})),u.push(A({pubkey:new k(g.marketAsks)})),u.push(A({pubkey:new k(g.marketEventQueue)})),u.push(A({pubkey:new k(g.marketBaseVault)})),u.push(A({pubkey:new k(g.marketQuoteVault)}))}else if(f.programId===Le.AMM_V4.toBase58()){let g=f;u.push(A({pubkey:new k(g.id)})),u.push(A({pubkey:new k(g.authority),isWritable:!1})),u.push(A({pubkey:new k(g.id)})),u.push(A({pubkey:new k(g.id)})),u.push(A({pubkey:new k(g.id)})),u.push(A({pubkey:new k(g.vault.A)})),u.push(A({pubkey:new k(g.vault.B)})),u.push(A({pubkey:new k(g.id)})),u.push(A({pubkey:new k(g.id)})),u.push(A({pubkey:new k(g.id)})),u.push(A({pubkey:new k(g.id)})),u.push(A({pubkey:new k(g.id)})),u.push(A({pubkey:new k(g.id)}))}else if(f.programId===Le.CREATE_CPMM_POOL_PROGRAM.toBase58()){let g=f;u.push(A({pubkey:new k(g.authority)})),u.push(A({pubkey:new k(g.config.id)})),u.push(A({pubkey:new k(g.id)})),u.push(A({pubkey:new k(b?g.vault.A:g.vault.B)})),u.push(A({pubkey:new k(b?g.vault.B:g.vault.A)})),u.push(A({pubkey:new k(g.observationId)}))}else throw Error("pool type error")}let l=N([L("insId"),y("amountIn"),y("amountOut"),U(G(),a.length,"clmmPriceLimit")]),p=Buffer.alloc(l.span);return l.encode({insId:0,amountIn:t,amountOut:new je(r.data.otherAmountThreshold),clmmPriceLimit:a},p),new zt({keys:u,programId:i,data:p})}function zP({programId:i,wallet:e,inputAccount:t,outputAccount:n,routeInfo:o,poolKeys:r}){var p;if(o.success===!1)throw Error("route info error");let s=[],a=[A({pubkey:At,isWritable:!1}),A({pubkey:si,isWritable:!1}),A({pubkey:ri,isWritable:!1}),A({pubkey:Xt.programId,isWritable:!1}),A({pubkey:e,isSigner:!0})],u={[o.data.inputMint]:t,[o.data.outputMint]:n};for(let d=r.length-1;d>=0;d--){let m=o.data.routePlan[d],P=r[d],f=m.inputMint===P.mintA.address;if(a.push(A({pubkey:new k(P.programId)})),d===0)a.push(A({pubkey:u[m.inputMint]}));else{let b=m.inputMint;if(u[b]===void 0){let g=ie(e,new k(b),P.programId===Le.CLMM_PROGRAM_ID.toBase58()||P.programId===Le.CREATE_CPMM_POOL_PROGRAM.toBase58()?new k(f?P.mintA.programId:P.mintB.programId):At).publicKey;u[b]=g}a.push(A({pubkey:u[b]}))}if(d===r.length-1)a.push(A({pubkey:u[m.outputMint]}));else{let b=m.outputMint;if(u[b]===void 0){let g=ie(e,new k(b),P.programId===Le.CLMM_PROGRAM_ID.toBase58()||P.programId===Le.CREATE_CPMM_POOL_PROGRAM.toBase58()?new k(f?P.mintB.programId:P.mintA.programId):At).publicKey;u[b]=g}a.push(A({pubkey:u[b]}))}if(a.push(A({pubkey:new k(m.inputMint)})),a.push(A({pubkey:new k(m.outputMint)})),P.programId===Le.CLMM_PROGRAM_ID.toBase58()){let b=P;a.push(A({pubkey:new k(b.config.id)})),a.push(A({pubkey:new k(b.id)})),a.push(A({pubkey:new k(f?b.vault.A:b.vault.B)})),a.push(A({pubkey:new k(f?b.vault.B:b.vault.A)})),a.push(A({pubkey:new k(b.observationId)})),a.push(A({pubkey:gt,isWritable:!1})),a.push(A({pubkey:new k(b.exBitmapAccount)})),s.push(ai(m.lastPoolPriceX64,f));for(let g of(p=m.remainingAccounts)!=null?p:[])a.push(A({pubkey:new k(g)}))}else if(P.programId===Le.AMM_STABLE.toBase58()){let b=P;a.push(A({pubkey:new k(b.id)})),a.push(A({pubkey:new k(b.authority),isWritable:!1})),a.push(A({pubkey:new k(b.marketProgramId),isWritable:!1})),a.push(A({pubkey:new k(b.marketAuthority),isWritable:!1})),a.push(A({pubkey:sn,isWritable:!1})),a.push(A({pubkey:new k(b.openOrders)})),a.push(A({pubkey:new k(b.vault.A)})),a.push(A({pubkey:new k(b.vault.B)})),a.push(A({pubkey:new k(b.marketId)})),a.push(A({pubkey:new k(b.marketBids)})),a.push(A({pubkey:new k(b.marketAsks)})),a.push(A({pubkey:new k(b.marketEventQueue)})),a.push(A({pubkey:new k(b.marketBaseVault)})),a.push(A({pubkey:new k(b.marketQuoteVault)}))}else if(P.programId===Le.AMM_V4.toBase58()){let b=P;a.push(A({pubkey:new k(b.id)})),a.push(A({pubkey:new k(b.authority),isWritable:!1})),a.push(A({pubkey:new k(b.id)})),a.push(A({pubkey:new k(b.id)})),a.push(A({pubkey:new k(b.id)})),a.push(A({pubkey:new k(b.vault.A)})),a.push(A({pubkey:new k(b.vault.B)})),a.push(A({pubkey:new k(b.id)})),a.push(A({pubkey:new k(b.id)})),a.push(A({pubkey:new k(b.id)})),a.push(A({pubkey:new k(b.id)})),a.push(A({pubkey:new k(b.id)})),a.push(A({pubkey:new k(b.id)}))}else if(P.programId===Le.CREATE_CPMM_POOL_PROGRAM.toBase58()){let b=P;a.push(A({pubkey:new k(b.authority)})),a.push(A({pubkey:new k(b.config.id)})),a.push(A({pubkey:new k(b.id)})),a.push(A({pubkey:new k(f?b.vault.A:b.vault.B)})),a.push(A({pubkey:new k(f?b.vault.B:b.vault.A)})),a.push(A({pubkey:new k(b.observationId)}))}else throw Error("pool type error")}let c=N([L("insId"),y("amountIn"),y("amountOut"),U(G(),s.length,"clmmPriceLimit")]),l=Buffer.alloc(c.span);return c.encode({insId:1,amountIn:new je(o.data.otherAmountThreshold),amountOut:new je(o.data.outputAmount),clmmPriceLimit:s},l),new zt({keys:a,programId:i,data:l})}import{ASSOCIATED_TOKEN_PROGRAM_ID as dA,TOKEN_2022_PROGRAM_ID as fA,TOKEN_PROGRAM_ID as bA}from"@solana/spl-token";import{SystemProgram as AA,TransactionInstruction as kA}from"@solana/web3.js";import fa from"bn.js";var la=N([y(),y("epoch"),L("curveType"),$e("index"),y("migrateFee"),y("tradeFeeRate"),y("maxShareFeeRate"),y("minSupplyA"),y("maxLockRate"),y("minSellRateA"),y("minMigrateRateA"),y("minFundRaisingB"),T("mintB"),T("protocolFeeOwner"),T("migrateFeeOwner"),T("migrateToAmmWallet"),T("migrateToCpmmWallet"),U(y(),16)]),ma=N([y("totalLockedAmount"),y("cliffPeriod"),y("unlockPeriod"),y("startTime"),y("totalAllocatedShare")]),pa=N([y(),y("epoch"),L("bump"),L("status"),L("mintDecimalsA"),L("mintDecimalsB"),L("migrateType"),y("supply"),y("totalSellA"),y("virtualA"),y("virtualB"),y("realA"),y("realB"),y("totalFundRaisingB"),y("protocolFee"),y("platformFee"),y("migrateFee"),ma.replicate("vestingSchedule"),T("configId"),T("platformId"),T("mintA"),T("mintB"),T("vaultA"),T("vaultB"),T("creator"),L("mintProgramFlag"),L("cpmmCreatorFeeOn"),U(L(),62)]),QP=N([y(),y("epoch"),T("poolId"),T("beneficiary"),y("claimedAmount"),y("tokenShareAmount"),U(y(),8)]),Bo=N([L("migrateType"),L("migrateCpmmFeeOn"),y("supply"),y("totalSellA"),y("totalFundRaisingB"),y("totalLockedAmount"),y("cliffPeriod"),y("unlockPeriod")]),da=N([y("epoch"),L("index"),T("configId"),Bo.replicate("bondingCurveParam"),U(y(),50)]),Io=N([y(),y("epoch"),T("platformClaimFeeWallet"),T("platformLockNftWallet"),y("platformScale"),y("creatorScale"),y("burnScale"),y("feeRate"),U(L(),64,"name"),U(L(),256,"web"),U(L(),256,"img"),T("cpConfigId"),y("creatorFeeRate"),T("transferFeeExtensionAuth"),U(L(),180),Qi(da,"platformCurve")]);var eA=Buffer.from("vault_auth_seed","utf8"),tA=Buffer.from("global_config","utf8"),nA=Buffer.from("pool_vesting","utf8"),iA=Buffer.from("platform_config","utf8"),oA=Buffer.from("platform_fee_vault_auth_seed","utf8"),rA=Buffer.from("creator_fee_vault_auth_seed","utf8");var BA={initialize:Buffer.from([175,175,109,31,13,152,155,237]),initializeV2:Buffer.from([67,153,175,39,218,16,38,32]),buyExactIn:Buffer.from([250,234,13,123,213,156,19,236]),buyExactOut:Buffer.from([24,211,116,40,105,3,153,56]),sellExactIn:Buffer.from([149,39,222,155,211,124,152,26]),sellExactOut:Buffer.from([95,200,71,34,8,9,11,166]),createVestingAccount:Buffer.from([129,178,2,13,217,172,230,218]),claimVestedToken:Buffer.from([49,33,104,30,189,157,79,35]),createPlatformConfig:Buffer.from([176,90,196,175,253,113,220,20]),claimPlatformFee:Buffer.from([156,39,208,135,76,237,61,72]),updatePlaformConfig:Buffer.from([195,60,76,129,146,45,67,143]),initializeWithToken2022:Buffer.from([37,190,126,222,44,154,171,17]),claimPlatformFeeFromVault:Buffer.from([117,241,198,168,248,218,80,29]),claimCreatorFee:Buffer.from([26,97,138,203,132,171,141,252]),updatePlatformCurveParam:Buffer.from([138,144,138,250,220,128,4,57]),removePlatformCurveParam:Buffer.from([27,30,62,169,93,224,24,145])};var IA=new fa("18446744073709551615");import NA from"bn.js";import uk from"bn.js";import EA from"bn.js";import YA from"bn.js";import Ko from"bn.js";var kn=class{static _multipler(e){return new O(10).pow(e)}static getPrice({priceX64:e,decimalA:t,decimalB:n}){return new O(e.toString()).div(this._Q64).mul(this._multipler(t)).div(this._multipler(n))}static getPriceX64({price:e,decimalA:t,decimalB:n}){let o=e.mul(this._multipler(n)).div(this._multipler(t));return new Ko(o.mul(this._Q64).toFixed(0))}};kn._Q64=new O(new Ko(1).shln(64).toString());import{NATIVE_MINT as uw,TOKEN_2022_PROGRAM_ID as cw,TOKEN_PROGRAM_ID as lw,createAssociatedTokenAccountIdempotentInstruction as pw,createSyncNativeInstruction as dw,getTransferFeeConfig as fw,unpackMint as bw}from"@solana/spl-token";import Be from"bn.js";import{PublicKey as wa,SystemProgram as Pw}from"@solana/web3.js";var Bw={initPriceX64:new Be("515752397214619"),supply:new Be(1e15),totalSellA:new Be(7931e11),totalFundRaisingB:new Be(85e9),totalFundRaisingBUSD:new Be(125e8),totalLockedAmount:new Be("0"),cliffPeriod:new Be("0"),unlockPeriod:new Be("0"),decimals:6,virtualA:new Be("1073471847374405"),virtualB:new Be("30050573465"),realA:new Be(0),realB:new Be(0),protocolFee:new Be(0),platformId:new wa("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new Be(0),cliffPeriod:new Be(0),unlockPeriod:new Be(0),startTime:new Be(0),totalAllocatedShare:new Be(0)}},Iw=new Be(1e4);var OT=new Ta(0);export{ca as makeSwapInstruction,GP as route1Instruction,UP as route2Instruction,ua as routeInstruction,XP as swapBaseInAutoAccount,zP as swapBaseOutAutoAccount};
//# sourceMappingURL=index.mjs.map