@raydium-io/raydium-sdk-v2 0.1.92-alpha → 0.1.94-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/api.d.ts +1 -1
- package/lib/api/index.d.ts +1 -1
- package/lib/api/type.d.ts +1 -1
- package/lib/{api-9d98bd04.d.ts → api-c8ce9f12.d.ts} +18 -18
- package/lib/common/accountInfo.d.ts +1 -1
- package/lib/common/bignumber.d.ts +1 -1
- package/lib/common/constant.d.ts +1 -1
- package/lib/common/fractionUtil.d.ts +1 -1
- package/lib/common/index.d.ts +1 -1
- package/lib/common/transfer.d.ts +1 -1
- package/lib/common/txTool/txTool.d.ts +1 -1
- package/lib/common/txTool/txUtils.d.ts +1 -1
- package/lib/common/utility.d.ts +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +1 -1
- package/lib/index.mjs.map +1 -1
- package/lib/module/amount.d.ts +1 -1
- package/lib/module/fraction.d.ts +1 -1
- package/lib/module/index.d.ts +1 -1
- package/lib/module/percent.d.ts +1 -1
- package/lib/module/price.d.ts +1 -1
- package/lib/raydium/account/account.d.ts +3 -3
- package/lib/raydium/account/account.js +1 -1
- package/lib/raydium/account/account.js.map +1 -1
- package/lib/raydium/account/account.mjs +1 -1
- package/lib/raydium/account/account.mjs.map +1 -1
- package/lib/raydium/account/index.d.ts +1 -1
- package/lib/raydium/account/instruction.d.ts +1 -1
- package/lib/raydium/account/layout.d.ts +3 -3
- package/lib/raydium/account/types.d.ts +1 -1
- package/lib/raydium/account/util.d.ts +1 -1
- package/lib/raydium/clmm/clmm.d.ts +3 -3
- package/lib/raydium/clmm/index.d.ts +3 -3
- package/lib/raydium/clmm/instrument.d.ts +2 -2
- package/lib/raydium/clmm/layout.d.ts +12 -12
- package/lib/raydium/clmm/type.d.ts +2 -2
- package/lib/raydium/clmm/utils/math.d.ts +2 -2
- package/lib/raydium/clmm/utils/pool.d.ts +2 -2
- package/lib/raydium/clmm/utils/position.d.ts +2 -2
- package/lib/raydium/clmm/utils/tick.d.ts +2 -2
- package/lib/raydium/clmm/utils/tickQuery.d.ts +2 -2
- package/lib/raydium/clmm/utils/tickarrayBitmap.d.ts +2 -2
- package/lib/raydium/cpmm/cpmm.d.ts +3 -3
- package/lib/raydium/cpmm/curve/calculator.d.ts +1 -1
- package/lib/raydium/cpmm/curve/constantProduct.d.ts +1 -1
- package/lib/raydium/cpmm/index.d.ts +1 -1
- package/lib/raydium/cpmm/instruction.d.ts +1 -1
- package/lib/raydium/cpmm/layout.d.ts +3 -3
- package/lib/raydium/cpmm/type.d.ts +1 -1
- package/lib/raydium/farm/config.d.ts +1 -1
- package/lib/raydium/farm/farm.d.ts +3 -3
- package/lib/raydium/farm/farm.js +1 -1
- package/lib/raydium/farm/farm.js.map +1 -1
- package/lib/raydium/farm/farm.mjs +1 -1
- package/lib/raydium/farm/farm.mjs.map +1 -1
- package/lib/raydium/farm/index.d.ts +1 -1
- package/lib/raydium/farm/instruction.d.ts +1 -1
- package/lib/raydium/farm/layout.d.ts +1 -1
- package/lib/raydium/farm/type.d.ts +1 -1
- package/lib/raydium/farm/util.d.ts +1 -1
- package/lib/raydium/ido/ido.d.ts +3 -3
- package/lib/raydium/ido/index.d.ts +3 -3
- package/lib/raydium/ido/instruction.d.ts +1 -1
- package/lib/raydium/ido/type.d.ts +1 -1
- package/lib/raydium/index.d.ts +3 -3
- package/lib/raydium/index.js +1 -1
- package/lib/raydium/index.js.map +1 -1
- package/lib/raydium/index.mjs +1 -1
- package/lib/raydium/index.mjs.map +1 -1
- package/lib/raydium/liquidity/index.d.ts +1 -1
- package/lib/raydium/liquidity/instruction.d.ts +1 -1
- package/lib/raydium/liquidity/layout.d.ts +4 -4
- package/lib/raydium/liquidity/liquidity.d.ts +3 -3
- package/lib/raydium/liquidity/type.d.ts +1 -1
- package/lib/raydium/liquidity/utils.d.ts +1 -1
- package/lib/raydium/marketV2/createMarket.d.ts +3 -3
- package/lib/raydium/marketV2/index.d.ts +3 -3
- package/lib/raydium/moduleBase.d.ts +3 -3
- package/lib/raydium/raydium.d.ts +3 -3
- package/lib/raydium/raydium.js +1 -1
- package/lib/raydium/raydium.js.map +1 -1
- package/lib/raydium/raydium.mjs +1 -1
- package/lib/raydium/raydium.mjs.map +1 -1
- package/lib/raydium/serum/layout.d.ts +2 -2
- package/lib/raydium/token/constant.d.ts +1 -1
- package/lib/raydium/token/index.d.ts +1 -1
- package/lib/raydium/token/layout.d.ts +2 -2
- package/lib/raydium/token/token.d.ts +3 -3
- package/lib/raydium/token/type.d.ts +1 -1
- package/lib/raydium/token/utils.d.ts +1 -1
- package/lib/raydium/tradeV2/index.d.ts +2 -2
- package/lib/raydium/tradeV2/instrument.d.ts +2 -2
- package/lib/raydium/tradeV2/trade.d.ts +3 -3
- package/lib/raydium/tradeV2/type.d.ts +2 -2
- package/lib/raydium/type.d.ts +1 -1
- package/lib/raydium/utils1216/index.d.ts +3 -3
- package/lib/raydium/utils1216/utils1216.d.ts +3 -3
- package/lib/{raydium-cfb7854f.d.ts → raydium-7bc83789.d.ts} +6 -5
- package/lib/{type-351304d7.d.ts → type-2c421f5d.d.ts} +1 -1
- package/package.json +1 -1
- package/src/raydium/account/account.ts +9 -18
- package/src/raydium/farm/farm.ts +43 -11
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var Dn=Object.defineProperty,On=Object.defineProperties;var Wn=Object.getOwnPropertyDescriptors;var st=Object.getOwnPropertySymbols;var Lr=Object.prototype.hasOwnProperty,Br=Object.prototype.propertyIsEnumerable;var Sr=(e,t,r)=>t in e?Dn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Z=(e,t)=>{for(var r in t||(t={}))Lr.call(t,r)&&Sr(e,r,t[r]);if(st)for(var r of st(t))Br.call(t,r)&&Sr(e,r,t[r]);return e},te=(e,t)=>On(e,Wn(t));var at=(e,t)=>{var r={};for(var n in e)Lr.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&st)for(var n of st(e))t.indexOf(n)<0&&Br.call(e,n)&&(r[n]=e[n]);return r};import{PublicKey as j,SystemProgram as is}from"@solana/web3.js";import{createAssociatedTokenAccountInstruction as ss}from"@solana/spl-token";import{PublicKey as Gn}from"@solana/web3.js";import{get as Rr,set as Un}from"lodash";var Vt=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}},Kr={},qn={};function $(e){let t=Rr(Kr,e);if(!t){let r=Rr(qn,e);t=new Vt({name:e,logLevel:r}),Un(Kr,e,t)}return t}import{MINT_SIZE as hs,TOKEN_PROGRAM_ID as bs,getTransferFeeConfig as ws,unpackMint as xs}from"@solana/spl-token";var Mt=$("Raydium_accountInfo_util");async function Cr(e,t,r){let{batchRequest:n,commitment:o="confirmed",chunkCount:i=100}=Z({batchRequest:!1},r),s=Ft(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=Ft(c,10);a=(await(await Promise.all(u.map(async d=>await e._rpcBatchRequest(d)))).flat()).map(d=>(d.error&&Mt.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:y,owner:b,rentEpoch:T}=f;return p.length!==2&&p[1]!=="base64"&&Mt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:m,lamports:y,owner:new Gn(b),rentEpoch:T}}return null})))}else try{a=await Promise.all(s.map(c=>e.getMultipleAccountsInfo(c,o)))}catch(c){c instanceof Error&&Mt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}import xe from"bn.js";var Ee=9e15,Le=1e9,Et="0123456789abcdef",ct="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",lt="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Nt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Ee,maxE:Ee,crypto:!1},Er,ye,V=!0,ft="[DecimalError] ",Se=ft+"Invalid argument: ",Nr=ft+"Precision limit exceeded",_r=ft+"crypto unavailable",vr="[object Decimal]",ie=Math.floor,re=Math.pow,Hn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,jn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,zn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Dr=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,de=1e7,B=7,Yn=9007199254740991,Zn=ct.length-1,_t=lt.length-1,h={toStringTag:vr};h.absoluteValue=h.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),S(e)};h.ceil=function(){return S(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(Se+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())+B,n.rounding=1,r=Xn(n,Gr(n,r)),n.precision=e,n.rounding=t,S(ye==2||ye==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(V=!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=z(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&&(S(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")&&(S(n,e+1,1),t=!n.times(n).times(n).eq(l));break}return V=!0,S(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/B))*B,e=t[e],e)for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r};h.dividedBy=h.div=function(e){return z(this,new this.constructor(e))};h.dividedToIntegerBy=h.divToInt=function(e){var t=this,r=t.constructor;return S(z(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 S(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/mt(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),i=Ne(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 S(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=Ne(i,2,o,o,!0);else{e=1.4*Math.sqrt(n),e=e>16?16:e|0,o=o.times(1/mt(5,e)),o=Ne(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,S(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,z(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,V=!1,r=r.times(r).minus(1).sqrt().plus(r),V=!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,V=!1,r=r.times(r).plus(1).sqrt().plus(r),V=!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?S(new i(o),e,t,!0):(i.precision=r=n-o.e,o=z(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<=_t)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<=_t)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/B+2|0),e=r;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(V=!1,t=Math.ceil(a/B),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)),V=!0,S(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/B)>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(V=!1,a=d+p,s=Ie(u,a),n=t?dt(l,a+10):Ie(e,a),c=z(s,n,a,1),Ue(c.d,o=d,f))do if(a+=10,s=Ie(u,a),n=t?dt(l,a+10):Ie(e,a),c=z(s,n,a,1),!i){+oe(c.d).slice(o+1,o+15)+1==1e14&&(c=S(c,d+1,0));break}while(Ue(c.d,o+=10,f));return V=!0,S(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 V?S(e,a,c):e}if(r=ie(e.e/B),l=ie(p.e/B),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/B),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=pt(u,r),V?S(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]?S(new n(r),n.precision,n.rounding):(V=!1,n.modulo==9?(t=z(r,e.abs(),0,3,1),t.s*=e.s):t=z(r,e,0,n.modulo,1),t=t.times(e),V=!0,r.minus(t))};h.naturalExponential=h.exp=function(){return vt(this)};h.naturalLogarithm=h.ln=function(){return Ie(this)};h.negated=h.neg=function(){var e=new this.constructor(this);return e.s=-e.s,S(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)),V?S(e,a,c):e;if(i=ie(d.e/B),n=ie(e.e/B),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/B),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=pt(u,n),V?S(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(Se+e);return r.d?(t=Or(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t};h.round=function(){var e=this,t=e.constructor;return S(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())+B,n.rounding=1,r=Jn(n,Gr(n,r)),n.precision=e,n.rounding=t,S(ye>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(V=!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(z(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&&(S(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")&&(S(n,c+1,1),e=!n.times(n).eq(s));break}return V=!0,S(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=z(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,S(ye==2||ye==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/B)+ie(e.e/B),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=pt(i,r),V?S(e,d.precision,d.rounding):e};h.toBinary=function(e,t){return Ot(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,Le),t===void 0?t=n.rounding:ae(t,0,8),S(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,Le),t===void 0?t=o.rounding:ae(t,0,8),n=S(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,Le),t===void 0?t=i.rounding:ae(t,0,8),n=S(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,y=p.constructor;if(!m)return new y(p);if(u=r=new y(1),n=c=new y(0),t=new y(n),i=t.e=Or(m)-p.e-1,s=i%B,t.d[0]=re(10,s<0?B+s:s),e==null)e=i>0?t:u;else{if(a=new y(e),!a.isInt()||a.lt(u))throw Error(Se+a);e=a.gt(t)?i>0?t:u:a}for(V=!1,a=new y(oe(m)),l=y.precision,y.precision=i=m.length*B*2;d=z(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=z(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=z(u,n,i,1).minus(p).abs().cmp(z(c,r,i,1).minus(p).abs())<1?[u,n]:[c,r],y.precision=l,V=!0,f};h.toHexadecimal=h.toHex=function(e,t){return Ot(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]?(V=!1,r=z(r,e,0,t,1).times(e),V=!0,S(r)):(e.s=r.s,r=e),r};h.toNumber=function(){return+this};h.toOctal=function(e,t){return Ot(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 S(a,n,i);if(t=ie(e.e/B),t>=e.d.length-1&&(r=u<0?-u:u)<=Yn)return o=Wr(c,a,r,n),e.s<0?new c(1).div(o):S(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):(V=!1,c.rounding=a.s=1,r=Math.min(12,(t+"").length),o=vt(e.times(Ie(a,n+r)),n),o.d&&(o=S(o,n+5,1),Ue(o.d,n,i)&&(t=n+10,o=S(vt(e.times(Ie(a,t+r)),t),t+5,1),+oe(o.d).slice(n+1,n+15)+1==1e14&&(o=S(o,n+1,0)))),o.s=s,V=!0,c.rounding=i,S(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,Le),t===void 0?t=o.rounding:ae(t,0,8),n=S(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,Le),t===void 0?t=n.rounding:ae(t,0,8)),S(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 S(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=B-n.length,r&&(i+=Ae(r)),i+=n;s=e[t],n=s+"",r=B-n.length,r&&(i+=Ae(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(Se+e)}function Ue(e,t,r,n){var o,i,s,a;for(i=e[0];i>=10;i/=10)--t;return--t<0?(t+=B,o=0):(o=Math.ceil((t+1)/B),t%=B),i=re(10,B-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 ut(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]+=Et.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 Xn(e,t){var r,n,o;if(t.isZero())return t;n=t.d.length,n<32?(r=Math.ceil(n/3),o=(1/mt(4,r)).toString()):(r=16,o="2.3283064365386962890625e-10"),e.precision+=r,t=Ne(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 z=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,y,b,T,I,w,P,A,k,C,R,L,U,O,N,K=n.constructor,q=n.s==o.s?1:-1,H=n.d,W=o.d;if(!H||!H[0]||!W||!W[0])return new K(!n.s||!o.s||(H?W&&H[0]==W[0]:!W)?NaN:H&&H[0]==0||!W?q*0:q/0);for(c?(p=1,l=n.e-o.e):(c=de,p=B,l=ie(n.e/p)-ie(o.e/p)),O=W.length,L=H.length,T=new K(q),I=T.d=[],d=0;W[d]==(H[d]||0);d++);if(W[d]>(H[d]||0)&&l--,i==null?(k=i=K.precision,s=K.rounding):a?k=i+(n.e-o.e)+1:k=i,k<0)I.push(1),m=!0;else{if(k=k/p+2|0,d=0,O==1){for(f=0,W=W[0],k++;(d<L||f)&&k--;d++)C=f*c+(H[d]||0),I[d]=C/W|0,f=C%W|0;m=f||d<L}else{for(f=c/(W[0]+1)|0,f>1&&(W=e(W,f,c),H=e(H,f,c),O=W.length,L=H.length),R=O,w=H.slice(0,O),P=w.length;P<O;)w[P++]=0;N=W.slice(),N.unshift(0),U=W[0],W[1]>=c/2&&++U;do f=0,u=t(W,w,O,P),u<0?(A=w[0],O!=P&&(A=A*c+(w[1]||0)),f=A/U|0,f>1?(f>=c&&(f=c-1),y=e(W,f,c),b=y.length,P=w.length,u=t(y,w,b,P),u==1&&(f--,r(y,O<b?N:W,b,c))):(f==0&&(u=f=1),y=W.slice()),b=y.length,b<P&&y.unshift(0),r(w,y,P,c),u==-1&&(P=w.length,u=t(W,w,O,P),u<1&&(f++,r(w,O<P?N:W,P,c))),P=w.length):u===0&&(f++,w=[0]),I[d++]=f,u&&w[0]?w[P++]=H[R]||0:(w=[H[R]],P=1);while((R++<L||w[0]!==void 0)&&k--);m=w[0]!==void 0}I[0]||I.shift()}if(p==1)T.e=l,Er=m;else{for(d=1,f=I[0];f>=10;f/=10)d++;T.e=d+l*p-1,S(T,a?i+T.e+1:i,s,m)}return T}}();function S(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+=B,s=t,l=d[f=0],c=l/re(10,o-s-1)%10|0;else if(f=Math.ceil((i+1)/B),a=d.length,f>=a)if(n){for(;a++<=f;)d.push(0);l=c=0,o=1,i%=B,s=i-B+1}else break e;else{for(l=a=d[f],o=1;a>=10;a/=10)o++;i%=B,s=i-B+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,(B-t%B)%B),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,B-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 V&&(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 qr(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)+Ae(n):s>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(e.e<0?"e":"e+")+e.e):o<0?(i="0."+Ae(-o-1)+i,r&&(n=r-s)>0&&(i+=Ae(n))):o>=s?(i+=Ae(o+1-s),r&&(n=r-o-1)>0&&(i=i+"."+Ae(n))):((n=o+1)<s&&(i=i.slice(0,n)+"."+i.slice(n)),r&&(n=r-s)>0&&(o+1===s&&(i+="."),i+=Ae(n))),i}function pt(e,t){var r=e[0];for(t*=B;r>=10;r/=10)t++;return t}function dt(e,t,r){if(t>Zn)throw V=!0,r&&(e.precision=r),Error(Nr);return S(new e(ct),t,1,!0)}function le(e,t,r){if(t>_t)throw Error(Nr);return S(new e(lt),t,r,!0)}function Or(e){var t=e.length-1,r=t*B+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 Ae(e){for(var t="";e--;)t+="0";return t}function Wr(e,t,r,n){var o,i=new e(1),s=Math.ceil(n/B+4);for(V=!1;;){if(r%2&&(i=i.times(t),Mr(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),Mr(t.d,s)}return V=!0,i}function Vr(e){return e.d[e.d.length-1]&1}function Ur(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 vt(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?(V=!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=S(i.times(e),c,1),r=r.times(++l),a=s.plus(z(i,r,c,1)),oe(a.d).slice(0,c)===oe(s.d).slice(0,c)){for(o=d;o--;)s=S(s.times(s),c,1);if(t==null)if(u<3&&Ue(s.d,c-n,p,u))f.precision=c+=10,r=i=a=new f(1),l=0,u++;else return S(s,f.precision=m,p,V=!0);else return f.precision=m,s}s=a}}function Ie(e,t){var r,n,o,i,s,a,c,u,l,d,f,p=1,m=10,y=e,b=y.d,T=y.constructor,I=T.rounding,w=T.precision;if(y.s<0||!b||!b[0]||!y.e&&b[0]==1&&b.length==1)return new T(b&&!b[0]?-1/0:y.s!=1?NaN:b?0:y);if(t==null?(V=!1,l=w):l=t,T.precision=l+=m,r=oe(b),n=r.charAt(0),Math.abs(i=y.e)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)y=y.times(e),r=oe(y.d),n=r.charAt(0),p++;i=y.e,n>1?(y=new T("0."+r),i++):y=new T(n+"."+r.slice(1))}else return u=dt(T,l+2,w).times(i+""),y=Ie(new T(n+"."+r.slice(1)),l-m).plus(u),T.precision=w,t==null?S(y,w,I,V=!0):y;for(d=y,c=s=y=z(y.minus(1),y.plus(1),l,1),f=S(y.times(y),l,1),o=3;;){if(s=S(s.times(f),l,1),u=c.plus(z(s,new T(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(dt(T,l+2,w).times(i+""))),c=z(c,new T(p),l,1),t==null)if(Ue(c.d,l-m,I,a))T.precision=l+=m,u=s=y=z(d.minus(1),d.plus(1),l,1),f=S(y.times(y),l,1),o=a=1;else return S(c,T.precision=w,I,V=!0);else return T.precision=w,c;c=u,o+=2}}function qr(e){return String(e.s*e.s/0)}function Dt(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)%B,r<0&&(n+=B),n<o){for(n&&e.d.push(+t.slice(0,n)),o-=B;n<o;)e.d.push(+t.slice(n,n+=B));t=t.slice(n),n=B-t.length}else n-=o;for(;n--;)t+="0";e.d.push(+t),V&&(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 Qn(e,t){var r,n,o,i,s,a,c,u,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),Dr.test(t))return Dt(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(jn.test(t))r=16,t=t.toLowerCase();else if(Hn.test(t))r=2;else if(zn.test(t))r=8;else throw Error(Se+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=Wr(n,new n(r),i,i*2)),u=ut(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=pt(u,l),e.d=u,V=!1,s&&(e=z(e,o,a*4)),c&&(e=e.times(Math.abs(c)<54?re(2,c):qe.pow(2,c))),V=!0,e)}function Jn(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:Ne(e,2,t,t);r=1.4*Math.sqrt(n),r=r>16?16:r|0,t=t.times(1/mt(5,r)),t=Ne(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 Ne(e,t,r,n,o){var i,s,a,c,u=1,l=e.precision,d=Math.ceil(l/B);for(V=!1,c=r.times(r),a=new e(n);;){if(s=z(a.times(c),new e(t++*t++),l,1),a=o?n.plus(s):n.minus(s),n=z(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 V=!0,s.d.length=d+1,s}function mt(e,t){for(var r=e;--t;)r*=e;return r}function Gr(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 ye=n?4:1,t;if(r=t.divToInt(o),r.isZero())ye=n?3:2;else{if(t=t.minus(r.times(o)),t.lte(i))return ye=Vr(r)?n?2:3:n?4:1,t;ye=Vr(r)?n?1:4:n?3:2}return t.minus(o).abs()}function Ot(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,Le),n===void 0?n=p.rounding:ae(n,0,8)):(r=p.precision,n=p.rounding),!e.isFinite())l=qr(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=ut(pe(f),10,o),f.e=f.d.length),d=ut(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=z(e,f,r,n,0,o),d=e.d,i=e.e,u=Er),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+=Et.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=ut(l,o,t),c=d.length;!d[c-1];--c);for(s=1,l="1.";s<c;s++)l+=Et.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 Mr(e,t){if(e.length>t)return e.length=t,!0}function $n(e){return new this(e).abs()}function eo(e){return new this(e).acos()}function to(e){return new this(e).acosh()}function ro(e,t){return new this(e).plus(t)}function no(e){return new this(e).asin()}function oo(e){return new this(e).asinh()}function io(e){return new this(e).atan()}function so(e){return new this(e).atanh()}function ao(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(z(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(z(e,t,i,1)),r}function uo(e){return new this(e).cbrt()}function co(e){return S(e=new this(e),e.e+1,2)}function lo(e,t,r){return new this(e).clamp(t,r)}function fo(e){if(!e||typeof e!="object")throw Error(ft+"Object expected");var t,r,n,o=e.defaults===!0,i=["precision",1,Le,"rounding",0,8,"toExpNeg",-Ee,0,"toExpPos",0,Ee,"maxE",0,Ee,"minE",-Ee,0,"modulo",0,9];for(t=0;t<i.length;t+=3)if(r=i[t],o&&(this[r]=Nt[r]),(n=e[r])!==void 0)if(ie(n)===n&&n>=i[t+1]&&n<=i[t+2])this[r]=n;else throw Error(Se+r+": "+n);if(r="crypto",o&&(this[r]=Nt[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(_r);else this[r]=!1;else throw Error(Se+r+": "+n);return this}function po(e){return new this(e).cos()}function mo(e){return new this(e).cosh()}function Hr(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,Fr(i)){u.s=i.s,V?!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++;V?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 Dt(u,i.toString())}else if(c!=="string")throw Error(Se+i);return(a=i.charCodeAt(0))===45?(i=i.slice(1),u.s=-1):(a===43&&(i=i.slice(1)),u.s=1),Dr.test(i)?Dt(u,i):Qn(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=fo,o.clone=Hr,o.isDecimal=Fr,o.abs=$n,o.acos=eo,o.acosh=to,o.add=ro,o.asin=no,o.asinh=oo,o.atan=io,o.atanh=so,o.atan2=ao,o.cbrt=uo,o.ceil=co,o.clamp=lo,o.cos=po,o.cosh=mo,o.div=go,o.exp=yo,o.floor=ho,o.hypot=bo,o.ln=wo,o.log=xo,o.log10=To,o.log2=Po,o.max=ko,o.min=Ao,o.mod=Io,o.mul=So,o.pow=Lo,o.random=Bo,o.round=Ro,o.sign=Ko,o.sin=Co,o.sinh=Vo,o.sqrt=Mo,o.sub=Fo,o.sum=Eo,o.tan=No,o.tanh=_o,o.trunc=vo,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 go(e,t){return new this(e).div(t)}function yo(e){return new this(e).exp()}function ho(e){return S(e=new this(e),e.e+1,3)}function bo(){var e,t,r=new this(0);for(V=!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 V=!0,new this(1/0);r=t}return V=!0,r.sqrt()}function Fr(e){return e instanceof qe||e&&e.toStringTag===vr||!1}function wo(e){return new this(e).ln()}function xo(e,t){return new this(e).log(t)}function Po(e){return new this(e).log(2)}function To(e){return new this(e).log(10)}function ko(){return Ur(this,arguments,"lt")}function Ao(){return Ur(this,arguments,"gt")}function Io(e,t){return new this(e).mod(t)}function So(e,t){return new this(e).mul(t)}function Lo(e,t){return new this(e).pow(t)}function Bo(e){var t,r,n,o,i=0,s=new this(1),a=[];if(e===void 0?e=this.precision:ae(e,1,Le),n=Math.ceil(e/B),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(_r);else for(;i<n;)a[i++]=Math.random()*1e7|0;for(n=a[--i],e%=B,n&&e&&(o=re(10,B-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-=B)a.shift();for(n=1,o=a[0];o>=10;o/=10)n++;n<B&&(r-=B-n)}return s.e=r,s.d=a,s}function Ro(e){return S(e=new this(e),e.e+1,this.rounding)}function Ko(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function Co(e){return new this(e).sin()}function Vo(e){return new this(e).sinh()}function Mo(e){return new this(e).sqrt()}function Fo(e,t){return new this(e).sub(t)}function Eo(){var e=0,t=arguments,r=new this(t[e]);for(V=!1;r.s&&++e<t.length;)r=r.plus(t[e]);return V=!0,S(r,this.precision,this.rounding)}function No(e){return new this(e).tan()}function _o(e){return new this(e).tanh()}function vo(e){return S(e=new this(e),e.e+1,1)}h[Symbol.for("nodejs.util.inspect.custom")]=h.toString;h[Symbol.toStringTag]="Decimal";var qe=h.constructor=Hr(Nt);ct=new qe(ct);lt=new qe(lt);var Wt=qe;import jo from"big.js";import ht from"bn.js";import Do from"toformat";var Oo=Do,Ge=Oo;import yt from"big.js";import Uo from"bn.js";import qo from"decimal.js-light";import He from"bn.js";var jr=9007199254740991;function _(e){let t=$("Raydium_parseBigNumberish");if(e instanceof He)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new He(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=jr||e<=-jr)&&t.logWithError(`BigNumberish number overflow: ${e}`),new He(String(e))):typeof e=="bigint"?new He(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new He(0))}var gt=$("module/fraction"),Ut=Ge(yt),je=Ge(qo),Go={[0]:je.ROUND_DOWN,[1]:je.ROUND_HALF_UP,[2]:je.ROUND_UP},Ho={[0]:yt.roundDown,[1]:yt.roundHalfUp,[2]:yt.roundUp},G=class{constructor(t,r=new Uo(1)){this.numerator=_(t),this.denominator=_(r)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new G(this.denominator,this.numerator)}add(t){let r=t instanceof G?t:new G(_(t));return this.denominator.eq(r.denominator)?new G(this.numerator.add(r.numerator),this.denominator):new G(this.numerator.mul(r.denominator).add(r.numerator.mul(this.denominator)),this.denominator.mul(r.denominator))}sub(t){let r=t instanceof G?t:new G(_(t));return this.denominator.eq(r.denominator)?new G(this.numerator.sub(r.numerator),this.denominator):new G(this.numerator.mul(r.denominator).sub(r.numerator.mul(this.denominator)),this.denominator.mul(r.denominator))}mul(t){let r=t instanceof G?t:new G(_(t));return new G(this.numerator.mul(r.numerator),this.denominator.mul(r.denominator))}div(t){let r=t instanceof G?t:new G(_(t));return new G(this.numerator.mul(r.denominator),this.denominator.mul(r.numerator))}toSignificant(t,r={groupSeparator:""},n=1){Number.isInteger(t)||gt.logWithError(`${t} is not an integer.`),t<=0&>.logWithError(`${t} is not positive.`),je.set({precision:t+1,rounding:Go[n]});let o=new je(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)||gt.logWithError(`${t} is not an integer.`),t<0&>.logWithError(`${t} is negative.`),Ut.DP=t,Ut.RM=Ho[n]||1,new Ut(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,r)}isZero(){return this.numerator.isZero()}};var zo=$("Raydium_amount"),zr=Ge(jo);function Yo(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")):zo.logWithError(`invalid number string, num: ${e}`)}else r=e;return[r,n.slice(0,t)||n]}var he=class extends G{constructor(r,n,o=!0,i){let s=new ht(0),a=qt.pow(new ht(r.decimals));if(o)s=_(n);else{let c=new ht(0),u=new ht(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[l,d]=Yo(n.toString(),r.decimals);c=_(l),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 he(this.token,this.raw.add(r.raw))}subtract(r){return this.token.equals(r.token)||this.logger.logWithError("sub token not equals"),new he(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 zr.DP=this.token.decimals,new zr(this.numerator.toString()).div(this.denominator.toString()).toFormat(r)}};import{PublicKey as Zo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Yr}from"@solana/spl-token";var Zr={chainId:101,address:Zo.default.toBase58(),programId:Yr.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:Yr.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 jt}from"@solana/web3.js";import{PublicKey as Q,SystemProgram as Xr,SYSVAR_RENT_PUBKEY as Xo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Qo}from"@solana/spl-token";function g({pubkey:e,isSigner:t=!1,isWritable:r=!0}){return{pubkey:e,isWritable:r,isSigner:t}}var Gt=[g({pubkey:Qo,isWritable:!1}),g({pubkey:Xr.programId,isWritable:!1}),g({pubkey:Xo,isWritable:!1})];function Qr({publicKey:e,transformSol:t}){let r=Ht(e.toString());if(r instanceof Q)return t&&r.equals(ne)?ge:r;if(t&&r.toString()===ne.toBase58())return ge;if(typeof r=="string"){if(r===Q.default.toBase58())return Q.default;try{return new Q(r)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Ht(e){try{return new Q(e)}catch{return e}}var ea=new Q("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ta=new Q("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Jo=new Q("SysvarRent111111111111111111111111111111111"),ra=new Q("SysvarC1ock11111111111111111111111111111111"),na=new Q("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),$o=new Q("Sysvar1nstructions1111111111111111111111111"),oa=Xr.programId,ia=new Q("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),sa=new Q("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),aa=new Q("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ua=new Q("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ca=new Q("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),la=new Q("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),da=new Q("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),fa=new Q("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),pa=new Q("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ma=new Q("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ga=new Q("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ge=new Q("So11111111111111111111111111111111111111112"),ne=Q.default;var zt=class{constructor({mint:t,decimals:r,symbol:n,name:o,skipMint:i=!1,isToken2022:s=!1}){if(t===ne.toBase58()||t instanceof jt&&ne.equals(t)){this.decimals=se.decimals,this.symbol=se.symbol,this.name=se.name,this.mint=new jt(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?jt.default:Qr({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},Ce=zt;Ce.WSOL=new zt(te(Z({},se),{mint:se.address}));var Yt=class{constructor({decimals:t,symbol:r="UNKNOWN",name:n="UNKNOWN"}){this.decimals=t,this.symbol=r,this.name=n}equals(t){return this===t}},bt=Yt;bt.SOL=new Yt(Zr);import ei from"bn.js";var Jr=new G(new ei(100)),_e=class extends G{toSignificant(t=5,r,n){return this.mul(Jr).toSignificant(t,r,n)}toFixed(t=2,r,n){return this.mul(Jr).toFixed(t,r,n)}};var ti=$("Raydium_price"),be=class extends G{constructor(r){let{baseToken:n,quoteToken:o,numerator:i,denominator:s}=r;super(i,s);this.baseToken=n,this.quoteToken=o,this.scalar=new G(Zt(n.decimals),Zt(o.decimals))}get raw(){return new G(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new be({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(r){this.quoteToken!==r.baseToken&&ti.logWithError("mul token not equals");let n=super.mul(r);return new be({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 ri}from"@solana/web3.js";import ni from"bn.js";function $r(e){return typeof e=="object"&&e!==null&&![Ce,he,ri,G,ni,be,_e].some(t=>typeof t=="object"&&e instanceof t)}function we(e){return typeof e=="string"?Ht(e):Array.isArray(e)?e.map(t=>we(t)):$r(e)?Object.fromEntries(Object.entries(e).map(([t,r])=>[t,we(r)])):e}var Xt=new xe(0),lu=new xe(1),du=new xe(2),fu=new xe(3),pu=new xe(5),qt=new xe(10),mu=new xe(100),gu=new xe(1e3),yu=new xe(1e4);function Zt(e){return qt.pow(_(e))}function Ft(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 li}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as di}from"@solana/spl-token";import{ComputeBudgetProgram as en,Keypair as rn,PublicKey as oi,Transaction as nn,TransactionMessage as ii,VersionedTransaction as on}from"@solana/web3.js";var Y={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"};import{TOKEN_PROGRAM_ID as si}from"@solana/spl-token";var tn=$("Raydium_txUtil"),sn=1644;function wt(e){let t=[],r=[];return e.microLamports&&(t.push(en.setComputeUnitPrice({microLamports:e.microLamports})),r.push(Y.SetComputeUnitPrice)),e.units&&(t.push(en.setComputeUnitLimit({units:e.units})),r.push(Y.SetComputeUnitLimit)),{instructions:t,instructionTypes:r}}async function ve(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 xt(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(i.err.toString())},"confirmed")})}function ai(e,t){e.length<1&&tn.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&tn.logWithError(`no signers provided:, ${t.toString()}`);let r=new nn;r.recentBlockhash="11111111111111111111111111111111",r.feePayer=t[0],r.add(...e);try{return Buffer.from(r.serialize({verifySignatures:!1})).toString("base64").length<sn}catch{return!1}}function Ve(e,t){let[r,n]=oi.findProgramAddressSync(e,t);return{publicKey:r,nonce:n}}function ze({instructions:e,payer:t,signers:r}){return ai(e,[t,...r])}function Ye({instructions:e,payer:t,lookupTableAddressAccount:r,recentBlockhash:n=rn.generate().publicKey.toString()}){let i=new ii({payerKey:t,recentBlockhash:n,instructions:e}).compileToV0Message(Object.values(r!=null?r:{}));try{return Buffer.from(new on(i).serialize()).toString("base64").length<sn}catch{return!1}}var ui=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e),ci=e=>{let t=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof on&&(t=ui(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Me(e){let t=[];return e.forEach(r=>{r instanceof nn&&(r.recentBlockhash||(r.recentBlockhash=si.toBase58()),r.feePayer||(r.feePayer=rn.generate().publicKey)),t.push(ci(r))}),console.log("simulate tx string:",t),t}function De(e,t,r){return Ve([e.toBuffer(),(r!=null?r:di).toBuffer(),t.toBuffer()],new li("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as E}from"@solana/web3.js";var an=new E("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),un=new E("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),cn=new E("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ze=new E("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),_u=new E("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),vu=new E("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Du=new E("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Ou=new E("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Wu=new E("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Uu=new E("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),qu=new E("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Gu=new E("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Hu=new E("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),ju=new E("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),zu=new E("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Yu=new E("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Zu=new E("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Xu=new E("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Qu=new E("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Ju=new E("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),$u=new E("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),ec=new E("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),fi=new E("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),pi=new E("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),mi=new E("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),tc=new E("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),gi=new E("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),rc=new E("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),yi=new E("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix");var nc={SERUM_MARKET:E.default,OPENBOOK_MARKET:new E("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:E.default,FarmV3:new E("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new E("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new E("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new E("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new E("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new E("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),CLMM_LOCK_PROGRAM_ID:new E("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),CLMM_LOCK_AUTH_ID:new E("8qmHNvu2Kr2C7U8mJL4Vz1vTDxMhVuXKREwU7TNoaVEo"),Router:new E("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:fi,CREATE_CPMM_POOL_AUTH:pi,CREATE_CPMM_POOL_FEE_ACC:mi,FEE_DESTINATION_ID:new E("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR"),LOCK_CPMM_PROGRAM:gi,LCOK_CPMM_AUTH:yi};import sc from"bn.js";import{PublicKey as ln,AddressLookupTableAccount as Pt}from"@solana/web3.js";async function Qt({connection:e,address:t}){let r=await Cr(e,[...new Set(t.map(o=>o.toString()))].map(o=>new ln(o))),n={};for(let o=0;o<t.length;o++){let i=r[o],s=t[o];if(!i)continue;let a=new Pt({key:s,state:Pt.deserialize(i.data)});n[s.toString()]=a,Tt[s.toString()]=a}return n}var Tt={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new Pt({key:new ln("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:Pt.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 Xe,sendAndConfirmTransaction as Jt,Transaction as Qe,TransactionMessage as Je,VersionedTransaction as $e}from"@solana/web3.js";import bi from"axios";var kt=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.api=t.api}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 bi.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}=wt(t);return this.instructions.unshift(...r),this.instructionTypes.unshift(...n),!0}return!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!==Xe.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 Qe;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 ve(this.connection,this.blockhashCommitment);if(r.recentBlockhash=c,this.signers.length&&r.sign(...this.signers),Me([r]),(u=this.owner)!=null&&u.isKeyPair)return{txId:a?await Jt(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 T;let{sequentially:d,onTxUpdate:f,skipTxCount:p=0,recentBlockHash:m,skipPreflight:y=!0}=l||{},b=m!=null?m:await ve(this.connection,this.blockhashCommitment);if((T=this.owner)!=null&&T.isKeyPair){if(d){let I=[],w=0;for(let P of s){if(++w,w<=p)continue;let A=await Jt(this.connection,P,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:y});I.push(A)}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:y})))),signedTxs:s}}if(this.signAllTransactions){let I=s.map((P,A)=>(P.recentBlockhash=b,a[A].length&&P.sign(...a[A]),P));Me(I);let w=await this.signAllTransactions(I);if(d){let P=0,A=[],k=async()=>{if(!w[P])return;let C=await this.connection.sendRawTransaction(w[P].serialize(),{skipPreflight:y});A.push({txId:C,status:"sent",signedTx:w[P]}),f==null||f([...A]),P++,this.connection.onSignature(C,R=>{let L=A.findIndex(U=>U.txId===C);L>-1&&(A[L].status=R.err?"error":"success"),f==null||f([...A]),R.err||k()},"processed"),this.connection.getSignatureStatus(C)};return await k(),{txIds:A.map(C=>C.txId),signedTxs:w}}else{let P=[];for(let A=0;A<w.length;A+=1){let k=await this.connection.sendRawTransaction(w[A].serialize(),{skipPreflight:y});P.push(k)}return{txIds:P,signedTxs:w}}}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 y;let m=t||{},{lookupTableCache:r={},lookupTableAddress:n=[],forerunCreate:o,recentBlockhash:i}=m,s=at(m,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=Z(Z({},this.cluster==="devnet"?{}:Tt),r),c=Array.from(new Set([...n,...this.lookupTableAddress])),u=[];for(let b of c)a[b]===void 0&&u.push(new Xe(b));let l=await Qt({connection:this.connection,address:u});for(let[b,T]of Object.entries(l))a[b]=T;let d=o?Xe.default.toBase58():i!=null?i:await ve(this.connection,this.blockhashCommitment),f=new Je({payerKey:this.feePayer,recentBlockhash:d,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(a));((y=this.owner)==null?void 0:y.signer)&&!this.signers.some(b=>b.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let p=new $e(f);return p.sign(this.signers),{builder:this,transaction:p,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async b=>{var w;let{skipPreflight:T=!0,sendAndConfirm:I}=b||{};if(Me([p]),(w=this.owner)!=null&&w.isKeyPair){let P=await this.connection.sendTransaction(p,{skipPreflight:T});return I&&await xt(this.connection,P),{txId:P,signedTx:p}}if(this.signAllTransactions){let P=await this.signAllTransactions([p]);return{txId:await this.connection.sendTransaction(P[0],{skipPreflight:T}),signedTx:P[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 y;let{sequentially:d,onTxUpdate:f,recentBlockHash:p,skipPreflight:m=!0}=l||{};if(p&&s.forEach(b=>b.message.recentBlockhash=p),Me(s),(y=this.owner)!=null&&y.isKeyPair){if(d){let b=[];for(let T of s){let I=await this.connection.sendTransaction(T,{skipPreflight:m});await xt(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 T=0,I=[],w=async()=>{if(!b[T])return;let P=await this.connection.sendTransaction(b[T],{skipPreflight:m});I.push({txId:P,status:"sent",signedTx:b[T]}),f==null||f([...I]),T++,this.connection.onSignature(P,A=>{let k=I.findIndex(C=>C.txId===P);k>-1&&(I[k].status=A.err?"error":"success"),f==null||f([...I]),A.err||w()},"processed"),this.connection.getSignatureStatus(P)};return w(),{txIds:[],signedTxs:b}}else{let T=[];for(let I=0;I<b.length;I+=1){let w=await this.connection.sendTransaction(b[I],{skipPreflight:m});T.push(w)}return{txIds:T,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=at(d,["splitIns","computeBudgetConfig"]),i=n?wt(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],y=n?[...i.instructions,...m]:m,T=[...new Set(m.map(I=>I.keys.filter(w=>w.isSigner).map(w=>w.pubkey.toString())).flat()).values()].map(I=>new Xe(I));if(p!==r[l]&&u.length<12&&(ze({instructions:y,payer:this.feePayer,signers:T})||ze({instructions:m,payer:this.feePayer,signers:T})))u.push(p);else{if(u.length===0)throw Error("item ins too big");l+=p===r[l]?1:0,ze({instructions:n?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:T})?a.push(new Qe().add(...i.instructions,...u)):a.push(new Qe().add(...u)),c.push(Array.from(new Set(u.map(I=>I.keys.filter(w=>w.isSigner).map(w=>w.pubkey.toString())).flat())).map(I=>s[I]).filter(I=>I!==void 0)),u=[p]}}),u.length>0){let m=[...new Set(u.map(y=>y.keys.filter(b=>b.isSigner).map(b=>b.pubkey.toString())).flat()).values()].map(y=>s[y]).filter(y=>y!==void 0);ze({instructions:n?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:m.map(y=>y.publicKey)})?a.push(new Qe().add(...i.instructions,...u)):a.push(new Qe().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 P;let{sequentially:m,onTxUpdate:y,skipTxCount:b=0,recentBlockHash:T,skipPreflight:I=!0}=p||{},w=T!=null?T:await ve(this.connection,this.blockhashCommitment);if(a.forEach(async(A,k)=>{A.recentBlockhash=w,c[k].length&&A.sign(...c[k])}),Me(a),(P=this.owner)!=null&&P.isKeyPair){if(m){let A=0,k=[];for(let C of a){if(++A,A<=b){k.push("tx skipped");continue}let R=await Jt(this.connection,C,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:I});k.push(R)}return{txIds:k,signedTxs:a}}return{txIds:await Promise.all(a.map(async A=>await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:I}))),signedTxs:a}}if(this.signAllTransactions){let A=await this.signAllTransactions(a.slice(b,a.length)),k=[...a.slice(0,b),...A];if(m){let C=0,R=[],L=async()=>{if(!k[C])return;C<b&&(R.push({txId:"",status:"success",signedTx:k[C]}),y==null||y([...R]),C++,L());let U=await this.connection.sendRawTransaction(k[C].serialize(),{skipPreflight:I});R.push({txId:U,status:"sent",signedTx:k[C]}),y==null||y([...R]),C++,this.connection.onSignature(U,O=>{let N=R.findIndex(K=>K.txId===U);N>-1&&(R[N].status=O.err?"error":"success"),y==null||y([...R]),O.err||L()},"processed"),this.connection.getSignatureStatus(U)};return await L(),{txIds:R.map(U=>U.txId),signedTxs:k}}else{let C=[];for(let R=0;R<k.length;R+=1){let L=await this.connection.sendRawTransaction(k[R].serialize(),{skipPreflight:I});C.push(L)}return{txIds:C,signedTxs:k}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(t){var w;let I=t||{},{computeBudgetConfig:r,splitIns:n=[],lookupTableCache:o={},lookupTableAddress:i=[]}=I,s=at(I,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress"]),a=Z(Z({},this.cluster==="devnet"?{}:Tt),o),c=Array.from(new Set([...this.lookupTableAddress,...i])),u=[];for(let P of c)a[P]===void 0&&u.push(new Xe(P));let l=await Qt({connection:this.connection,address:u});for(let[P,A]of Object.entries(l))a[P]=A;let d=r?wt(r):{instructions:[],instructionTypes:[]},f=await ve(this.connection,this.blockhashCommitment),p=this.signers.reduce((P,A)=>te(Z({},P),{[A.publicKey.toBase58()]:A}),{}),m=[],y=[],b=[],T=0;if(this.allInstructions.forEach(P=>{let A=[...b,P],k=r?[...d.instructions,...A]:A;if(P!==n[T]&&b.length<12&&(Ye({instructions:k,payer:this.feePayer,lookupTableAddressAccount:a})||Ye({instructions:A,payer:this.feePayer,lookupTableAddressAccount:a})))b.push(P);else{if(b.length===0)throw Error("item ins too big");T+=P===n[T]?1:0;let C={};for(let R of[...new Set(c)])a[R]!==void 0&&(C[R]=a[R]);if(r&&Ye({instructions:[...d.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:f})){let R=new Je({payerKey:this.feePayer,recentBlockhash:f,instructions:[...d.instructions,...b]}).compileToV0Message(Object.values(a));m.push(new $e(R))}else{let R=new Je({payerKey:this.feePayer,recentBlockhash:f,instructions:[...b]}).compileToV0Message(Object.values(a));m.push(new $e(R))}y.push(Array.from(new Set(b.map(R=>R.keys.filter(L=>L.isSigner).map(L=>L.pubkey.toString())).flat())).map(R=>p[R]).filter(R=>R!==void 0)),b=[P]}}),b.length>0){let A=[...new Set(b.map(k=>k.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(k=>p[k]).filter(k=>k!==void 0);if(r&&Ye({instructions:[...d.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:f})){let k=new Je({payerKey:this.feePayer,recentBlockhash:f,instructions:[...d.instructions,...b]}).compileToV0Message(Object.values(a));m.push(new $e(k))}else{let k=new Je({payerKey:this.feePayer,recentBlockhash:f,instructions:[...b]}).compileToV0Message(Object.values(a));m.push(new $e(k))}y.push(A)}return(w=this.owner)!=null&&w.signer&&y.forEach(P=>{P.some(A=>A.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),{builder:this,transactions:m,buildProps:t,signers:y,instructionTypes:this.instructionTypes,execute:async P=>{var U;let{sequentially:A,onTxUpdate:k,skipTxCount:C=0,recentBlockHash:R,skipPreflight:L=!0}=P||{};if(m.map(async(O,N)=>{y[N].length&&O.sign(y[N]),R&&(O.message.recentBlockhash=R)}),Me(m),(U=this.owner)!=null&&U.isKeyPair){if(A){let O=0,N=[];for(let K of m){if(++O,O<=C){console.log("skip tx: ",O),N.push("tx skipped");continue}let q=await this.connection.sendTransaction(K,{skipPreflight:L});await xt(this.connection,q),N.push(q)}return{txIds:N,signedTxs:m}}return{txIds:await Promise.all(m.map(async O=>await this.connection.sendTransaction(O,{skipPreflight:L}))),signedTxs:m}}if(this.signAllTransactions){let O=await this.signAllTransactions(m.slice(C,m.length)),N=[...m.slice(0,C),...O];if(A){let K=0,q=[],H=async()=>{if(!N[K])return;if(K<C){q.push({txId:"",status:"success",signedTx:N[K]}),k==null||k([...q]),K++,H();return}let W=await this.connection.sendTransaction(N[K],{skipPreflight:L});q.push({txId:W,status:"sent",signedTx:N[K]}),k==null||k([...q]),K++,this.connection.onSignature(W,We=>{let Ir=q.findIndex(vn=>vn.txId===W);Ir>-1&&(q[Ir].status=We.err?"error":"success"),k==null||k([...q]),We.err||H()},"processed"),this.connection.getSignatureStatus(W)};return H(),{txIds:[],signedTxs:N}}else{let K=[];for(let q=0;q<N.length;q+=1){let H=await this.connection.sendTransaction(N[q],{skipPreflight:L});K.push(H)}return{txIds:K,signedTxs:N}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}};import{Keypair as Vi,PublicKey as Mi}from"@solana/web3.js";import od from"bn.js";import{TOKEN_PROGRAM_ID as Fi}from"@solana/spl-token";function wi(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}function $t(e,...t){if(!wi(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 er(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 dn(e,t){$t(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var It=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),fe=(e,t)=>e<<32-t|e>>>t;var qc=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function xi(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function tr(e){return typeof e=="string"&&(e=xi(e)),$t(e),e}var At=class{clone(){return this._cloneInto()}},Gc={}.toString;function fn(e){let t=n=>e().update(tr(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function Pi(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 pn=(e,t,r)=>e&t^~e&r,mn=(e,t,r)=>e&t^e&r^t&r,St=class extends At{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=It(this.buffer)}update(t){er(this);let{view:r,buffer:n,blockLen:o}=this;t=tr(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=It(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){er(this),dn(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;Pi(n,o-8,BigInt(this.length*8),i),this.process(n,0);let a=It(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 Ti=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]),Be=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Re=new Uint32Array(64),rr=class extends St{constructor(){super(64,32,8,!1),this.A=Be[0]|0,this.B=Be[1]|0,this.C=Be[2]|0,this.D=Be[3]|0,this.E=Be[4]|0,this.F=Be[5]|0,this.G=Be[6]|0,this.H=Be[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)Re[d]=t.getUint32(r,!1);for(let d=16;d<64;d++){let f=Re[d-15],p=Re[d-2],m=fe(f,7)^fe(f,18)^f>>>3,y=fe(p,17)^fe(p,19)^p>>>10;Re[d]=y+Re[d-7]+m+Re[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+pn(a,c,u)+Ti[d]+Re[d]|0,y=(fe(n,2)^fe(n,13)^fe(n,22))+mn(n,o,i)|0;l=u,u=c,c=a,a=s+p|0,s=i,i=o,o=n,n=p+y|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(){Re.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var gn=fn(()=>new rr);import{PublicKey as Ri}from"@solana/web3.js";import wn,{isBN as xn}from"bn.js";import{bits as $c,BitStructure as el,blob as ki,Blob as tl,cstr as rl,f32 as nl,f32be as ol,f64 as il,f64be as sl,greedy as al,Layout as Ai,ns64 as ul,ns64be as cl,nu64 as ll,nu64be as dl,offset as fl,s16 as pl,s16be as ml,s24 as gl,s24be as yl,s32 as hl,s32be as bl,s40 as wl,s40be as xl,s48 as Pl,s48be as Tl,s8 as kl,seq as Ii,struct as Al,Structure as Si,u16 as Il,u16be as Sl,u24 as Ll,u24be as Bl,u32 as Rl,u32be as Kl,u40 as Cl,u40be as Vl,u48 as Ml,u48be as Fl,u8 as Li,UInt as Bi,union as El,Union as Nl,unionLayoutDiscriminator as _l,utf8 as vl}from"@solana/buffer-layout";var nr=Ai,yn=Si;var or=Bi;var hn=Li;var bn=Ii;var Fe=ki;var Oe=class extends nr{constructor(r,n,o){super(r,o);this.blob=Fe(r),this.signed=n}decode(r,n=0){let o=new wn(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 wn(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 or(1,e)}function et(e){return new or(4,e)}function x(e){return new Oe(8,!1,e)}function Pe(e){return new Oe(16,!1,e)}function Pn(e){return new Oe(1,!0,e)}function Bt(e){return new Oe(8,!0,e)}var Lt=class extends nr{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 v(e){return new Lt(Fe(32),t=>new Ri(t),t=>t.toBuffer(),e)}function Rt(e){return new Lt(hn(),Ki,Ci,e)}function Ki(e){if(e===0)return!1;if(e===1)return!0;throw new Error("Invalid bool: "+e)}function Ci(e){return e?1:0}var ir=class extends yn{decode(t,r){return super.decode(t,r)}};function X(e,t,r){return new ir(e,t,r)}function J(e,t,r){let n,o=typeof t=="number"?t:xn(t)?t.toNumber():new Proxy(t,{get(i,s){if(!n){let a=Reflect.get(i,"count");n=xn(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 bn(e,o,r)}var tt=X([v("mint"),v("owner"),x("amount"),et("delegateOption"),v("delegate"),ee("state"),et("isNativeOption"),x("isNative"),x("delegatedAmount"),et("closeAuthorityOption"),v("closeAuthority")]);var cd=$("Raydium_Util");function Kt({fromPublicKey:e,programId:t=Fi,assignSeed:r}){let n=r?btoa(r).slice(0,32):Vi.generate().publicKey.toBase58().slice(0,32);return{publicKey:Ei(e,n,t),seed:n}}function Ei(e,t,r){let n=Buffer.concat([e.toBuffer(),Buffer.from(t),r.toBuffer()]),o=gn(n);return new Mi(o)}import{PublicKey as Ni,SystemProgram as _i}from"@solana/web3.js";import vi from"bn.js";import{createCloseAccountInstruction as Di,createInitializeAccountInstruction as Oi,createTransferInstruction as xd,TOKEN_PROGRAM_ID as rt}from"@solana/spl-token";function Wi(e){let{mint:t,tokenAccount:r,owner:n,programId:o=rt}=e;return Oi(r,t,n,o)}function Ui(e){let{tokenAccount:t,payer:r,multiSigners:n=[],owner:o,programId:i=rt}=e;return Di(t,r,o,n,i)}async function sr(e){let{connection:t,amount:r,commitment:n,payer:o,owner:i,skipCloseAccount:s}=e,a=await t.getMinimumBalanceForRentExemption(tt.span,n),c=_(r).add(new vi(a)),u=Kt({fromPublicKey:o,programId:rt});return{addresses:{newAccount:u.publicKey},signers:[],instructions:[_i.createAccountWithSeed({fromPubkey:o,basePubkey:o,seed:u.seed,newAccountPubkey:u.publicKey,lamports:c.toNumber(),space:tt.span,programId:rt}),Wi({mint:new Ni(se.address),tokenAccount:u.publicKey,owner:i,programId:rt})],instructionTypes:[Y.CreateAccount,Y.InitAccount],endInstructionTypes:s?[]:[Y.CloseAccount],endInstructions:s?[]:[Ui({tokenAccount:u.publicKey,payer:o,owner:i})]}}var ar=(...e)=>e.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),nt=class{constructor({scope:t,moduleName:r}){this.disabled=!1;this.scope=t,this.logger=$(r)}createTxBuilder(t){return this.scope.checkOwner(),new kt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(ar(t))}logInfo(...t){this.logger.info(ar(t))}logAndCreateError(...t){let r=ar(t);throw new Error(r)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as An}from"@solana/web3.js";var ur=X([ee("instruction")]),cr=X([ee("instruction")]),qi=X([x("rewardState"),x("rewardOpenTime"),x("rewardEndTime"),x("rewardLastUpdateTime"),x("totalReward"),x("totalRewardEmissioned"),x("rewardClaimed"),x("rewardPerSecond"),Pe("accRewardPerShare"),v("rewardVault"),v("rewardMint"),v("rewardSender"),x("rewardType"),J(x(),15,"padding")]),Gi=X([x("state"),x("nonce"),v("lpVault"),v("rewardVault"),v(),v(),x(),x(),x("totalReward"),Pe("perShareReward"),x("lastSlot"),x("perSlotReward")]),Hi=X([x("state"),x("nonce"),v("lpVault"),v("rewardVaultA"),x("totalRewardA"),Pe("perShareRewardA"),x("perSlotRewardA"),ee("option"),v("rewardVaultB"),Fe(7),x("totalRewardB"),Pe("perShareRewardB"),x("perSlotRewardB"),x("lastSlot"),v()]),ji=X([x(),x("state"),x("nonce"),x("validRewardTokenNum"),Pe("rewardMultiplier"),x("rewardPeriodMax"),x("rewardPeriodMin"),x("rewardPeriodExtend"),v("lpMint"),v("lpVault"),J(qi,5,"rewardInfos"),v("creator"),v(),J(x(),32,"padding")]),zi=new Proxy(Gi,{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)}}),Yi=new Proxy(Hi,{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)}}),Ct=new Proxy(ji,{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(Ke).find(a=>String(a[1])===i.rewardType.toString()))!=null?s:["Standard SPL"])[0]})})})}:Reflect.get(e,t,r)}}),Zi=X([x("isSet"),x("rewardPerSecond"),x("rewardOpenTime"),x("rewardEndTime"),x("rewardType")]),lr=X([ee("instruction"),x("nonce"),J(Zi,5,"rewardTimeInfo")]),dr=X([ee("instruction"),x("rewardReopenTime"),x("rewardEndTime"),x("rewardPerSecond")]),fr=X([ee("instruction"),x("isSet"),x("rewardPerSecond"),x("rewardOpenTime"),x("rewardEndTime"),x("rewardType")]),Ed=X([x("state"),v("id"),v("owner"),x("deposited"),J(x(),1,"rewardDebts")]),pr=X([x("state"),v("id"),v("owner"),x("deposited"),J(Pe(),1,"rewardDebts"),x(""),x("voteLockedBalance"),J(x(),15)]),Nd=X([x("state"),v("id"),v("owner"),x("deposited"),J(x(),2,"rewardDebts")]),Tn=X([x("state"),v("id"),v("owner"),x("deposited"),J(Pe(),2,"rewardDebts"),J(x(),17)]),kn=X([x(),x("state"),v("id"),v("owner"),x("deposited"),J(Pe(),5,"rewardDebts"),J(x(),16)]),ue=X([ee("instruction"),x("amount")]),Xi=X([v("mint"),v("grantAuthority"),x("baselineVoteWeightScaledFactor"),x("maxExtraLockupVoteWeightScaledFactor"),x("lockupSaturationSecs"),Pn("digitShift"),J(ee(),7,"reserved1"),J(x(),7,"reserved2")]),Qi=X([Fe(8),v("governanceProgramId"),v("realm"),v("realmGoverningTokenMint"),v("realmAuthority"),J(ee(),32,"reserved1"),J(Xi,4,"votingMints"),Bt("timeOffset"),ee("bump"),J(ee(),7,"reserved2"),J(x(),11,"reserved3")]),Ji=X([Bt("startTime"),Bt("endTime"),ee("kind"),J(ee(),15,"reserved")]),$i=X([J(Ji,1,"lockup"),x("amountDeposited_native"),x("amountInitiallyLockedNative"),Rt("isUsed"),Rt("allowClawback"),ee("votingMintConfigIdx"),J(ee(),29,"reserved")]),es=X([Fe(8),v("voterAuthority"),v("registrar"),J($i,32,"deposits"),ee("voterBump"),ee("voterWweightRecordBump"),J(ee(),94,"reserved")]);var Gd=$("Raydium_farm_config"),In=new An("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Sn=new An("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Ln={3:pr,5:Tn,6:kn},mr=e=>[3,4,5,6].indexOf(e)!==-1,gr=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)},Ke={"Standard SPL":0,"Option tokens":1},Te={[an.toString()]:3,[un.toString()]:4,[cn.toString()]:5,[Ze.toString()]:6};import{PublicKey as D,SystemProgram as Kn,SYSVAR_CLOCK_PUBKEY as it,SYSVAR_RENT_PUBKEY as ns,TransactionInstruction as ce}from"@solana/web3.js";import Cn from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Af,createAssociatedTokenAccountInstruction as If,TOKEN_PROGRAM_ID as ke}from"@solana/spl-token";import ts from"bn.js";var rs=$("Raydium.farm.util");function ot({programId:e,poolId:t,mint:r,type:n}){let{publicKey:o}=Ve([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}=Ve([t.toBuffer(),r.toBuffer(),Buffer.from(n===6?"farmer_info_associated_seed":"staker_info_v2_associated_seed","utf-8")],e);return o}var Bn=({programId:e,poolId:t})=>Ve([t.toBuffer()],e);function Rn(e){return{isSet:new ts(1),rewardPerSecond:_(e.perSecond),rewardOpenTime:_(e.openTime),rewardEndTime:_(e.endTime),rewardType:_(Ke[e.rewardType])}}function yr(e){return _(e.endTime).sub(_(e.openTime)).mul(_(e.perSecond))}function hr(e){let t=Ln[e];return t||rs.logWithError("invalid version",e),t}var os=$("Raydium_farm_instruction"),Nf={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 br(e){let{version:t,id:r,ledger:n,programId:o,owner:i}=e,s={3:9,5:10}[t];s||os.logWithError(`invalid farm pool version: ${t}`);let a=Buffer.alloc(ur.span);ur.encode({instruction:s},a);let c=[g({pubkey:r}),g({pubkey:n}),g({pubkey:i,isWritable:!1}),g({pubkey:Kn.programId,isWritable:!1}),g({pubkey:ns,isWritable:!1})];return{instruction:new ce({programId:o,keys:c,data:a}),instructionType:Y.FarmV3CreateLedger}}function Vn(e){var n;let t=Buffer.alloc(lr.span);lr.encode({instruction:0,nonce:new Cn(e.nonce),rewardTimeInfo:e.rewardInfoConfig},t);let r=[...Gt,g({pubkey:e.farmId}),g({pubkey:e.farmAuthority,isWritable:!1}),g({pubkey:e.lpVault}),g({pubkey:e.lpMint,isWritable:!1}),g({pubkey:e.lockVault}),g({pubkey:e.lockMint,isWritable:!1}),g({pubkey:(n=e.lockUserAccount)!=null?n:ne}),g({pubkey:e.owner,isWritable:!1,isSigner:!0})];for(let o of e.rewardInfo)r.push(g({pubkey:o.rewardMint,isWritable:!1}),g({pubkey:o.rewardVault}),g({pubkey:o.userRewardToken}));return{instruction:new ce({programId:e.programId,keys:r,data:t}),instructionType:Y.FarmV6Create}}function Mn(e){let t=Buffer.alloc(cr.span);cr.encode({instruction:5},t);let r=[g({pubkey:ke,isWritable:!1}),g({pubkey:e.id}),g({pubkey:e.authority,isWritable:!1}),g({pubkey:e.lpVault,isWritable:!1}),g({pubkey:e.rewardVault}),g({pubkey:e.userRewardToken}),g({pubkey:e.owner,isWritable:!1,isSigner:!0})];return{instruction:new ce({programId:e.programId,keys:r,data:t}),instructionType:Y.FarmV6CreatorWithdraw}}function wr({payer:e,rewardVault:t,userRewardTokenPub:r,farmKeys:n,rewardInfo:o}){let i=Buffer.alloc(dr.span);dr.encode({instruction:3,rewardReopenTime:_(o.openTime),rewardEndTime:_(o.endTime),rewardPerSecond:_(o.perSecond)},i);let s=[g({pubkey:ke,isWritable:!1}),g({pubkey:n.id}),g({pubkey:n.lpVault,isWritable:!1}),g({pubkey:t}),g({pubkey:r}),g({pubkey:e,isWritable:!1,isSigner:!0})];return new ce({programId:n.programId,keys:s,data:i})}function xr({payer:e,userRewardTokenPub:t,farmKeys:r,rewardVault:n,rewardInfo:o}){let i=Buffer.alloc(fr.span);fr.encode({instruction:4,isSet:new Cn(1),rewardPerSecond:_(o.perSecond),rewardOpenTime:_(o.openTime),rewardEndTime:_(o.endTime),rewardType:_(Ke[o.rewardType])},i);let s=[...Gt,g({pubkey:r.id}),g({pubkey:r.authority,isWritable:!1}),g({pubkey:o.mint,isWritable:!1}),g({pubkey:n}),g({pubkey:t}),g({pubkey:e,isWritable:!1,isSigner:!0})];return new ce({programId:r.programId,keys:s,data:i})}function Pr(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s}=e,[a,c]=[new D(t.programId),new D(t.id)],u=me({programId:a,poolId:c,owner:i,version:6}),l=Buffer.alloc(ue.span);ue.encode({instruction:2,amount:_(s)},l);let d=[g({pubkey:ke,isWritable:!1}),g({pubkey:c}),g({pubkey:new D(r.authority),isWritable:!1}),g({pubkey:new D(r.lpVault)}),g({pubkey:u}),g({pubkey:i,isWritable:!1,isSigner:!0}),g({pubkey:n})];for(let f=0;f<r.rewardInfos.length;f++)d.push(g({pubkey:new D(r.rewardInfos[f].vault)})),d.push(g({pubkey:o[f]}));return new ce({programId:a,keys:d,data:l})}function Tr(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s,userAuxiliaryLedgers:a}=e,[c,u]=[new D(t.programId),new D(t.id)],l=me({programId:c,poolId:u,owner:i,version:5}),d=Buffer.alloc(ue.span);ue.encode({instruction:12,amount:_(s)},d);let f=[g({pubkey:u}),g({pubkey:new D(r.authority),isWritable:!1}),g({pubkey:l}),g({pubkey:i,isWritable:!1,isSigner:!0}),g({pubkey:n}),g({pubkey:new D(r.lpVault)}),g({pubkey:o[0]}),g({pubkey:new D(r.rewardInfos[0].vault)}),g({pubkey:it,isWritable:!1}),g({pubkey:ke,isWritable:!1})];for(let p=1;p<r.rewardInfos.length;p++)f.push(g({pubkey:o[p]})),f.push(g({pubkey:new D(r.rewardInfos[p].vault)}));if(a)for(let p of a)f.push(g({pubkey:p}));return new ce({programId:c,keys:f,data:d})}function Fn(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s,userAuxiliaryLedgers:a}=e,[c,u]=[new D(t.programId),new D(t.id)],l=X([ee("instruction"),x("amount")]),d=[g({pubkey:u}),g({pubkey:new D(r.authority),isWritable:!1}),g({pubkey:a[0]}),g({pubkey:i,isSigner:!0,isWritable:!1}),g({pubkey:n}),g({pubkey:new D(r.lpVault)}),g({pubkey:o[0]}),g({pubkey:new D(r.rewardInfos[0].vault)}),g({pubkey:it,isWritable:!1}),g({pubkey:ke,isWritable:!1}),g({pubkey:o[1]}),g({pubkey:new D(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 D(t.programId),new D(t.id)],l=me({programId:c,poolId:u,owner:i,version:3}),d=Buffer.alloc(ue.span);ue.encode({instruction:11,amount:_(s)},d);let f=[g({pubkey:u}),g({pubkey:new D(r.authority),isWritable:!1}),g({pubkey:l}),g({pubkey:i,isWritable:!1,isSigner:!0}),g({pubkey:n}),g({pubkey:new D(r.lpVault)}),g({pubkey:o[0]}),g({pubkey:new D(r.rewardInfos[0].vault)}),g({pubkey:it,isWritable:!1}),g({pubkey:ke,isWritable:!1})];if(a)for(let p of a)f.push(g({pubkey:p}));return new ce({programId:c,keys:f,data:d})}function En(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s,userAuxiliaryLedgers:a}=e,[c,u]=[new D(t.programId),new D(t.id)],l=me({programId:c,poolId:u,owner:i,version:3}),d=Buffer.alloc(ue.span);ue.encode({instruction:10,amount:_(s)},d);let f=[g({pubkey:u}),g({pubkey:new D(r.authority),isWritable:!1}),g({pubkey:l}),g({pubkey:i,isWritable:!1,isSigner:!0}),g({pubkey:n}),g({pubkey:new D(r.lpVault)}),g({pubkey:o[0]}),g({pubkey:new D(r.rewardInfos[0].vault)}),g({pubkey:it,isWritable:!1}),g({pubkey:ke,isWritable:!1})];if(a)for(let p of a)f.push(g({pubkey:p}));return new ce({programId:c,keys:f,data:d})}function Nn(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s,userAuxiliaryLedgers:a}=e,[c,u]=[new D(t.programId),new D(t.id)],l=me({programId:c,poolId:u,owner:i,version:5}),d=Buffer.alloc(ue.span);ue.encode({instruction:11,amount:_(s)},d);let f=[g({pubkey:u}),g({pubkey:new D(r.authority),isWritable:!1}),g({pubkey:l}),g({pubkey:i,isWritable:!1,isSigner:!0}),g({pubkey:n}),g({pubkey:new D(r.lpVault)}),g({pubkey:o[0]}),g({pubkey:new D(r.rewardInfos[0].vault)}),g({pubkey:it,isWritable:!1}),g({pubkey:ke,isWritable:!1})];for(let p=1;p<r.rewardInfos.length;p++)f.push(g({pubkey:o[p]})),f.push(g({pubkey:new D(r.rewardInfos[p].vault)}));if(a)for(let p of a)f.push(g({pubkey:p}));return new ce({programId:c,keys:f,data:d})}function _n(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s}=e,[a,c]=[new D(t.programId),new D(t.id)],u=me({programId:a,poolId:c,owner:i,version:6}),l=Buffer.alloc(ue.span);ue.encode({instruction:1,amount:_(s)},l);let d=[g({pubkey:ke,isWritable:!1}),g({pubkey:Kn.programId,isWritable:!1}),g({pubkey:c}),g({pubkey:new D(r.authority),isWritable:!1}),g({pubkey:new D(r.lpVault)}),g({pubkey:u}),g({pubkey:i,isWritable:!1,isSigner:!0}),g({pubkey:n})];for(let f=0;f<r.rewardInfos.length;f++)d.push(g({pubkey:new D(r.rewardInfos[f].vault)})),d.push(g({pubkey:o[f]}));return new ce({programId:a,keys:d,data:l})}var Ar=class extends nt{async _getUserRewardInfo({payer:t,rewardInfo:r}){if(r.mint.equals(ne)){let n=await sr({connection:this.scope.connection,owner:this.scope.ownerPubKey,payer:t,amount:yr(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=Ze,txVersion:i}){this.checkDisabled(),this.scope.checkOwner();let a={lpMint:new j(t.lpMint.address),lockInfo:{lockMint:In,lockVault:Sn},version:6,rewardInfos:r,programId:o},c=this.createTxBuilder(),u=n!=null?n:this.scope.ownerPubKey,l=Kt({fromPublicKey:u,programId:a.programId}),d=await this.scope.connection.getMinimumBalanceForRentExemption(Ct.span);c.addInstruction({instructions:[is.createAccountWithSeed({fromPubkey:u,basePubkey:u,seed:l.seed,newAccountPubkey:l.publicKey,lamports:d,space:Ct.span,programId:a.programId})]});let{publicKey:f,nonce:p}=Bn({programId:new j(a.programId),poolId:l.publicKey}),m=ot({programId:a.programId,poolId:l.publicKey,mint:a.lpMint,type:"lpVault"}),y=[],b=[];for(let A of a.rewardInfos){A.openTime>=A.endTime&&this.logAndCreateError("start time error","rewardInfo.rewardOpenTime",A.openTime.toString()),isNaN(Ke[A.rewardType])&&this.logAndCreateError("rewardType error",A.rewardType),Number(A.perSecond)<=0&&this.logAndCreateError("rewardPerSecond error",A.perSecond),y.push(Rn(A));let{rewardPubKey:k,newInstruction:C}=await this._getUserRewardInfo({rewardInfo:A,payer:u});C&&c.addInstruction(C),k||this.logAndCreateError("cannot found target token accounts",this.scope.account.tokenAccounts);let R=A.mint.equals(ne)?new j(se.address):A.mint;b.push({rewardMint:R,rewardVault:ot({programId:a.programId,poolId:l.publicKey,mint:R,type:"rewardVault"}),userRewardToken:k})}let{account:T,instructionParams:I}=await this.scope.account.getOrCreateTokenAccount({mint:new j(a.lockInfo.lockMint),owner:this.scope.ownerPubKey,skipCloseAccount:!1,createInfo:{payer:this.scope.ownerPubKey,amount:0},associatedOnly:!1});I&&c.addInstruction(I),T||this.logAndCreateError("cannot found lock vault","tokenAccounts",this.scope.account.tokenAccounts);let{instruction:w,instructionType:P}=Vn({farmId:l.publicKey,owner:this.scope.ownerPubKey,farmAuthority:f,lpVault:m,lpMint:a.lpMint,lockVault:a.lockInfo.lockVault,lockMint:a.lockInfo.lockMint,lockUserAccount:T,programId:a.programId,rewardInfo:b,rewardInfoConfig:y,nonce:p});return c.addInstruction({instructions:[w],instructionTypes:[P]}).versionBuild({txVersion:i,extInfo:{farmId:l.publicKey,farmAuthority:f,lpVault:m,lockUserAccount:T,nonce:p}})}async restartReward({farmInfo:t,payer:r,newRewardInfo:n,txVersion:o}){var b;let i=Te[t.programId];i!==6&&this.logAndCreateError("invalid farm version ",i);let s=we((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 j(se.address):n.mint,l=a.rewardInfos.findIndex(T=>new j(T.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:y}=await this._getUserRewardInfo({rewardInfo:n,payer:c});return y&&p.addInstruction(y),m||this.logAndCreateError("cannot found target token accounts",this.scope.account.tokenAccounts),p.addInstruction({instructions:[wr({payer:this.scope.ownerPubKey,rewardVault:f,userRewardTokenPub:m,farmKeys:a,rewardInfo:n})],instructionTypes:[Y.FarmV6Restart]}).versionBuild({txVersion:o})}async restartRewards({farmInfo:t,payer:r,newRewardInfos:n,txVersion:o}){var l;let i=Te[t.programId];i!==6&&this.logAndCreateError("invalid farm version ",i);let s=we((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 j(se.address):d.mint,p=a.rewardInfos.findIndex(w=>new j(w.mint.address).equals(f)),m=s.rewardInfos[p];m||this.logAndCreateError("configuration does not exist","rewardMint",f);let y=(l=m.vault)!=null?l:ne,{rewardPubKey:b,newInstruction:T}=await this._getUserRewardInfo({rewardInfo:d,payer:c});T&&u.addInstruction(T),b||this.logAndCreateError("cannot found target token accounts",this.scope.account.tokenAccounts);let I=wr({payer:this.scope.ownerPubKey,rewardVault:y,userRewardTokenPub:b,farmKeys:a,rewardInfo:d});u.addInstruction({instructions:[I],instructionTypes:[Y.FarmV6Restart]})}return u.versionBuild({txVersion:o})}async addNewRewardToken(t){let{txVersion:r,farmInfo:n,newRewardInfo:o,payer:i}=t,s=Te[n.programId];s!==6&&this.logAndCreateError("invalid farm version ",s);let a=we((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 j(se.address):o.mint,d=ot({programId:new j(n.programId),poolId:new j(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:[xr({payer:this.scope.ownerPubKey,userRewardTokenPub:f,farmKeys:a,rewardVault:d,rewardInfo:o})],instructionTypes:[Y.FarmV6CreatorAddReward]}).versionBuild({txVersion:r})}async addNewRewardsToken(t){let{txVersion:r,farmInfo:n,newRewardInfos:o,payer:i}=t,s=Te[n.programId];s!==6&&this.logAndCreateError("invalid farm version ",s);let a=we((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 j(se.address):l.mint,f=ot({programId:new j(n.programId),poolId:new j(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 y=xr({payer:this.scope.ownerPubKey,userRewardTokenPub:p,farmKeys:a,rewardVault:f,rewardInfo:te(Z({},l),{mint:d})});u.addInstruction({instructions:[y],instructionTypes:[Y.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}=t;this.scope.availability.addFarm===!1&&this.logAndCreateError("farm deposit feature disabled in your region");let{rewardInfos:d,programId:f}=n,p=Te[f];p===4&&this.logAndCreateError("V4 has suspended deposits:",n.programId),mr(p)||this.logAndCreateError("invalid farm program:",n.programId);let[m,y]=[new j(n.programId),new j(n.id)],b=(await this.scope.api.fetchFarmKeysById({ids:n.id}))[0],T=me({programId:m,poolId:y,owner:this.scope.ownerPubKey,version:p}),I=this.createTxBuilder();I.addCustomComputeBudget(l);let w={};for(let K of this.scope.account.tokenAccounts)if(a){let q=De(this.scope.ownerPubKey,K.mint,K.programId).publicKey;K.publicKey&&q.equals(K.publicKey)&&(w[K.mint.toString()]=K.publicKey)}else w[K.mint.toString()]=K.publicKey;let P=b.lpMint,A=w[P.address];A||this.logAndCreateError("you don't have any lp","lp zero",w);let k=[];for(let K of d){let q=s&&K.mint.address===ge.toString(),H=w[K.mint.address];if(!H){let{account:W,instructionParams:We}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:K.mint.programId,mint:new j(K.mint.address),notUseTokenAccount:q,createInfo:{payer:i||this.scope.ownerPubKey,amount:0},owner:this.scope.ownerPubKey,skipCloseAccount:!q,associatedOnly:q?!1:a,checkCreateATAOwner:c});H=W,We&&I.addInstruction(We)}w[K.mint.address]=H,k.push(H)}let C,R=await this.scope.connection.getAccountInfo(T);if(R&&(C=hr(p).decode(R.data)),n.programId!==Ze.toString()&&!C){let{instruction:K,instructionType:q}=br({id:y,programId:m,version:p,ledger:T,owner:this.scope.ownerPubKey});I.addInstruction({instructions:[K],instructionTypes:[q]})}let L=gr({version:p,rewardInfos:d,rewardTokenAccountsPublicKeys:k});L&&this.logAndCreateError(L);let U={amount:_(o),owner:this.scope.ownerPubKey,farmInfo:n,farmKeys:b,lpAccount:A,rewardAccounts:k,userAuxiliaryLedgers:u==null?void 0:u.map(K=>new j(K))},O=p===6?_n(U):p===5?Nn(U):En(U),N={3:Y.FarmV3Deposit,5:Y.FarmV5Deposit,6:Y.FarmV6Deposit};return I.addInstruction({instructions:[O],instructionTypes:[N[p]]}).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}=t,{rewardInfos:f}=n;this.scope.availability.removeFarm===!1&&this.logAndCreateError("farm withdraw feature disabled in your region");let p=Te[n.programId];mr(p)||this.logAndCreateError("invalid farm program:",n.programId);let m=(await this.scope.api.fetchFarmKeysById({ids:n.id}))[0],y=this.createTxBuilder();y.addCustomComputeBudget(d);let b={};for(let L of this.scope.account.tokenAccounts)if(c){let U=De(this.scope.ownerPubKey,L.mint).publicKey;L.publicKey&&U.equals(L.publicKey)&&(b[L.mint.toString()]=L.publicKey)}else b[L.mint.toString()]=L.publicKey;if(!i&&p!==4){let L=me({programId:new j(n.programId),poolId:new j(n.id),owner:this.scope.ownerPubKey,version:p}),U=await this.scope.connection.getAccountInfo(L);if(U)hr(p).decode(U.data).deposited.isZero()&&this.logAndCreateError("no deposited lp",{farmId:n.id});else if(p!==6&&(l||[]).length>0){let{instruction:O,instructionType:N}=br({id:new j(m.id),programId:new j(m.programId),version:p,ledger:L,owner:this.scope.ownerPubKey});y.addInstruction({instructions:[O],instructionTypes:[N]})}else this.logAndCreateError("no lp data",{farmId:n.id,version:p,ledgerData:U})}else i&&i.isZero()&&this.logAndCreateError("no deposited lp",{farmId:n.id});let T=m.lpMint.address,I=s&&T===ge.toString(),w=b[T.toString()];if(!w){let{account:L,instructionParams:U}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:m.lpMint.programId,mint:new j(T),notUseTokenAccount:I,createInfo:{payer:a||this.scope.ownerPubKey,amount:0},owner:this.scope.ownerPubKey,skipCloseAccount:!0,associatedOnly:I?!1:c,checkCreateATAOwner:u});w=L,U&&y.addInstruction(U)}b[T.toString()]=w;let P=[];for(let L of f){let U=s&&L.mint.address===ge.toString(),O=b[L.mint.address];if(!O){let{account:N,instructionParams:K}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:L.mint.programId,mint:new j(L.mint.address),notUseTokenAccount:U,createInfo:{payer:a||this.scope.ownerPubKey,amount:0},owner:this.scope.ownerPubKey,skipCloseAccount:!U,associatedOnly:U?!1:c,checkCreateATAOwner:u});O=N,K&&y.addInstruction(K)}b[L.mint.address]=O,P.push(O)}let A=gr({version:p,rewardInfos:f,rewardTokenAccountsPublicKeys:P});A&&this.logAndCreateError(A);let k={amount:_(o),owner:this.scope.ownerPubKey,farmInfo:n,farmKeys:m,lpAccount:w,rewardAccounts:P,userAuxiliaryLedgers:l==null?void 0:l.map(L=>new j(L))},C=p===6?Pr(k):p===5?Tr(k):p===4?Fn(k):kr(k),R={3:Y.FarmV3Withdraw,4:Y.FarmV4Withdraw,5:Y.FarmV5Withdraw,6:Y.FarmV6Withdraw};return y.addInstruction({instructions:[C],instructionTypes:[R[p]]}).versionBuild({txVersion:r})}async withdrawFarmReward({farmInfo:t,withdrawMint:r,txVersion:n}){var p;this.scope.checkOwner();let o=we((await this.scope.api.fetchFarmKeysById({ids:t.id}))[0]),i=Te[t.programId];i!==6&&this.logAndCreateError("invalid farm version",i);let s=t.rewardInfos.findIndex(m=>m.mint.address===ne.toString()?new j(se.address):r),a=o.rewardInfos[s];a||this.logAndCreateError("withdraw mint error","rewardInfos",t);let c=(p=a==null?void 0:a.vault)!=null?p:ne,u=this.createTxBuilder(),l;if(r.equals(ne)){let m=await sr({connection:this.scope.connection,owner:this.scope.ownerPubKey,payer:this.scope.ownerPubKey,amount:yr(te(Z({},a),{openTime:a.openTime,endTime:a.endTime,perSecond:new Wt(a.perSecond).mul(10**a.mint.decimals).toString()}))});l=m.addresses.newAccount,u.addInstruction(m)}else{let m=await this.scope.account.getCreatedTokenAccount({mint:r});m===null?(l=await this.scope.account.getAssociatedTokenAccount(r),u.addInstruction({instructions:[ss(this.scope.ownerPubKey,l,this.scope.ownerPubKey,r)],instructionTypes:[Y.CreateATA]})):l=m}let{instruction:d,instructionType:f}=Mn({programId:o.programId,id:o.id,authority:o.authority,lpVault:o.lpVault,rewardVault:c,userRewardToken:l,owner:this.scope.ownerPubKey});return u.addInstruction({instructions:[d],instructionTypes:[f]}).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 y=De(this.scope.ownerPubKey,m.mint).publicKey;m.publicKey&&y.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,y)=>te(Z({},m),{[y.id]:y}),{});for(let m of Object.values(r)){let{programId:y,lpMint:b,rewardInfos:T,id:I}=m,w=Te[y],P=b.address,A=n&&P===ge.toString(),k=d[P];if(!k){let{account:N,instructionParams:K}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:b.programId,mint:new j(P),notUseTokenAccount:A,createInfo:{payer:o||this.scope.ownerPubKey,amount:0},owner:this.scope.ownerPubKey,skipCloseAccount:!0,associatedOnly:A?!1:i,checkCreateATAOwner:s});k=N,K&&l.addInstruction(K)}d[P.toString()]=k;let C=[];for(let N of T){let K=n&&N.mint.address===ge.toString(),q=d[N.mint.address];if(!q){let{account:H,instructionParams:W}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:N.mint.programId,mint:new j(N.mint.address),notUseTokenAccount:K,createInfo:{payer:o||this.scope.ownerPubKey,amount:0},owner:this.scope.ownerPubKey,skipCloseAccount:!K,associatedOnly:K?!1:i,checkCreateATAOwner:s});q=H,W&&l.addInstruction(W)}d[N.mint.address]=q,C.push(q)}let R=p[I],L={amount:Xt,owner:this.scope.ownerPubKey,farmInfo:m,farmKeys:R,lpAccount:k,rewardAccounts:C,userAuxiliaryLedgers:a==null?void 0:a.map(N=>new j(N))},U=w===6?Pr(L):w===5?Tr(L):kr(L),O={3:Y.FarmV3Withdraw,5:Y.FarmV5Withdraw,6:Y.FarmV6Withdraw};l.addInstruction({instructions:[U],instructionTypes:[O[w]]})}return c===1?l.sizeCheckBuild({computeBudgetConfig:u}):l.sizeCheckBuildV0({computeBudgetConfig:u})}};export{Ar as default};
|
|
1
|
+
var Dn=Object.defineProperty,On=Object.defineProperties;var Wn=Object.getOwnPropertyDescriptors;var st=Object.getOwnPropertySymbols;var Lr=Object.prototype.hasOwnProperty,Br=Object.prototype.propertyIsEnumerable;var Sr=(e,t,r)=>t in e?Dn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Z=(e,t)=>{for(var r in t||(t={}))Lr.call(t,r)&&Sr(e,r,t[r]);if(st)for(var r of st(t))Br.call(t,r)&&Sr(e,r,t[r]);return e},te=(e,t)=>On(e,Wn(t));var at=(e,t)=>{var r={};for(var n in e)Lr.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&st)for(var n of st(e))t.indexOf(n)<0&&Br.call(e,n)&&(r[n]=e[n]);return r};import{PublicKey as j,SystemProgram as is}from"@solana/web3.js";import{createAssociatedTokenAccountInstruction as ss}from"@solana/spl-token";import{PublicKey as Gn}from"@solana/web3.js";import{get as Rr,set as Un}from"lodash";var Vt=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}},Kr={},qn={};function $(e){let t=Rr(Kr,e);if(!t){let r=Rr(qn,e);t=new Vt({name:e,logLevel:r}),Un(Kr,e,t)}return t}import{MINT_SIZE as hs,TOKEN_PROGRAM_ID as bs,getTransferFeeConfig as ws,unpackMint as xs}from"@solana/spl-token";var Mt=$("Raydium_accountInfo_util");async function Cr(e,t,r){let{batchRequest:n,commitment:o="confirmed",chunkCount:i=100}=Z({batchRequest:!1},r),s=Ft(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=Ft(c,10);a=(await(await Promise.all(u.map(async d=>await e._rpcBatchRequest(d)))).flat()).map(d=>(d.error&&Mt.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:y,owner:b,rentEpoch:T}=f;return p.length!==2&&p[1]!=="base64"&&Mt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:m,lamports:y,owner:new Gn(b),rentEpoch:T}}return null})))}else try{a=await Promise.all(s.map(c=>e.getMultipleAccountsInfo(c,o)))}catch(c){c instanceof Error&&Mt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}import xe from"bn.js";var Ee=9e15,Le=1e9,Et="0123456789abcdef",ct="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",lt="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Nt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Ee,maxE:Ee,crypto:!1},Er,ye,V=!0,ft="[DecimalError] ",Se=ft+"Invalid argument: ",Nr=ft+"Precision limit exceeded",_r=ft+"crypto unavailable",vr="[object Decimal]",ie=Math.floor,re=Math.pow,Hn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,jn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,zn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Dr=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,de=1e7,B=7,Yn=9007199254740991,Zn=ct.length-1,_t=lt.length-1,h={toStringTag:vr};h.absoluteValue=h.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),S(e)};h.ceil=function(){return S(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(Se+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())+B,n.rounding=1,r=Xn(n,Gr(n,r)),n.precision=e,n.rounding=t,S(ye==2||ye==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(V=!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=z(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&&(S(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")&&(S(n,e+1,1),t=!n.times(n).times(n).eq(l));break}return V=!0,S(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/B))*B,e=t[e],e)for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r};h.dividedBy=h.div=function(e){return z(this,new this.constructor(e))};h.dividedToIntegerBy=h.divToInt=function(e){var t=this,r=t.constructor;return S(z(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 S(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/mt(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),i=Ne(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 S(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=Ne(i,2,o,o,!0);else{e=1.4*Math.sqrt(n),e=e>16?16:e|0,o=o.times(1/mt(5,e)),o=Ne(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,S(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,z(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,V=!1,r=r.times(r).minus(1).sqrt().plus(r),V=!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,V=!1,r=r.times(r).plus(1).sqrt().plus(r),V=!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?S(new i(o),e,t,!0):(i.precision=r=n-o.e,o=z(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<=_t)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<=_t)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/B+2|0),e=r;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(V=!1,t=Math.ceil(a/B),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)),V=!0,S(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/B)>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(V=!1,a=d+p,s=Ie(u,a),n=t?dt(l,a+10):Ie(e,a),c=z(s,n,a,1),Ue(c.d,o=d,f))do if(a+=10,s=Ie(u,a),n=t?dt(l,a+10):Ie(e,a),c=z(s,n,a,1),!i){+oe(c.d).slice(o+1,o+15)+1==1e14&&(c=S(c,d+1,0));break}while(Ue(c.d,o+=10,f));return V=!0,S(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 V?S(e,a,c):e}if(r=ie(e.e/B),l=ie(p.e/B),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/B),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=pt(u,r),V?S(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]?S(new n(r),n.precision,n.rounding):(V=!1,n.modulo==9?(t=z(r,e.abs(),0,3,1),t.s*=e.s):t=z(r,e,0,n.modulo,1),t=t.times(e),V=!0,r.minus(t))};h.naturalExponential=h.exp=function(){return vt(this)};h.naturalLogarithm=h.ln=function(){return Ie(this)};h.negated=h.neg=function(){var e=new this.constructor(this);return e.s=-e.s,S(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)),V?S(e,a,c):e;if(i=ie(d.e/B),n=ie(e.e/B),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/B),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=pt(u,n),V?S(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(Se+e);return r.d?(t=Or(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t};h.round=function(){var e=this,t=e.constructor;return S(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())+B,n.rounding=1,r=Jn(n,Gr(n,r)),n.precision=e,n.rounding=t,S(ye>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(V=!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(z(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&&(S(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")&&(S(n,c+1,1),e=!n.times(n).eq(s));break}return V=!0,S(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=z(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,S(ye==2||ye==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/B)+ie(e.e/B),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=pt(i,r),V?S(e,d.precision,d.rounding):e};h.toBinary=function(e,t){return Ot(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,Le),t===void 0?t=n.rounding:ae(t,0,8),S(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,Le),t===void 0?t=o.rounding:ae(t,0,8),n=S(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,Le),t===void 0?t=i.rounding:ae(t,0,8),n=S(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,y=p.constructor;if(!m)return new y(p);if(u=r=new y(1),n=c=new y(0),t=new y(n),i=t.e=Or(m)-p.e-1,s=i%B,t.d[0]=re(10,s<0?B+s:s),e==null)e=i>0?t:u;else{if(a=new y(e),!a.isInt()||a.lt(u))throw Error(Se+a);e=a.gt(t)?i>0?t:u:a}for(V=!1,a=new y(oe(m)),l=y.precision,y.precision=i=m.length*B*2;d=z(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=z(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=z(u,n,i,1).minus(p).abs().cmp(z(c,r,i,1).minus(p).abs())<1?[u,n]:[c,r],y.precision=l,V=!0,f};h.toHexadecimal=h.toHex=function(e,t){return Ot(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]?(V=!1,r=z(r,e,0,t,1).times(e),V=!0,S(r)):(e.s=r.s,r=e),r};h.toNumber=function(){return+this};h.toOctal=function(e,t){return Ot(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 S(a,n,i);if(t=ie(e.e/B),t>=e.d.length-1&&(r=u<0?-u:u)<=Yn)return o=Wr(c,a,r,n),e.s<0?new c(1).div(o):S(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):(V=!1,c.rounding=a.s=1,r=Math.min(12,(t+"").length),o=vt(e.times(Ie(a,n+r)),n),o.d&&(o=S(o,n+5,1),Ue(o.d,n,i)&&(t=n+10,o=S(vt(e.times(Ie(a,t+r)),t),t+5,1),+oe(o.d).slice(n+1,n+15)+1==1e14&&(o=S(o,n+1,0)))),o.s=s,V=!0,c.rounding=i,S(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,Le),t===void 0?t=o.rounding:ae(t,0,8),n=S(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,Le),t===void 0?t=n.rounding:ae(t,0,8)),S(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 S(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=B-n.length,r&&(i+=Ae(r)),i+=n;s=e[t],n=s+"",r=B-n.length,r&&(i+=Ae(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(Se+e)}function Ue(e,t,r,n){var o,i,s,a;for(i=e[0];i>=10;i/=10)--t;return--t<0?(t+=B,o=0):(o=Math.ceil((t+1)/B),t%=B),i=re(10,B-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 ut(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]+=Et.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 Xn(e,t){var r,n,o;if(t.isZero())return t;n=t.d.length,n<32?(r=Math.ceil(n/3),o=(1/mt(4,r)).toString()):(r=16,o="2.3283064365386962890625e-10"),e.precision+=r,t=Ne(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 z=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,y,b,T,I,w,P,A,k,C,R,L,U,O,N,K=n.constructor,q=n.s==o.s?1:-1,H=n.d,W=o.d;if(!H||!H[0]||!W||!W[0])return new K(!n.s||!o.s||(H?W&&H[0]==W[0]:!W)?NaN:H&&H[0]==0||!W?q*0:q/0);for(c?(p=1,l=n.e-o.e):(c=de,p=B,l=ie(n.e/p)-ie(o.e/p)),O=W.length,L=H.length,T=new K(q),I=T.d=[],d=0;W[d]==(H[d]||0);d++);if(W[d]>(H[d]||0)&&l--,i==null?(k=i=K.precision,s=K.rounding):a?k=i+(n.e-o.e)+1:k=i,k<0)I.push(1),m=!0;else{if(k=k/p+2|0,d=0,O==1){for(f=0,W=W[0],k++;(d<L||f)&&k--;d++)C=f*c+(H[d]||0),I[d]=C/W|0,f=C%W|0;m=f||d<L}else{for(f=c/(W[0]+1)|0,f>1&&(W=e(W,f,c),H=e(H,f,c),O=W.length,L=H.length),R=O,w=H.slice(0,O),P=w.length;P<O;)w[P++]=0;N=W.slice(),N.unshift(0),U=W[0],W[1]>=c/2&&++U;do f=0,u=t(W,w,O,P),u<0?(A=w[0],O!=P&&(A=A*c+(w[1]||0)),f=A/U|0,f>1?(f>=c&&(f=c-1),y=e(W,f,c),b=y.length,P=w.length,u=t(y,w,b,P),u==1&&(f--,r(y,O<b?N:W,b,c))):(f==0&&(u=f=1),y=W.slice()),b=y.length,b<P&&y.unshift(0),r(w,y,P,c),u==-1&&(P=w.length,u=t(W,w,O,P),u<1&&(f++,r(w,O<P?N:W,P,c))),P=w.length):u===0&&(f++,w=[0]),I[d++]=f,u&&w[0]?w[P++]=H[R]||0:(w=[H[R]],P=1);while((R++<L||w[0]!==void 0)&&k--);m=w[0]!==void 0}I[0]||I.shift()}if(p==1)T.e=l,Er=m;else{for(d=1,f=I[0];f>=10;f/=10)d++;T.e=d+l*p-1,S(T,a?i+T.e+1:i,s,m)}return T}}();function S(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+=B,s=t,l=d[f=0],c=l/re(10,o-s-1)%10|0;else if(f=Math.ceil((i+1)/B),a=d.length,f>=a)if(n){for(;a++<=f;)d.push(0);l=c=0,o=1,i%=B,s=i-B+1}else break e;else{for(l=a=d[f],o=1;a>=10;a/=10)o++;i%=B,s=i-B+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,(B-t%B)%B),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,B-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 V&&(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 qr(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)+Ae(n):s>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(e.e<0?"e":"e+")+e.e):o<0?(i="0."+Ae(-o-1)+i,r&&(n=r-s)>0&&(i+=Ae(n))):o>=s?(i+=Ae(o+1-s),r&&(n=r-o-1)>0&&(i=i+"."+Ae(n))):((n=o+1)<s&&(i=i.slice(0,n)+"."+i.slice(n)),r&&(n=r-s)>0&&(o+1===s&&(i+="."),i+=Ae(n))),i}function pt(e,t){var r=e[0];for(t*=B;r>=10;r/=10)t++;return t}function dt(e,t,r){if(t>Zn)throw V=!0,r&&(e.precision=r),Error(Nr);return S(new e(ct),t,1,!0)}function le(e,t,r){if(t>_t)throw Error(Nr);return S(new e(lt),t,r,!0)}function Or(e){var t=e.length-1,r=t*B+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 Ae(e){for(var t="";e--;)t+="0";return t}function Wr(e,t,r,n){var o,i=new e(1),s=Math.ceil(n/B+4);for(V=!1;;){if(r%2&&(i=i.times(t),Mr(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),Mr(t.d,s)}return V=!0,i}function Vr(e){return e.d[e.d.length-1]&1}function Ur(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 vt(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?(V=!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=S(i.times(e),c,1),r=r.times(++l),a=s.plus(z(i,r,c,1)),oe(a.d).slice(0,c)===oe(s.d).slice(0,c)){for(o=d;o--;)s=S(s.times(s),c,1);if(t==null)if(u<3&&Ue(s.d,c-n,p,u))f.precision=c+=10,r=i=a=new f(1),l=0,u++;else return S(s,f.precision=m,p,V=!0);else return f.precision=m,s}s=a}}function Ie(e,t){var r,n,o,i,s,a,c,u,l,d,f,p=1,m=10,y=e,b=y.d,T=y.constructor,I=T.rounding,w=T.precision;if(y.s<0||!b||!b[0]||!y.e&&b[0]==1&&b.length==1)return new T(b&&!b[0]?-1/0:y.s!=1?NaN:b?0:y);if(t==null?(V=!1,l=w):l=t,T.precision=l+=m,r=oe(b),n=r.charAt(0),Math.abs(i=y.e)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)y=y.times(e),r=oe(y.d),n=r.charAt(0),p++;i=y.e,n>1?(y=new T("0."+r),i++):y=new T(n+"."+r.slice(1))}else return u=dt(T,l+2,w).times(i+""),y=Ie(new T(n+"."+r.slice(1)),l-m).plus(u),T.precision=w,t==null?S(y,w,I,V=!0):y;for(d=y,c=s=y=z(y.minus(1),y.plus(1),l,1),f=S(y.times(y),l,1),o=3;;){if(s=S(s.times(f),l,1),u=c.plus(z(s,new T(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(dt(T,l+2,w).times(i+""))),c=z(c,new T(p),l,1),t==null)if(Ue(c.d,l-m,I,a))T.precision=l+=m,u=s=y=z(d.minus(1),d.plus(1),l,1),f=S(y.times(y),l,1),o=a=1;else return S(c,T.precision=w,I,V=!0);else return T.precision=w,c;c=u,o+=2}}function qr(e){return String(e.s*e.s/0)}function Dt(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)%B,r<0&&(n+=B),n<o){for(n&&e.d.push(+t.slice(0,n)),o-=B;n<o;)e.d.push(+t.slice(n,n+=B));t=t.slice(n),n=B-t.length}else n-=o;for(;n--;)t+="0";e.d.push(+t),V&&(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 Qn(e,t){var r,n,o,i,s,a,c,u,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),Dr.test(t))return Dt(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(jn.test(t))r=16,t=t.toLowerCase();else if(Hn.test(t))r=2;else if(zn.test(t))r=8;else throw Error(Se+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=Wr(n,new n(r),i,i*2)),u=ut(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=pt(u,l),e.d=u,V=!1,s&&(e=z(e,o,a*4)),c&&(e=e.times(Math.abs(c)<54?re(2,c):qe.pow(2,c))),V=!0,e)}function Jn(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:Ne(e,2,t,t);r=1.4*Math.sqrt(n),r=r>16?16:r|0,t=t.times(1/mt(5,r)),t=Ne(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 Ne(e,t,r,n,o){var i,s,a,c,u=1,l=e.precision,d=Math.ceil(l/B);for(V=!1,c=r.times(r),a=new e(n);;){if(s=z(a.times(c),new e(t++*t++),l,1),a=o?n.plus(s):n.minus(s),n=z(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 V=!0,s.d.length=d+1,s}function mt(e,t){for(var r=e;--t;)r*=e;return r}function Gr(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 ye=n?4:1,t;if(r=t.divToInt(o),r.isZero())ye=n?3:2;else{if(t=t.minus(r.times(o)),t.lte(i))return ye=Vr(r)?n?2:3:n?4:1,t;ye=Vr(r)?n?1:4:n?3:2}return t.minus(o).abs()}function Ot(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,Le),n===void 0?n=p.rounding:ae(n,0,8)):(r=p.precision,n=p.rounding),!e.isFinite())l=qr(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=ut(pe(f),10,o),f.e=f.d.length),d=ut(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=z(e,f,r,n,0,o),d=e.d,i=e.e,u=Er),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+=Et.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=ut(l,o,t),c=d.length;!d[c-1];--c);for(s=1,l="1.";s<c;s++)l+=Et.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 Mr(e,t){if(e.length>t)return e.length=t,!0}function $n(e){return new this(e).abs()}function eo(e){return new this(e).acos()}function to(e){return new this(e).acosh()}function ro(e,t){return new this(e).plus(t)}function no(e){return new this(e).asin()}function oo(e){return new this(e).asinh()}function io(e){return new this(e).atan()}function so(e){return new this(e).atanh()}function ao(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(z(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(z(e,t,i,1)),r}function uo(e){return new this(e).cbrt()}function co(e){return S(e=new this(e),e.e+1,2)}function lo(e,t,r){return new this(e).clamp(t,r)}function fo(e){if(!e||typeof e!="object")throw Error(ft+"Object expected");var t,r,n,o=e.defaults===!0,i=["precision",1,Le,"rounding",0,8,"toExpNeg",-Ee,0,"toExpPos",0,Ee,"maxE",0,Ee,"minE",-Ee,0,"modulo",0,9];for(t=0;t<i.length;t+=3)if(r=i[t],o&&(this[r]=Nt[r]),(n=e[r])!==void 0)if(ie(n)===n&&n>=i[t+1]&&n<=i[t+2])this[r]=n;else throw Error(Se+r+": "+n);if(r="crypto",o&&(this[r]=Nt[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(_r);else this[r]=!1;else throw Error(Se+r+": "+n);return this}function po(e){return new this(e).cos()}function mo(e){return new this(e).cosh()}function Hr(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,Fr(i)){u.s=i.s,V?!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++;V?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 Dt(u,i.toString())}else if(c!=="string")throw Error(Se+i);return(a=i.charCodeAt(0))===45?(i=i.slice(1),u.s=-1):(a===43&&(i=i.slice(1)),u.s=1),Dr.test(i)?Dt(u,i):Qn(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=fo,o.clone=Hr,o.isDecimal=Fr,o.abs=$n,o.acos=eo,o.acosh=to,o.add=ro,o.asin=no,o.asinh=oo,o.atan=io,o.atanh=so,o.atan2=ao,o.cbrt=uo,o.ceil=co,o.clamp=lo,o.cos=po,o.cosh=mo,o.div=go,o.exp=yo,o.floor=ho,o.hypot=bo,o.ln=wo,o.log=xo,o.log10=To,o.log2=Po,o.max=ko,o.min=Ao,o.mod=Io,o.mul=So,o.pow=Lo,o.random=Bo,o.round=Ro,o.sign=Ko,o.sin=Co,o.sinh=Vo,o.sqrt=Mo,o.sub=Fo,o.sum=Eo,o.tan=No,o.tanh=_o,o.trunc=vo,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 go(e,t){return new this(e).div(t)}function yo(e){return new this(e).exp()}function ho(e){return S(e=new this(e),e.e+1,3)}function bo(){var e,t,r=new this(0);for(V=!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 V=!0,new this(1/0);r=t}return V=!0,r.sqrt()}function Fr(e){return e instanceof qe||e&&e.toStringTag===vr||!1}function wo(e){return new this(e).ln()}function xo(e,t){return new this(e).log(t)}function Po(e){return new this(e).log(2)}function To(e){return new this(e).log(10)}function ko(){return Ur(this,arguments,"lt")}function Ao(){return Ur(this,arguments,"gt")}function Io(e,t){return new this(e).mod(t)}function So(e,t){return new this(e).mul(t)}function Lo(e,t){return new this(e).pow(t)}function Bo(e){var t,r,n,o,i=0,s=new this(1),a=[];if(e===void 0?e=this.precision:ae(e,1,Le),n=Math.ceil(e/B),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(_r);else for(;i<n;)a[i++]=Math.random()*1e7|0;for(n=a[--i],e%=B,n&&e&&(o=re(10,B-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-=B)a.shift();for(n=1,o=a[0];o>=10;o/=10)n++;n<B&&(r-=B-n)}return s.e=r,s.d=a,s}function Ro(e){return S(e=new this(e),e.e+1,this.rounding)}function Ko(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function Co(e){return new this(e).sin()}function Vo(e){return new this(e).sinh()}function Mo(e){return new this(e).sqrt()}function Fo(e,t){return new this(e).sub(t)}function Eo(){var e=0,t=arguments,r=new this(t[e]);for(V=!1;r.s&&++e<t.length;)r=r.plus(t[e]);return V=!0,S(r,this.precision,this.rounding)}function No(e){return new this(e).tan()}function _o(e){return new this(e).tanh()}function vo(e){return S(e=new this(e),e.e+1,1)}h[Symbol.for("nodejs.util.inspect.custom")]=h.toString;h[Symbol.toStringTag]="Decimal";var qe=h.constructor=Hr(Nt);ct=new qe(ct);lt=new qe(lt);var Wt=qe;import jo from"big.js";import ht from"bn.js";import Do from"toformat";var Oo=Do,Ge=Oo;import yt from"big.js";import Uo from"bn.js";import qo from"decimal.js-light";import He from"bn.js";var jr=9007199254740991;function _(e){let t=$("Raydium_parseBigNumberish");if(e instanceof He)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new He(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=jr||e<=-jr)&&t.logWithError(`BigNumberish number overflow: ${e}`),new He(String(e))):typeof e=="bigint"?new He(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new He(0))}var gt=$("module/fraction"),Ut=Ge(yt),je=Ge(qo),Go={[0]:je.ROUND_DOWN,[1]:je.ROUND_HALF_UP,[2]:je.ROUND_UP},Ho={[0]:yt.roundDown,[1]:yt.roundHalfUp,[2]:yt.roundUp},G=class{constructor(t,r=new Uo(1)){this.numerator=_(t),this.denominator=_(r)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new G(this.denominator,this.numerator)}add(t){let r=t instanceof G?t:new G(_(t));return this.denominator.eq(r.denominator)?new G(this.numerator.add(r.numerator),this.denominator):new G(this.numerator.mul(r.denominator).add(r.numerator.mul(this.denominator)),this.denominator.mul(r.denominator))}sub(t){let r=t instanceof G?t:new G(_(t));return this.denominator.eq(r.denominator)?new G(this.numerator.sub(r.numerator),this.denominator):new G(this.numerator.mul(r.denominator).sub(r.numerator.mul(this.denominator)),this.denominator.mul(r.denominator))}mul(t){let r=t instanceof G?t:new G(_(t));return new G(this.numerator.mul(r.numerator),this.denominator.mul(r.denominator))}div(t){let r=t instanceof G?t:new G(_(t));return new G(this.numerator.mul(r.denominator),this.denominator.mul(r.numerator))}toSignificant(t,r={groupSeparator:""},n=1){Number.isInteger(t)||gt.logWithError(`${t} is not an integer.`),t<=0&>.logWithError(`${t} is not positive.`),je.set({precision:t+1,rounding:Go[n]});let o=new je(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)||gt.logWithError(`${t} is not an integer.`),t<0&>.logWithError(`${t} is negative.`),Ut.DP=t,Ut.RM=Ho[n]||1,new Ut(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,r)}isZero(){return this.numerator.isZero()}};var zo=$("Raydium_amount"),zr=Ge(jo);function Yo(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")):zo.logWithError(`invalid number string, num: ${e}`)}else r=e;return[r,n.slice(0,t)||n]}var he=class extends G{constructor(r,n,o=!0,i){let s=new ht(0),a=qt.pow(new ht(r.decimals));if(o)s=_(n);else{let c=new ht(0),u=new ht(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[l,d]=Yo(n.toString(),r.decimals);c=_(l),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 he(this.token,this.raw.add(r.raw))}subtract(r){return this.token.equals(r.token)||this.logger.logWithError("sub token not equals"),new he(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 zr.DP=this.token.decimals,new zr(this.numerator.toString()).div(this.denominator.toString()).toFormat(r)}};import{PublicKey as Zo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Yr}from"@solana/spl-token";var Zr={chainId:101,address:Zo.default.toBase58(),programId:Yr.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:Yr.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 jt}from"@solana/web3.js";import{PublicKey as Q,SystemProgram as Xr,SYSVAR_RENT_PUBKEY as Xo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Qo}from"@solana/spl-token";function g({pubkey:e,isSigner:t=!1,isWritable:r=!0}){return{pubkey:e,isWritable:r,isSigner:t}}var Gt=[g({pubkey:Qo,isWritable:!1}),g({pubkey:Xr.programId,isWritable:!1}),g({pubkey:Xo,isWritable:!1})];function Qr({publicKey:e,transformSol:t}){let r=Ht(e.toString());if(r instanceof Q)return t&&r.equals(ne)?ge:r;if(t&&r.toString()===ne.toBase58())return ge;if(typeof r=="string"){if(r===Q.default.toBase58())return Q.default;try{return new Q(r)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Ht(e){try{return new Q(e)}catch{return e}}var ea=new Q("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ta=new Q("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Jo=new Q("SysvarRent111111111111111111111111111111111"),ra=new Q("SysvarC1ock11111111111111111111111111111111"),na=new Q("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),$o=new Q("Sysvar1nstructions1111111111111111111111111"),oa=Xr.programId,ia=new Q("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),sa=new Q("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),aa=new Q("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ua=new Q("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ca=new Q("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),la=new Q("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),da=new Q("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),fa=new Q("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),pa=new Q("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ma=new Q("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ga=new Q("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ge=new Q("So11111111111111111111111111111111111111112"),ne=Q.default;var zt=class{constructor({mint:t,decimals:r,symbol:n,name:o,skipMint:i=!1,isToken2022:s=!1}){if(t===ne.toBase58()||t instanceof jt&&ne.equals(t)){this.decimals=se.decimals,this.symbol=se.symbol,this.name=se.name,this.mint=new jt(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?jt.default:Qr({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},Ce=zt;Ce.WSOL=new zt(te(Z({},se),{mint:se.address}));var Yt=class{constructor({decimals:t,symbol:r="UNKNOWN",name:n="UNKNOWN"}){this.decimals=t,this.symbol=r,this.name=n}equals(t){return this===t}},bt=Yt;bt.SOL=new Yt(Zr);import ei from"bn.js";var Jr=new G(new ei(100)),_e=class extends G{toSignificant(t=5,r,n){return this.mul(Jr).toSignificant(t,r,n)}toFixed(t=2,r,n){return this.mul(Jr).toFixed(t,r,n)}};var ti=$("Raydium_price"),be=class extends G{constructor(r){let{baseToken:n,quoteToken:o,numerator:i,denominator:s}=r;super(i,s);this.baseToken=n,this.quoteToken=o,this.scalar=new G(Zt(n.decimals),Zt(o.decimals))}get raw(){return new G(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new be({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(r){this.quoteToken!==r.baseToken&&ti.logWithError("mul token not equals");let n=super.mul(r);return new be({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 ri}from"@solana/web3.js";import ni from"bn.js";function $r(e){return typeof e=="object"&&e!==null&&![Ce,he,ri,G,ni,be,_e].some(t=>typeof t=="object"&&e instanceof t)}function we(e){return typeof e=="string"?Ht(e):Array.isArray(e)?e.map(t=>we(t)):$r(e)?Object.fromEntries(Object.entries(e).map(([t,r])=>[t,we(r)])):e}var Xt=new xe(0),lu=new xe(1),du=new xe(2),fu=new xe(3),pu=new xe(5),qt=new xe(10),mu=new xe(100),gu=new xe(1e3),yu=new xe(1e4);function Zt(e){return qt.pow(_(e))}function Ft(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 li}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as di}from"@solana/spl-token";import{ComputeBudgetProgram as en,Keypair as rn,PublicKey as oi,Transaction as nn,TransactionMessage as ii,VersionedTransaction as on}from"@solana/web3.js";var Y={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"};import{TOKEN_PROGRAM_ID as si}from"@solana/spl-token";var tn=$("Raydium_txUtil"),sn=1644;function wt(e){let t=[],r=[];return e.microLamports&&(t.push(en.setComputeUnitPrice({microLamports:e.microLamports})),r.push(Y.SetComputeUnitPrice)),e.units&&(t.push(en.setComputeUnitLimit({units:e.units})),r.push(Y.SetComputeUnitLimit)),{instructions:t,instructionTypes:r}}async function ve(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 xt(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(i.err.toString())},"confirmed")})}function ai(e,t){e.length<1&&tn.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&tn.logWithError(`no signers provided:, ${t.toString()}`);let r=new nn;r.recentBlockhash="11111111111111111111111111111111",r.feePayer=t[0],r.add(...e);try{return Buffer.from(r.serialize({verifySignatures:!1})).toString("base64").length<sn}catch{return!1}}function Ve(e,t){let[r,n]=oi.findProgramAddressSync(e,t);return{publicKey:r,nonce:n}}function ze({instructions:e,payer:t,signers:r}){return ai(e,[t,...r])}function Ye({instructions:e,payer:t,lookupTableAddressAccount:r,recentBlockhash:n=rn.generate().publicKey.toString()}){let i=new ii({payerKey:t,recentBlockhash:n,instructions:e}).compileToV0Message(Object.values(r!=null?r:{}));try{return Buffer.from(new on(i).serialize()).toString("base64").length<sn}catch{return!1}}var ui=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e),ci=e=>{let t=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof on&&(t=ui(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Me(e){let t=[];return e.forEach(r=>{r instanceof nn&&(r.recentBlockhash||(r.recentBlockhash=si.toBase58()),r.feePayer||(r.feePayer=rn.generate().publicKey)),t.push(ci(r))}),console.log("simulate tx string:",t),t}function De(e,t,r){return Ve([e.toBuffer(),(r!=null?r:di).toBuffer(),t.toBuffer()],new li("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as E}from"@solana/web3.js";var an=new E("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),un=new E("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),cn=new E("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ze=new E("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),_u=new E("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),vu=new E("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Du=new E("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Ou=new E("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Wu=new E("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Uu=new E("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),qu=new E("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Gu=new E("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Hu=new E("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),ju=new E("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),zu=new E("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Yu=new E("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Zu=new E("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Xu=new E("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Qu=new E("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Ju=new E("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),$u=new E("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),ec=new E("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),fi=new E("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),pi=new E("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),mi=new E("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),tc=new E("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),gi=new E("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),rc=new E("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),yi=new E("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix");var nc={SERUM_MARKET:E.default,OPENBOOK_MARKET:new E("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:E.default,FarmV3:new E("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new E("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new E("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new E("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new E("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new E("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),CLMM_LOCK_PROGRAM_ID:new E("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),CLMM_LOCK_AUTH_ID:new E("8qmHNvu2Kr2C7U8mJL4Vz1vTDxMhVuXKREwU7TNoaVEo"),Router:new E("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:fi,CREATE_CPMM_POOL_AUTH:pi,CREATE_CPMM_POOL_FEE_ACC:mi,FEE_DESTINATION_ID:new E("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR"),LOCK_CPMM_PROGRAM:gi,LCOK_CPMM_AUTH:yi};import sc from"bn.js";import{PublicKey as ln,AddressLookupTableAccount as Pt}from"@solana/web3.js";async function Qt({connection:e,address:t}){let r=await Cr(e,[...new Set(t.map(o=>o.toString()))].map(o=>new ln(o))),n={};for(let o=0;o<t.length;o++){let i=r[o],s=t[o];if(!i)continue;let a=new Pt({key:s,state:Pt.deserialize(i.data)});n[s.toString()]=a,Tt[s.toString()]=a}return n}var Tt={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new Pt({key:new ln("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:Pt.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 Xe,sendAndConfirmTransaction as Jt,Transaction as Qe,TransactionMessage as Je,VersionedTransaction as $e}from"@solana/web3.js";import bi from"axios";var kt=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.api=t.api}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 bi.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}=wt(t);return this.instructions.unshift(...r),this.instructionTypes.unshift(...n),!0}return!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!==Xe.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 Qe;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 ve(this.connection,this.blockhashCommitment);if(r.recentBlockhash=c,this.signers.length&&r.sign(...this.signers),Me([r]),(u=this.owner)!=null&&u.isKeyPair)return{txId:a?await Jt(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 T;let{sequentially:d,onTxUpdate:f,skipTxCount:p=0,recentBlockHash:m,skipPreflight:y=!0}=l||{},b=m!=null?m:await ve(this.connection,this.blockhashCommitment);if((T=this.owner)!=null&&T.isKeyPair){if(d){let I=[],w=0;for(let P of s){if(++w,w<=p)continue;let A=await Jt(this.connection,P,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:y});I.push(A)}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:y})))),signedTxs:s}}if(this.signAllTransactions){let I=s.map((P,A)=>(P.recentBlockhash=b,a[A].length&&P.sign(...a[A]),P));Me(I);let w=await this.signAllTransactions(I);if(d){let P=0,A=[],k=async()=>{if(!w[P])return;let C=await this.connection.sendRawTransaction(w[P].serialize(),{skipPreflight:y});A.push({txId:C,status:"sent",signedTx:w[P]}),f==null||f([...A]),P++,this.connection.onSignature(C,R=>{let L=A.findIndex(U=>U.txId===C);L>-1&&(A[L].status=R.err?"error":"success"),f==null||f([...A]),R.err||k()},"processed"),this.connection.getSignatureStatus(C)};return await k(),{txIds:A.map(C=>C.txId),signedTxs:w}}else{let P=[];for(let A=0;A<w.length;A+=1){let k=await this.connection.sendRawTransaction(w[A].serialize(),{skipPreflight:y});P.push(k)}return{txIds:P,signedTxs:w}}}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 y;let m=t||{},{lookupTableCache:r={},lookupTableAddress:n=[],forerunCreate:o,recentBlockhash:i}=m,s=at(m,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=Z(Z({},this.cluster==="devnet"?{}:Tt),r),c=Array.from(new Set([...n,...this.lookupTableAddress])),u=[];for(let b of c)a[b]===void 0&&u.push(new Xe(b));let l=await Qt({connection:this.connection,address:u});for(let[b,T]of Object.entries(l))a[b]=T;let d=o?Xe.default.toBase58():i!=null?i:await ve(this.connection,this.blockhashCommitment),f=new Je({payerKey:this.feePayer,recentBlockhash:d,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(a));((y=this.owner)==null?void 0:y.signer)&&!this.signers.some(b=>b.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let p=new $e(f);return p.sign(this.signers),{builder:this,transaction:p,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async b=>{var w;let{skipPreflight:T=!0,sendAndConfirm:I}=b||{};if(Me([p]),(w=this.owner)!=null&&w.isKeyPair){let P=await this.connection.sendTransaction(p,{skipPreflight:T});return I&&await xt(this.connection,P),{txId:P,signedTx:p}}if(this.signAllTransactions){let P=await this.signAllTransactions([p]);return{txId:await this.connection.sendTransaction(P[0],{skipPreflight:T}),signedTx:P[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 y;let{sequentially:d,onTxUpdate:f,recentBlockHash:p,skipPreflight:m=!0}=l||{};if(p&&s.forEach(b=>b.message.recentBlockhash=p),Me(s),(y=this.owner)!=null&&y.isKeyPair){if(d){let b=[];for(let T of s){let I=await this.connection.sendTransaction(T,{skipPreflight:m});await xt(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 T=0,I=[],w=async()=>{if(!b[T])return;let P=await this.connection.sendTransaction(b[T],{skipPreflight:m});I.push({txId:P,status:"sent",signedTx:b[T]}),f==null||f([...I]),T++,this.connection.onSignature(P,A=>{let k=I.findIndex(C=>C.txId===P);k>-1&&(I[k].status=A.err?"error":"success"),f==null||f([...I]),A.err||w()},"processed"),this.connection.getSignatureStatus(P)};return w(),{txIds:[],signedTxs:b}}else{let T=[];for(let I=0;I<b.length;I+=1){let w=await this.connection.sendTransaction(b[I],{skipPreflight:m});T.push(w)}return{txIds:T,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=at(d,["splitIns","computeBudgetConfig"]),i=n?wt(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],y=n?[...i.instructions,...m]:m,T=[...new Set(m.map(I=>I.keys.filter(w=>w.isSigner).map(w=>w.pubkey.toString())).flat()).values()].map(I=>new Xe(I));if(p!==r[l]&&u.length<12&&(ze({instructions:y,payer:this.feePayer,signers:T})||ze({instructions:m,payer:this.feePayer,signers:T})))u.push(p);else{if(u.length===0)throw Error("item ins too big");l+=p===r[l]?1:0,ze({instructions:n?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:T})?a.push(new Qe().add(...i.instructions,...u)):a.push(new Qe().add(...u)),c.push(Array.from(new Set(u.map(I=>I.keys.filter(w=>w.isSigner).map(w=>w.pubkey.toString())).flat())).map(I=>s[I]).filter(I=>I!==void 0)),u=[p]}}),u.length>0){let m=[...new Set(u.map(y=>y.keys.filter(b=>b.isSigner).map(b=>b.pubkey.toString())).flat()).values()].map(y=>s[y]).filter(y=>y!==void 0);ze({instructions:n?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:m.map(y=>y.publicKey)})?a.push(new Qe().add(...i.instructions,...u)):a.push(new Qe().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 P;let{sequentially:m,onTxUpdate:y,skipTxCount:b=0,recentBlockHash:T,skipPreflight:I=!0}=p||{},w=T!=null?T:await ve(this.connection,this.blockhashCommitment);if(a.forEach(async(A,k)=>{A.recentBlockhash=w,c[k].length&&A.sign(...c[k])}),Me(a),(P=this.owner)!=null&&P.isKeyPair){if(m){let A=0,k=[];for(let C of a){if(++A,A<=b){k.push("tx skipped");continue}let R=await Jt(this.connection,C,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:I});k.push(R)}return{txIds:k,signedTxs:a}}return{txIds:await Promise.all(a.map(async A=>await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:I}))),signedTxs:a}}if(this.signAllTransactions){let A=await this.signAllTransactions(a.slice(b,a.length)),k=[...a.slice(0,b),...A];if(m){let C=0,R=[],L=async()=>{if(!k[C])return;C<b&&(R.push({txId:"",status:"success",signedTx:k[C]}),y==null||y([...R]),C++,L());let U=await this.connection.sendRawTransaction(k[C].serialize(),{skipPreflight:I});R.push({txId:U,status:"sent",signedTx:k[C]}),y==null||y([...R]),C++,this.connection.onSignature(U,O=>{let N=R.findIndex(K=>K.txId===U);N>-1&&(R[N].status=O.err?"error":"success"),y==null||y([...R]),O.err||L()},"processed"),this.connection.getSignatureStatus(U)};return await L(),{txIds:R.map(U=>U.txId),signedTxs:k}}else{let C=[];for(let R=0;R<k.length;R+=1){let L=await this.connection.sendRawTransaction(k[R].serialize(),{skipPreflight:I});C.push(L)}return{txIds:C,signedTxs:k}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(t){var w;let I=t||{},{computeBudgetConfig:r,splitIns:n=[],lookupTableCache:o={},lookupTableAddress:i=[]}=I,s=at(I,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress"]),a=Z(Z({},this.cluster==="devnet"?{}:Tt),o),c=Array.from(new Set([...this.lookupTableAddress,...i])),u=[];for(let P of c)a[P]===void 0&&u.push(new Xe(P));let l=await Qt({connection:this.connection,address:u});for(let[P,A]of Object.entries(l))a[P]=A;let d=r?wt(r):{instructions:[],instructionTypes:[]},f=await ve(this.connection,this.blockhashCommitment),p=this.signers.reduce((P,A)=>te(Z({},P),{[A.publicKey.toBase58()]:A}),{}),m=[],y=[],b=[],T=0;if(this.allInstructions.forEach(P=>{let A=[...b,P],k=r?[...d.instructions,...A]:A;if(P!==n[T]&&b.length<12&&(Ye({instructions:k,payer:this.feePayer,lookupTableAddressAccount:a})||Ye({instructions:A,payer:this.feePayer,lookupTableAddressAccount:a})))b.push(P);else{if(b.length===0)throw Error("item ins too big");T+=P===n[T]?1:0;let C={};for(let R of[...new Set(c)])a[R]!==void 0&&(C[R]=a[R]);if(r&&Ye({instructions:[...d.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:f})){let R=new Je({payerKey:this.feePayer,recentBlockhash:f,instructions:[...d.instructions,...b]}).compileToV0Message(Object.values(a));m.push(new $e(R))}else{let R=new Je({payerKey:this.feePayer,recentBlockhash:f,instructions:[...b]}).compileToV0Message(Object.values(a));m.push(new $e(R))}y.push(Array.from(new Set(b.map(R=>R.keys.filter(L=>L.isSigner).map(L=>L.pubkey.toString())).flat())).map(R=>p[R]).filter(R=>R!==void 0)),b=[P]}}),b.length>0){let A=[...new Set(b.map(k=>k.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(k=>p[k]).filter(k=>k!==void 0);if(r&&Ye({instructions:[...d.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:f})){let k=new Je({payerKey:this.feePayer,recentBlockhash:f,instructions:[...d.instructions,...b]}).compileToV0Message(Object.values(a));m.push(new $e(k))}else{let k=new Je({payerKey:this.feePayer,recentBlockhash:f,instructions:[...b]}).compileToV0Message(Object.values(a));m.push(new $e(k))}y.push(A)}return(w=this.owner)!=null&&w.signer&&y.forEach(P=>{P.some(A=>A.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),{builder:this,transactions:m,buildProps:t,signers:y,instructionTypes:this.instructionTypes,execute:async P=>{var U;let{sequentially:A,onTxUpdate:k,skipTxCount:C=0,recentBlockHash:R,skipPreflight:L=!0}=P||{};if(m.map(async(O,N)=>{y[N].length&&O.sign(y[N]),R&&(O.message.recentBlockhash=R)}),Me(m),(U=this.owner)!=null&&U.isKeyPair){if(A){let O=0,N=[];for(let K of m){if(++O,O<=C){console.log("skip tx: ",O),N.push("tx skipped");continue}let q=await this.connection.sendTransaction(K,{skipPreflight:L});await xt(this.connection,q),N.push(q)}return{txIds:N,signedTxs:m}}return{txIds:await Promise.all(m.map(async O=>await this.connection.sendTransaction(O,{skipPreflight:L}))),signedTxs:m}}if(this.signAllTransactions){let O=await this.signAllTransactions(m.slice(C,m.length)),N=[...m.slice(0,C),...O];if(A){let K=0,q=[],H=async()=>{if(!N[K])return;if(K<C){q.push({txId:"",status:"success",signedTx:N[K]}),k==null||k([...q]),K++,H();return}let W=await this.connection.sendTransaction(N[K],{skipPreflight:L});q.push({txId:W,status:"sent",signedTx:N[K]}),k==null||k([...q]),K++,this.connection.onSignature(W,We=>{let Ir=q.findIndex(vn=>vn.txId===W);Ir>-1&&(q[Ir].status=We.err?"error":"success"),k==null||k([...q]),We.err||H()},"processed"),this.connection.getSignatureStatus(W)};return H(),{txIds:[],signedTxs:N}}else{let K=[];for(let q=0;q<N.length;q+=1){let H=await this.connection.sendTransaction(N[q],{skipPreflight:L});K.push(H)}return{txIds:K,signedTxs:N}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}};import{Keypair as Vi,PublicKey as Mi}from"@solana/web3.js";import od from"bn.js";import{TOKEN_PROGRAM_ID as Fi}from"@solana/spl-token";function wi(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}function $t(e,...t){if(!wi(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 er(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 dn(e,t){$t(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var It=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),fe=(e,t)=>e<<32-t|e>>>t;var qc=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function xi(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function tr(e){return typeof e=="string"&&(e=xi(e)),$t(e),e}var At=class{clone(){return this._cloneInto()}},Gc={}.toString;function fn(e){let t=n=>e().update(tr(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function Pi(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 pn=(e,t,r)=>e&t^~e&r,mn=(e,t,r)=>e&t^e&r^t&r,St=class extends At{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=It(this.buffer)}update(t){er(this);let{view:r,buffer:n,blockLen:o}=this;t=tr(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=It(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){er(this),dn(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;Pi(n,o-8,BigInt(this.length*8),i),this.process(n,0);let a=It(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 Ti=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]),Be=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Re=new Uint32Array(64),rr=class extends St{constructor(){super(64,32,8,!1),this.A=Be[0]|0,this.B=Be[1]|0,this.C=Be[2]|0,this.D=Be[3]|0,this.E=Be[4]|0,this.F=Be[5]|0,this.G=Be[6]|0,this.H=Be[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)Re[d]=t.getUint32(r,!1);for(let d=16;d<64;d++){let f=Re[d-15],p=Re[d-2],m=fe(f,7)^fe(f,18)^f>>>3,y=fe(p,17)^fe(p,19)^p>>>10;Re[d]=y+Re[d-7]+m+Re[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+pn(a,c,u)+Ti[d]+Re[d]|0,y=(fe(n,2)^fe(n,13)^fe(n,22))+mn(n,o,i)|0;l=u,u=c,c=a,a=s+p|0,s=i,i=o,o=n,n=p+y|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(){Re.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var gn=fn(()=>new rr);import{PublicKey as Ri}from"@solana/web3.js";import wn,{isBN as xn}from"bn.js";import{bits as $c,BitStructure as el,blob as ki,Blob as tl,cstr as rl,f32 as nl,f32be as ol,f64 as il,f64be as sl,greedy as al,Layout as Ai,ns64 as ul,ns64be as cl,nu64 as ll,nu64be as dl,offset as fl,s16 as pl,s16be as ml,s24 as gl,s24be as yl,s32 as hl,s32be as bl,s40 as wl,s40be as xl,s48 as Pl,s48be as Tl,s8 as kl,seq as Ii,struct as Al,Structure as Si,u16 as Il,u16be as Sl,u24 as Ll,u24be as Bl,u32 as Rl,u32be as Kl,u40 as Cl,u40be as Vl,u48 as Ml,u48be as Fl,u8 as Li,UInt as Bi,union as El,Union as Nl,unionLayoutDiscriminator as _l,utf8 as vl}from"@solana/buffer-layout";var nr=Ai,yn=Si;var or=Bi;var hn=Li;var bn=Ii;var Fe=ki;var Oe=class extends nr{constructor(r,n,o){super(r,o);this.blob=Fe(r),this.signed=n}decode(r,n=0){let o=new wn(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 wn(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 or(1,e)}function et(e){return new or(4,e)}function x(e){return new Oe(8,!1,e)}function Pe(e){return new Oe(16,!1,e)}function Pn(e){return new Oe(1,!0,e)}function Bt(e){return new Oe(8,!0,e)}var Lt=class extends nr{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 v(e){return new Lt(Fe(32),t=>new Ri(t),t=>t.toBuffer(),e)}function Rt(e){return new Lt(hn(),Ki,Ci,e)}function Ki(e){if(e===0)return!1;if(e===1)return!0;throw new Error("Invalid bool: "+e)}function Ci(e){return e?1:0}var ir=class extends yn{decode(t,r){return super.decode(t,r)}};function X(e,t,r){return new ir(e,t,r)}function J(e,t,r){let n,o=typeof t=="number"?t:xn(t)?t.toNumber():new Proxy(t,{get(i,s){if(!n){let a=Reflect.get(i,"count");n=xn(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 bn(e,o,r)}var tt=X([v("mint"),v("owner"),x("amount"),et("delegateOption"),v("delegate"),ee("state"),et("isNativeOption"),x("isNative"),x("delegatedAmount"),et("closeAuthorityOption"),v("closeAuthority")]);var cd=$("Raydium_Util");function Kt({fromPublicKey:e,programId:t=Fi,assignSeed:r}){let n=r?btoa(r).slice(0,32):Vi.generate().publicKey.toBase58().slice(0,32);return{publicKey:Ei(e,n,t),seed:n}}function Ei(e,t,r){let n=Buffer.concat([e.toBuffer(),Buffer.from(t),r.toBuffer()]),o=gn(n);return new Mi(o)}import{PublicKey as Ni,SystemProgram as _i}from"@solana/web3.js";import vi from"bn.js";import{createCloseAccountInstruction as Di,createInitializeAccountInstruction as Oi,createTransferInstruction as xd,TOKEN_PROGRAM_ID as rt}from"@solana/spl-token";function Wi(e){let{mint:t,tokenAccount:r,owner:n,programId:o=rt}=e;return Oi(r,t,n,o)}function Ui(e){let{tokenAccount:t,payer:r,multiSigners:n=[],owner:o,programId:i=rt}=e;return Di(t,r,o,n,i)}async function sr(e){let{connection:t,amount:r,commitment:n,payer:o,owner:i,skipCloseAccount:s}=e,a=await t.getMinimumBalanceForRentExemption(tt.span,n),c=_(r).add(new vi(a)),u=Kt({fromPublicKey:o,programId:rt});return{addresses:{newAccount:u.publicKey},signers:[],instructions:[_i.createAccountWithSeed({fromPubkey:o,basePubkey:o,seed:u.seed,newAccountPubkey:u.publicKey,lamports:c.toNumber(),space:tt.span,programId:rt}),Wi({mint:new Ni(se.address),tokenAccount:u.publicKey,owner:i,programId:rt})],instructionTypes:[Y.CreateAccount,Y.InitAccount],endInstructionTypes:s?[]:[Y.CloseAccount],endInstructions:s?[]:[Ui({tokenAccount:u.publicKey,payer:o,owner:i})]}}var ar=(...e)=>e.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),nt=class{constructor({scope:t,moduleName:r}){this.disabled=!1;this.scope=t,this.logger=$(r)}createTxBuilder(t){return this.scope.checkOwner(),new kt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(ar(t))}logInfo(...t){this.logger.info(ar(t))}logAndCreateError(...t){let r=ar(t);throw new Error(r)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as An}from"@solana/web3.js";var ur=X([ee("instruction")]),cr=X([ee("instruction")]),qi=X([x("rewardState"),x("rewardOpenTime"),x("rewardEndTime"),x("rewardLastUpdateTime"),x("totalReward"),x("totalRewardEmissioned"),x("rewardClaimed"),x("rewardPerSecond"),Pe("accRewardPerShare"),v("rewardVault"),v("rewardMint"),v("rewardSender"),x("rewardType"),J(x(),15,"padding")]),Gi=X([x("state"),x("nonce"),v("lpVault"),v("rewardVault"),v(),v(),x(),x(),x("totalReward"),Pe("perShareReward"),x("lastSlot"),x("perSlotReward")]),Hi=X([x("state"),x("nonce"),v("lpVault"),v("rewardVaultA"),x("totalRewardA"),Pe("perShareRewardA"),x("perSlotRewardA"),ee("option"),v("rewardVaultB"),Fe(7),x("totalRewardB"),Pe("perShareRewardB"),x("perSlotRewardB"),x("lastSlot"),v()]),ji=X([x(),x("state"),x("nonce"),x("validRewardTokenNum"),Pe("rewardMultiplier"),x("rewardPeriodMax"),x("rewardPeriodMin"),x("rewardPeriodExtend"),v("lpMint"),v("lpVault"),J(qi,5,"rewardInfos"),v("creator"),v(),J(x(),32,"padding")]),zi=new Proxy(Gi,{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)}}),Yi=new Proxy(Hi,{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)}}),Ct=new Proxy(ji,{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(Ke).find(a=>String(a[1])===i.rewardType.toString()))!=null?s:["Standard SPL"])[0]})})})}:Reflect.get(e,t,r)}}),Zi=X([x("isSet"),x("rewardPerSecond"),x("rewardOpenTime"),x("rewardEndTime"),x("rewardType")]),lr=X([ee("instruction"),x("nonce"),J(Zi,5,"rewardTimeInfo")]),dr=X([ee("instruction"),x("rewardReopenTime"),x("rewardEndTime"),x("rewardPerSecond")]),fr=X([ee("instruction"),x("isSet"),x("rewardPerSecond"),x("rewardOpenTime"),x("rewardEndTime"),x("rewardType")]),Ed=X([x("state"),v("id"),v("owner"),x("deposited"),J(x(),1,"rewardDebts")]),pr=X([x("state"),v("id"),v("owner"),x("deposited"),J(Pe(),1,"rewardDebts"),x(""),x("voteLockedBalance"),J(x(),15)]),Nd=X([x("state"),v("id"),v("owner"),x("deposited"),J(x(),2,"rewardDebts")]),Tn=X([x("state"),v("id"),v("owner"),x("deposited"),J(Pe(),2,"rewardDebts"),J(x(),17)]),kn=X([x(),x("state"),v("id"),v("owner"),x("deposited"),J(Pe(),5,"rewardDebts"),J(x(),16)]),ue=X([ee("instruction"),x("amount")]),Xi=X([v("mint"),v("grantAuthority"),x("baselineVoteWeightScaledFactor"),x("maxExtraLockupVoteWeightScaledFactor"),x("lockupSaturationSecs"),Pn("digitShift"),J(ee(),7,"reserved1"),J(x(),7,"reserved2")]),Qi=X([Fe(8),v("governanceProgramId"),v("realm"),v("realmGoverningTokenMint"),v("realmAuthority"),J(ee(),32,"reserved1"),J(Xi,4,"votingMints"),Bt("timeOffset"),ee("bump"),J(ee(),7,"reserved2"),J(x(),11,"reserved3")]),Ji=X([Bt("startTime"),Bt("endTime"),ee("kind"),J(ee(),15,"reserved")]),$i=X([J(Ji,1,"lockup"),x("amountDeposited_native"),x("amountInitiallyLockedNative"),Rt("isUsed"),Rt("allowClawback"),ee("votingMintConfigIdx"),J(ee(),29,"reserved")]),es=X([Fe(8),v("voterAuthority"),v("registrar"),J($i,32,"deposits"),ee("voterBump"),ee("voterWweightRecordBump"),J(ee(),94,"reserved")]);var Gd=$("Raydium_farm_config"),In=new An("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Sn=new An("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Ln={3:pr,5:Tn,6:kn},mr=e=>[3,4,5,6].indexOf(e)!==-1,gr=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)},Ke={"Standard SPL":0,"Option tokens":1},Te={[an.toString()]:3,[un.toString()]:4,[cn.toString()]:5,[Ze.toString()]:6};import{PublicKey as D,SystemProgram as Kn,SYSVAR_CLOCK_PUBKEY as it,SYSVAR_RENT_PUBKEY as ns,TransactionInstruction as ce}from"@solana/web3.js";import Cn from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Af,createAssociatedTokenAccountInstruction as If,TOKEN_PROGRAM_ID as ke}from"@solana/spl-token";import ts from"bn.js";var rs=$("Raydium.farm.util");function ot({programId:e,poolId:t,mint:r,type:n}){let{publicKey:o}=Ve([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}=Ve([t.toBuffer(),r.toBuffer(),Buffer.from(n===6?"farmer_info_associated_seed":"staker_info_v2_associated_seed","utf-8")],e);return o}var Bn=({programId:e,poolId:t})=>Ve([t.toBuffer()],e);function Rn(e){return{isSet:new ts(1),rewardPerSecond:_(e.perSecond),rewardOpenTime:_(e.openTime),rewardEndTime:_(e.endTime),rewardType:_(Ke[e.rewardType])}}function yr(e){return _(e.endTime).sub(_(e.openTime)).mul(_(e.perSecond))}function hr(e){let t=Ln[e];return t||rs.logWithError("invalid version",e),t}var os=$("Raydium_farm_instruction"),Nf={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 br(e){let{version:t,id:r,ledger:n,programId:o,owner:i}=e,s={3:9,5:10}[t];s||os.logWithError(`invalid farm pool version: ${t}`);let a=Buffer.alloc(ur.span);ur.encode({instruction:s},a);let c=[g({pubkey:r}),g({pubkey:n}),g({pubkey:i,isWritable:!1}),g({pubkey:Kn.programId,isWritable:!1}),g({pubkey:ns,isWritable:!1})];return{instruction:new ce({programId:o,keys:c,data:a}),instructionType:Y.FarmV3CreateLedger}}function Vn(e){var n;let t=Buffer.alloc(lr.span);lr.encode({instruction:0,nonce:new Cn(e.nonce),rewardTimeInfo:e.rewardInfoConfig},t);let r=[...Gt,g({pubkey:e.farmId}),g({pubkey:e.farmAuthority,isWritable:!1}),g({pubkey:e.lpVault}),g({pubkey:e.lpMint,isWritable:!1}),g({pubkey:e.lockVault}),g({pubkey:e.lockMint,isWritable:!1}),g({pubkey:(n=e.lockUserAccount)!=null?n:ne}),g({pubkey:e.owner,isWritable:!1,isSigner:!0})];for(let o of e.rewardInfo)r.push(g({pubkey:o.rewardMint,isWritable:!1}),g({pubkey:o.rewardVault}),g({pubkey:o.userRewardToken}));return{instruction:new ce({programId:e.programId,keys:r,data:t}),instructionType:Y.FarmV6Create}}function Mn(e){let t=Buffer.alloc(cr.span);cr.encode({instruction:5},t);let r=[g({pubkey:ke,isWritable:!1}),g({pubkey:e.id}),g({pubkey:e.authority,isWritable:!1}),g({pubkey:e.lpVault,isWritable:!1}),g({pubkey:e.rewardVault}),g({pubkey:e.userRewardToken}),g({pubkey:e.owner,isWritable:!1,isSigner:!0})];return{instruction:new ce({programId:e.programId,keys:r,data:t}),instructionType:Y.FarmV6CreatorWithdraw}}function wr({payer:e,rewardVault:t,userRewardTokenPub:r,farmKeys:n,rewardInfo:o}){let i=Buffer.alloc(dr.span);dr.encode({instruction:3,rewardReopenTime:_(o.openTime),rewardEndTime:_(o.endTime),rewardPerSecond:_(o.perSecond)},i);let s=[g({pubkey:ke,isWritable:!1}),g({pubkey:n.id}),g({pubkey:n.lpVault,isWritable:!1}),g({pubkey:t}),g({pubkey:r}),g({pubkey:e,isWritable:!1,isSigner:!0})];return new ce({programId:n.programId,keys:s,data:i})}function xr({payer:e,userRewardTokenPub:t,farmKeys:r,rewardVault:n,rewardInfo:o}){let i=Buffer.alloc(fr.span);fr.encode({instruction:4,isSet:new Cn(1),rewardPerSecond:_(o.perSecond),rewardOpenTime:_(o.openTime),rewardEndTime:_(o.endTime),rewardType:_(Ke[o.rewardType])},i);let s=[...Gt,g({pubkey:r.id}),g({pubkey:r.authority,isWritable:!1}),g({pubkey:o.mint,isWritable:!1}),g({pubkey:n}),g({pubkey:t}),g({pubkey:e,isWritable:!1,isSigner:!0})];return new ce({programId:r.programId,keys:s,data:i})}function Pr(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s}=e,[a,c]=[new D(t.programId),new D(t.id)],u=me({programId:a,poolId:c,owner:i,version:6}),l=Buffer.alloc(ue.span);ue.encode({instruction:2,amount:_(s)},l);let d=[g({pubkey:ke,isWritable:!1}),g({pubkey:c}),g({pubkey:new D(r.authority),isWritable:!1}),g({pubkey:new D(r.lpVault)}),g({pubkey:u}),g({pubkey:i,isWritable:!1,isSigner:!0}),g({pubkey:n})];for(let f=0;f<r.rewardInfos.length;f++)d.push(g({pubkey:new D(r.rewardInfos[f].vault)})),d.push(g({pubkey:o[f]}));return new ce({programId:a,keys:d,data:l})}function Tr(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s,userAuxiliaryLedgers:a}=e,[c,u]=[new D(t.programId),new D(t.id)],l=me({programId:c,poolId:u,owner:i,version:5}),d=Buffer.alloc(ue.span);ue.encode({instruction:12,amount:_(s)},d);let f=[g({pubkey:u}),g({pubkey:new D(r.authority),isWritable:!1}),g({pubkey:l}),g({pubkey:i,isWritable:!1,isSigner:!0}),g({pubkey:n}),g({pubkey:new D(r.lpVault)}),g({pubkey:o[0]}),g({pubkey:new D(r.rewardInfos[0].vault)}),g({pubkey:it,isWritable:!1}),g({pubkey:ke,isWritable:!1})];for(let p=1;p<r.rewardInfos.length;p++)f.push(g({pubkey:o[p]})),f.push(g({pubkey:new D(r.rewardInfos[p].vault)}));if(a)for(let p of a)f.push(g({pubkey:p}));return new ce({programId:c,keys:f,data:d})}function Fn(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s,userAuxiliaryLedgers:a}=e,[c,u]=[new D(t.programId),new D(t.id)],l=X([ee("instruction"),x("amount")]),d=[g({pubkey:u}),g({pubkey:new D(r.authority),isWritable:!1}),g({pubkey:a[0]}),g({pubkey:i,isSigner:!0,isWritable:!1}),g({pubkey:n}),g({pubkey:new D(r.lpVault)}),g({pubkey:o[0]}),g({pubkey:new D(r.rewardInfos[0].vault)}),g({pubkey:it,isWritable:!1}),g({pubkey:ke,isWritable:!1}),g({pubkey:o[1]}),g({pubkey:new D(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 D(t.programId),new D(t.id)],l=me({programId:c,poolId:u,owner:i,version:3}),d=Buffer.alloc(ue.span);ue.encode({instruction:11,amount:_(s)},d);let f=[g({pubkey:u}),g({pubkey:new D(r.authority),isWritable:!1}),g({pubkey:l}),g({pubkey:i,isWritable:!1,isSigner:!0}),g({pubkey:n}),g({pubkey:new D(r.lpVault)}),g({pubkey:o[0]}),g({pubkey:new D(r.rewardInfos[0].vault)}),g({pubkey:it,isWritable:!1}),g({pubkey:ke,isWritable:!1})];if(a)for(let p of a)f.push(g({pubkey:p}));return new ce({programId:c,keys:f,data:d})}function En(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s,userAuxiliaryLedgers:a}=e,[c,u]=[new D(t.programId),new D(t.id)],l=me({programId:c,poolId:u,owner:i,version:3}),d=Buffer.alloc(ue.span);ue.encode({instruction:10,amount:_(s)},d);let f=[g({pubkey:u}),g({pubkey:new D(r.authority),isWritable:!1}),g({pubkey:l}),g({pubkey:i,isWritable:!1,isSigner:!0}),g({pubkey:n}),g({pubkey:new D(r.lpVault)}),g({pubkey:o[0]}),g({pubkey:new D(r.rewardInfos[0].vault)}),g({pubkey:it,isWritable:!1}),g({pubkey:ke,isWritable:!1})];if(a)for(let p of a)f.push(g({pubkey:p}));return new ce({programId:c,keys:f,data:d})}function Nn(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s,userAuxiliaryLedgers:a}=e,[c,u]=[new D(t.programId),new D(t.id)],l=me({programId:c,poolId:u,owner:i,version:5}),d=Buffer.alloc(ue.span);ue.encode({instruction:11,amount:_(s)},d);let f=[g({pubkey:u}),g({pubkey:new D(r.authority),isWritable:!1}),g({pubkey:l}),g({pubkey:i,isWritable:!1,isSigner:!0}),g({pubkey:n}),g({pubkey:new D(r.lpVault)}),g({pubkey:o[0]}),g({pubkey:new D(r.rewardInfos[0].vault)}),g({pubkey:it,isWritable:!1}),g({pubkey:ke,isWritable:!1})];for(let p=1;p<r.rewardInfos.length;p++)f.push(g({pubkey:o[p]})),f.push(g({pubkey:new D(r.rewardInfos[p].vault)}));if(a)for(let p of a)f.push(g({pubkey:p}));return new ce({programId:c,keys:f,data:d})}function _n(e){let{farmInfo:t,farmKeys:r,lpAccount:n,rewardAccounts:o,owner:i,amount:s}=e,[a,c]=[new D(t.programId),new D(t.id)],u=me({programId:a,poolId:c,owner:i,version:6}),l=Buffer.alloc(ue.span);ue.encode({instruction:1,amount:_(s)},l);let d=[g({pubkey:ke,isWritable:!1}),g({pubkey:Kn.programId,isWritable:!1}),g({pubkey:c}),g({pubkey:new D(r.authority),isWritable:!1}),g({pubkey:new D(r.lpVault)}),g({pubkey:u}),g({pubkey:i,isWritable:!1,isSigner:!0}),g({pubkey:n})];for(let f=0;f<r.rewardInfos.length;f++)d.push(g({pubkey:new D(r.rewardInfos[f].vault)})),d.push(g({pubkey:o[f]}));return new ce({programId:a,keys:d,data:l})}var Ar=class extends nt{async _getUserRewardInfo({payer:t,rewardInfo:r}){if(r.mint.equals(ne)){let n=await sr({connection:this.scope.connection,owner:this.scope.ownerPubKey,payer:t,amount:yr(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=Ze,txVersion:i}){this.checkDisabled(),this.scope.checkOwner();let a={lpMint:new j(t.lpMint.address),lockInfo:{lockMint:In,lockVault:Sn},version:6,rewardInfos:r,programId:o},c=this.createTxBuilder(),u=n!=null?n:this.scope.ownerPubKey,l=Kt({fromPublicKey:u,programId:a.programId}),d=await this.scope.connection.getMinimumBalanceForRentExemption(Ct.span);c.addInstruction({instructions:[is.createAccountWithSeed({fromPubkey:u,basePubkey:u,seed:l.seed,newAccountPubkey:l.publicKey,lamports:d,space:Ct.span,programId:a.programId})]});let{publicKey:f,nonce:p}=Bn({programId:new j(a.programId),poolId:l.publicKey}),m=ot({programId:a.programId,poolId:l.publicKey,mint:a.lpMint,type:"lpVault"}),y=[],b=[];for(let A of a.rewardInfos){A.openTime>=A.endTime&&this.logAndCreateError("start time error","rewardInfo.rewardOpenTime",A.openTime.toString()),isNaN(Ke[A.rewardType])&&this.logAndCreateError("rewardType error",A.rewardType),Number(A.perSecond)<=0&&this.logAndCreateError("rewardPerSecond error",A.perSecond),y.push(Rn(A));let{rewardPubKey:k,newInstruction:C}=await this._getUserRewardInfo({rewardInfo:A,payer:u});C&&c.addInstruction(C),k||this.logAndCreateError("cannot found target token accounts",this.scope.account.tokenAccounts);let R=A.mint.equals(ne)?new j(se.address):A.mint;b.push({rewardMint:R,rewardVault:ot({programId:a.programId,poolId:l.publicKey,mint:R,type:"rewardVault"}),userRewardToken:k})}let{account:T,instructionParams:I}=await this.scope.account.getOrCreateTokenAccount({mint:new j(a.lockInfo.lockMint),owner:this.scope.ownerPubKey,skipCloseAccount:!1,createInfo:{payer:this.scope.ownerPubKey,amount:0},associatedOnly:!1});I&&c.addInstruction(I),T||this.logAndCreateError("cannot found lock vault","tokenAccounts",this.scope.account.tokenAccounts);let{instruction:w,instructionType:P}=Vn({farmId:l.publicKey,owner:this.scope.ownerPubKey,farmAuthority:f,lpVault:m,lpMint:a.lpMint,lockVault:a.lockInfo.lockVault,lockMint:a.lockInfo.lockMint,lockUserAccount:T,programId:a.programId,rewardInfo:b,rewardInfoConfig:y,nonce:p});return c.addInstruction({instructions:[w],instructionTypes:[P]}).versionBuild({txVersion:i,extInfo:{farmId:l.publicKey,farmAuthority:f,lpVault:m,lockUserAccount:T,nonce:p}})}async restartReward({farmInfo:t,payer:r,newRewardInfo:n,txVersion:o}){var b;let i=Te[t.programId];i!==6&&this.logAndCreateError("invalid farm version ",i);let s=we((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 j(se.address):n.mint,l=a.rewardInfos.findIndex(T=>new j(T.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:y}=await this._getUserRewardInfo({rewardInfo:n,payer:c});return y&&p.addInstruction(y),m||this.logAndCreateError("cannot found target token accounts",this.scope.account.tokenAccounts),p.addInstruction({instructions:[wr({payer:this.scope.ownerPubKey,rewardVault:f,userRewardTokenPub:m,farmKeys:a,rewardInfo:n})],instructionTypes:[Y.FarmV6Restart]}).versionBuild({txVersion:o})}async restartRewards({farmInfo:t,payer:r,newRewardInfos:n,txVersion:o}){var l;let i=Te[t.programId];i!==6&&this.logAndCreateError("invalid farm version ",i);let s=we((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 j(se.address):d.mint,p=a.rewardInfos.findIndex(w=>new j(w.mint.address).equals(f)),m=s.rewardInfos[p];m||this.logAndCreateError("configuration does not exist","rewardMint",f);let y=(l=m.vault)!=null?l:ne,{rewardPubKey:b,newInstruction:T}=await this._getUserRewardInfo({rewardInfo:d,payer:c});T&&u.addInstruction(T),b||this.logAndCreateError("cannot found target token accounts",this.scope.account.tokenAccounts);let I=wr({payer:this.scope.ownerPubKey,rewardVault:y,userRewardTokenPub:b,farmKeys:a,rewardInfo:d});u.addInstruction({instructions:[I],instructionTypes:[Y.FarmV6Restart]})}return u.versionBuild({txVersion:o})}async addNewRewardToken(t){let{txVersion:r,farmInfo:n,newRewardInfo:o,payer:i}=t,s=Te[n.programId];s!==6&&this.logAndCreateError("invalid farm version ",s);let a=we((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 j(se.address):o.mint,d=ot({programId:new j(n.programId),poolId:new j(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:[xr({payer:this.scope.ownerPubKey,userRewardTokenPub:f,farmKeys:a,rewardVault:d,rewardInfo:o})],instructionTypes:[Y.FarmV6CreatorAddReward]}).versionBuild({txVersion:r})}async addNewRewardsToken(t){let{txVersion:r,farmInfo:n,newRewardInfos:o,payer:i}=t,s=Te[n.programId];s!==6&&this.logAndCreateError("invalid farm version ",s);let a=we((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 j(se.address):l.mint,f=ot({programId:new j(n.programId),poolId:new j(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 y=xr({payer:this.scope.ownerPubKey,userRewardTokenPub:p,farmKeys:a,rewardVault:f,rewardInfo:te(Z({},l),{mint:d})});u.addInstruction({instructions:[y],instructionTypes:[Y.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}=t;this.scope.availability.addFarm===!1&&this.logAndCreateError("farm deposit feature disabled in your region");let{rewardInfos:d,programId:f}=n,p=Te[f];p===4&&this.logAndCreateError("V4 has suspended deposits:",n.programId),mr(p)||this.logAndCreateError("invalid farm program:",n.programId);let[m,y]=[new j(n.programId),new j(n.id)],b=(await this.scope.api.fetchFarmKeysById({ids:n.id}))[0],T=me({programId:m,poolId:y,owner:this.scope.ownerPubKey,version:p}),I=this.createTxBuilder();I.addCustomComputeBudget(l);let w={};for(let K of this.scope.account.tokenAccounts)if(a){let q=De(this.scope.ownerPubKey,K.mint,K.programId).publicKey;K.publicKey&&q.equals(K.publicKey)&&(w[K.mint.toString()]=K.publicKey)}else w[K.mint.toString()]=K.publicKey;let P=b.lpMint,A=w[P.address];A||this.logAndCreateError("you don't have any lp","lp zero",w);let k=[];for(let K of d){let q=s&&K.mint.address===ge.toString(),H=w[K.mint.address];if(!H){let{account:W,instructionParams:We}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:K.mint.programId,mint:new j(K.mint.address),notUseTokenAccount:q,createInfo:{payer:i||this.scope.ownerPubKey,amount:0},owner:this.scope.ownerPubKey,skipCloseAccount:!q,associatedOnly:q?!1:a,checkCreateATAOwner:c});H=W,We&&I.addInstruction(We)}w[K.mint.address]=H,k.push(H)}let C,R=await this.scope.connection.getAccountInfo(T);if(R&&(C=hr(p).decode(R.data)),n.programId!==Ze.toString()&&!C){let{instruction:K,instructionType:q}=br({id:y,programId:m,version:p,ledger:T,owner:this.scope.ownerPubKey});I.addInstruction({instructions:[K],instructionTypes:[q]})}let L=gr({version:p,rewardInfos:d,rewardTokenAccountsPublicKeys:k});L&&this.logAndCreateError(L);let U={amount:_(o),owner:this.scope.ownerPubKey,farmInfo:n,farmKeys:b,lpAccount:A,rewardAccounts:k,userAuxiliaryLedgers:u==null?void 0:u.map(K=>new j(K))},O=p===6?_n(U):p===5?Nn(U):En(U),N={3:Y.FarmV3Deposit,5:Y.FarmV5Deposit,6:Y.FarmV6Deposit};return I.addInstruction({instructions:[O],instructionTypes:[N[p]]}).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}=t,{rewardInfos:f}=n;this.scope.availability.removeFarm===!1&&this.logAndCreateError("farm withdraw feature disabled in your region");let p=Te[n.programId];mr(p)||this.logAndCreateError("invalid farm program:",n.programId);let m=(await this.scope.api.fetchFarmKeysById({ids:n.id}))[0],y=this.createTxBuilder();y.addCustomComputeBudget(d);let b={};for(let L of this.scope.account.tokenAccounts)if(c){let U=De(this.scope.ownerPubKey,L.mint).publicKey;L.publicKey&&U.equals(L.publicKey)&&(b[L.mint.toString()]=L.publicKey)}else b[L.mint.toString()]=L.publicKey;if(p!==4){let L=me({programId:new j(n.programId),poolId:new j(n.id),owner:this.scope.ownerPubKey,version:p}),U=await this.scope.connection.getAccountInfo(L);if(U)hr(p).decode(U.data).deposited.isZero()&&this.logAndCreateError("no deposited lp",{farmId:n.id});else if(p!==6){let{instruction:O,instructionType:N}=br({id:new j(m.id),programId:new j(m.programId),version:p,ledger:L,owner:this.scope.ownerPubKey});y.addInstruction({instructions:[O],instructionTypes:[N]})}}i&&i.isZero()&&!(l||[]).length&&this.logAndCreateError("no deposited lp",{farmId:n.id});let T=m.lpMint.address,I=s&&T===ge.toString(),w=b[T.toString()];if(!w){let{account:L,instructionParams:U}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:m.lpMint.programId,mint:new j(T),notUseTokenAccount:I,createInfo:{payer:a||this.scope.ownerPubKey,amount:0},owner:this.scope.ownerPubKey,skipCloseAccount:!0,associatedOnly:I?!1:c,checkCreateATAOwner:u});w=L,U&&y.addInstruction(U)}b[T.toString()]=w;let P=[];for(let L of f){let U=s&&L.mint.address===ge.toString(),O=b[L.mint.address];if(!O){let{account:N,instructionParams:K}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:L.mint.programId,mint:new j(L.mint.address),notUseTokenAccount:U,createInfo:{payer:a||this.scope.ownerPubKey,amount:0},owner:this.scope.ownerPubKey,skipCloseAccount:!U,associatedOnly:U?!1:c,checkCreateATAOwner:u});O=N,K&&y.addInstruction(K)}b[L.mint.address]=O,P.push(O)}let A=gr({version:p,rewardInfos:f,rewardTokenAccountsPublicKeys:P});A&&this.logAndCreateError(A);let k={amount:_(o),owner:this.scope.ownerPubKey,farmInfo:n,farmKeys:m,lpAccount:w,rewardAccounts:P,userAuxiliaryLedgers:l==null?void 0:l.map(L=>new j(L))},C=p===6?Pr(k):p===5?Tr(k):p===4?Fn(k):kr(k),R={3:Y.FarmV3Withdraw,4:Y.FarmV4Withdraw,5:Y.FarmV5Withdraw,6:Y.FarmV6Withdraw};return y.addInstruction({instructions:[C],instructionTypes:[R[p]]}).versionBuild({txVersion:r})}async withdrawFarmReward({farmInfo:t,withdrawMint:r,txVersion:n}){var p;this.scope.checkOwner();let o=we((await this.scope.api.fetchFarmKeysById({ids:t.id}))[0]),i=Te[t.programId];i!==6&&this.logAndCreateError("invalid farm version",i);let s=t.rewardInfos.findIndex(m=>m.mint.address===ne.toString()?new j(se.address):r),a=o.rewardInfos[s];a||this.logAndCreateError("withdraw mint error","rewardInfos",t);let c=(p=a==null?void 0:a.vault)!=null?p:ne,u=this.createTxBuilder(),l;if(r.equals(ne)){let m=await sr({connection:this.scope.connection,owner:this.scope.ownerPubKey,payer:this.scope.ownerPubKey,amount:yr(te(Z({},a),{openTime:a.openTime,endTime:a.endTime,perSecond:new Wt(a.perSecond).mul(10**a.mint.decimals).toString()}))});l=m.addresses.newAccount,u.addInstruction(m)}else{let m=await this.scope.account.getCreatedTokenAccount({mint:r});m===null?(l=await this.scope.account.getAssociatedTokenAccount(r),u.addInstruction({instructions:[ss(this.scope.ownerPubKey,l,this.scope.ownerPubKey,r)],instructionTypes:[Y.CreateATA]})):l=m}let{instruction:d,instructionType:f}=Mn({programId:o.programId,id:o.id,authority:o.authority,lpVault:o.lpVault,rewardVault:c,userRewardToken:l,owner:this.scope.ownerPubKey});return u.addInstruction({instructions:[d],instructionTypes:[f]}).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 y=De(this.scope.ownerPubKey,m.mint).publicKey;m.publicKey&&y.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,y)=>te(Z({},m),{[y.id]:y}),{});for(let m of Object.values(r)){let{programId:y,lpMint:b,rewardInfos:T,id:I}=m,w=Te[y],P=b.address,A=n&&P===ge.toString(),k=d[P];if(!k){let{account:N,instructionParams:K}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:b.programId,mint:new j(P),notUseTokenAccount:A,createInfo:{payer:o||this.scope.ownerPubKey,amount:0},owner:this.scope.ownerPubKey,skipCloseAccount:!0,associatedOnly:A?!1:i,checkCreateATAOwner:s});k=N,K&&l.addInstruction(K)}d[P.toString()]=k;let C=[];for(let N of T){let K=n&&N.mint.address===ge.toString(),q=d[N.mint.address];if(!q){let{account:H,instructionParams:W}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:N.mint.programId,mint:new j(N.mint.address),notUseTokenAccount:K,createInfo:{payer:o||this.scope.ownerPubKey,amount:0},owner:this.scope.ownerPubKey,skipCloseAccount:!K,associatedOnly:K?!1:i,checkCreateATAOwner:s});q=H,W&&l.addInstruction(W)}d[N.mint.address]=q,C.push(q)}let R=p[I],L={amount:Xt,owner:this.scope.ownerPubKey,farmInfo:m,farmKeys:R,lpAccount:k,rewardAccounts:C,userAuxiliaryLedgers:a==null?void 0:a.map(N=>new j(N))},U=w===6?Pr(L):w===5?Tr(L):kr(L),O={3:Y.FarmV3Withdraw,5:Y.FarmV5Withdraw,6:Y.FarmV6Withdraw};l.addInstruction({instructions:[U],instructionTypes:[O[w]]})}return c===1?l.sizeCheckBuild({computeBudgetConfig:u}):l.sizeCheckBuildV0({computeBudgetConfig:u})}};export{Ar as default};
|
|
2
2
|
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
3
3
|
//# sourceMappingURL=farm.mjs.map
|