UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

3 lines 108 kB
var Hn=Object.defineProperty,jn=Object.defineProperties;var zn=Object.getOwnPropertyDescriptors;var lt=Object.getOwnPropertySymbols;var Mr=Object.prototype.hasOwnProperty,Fr=Object.prototype.propertyIsEnumerable;var vr=(e,t,r)=>t in e?Hn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Z=(e,t)=>{for(var r in t||(t={}))Mr.call(t,r)&&vr(e,r,t[r]);if(lt)for(var r of lt(t))Fr.call(t,r)&&vr(e,r,t[r]);return e},te=(e,t)=>jn(e,zn(t));var dt=(e,t)=>{var r={};for(var n in e)Mr.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&lt)for(var n of lt(e))t.indexOf(n)<0&&Fr.call(e,n)&&(r[n]=e[n]);return r};import{PublicKey as z,SystemProgram as fs}from"@solana/web3.js";import{createAssociatedTokenAccountInstruction as ps}from"@solana/spl-token";import{PublicKey as Xn}from"@solana/web3.js";import{get as Er,set as Yn}from"lodash";var _t=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let r=t.map(n=>typeof n=="object"?JSON.stringify(n):n).join(", ");throw new Error(r)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},Nr={},Zn={};function $(e){let t=Er(Nr,e);if(!t){let r=Er(Zn,e);t=new _t({name:e,logLevel:r}),Yn(Nr,e,t)}return t}import{MINT_SIZE as As,TOKEN_PROGRAM_ID as Is,getTransferFeeConfig as Ss,unpackMint as Ls}from"@solana/spl-token";var Dt=$("Raydium_accountInfo_util");async function _r(e,t,r){let{batchRequest:n,commitment:o="confirmed",chunkCount:i=100}=Z({batchRequest:!1},r),s=Ot(t,i),a=new Array(s.length).fill([]);if(n){let c=s.map(d=>{let f=e._buildArgs([d.map(p=>p.toBase58())],o,"base64");return{methodName:"getMultipleAccounts",args:f}}),u=Ot(c,10);a=(await(await Promise.all(u.map(async d=>await e._rpcBatchRequest(d)))).flat()).map(d=>(d.error&&Dt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${d.error.message}`),d.result.value.map(f=>{if(f){let{data:p,executable:m,lamports:g,owner:b,rentEpoch:x}=f;return p.length!==2&&p[1]!=="base64"&&Dt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:m,lamports:g,owner:new Xn(b),rentEpoch:x}}return null})))}else try{a=await Promise.all(s.map(c=>e.getMultipleAccountsInfo(c,o)))}catch(c){c instanceof Error&&Dt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}import ke from"bn.js";var De=9e15,Ke=1e9,Wt="0123456789abcdef",mt="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",gt="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Ut={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-De,maxE:De,crypto:!1},Ur,we,N=!0,ht="[DecimalError] ",Re=ht+"Invalid argument: ",qr=ht+"Precision limit exceeded",Gr=ht+"crypto unavailable",Hr="[object Decimal]",ie=Math.floor,re=Math.pow,Jn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Qn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,$n=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,jr=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,de=1e7,M=7,eo=9007199254740991,to=mt.length-1,qt=gt.length-1,h={toStringTag:Hr};h.absoluteValue=h.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),R(e)};h.ceil=function(){return R(new this.constructor(this),this.e+1,2)};h.clampedTo=h.clamp=function(e,t){var r,n=this,o=n.constructor;if(e=new o(e),t=new o(t),!e.s||!t.s)return new o(NaN);if(e.gt(t))throw Error(Re+t);return r=n.cmp(e),r<0?e:n.cmp(t)>0?t:new o(n)};h.comparedTo=h.cmp=function(e){var t,r,n,o,i=this,s=i.d,a=(e=new i.constructor(e)).d,c=i.s,u=e.s;if(!s||!a)return!c||!u?NaN:c!==u?c:s===a?0:!s^c<0?1:-1;if(!s[0]||!a[0])return s[0]?c:a[0]?-u:0;if(c!==u)return c;if(i.e!==e.e)return i.e>e.e^c<0?1:-1;for(n=s.length,o=a.length,t=0,r=n<o?n:o;t<r;++t)if(s[t]!==a[t])return s[t]>a[t]^c<0?1:-1;return n===o?0:n>o^c<0?1:-1};h.cosine=h.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+M,n.rounding=1,r=ro(n,Jr(n,r)),n.precision=e,n.rounding=t,R(we==2||we==3?r.neg():r,e,t,!0)):new n(1):new n(NaN)};h.cubeRoot=h.cbrt=function(){var e,t,r,n,o,i,s,a,c,u,l=this,d=l.constructor;if(!l.isFinite()||l.isZero())return new d(l);for(N=!1,i=l.s*re(l.s*l,1/3),!i||Math.abs(i)==1/0?(r=oe(l.d),e=l.e,(i=(e-r.length+1)%3)&&(r+=i==1||i==-2?"0":"00"),i=re(r,1/3),e=ie((e+1)/3)-(e%3==(e<0?-1:2)),i==1/0?r="5e"+e:(r=i.toExponential(),r=r.slice(0,r.indexOf("e")+1)+e),n=new d(r),n.s=l.s):n=new d(i.toString()),s=(e=d.precision)+3;;)if(a=n,c=a.times(a).times(a),u=c.plus(l),n=Y(u.plus(l).times(a),u.plus(c),s+2,1),oe(a.d).slice(0,s)===(r=oe(n.d)).slice(0,s))if(r=r.slice(s-3,s+1),r=="9999"||!o&&r=="4999"){if(!o&&(R(a,e+1,0),a.times(a).times(a).eq(l))){n=a;break}s+=4,o=1}else{(!+r||!+r.slice(1)&&r.charAt(0)=="5")&&(R(n,e+1,1),t=!n.times(n).times(n).eq(l));break}return N=!0,R(n,e,d.rounding,t)};h.decimalPlaces=h.dp=function(){var e,t=this.d,r=NaN;if(t){if(e=t.length-1,r=(e-ie(this.e/M))*M,e=t[e],e)for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r};h.dividedBy=h.div=function(e){return Y(this,new this.constructor(e))};h.dividedToIntegerBy=h.divToInt=function(e){var t=this,r=t.constructor;return R(Y(t,new r(e),0,1,1),r.precision,r.rounding)};h.equals=h.eq=function(e){return this.cmp(e)===0};h.floor=function(){return R(new this.constructor(this),this.e+1,3)};h.greaterThan=h.gt=function(e){return this.cmp(e)>0};h.greaterThanOrEqualTo=h.gte=function(e){var t=this.cmp(e);return t==1||t===0};h.hyperbolicCosine=h.cosh=function(){var e,t,r,n,o,i=this,s=i.constructor,a=new s(1);if(!i.isFinite())return new s(i.s?1/0:NaN);if(i.isZero())return a;r=s.precision,n=s.rounding,s.precision=r+Math.max(i.e,i.sd())+4,s.rounding=1,o=i.d.length,o<32?(e=Math.ceil(o/3),t=(1/wt(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),i=Oe(s,1,i.times(t),new s(1),!0);for(var c,u=e,l=new s(8);u--;)c=i.times(i),i=a.minus(c.times(l.minus(c.times(l))));return R(i,s.precision=r,s.rounding=n,!0)};h.hyperbolicSine=h.sinh=function(){var e,t,r,n,o=this,i=o.constructor;if(!o.isFinite()||o.isZero())return new i(o);if(t=i.precision,r=i.rounding,i.precision=t+Math.max(o.e,o.sd())+4,i.rounding=1,n=o.d.length,n<3)o=Oe(i,2,o,o,!0);else{e=1.4*Math.sqrt(n),e=e>16?16:e|0,o=o.times(1/wt(5,e)),o=Oe(i,2,o,o,!0);for(var s,a=new i(5),c=new i(16),u=new i(20);e--;)s=o.times(o),o=o.times(a.plus(s.times(c.times(s).plus(u))))}return i.precision=t,i.rounding=r,R(o,t,r,!0)};h.hyperbolicTangent=h.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,Y(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)};h.inverseCosine=h.acos=function(){var e,t=this,r=t.constructor,n=t.abs().cmp(1),o=r.precision,i=r.rounding;return n!==-1?n===0?t.isNeg()?le(r,o,i):new r(0):new r(NaN):t.isZero()?le(r,o+4,i).times(.5):(r.precision=o+6,r.rounding=1,t=t.asin(),e=le(r,o+4,i).times(.5),r.precision=o,r.rounding=i,e.minus(t))};h.inverseHyperbolicCosine=h.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,N=!1,r=r.times(r).minus(1).sqrt().plus(r),N=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)};h.inverseHyperbolicSine=h.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,N=!1,r=r.times(r).plus(1).sqrt().plus(r),N=!0,n.precision=e,n.rounding=t,r.ln())};h.inverseHyperbolicTangent=h.atanh=function(){var e,t,r,n,o=this,i=o.constructor;return o.isFinite()?o.e>=0?new i(o.abs().eq(1)?o.s/0:o.isZero()?o:NaN):(e=i.precision,t=i.rounding,n=o.sd(),Math.max(n,e)<2*-o.e-1?R(new i(o),e,t,!0):(i.precision=r=n-o.e,o=Y(o.plus(1),new i(1).minus(o),r+e,1),i.precision=e+4,i.rounding=1,o=o.ln(),i.precision=e,i.rounding=t,o.times(.5))):new i(NaN)};h.inverseSine=h.asin=function(){var e,t,r,n,o=this,i=o.constructor;return o.isZero()?new i(o):(t=o.abs().cmp(1),r=i.precision,n=i.rounding,t!==-1?t===0?(e=le(i,r+4,n).times(.5),e.s=o.s,e):new i(NaN):(i.precision=r+6,i.rounding=1,o=o.div(new i(1).minus(o.times(o)).sqrt().plus(1)).atan(),i.precision=r,i.rounding=n,o.times(2)))};h.inverseTangent=h.atan=function(){var e,t,r,n,o,i,s,a,c,u=this,l=u.constructor,d=l.precision,f=l.rounding;if(u.isFinite()){if(u.isZero())return new l(u);if(u.abs().eq(1)&&d+4<=qt)return s=le(l,d+4,f).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(d+4<=qt)return s=le(l,d+4,f).times(.5),s.s=u.s,s}for(l.precision=a=d+10,l.rounding=1,r=Math.min(28,a/M+2|0),e=r;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(N=!1,t=Math.ceil(a/M),n=1,c=u.times(u),s=new l(u),o=u;e!==-1;)if(o=o.times(c),i=s.minus(o.div(n+=2)),o=o.times(c),s=i.plus(o.div(n+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===i.d[e]&&e--;);return r&&(s=s.times(2<<r-1)),N=!0,R(s,l.precision=d,l.rounding=f,!0)};h.isFinite=function(){return!!this.d};h.isInteger=h.isInt=function(){return!!this.d&&ie(this.e/M)>this.d.length-2};h.isNaN=function(){return!this.s};h.isNegative=h.isNeg=function(){return this.s<0};h.isPositive=h.isPos=function(){return this.s>0};h.isZero=function(){return!!this.d&&this.d[0]===0};h.lessThan=h.lt=function(e){return this.cmp(e)<0};h.lessThanOrEqualTo=h.lte=function(e){return this.cmp(e)<1};h.logarithm=h.log=function(e){var t,r,n,o,i,s,a,c,u=this,l=u.constructor,d=l.precision,f=l.rounding,p=5;if(e==null)e=new l(10),t=!0;else{if(e=new l(e),r=e.d,e.s<0||!r||!r[0]||e.eq(1))return new l(NaN);t=e.eq(10)}if(r=u.d,u.s<0||!r||!r[0]||u.eq(1))return new l(r&&!r[0]?-1/0:u.s!=1?NaN:r?0:1/0);if(t)if(r.length>1)i=!0;else{for(o=r[0];o%10===0;)o/=10;i=o!==1}if(N=!1,a=d+p,s=Be(u,a),n=t?yt(l,a+10):Be(e,a),c=Y(s,n,a,1),je(c.d,o=d,f))do if(a+=10,s=Be(u,a),n=t?yt(l,a+10):Be(e,a),c=Y(s,n,a,1),!i){+oe(c.d).slice(o+1,o+15)+1==1e14&&(c=R(c,d+1,0));break}while(je(c.d,o+=10,f));return N=!0,R(c,d,f)};h.minus=h.sub=function(e){var t,r,n,o,i,s,a,c,u,l,d,f,p=this,m=p.constructor;if(e=new m(e),!p.d||!e.d)return!p.s||!e.s?e=new m(NaN):p.d?e.s=-e.s:e=new m(e.d||p.s!==e.s?p:NaN),e;if(p.s!=e.s)return e.s=-e.s,p.plus(e);if(u=p.d,f=e.d,a=m.precision,c=m.rounding,!u[0]||!f[0]){if(f[0])e.s=-e.s;else if(u[0])e=new m(p);else return new m(c===3?-0:0);return N?R(e,a,c):e}if(r=ie(e.e/M),l=ie(p.e/M),u=u.slice(),i=l-r,i){for(d=i<0,d?(t=u,i=-i,s=f.length):(t=f,r=l,s=u.length),n=Math.max(Math.ceil(a/M),s)+2,i>n&&(i=n,t.length=1),t.reverse(),n=i;n--;)t.push(0);t.reverse()}else{for(n=u.length,s=f.length,d=n<s,d&&(s=n),n=0;n<s;n++)if(u[n]!=f[n]){d=u[n]<f[n];break}i=0}for(d&&(t=u,u=f,f=t,e.s=-e.s),s=u.length,n=f.length-s;n>0;--n)u[s++]=0;for(n=f.length;n>i;){if(u[--n]<f[n]){for(o=n;o&&u[--o]===0;)u[o]=de-1;--u[o],u[n]+=de}u[n]-=f[n]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--r;return u[0]?(e.d=u,e.e=bt(u,r),N?R(e,a,c):e):new m(c===3?-0:0)};h.modulo=h.mod=function(e){var t,r=this,n=r.constructor;return e=new n(e),!r.d||!e.s||e.d&&!e.d[0]?new n(NaN):!e.d||r.d&&!r.d[0]?R(new n(r),n.precision,n.rounding):(N=!1,n.modulo==9?(t=Y(r,e.abs(),0,3,1),t.s*=e.s):t=Y(r,e,0,n.modulo,1),t=t.times(e),N=!0,r.minus(t))};h.naturalExponential=h.exp=function(){return Gt(this)};h.naturalLogarithm=h.ln=function(){return Be(this)};h.negated=h.neg=function(){var e=new this.constructor(this);return e.s=-e.s,R(e)};h.plus=h.add=function(e){var t,r,n,o,i,s,a,c,u,l,d=this,f=d.constructor;if(e=new f(e),!d.d||!e.d)return!d.s||!e.s?e=new f(NaN):d.d||(e=new f(e.d||d.s===e.s?d:NaN)),e;if(d.s!=e.s)return e.s=-e.s,d.minus(e);if(u=d.d,l=e.d,a=f.precision,c=f.rounding,!u[0]||!l[0])return l[0]||(e=new f(d)),N?R(e,a,c):e;if(i=ie(d.e/M),n=ie(e.e/M),u=u.slice(),o=i-n,o){for(o<0?(r=u,o=-o,s=l.length):(r=l,n=i,s=u.length),i=Math.ceil(a/M),s=i>s?i+1:s+1,o>s&&(o=s,r.length=1),r.reverse();o--;)r.push(0);r.reverse()}for(s=u.length,o=l.length,s-o<0&&(o=s,r=l,l=u,u=r),t=0;o;)t=(u[--o]=u[o]+l[o]+t)/de|0,u[o]%=de;for(t&&(u.unshift(t),++n),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=bt(u,n),N?R(e,a,c):e};h.precision=h.sd=function(e){var t,r=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Re+e);return r.d?(t=zr(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t};h.round=function(){var e=this,t=e.constructor;return R(new t(e),e.e+1,t.rounding)};h.sine=h.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+M,n.rounding=1,r=oo(n,Jr(n,r)),n.precision=e,n.rounding=t,R(we>2?r.neg():r,e,t,!0)):new n(NaN)};h.squareRoot=h.sqrt=function(){var e,t,r,n,o,i,s=this,a=s.d,c=s.e,u=s.s,l=s.constructor;if(u!==1||!a||!a[0])return new l(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(N=!1,u=Math.sqrt(+s),u==0||u==1/0?(t=oe(a),(t.length+c)%2==0&&(t+="0"),u=Math.sqrt(t),c=ie((c+1)/2)-(c<0||c%2),u==1/0?t="5e"+c:(t=u.toExponential(),t=t.slice(0,t.indexOf("e")+1)+c),n=new l(t)):n=new l(u.toString()),r=(c=l.precision)+3;;)if(i=n,n=i.plus(Y(s,i,r+2,1)).times(.5),oe(i.d).slice(0,r)===(t=oe(n.d)).slice(0,r))if(t=t.slice(r-3,r+1),t=="9999"||!o&&t=="4999"){if(!o&&(R(i,c+1,0),i.times(i).eq(s))){n=i;break}r+=4,o=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(R(n,c+1,1),e=!n.times(n).eq(s));break}return N=!0,R(n,c,l.rounding,e)};h.tangent=h.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,r=r.sin(),r.s=1,r=Y(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,R(we==2||we==4?r.neg():r,e,t,!0)):new n(NaN)};h.times=h.mul=function(e){var t,r,n,o,i,s,a,c,u,l=this,d=l.constructor,f=l.d,p=(e=new d(e)).d;if(e.s*=l.s,!f||!f[0]||!p||!p[0])return new d(!e.s||f&&!f[0]&&!p||p&&!p[0]&&!f?NaN:!f||!p?e.s/0:e.s*0);for(r=ie(l.e/M)+ie(e.e/M),c=f.length,u=p.length,c<u&&(i=f,f=p,p=i,s=c,c=u,u=s),i=[],s=c+u,n=s;n--;)i.push(0);for(n=u;--n>=0;){for(t=0,o=c+n;o>n;)a=i[o]+p[n]*f[o-n-1]+t,i[o--]=a%de|0,t=a/de|0;i[o]=(i[o]+t)%de|0}for(;!i[--s];)i.pop();return t?++r:i.shift(),e.d=i,e.e=bt(i,r),N?R(e,d.precision,d.rounding):e};h.toBinary=function(e,t){return jt(this,2,e,t)};h.toDecimalPlaces=h.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(ae(e,0,Ke),t===void 0?t=n.rounding:ae(t,0,8),R(r,e+r.e+1,t))};h.toExponential=function(e,t){var r,n=this,o=n.constructor;return e===void 0?r=pe(n,!0):(ae(e,0,Ke),t===void 0?t=o.rounding:ae(t,0,8),n=R(new o(n),e+1,t),r=pe(n,!0,e+1)),n.isNeg()&&!n.isZero()?"-"+r:r};h.toFixed=function(e,t){var r,n,o=this,i=o.constructor;return e===void 0?r=pe(o):(ae(e,0,Ke),t===void 0?t=i.rounding:ae(t,0,8),n=R(new i(o),e+o.e+1,t),r=pe(n,!1,e+n.e+1)),o.isNeg()&&!o.isZero()?"-"+r:r};h.toFraction=function(e){var t,r,n,o,i,s,a,c,u,l,d,f,p=this,m=p.d,g=p.constructor;if(!m)return new g(p);if(u=r=new g(1),n=c=new g(0),t=new g(n),i=t.e=zr(m)-p.e-1,s=i%M,t.d[0]=re(10,s<0?M+s:s),e==null)e=i>0?t:u;else{if(a=new g(e),!a.isInt()||a.lt(u))throw Error(Re+a);e=a.gt(t)?i>0?t:u:a}for(N=!1,a=new g(oe(m)),l=g.precision,g.precision=i=m.length*M*2;d=Y(a,t,0,1,1),o=r.plus(d.times(n)),o.cmp(e)!=1;)r=n,n=o,o=u,u=c.plus(d.times(o)),c=o,o=t,t=a.minus(d.times(o)),a=o;return o=Y(e.minus(r),n,0,1,1),c=c.plus(o.times(u)),r=r.plus(o.times(n)),c.s=u.s=p.s,f=Y(u,n,i,1).minus(p).abs().cmp(Y(c,r,i,1).minus(p).abs())<1?[u,n]:[c,r],g.precision=l,N=!0,f};h.toHexadecimal=h.toHex=function(e,t){return jt(this,16,e,t)};h.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),e==null){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),t===void 0?t=n.rounding:ae(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(N=!1,r=Y(r,e,0,t,1).times(e),N=!0,R(r)):(e.s=r.s,r=e),r};h.toNumber=function(){return+this};h.toOctal=function(e,t){return jt(this,8,e,t)};h.toPower=h.pow=function(e){var t,r,n,o,i,s,a=this,c=a.constructor,u=+(e=new c(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new c(re(+a,u));if(a=new c(a),a.eq(1))return a;if(n=c.precision,i=c.rounding,e.eq(1))return R(a,n,i);if(t=ie(e.e/M),t>=e.d.length-1&&(r=u<0?-u:u)<=eo)return o=Yr(c,a,r,n),e.s<0?new c(1).div(o):R(o,n,i);if(s=a.s,s<0){if(t<e.d.length-1)return new c(NaN);if((e.d[t]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return r=re(+a,u),t=r==0||!isFinite(r)?ie(u*(Math.log("0."+oe(a.d))/Math.LN10+a.e+1)):new c(r+"").e,t>c.maxE+1||t<c.minE-1?new c(t>0?s/0:0):(N=!1,c.rounding=a.s=1,r=Math.min(12,(t+"").length),o=Gt(e.times(Be(a,n+r)),n),o.d&&(o=R(o,n+5,1),je(o.d,n,i)&&(t=n+10,o=R(Gt(e.times(Be(a,t+r)),t),t+5,1),+oe(o.d).slice(n+1,n+15)+1==1e14&&(o=R(o,n+1,0)))),o.s=s,N=!0,c.rounding=i,R(o,n,i))};h.toPrecision=function(e,t){var r,n=this,o=n.constructor;return e===void 0?r=pe(n,n.e<=o.toExpNeg||n.e>=o.toExpPos):(ae(e,1,Ke),t===void 0?t=o.rounding:ae(t,0,8),n=R(new o(n),e,t),r=pe(n,e<=n.e||n.e<=o.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+r:r};h.toSignificantDigits=h.toSD=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(ae(e,1,Ke),t===void 0?t=n.rounding:ae(t,0,8)),R(new n(r),e,t)};h.toString=function(){var e=this,t=e.constructor,r=pe(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+r:r};h.truncated=h.trunc=function(){return R(new this.constructor(this),this.e+1,1)};h.valueOf=h.toJSON=function(){var e=this,t=e.constructor,r=pe(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+r:r};function oe(e){var t,r,n,o=e.length-1,i="",s=e[0];if(o>0){for(i+=s,t=1;t<o;t++)n=e[t]+"",r=M-n.length,r&&(i+=Le(r)),i+=n;s=e[t],n=s+"",r=M-n.length,r&&(i+=Le(r))}else if(s===0)return"0";for(;s%10===0;)s/=10;return i+s}function ae(e,t,r){if(e!==~~e||e<t||e>r)throw Error(Re+e)}function je(e,t,r,n){var o,i,s,a;for(i=e[0];i>=10;i/=10)--t;return--t<0?(t+=M,o=0):(o=Math.ceil((t+1)/M),t%=M),i=re(10,M-t),a=e[o]%i|0,n==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=r<4&&a==99999||r>3&&a==49999||a==5e4||a==0):s=(r<4&&a+1==i||r>3&&a+1==i/2)&&(e[o+1]/i/100|0)==re(10,t-2)-1||(a==i/2||a==0)&&(e[o+1]/i/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(n||r<4)&&a==9999||!n&&r>3&&a==4999):s=((n||r<4)&&a+1==i||!n&&r>3&&a+1==i/2)&&(e[o+1]/i/1e3|0)==re(10,t-3)-1,s}function pt(e,t,r){for(var n,o=[0],i,s=0,a=e.length;s<a;){for(i=o.length;i--;)o[i]*=t;for(o[0]+=Wt.indexOf(e.charAt(s++)),n=0;n<o.length;n++)o[n]>r-1&&(o[n+1]===void 0&&(o[n+1]=0),o[n+1]+=o[n]/r|0,o[n]%=r)}return o.reverse()}function ro(e,t){var r,n,o;if(t.isZero())return t;n=t.d.length,n<32?(r=Math.ceil(n/3),o=(1/wt(4,r)).toString()):(r=16,o="2.3283064365386962890625e-10"),e.precision+=r,t=Oe(e,1,t.times(o),new e(1));for(var i=r;i--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=r,t}var Y=function(){function e(n,o,i){var s,a=0,c=n.length;for(n=n.slice();c--;)s=n[c]*o+a,n[c]=s%i|0,a=s/i|0;return a&&n.unshift(a),n}function t(n,o,i,s){var a,c;if(i!=s)c=i>s?1:-1;else for(a=c=0;a<i;a++)if(n[a]!=o[a]){c=n[a]>o[a]?1:-1;break}return c}function r(n,o,i,s){for(var a=0;i--;)n[i]-=a,a=n[i]<o[i]?1:0,n[i]=a*s+n[i]-o[i];for(;!n[0]&&n.length>1;)n.shift()}return function(n,o,i,s,a,c){var u,l,d,f,p,m,g,b,x,I,P,w,k,A,S,L,F,B,v,K,E=n.constructor,C=n.s==o.s?1:-1,W=n.d,V=o.d;if(!W||!W[0]||!V||!V[0])return new E(!n.s||!o.s||(W?V&&W[0]==V[0]:!V)?NaN:W&&W[0]==0||!V?C*0:C/0);for(c?(p=1,l=n.e-o.e):(c=de,p=M,l=ie(n.e/p)-ie(o.e/p)),v=V.length,F=W.length,x=new E(C),I=x.d=[],d=0;V[d]==(W[d]||0);d++);if(V[d]>(W[d]||0)&&l--,i==null?(A=i=E.precision,s=E.rounding):a?A=i+(n.e-o.e)+1:A=i,A<0)I.push(1),m=!0;else{if(A=A/p+2|0,d=0,v==1){for(f=0,V=V[0],A++;(d<F||f)&&A--;d++)S=f*c+(W[d]||0),I[d]=S/V|0,f=S%V|0;m=f||d<F}else{for(f=c/(V[0]+1)|0,f>1&&(V=e(V,f,c),W=e(W,f,c),v=V.length,F=W.length),L=v,P=W.slice(0,v),w=P.length;w<v;)P[w++]=0;K=V.slice(),K.unshift(0),B=V[0],V[1]>=c/2&&++B;do f=0,u=t(V,P,v,w),u<0?(k=P[0],v!=w&&(k=k*c+(P[1]||0)),f=k/B|0,f>1?(f>=c&&(f=c-1),g=e(V,f,c),b=g.length,w=P.length,u=t(g,P,b,w),u==1&&(f--,r(g,v<b?K:V,b,c))):(f==0&&(u=f=1),g=V.slice()),b=g.length,b<w&&g.unshift(0),r(P,g,w,c),u==-1&&(w=P.length,u=t(V,P,v,w),u<1&&(f++,r(P,v<w?K:V,w,c))),w=P.length):u===0&&(f++,P=[0]),I[d++]=f,u&&P[0]?P[w++]=W[L]||0:(P=[W[L]],w=1);while((L++<F||P[0]!==void 0)&&A--);m=P[0]!==void 0}I[0]||I.shift()}if(p==1)x.e=l,Ur=m;else{for(d=1,f=I[0];f>=10;f/=10)d++;x.e=d+l*p-1,R(x,a?i+x.e+1:i,s,m)}return x}}();function R(e,t,r,n){var o,i,s,a,c,u,l,d,f,p=e.constructor;e:if(t!=null){if(d=e.d,!d)return e;for(o=1,a=d[0];a>=10;a/=10)o++;if(i=t-o,i<0)i+=M,s=t,l=d[f=0],c=l/re(10,o-s-1)%10|0;else if(f=Math.ceil((i+1)/M),a=d.length,f>=a)if(n){for(;a++<=f;)d.push(0);l=c=0,o=1,i%=M,s=i-M+1}else break e;else{for(l=a=d[f],o=1;a>=10;a/=10)o++;i%=M,s=i-M+o,c=s<0?0:l/re(10,o-s-1)%10|0}if(n=n||t<0||d[f+1]!==void 0||(s<0?l:l%re(10,o-s-1)),u=r<4?(c||n)&&(r==0||r==(e.s<0?3:2)):c>5||c==5&&(r==4||n||r==6&&(i>0?s>0?l/re(10,o-s):0:d[f-1])%10&1||r==(e.s<0?8:7)),t<1||!d[0])return d.length=0,u?(t-=e.e+1,d[0]=re(10,(M-t%M)%M),e.e=-t||0):d[0]=e.e=0,e;if(i==0?(d.length=f,a=1,f--):(d.length=f+1,a=re(10,M-i),d[f]=s>0?(l/re(10,o-s)%re(10,s)|0)*a:0),u)for(;;)if(f==0){for(i=1,s=d[0];s>=10;s/=10)i++;for(s=d[0]+=a,a=1;s>=10;s/=10)a++;i!=a&&(e.e++,d[0]==de&&(d[0]=1));break}else{if(d[f]+=a,d[f]!=de)break;d[f--]=0,a=1}for(i=d.length;d[--i]===0;)d.pop()}return N&&(e.e>p.maxE?(e.d=null,e.e=NaN):e.e<p.minE&&(e.e=0,e.d=[0])),e}function pe(e,t,r){if(!e.isFinite())return Xr(e);var n,o=e.e,i=oe(e.d),s=i.length;return t?(r&&(n=r-s)>0?i=i.charAt(0)+"."+i.slice(1)+Le(n):s>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(e.e<0?"e":"e+")+e.e):o<0?(i="0."+Le(-o-1)+i,r&&(n=r-s)>0&&(i+=Le(n))):o>=s?(i+=Le(o+1-s),r&&(n=r-o-1)>0&&(i=i+"."+Le(n))):((n=o+1)<s&&(i=i.slice(0,n)+"."+i.slice(n)),r&&(n=r-s)>0&&(o+1===s&&(i+="."),i+=Le(n))),i}function bt(e,t){var r=e[0];for(t*=M;r>=10;r/=10)t++;return t}function yt(e,t,r){if(t>to)throw N=!0,r&&(e.precision=r),Error(qr);return R(new e(mt),t,1,!0)}function le(e,t,r){if(t>qt)throw Error(qr);return R(new e(gt),t,r,!0)}function zr(e){var t=e.length-1,r=t*M+1;if(t=e[t],t){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function Le(e){for(var t="";e--;)t+="0";return t}function Yr(e,t,r,n){var o,i=new e(1),s=Math.ceil(n/M+4);for(N=!1;;){if(r%2&&(i=i.times(t),Or(i.d,s)&&(o=!0)),r=ie(r/2),r===0){r=i.d.length-1,o&&i.d[r]===0&&++i.d[r];break}t=t.times(t),Or(t.d,s)}return N=!0,i}function Dr(e){return e.d[e.d.length-1]&1}function Zr(e,t,r){for(var n,o=new e(t[0]),i=0;++i<t.length;)if(n=new e(t[i]),n.s)o[r](n)&&(o=n);else{o=n;break}return o}function Gt(e,t){var r,n,o,i,s,a,c,u=0,l=0,d=0,f=e.constructor,p=f.rounding,m=f.precision;if(!e.d||!e.d[0]||e.e>17)return new f(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:0/0);for(t==null?(N=!1,c=m):c=t,a=new f(.03125);e.e>-2;)e=e.times(a),d+=5;for(n=Math.log(re(2,d))/Math.LN10*2+5|0,c+=n,r=i=s=new f(1),f.precision=c;;){if(i=R(i.times(e),c,1),r=r.times(++l),a=s.plus(Y(i,r,c,1)),oe(a.d).slice(0,c)===oe(s.d).slice(0,c)){for(o=d;o--;)s=R(s.times(s),c,1);if(t==null)if(u<3&&je(s.d,c-n,p,u))f.precision=c+=10,r=i=a=new f(1),l=0,u++;else return R(s,f.precision=m,p,N=!0);else return f.precision=m,s}s=a}}function Be(e,t){var r,n,o,i,s,a,c,u,l,d,f,p=1,m=10,g=e,b=g.d,x=g.constructor,I=x.rounding,P=x.precision;if(g.s<0||!b||!b[0]||!g.e&&b[0]==1&&b.length==1)return new x(b&&!b[0]?-1/0:g.s!=1?NaN:b?0:g);if(t==null?(N=!1,l=P):l=t,x.precision=l+=m,r=oe(b),n=r.charAt(0),Math.abs(i=g.e)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)g=g.times(e),r=oe(g.d),n=r.charAt(0),p++;i=g.e,n>1?(g=new x("0."+r),i++):g=new x(n+"."+r.slice(1))}else return u=yt(x,l+2,P).times(i+""),g=Be(new x(n+"."+r.slice(1)),l-m).plus(u),x.precision=P,t==null?R(g,P,I,N=!0):g;for(d=g,c=s=g=Y(g.minus(1),g.plus(1),l,1),f=R(g.times(g),l,1),o=3;;){if(s=R(s.times(f),l,1),u=c.plus(Y(s,new x(o),l,1)),oe(u.d).slice(0,l)===oe(c.d).slice(0,l))if(c=c.times(2),i!==0&&(c=c.plus(yt(x,l+2,P).times(i+""))),c=Y(c,new x(p),l,1),t==null)if(je(c.d,l-m,I,a))x.precision=l+=m,u=s=g=Y(d.minus(1),d.plus(1),l,1),f=R(g.times(g),l,1),o=a=1;else return R(c,x.precision=P,I,N=!0);else return x.precision=P,c;c=u,o+=2}}function Xr(e){return String(e.s*e.s/0)}function Ht(e,t){var r,n,o;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;n++);for(o=t.length;t.charCodeAt(o-1)===48;--o);if(t=t.slice(n,o),t){if(o-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%M,r<0&&(n+=M),n<o){for(n&&e.d.push(+t.slice(0,n)),o-=M;n<o;)e.d.push(+t.slice(n,n+=M));t=t.slice(n),n=M-t.length}else n-=o;for(;n--;)t+="0";e.d.push(+t),N&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function no(e,t){var r,n,o,i,s,a,c,u,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),jr.test(t))return Ht(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Qn.test(t))r=16,t=t.toLowerCase();else if(Jn.test(t))r=2;else if($n.test(t))r=8;else throw Error(Re+t);for(i=t.search(/p/i),i>0?(c=+t.slice(i+1),t=t.substring(2,i)):t=t.slice(2),i=t.indexOf("."),s=i>=0,n=e.constructor,s&&(t=t.replace(".",""),a=t.length,i=a-i,o=Yr(n,new n(r),i,i*2)),u=pt(t,r,de),l=u.length-1,i=l;u[i]===0;--i)u.pop();return i<0?new n(e.s*0):(e.e=bt(u,l),e.d=u,N=!1,s&&(e=Y(e,o,a*4)),c&&(e=e.times(Math.abs(c)<54?re(2,c):ze.pow(2,c))),N=!0,e)}function oo(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:Oe(e,2,t,t);r=1.4*Math.sqrt(n),r=r>16?16:r|0,t=t.times(1/wt(5,r)),t=Oe(e,2,t,t);for(var o,i=new e(5),s=new e(16),a=new e(20);r--;)o=t.times(t),t=t.times(i.plus(o.times(s.times(o).minus(a))));return t}function Oe(e,t,r,n,o){var i,s,a,c,u=1,l=e.precision,d=Math.ceil(l/M);for(N=!1,c=r.times(r),a=new e(n);;){if(s=Y(a.times(c),new e(t++*t++),l,1),a=o?n.plus(s):n.minus(s),n=Y(s.times(c),new e(t++*t++),l,1),s=a.plus(n),s.d[d]!==void 0){for(i=d;s.d[i]===a.d[i]&&i--;);if(i==-1)break}i=a,a=n,n=s,s=i,u++}return N=!0,s.d.length=d+1,s}function wt(e,t){for(var r=e;--t;)r*=e;return r}function Jr(e,t){var r,n=t.s<0,o=le(e,e.precision,1),i=o.times(.5);if(t=t.abs(),t.lte(i))return we=n?4:1,t;if(r=t.divToInt(o),r.isZero())we=n?3:2;else{if(t=t.minus(r.times(o)),t.lte(i))return we=Dr(r)?n?2:3:n?4:1,t;we=Dr(r)?n?1:4:n?3:2}return t.minus(o).abs()}function jt(e,t,r,n){var o,i,s,a,c,u,l,d,f,p=e.constructor,m=r!==void 0;if(m?(ae(r,1,Ke),n===void 0?n=p.rounding:ae(n,0,8)):(r=p.precision,n=p.rounding),!e.isFinite())l=Xr(e);else{for(l=pe(e),s=l.indexOf("."),m?(o=2,t==16?r=r*4-3:t==8&&(r=r*3-2)):o=t,s>=0&&(l=l.replace(".",""),f=new p(1),f.e=l.length-s,f.d=pt(pe(f),10,o),f.e=f.d.length),d=pt(l,10,o),i=c=d.length;d[--c]==0;)d.pop();if(!d[0])l=m?"0p+0":"0";else{if(s<0?i--:(e=new p(e),e.d=d,e.e=i,e=Y(e,f,r,n,0,o),d=e.d,i=e.e,u=Ur),s=d[r],a=o/2,u=u||d[r+1]!==void 0,u=n<4?(s!==void 0||u)&&(n===0||n===(e.s<0?3:2)):s>a||s===a&&(n===4||u||n===6&&d[r-1]&1||n===(e.s<0?8:7)),d.length=r,u)for(;++d[--r]>o-1;)d[r]=0,r||(++i,d.unshift(1));for(c=d.length;!d[c-1];--c);for(s=0,l="";s<c;s++)l+=Wt.charAt(d[s]);if(m){if(c>1)if(t==16||t==8){for(s=t==16?4:3,--c;c%s;c++)l+="0";for(d=pt(l,o,t),c=d.length;!d[c-1];--c);for(s=1,l="1.";s<c;s++)l+=Wt.charAt(d[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(i<0?"p":"p+")+i}else if(i<0){for(;++i;)l="0"+l;l="0."+l}else if(++i>c)for(i-=c;i--;)l+="0";else i<c&&(l=l.slice(0,i)+"."+l.slice(i))}l=(t==16?"0x":t==2?"0b":t==8?"0o":"")+l}return e.s<0?"-"+l:l}function Or(e,t){if(e.length>t)return e.length=t,!0}function io(e){return new this(e).abs()}function so(e){return new this(e).acos()}function ao(e){return new this(e).acosh()}function uo(e,t){return new this(e).plus(t)}function co(e){return new this(e).asin()}function lo(e){return new this(e).asinh()}function fo(e){return new this(e).atan()}function po(e){return new this(e).atanh()}function mo(e,t){e=new this(e),t=new this(t);var r,n=this.precision,o=this.rounding,i=n+4;return!e.s||!t.s?r=new this(NaN):!e.d&&!t.d?(r=le(this,i,1).times(t.s>0?.25:.75),r.s=e.s):!t.d||e.isZero()?(r=t.s<0?le(this,n,o):new this(0),r.s=e.s):!e.d||t.isZero()?(r=le(this,i,1).times(.5),r.s=e.s):t.s<0?(this.precision=i,this.rounding=1,r=this.atan(Y(e,t,i,1)),t=le(this,i,1),this.precision=n,this.rounding=o,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan(Y(e,t,i,1)),r}function go(e){return new this(e).cbrt()}function yo(e){return R(e=new this(e),e.e+1,2)}function ho(e,t,r){return new this(e).clamp(t,r)}function bo(e){if(!e||typeof e!="object")throw Error(ht+"Object expected");var t,r,n,o=e.defaults===!0,i=["precision",1,Ke,"rounding",0,8,"toExpNeg",-De,0,"toExpPos",0,De,"maxE",0,De,"minE",-De,0,"modulo",0,9];for(t=0;t<i.length;t+=3)if(r=i[t],o&&(this[r]=Ut[r]),(n=e[r])!==void 0)if(ie(n)===n&&n>=i[t+1]&&n<=i[t+2])this[r]=n;else throw Error(Re+r+": "+n);if(r="crypto",o&&(this[r]=Ut[r]),(n=e[r])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[r]=!0;else throw Error(Gr);else this[r]=!1;else throw Error(Re+r+": "+n);return this}function wo(e){return new this(e).cos()}function To(e){return new this(e).cosh()}function Qr(e){var t,r,n;function o(i){var s,a,c,u=this;if(!(u instanceof o))return new o(i);if(u.constructor=o,Wr(i)){u.s=i.s,N?!i.d||i.e>o.maxE?(u.e=NaN,u.d=null):i.e<o.minE?(u.e=0,u.d=[0]):(u.e=i.e,u.d=i.d.slice()):(u.e=i.e,u.d=i.d?i.d.slice():i.d);return}if(c=typeof i,c==="number"){if(i===0){u.s=1/i<0?-1:1,u.e=0,u.d=[0];return}if(i<0?(i=-i,u.s=-1):u.s=1,i===~~i&&i<1e7){for(s=0,a=i;a>=10;a/=10)s++;N?s>o.maxE?(u.e=NaN,u.d=null):s<o.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[i]):(u.e=s,u.d=[i]);return}else if(i*0!==0){i||(u.s=NaN),u.e=NaN,u.d=null;return}return Ht(u,i.toString())}else if(c!=="string")throw Error(Re+i);return(a=i.charCodeAt(0))===45?(i=i.slice(1),u.s=-1):(a===43&&(i=i.slice(1)),u.s=1),jr.test(i)?Ht(u,i):no(u,i)}if(o.prototype=h,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=bo,o.clone=Qr,o.isDecimal=Wr,o.abs=io,o.acos=so,o.acosh=ao,o.add=uo,o.asin=co,o.asinh=lo,o.atan=fo,o.atanh=po,o.atan2=mo,o.cbrt=go,o.ceil=yo,o.clamp=ho,o.cos=wo,o.cosh=To,o.div=xo,o.exp=Po,o.floor=ko,o.hypot=Ao,o.ln=Io,o.log=So,o.log10=Bo,o.log2=Lo,o.max=Ro,o.min=Ko,o.mod=Co,o.mul=Vo,o.pow=vo,o.random=Mo,o.round=Fo,o.sign=Eo,o.sin=No,o.sinh=_o,o.sqrt=Do,o.sub=Oo,o.sum=Wo,o.tan=Uo,o.tanh=qo,o.trunc=Go,e===void 0&&(e={}),e&&e.defaults!==!0)for(n=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<n.length;)e.hasOwnProperty(r=n[t++])||(e[r]=this[r]);return o.config(e),o}function xo(e,t){return new this(e).div(t)}function Po(e){return new this(e).exp()}function ko(e){return R(e=new this(e),e.e+1,3)}function Ao(){var e,t,r=new this(0);for(N=!1,e=0;e<arguments.length;)if(t=new this(arguments[e++]),t.d)r.d&&(r=r.plus(t.times(t)));else{if(t.s)return N=!0,new this(1/0);r=t}return N=!0,r.sqrt()}function Wr(e){return e instanceof ze||e&&e.toStringTag===Hr||!1}function Io(e){return new this(e).ln()}function So(e,t){return new this(e).log(t)}function Lo(e){return new this(e).log(2)}function Bo(e){return new this(e).log(10)}function Ro(){return Zr(this,arguments,"lt")}function Ko(){return Zr(this,arguments,"gt")}function Co(e,t){return new this(e).mod(t)}function Vo(e,t){return new this(e).mul(t)}function vo(e,t){return new this(e).pow(t)}function Mo(e){var t,r,n,o,i=0,s=new this(1),a=[];if(e===void 0?e=this.precision:ae(e,1,Ke),n=Math.ceil(e/M),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(n));i<n;)o=t[i],o>=429e7?t[i]=crypto.getRandomValues(new Uint32Array(1))[0]:a[i++]=o%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(n*=4);i<n;)o=t[i]+(t[i+1]<<8)+(t[i+2]<<16)+((t[i+3]&127)<<24),o>=214e7?crypto.randomBytes(4).copy(t,i):(a.push(o%1e7),i+=4);i=n/4}else throw Error(Gr);else for(;i<n;)a[i++]=Math.random()*1e7|0;for(n=a[--i],e%=M,n&&e&&(o=re(10,M-e),a[i]=(n/o|0)*o);a[i]===0;i--)a.pop();if(i<0)r=0,a=[0];else{for(r=-1;a[0]===0;r-=M)a.shift();for(n=1,o=a[0];o>=10;o/=10)n++;n<M&&(r-=M-n)}return s.e=r,s.d=a,s}function Fo(e){return R(e=new this(e),e.e+1,this.rounding)}function Eo(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function No(e){return new this(e).sin()}function _o(e){return new this(e).sinh()}function Do(e){return new this(e).sqrt()}function Oo(e,t){return new this(e).sub(t)}function Wo(){var e=0,t=arguments,r=new this(t[e]);for(N=!1;r.s&&++e<t.length;)r=r.plus(t[e]);return N=!0,R(r,this.precision,this.rounding)}function Uo(e){return new this(e).tan()}function qo(e){return new this(e).tanh()}function Go(e){return R(e=new this(e),e.e+1,1)}h[Symbol.for("nodejs.util.inspect.custom")]=h.toString;h[Symbol.toStringTag]="Decimal";var ze=h.constructor=Qr(Ut);mt=new ze(mt);gt=new ze(gt);var zt=ze;import Qo from"big.js";import Pt from"bn.js";import Ho from"toformat";var jo=Ho,Ye=jo;import xt from"big.js";import Yo from"bn.js";import Zo from"decimal.js-light";import Ze from"bn.js";var $r=9007199254740991;function U(e){let t=$("Raydium_parseBigNumberish");if(e instanceof Ze)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new Ze(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=$r||e<=-$r)&&t.logWithError(`BigNumberish number overflow: ${e}`),new Ze(String(e))):typeof e=="bigint"?new Ze(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new Ze(0))}var Tt=$("module/fraction"),Yt=Ye(xt),Xe=Ye(Zo),Xo={[0]:Xe.ROUND_DOWN,[1]:Xe.ROUND_HALF_UP,[2]:Xe.ROUND_UP},Jo={[0]:xt.roundDown,[1]:xt.roundHalfUp,[2]:xt.roundUp},H=class{constructor(t,r=new Yo(1)){this.numerator=U(t),this.denominator=U(r)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new H(this.denominator,this.numerator)}add(t){let r=t instanceof H?t:new H(U(t));return this.denominator.eq(r.denominator)?new H(this.numerator.add(r.numerator),this.denominator):new H(this.numerator.mul(r.denominator).add(r.numerator.mul(this.denominator)),this.denominator.mul(r.denominator))}sub(t){let r=t instanceof H?t:new H(U(t));return this.denominator.eq(r.denominator)?new H(this.numerator.sub(r.numerator),this.denominator):new H(this.numerator.mul(r.denominator).sub(r.numerator.mul(this.denominator)),this.denominator.mul(r.denominator))}mul(t){let r=t instanceof H?t:new H(U(t));return new H(this.numerator.mul(r.numerator),this.denominator.mul(r.denominator))}div(t){let r=t instanceof H?t:new H(U(t));return new H(this.numerator.mul(r.denominator),this.denominator.mul(r.numerator))}toSignificant(t,r={groupSeparator:""},n=1){Number.isInteger(t)||Tt.logWithError(`${t} is not an integer.`),t<=0&&Tt.logWithError(`${t} is not positive.`),Xe.set({precision:t+1,rounding:Xo[n]});let o=new Xe(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return o.toFormat(o.decimalPlaces(),r)}toFixed(t,r={groupSeparator:""},n=1){return Number.isInteger(t)||Tt.logWithError(`${t} is not an integer.`),t<0&&Tt.logWithError(`${t} is negative.`),Yt.DP=t,Yt.RM=Jo[n]||1,new Yt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,r)}isZero(){return this.numerator.isZero()}};var $o=$("Raydium_amount"),en=Ye(Qo);function ei(e,t){let r="0",n="0";if(e.includes(".")){let o=e.split(".");o.length===2?([r,n]=o,n=n.padEnd(t,"0")):$o.logWithError(`invalid number string, num: ${e}`)}else r=e;return[r,n.slice(0,t)||n]}var Te=class extends H{constructor(r,n,o=!0,i){let s=new Pt(0),a=Zt.pow(new Pt(r.decimals));if(o)s=U(n);else{let c=new Pt(0),u=new Pt(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[l,d]=ei(n.toString(),r.decimals);c=U(l),u=U(d)}c=c.mul(a),s=c.add(u)}super(s,a);this.logger=$(i||"TokenAmount"),this.token=r}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(r){return this.token.equals(r.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(r.raw)}lt(r){return this.token.equals(r.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(r.raw)}add(r){return this.token.equals(r.token)||this.logger.logWithError("add token not equals"),new Te(this.token,this.raw.add(r.raw))}subtract(r){return this.token.equals(r.token)||this.logger.logWithError("sub token not equals"),new Te(this.token,this.raw.sub(r.raw))}toSignificant(r=this.token.decimals,n,o=0){return super.toSignificant(r,n,o)}toFixed(r=this.token.decimals,n,o=0){return r>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(r,n,o)}toExact(r={groupSeparator:""}){return en.DP=this.token.decimals,new en(this.numerator.toString()).div(this.denominator.toString()).toFormat(r)}};import{PublicKey as ti}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as tn}from"@solana/spl-token";var rn={chainId:101,address:ti.default.toBase58(),programId:tn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},se={chainId:101,address:"So11111111111111111111111111111111111111112",programId:tn.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 $t}from"@solana/web3.js";import{PublicKey as J,SystemProgram as nn,SYSVAR_RENT_PUBKEY as ri}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ni}from"@solana/spl-token";function y({pubkey:e,isSigner:t=!1,isWritable:r=!0}){return{pubkey:e,isWritable:r,isSigner:t}}var Xt=[y({pubkey:ni,isWritable:!1}),y({pubkey:nn.programId,isWritable:!1}),y({pubkey:ri,isWritable:!1})];function Jt({publicKey:e,transformSol:t}){let r=Qt(e.toString());if(r instanceof J)return t&&r.equals(ne)?be:r;if(t&&r.toString()===ne.toBase58())return be;if(typeof r=="string"){if(r===J.default.toBase58())return J.default;try{return new J(r)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Qt(e){try{return new J(e)}catch{return e}}var sa=new J("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),aa=new J("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),oi=new J("SysvarRent111111111111111111111111111111111"),ua=new J("SysvarC1ock11111111111111111111111111111111"),ca=new J("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ii=new J("Sysvar1nstructions1111111111111111111111111"),la=nn.programId,da=new J("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),fa=new J("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),pa=new J("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ma=new J("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ga=new J("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),ya=new J("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ha=new J("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ba=new J("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),wa=new J("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ta=new J("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),xa=new J("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),be=new J("So11111111111111111111111111111111111111112"),ne=J.default;function ft(e){return Jt({publicKey:e,transformSol:!0})}var er=class{constructor({mint:t,decimals:r,symbol:n,name:o,skipMint:i=!1,isToken2022:s=!1}){if(t===ne.toBase58()||t instanceof $t&&ne.equals(t)){this.decimals=se.decimals,this.symbol=se.symbol,this.name=se.name,this.mint=new $t(se.address),this.isToken2022=!1;return}this.decimals=r,this.symbol=n||t.toString().substring(0,6),this.name=o||t.toString().substring(0,6),this.mint=i?$t.default:Jt({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},Fe=er;Fe.WSOL=new er(te(Z({},se),{mint:se.address}));var tr=class{constructor({decimals:t,symbol:r="UNKNOWN",name:n="UNKNOWN"}){this.decimals=t,this.symbol=r,this.name=n}equals(t){return this===t}},kt=tr;kt.SOL=new tr(rn);import si from"bn.js";var on=new H(new si(100)),We=class extends H{toSignificant(t=5,r,n){return this.mul(on).toSignificant(t,r,n)}toFixed(t=2,r,n){return this.mul(on).toFixed(t,r,n)}};var ai=$("Raydium_price"),xe=class extends H{constructor(r){let{baseToken:n,quoteToken:o,numerator:i,denominator:s}=r;super(i,s);this.baseToken=n,this.quoteToken=o,this.scalar=new H(rr(n.decimals),rr(o.decimals))}get raw(){return new H(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new xe({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(r){this.quoteToken!==r.baseToken&&ai.logWithError("mul token not equals");let n=super.mul(r);return new xe({baseToken:this.baseToken,quoteToken:r.quoteToken,denominator:n.denominator,numerator:n.numerator})}toSignificant(r=this.quoteToken.decimals,n,o){return this.adjusted.toSignificant(r,n,o)}toFixed(r=this.quoteToken.decimals,n,o){return this.adjusted.toFixed(r,n,o)}};import{PublicKey as ui}from"@solana/web3.js";import ci from"bn.js";function sn(e){return typeof e=="object"&&e!==null&&![Fe,Te,ui,H,ci,xe,We].some(t=>typeof t=="object"&&e instanceof t)}function Pe(e){return typeof e=="string"?Qt(e):Array.isArray(e)?e.map(t=>Pe(t)):sn(e)?Object.fromEntries(Object.entries(e).map(([t,r])=>[t,Pe(r)])):e}var nr=new ke(0),yu=new ke(1),hu=new ke(2),bu=new ke(3),wu=new ke(5),Zt=new ke(10),Tu=new ke(100),xu=new ke(1e3),Pu=new ke(1e4);function rr(e){return Zt.pow(U(e))}function Ot(e,t=1,r=[]){let n=[...e];if(t<=0)return r;for(;n.length;)r.push(n.splice(0,t));return r}import{PublicKey as yi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as hi}from"@solana/spl-token";import{ComputeBudgetProgram as an,Keypair as cn,PublicKey as li,Transaction as ln,TransactionMessage as di,VersionedTransaction as dn}from"@solana/web3.js";var j={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 fi}from"@solana/spl-token";var un=$("Raydium_txUtil"),fn=1644;function At(e){let t=[],r=[];return e.microLamports&&(t.push(an.setComputeUnitPrice({microLamports:e.microLamports})),r.push(j.SetComputeUnitPrice)),e.units&&(t.push(an.setComputeUnitLimit({units:e.units})),r.push(j.SetComputeUnitLimit)),{instructions:t,instructionTypes:r}}async function Ue(e,t){var n,o;let r=t!=null?t:"confirmed";return(o=await((n=e.getLatestBlockhash)==null?void 0:n.call(e,{commitment:r})))==null?void 0:o.blockhash}async function It(e,t){return e.getSignatureStatuses([t]),new Promise((r,n)=>{let o=setTimeout(n,6e4);e.onSignature(t,i=>{if(clearTimeout(o),!i.err){r("");return}n(Object.assign(i.err,{txId:t}))},"confirmed")})}function pi(e,t){e.length<1&&un.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&un.logWithError(`no signers provided:, ${t.toString()}`);let r=new ln;r.recentBlockhash="11111111111111111111111111111111",r.feePayer=t[0],r.add(...e);try{return Buffer.from(r.serialize({verifySignatures:!1})).toString("base64").length<fn}catch{return!1}}function Ee(e,t){let[r,n]=li.findProgramAddressSync(e,t);return{publicKey:r,nonce:n}}function Je({instructions:e,payer:t,signers:r}){return pi(e,[t,...r])}function Qe({instructions:e,payer:t,lookupTableAddressAccount:r,recentBlockhash:n=cn.generate().publicKey.toString()}){let i=new di({payerKey:t,recentBlockhash:n,instructions:e}).compileToV0Message(Object.values(r!=null?r:{}));try{return Buffer.from(new dn(i).serialize()).toString("base64").length<fn}catch{return!1}}var mi=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e),gi=e=>{let t=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof dn&&(t=mi(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ne(e){let t=[];return e.forEach(r=>{r instanceof ln&&(r.recentBlockhash||(r.recentBlockhash=fi.toBase58()),r.feePayer||(r.feePayer=cn.generate().publicKey)),t.push(gi(r))}),console.log("simulate tx string:",t),t}function qe(e,t,r){return Ee([e.toBuffer(),(r!=null?r:hi).toBuffer(),t.toBuffer()],new yi("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as O}from"@solana/web3.js";var pn=new O("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),mn=new O("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),gn=new O("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),$e=new O("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),qu=new O("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Gu=new O("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Hu=new O("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),ju=new O("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),zu=new O("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Yu=new O("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Zu=new O("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Xu=new O("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ju=new O("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Qu=new O("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),$u=new O("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ec=new O("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),tc=new O("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),rc=new O("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),nc=new O("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),oc=new O("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ic=new O("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),sc=new O("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),bi=new O("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),wi=new O("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Ti=new O("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),ac=new O("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),xi=new O("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),uc=new O("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Pi=new O("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix");var cc={SERUM_MARKET:O.default,OPENBOOK_MARKET:new O("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:O.default,FarmV3:new O("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new O("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new O("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new O("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new O("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new O("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),CLMM_LOCK_PROGRAM_ID:new O("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),CLMM_LOCK_AUTH_ID:new O("8qmHNvu2Kr2C7U8mJL4Vz1vTDxMhVuXKREwU7TNoaVEo"),Router:new O("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:bi,CREATE_CPMM_POOL_AUTH:wi,CREATE_CPMM_POOL_FEE_ACC:Ti,FEE_DESTINATION_ID:new O("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR"),LOCK_CPMM_PROGRAM:xi,LCOK_CPMM_AUTH:Pi};import fc from"bn.js";import{PublicKey as yn,AddressLookupTableAccount as St}from"@solana/web3.js";async function or({connection:e,address:t}){let r=await _r(e,[...new Set(t.map(o=>o.toString()))].map(o=>new yn(o))),n={};for(let o=0;o<t.length;o++){let i=r[o],s=t[o];if(!i)continue;let a=new St({key:s,state:St.deserialize(i.data)});n[s.toString()]=a,Lt[s.toString()]=a}return n}var Lt={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new St({key:new yn("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:St.deserialize(Buffer.from("AQAAAP//////////d49+DAAAAAAAAQZMWvw7GUNJdaccNBVnb57OKakxL2BHLYvhRwVILRsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkG3fbh7nWP3hhCXbzkbM3athr8TYO5DSf+vfko2KGL/AVKU1D4XciC1hSlVnJ4iilt3x6rq9CmBniISTL07vagBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvDQdRqCgtphMF/imcN7mY5YRx2xE1A3MQ+L4QRaYK9u4GRfZP3LsAd00a+IkCpA22UNQMKdq5BFbJuwuOLqc8zxCTDlqxBG8J0HcxtfogQHDK06ukzfaXiNDKAob1MqBHS9lJxDYCwz8gd5DtFqNSTKG5l1zxIaKpDP/sffi2is1H9aKveyXSu5StXElYRl9SD5As0DHE4N0GLnf84/siiKXVyp4Ez121kLcUui/jLLFZEz/BwZK3Ilf9B9OcsEAeDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu9N9LMnrw/JNO0hqMVB4rk/2ou4AB1loQ7FZoPwut2o4KZB+0p9xnbrQKw038qjpHar+PyDwvxBRcu5hpHw3dguezeWv+IwvgW5icu8EGkhGa9AkFPPJT7VMSFb8xowveU=","base64"))})};import{PublicKey as Ge,sendAndConfirmTransaction as ir,SystemProgram as Ai,Transaction as et,TransactionMessage as tt,VersionedTransaction as rt}from"@solana/web3.js";import Ii from"axios";var Bt=2e3,Rt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var n;let t=(await Ii.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:r}=(n=t==null?void 0:t[15])!=null?n:{};if(!!r)return{units:6e5,microLamports:Math.min(Math.ceil(r*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:r,instructionTypes:n}=At(t);return this.instructions.unshift(...r),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(t){return t?(this.endInstructions.push(Ai.transfer({fromPubkey:this.owner.publicKey,toPubkey:new Ge(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(j.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:r}){try{let n=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(n))return;r&&this.instructions.unshift(...r)}catch{r&&this.instructions.unshift(...r)}}addInstruction({instructions:t=[],endInstructions:r=[],signers:n=[],instructionTypes:o=[],endInstructionTypes:i=[],lookupTableAddress:s=[]}){return this.instructions.push(...t),this.endInstructions.push(...r),this.signers.push(...n),this.instructionTypes.push(...o),this.endInstructionTypes.push(...i),this.lookupTableAddress.push(...s.filter(a=>a!==Ge.default.toString())),this}async versionBuild({txVersion:t,extInfo:r}){return t===0?await this.buildV0(Z({},r||{})):this.build(r)}build(t){var n;let r=new et;return this.allInstructions.length&&r.add(...this.allInstructions),r.feePayer=this.feePayer,((n=this.owner)==null?void 0:n.signer)&&!this.signers.some(o=>o.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:r,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async o=>{var u;let{recentBlockHash:i,skipPreflight:s=!0,sendAndConfirm:a}=o||{},c=i!=null?i:await Ue(this.connection,this.blockhashCommitment);if(r.recentBlockhash=c,this.signers.length&&r.sign(...this.signers),Ne([r]),(u=this.owner)!=null&&u.isKeyPair)return{txId:a?await ir(this.connection,r,this.signers.find(d=>d.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):await this.connection.sendRawTransaction(r.serialize(),{skipPreflight:s}),signedTx:r};if(this.signAllTransactions){let l=await this.signAllTransactions([r]);return{txId:await this.connection.sendRawTransaction(l[0].serialize(),{skipPreflight:s}),signedTx:l[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var u;let{extraPreBuildData:r=[],extInfo:n}=t,{transaction:o}=this.build(n),i=r.filter(l=>l.transaction.instructions.length>0),s=[o,...i.map(l=>l.transaction)],a=[this.signers,...i.map(l=>l.signers)],c=[...this.instructionTypes,...i.map(l=>l.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&a.forEach(l=>{l.some(d=>d.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:a,instructionTypes:c,execute:async l=>{var x;let{sequentially:d,onTxUpdate:f,skipTxCount:p=0,recentBlockHash:m,skipPreflight:g=!0}=l||{},b=m!=null?m:await Ue(this.connection,this.blockhashCommitment);if((x=this.owner)!=null&&x.isKeyPair){if(d){let I=[],P=0;for(let w of s){if(++P,P<=p)continue;let k=await ir(this.connection,w,this.signers.find(A=>A.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});I.push(k)}return{txIds:I,signedTxs:s}}return{txIds:await await Promise.all(s.map(async I=>(I.recentBlockhash=b,await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:g})))),signedTxs:s}}if(this.signAllTransactions){let I=s.map((w,k)=>(w.recentBlockhash=b,a[k].length&&w.sign(...a[k]),w));Ne(I);let P=await this.signAllTransactions(I);if(d){let w=0,k=[],A=async()=>{if(!P[w])return;let S=await this.connection.sendRawTransaction(P[w].serialize(),{skipPreflight:g});k.push({txId:S,status:"sent",signedTx:P[w]}),f==null||f([...k]),w++;let L=!1,F=null,B=null,v=K=>{F!==null&&clearInterval(F),B!==null&&this.connection.removeSignatureListener(B);let E=k.findIndex(C=>C.txId===S);if(E>-1){if(k[E].status==="error"||k[E].status==="success")return;k[E].status=K.err?"error":"success"}f==null||f([...k]),K.err||A()};this.loopMultiTxStatus&&(F=setInterval(async()=>{var K;if(L){clearInterval(F);return}try{let E=await this.connection.getTransaction(S,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(L=!0,clearInterval(F),v({err:((K=E.meta)==null?void 0:K.err)||null}),console.log("tx status from getTransaction:",S))}catch(E){L=!0,clearInterval(F),console.error("getTransaction timeout:",E,S)}},Bt)),B=this.connection.onSignature(S,K=>{if(L){this.connection.removeSignatureListener(B);return}L=!0,v(K)},"confirmed"),this.connection.getSignatureStatus(S)};return await A(),{txIds:k.map(S=>S.txId),signedTxs:P}}else{let w=[];for(let k=0;k<P.length;k+=1){let A=await this.connection.sendRawTransaction(P[k].serialize(),{skipPreflight:g});w.push(A)}return{txIds:w,signedTxs:P}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:r,extInfo:n}){return r===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:n||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:n})}async buildV0(t){var g;let m=t||{},{lookupTableCache:r={},lookupTableAddress:n=[],forerunCreate:o,recentBlockhash:i}=m,s=dt(m,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=Z(Z({},this.cluster==="devnet"?{}:Lt),r),c=Array.from(new Set([...n,...this.lookupTableAddress])),u=[];for(let b of c)a[b]===void 0&&u.push(new Ge(b));let l=await or({connection:this.connection,address:u});for(let[b,x]of Object.entries(l))a[b]=x;let d=o?Ge.default.toBase58():i!=null?i:await Ue(this.connection,this.blockhashCommitment),f=new tt({payerKey:this.feePayer,recentBlockhash:d,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(a));((g=this.owner)==null?void 0:g.signer)&&!this.signers.some(b=>b.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let p=new rt(f);return p.sign(this.signers),{builder:this,transaction:p,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async b=>{var P;let{skipPreflight:x=!0,sendAndConfirm:I}=b||{};if(Ne([p]),(P=this.owner)!=null&&P.isKeyPair){let w=await this.connection.sendTransaction(p,{skipPreflight:x});return I&&await It(this.connection,w),{txId:w,signedTx:p}}if(this.signAllTransactions){let w=await this.signAllTransactions([p]);return{txId:await this.connection.sendTransaction(w[0],{skipPreflight:x}),signedTx:w[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}async buildV0MultiTx(t){var u;let{extraPreBuildData:r=[],buildProps:n}=t,{transaction:o}=await this.buildV0(n),i=r.filter(l=>l.builder.instructions.length>0),s=[o,...i.map(l=>l.transaction)],a=[this.signers,...i.map(l=>l.signers)],c=[...this.instructionTypes,...i.map(l=>l.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&a.forEach(l=>{l.some(d=>d.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach(async(l,d)=>{l.sign(a[d])}),{builder:this,transactions:s,signers:a,instructionTypes:c,buildProps:n,execute:async l=>{var g;let{sequentially:d,onTxUpdate:f,recentBlockHash:p,skipPreflight:m=!0}=l||{};if(p&&s.forEach(b=>b.message.recentBlockhash=p),Ne(s),(g=this.owner)!=null&&g.isKeyPair){if(d){let b=[];for(let x of s){let I=await this.connection.sendTransaction(x,{skipPreflight:m});await It(this.connection,I),b.push(I)}return{txIds:b,signedTxs:s}}return{txIds:await Promise.all(s.map(async b=>await this.connection.sendTransaction(b,{skipPreflight:m}))),signedTxs:s}}if(this.signAllTransactions){let b=await this.signAllTransactions(s);if(d){let x=0,I=[],P=async()=>{if(!b[x])return;let w=await this.connection.sendTransaction(b[x],{skipPreflight:m});I.push({txId:w,status:"sent",signedTx:b[x]}),f==null||f([...I]),x++;let k=!1,A=null,S=null,L=F=>{A!==null&&clearInterval(A),S!==null&&this.connection.removeSignatureListener(S);let B=I.findIndex(v=>v.txId===w);if(B>-1){if(I[B].status==="error"||I[B].status==="success")return;I[B].status=F.err?"error":"success"}f==null||f([...I]),F.err||P()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var F;if(k){clearInterval(A);return}try{let B=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:0});B&&(k=!0,clearInterval(A),L({err:((F=B.meta)==null?void 0:F.err)||null}),console.log("tx status from getTransaction:",w))}catch(B){k=!0,clearInterval(A),console.error("getTransaction timeout:",B,w)}},Bt)),S=this.connection.onSignature(w,F=>{if(k){this.connection.removeSignatureListener(S);return}k=!0,L(F)},"confirmed"),this.connection.getSignatureStatus(w)};return P(),{txIds:[],signedTxs:b}}else{let x=[];for(let I=0;I<b.length;I+=1){let P=await this.connection.sendTransaction(b[I],{skipPreflight:m});x.push(P)}return{txIds:x,signedTxs:b}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async sizeCheckBuild(t){var f;let d=t||{},{splitIns:r=[],computeBudgetConfig:n}=d,o=dt(d,["splitIns","computeBudgetConfig"]),i=n?At(n):{instructions:[],instructionTypes:[]},s=this.signers.reduce((p,m)=>te(Z({},p),{[m.publicKey.toBase58()]:m}),{}),a=[],c=[],u=[],l=0;if(this.allInstructions.forEach(p=>{let m=[...u,p],g=n?[...i.instructions,...m]:m,x=[...new Set(m.map(I=>I.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(I=>new Ge(I));if(p!==r[l]&&u.length<12&&(Je({instructions:g,payer:this.feePayer,signers:x})||Je({instructions:m,payer:this.feePayer,signers:x})))u.push(p);else{if(u.length===0)throw Error("item ins too big");l+=p===r[l]?1:0,Je({instructions:n?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:x})?a.push(new et().add(...i.instructions,...u)):a.push(new et().add(...u)),c.push(Array.from(new Set(u.map(I=>I.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat())).map(I=>s[I]).filter(I=>I!==void 0)),u=[p]}}),u.length>0){let m=[...new Set(u.map(g=>g.keys.filter(b=>b.isSigner).map(b=>b.pubkey.toString())).flat()).values()].map(g=>s[g]).filter(g=>g!==void 0);Je({instructions:n?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:m.map(g=>g.publicKey)})?a.push(new et().add(...i.instructions,...u)):a.push(new et().add(...u)),c.push(m)}return a.forEach(p=>p.feePayer=this.feePayer),(f=this.owner)!=null&&f.signer&&c.forEach(p=>{p.some(m=>m.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),{builder:this,transactions:a,signers:c,instructionTypes:this.instructionTypes,execute:async p=>{var w;let{sequentially:m,onTxUpdate:g,skipTxCount:b=0,recentBlockHash:x,skipPreflight:I=!0}=p||{},P=x!=null?x:await Ue(this.connection,this.blockhashCommitment);if(a.forEach(async(k,A)=>{k.recentBlockhash=P,c[A].length&&k.sign(...c[A])}),Ne(a),(w=this.owner)!=null&&w.isKeyPair){if(m){let k=0,A=[];for(let S of a){if(++k,k<=b){A.push("tx skipped");continue}let L=await ir(this.connection,S,this.signers.find(F=>F.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:I});A.push(L)}return{txIds:A,signedTxs:a}}return{txIds:await Promise.all(a.map(async k=>await this.connection.sendRawTransaction(k.serialize(),{skipPreflight:I}))),signedTxs:a}}if(this.signAllTransactions){let k=await this.signAllTransactions(a.slice(b,a.length)),A=[...a.slice(0,b),...k];if(m){let S=0,L=[],F=async()=>{if(!A[S])return;S<b&&(L.push({txId:"",status:"success",signedTx:A[S]}),g==null||g([...L]),S++,F());let B=await this.connection.sendRawTransaction(A[S].serialize(),{skipPreflight:I});L.push({txId:B,status:"sent",signedTx:A[S]}),g==null||g([...L]),S++;let v=!1,K=null,E=null,C=W=>{K!==null&&clearInterval(K),E!==null&&this.connection.removeSignatureListener(E);let V=L.findIndex(ge=>ge.txId===B);if(V>-1){if(L[V].status==="error"||L[V].status==="success")return;L[V].status=W.err?"error":"success"}g==null||g([...L]),W.err||F()};this.loopMultiTxStatus&&(K=setInterval(async()=>{var W;if(v){clearInterval(K);return}try{let V=await this.connection.getTransaction(B,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(v=!0,clearInterval(K),C({err:((W=V.meta)==null?void 0:W.err)||null}),console.log("tx status from getTransaction:",B))}catch(V){v=!0,clearInterval(K),console.error("getTransaction timeout:",V,B)}},Bt)),E=this.connection.onSignature(B,W=>{if(v){this.connection.removeSignatureListener(E);return}v=!0,C(W)},"confirmed"),this.connection.getSignatureStatus(B)};return await F(),{txIds:L.map(B=>B.txId),signedTxs:A}}else{let S=[];for(let L=0;L<A.length;L+=1){let F=await this.connection.sendRawTransaction(A[L].serialize(),{skipPreflight:I});S.push(F)}return{txIds:S,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(t){var P;let I=t||{},{computeBudgetConfig:r,splitIns:n=[],lookupTableCache:o={},lookupTableAddress:i=[]}=I,s=dt(I,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress"]),a=Z(Z({},this.cluster==="devnet"?{}:Lt),o),c=Array.from(new Set([...this.lookupTableAddress,...i])),u=[];for(let w of c)a[w]===void 0&&u.push(new Ge(w));let l=await or({connection:this.connection,address:u});for(let[w,k]of Object.entries(l))a[w]=k;let d=r?At(r):{instructions:[],instructionTypes:[]},f=await Ue(this.connection,this.blockhashCommitment),p=this.signers.reduce((w,k)=>te(Z({},w),{[k.publicKey.toBase58()]:k}),{}),m=[],g=[],b=[],x=0;if(this.allInstructions.forEach(w=>{let k=[...b,w],A=r?[...d.instructions,...k]:k;if(w!==n[x]&&b.length<12&&(Qe({instructions:A,payer:this.feePayer,lookupTableAddressAccount:a})||Qe({instructions:k,payer:this.feePayer,lookupTableAddressAccount:a})))b.push(w);else{if(b.length===0)throw Error("item ins too big");x+=w===n[x]?1:0;let S={};for(let L of[...new Set(c)])a[L]!==void 0&&(S[L]=a[L]);if(r&&Qe({instructions:[...d.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:f})){let L=new tt({payerKey:this.feePayer,recentBlockhash:f,instructions:[...d.instructions,...b]}).compileToV0Message(Object.values(a));m.push(new rt(L))}else{let L=new tt({payerKey:this.feePayer,recentBlockhash:f,instructions:[...b]}).compileToV0Message(Object.values(a));m.push(new rt(L))}g.push(Array.from(new Set(b.map(L=>L.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(L=>p[L]).filter(L=>L!==void 0)),b=[w]}}),b.length>0){let k=[...new Set(b.map(A=>A.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat()).values()].map(A=>p[A]).filter(A=>A!==void 0);if(r&&Qe({instructions:[...d.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:f})){let A=new tt({payerKey:this.feePayer,recentBlockhash:f,instructions:[...d.instructions,...b]}).compileToV0Message(Object.values(a));m.push(new rt(A))}else{let A=new tt({payerKey:this.feePayer,recentBlockhash:f,instructions:[...b]}).compileToV0Message(Object.values(a));m.push(new rt(A))}g.push(k)}return(P=this.owner)!=null&&P.signer&&g.forEach(w=>{w.some(k=>k.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),{builder:this,transactions:m,buildProps:t,signers:g,instructionTypes:this.instructionTypes,execute:async w=>{var B;let{sequentially:k,onTxUpdate:A,skipTxCount:S=0,recentBlockHash:L,skipPreflight:F=!0}=w||{};if(m.map(async(v,K)=>{g[K].length&&v.sign(g[K]),L&&(v.message.recentBlockhash=L)}),Ne(m),(B=this.owner)!=null&&B.isKeyPair){if(k){let v=0,K=[];for(let E of m){if(++v,v<=S){console.log("skip tx: ",v),K.push("tx skipped");continue}let C=await this.connection.sendTransaction(E,{skipPreflight:F});await It(this.connection,C),K.push(C)}return{txIds:K,signedTxs:m}}return{txIds:await Promise.all(m.map(async v=>await this.connection.sendTransaction(v,{skipPreflight:F}))),signedTxs:m}}if(this.signAllTransactions){let v=await this.signAllTransactions(m.slice(S,m.length)),K=[...m.slice(0,S),...v];if(k){let E=0,C=[],W=async()=>{if(!K[E])return;if(E<S){C.push({txId:"",status:"success",signedTx:K[E]}),A==null||A([...C]),E++,W();return}let V=await this.connection.sendTransaction(K[E],{skipPreflight:F});C.push({txId:V,status:"sent",signedTx:K[E]}),A==null||A([...C]),E++;let ge=!1,ye=null,ct=null,Vr=Me=>{ye!==null&&clearInterval(ye),ct!==null&&this.connection.removeSignatureListener(ct);let he=C.findIndex(Gn=>Gn.txId===V);if(he>-1){if(C[he].status==="error"||C[he].status==="success")return;C[he].status=Me.err?"error":"success"}A==null||A([...C]),Me.err||W()};this.loopMultiTxStatus&&(ye=setInterval(async()=>{var Me;if(ge){clearInterval(ye);return}try{let he=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});he&&(ge=!0,clearInterval(ye),Vr({err:((Me=he.meta)==null?void 0:Me.err)||null}),console.log("tx status from getTransaction:",V))}catch(he){ge=!0,clearInterval(ye),console.error("getTransaction timeout:",he,V)}},Bt)),ct=this.connection.onSignature(V,Me=>{if(ge){this.connection.removeSignatureListener(ct);return}ge=!0,Vr(Me)},"confirmed"),this.connection.getSignatureStatus(V)};return W(),{txIds:[],signedTxs:K}}else{let E=[];for(let C=0;C<K.length;C+=1){let W=await this.connection.sendTransaction(K[C],{skipPreflight:F});E.push(W)}return{txIds:E,signedTxs:K}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}};import{Keypair as Di,PublicKey as Oi}from"@solana/web3.js";import dd from"bn.js";import{TOKEN_PROGRAM_ID as Wi}from"@solana/spl-token";function Si(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}function sr(e,...t){if(!Si(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}function ar(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function hn(e,t){sr(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var Ct=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),fe=(e,t)=>e<<32-t|e>>>t;var Xc=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Li(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function ur(e){return typeof e=="string"&&(e=Li(e)),sr(e),e}var Kt=class{clone(){return this._cloneInto()}},Jc={}.toString;function bn(e){let t=n=>e().update(ur(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function Bi(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let o=BigInt(32),i=BigInt(4294967295),s=Number(r>>o&i),a=Number(r&i),c=n?4:0,u=n?0:4;e.setUint32(t+c,s,n),e.setUint32(t+u,a,n)}var wn=(e,t,r)=>e&t^~e&r,Tn=(e,t,r)=>e&t^e&r^t&r,Vt=class extends Kt{constructor(t,r,n,o){super(),this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Ct(this.buffer)}update(t){ar(this);let{view:r,buffer:n,blockLen:o}=this;t=ur(t);let i=t.length;for(let s=0;s<i;){let a=Math.min(o-this.pos,i-s);if(a===o){let c=Ct(t);for(;o<=i-s;s+=o)this.process(c,s);continue}n.set(t.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===o&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){ar(this),hn(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:o,isLE:i}=this,{pos:s}=this;r[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>o-s&&(this.process(n,0),s=0);for(let d=s;d<o;d++)r[d]=0;Bi(n,o-8,BigInt(this.length*8),i),this.process(n,0);let a=Ct(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,l=this.get();if(u>l.length)throw new Error("_sha2: outputLen bigger than state");for(let d=0;d<u;d++)a.setUint32(4*d,l[d],i)}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:r,buffer:n,length:o,finished:i,destroyed:s,pos:a}=this;return t.length=o,t.pos=a,t.finished=i,t.destroyed=s,o%r&&t.buffer.set(n),t}};var Ri=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Ce=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ve=new Uint32Array(64),cr=class extends Vt{constructor(){super(64,32,8,!1),this.A=Ce[0]|0,this.B=Ce[1]|0,this.C=Ce[2]|0,this.D=Ce[3]|0,this.E=Ce[4]|0,this.F=Ce[5]|0,this.G=Ce[6]|0,this.H=Ce[7]|0}get(){let{A:t,B:r,C:n,D:o,E:i,F:s,G:a,H:c}=this;return[t,r,n,o,i,s,a,c]}set(t,r,n,o,i,s,a,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=o|0,this.E=i|0,this.F=s|0,this.G=a|0,this.H=c|0}process(t,r){for(let d=0;d<16;d++,r+=4)Ve[d]=t.getUint32(r,!1);for(let d=16;d<64;d++){let f=Ve[d-15],p=Ve[d-2],m=fe(f,7)^fe(f,18)^f>>>3,g=fe(p,17)^fe(p,19)^p>>>10;Ve[d]=g+Ve[d-7]+m+Ve[d-16]|0}let{A:n,B:o,C:i,D:s,E:a,F:c,G:u,H:l}=this;for(let d=0;d<64;d++){let f=fe(a,6)^fe(a,11)^fe(a,25),p=l+f+wn(a,c,u)+Ri[d]+Ve[d]|0,g=(fe(n,2)^fe(n,13)^fe(n,22))+Tn(n,o,i)|0;l=u,u=c,c=a,a=s+p|0,s=i,i=o,o=n,n=p+g|0}n=n+this.A|0,o=o+this.B|0,i=i+this.C|0,s=s+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(n,o,i,s,a,c,u,l)}roundClean(){Ve.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var xn=bn(()=>new cr);import{PublicKey as Ei}from"@solana/web3.js";import In,{isBN as Sn}from"bn.js";import{bits as sl,BitStructure as al,blob as Ki,Blob as ul,cstr as cl,f32 as ll,f32be as dl,f64 as fl,f64be as pl,greedy as ml,Layout as Ci,ns64 as gl,ns64be as yl,nu64 as hl,nu64be as bl,offset as wl,s16 as Tl,s16be as xl,s24 as Pl,s24be as kl,s32 as Al,s32be as Il,s40 as Sl,s40be as Ll,s48 as Bl,s48be as Rl,s8 as Kl,seq as Vi,struct as Cl,Structure as vi,u16 as Vl,u16be as vl,u24 as Ml,u24be as Fl,u32 as El,u32be as Nl,u40 as _l,u40be as Dl,u48 as Ol,u48be as Wl,u8 as Mi,UInt as Fi,union as Ul,Union as ql,unionLayoutDiscriminator as Gl,utf8 as Hl}from"@solana/buffer-layout";var lr=Ci,Pn=vi;var dr=Fi;var kn=Mi;var An=Vi;var _e=Ki;var He=class extends lr{constructor(r,n,o){super(r,o);this.blob=_e(r),this.signed=n}decode(r,n=0){let o=new In(this.blob.decode(r,n),10,"le");return this.signed?o.fromTwos(this.span*8).clone():o}encode(r,n,o=0){return typeof r=="number"&&(r=new In(r)),this.signed&&(r=r.toTwos(this.span*8)),this.blob.encode(r.toArrayLike(Buffer,"le",this.span),n,o)}};function ee(e){return new dr(1,e)}function nt(e){return new dr(4,e)}function T(e){return new He(8,!1,e)}function Ae(e){return new He(16,!1,e)}function Ln(e){return new He(1,!0,e)}function Mt(e){return new He(8,!0,e)}var vt=class extends lr{constructor(r,n,o,i){super(r.span,i);this.layout=r,this.decoder=n,this.encoder=o}decode(r,n){return this.decoder(this.layout.decode(r,n))}encode(r,n,o){return this.layout.encode(this.encoder(r),n,o)}getSpan(r,n){return this.layout.getSpan(r,n)}};function q(e){return new vt(_e(32),t=>new Ei(t),t=>t.toBuffer(),e)}function Ft(e){return new vt(kn(),Ni,_i,e)}function Ni(e){if(e===0)return!1;if(e===1)return!0;throw new Error("Invalid bool: "+e)}function _i(e){return e?1:0}var fr=class extends Pn{decode(t,r){return super.decode(t,r)}};function X(e,t,r){return new fr(e,t,r)}function Q(e,t,r){let n,o=typeof t=="number"?t:Sn(t)?t.toNumber():new Proxy(t,{get(i,s){if(!n){let a=Reflect.get(i,"count");n=Sn(a)?a.toNumber():a,Reflect.set(i,"count",n)}return Reflect.get(i,s)},set(i,s,a){return s==="count"&&(n=a),Reflect.set(i,s,a)}});return An(e,o,r)}var ot=X([q("mint"),q("owner"),T("amount"),nt("delegateOption"),q("delegate"),ee("state"),nt("isNativeOption"),T("isNative"),T("delegatedAmount"),nt("closeAuthorityOption"),q("closeAuthority")]);var yd=$("Raydium_Util");function Et({fromPublicKey:e,programId:t=Wi,assignSeed:r}){let n=r?btoa(r).slice(0,32):Di.generate().publicKey.toBase58().slice(0,32);return{publicKey:Ui(e,n,t),seed:n}}function Ui(e,t,r){let n=Buffer.concat([e.toBuffer(),Buffer.from(t),r.toBuffer()]),o=xn(n);return new Oi(o)}import{PublicKey as qi,SystemProgram as Gi}from"@solana/web3.js";import Hi from"bn.js";import{createCloseAccountInstruction as ji,createInitializeAccountInstruction as zi,createTransferInstruction as Ld,TOKEN_PROGRAM_ID as it}from"@solana/spl-token";function Yi(e){let{mint:t,tokenAccount:r,owner:n,programId:o=it}=e;return zi(r,t,n,o)}function Zi(e){let{tokenAccount:t,payer:r,multiSigners:n=[],owner:o,programId:i=it}=e;return ji(t,r,o,n,i)}async function pr(e){let{connection:t,amount:r,commitment:n,payer:o,owner:i,skipCloseAccount:s}=e,a=await t.getMinimumBalanceForRentExemption(ot.span,n),c=U(r).add(new Hi(a)),u=Et({fromPublicKey:o,programId:it});return{addresses:{newAccount:u.publicKey},signers:[],instructions:[Gi.createAccountWithSeed({fromPubkey:o,basePubkey:o,seed:u.seed,newAccountPubkey:u.publicKey,lamports:c.toNumber(),space:ot.span,programId:it}),Yi({mint:new qi(se.address),tokenAccount:u.publicKey,owner:i,programId:it})],instructionTypes:[j.CreateAccount,j.InitAccount],endInstructionTypes:s?[]:[j.CloseAccount],endInstructions:s?[]:[Zi({tokenAccount:u.publicKey,payer:o,owner:i})]}}var mr=(...e)=>e.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),st=class{constructor({scope:t,moduleName:r}){this.disabled=!1;this.scope=t,this.logger=$(r)}createTxBuilder(t){return this.scope.checkOwner(),new Rt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(mr(t))}logInfo(...t){this.logger.info(mr(t))}logAndCreateError(...t){let r=mr(t);throw new Error(r)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Kn}from"@solana/web3.js";var gr=X([ee("instruction")]),yr=X([ee("instruction")]),Xi=X([T("rewardState"),T("rewardOpenTime"),T("rewardEndTime"),T("rewardLastUpdateTime"),T("totalReward"),T("totalRewardEmissioned"),T("rewardClaimed"),T("rewardPerSecond"),Ae("accRewardPerShare"),q("rewardVault"),q("rewardMint"),q("rewardSender"),T("rewardType"),Q(T(),15,"padding")]),Ji=X([T("state"),T("nonce"),q("lpVault"),q("rewardVault"),q(),q(),T(),T(),T("totalReward"),Ae("perShareReward"),T("lastSlot"),T("perSlotReward")]),Qi=X([T("state"),T("nonce"),q("lpVault"),q("rewardVaultA"),T("totalRewardA"),Ae("perShareRewardA"),T("perSlotRewardA"),ee("option"),q("rewardVaultB"),_e(7),T("totalRewardB"),Ae("perShareRewardB"),T("perSlotRewardB"),T("lastSlot"),q()]),$i=X([T(),T("state"),T("nonce"),T("validRewardTokenNum"),Ae("rewardMultiplier"),T("rewardPeriodMax"),T("rewardPeriodMin"),T("rewardPeriodExtend"),q("lpMint"),q("lpVault"),Q(Xi,5,"rewardInfos"),q("creator"),q(),Q(T(),32,"padding")]),es=new Proxy(Ji,{get(e,t,r){return t==="decode"?(...n)=>{let o=e.decode(...n);return te(Z({},o),{version:3,rewardInfos:[{rewardVault:o.rewardVault,totalReward:o.totalReward,perSlotReward:o.perSlotReward,perShareReward:o.perShareReward}]})}:Reflect.get(e,t,r)}}),ts=new Proxy(Qi,{get(e,t,r){return t==="decode"?(...n)=>{let o=e.decode(...n);return te(Z({},o),{version:5,rewardInfos:[{rewardVault:o.rewardVaultA,totalReward:o.totalRewardA,perSlotReward:o.perSlotRewardA,perShareReward:o.perShareRewardA},{rewardVault:o.rewardVaultB,totalReward:o.totalRewardB,perSlotReward:o.perSlotRewardB,perShareReward:o.perShareRewardB}]})}:Reflect.get(e,t,r)}}),Nt=new Proxy($i,{get(e,t,r){return t==="decode"?(...n)=>{let o=e.decode(...n);return te(Z({},o),{version:6,rewardInfos:o.rewardInfos.map(i=>{var s;return te(Z({},i),{rewardType:((s=Object.entries(ve).find(a=>String(a[1])===i.rewardType.toString()))!=null?s:["Standard SPL"])[0]})})})}:Reflect.get(e,t,r)}}),rs=X([T("isSet"),T("rewardPerSecond"),T("rewardOpenTime"),T("rewardEndTime"),T("rewardType")]),hr=X([ee("instruction"),T("nonce"),Q(rs,5,"rewardTimeInfo")]),br=X([ee("instruction"),T("rewardReopenTime"),T("rewardEndTime"),T("rewardPerSecond")]),wr=X([ee("instruction"),T("isSet"),T("rewardPerSecond"),T("rewardOpenTime"),T("rewardEndTime"),T("rewardType")]),Ud=X([T("state"),q("id"),q("owner"),T("deposited"),Q(T(),1,"rewardDebts")]),Tr=X([T("state"),q("id"),q("owner"),T("deposited"),Q(Ae(),1,"rewardDebts"),T(""),T("voteLockedBalance"),Q(T(),15)]),qd=X([T("state"),q("id"),q("owner"),T("deposited"),Q(T(),2,"rewardDebts")]),Bn=X([T("state"),q("id"),q("owner"),T("deposited"),Q(Ae(),2,"rewardDebts"),Q(T(),17)]),Rn=X([T(),T("state"),q("id"),q("owner"),T("deposited"),Q(Ae(),5,"rewardDebts"),Q(T(),16)]),ue=X([ee("instruction"),T("amount")]),ns=X([q("mint"),q("grantAuthority"),T("baselineVoteWeightScaledFactor"),T("maxExtraLockupVoteWeightScaledFactor"),T("lockupSaturationSecs"),Ln("digitShift"),Q(ee(),7,"reserved1"),Q(T(),7,"reserved2")]),os=X([_e(8),q("governanceProgramId"),q("realm"),q("realmGoverningTokenMint"),q("realmAuthority"),Q(ee(),32,"reserved1"),Q(ns,4,"votingMints"),Mt("timeOffset"),ee("bump"),Q(ee(),7,"reserved2"),Q(T(),11,"reserved3")]),is=X([Mt("startTime"),Mt("endTime"),ee("kind"),Q(ee(),15,"reserved")]),ss=X([Q(is,1,"lockup"),T("amountDeposited_native"),T("amountInitiallyLockedNative"),Ft("isUsed"),Ft("allowClawback"),ee("votingMintConfigIdx"),Q(ee(),29,"reserved")]),as=X([_e(8),q("voterAuthority"),q("registrar"),Q(ss,32,"deposits"),ee("voterBump"),ee("voterWweightRecordBump"),Q(ee(),94,"reserved")]);var Jd=$("Raydium_farm_config"),Cn=new Kn("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Vn=new Kn("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var vn={3:Tr,5:Bn,6:Rn},xr=e=>[3,4,5,6].indexOf(e)!==-1,Pr=e=>{var s;let{version:t,rewardInfos:r,rewardTokenAccountsPublicKeys:n}=e,o=`rewardInfo:${JSON.stringify(r)}, rewardAccount:${JSON.stringify(n)}`,i={3:()=>{if(r.length!==1||n.length!==1)return`rewardInfos or rewardTokenAccounts lengths not equal 1: ${o}`},5:()=>{if(r.length!==n.length)return`rewardInfos and rewardTokenAccounts lengths not equal: ${o}`},6:()=>{if(!n.length||r.length!==n.length)return`no rewardTokenAccounts or rewardInfos and rewardTokenAccounts lengths not equal: ${o}`}};return(s=i[t])==null?void 0:s.call(i)},ve={"Standard SPL":0,"Option tokens":1},Ie={[pn.toString()]:3,[mn.toString()]:4,[gn.toString()]:5,[$e.toString()]:6};import{PublicKey as G,SystemProgram as En,SYSVAR_CLOCK_PUBKEY as ut,SYSVAR_RENT_PUBKEY as ls,TransactionInstruction as ce}from"@solana/web3.js";import Nn from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Cf,createAssociatedTokenAccountInstruction as Vf,TOKEN_PROGRAM_ID as Se}from"@solana/spl-token";import us from"bn.js";var cs=$("Raydium.farm.util");function at({programId:e,poolId:t,mint:r,type:n}){let{publicKey:o}=Ee([t.toBuffer(),r.toBuffer(),Buffer.from(n==="lpVault"?"lp_vault_associated_seed":n==="rewardVault"?"reward_vault_associated_seed":"","utf-8")],e);return o}function me({programId:e,poolId:t,owner:r,version:n}){let{publicKey:o}=Ee([t.toBuffer(),r.toBuffer(),Buffer.from(n===6?"farmer_info_associated_seed":"staker_info_v2_associated_seed","utf-8")],e);return o}var Mn=({programId:e,poolId:t})=>Ee([t.toBuffer()],e);function Fn(e){return{isSet:new us(1),rewardPerSecond:U(e.perSecond),rewardOpenTime:U(e.openTime),rewardEndTime:U(e.endTime),rewardType:U(ve[e.rewardType])}}function kr(e){return U(e.endTime).sub(U(e.openTime)).mul(U(e.perSecond))}function Ar(e){let t=vn[e];return t||cs.logWithError("invalid version",e),t}var ds=$("Raydium_farm_instruction"),qf={voterStakeRegistryCreateVoter:Buffer.from([6,24,245,52,243,255,148,25]),voterStakeRegistryCreateDepositEntry:Buffer.from([185,131,167,186,159,125,19,67]),voterStakeRegistryDeposit:Buffer.from([242,35,198,137,82,225,242,182]),voterStakeRegistryWithdraw:Buffer.from([183,18,70,156,148,109,161,34]),voterStakeRegistryUpdateVoterWeightRecord:Buffer.from([45,185,3,36,109,190,115,169])};function Ir(e){let{version:t,id:r,ledger:n,programId:o,owner:i}=e,s={3:9,5:10}[t];s||ds.logWithError(`invalid farm pool version: ${t}`);let a=Buffer.alloc(gr.span);gr.encode({instruction:s},a);let c=[y({pubkey:r}),y({pubkey:n}),y({pubkey:i,isWritable:!1}),y({pubkey:En.programId,isWritable:!1}),y({pubkey:ls,isWritable:!1})];return{instruction:new ce({programId:o,keys:c,data:a}),instructionType:j.FarmV3CreateLedger}}function _n(e){var n;let t=Buffer.alloc(hr.span);hr.encode({instruction:0,nonce:new Nn(e.nonce),rewardTimeInfo:e.rewardInfoConfig},t);let r=[...Xt,y({pubkey:e.farmId}),y({pubkey:e.farmAuthority,isWritable:!1}),y({pubkey:e.lpVault}),y({pubkey:e.lpMint,isWritable:!1}),y({pubkey:e.lockVault}),y({pubkey:e.lockMint,isWritable:!1}),y({pubkey:(n=e.lockUserAccount)!=null?n:ne}),y({pubkey:e.owner,isWritable:!1,isSigner:!0})];for(let o of e.rewardInfo)r.push(y({pubkey:o.rewardMint,isWritable:!1}),y({pubkey:o.rewardVault}),y({pubkey:o.userRewardToken}));return{instruction:new ce({programId:e.programId,keys:r,data:t}),instructionType:j.FarmV6Create}}function Dn(e){let t=Buffer.alloc(yr.span);yr.encode({instruction:5},t);let r=[y({pubkey:Se,isWritable:!1}),y({pubkey:e.id}),y({pubkey:e.authority,isWritable:!1}),y({pubkey:e.lpVault,isWritable:!1}),y({pubkey:e.rewardVault}),y({pubkey:e.userRewardToken}),y({pubkey:e.owner,isWritable:!1,isSigner:!0})];return{instruction:new ce({programId:e.programId,keys:r,data:t}),instructionType:j.FarmV6CreatorWithdraw}}function Sr({payer:e,rewardVault:t,userRewardTokenPub:r,farmKeys:n,rewardInfo:o}){let i=Buffer.alloc(br.span);br.encode({instruction:3,rewardReopenTime:U(o.openTime),rewardEndTime:U(o.endTime),rewardPerSecond:U(o.perSecond)},i);let s=[y({pubkey:Se,isWritable:!1}),y({pubkey:n.id}),y({pubkey:n.lpVault,isWritable:!1}),y({pubkey:t}),y({pubkey:r}),y({pubkey:e,isWritable:!1,isSigner:!0})];return new ce({programId:n.programId,keys:s,data:i})}function Lr({payer:e,userRewardTokenPub:t,farmKeys:r,rewardVault:n,rewardInfo:o}){let i=Buffer.alloc(wr.span);wr.encode({instruction:4,isSet:new Nn(1),rewardPerSecond:U(o.perSecond),rewardOpenTime:U(o.openTime),rewardEndTime:U(o.endTime),rewardType:U(ve[o.rewardType])},i);let s=[...Xt,y({pubkey:r.id}),y({pubkey:r.authority,isWritable:!1}),y({pubkey:o.mint,isWritable:!1}),y({pubkey:n}),y({pubkey:t}),y({pubkey:e,isWritable:!1,isSigner:!0})];return new ce({programId:r.programId,keys:s,data:i})}function Br(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s}=e,[a,c]=[new G(t.programId),new G(t.id)],u=me({programId:a,poolId:c,owner:i,version:6}),l=Buffer.alloc(ue.span);ue.encode({instruction:2,amount:U(s)},l);let d=[y({pubkey:Se,isWritable:!1}),y({pubkey:c}),y({pubkey:new G(r.authority),isWritable:!1}),y({pubkey:new G(r.lpVault)}),y({pubkey:u}),y({pubkey:i,isWritable:!1,isSigner:!0}),y({pubkey:n})];for(let f=0;f<r.rewardInfos.length;f++)d.push(y({pubkey:new G(r.rewardInfos[f].vault)})),d.push(y({pubkey:o[f]}));return new ce({programId:a,keys:d,data:l})}function Rr(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s,userAuxiliaryLedgers:a}=e,[c,u]=[new G(t.programId),new G(t.id)],l=me({programId:c,poolId:u,owner:i,version:5}),d=Buffer.alloc(ue.span);ue.encode({instruction:12,amount:U(s)},d);let f=[y({pubkey:u}),y({pubkey:new G(r.authority),isWritable:!1}),y({pubkey:l}),y({pubkey:i,isWritable:!1,isSigner:!0}),y({pubkey:n}),y({pubkey:new G(r.lpVault)}),y({pubkey:o[0]}),y({pubkey:new G(r.rewardInfos[0].vault)}),y({pubkey:ut,isWritable:!1}),y({pubkey:Se,isWritable:!1})];for(let p=1;p<r.rewardInfos.length;p++)f.push(y({pubkey:o[p]})),f.push(y({pubkey:new G(r.rewardInfos[p].vault)}));if(a)for(let p of a)f.push(y({pubkey:p}));return new ce({programId:c,keys:f,data:d})}function On(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s,userAuxiliaryLedgers:a}=e,[c,u]=[new G(t.programId),new G(t.id)],l=X([ee("instruction"),T("amount")]),d=[y({pubkey:u}),y({pubkey:new G(r.authority),isWritable:!1}),y({pubkey:a[0]}),y({pubkey:i,isSigner:!0,isWritable:!1}),y({pubkey:n}),y({pubkey:new G(r.lpVault)}),y({pubkey:o[0]}),y({pubkey:new G(r.rewardInfos[0].vault)}),y({pubkey:ut,isWritable:!1}),y({pubkey:Se,isWritable:!1}),y({pubkey:o[1]}),y({pubkey:new G(r.rewardInfos[1].vault)})],f=Buffer.alloc(l.span);return l.encode({instruction:2,amount:s},f),new ce({keys:d,programId:c,data:f})}function Kr(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s,userAuxiliaryLedgers:a}=e,[c,u]=[new G(t.programId),new G(t.id)],l=me({programId:c,poolId:u,owner:i,version:3}),d=Buffer.alloc(ue.span);ue.encode({instruction:11,amount:U(s)},d);let f=[y({pubkey:u}),y({pubkey:new G(r.authority),isWritable:!1}),y({pubkey:l}),y({pubkey:i,isWritable:!1,isSigner:!0}),y({pubkey:n}),y({pubkey:new G(r.lpVault)}),y({pubkey:o[0]}),y({pubkey:new G(r.rewardInfos[0].vault)}),y({pubkey:ut,isWritable:!1}),y({pubkey:Se,isWritable:!1})];if(a)for(let p of a)f.push(y({pubkey:p}));return new ce({programId:c,keys:f,data:d})}function Wn(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s,userAuxiliaryLedgers:a}=e,[c,u]=[new G(t.programId),new G(t.id)],l=me({programId:c,poolId:u,owner:i,version:3}),d=Buffer.alloc(ue.span);ue.encode({instruction:10,amount:U(s)},d);let f=[y({pubkey:u}),y({pubkey:new G(r.authority),isWritable:!1}),y({pubkey:l}),y({pubkey:i,isWritable:!1,isSigner:!0}),y({pubkey:n}),y({pubkey:new G(r.lpVault)}),y({pubkey:o[0]}),y({pubkey:new G(r.rewardInfos[0].vault)}),y({pubkey:ut,isWritable:!1}),y({pubkey:Se,isWritable:!1})];if(a)for(let p of a)f.push(y({pubkey:p}));return new ce({programId:c,keys:f,data:d})}function Un(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s,userAuxiliaryLedgers:a}=e,[c,u]=[new G(t.programId),new G(t.id)],l=me({programId:c,poolId:u,owner:i,version:5}),d=Buffer.alloc(ue.span);ue.encode({instruction:11,amount:U(s)},d);let f=[y({pubkey:u}),y({pubkey:new G(r.authority),isWritable:!1}),y({pubkey:l}),y({pubkey:i,isWritable:!1,isSigner:!0}),y({pubkey:n}),y({pubkey:new G(r.lpVault)}),y({pubkey:o[0]}),y({pubkey:new G(r.rewardInfos[0].vault)}),y({pubkey:ut,isWritable:!1}),y({pubkey:Se,isWritable:!1})];for(let p=1;p<r.rewardInfos.length;p++)f.push(y({pubkey:o[p]})),f.push(y({pubkey:new G(r.rewardInfos[p].vault)}));if(a)for(let p of a)f.push(y({pubkey:p}));return new ce({programId:c,keys:f,data:d})}function qn(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s}=e,[a,c]=[new G(t.programId),new G(t.id)],u=me({programId:a,poolId:c,owner:i,version:6}),l=Buffer.alloc(ue.span);ue.encode({instruction:1,amount:U(s)},l);let d=[y({pubkey:Se,isWritable:!1}),y({pubkey:En.programId,isWritable:!1}),y({pubkey:c}),y({pubkey:new G(r.authority),isWritable:!1}),y({pubkey:new G(r.lpVault)}),y({pubkey:u}),y({pubkey:i,isWritable:!1,isSigner:!0}),y({pubkey:n})];for(let f=0;f<r.rewardInfos.length;f++)d.push(y({pubkey:new G(r.rewardInfos[f].vault)})),d.push(y({pubkey:o[f]}));return new ce({programId:a,keys:d,data:l})}var Cr=class extends st{async _getUserRewardInfo({payer:t,rewardInfo:r}){if(r.mint.equals(ne)){let n=await pr({connection:this.scope.connection,owner:this.scope.ownerPubKey,payer:t,amount:kr(te(Z({},r),{openTime:r.openTime.toString(),endTime:r.endTime.toString()}))});return{rewardPubKey:n.addresses.newAccount,newInstruction:n}}return{rewardPubKey:await this.scope.account.getCreatedTokenAccount({mint:r.mint,associatedOnly:!1})}}async create({poolInfo:t,rewardInfos:r,payer:n,programId:o=$e,txVersion:i}){this.checkDisabled(),this.scope.checkOwner();let a={lpMint:new z(t.lpMint.address),lockInfo:{lockMint:Cn,lockVault:Vn},version:6,rewardInfos:r,programId:o},c=this.createTxBuilder(),u=n!=null?n:this.scope.ownerPubKey,l=Et({fromPublicKey:u,programId:a.programId}),d=await this.scope.connection.getMinimumBalanceForRentExemption(Nt.span);c.addInstruction({instructions:[fs.createAccountWithSeed({fromPubkey:u,basePubkey:u,seed:l.seed,newAccountPubkey:l.publicKey,lamports:d,space:Nt.span,programId:a.programId})]});let{publicKey:f,nonce:p}=Mn({programId:new z(a.programId),poolId:l.publicKey}),m=at({programId:a.programId,poolId:l.publicKey,mint:a.lpMint,type:"lpVault"}),g=[],b=[];for(let k of a.rewardInfos){k.openTime>=k.endTime&&this.logAndCreateError("start time error","rewardInfo.rewardOpenTime",k.openTime.toString()),isNaN(ve[k.rewardType])&&this.logAndCreateError("rewardType error",k.rewardType),Number(k.perSecond)<=0&&this.logAndCreateError("rewardPerSecond error",k.perSecond),g.push(Fn(k));let{rewardPubKey:A,newInstruction:S}=await this._getUserRewardInfo({rewardInfo:k,payer:u});S&&c.addInstruction(S),A||this.logAndCreateError("cannot found target token accounts",this.scope.account.tokenAccounts);let L=k.mint.equals(ne)?new z(se.address):k.mint;b.push({rewardMint:L,rewardVault:at({programId:a.programId,poolId:l.publicKey,mint:L,type:"rewardVault"}),userRewardToken:A})}let{account:x,instructionParams:I}=await this.scope.account.getOrCreateTokenAccount({mint:new z(a.lockInfo.lockMint),owner:this.scope.ownerPubKey,skipCloseAccount:!1,createInfo:{payer:this.scope.ownerPubKey,amount:0},associatedOnly:!1});I&&c.addInstruction(I),x||this.logAndCreateError("cannot found lock vault","tokenAccounts",this.scope.account.tokenAccounts);let{instruction:P,instructionType:w}=_n({farmId:l.publicKey,owner:this.scope.ownerPubKey,farmAuthority:f,lpVault:m,lpMint:a.lpMint,lockVault:a.lockInfo.lockVault,lockMint:a.lockInfo.lockMint,lockUserAccount:x,programId:a.programId,rewardInfo:b,rewardInfoConfig:g,nonce:p});return c.addInstruction({instructions:[P],instructionTypes:[w]}).versionBuild({txVersion:i,extInfo:{farmId:l.publicKey,farmAuthority:f,lpVault:m,lockUserAccount:x,nonce:p}})}async restartReward({farmInfo:t,payer:r,newRewardInfo:n,txVersion:o}){var b;let i=Ie[t.programId];i!==6&&this.logAndCreateError("invalid farm version ",i);let s=Pe((await this.scope.api.fetchFarmKeysById({ids:t.id}))[0]),a={id:s.id,rewardInfos:t.rewardInfos,lpVault:s.lpVault,programId:s.programId};n.openTime>=n.endTime&&this.logAndCreateError("start time error","newRewardInfo",n);let c=r||this.scope.ownerPubKey,u=n.mint.equals(ne)?new z(se.address):n.mint,l=a.rewardInfos.findIndex(x=>new z(x.mint.address).equals(u)),d=s.rewardInfos[l];d||this.logAndCreateError("configuration does not exist","rewardMint",u);let f=(b=d.vault)!=null?b:ne,p=this.createTxBuilder(),{rewardPubKey:m,newInstruction:g}=await this._getUserRewardInfo({rewardInfo:n,payer:c});return g&&p.addInstruction(g),m||this.logAndCreateError("cannot found target token accounts",this.scope.account.tokenAccounts),p.addInstruction({instructions:[Sr({payer:this.scope.ownerPubKey,rewardVault:f,userRewardTokenPub:m,farmKeys:a,rewardInfo:n})],instructionTypes:[j.FarmV6Restart]}).versionBuild({txVersion:o})}async restartRewards({farmInfo:t,payer:r,newRewardInfos:n,txVersion:o}){var l;let i=Ie[t.programId];i!==6&&this.logAndCreateError("invalid farm version ",i);let s=Pe((await this.scope.api.fetchFarmKeysById({ids:t.id}))[0]),a={id:s.id,rewardInfos:t.rewardInfos,lpVault:s.lpVault,programId:s.programId};n.forEach(d=>{d.openTime>=d.endTime&&this.logAndCreateError("start time error","newRewardInfo",d)});let c=r||this.scope.ownerPubKey,u=this.createTxBuilder();for(let d of n){let f=d.mint.equals(ne)?new z(se.address):d.mint,p=a.rewardInfos.findIndex(P=>new z(P.mint.address).equals(f)),m=s.rewardInfos[p];m||this.logAndCreateError("configuration does not exist","rewardMint",f);let g=(l=m.vault)!=null?l:ne,{rewardPubKey:b,newInstruction:x}=await this._getUserRewardInfo({rewardInfo:d,payer:c});x&&u.addInstruction(x),b||this.logAndCreateError("cannot found target token accounts",this.scope.account.tokenAccounts);let I=Sr({payer:this.scope.ownerPubKey,rewardVault:g,userRewardTokenPub:b,farmKeys:a,rewardInfo:d});u.addInstruction({instructions:[I],instructionTypes:[j.FarmV6Restart]})}return u.versionBuild({txVersion:o})}async addNewRewardToken(t){let{txVersion:r,farmInfo:n,newRewardInfo:o,payer:i}=t,s=Ie[n.programId];s!==6&&this.logAndCreateError("invalid farm version ",s);let a=Pe((await this.scope.api.fetchFarmKeysById({ids:n.id}))[0]),c=i!=null?i:this.scope.ownerPubKey,u=this.createTxBuilder(),l=o.mint.equals(ne)?new z(se.address):o.mint,d=at({programId:new z(n.programId),poolId:new z(n.id),mint:l,type:"rewardVault"}),{rewardPubKey:f,newInstruction:p}=await this._getUserRewardInfo({rewardInfo:o,payer:c});return p&&u.addInstruction(p),f||this.logAndCreateError("annot found target token accounts",this.scope.account.tokenAccounts),o.mint=l,u.addInstruction({instructions:[Lr({payer:this.scope.ownerPubKey,userRewardTokenPub:f,farmKeys:a,rewardVault:d,rewardInfo:o})],instructionTypes:[j.FarmV6CreatorAddReward]}).versionBuild({txVersion:r})}async addNewRewardsToken(t){let{txVersion:r,farmInfo:n,newRewardInfos:o,payer:i}=t,s=Ie[n.programId];s!==6&&this.logAndCreateError("invalid farm version ",s);let a=Pe((await this.scope.api.fetchFarmKeysById({ids:n.id}))[0]),c=i!=null?i:this.scope.ownerPubKey,u=this.createTxBuilder();for(let l of o){let d=l.mint.equals(ne)?new z(se.address):l.mint,f=at({programId:new z(n.programId),poolId:new z(n.id),mint:d,type:"rewardVault"}),{rewardPubKey:p,newInstruction:m}=await this._getUserRewardInfo({rewardInfo:l,payer:c});m&&u.addInstruction(m),p||this.logAndCreateError("cannot found target token accounts",this.scope.account.tokenAccounts);let g=Lr({payer:this.scope.ownerPubKey,userRewardTokenPub:p,farmKeys:a,rewardVault:f,rewardInfo:te(Z({},l),{mint:d})});u.addInstruction({instructions:[g],instructionTypes:[j.FarmV6CreatorAddReward]})}return u.versionBuild({txVersion:r})}async deposit(t){let{txVersion:r,farmInfo:n,amount:o,feePayer:i,useSOLBalance:s,associatedOnly:a=!0,checkCreateATAOwner:c=!1,userAuxiliaryLedgers:u,computeBudgetConfig:l,txTipConfig:d}=t;this.scope.availability.addFarm===!1&&this.logAndCreateError("farm deposit feature disabled in your region");let{rewardInfos:f,programId:p}=n,m=Ie[p];m===4&&this.logAndCreateError("V4 has suspended deposits:",n.programId),xr(m)||this.logAndCreateError("invalid farm program:",n.programId);let[g,b]=[new z(n.programId),new z(n.id)],x=(await this.scope.api.fetchFarmKeysById({ids:n.id}))[0],I=me({programId:g,poolId:b,owner:this.scope.ownerPubKey,version:m}),P=this.createTxBuilder();P.addCustomComputeBudget(l),P.addTipInstruction(d);let w={};for(let C of this.scope.account.tokenAccounts)if(a){let W=qe(this.scope.ownerPubKey,C.mint,C.programId).publicKey;C.publicKey&&W.equals(C.publicKey)&&(w[C.mint.toString()]=C.publicKey)}else w[C.mint.toString()]=C.publicKey;let k=x.lpMint,A=w[k.address];A||this.logAndCreateError("you don't have any lp","lp zero",w);let S=[];for(let C of f){let W=s&&C.mint.address===be.toString(),V=w[C.mint.address];if(!V){let{account:ge,instructionParams:ye}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:C.mint.programId,mint:new z(C.mint.address),notUseTokenAccount:W,createInfo:{payer:i||this.scope.ownerPubKey,amount:0},owner:this.scope.ownerPubKey,skipCloseAccount:!W,associatedOnly:W?!1:a,checkCreateATAOwner:c});V=ge,ye&&P.addInstruction(ye)}w[C.mint.address]=V,S.push(V)}let L,F=await this.scope.connection.getAccountInfo(I);if(F&&(L=Ar(m).decode(F.data)),n.programId!==$e.toString()&&!L){let{instruction:C,instructionType:W}=Ir({id:b,programId:g,version:m,ledger:I,owner:this.scope.ownerPubKey});P.addInstruction({instructions:[C],instructionTypes:[W]})}let B=Pr({version:m,rewardInfos:f,rewardTokenAccountsPublicKeys:S});B&&this.logAndCreateError(B);let v={amount:U(o),owner:this.scope.ownerPubKey,farmInfo:n,farmKeys:x,lpAccount:A,rewardAccounts:S,userAuxiliaryLedgers:u==null?void 0:u.map(C=>new z(C))},K=m===6?qn(v):m===5?Un(v):Wn(v),E={3:j.FarmV3Deposit,5:j.FarmV5Deposit,6:j.FarmV6Deposit};return P.addInstruction({instructions:[K],instructionTypes:[E[m]]}).versionBuild({txVersion:r})}async withdraw(t){let{txVersion:r,farmInfo:n,amount:o,deposited:i,useSOLBalance:s,feePayer:a,associatedOnly:c=!0,checkCreateATAOwner:u=!1,userAuxiliaryLedgers:l,computeBudgetConfig:d,txTipConfig:f}=t,{rewardInfos:p}=n;this.scope.availability.removeFarm===!1&&this.logAndCreateError("farm withdraw feature disabled in your region");let m=Ie[n.programId];xr(m)||this.logAndCreateError("invalid farm program:",n.programId);let g=(await this.scope.api.fetchFarmKeysById({ids:n.id}))[0],b=this.createTxBuilder();b.addCustomComputeBudget(d),b.addTipInstruction(f);let x={};for(let B of this.scope.account.tokenAccounts)if(c){let v=qe(this.scope.ownerPubKey,B.mint).publicKey;B.publicKey&&v.equals(B.publicKey)&&(x[B.mint.toString()]=B.publicKey)}else x[B.mint.toString()]=B.publicKey;if(m!==4){let B=me({programId:new z(n.programId),poolId:new z(n.id),owner:this.scope.ownerPubKey,version:m}),v=await this.scope.connection.getAccountInfo(B);if(v)Ar(m).decode(v.data).deposited.isZero()&&this.logAndCreateError("no deposited lp",{farmId:n.id});else if(m!==6){let{instruction:K,instructionType:E}=Ir({id:new z(g.id),programId:new z(g.programId),version:m,ledger:B,owner:this.scope.ownerPubKey});b.addInstruction({instructions:[K],instructionTypes:[E]})}}i&&i.isZero()&&!(l||[]).length&&this.logAndCreateError("no deposited lp",{farmId:n.id});let I=g.lpMint.address,P=s&&I===be.toString(),w=x[I.toString()];if(!w){let{account:B,instructionParams:v}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:g.lpMint.programId,mint:new z(I),notUseTokenAccount:P,createInfo:{payer:a||this.scope.ownerPubKey,amount:0},owner:this.scope.ownerPubKey,skipCloseAccount:!0,associatedOnly:P?!1:c,checkCreateATAOwner:u});w=B,v&&b.addInstruction(v)}x[I.toString()]=w;let k=[];for(let B of p){let v=s&&B.mint.address===be.toString(),K=x[B.mint.address];if(!K){let{account:E,instructionParams:C}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:B.mint.programId,mint:new z(B.mint.address),notUseTokenAccount:v,createInfo:{payer:a||this.scope.ownerPubKey,amount:0},owner:this.scope.ownerPubKey,skipCloseAccount:!v,associatedOnly:v?!1:c,checkCreateATAOwner:u});K=E,C&&b.addInstruction(C)}x[B.mint.address]=K,k.push(K)}let A=Pr({version:m,rewardInfos:p,rewardTokenAccountsPublicKeys:k});A&&this.logAndCreateError(A);let S={amount:U(o),owner:this.scope.ownerPubKey,farmInfo:n,farmKeys:g,lpAccount:w,rewardAccounts:k,userAuxiliaryLedgers:l==null?void 0:l.map(B=>new z(B))},L=m===6?Br(S):m===5?Rr(S):m===4?On(S):Kr(S),F={3:j.FarmV3Withdraw,4:j.FarmV4Withdraw,5:j.FarmV5Withdraw,6:j.FarmV6Withdraw};return b.addInstruction({instructions:[L],instructionTypes:[F[m]]}).versionBuild({txVersion:r})}async withdrawFarmReward({farmInfo:t,withdrawMint:r,txVersion:n,computeBudgetConfig:o,txTipConfig:i}){var m;this.scope.checkOwner();let s=Pe((await this.scope.api.fetchFarmKeysById({ids:t.id}))[0]),a=Ie[t.programId];a!==6&&this.logAndCreateError("invalid farm version",a);let c=s.rewardInfos.find(g=>ft(g.mint.address).equals(ft(r)));c||this.logAndCreateError("withdraw mint error","rewardInfos",t);let u=(m=c==null?void 0:c.vault)!=null?m:ne,l=this.createTxBuilder(),d;if(r.equals(ne)||r.equals(z.default)){let g=await pr({connection:this.scope.connection,owner:this.scope.ownerPubKey,payer:this.scope.ownerPubKey,amount:kr(te(Z({},c),{openTime:c.openTime,endTime:c.endTime,perSecond:new zt(c.perSecond).mul(10**c.mint.decimals).toString()}))});d=g.addresses.newAccount,l.addInstruction(g)}else{let g=await this.scope.account.getCreatedTokenAccount({mint:r});g===null?(d=await this.scope.account.getAssociatedTokenAccount(r),l.addInstruction({instructions:[ps(this.scope.ownerPubKey,d,this.scope.ownerPubKey,r)],instructionTypes:[j.CreateATA]})):d=g}let{instruction:f,instructionType:p}=Dn({programId:s.programId,id:s.id,authority:s.authority,lpVault:s.lpVault,rewardVault:u,userRewardToken:d,owner:this.scope.ownerPubKey});return l.addCustomComputeBudget(o),l.addTipInstruction(i),l.addInstruction({instructions:[f],instructionTypes:[p]}).versionBuild({txVersion:n})}async harvestAllRewards(t){let{farmInfoList:r,useSOLBalance:n,feePayer:o,associatedOnly:i=!0,checkCreateATAOwner:s=!1,userAuxiliaryLedgers:a,txVersion:c,computeBudgetConfig:u}=t,l=this.createTxBuilder(),d={};for(let m of this.scope.account.tokenAccounts)if(i){let g=qe(this.scope.ownerPubKey,m.mint).publicKey;m.publicKey&&g.equals(m.publicKey)&&(d[m.mint.toString()]=m.publicKey)}else d[m.mint.toString()]=m.publicKey;let p=(await this.scope.api.fetchFarmKeysById({ids:Object.values(r).map(m=>m.id).join(",")})).reduce((m,g)=>te(Z({},m),{[g.id]:g}),{});for(let m of Object.values(r)){let{programId:g,lpMint:b,rewardInfos:x,id:I}=m,P=Ie[g],w=b.address,k=n&&w===be.toString(),A=d[w];if(!A){let{account:K,instructionParams:E}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:b.programId,mint:new z(w),notUseTokenAccount:k,createInfo:{payer:o||this.scope.ownerPubKey,amount:0},owner:this.scope.ownerPubKey,skipCloseAccount:!0,associatedOnly:k?!1:i,checkCreateATAOwner:s});A=K,E&&l.addInstruction(E)}d[w.toString()]=A;let S=[];for(let K of x){let E=n&&K.mint.address===be.toString(),C=d[K.mint.address];if(!C){let{account:W,instructionParams:V}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:K.mint.programId,mint:new z(K.mint.address),notUseTokenAccount:E,createInfo:{payer:o||this.scope.ownerPubKey,amount:0},owner:this.scope.ownerPubKey,skipCloseAccount:!E,associatedOnly:E?!1:i,checkCreateATAOwner:s});C=W,V&&l.addInstruction(V)}d[K.mint.address]=C,S.push(C)}let L=p[I],F={amount:nr,owner:this.scope.ownerPubKey,farmInfo:m,farmKeys:L,lpAccount:A,rewardAccounts:S,userAuxiliaryLedgers:a==null?void 0:a.map(K=>new z(K))},B=P===6?Br(F):P===5?Rr(F):Kr(F),v={3:j.FarmV3Withdraw,5:j.FarmV5Withdraw,6:j.FarmV6Withdraw};l.addInstruction({instructions:[B],instructionTypes:[v[P]]})}return c===1?l.sizeCheckBuild({computeBudgetConfig:u}):l.sizeCheckBuildV0({computeBudgetConfig:u})}};export{Cr as default};
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
//# sourceMappingURL=farm.mjs.map