@raydium-io/raydium-sdk-v2 0.0.28-alpha → 0.0.29-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.
Files changed (93) hide show
  1. package/lib/api/api.d.ts +1 -1
  2. package/lib/api/index.d.ts +1 -1
  3. package/lib/api/type.d.ts +1 -1
  4. package/lib/common/accountInfo.d.ts +1 -1
  5. package/lib/common/bignumber.d.ts +1 -1
  6. package/lib/common/fractionUtil.d.ts +1 -1
  7. package/lib/common/index.d.ts +1 -1
  8. package/lib/common/transfer.d.ts +1 -1
  9. package/lib/common/txTool/txTool.d.ts +1 -1
  10. package/lib/common/txTool/txUtils.d.ts +1 -1
  11. package/lib/common/utility.d.ts +1 -1
  12. package/lib/index.d.ts +3 -3
  13. package/lib/index.js +1 -1
  14. package/lib/index.js.map +1 -1
  15. package/lib/index.mjs +1 -1
  16. package/lib/index.mjs.map +1 -1
  17. package/lib/module/amount.d.ts +1 -1
  18. package/lib/module/fraction.d.ts +1 -1
  19. package/lib/module/index.d.ts +1 -1
  20. package/lib/module/percent.d.ts +1 -1
  21. package/lib/module/price.d.ts +1 -1
  22. package/lib/raydium/account/account.d.ts +3 -3
  23. package/lib/raydium/account/account.js +1 -1
  24. package/lib/raydium/account/account.js.map +1 -1
  25. package/lib/raydium/account/account.mjs +1 -1
  26. package/lib/raydium/account/account.mjs.map +1 -1
  27. package/lib/raydium/account/index.d.ts +1 -1
  28. package/lib/raydium/account/instruction.d.ts +1 -1
  29. package/lib/raydium/account/types.d.ts +1 -1
  30. package/lib/raydium/account/util.d.ts +1 -1
  31. package/lib/raydium/clmm/clmm.d.ts +3 -3
  32. package/lib/raydium/clmm/index.d.ts +3 -3
  33. package/lib/raydium/clmm/instrument.d.ts +2 -2
  34. package/lib/raydium/clmm/layout.d.ts +5 -5
  35. package/lib/raydium/clmm/type.d.ts +2 -2
  36. package/lib/raydium/clmm/utils/math.d.ts +2 -2
  37. package/lib/raydium/clmm/utils/pool.d.ts +2 -2
  38. package/lib/raydium/clmm/utils/position.d.ts +2 -2
  39. package/lib/raydium/clmm/utils/tick.d.ts +2 -2
  40. package/lib/raydium/clmm/utils/tickQuery.d.ts +2 -2
  41. package/lib/raydium/clmm/utils/tickarrayBitmap.d.ts +2 -2
  42. package/lib/raydium/cpmm/cpmm.d.ts +3 -3
  43. package/lib/raydium/cpmm/index.d.ts +1 -1
  44. package/lib/raydium/cpmm/type.d.ts +1 -1
  45. package/lib/raydium/farm/config.d.ts +1 -1
  46. package/lib/raydium/farm/farm.d.ts +3 -3
  47. package/lib/raydium/farm/index.d.ts +1 -1
  48. package/lib/raydium/farm/instruction.d.ts +1 -1
  49. package/lib/raydium/farm/layout.d.ts +1 -1
  50. package/lib/raydium/farm/type.d.ts +1 -1
  51. package/lib/raydium/farm/util.d.ts +1 -1
  52. package/lib/raydium/ido/ido.d.ts +3 -3
  53. package/lib/raydium/ido/index.d.ts +3 -3
  54. package/lib/raydium/ido/instruction.d.ts +1 -1
  55. package/lib/raydium/ido/type.d.ts +1 -1
  56. package/lib/raydium/index.d.ts +3 -3
  57. package/lib/raydium/index.js +1 -1
  58. package/lib/raydium/index.js.map +1 -1
  59. package/lib/raydium/index.mjs +1 -1
  60. package/lib/raydium/index.mjs.map +1 -1
  61. package/lib/raydium/liquidity/index.d.ts +1 -1
  62. package/lib/raydium/liquidity/instruction.d.ts +1 -1
  63. package/lib/raydium/liquidity/liquidity.d.ts +3 -3
  64. package/lib/raydium/liquidity/type.d.ts +1 -1
  65. package/lib/raydium/liquidity/utils.d.ts +1 -1
  66. package/lib/raydium/marketV2/createMarket.d.ts +3 -3
  67. package/lib/raydium/marketV2/index.d.ts +3 -3
  68. package/lib/raydium/moduleBase.d.ts +3 -3
  69. package/lib/raydium/raydium.d.ts +3 -3
  70. package/lib/raydium/raydium.js +1 -1
  71. package/lib/raydium/raydium.js.map +1 -1
  72. package/lib/raydium/raydium.mjs +1 -1
  73. package/lib/raydium/raydium.mjs.map +1 -1
  74. package/lib/raydium/token/constant.d.ts +1 -1
  75. package/lib/raydium/token/index.d.ts +1 -1
  76. package/lib/raydium/token/token.d.ts +3 -3
  77. package/lib/raydium/token/type.d.ts +1 -1
  78. package/lib/raydium/token/utils.d.ts +1 -1
  79. package/lib/raydium/tradeV2/index.d.ts +2 -2
  80. package/lib/raydium/tradeV2/instrument.d.ts +2 -2
  81. package/lib/raydium/tradeV2/trade.d.ts +3 -3
  82. package/lib/raydium/tradeV2/type.d.ts +2 -2
  83. package/lib/raydium/type.d.ts +1 -1
  84. package/lib/raydium/utils1216/index.d.ts +3 -3
  85. package/lib/raydium/utils1216/utils1216.d.ts +3 -3
  86. package/lib/{raydium-a8b6c65a.d.ts → raydium-4ac54b85.d.ts} +3 -3
  87. package/lib/raydium-d75706f4.d.ts +530 -0
  88. package/lib/{type-502bbda1.d.ts → type-5c2ec3f0.d.ts} +1 -1
  89. package/lib/type-6fd96950.d.ts +608 -0
  90. package/lib/type-83523f5f.d.ts +1415 -0
  91. package/package.json +1 -1
  92. package/src/raydium/account/account.ts +1 -2
  93. package/lib/{type-3b373344.d.ts → type-322fdce2.d.ts} +5 -5
@@ -1,3 +1,3 @@
1
- var _n=Object.defineProperty,Dn=Object.defineProperties;var Mn=Object.getOwnPropertyDescriptors;var De=Object.getOwnPropertySymbols;var Ot=Object.prototype.hasOwnProperty,vt=Object.prototype.propertyIsEnumerable;var Kt=(e,t,n)=>t in e?_n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_=(e,t)=>{for(var n in t||(t={}))Ot.call(t,n)&&Kt(e,n,t[n]);if(De)for(var n of De(t))vt.call(t,n)&&Kt(e,n,t[n]);return e},ee=(e,t)=>Dn(e,Mn(t));var ce=(e,t)=>{var n={};for(var r in e)Ot.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&De)for(var r of De(e))t.indexOf(r)<0&&vt.call(e,r)&&(n[r]=e[r]);return n};import{createAssociatedTokenAccountInstruction as Dt,TOKEN_PROGRAM_ID as ue,AccountLayout as ye,TOKEN_2022_PROGRAM_ID as To}from"@solana/spl-token";import{PublicKey as ot,SystemProgram as Po}from"@solana/web3.js";import{get as Ft,set as Kn}from"lodash";import Vt from"dayjs";import On from"dayjs/plugin/utc";Vt.extend(On);var st=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 Vt().utc().format("YYYY/MM/DD HH:mm:ss UTC")}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 n=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}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}},Wt={},vn={};function W(e){let t=Ft(Wt,e);if(!t){let n=Ft(vn,e);t=new st({name:e,logLevel:n}),Kn(Wt,e,t)}return t}import{PublicKey as Is}from"@solana/web3.js";import Ns from"bn.js";import Hr from"big.js";import us from"bn.js";import H from"bn.js";var de=9e15,oe=1e9,at="0123456789abcdef",Ke="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Oe="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",ut={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-de,maxE:de,crypto:!1},Ht,Q,A=!0,Fe="[DecimalError] ",re=Fe+"Invalid argument: ",jt=Fe+"Precision limit exceeded",zt=Fe+"crypto unavailable",Yt="[object Decimal]",V=Math.floor,M=Math.pow,Fn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Wn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Vn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Zt=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Y=1e7,P=7,Un=9007199254740991,qn=Ke.length-1,ct=Oe.length-1,g={toStringTag:Yt};g.absoluteValue=g.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),x(e)};g.ceil=function(){return x(new this.constructor(this),this.e+1,2)};g.clampedTo=g.clamp=function(e,t){var n,r=this,o=r.constructor;if(e=new o(e),t=new o(t),!e.s||!t.s)return new o(NaN);if(e.gt(t))throw Error(re+t);return n=r.cmp(e),n<0?e:r.cmp(t)>0?t:new o(r)};g.comparedTo=g.cmp=function(e){var t,n,r,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(r=s.length,o=a.length,t=0,n=r<o?r:o;t<n;++t)if(s[t]!==a[t])return s[t]>a[t]^c<0?1:-1;return r===o?0:r>o^c<0?1:-1};g.cosine=g.cos=function(){var e,t,n=this,r=n.constructor;return n.d?n.d[0]?(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+P,r.rounding=1,n=Gn(r,en(r,n)),r.precision=e,r.rounding=t,x(Q==2||Q==3?n.neg():n,e,t,!0)):new r(1):new r(NaN)};g.cubeRoot=g.cbrt=function(){var e,t,n,r,o,i,s,a,c,u,f=this,l=f.constructor;if(!f.isFinite()||f.isZero())return new l(f);for(A=!1,i=f.s*M(f.s*f,1/3),!i||Math.abs(i)==1/0?(n=v(f.d),e=f.e,(i=(e-n.length+1)%3)&&(n+=i==1||i==-2?"0":"00"),i=M(n,1/3),e=V((e+1)/3)-(e%3==(e<0?-1:2)),i==1/0?n="5e"+e:(n=i.toExponential(),n=n.slice(0,n.indexOf("e")+1)+e),r=new l(n),r.s=f.s):r=new l(i.toString()),s=(e=l.precision)+3;;)if(a=r,c=a.times(a).times(a),u=c.plus(f),r=C(u.plus(f).times(a),u.plus(c),s+2,1),v(a.d).slice(0,s)===(n=v(r.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!o&&n=="4999"){if(!o&&(x(a,e+1,0),a.times(a).times(a).eq(f))){r=a;break}s+=4,o=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(x(r,e+1,1),t=!r.times(r).times(r).eq(f));break}return A=!0,x(r,e,l.rounding,t)};g.decimalPlaces=g.dp=function(){var e,t=this.d,n=NaN;if(t){if(e=t.length-1,n=(e-V(this.e/P))*P,e=t[e],e)for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n};g.dividedBy=g.div=function(e){return C(this,new this.constructor(e))};g.dividedToIntegerBy=g.divToInt=function(e){var t=this,n=t.constructor;return x(C(t,new n(e),0,1,1),n.precision,n.rounding)};g.equals=g.eq=function(e){return this.cmp(e)===0};g.floor=function(){return x(new this.constructor(this),this.e+1,3)};g.greaterThan=g.gt=function(e){return this.cmp(e)>0};g.greaterThanOrEqualTo=g.gte=function(e){var t=this.cmp(e);return t==1||t===0};g.hyperbolicCosine=g.cosh=function(){var e,t,n,r,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;n=s.precision,r=s.rounding,s.precision=n+Math.max(i.e,i.sd())+4,s.rounding=1,o=i.d.length,o<32?(e=Math.ceil(o/3),t=(1/Ve(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),i=me(s,1,i.times(t),new s(1),!0);for(var c,u=e,f=new s(8);u--;)c=i.times(i),i=a.minus(c.times(f.minus(c.times(f))));return x(i,s.precision=n,s.rounding=r,!0)};g.hyperbolicSine=g.sinh=function(){var e,t,n,r,o=this,i=o.constructor;if(!o.isFinite()||o.isZero())return new i(o);if(t=i.precision,n=i.rounding,i.precision=t+Math.max(o.e,o.sd())+4,i.rounding=1,r=o.d.length,r<3)o=me(i,2,o,o,!0);else{e=1.4*Math.sqrt(r),e=e>16?16:e|0,o=o.times(1/Ve(5,e)),o=me(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=n,x(o,t,n,!0)};g.hyperbolicTangent=g.tanh=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+7,r.rounding=1,C(n.sinh(),n.cosh(),r.precision=e,r.rounding=t)):new r(n.s)};g.inverseCosine=g.acos=function(){var e,t=this,n=t.constructor,r=t.abs().cmp(1),o=n.precision,i=n.rounding;return r!==-1?r===0?t.isNeg()?z(n,o,i):new n(0):new n(NaN):t.isZero()?z(n,o+4,i).times(.5):(n.precision=o+6,n.rounding=1,t=t.asin(),e=z(n,o+4,i).times(.5),n.precision=o,n.rounding=i,e.minus(t))};g.inverseHyperbolicCosine=g.acosh=function(){var e,t,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(e=r.precision,t=r.rounding,r.precision=e+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,A=!1,n=n.times(n).minus(1).sqrt().plus(n),A=!0,r.precision=e,r.rounding=t,n.ln()):new r(n)};g.inverseHyperbolicSine=g.asinh=function(){var e,t,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,A=!1,n=n.times(n).plus(1).sqrt().plus(n),A=!0,r.precision=e,r.rounding=t,n.ln())};g.inverseHyperbolicTangent=g.atanh=function(){var e,t,n,r,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,r=o.sd(),Math.max(r,e)<2*-o.e-1?x(new i(o),e,t,!0):(i.precision=n=r-o.e,o=C(o.plus(1),new i(1).minus(o),n+e,1),i.precision=e+4,i.rounding=1,o=o.ln(),i.precision=e,i.rounding=t,o.times(.5))):new i(NaN)};g.inverseSine=g.asin=function(){var e,t,n,r,o=this,i=o.constructor;return o.isZero()?new i(o):(t=o.abs().cmp(1),n=i.precision,r=i.rounding,t!==-1?t===0?(e=z(i,n+4,r).times(.5),e.s=o.s,e):new i(NaN):(i.precision=n+6,i.rounding=1,o=o.div(new i(1).minus(o.times(o)).sqrt().plus(1)).atan(),i.precision=n,i.rounding=r,o.times(2)))};g.inverseTangent=g.atan=function(){var e,t,n,r,o,i,s,a,c,u=this,f=u.constructor,l=f.precision,p=f.rounding;if(u.isFinite()){if(u.isZero())return new f(u);if(u.abs().eq(1)&&l+4<=ct)return s=z(f,l+4,p).times(.25),s.s=u.s,s}else{if(!u.s)return new f(NaN);if(l+4<=ct)return s=z(f,l+4,p).times(.5),s.s=u.s,s}for(f.precision=a=l+10,f.rounding=1,n=Math.min(28,a/P+2|0),e=n;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(A=!1,t=Math.ceil(a/P),r=1,c=u.times(u),s=new f(u),o=u;e!==-1;)if(o=o.times(c),i=s.minus(o.div(r+=2)),o=o.times(c),s=i.plus(o.div(r+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===i.d[e]&&e--;);return n&&(s=s.times(2<<n-1)),A=!0,x(s,f.precision=l,f.rounding=p,!0)};g.isFinite=function(){return!!this.d};g.isInteger=g.isInt=function(){return!!this.d&&V(this.e/P)>this.d.length-2};g.isNaN=function(){return!this.s};g.isNegative=g.isNeg=function(){return this.s<0};g.isPositive=g.isPos=function(){return this.s>0};g.isZero=function(){return!!this.d&&this.d[0]===0};g.lessThan=g.lt=function(e){return this.cmp(e)<0};g.lessThanOrEqualTo=g.lte=function(e){return this.cmp(e)<1};g.logarithm=g.log=function(e){var t,n,r,o,i,s,a,c,u=this,f=u.constructor,l=f.precision,p=f.rounding,d=5;if(e==null)e=new f(10),t=!0;else{if(e=new f(e),n=e.d,e.s<0||!n||!n[0]||e.eq(1))return new f(NaN);t=e.eq(10)}if(n=u.d,u.s<0||!n||!n[0]||u.eq(1))return new f(n&&!n[0]?-1/0:u.s!=1?NaN:n?0:1/0);if(t)if(n.length>1)i=!0;else{for(o=n[0];o%10===0;)o/=10;i=o!==1}if(A=!1,a=l+d,s=ne(u,a),r=t?ve(f,a+10):ne(e,a),c=C(s,r,a,1),we(c.d,o=l,p))do if(a+=10,s=ne(u,a),r=t?ve(f,a+10):ne(e,a),c=C(s,r,a,1),!i){+v(c.d).slice(o+1,o+15)+1==1e14&&(c=x(c,l+1,0));break}while(we(c.d,o+=10,p));return A=!0,x(c,l,p)};g.minus=g.sub=function(e){var t,n,r,o,i,s,a,c,u,f,l,p,d=this,b=d.constructor;if(e=new b(e),!d.d||!e.d)return!d.s||!e.s?e=new b(NaN):d.d?e.s=-e.s:e=new b(e.d||d.s!==e.s?d:NaN),e;if(d.s!=e.s)return e.s=-e.s,d.plus(e);if(u=d.d,p=e.d,a=b.precision,c=b.rounding,!u[0]||!p[0]){if(p[0])e.s=-e.s;else if(u[0])e=new b(d);else return new b(c===3?-0:0);return A?x(e,a,c):e}if(n=V(e.e/P),f=V(d.e/P),u=u.slice(),i=f-n,i){for(l=i<0,l?(t=u,i=-i,s=p.length):(t=p,n=f,s=u.length),r=Math.max(Math.ceil(a/P),s)+2,i>r&&(i=r,t.length=1),t.reverse(),r=i;r--;)t.push(0);t.reverse()}else{for(r=u.length,s=p.length,l=r<s,l&&(s=r),r=0;r<s;r++)if(u[r]!=p[r]){l=u[r]<p[r];break}i=0}for(l&&(t=u,u=p,p=t,e.s=-e.s),s=u.length,r=p.length-s;r>0;--r)u[s++]=0;for(r=p.length;r>i;){if(u[--r]<p[r]){for(o=r;o&&u[--o]===0;)u[o]=Y-1;--u[o],u[r]+=Y}u[r]-=p[r]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--n;return u[0]?(e.d=u,e.e=We(u,n),A?x(e,a,c):e):new b(c===3?-0:0)};g.modulo=g.mod=function(e){var t,n=this,r=n.constructor;return e=new r(e),!n.d||!e.s||e.d&&!e.d[0]?new r(NaN):!e.d||n.d&&!n.d[0]?x(new r(n),r.precision,r.rounding):(A=!1,r.modulo==9?(t=C(n,e.abs(),0,3,1),t.s*=e.s):t=C(n,e,0,r.modulo,1),t=t.times(e),A=!0,n.minus(t))};g.naturalExponential=g.exp=function(){return lt(this)};g.naturalLogarithm=g.ln=function(){return ne(this)};g.negated=g.neg=function(){var e=new this.constructor(this);return e.s=-e.s,x(e)};g.plus=g.add=function(e){var t,n,r,o,i,s,a,c,u,f,l=this,p=l.constructor;if(e=new p(e),!l.d||!e.d)return!l.s||!e.s?e=new p(NaN):l.d||(e=new p(e.d||l.s===e.s?l:NaN)),e;if(l.s!=e.s)return e.s=-e.s,l.minus(e);if(u=l.d,f=e.d,a=p.precision,c=p.rounding,!u[0]||!f[0])return f[0]||(e=new p(l)),A?x(e,a,c):e;if(i=V(l.e/P),r=V(e.e/P),u=u.slice(),o=i-r,o){for(o<0?(n=u,o=-o,s=f.length):(n=f,r=i,s=u.length),i=Math.ceil(a/P),s=i>s?i+1:s+1,o>s&&(o=s,n.length=1),n.reverse();o--;)n.push(0);n.reverse()}for(s=u.length,o=f.length,s-o<0&&(o=s,n=f,f=u,u=n),t=0;o;)t=(u[--o]=u[o]+f[o]+t)/Y|0,u[o]%=Y;for(t&&(u.unshift(t),++r),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=We(u,r),A?x(e,a,c):e};g.precision=g.sd=function(e){var t,n=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(re+e);return n.d?(t=Xt(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t};g.round=function(){var e=this,t=e.constructor;return x(new t(e),e.e+1,t.rounding)};g.sine=g.sin=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+P,r.rounding=1,n=jn(r,en(r,n)),r.precision=e,r.rounding=t,x(Q>2?n.neg():n,e,t,!0)):new r(NaN)};g.squareRoot=g.sqrt=function(){var e,t,n,r,o,i,s=this,a=s.d,c=s.e,u=s.s,f=s.constructor;if(u!==1||!a||!a[0])return new f(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(A=!1,u=Math.sqrt(+s),u==0||u==1/0?(t=v(a),(t.length+c)%2==0&&(t+="0"),u=Math.sqrt(t),c=V((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),r=new f(t)):r=new f(u.toString()),n=(c=f.precision)+3;;)if(i=r,r=i.plus(C(s,i,n+2,1)).times(.5),v(i.d).slice(0,n)===(t=v(r.d)).slice(0,n))if(t=t.slice(n-3,n+1),t=="9999"||!o&&t=="4999"){if(!o&&(x(i,c+1,0),i.times(i).eq(s))){r=i;break}n+=4,o=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(x(r,c+1,1),e=!r.times(r).eq(s));break}return A=!0,x(r,c,f.rounding,e)};g.tangent=g.tan=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+10,r.rounding=1,n=n.sin(),n.s=1,n=C(n,new r(1).minus(n.times(n)).sqrt(),e+10,0),r.precision=e,r.rounding=t,x(Q==2||Q==4?n.neg():n,e,t,!0)):new r(NaN)};g.times=g.mul=function(e){var t,n,r,o,i,s,a,c,u,f=this,l=f.constructor,p=f.d,d=(e=new l(e)).d;if(e.s*=f.s,!p||!p[0]||!d||!d[0])return new l(!e.s||p&&!p[0]&&!d||d&&!d[0]&&!p?NaN:!p||!d?e.s/0:e.s*0);for(n=V(f.e/P)+V(e.e/P),c=p.length,u=d.length,c<u&&(i=p,p=d,d=i,s=c,c=u,u=s),i=[],s=c+u,r=s;r--;)i.push(0);for(r=u;--r>=0;){for(t=0,o=c+r;o>r;)a=i[o]+d[r]*p[o-r-1]+t,i[o--]=a%Y|0,t=a/Y|0;i[o]=(i[o]+t)%Y|0}for(;!i[--s];)i.pop();return t?++n:i.shift(),e.d=i,e.e=We(i,n),A?x(e,l.precision,l.rounding):e};g.toBinary=function(e,t){return pt(this,2,e,t)};g.toDecimalPlaces=g.toDP=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(G(e,0,oe),t===void 0?t=r.rounding:G(t,0,8),x(n,e+n.e+1,t))};g.toExponential=function(e,t){var n,r=this,o=r.constructor;return e===void 0?n=X(r,!0):(G(e,0,oe),t===void 0?t=o.rounding:G(t,0,8),r=x(new o(r),e+1,t),n=X(r,!0,e+1)),r.isNeg()&&!r.isZero()?"-"+n:n};g.toFixed=function(e,t){var n,r,o=this,i=o.constructor;return e===void 0?n=X(o):(G(e,0,oe),t===void 0?t=i.rounding:G(t,0,8),r=x(new i(o),e+o.e+1,t),n=X(r,!1,e+r.e+1)),o.isNeg()&&!o.isZero()?"-"+n:n};g.toFraction=function(e){var t,n,r,o,i,s,a,c,u,f,l,p,d=this,b=d.d,m=d.constructor;if(!b)return new m(d);if(u=n=new m(1),r=c=new m(0),t=new m(r),i=t.e=Xt(b)-d.e-1,s=i%P,t.d[0]=M(10,s<0?P+s:s),e==null)e=i>0?t:u;else{if(a=new m(e),!a.isInt()||a.lt(u))throw Error(re+a);e=a.gt(t)?i>0?t:u:a}for(A=!1,a=new m(v(b)),f=m.precision,m.precision=i=b.length*P*2;l=C(a,t,0,1,1),o=n.plus(l.times(r)),o.cmp(e)!=1;)n=r,r=o,o=u,u=c.plus(l.times(o)),c=o,o=t,t=a.minus(l.times(o)),a=o;return o=C(e.minus(n),r,0,1,1),c=c.plus(o.times(u)),n=n.plus(o.times(r)),c.s=u.s=d.s,p=C(u,r,i,1).minus(d).abs().cmp(C(c,n,i,1).minus(d).abs())<1?[u,r]:[c,n],m.precision=f,A=!0,p};g.toHexadecimal=g.toHex=function(e,t){return pt(this,16,e,t)};g.toNearest=function(e,t){var n=this,r=n.constructor;if(n=new r(n),e==null){if(!n.d)return n;e=new r(1),t=r.rounding}else{if(e=new r(e),t===void 0?t=r.rounding:G(t,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&(e.s=n.s),e}return e.d[0]?(A=!1,n=C(n,e,0,t,1).times(e),A=!0,x(n)):(e.s=n.s,n=e),n};g.toNumber=function(){return+this};g.toOctal=function(e,t){return pt(this,8,e,t)};g.toPower=g.pow=function(e){var t,n,r,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(M(+a,u));if(a=new c(a),a.eq(1))return a;if(r=c.precision,i=c.rounding,e.eq(1))return x(a,r,i);if(t=V(e.e/P),t>=e.d.length-1&&(n=u<0?-u:u)<=Un)return o=Jt(c,a,n,r),e.s<0?new c(1).div(o):x(o,r,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 n=M(+a,u),t=n==0||!isFinite(n)?V(u*(Math.log("0."+v(a.d))/Math.LN10+a.e+1)):new c(n+"").e,t>c.maxE+1||t<c.minE-1?new c(t>0?s/0:0):(A=!1,c.rounding=a.s=1,n=Math.min(12,(t+"").length),o=lt(e.times(ne(a,r+n)),r),o.d&&(o=x(o,r+5,1),we(o.d,r,i)&&(t=r+10,o=x(lt(e.times(ne(a,t+n)),t),t+5,1),+v(o.d).slice(r+1,r+15)+1==1e14&&(o=x(o,r+1,0)))),o.s=s,A=!0,c.rounding=i,x(o,r,i))};g.toPrecision=function(e,t){var n,r=this,o=r.constructor;return e===void 0?n=X(r,r.e<=o.toExpNeg||r.e>=o.toExpPos):(G(e,1,oe),t===void 0?t=o.rounding:G(t,0,8),r=x(new o(r),e,t),n=X(r,e<=r.e||r.e<=o.toExpNeg,e)),r.isNeg()&&!r.isZero()?"-"+n:n};g.toSignificantDigits=g.toSD=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(G(e,1,oe),t===void 0?t=r.rounding:G(t,0,8)),x(new r(n),e,t)};g.toString=function(){var e=this,t=e.constructor,n=X(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n};g.truncated=g.trunc=function(){return x(new this.constructor(this),this.e+1,1)};g.valueOf=g.toJSON=function(){var e=this,t=e.constructor,n=X(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n};function v(e){var t,n,r,o=e.length-1,i="",s=e[0];if(o>0){for(i+=s,t=1;t<o;t++)r=e[t]+"",n=P-r.length,n&&(i+=te(n)),i+=r;s=e[t],r=s+"",n=P-r.length,n&&(i+=te(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return i+s}function G(e,t,n){if(e!==~~e||e<t||e>n)throw Error(re+e)}function we(e,t,n,r){var o,i,s,a;for(i=e[0];i>=10;i/=10)--t;return--t<0?(t+=P,o=0):(o=Math.ceil((t+1)/P),t%=P),i=M(10,P-t),a=e[o]%i|0,r==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=n<4&&a==99999||n>3&&a==49999||a==5e4||a==0):s=(n<4&&a+1==i||n>3&&a+1==i/2)&&(e[o+1]/i/100|0)==M(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=(r||n<4)&&a==9999||!r&&n>3&&a==4999):s=((r||n<4)&&a+1==i||!r&&n>3&&a+1==i/2)&&(e[o+1]/i/1e3|0)==M(10,t-3)-1,s}function Me(e,t,n){for(var r,o=[0],i,s=0,a=e.length;s<a;){for(i=o.length;i--;)o[i]*=t;for(o[0]+=at.indexOf(e.charAt(s++)),r=0;r<o.length;r++)o[r]>n-1&&(o[r+1]===void 0&&(o[r+1]=0),o[r+1]+=o[r]/n|0,o[r]%=n)}return o.reverse()}function Gn(e,t){var n,r,o;if(t.isZero())return t;r=t.d.length,r<32?(n=Math.ceil(r/3),o=(1/Ve(4,n)).toString()):(n=16,o="2.3283064365386962890625e-10"),e.precision+=n,t=me(e,1,t.times(o),new e(1));for(var i=n;i--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=n,t}var C=function(){function e(r,o,i){var s,a=0,c=r.length;for(r=r.slice();c--;)s=r[c]*o+a,r[c]=s%i|0,a=s/i|0;return a&&r.unshift(a),r}function t(r,o,i,s){var a,c;if(i!=s)c=i>s?1:-1;else for(a=c=0;a<i;a++)if(r[a]!=o[a]){c=r[a]>o[a]?1:-1;break}return c}function n(r,o,i,s){for(var a=0;i--;)r[i]-=a,a=r[i]<o[i]?1:0,r[i]=a*s+r[i]-o[i];for(;!r[0]&&r.length>1;)r.shift()}return function(r,o,i,s,a,c){var u,f,l,p,d,b,m,y,h,T,w,L,S,I,O,U,j,fe,q,pe,_e=r.constructor,it=r.s==o.s?1:-1,F=r.d,N=o.d;if(!F||!F[0]||!N||!N[0])return new _e(!r.s||!o.s||(F?N&&F[0]==N[0]:!N)?NaN:F&&F[0]==0||!N?it*0:it/0);for(c?(d=1,f=r.e-o.e):(c=Y,d=P,f=V(r.e/d)-V(o.e/d)),q=N.length,j=F.length,h=new _e(it),T=h.d=[],l=0;N[l]==(F[l]||0);l++);if(N[l]>(F[l]||0)&&f--,i==null?(I=i=_e.precision,s=_e.rounding):a?I=i+(r.e-o.e)+1:I=i,I<0)T.push(1),b=!0;else{if(I=I/d+2|0,l=0,q==1){for(p=0,N=N[0],I++;(l<j||p)&&I--;l++)O=p*c+(F[l]||0),T[l]=O/N|0,p=O%N|0;b=p||l<j}else{for(p=c/(N[0]+1)|0,p>1&&(N=e(N,p,c),F=e(F,p,c),q=N.length,j=F.length),U=q,w=F.slice(0,q),L=w.length;L<q;)w[L++]=0;pe=N.slice(),pe.unshift(0),fe=N[0],N[1]>=c/2&&++fe;do p=0,u=t(N,w,q,L),u<0?(S=w[0],q!=L&&(S=S*c+(w[1]||0)),p=S/fe|0,p>1?(p>=c&&(p=c-1),m=e(N,p,c),y=m.length,L=w.length,u=t(m,w,y,L),u==1&&(p--,n(m,q<y?pe:N,y,c))):(p==0&&(u=p=1),m=N.slice()),y=m.length,y<L&&m.unshift(0),n(w,m,L,c),u==-1&&(L=w.length,u=t(N,w,q,L),u<1&&(p++,n(w,q<L?pe:N,L,c))),L=w.length):u===0&&(p++,w=[0]),T[l++]=p,u&&w[0]?w[L++]=F[U]||0:(w=[F[U]],L=1);while((U++<j||w[0]!==void 0)&&I--);b=w[0]!==void 0}T[0]||T.shift()}if(d==1)h.e=f,Ht=b;else{for(l=1,p=T[0];p>=10;p/=10)l++;h.e=l+f*d-1,x(h,a?i+h.e+1:i,s,b)}return h}}();function x(e,t,n,r){var o,i,s,a,c,u,f,l,p,d=e.constructor;e:if(t!=null){if(l=e.d,!l)return e;for(o=1,a=l[0];a>=10;a/=10)o++;if(i=t-o,i<0)i+=P,s=t,f=l[p=0],c=f/M(10,o-s-1)%10|0;else if(p=Math.ceil((i+1)/P),a=l.length,p>=a)if(r){for(;a++<=p;)l.push(0);f=c=0,o=1,i%=P,s=i-P+1}else break e;else{for(f=a=l[p],o=1;a>=10;a/=10)o++;i%=P,s=i-P+o,c=s<0?0:f/M(10,o-s-1)%10|0}if(r=r||t<0||l[p+1]!==void 0||(s<0?f:f%M(10,o-s-1)),u=n<4?(c||r)&&(n==0||n==(e.s<0?3:2)):c>5||c==5&&(n==4||r||n==6&&(i>0?s>0?f/M(10,o-s):0:l[p-1])%10&1||n==(e.s<0?8:7)),t<1||!l[0])return l.length=0,u?(t-=e.e+1,l[0]=M(10,(P-t%P)%P),e.e=-t||0):l[0]=e.e=0,e;if(i==0?(l.length=p,a=1,p--):(l.length=p+1,a=M(10,P-i),l[p]=s>0?(f/M(10,o-s)%M(10,s)|0)*a:0),u)for(;;)if(p==0){for(i=1,s=l[0];s>=10;s/=10)i++;for(s=l[0]+=a,a=1;s>=10;s/=10)a++;i!=a&&(e.e++,l[0]==Y&&(l[0]=1));break}else{if(l[p]+=a,l[p]!=Y)break;l[p--]=0,a=1}for(i=l.length;l[--i]===0;)l.pop()}return A&&(e.e>d.maxE?(e.d=null,e.e=NaN):e.e<d.minE&&(e.e=0,e.d=[0])),e}function X(e,t,n){if(!e.isFinite())return $t(e);var r,o=e.e,i=v(e.d),s=i.length;return t?(n&&(r=n-s)>0?i=i.charAt(0)+"."+i.slice(1)+te(r):s>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(e.e<0?"e":"e+")+e.e):o<0?(i="0."+te(-o-1)+i,n&&(r=n-s)>0&&(i+=te(r))):o>=s?(i+=te(o+1-s),n&&(r=n-o-1)>0&&(i=i+"."+te(r))):((r=o+1)<s&&(i=i.slice(0,r)+"."+i.slice(r)),n&&(r=n-s)>0&&(o+1===s&&(i+="."),i+=te(r))),i}function We(e,t){var n=e[0];for(t*=P;n>=10;n/=10)t++;return t}function ve(e,t,n){if(t>qn)throw A=!0,n&&(e.precision=n),Error(jt);return x(new e(Ke),t,1,!0)}function z(e,t,n){if(t>ct)throw Error(jt);return x(new e(Oe),t,n,!0)}function Xt(e){var t=e.length-1,n=t*P+1;if(t=e[t],t){for(;t%10==0;t/=10)n--;for(t=e[0];t>=10;t/=10)n++}return n}function te(e){for(var t="";e--;)t+="0";return t}function Jt(e,t,n,r){var o,i=new e(1),s=Math.ceil(r/P+4);for(A=!1;;){if(n%2&&(i=i.times(t),qt(i.d,s)&&(o=!0)),n=V(n/2),n===0){n=i.d.length-1,o&&i.d[n]===0&&++i.d[n];break}t=t.times(t),qt(t.d,s)}return A=!0,i}function Ut(e){return e.d[e.d.length-1]&1}function Qt(e,t,n){for(var r,o=new e(t[0]),i=0;++i<t.length;)if(r=new e(t[i]),r.s)o[n](r)&&(o=r);else{o=r;break}return o}function lt(e,t){var n,r,o,i,s,a,c,u=0,f=0,l=0,p=e.constructor,d=p.rounding,b=p.precision;if(!e.d||!e.d[0]||e.e>17)return new p(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:0/0);for(t==null?(A=!1,c=b):c=t,a=new p(.03125);e.e>-2;)e=e.times(a),l+=5;for(r=Math.log(M(2,l))/Math.LN10*2+5|0,c+=r,n=i=s=new p(1),p.precision=c;;){if(i=x(i.times(e),c,1),n=n.times(++f),a=s.plus(C(i,n,c,1)),v(a.d).slice(0,c)===v(s.d).slice(0,c)){for(o=l;o--;)s=x(s.times(s),c,1);if(t==null)if(u<3&&we(s.d,c-r,d,u))p.precision=c+=10,n=i=a=new p(1),f=0,u++;else return x(s,p.precision=b,d,A=!0);else return p.precision=b,s}s=a}}function ne(e,t){var n,r,o,i,s,a,c,u,f,l,p,d=1,b=10,m=e,y=m.d,h=m.constructor,T=h.rounding,w=h.precision;if(m.s<0||!y||!y[0]||!m.e&&y[0]==1&&y.length==1)return new h(y&&!y[0]?-1/0:m.s!=1?NaN:y?0:m);if(t==null?(A=!1,f=w):f=t,h.precision=f+=b,n=v(y),r=n.charAt(0),Math.abs(i=m.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)m=m.times(e),n=v(m.d),r=n.charAt(0),d++;i=m.e,r>1?(m=new h("0."+n),i++):m=new h(r+"."+n.slice(1))}else return u=ve(h,f+2,w).times(i+""),m=ne(new h(r+"."+n.slice(1)),f-b).plus(u),h.precision=w,t==null?x(m,w,T,A=!0):m;for(l=m,c=s=m=C(m.minus(1),m.plus(1),f,1),p=x(m.times(m),f,1),o=3;;){if(s=x(s.times(p),f,1),u=c.plus(C(s,new h(o),f,1)),v(u.d).slice(0,f)===v(c.d).slice(0,f))if(c=c.times(2),i!==0&&(c=c.plus(ve(h,f+2,w).times(i+""))),c=C(c,new h(d),f,1),t==null)if(we(c.d,f-b,T,a))h.precision=f+=b,u=s=m=C(l.minus(1),l.plus(1),f,1),p=x(m.times(m),f,1),o=a=1;else return x(c,h.precision=w,T,A=!0);else return h.precision=w,c;c=u,o+=2}}function $t(e){return String(e.s*e.s/0)}function ft(e,t){var n,r,o;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;r++);for(o=t.length;t.charCodeAt(o-1)===48;--o);if(t=t.slice(r,o),t){if(o-=r,e.e=n=n-r-1,e.d=[],r=(n+1)%P,n<0&&(r+=P),r<o){for(r&&e.d.push(+t.slice(0,r)),o-=P;r<o;)e.d.push(+t.slice(r,r+=P));t=t.slice(r),r=P-t.length}else r-=o;for(;r--;)t+="0";e.d.push(+t),A&&(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 Hn(e,t){var n,r,o,i,s,a,c,u,f;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),Zt.test(t))return ft(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Wn.test(t))n=16,t=t.toLowerCase();else if(Fn.test(t))n=2;else if(Vn.test(t))n=8;else throw Error(re+t);for(i=t.search(/p/i),i>0?(c=+t.slice(i+1),t=t.substring(2,i)):t=t.slice(2),i=t.indexOf("."),s=i>=0,r=e.constructor,s&&(t=t.replace(".",""),a=t.length,i=a-i,o=Jt(r,new r(n),i,i*2)),u=Me(t,n,Y),f=u.length-1,i=f;u[i]===0;--i)u.pop();return i<0?new r(e.s*0):(e.e=We(u,f),e.d=u,A=!1,s&&(e=C(e,o,a*4)),c&&(e=e.times(Math.abs(c)<54?M(2,c):Ue.pow(2,c))),A=!0,e)}function jn(e,t){var n,r=t.d.length;if(r<3)return t.isZero()?t:me(e,2,t,t);n=1.4*Math.sqrt(r),n=n>16?16:n|0,t=t.times(1/Ve(5,n)),t=me(e,2,t,t);for(var o,i=new e(5),s=new e(16),a=new e(20);n--;)o=t.times(t),t=t.times(i.plus(o.times(s.times(o).minus(a))));return t}function me(e,t,n,r,o){var i,s,a,c,u=1,f=e.precision,l=Math.ceil(f/P);for(A=!1,c=n.times(n),a=new e(r);;){if(s=C(a.times(c),new e(t++*t++),f,1),a=o?r.plus(s):r.minus(s),r=C(s.times(c),new e(t++*t++),f,1),s=a.plus(r),s.d[l]!==void 0){for(i=l;s.d[i]===a.d[i]&&i--;);if(i==-1)break}i=a,a=r,r=s,s=i,u++}return A=!0,s.d.length=l+1,s}function Ve(e,t){for(var n=e;--t;)n*=e;return n}function en(e,t){var n,r=t.s<0,o=z(e,e.precision,1),i=o.times(.5);if(t=t.abs(),t.lte(i))return Q=r?4:1,t;if(n=t.divToInt(o),n.isZero())Q=r?3:2;else{if(t=t.minus(n.times(o)),t.lte(i))return Q=Ut(n)?r?2:3:r?4:1,t;Q=Ut(n)?r?1:4:r?3:2}return t.minus(o).abs()}function pt(e,t,n,r){var o,i,s,a,c,u,f,l,p,d=e.constructor,b=n!==void 0;if(b?(G(n,1,oe),r===void 0?r=d.rounding:G(r,0,8)):(n=d.precision,r=d.rounding),!e.isFinite())f=$t(e);else{for(f=X(e),s=f.indexOf("."),b?(o=2,t==16?n=n*4-3:t==8&&(n=n*3-2)):o=t,s>=0&&(f=f.replace(".",""),p=new d(1),p.e=f.length-s,p.d=Me(X(p),10,o),p.e=p.d.length),l=Me(f,10,o),i=c=l.length;l[--c]==0;)l.pop();if(!l[0])f=b?"0p+0":"0";else{if(s<0?i--:(e=new d(e),e.d=l,e.e=i,e=C(e,p,n,r,0,o),l=e.d,i=e.e,u=Ht),s=l[n],a=o/2,u=u||l[n+1]!==void 0,u=r<4?(s!==void 0||u)&&(r===0||r===(e.s<0?3:2)):s>a||s===a&&(r===4||u||r===6&&l[n-1]&1||r===(e.s<0?8:7)),l.length=n,u)for(;++l[--n]>o-1;)l[n]=0,n||(++i,l.unshift(1));for(c=l.length;!l[c-1];--c);for(s=0,f="";s<c;s++)f+=at.charAt(l[s]);if(b){if(c>1)if(t==16||t==8){for(s=t==16?4:3,--c;c%s;c++)f+="0";for(l=Me(f,o,t),c=l.length;!l[c-1];--c);for(s=1,f="1.";s<c;s++)f+=at.charAt(l[s])}else f=f.charAt(0)+"."+f.slice(1);f=f+(i<0?"p":"p+")+i}else if(i<0){for(;++i;)f="0"+f;f="0."+f}else if(++i>c)for(i-=c;i--;)f+="0";else i<c&&(f=f.slice(0,i)+"."+f.slice(i))}f=(t==16?"0x":t==2?"0b":t==8?"0o":"")+f}return e.s<0?"-"+f:f}function qt(e,t){if(e.length>t)return e.length=t,!0}function zn(e){return new this(e).abs()}function Yn(e){return new this(e).acos()}function Zn(e){return new this(e).acosh()}function Xn(e,t){return new this(e).plus(t)}function Jn(e){return new this(e).asin()}function Qn(e){return new this(e).asinh()}function $n(e){return new this(e).atan()}function er(e){return new this(e).atanh()}function tr(e,t){e=new this(e),t=new this(t);var n,r=this.precision,o=this.rounding,i=r+4;return!e.s||!t.s?n=new this(NaN):!e.d&&!t.d?(n=z(this,i,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?z(this,r,o):new this(0),n.s=e.s):!e.d||t.isZero()?(n=z(this,i,1).times(.5),n.s=e.s):t.s<0?(this.precision=i,this.rounding=1,n=this.atan(C(e,t,i,1)),t=z(this,i,1),this.precision=r,this.rounding=o,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(C(e,t,i,1)),n}function nr(e){return new this(e).cbrt()}function rr(e){return x(e=new this(e),e.e+1,2)}function or(e,t,n){return new this(e).clamp(t,n)}function ir(e){if(!e||typeof e!="object")throw Error(Fe+"Object expected");var t,n,r,o=e.defaults===!0,i=["precision",1,oe,"rounding",0,8,"toExpNeg",-de,0,"toExpPos",0,de,"maxE",0,de,"minE",-de,0,"modulo",0,9];for(t=0;t<i.length;t+=3)if(n=i[t],o&&(this[n]=ut[n]),(r=e[n])!==void 0)if(V(r)===r&&r>=i[t+1]&&r<=i[t+2])this[n]=r;else throw Error(re+n+": "+r);if(n="crypto",o&&(this[n]=ut[n]),(r=e[n])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[n]=!0;else throw Error(zt);else this[n]=!1;else throw Error(re+n+": "+r);return this}function sr(e){return new this(e).cos()}function ar(e){return new this(e).cosh()}function tn(e){var t,n,r;function o(i){var s,a,c,u=this;if(!(u instanceof o))return new o(i);if(u.constructor=o,Gt(i)){u.s=i.s,A?!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++;A?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 ft(u,i.toString())}else if(c!=="string")throw Error(re+i);return(a=i.charCodeAt(0))===45?(i=i.slice(1),u.s=-1):(a===43&&(i=i.slice(1)),u.s=1),Zt.test(i)?ft(u,i):Hn(u,i)}if(o.prototype=g,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=ir,o.clone=tn,o.isDecimal=Gt,o.abs=zn,o.acos=Yn,o.acosh=Zn,o.add=Xn,o.asin=Jn,o.asinh=Qn,o.atan=$n,o.atanh=er,o.atan2=tr,o.cbrt=nr,o.ceil=rr,o.clamp=or,o.cos=sr,o.cosh=ar,o.div=ur,o.exp=cr,o.floor=lr,o.hypot=fr,o.ln=pr,o.log=dr,o.log10=gr,o.log2=mr,o.max=hr,o.min=br,o.mod=yr,o.mul=wr,o.pow=xr,o.random=Tr,o.round=Pr,o.sign=Ar,o.sin=kr,o.sinh=Br,o.sqrt=Sr,o.sub=Lr,o.sum=Ir,o.tan=Cr,o.tanh=Nr,o.trunc=Rr,e===void 0&&(e={}),e&&e.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<r.length;)e.hasOwnProperty(n=r[t++])||(e[n]=this[n]);return o.config(e),o}function ur(e,t){return new this(e).div(t)}function cr(e){return new this(e).exp()}function lr(e){return x(e=new this(e),e.e+1,3)}function fr(){var e,t,n=new this(0);for(A=!1,e=0;e<arguments.length;)if(t=new this(arguments[e++]),t.d)n.d&&(n=n.plus(t.times(t)));else{if(t.s)return A=!0,new this(1/0);n=t}return A=!0,n.sqrt()}function Gt(e){return e instanceof Ue||e&&e.toStringTag===Yt||!1}function pr(e){return new this(e).ln()}function dr(e,t){return new this(e).log(t)}function mr(e){return new this(e).log(2)}function gr(e){return new this(e).log(10)}function hr(){return Qt(this,arguments,"lt")}function br(){return Qt(this,arguments,"gt")}function yr(e,t){return new this(e).mod(t)}function wr(e,t){return new this(e).mul(t)}function xr(e,t){return new this(e).pow(t)}function Tr(e){var t,n,r,o,i=0,s=new this(1),a=[];if(e===void 0?e=this.precision:G(e,1,oe),r=Math.ceil(e/P),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(r));i<r;)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(r*=4);i<r;)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=r/4}else throw Error(zt);else for(;i<r;)a[i++]=Math.random()*1e7|0;for(r=a[--i],e%=P,r&&e&&(o=M(10,P-e),a[i]=(r/o|0)*o);a[i]===0;i--)a.pop();if(i<0)n=0,a=[0];else{for(n=-1;a[0]===0;n-=P)a.shift();for(r=1,o=a[0];o>=10;o/=10)r++;r<P&&(n-=P-r)}return s.e=n,s.d=a,s}function Pr(e){return x(e=new this(e),e.e+1,this.rounding)}function Ar(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function kr(e){return new this(e).sin()}function Br(e){return new this(e).sinh()}function Sr(e){return new this(e).sqrt()}function Lr(e,t){return new this(e).sub(t)}function Ir(){var e=0,t=arguments,n=new this(t[e]);for(A=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return A=!0,x(n,this.precision,this.rounding)}function Cr(e){return new this(e).tan()}function Nr(e){return new this(e).tanh()}function Rr(e){return x(e=new this(e),e.e+1,1)}g[Symbol.for("nodejs.util.inspect.custom")]=g.toString;g[Symbol.toStringTag]="Decimal";var Ue=g.constructor=tn(ut);Ke=new Ue(Ke);Oe=new Ue(Oe);import{PublicKey as mt}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Er}from"@solana/spl-token";import{PublicKey as E,SystemProgram as nn,SYSVAR_RENT_PUBKEY as _r}from"@solana/web3.js";function dt({pubkey:e,isSigner:t=!1,isWritable:n=!0}){return{pubkey:e,isWritable:n,isSigner:t}}var Eo=[dt({pubkey:Er,isWritable:!1}),dt({pubkey:nn.programId,isWritable:!1}),dt({pubkey:_r,isWritable:!1})];function rn({publicKey:e,transformSol:t}){let n=on(e.toString());if(n instanceof E)return t&&n.equals(xe)?ie:n;if(t&&n.toString()===xe.toBase58())return ie;if(typeof n=="string"){if(n===E.default.toBase58())return E.default;try{return new E(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function on(e){try{return new E(e)}catch{return e}}var _o=new E("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Do=new E("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Mo=new E("SysvarRent111111111111111111111111111111111"),Ko=new E("SysvarC1ock11111111111111111111111111111111"),Oo=new E("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),vo=new E("Sysvar1nstructions1111111111111111111111111"),Fo=nn.programId,Wo=new E("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Vo=new E("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Uo=new E("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),qo=new E("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Go=new E("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ho=new E("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),jo=new E("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),zo=new E("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Yo=new E("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Zo=new E("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Xo=new E("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ie=new E("So11111111111111111111111111111111111111112"),xe=E.default;import{PublicKey as Dr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as sn}from"@solana/spl-token";var an={chainId:101,address:Dr.default.toBase58(),programId:sn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},$={chainId:101,address:"So11111111111111111111111111111111111111112",programId:sn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};var gt=class{constructor({mint:t,decimals:n,symbol:r,name:o,skipMint:i=!1,isToken2022:s=!1}){if(t===xe.toBase58()||t instanceof mt&&xe.equals(t)){this.decimals=$.decimals,this.symbol=$.symbol,this.name=$.name,this.mint=new mt($.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=o||t.toString().substring(0,6),this.mint=i?mt.default:rn({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},ge=gt;ge.WSOL=new gt(ee(_({},$),{mint:$.address}));import Ge from"big.js";import Or from"bn.js";import vr from"decimal.js-light";import Mr from"toformat";var Kr=Mr,Te=Kr;var qe=W("module/fraction"),ht=Te(Ge),Pe=Te(vr),Fr={[0]:Pe.ROUND_DOWN,[1]:Pe.ROUND_HALF_UP,[2]:Pe.ROUND_UP},Wr={[0]:Ge.roundDown,[1]:Ge.roundHalfUp,[2]:Ge.roundUp},R=class{constructor(t,n=new Or(1)){this.numerator=J(t),this.denominator=J(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new R(this.denominator,this.numerator)}add(t){let n=t instanceof R?t:new R(J(t));return this.denominator.eq(n.denominator)?new R(this.numerator.add(n.numerator),this.denominator):new R(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof R?t:new R(J(t));return this.denominator.eq(n.denominator)?new R(this.numerator.sub(n.numerator),this.denominator):new R(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof R?t:new R(J(t));return new R(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof R?t:new R(J(t));return new R(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||qe.logWithError(`${t} is not an integer.`),t<=0&&qe.logWithError(`${t} is not positive.`),Pe.set({precision:t+1,rounding:Fr[r]});let o=new Pe(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return o.toFormat(o.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||qe.logWithError(`${t} is not an integer.`),t<0&&qe.logWithError(`${t} is negative.`),ht.DP=t,ht.RM=Wr[r]||1,new ht(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Pi=W("Raydium_price");var bt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},He=bt;He.SOL=new bt(an);import Ur from"bn.js";var Ni=new R(new Ur(100));var qr=new H(0),Xi=new H(1),Ji=new H(2),Qi=new H(3),$i=new H(5),Gr=new H(10),es=new H(100),ts=new H(1e3),ns=new H(1e4),fn=9007199254740991;function J(e){let t=W("Raydium_parseBigNumberish");if(e instanceof H)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new H(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=fn||e<=-fn)&&t.logWithError(`BigNumberish number overflow: ${e}`),new H(String(e))):typeof e=="bigint"?new H(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new H(0))}var hs=W("Raydium_amount"),bs=Te(Hr);import{PublicKey as Be,sendAndConfirmTransaction as Tt,Transaction as Se,TransactionMessage as Le,VersionedTransaction as Ie}from"@solana/web3.js";import Qr from"axios";var K={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",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",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"};import{PublicKey as jr,ComputeBudgetProgram as pn,Transaction as mn,TransactionMessage as zr,Keypair as gn,VersionedTransaction as hn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Yr}from"@solana/spl-token";var dn=W("Raydium_txUtil"),bn=1644;function je(e){let t=[],n=[];return e.microLamports&&(t.push(pn.setComputeUnitPrice({microLamports:e.microLamports})),n.push(K.SetComputeUnitPrice)),e.units&&(t.push(pn.setComputeUnitLimit({units:e.units})),n.push(K.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function he(e){var t,n;try{return((n=await((t=e.getLatestBlockhash)==null?void 0:t.call(e)))==null?void 0:n.blockhash)||(await e.getRecentBlockhash()).blockhash}catch{return(await e.getRecentBlockhash()).blockhash}}function Zr(e,t){e.length<1&&dn.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&dn.logWithError(`no signers provided:, ${t.toString()}`);let n=new mn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...e);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<bn}catch{return!1}}function yn(e,t){let[n,r]=jr.findProgramAddressSync(e,t);return{publicKey:n,nonce:r}}function Ae({instructions:e,payer:t,signers:n}){return Zr(e,[t,...n])}function ke({instructions:e,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=gn.generate().publicKey.toString()}){let i=new zr({payerKey:t,recentBlockhash:r,instructions:e}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new hn(i).serialize()).toString("base64").length<bn}catch{return!1}}var Xr=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e);function le(e){let t=[];return e.forEach(n=>{n instanceof mn&&(n.recentBlockhash||(n.recentBlockhash=Yr.toBase58()),n.feePayer||(n.feePayer=gn.generate().publicKey));let r=n.serialize({requireAllSignatures:!1,verifySignatures:!1});n instanceof hn&&(r=Xr(r));let o=r.toString("base64");t.push(o)}),console.log("simulate tx string:",t),t}import{PublicKey as xn,AddressLookupTableAccount as ze}from"@solana/web3.js";import{PublicKey as Jr}from"@solana/web3.js";import{getTransferFeeConfig as Zs,unpackMint as Xs}from"@solana/spl-token";var yt=W("Raydium_accountInfo_util");async function wn(e,t,n){let{batchRequest:r,commitment:o="confirmed"}=_({batchRequest:!1},n),i=wt(t,100),s=new Array(i.length).fill([]);if(r){let a=i.map(f=>{let l=e._buildArgs([f.map(p=>p.toBase58())],o,"base64");return{methodName:"getMultipleAccounts",args:l}}),c=wt(a,10);s=(await(await Promise.all(c.map(async f=>await e._rpcBatchRequest(f)))).flat()).map(f=>(f.error&&yt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${f.error.message}`),f.result.value.map(l=>{if(l){let{data:p,executable:d,lamports:b,owner:m,rentEpoch:y}=l;return p.length!==2&&p[1]!=="base64"&&yt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:d,lamports:b,owner:new Jr(m),rentEpoch:y}}return null})))}else try{s=await Promise.all(i.map(a=>e.getMultipleAccountsInfo(a,o)))}catch(a){a instanceof Error&&yt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${a.message}`)}return s.flat()}async function xt({connection:e,address:t}){let n=await wn(e,[...new Set(t.map(o=>o.toString()))].map(o=>new xn(o))),r={};for(let o=0;o<t.length;o++){let i=n[o],s=t[o];if(!i)continue;let a=new ze({key:s,state:ze.deserialize(i.data)});r[s.toString()]=a,Ye[s.toString()]=a}return r}var Ye={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new ze({key:new xn("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:ze.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"))})};var Ze=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}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 r;let t=(await Qr.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=je(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:o=[],endInstructionTypes:i=[],lookupTableAddress:s=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...o),this.endInstructionTypes.push(...i),this.lookupTableAddress.push(...s.filter(a=>a!==Be.default.toString())),this}async versionBuild({txVersion:t,extInfo:n}){return t===0?await this.buildV0(_({},n||{})):this.build(n)}build(t){let n=new Se;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async()=>{var o;let r=await he(this.connection);if(n.recentBlockhash=r,this.signers.length&&n.sign(...this.signers),le([n]),(o=this.owner)!=null&&o.isKeyPair)return{txId:await Tt(this.connection,n,this.signers.find(i=>i.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer]),signedTx:n};if(this.signAllTransactions){let i=await this.signAllTransactions([n]);return{txId:await this.connection.sendRawTransaction(i[0].serialize(),{skipPreflight:!0}),signedTx:i[0]}}throw new Error("please connect wallet first")},extInfo:t||{}}}buildMultiTx(t){let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:o}=this.build(r),i=n.filter(u=>u.transaction.instructions.length>0),s=[o,...i.map(u=>u.transaction)],a=[this.signers,...i.map(u=>u.signers)],c=[...this.instructionTypes,...i.map(u=>u.instructionTypes).flat()];return{builder:this,transactions:s,signers:a,instructionTypes:c,execute:async u=>{var d;let{sequentially:f,onTxUpdate:l}=u||{},p=await he(this.connection);if((d=this.owner)!=null&&d.isKeyPair)return{txIds:await await Promise.all(s.map(async(b,m)=>(b.recentBlockhash=p,await Tt(this.connection,b,a[m].find(y=>y.publicKey.equals(this.owner.publicKey))?a[m]:[...a[m],this.owner.signer])))),signedTxs:s};if(this.signAllTransactions){let b=s.map((y,h)=>(y.recentBlockhash=p,a[h].length&&y.sign(...a[h]),y));le(b);let m=await this.signAllTransactions(b);if(f){let y=0,h=[],T=async()=>{if(!m[y])return;let w=await this.connection.sendRawTransaction(m[y].serialize(),{skipPreflight:!0});h.push({txId:w,status:"sent",signedTx:m[y]}),l==null||l([...h]),y++,this.connection.onSignature(w,L=>{let S=h.findIndex(I=>I.txId===w);S>-1&&(h[S].status=L.err?"error":"success"),l==null||l([...h]),L.err||T()},"processed"),this.connection.getSignatureStatus(w)};return await T(),{txIds:h.map(w=>w.txId),signedTxs:m}}else{let y=[];for(let h=0;h<m.length;h+=1){let T=await this.connection.sendRawTransaction(m[h].serialize(),{skipPreflight:!0});y.push(T)}return{txIds:y,signedTxs:m}}}throw new Error("please connect wallet first")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){let p=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:o}=p,i=ce(p,["lookupTableCache","lookupTableAddress","forerunCreate"]),s=_(_({},Ye),n),a=Array.from(new Set([...r,...this.lookupTableAddress])),c=[];for(let d of a)s[d]===void 0&&c.push(new Be(d));let u=await xt({connection:this.connection,address:c});for(let[d,b]of Object.entries(u))s[d]=b;let f=new Le({payerKey:this.feePayer,recentBlockhash:o?Be.default.toBase58():await he(this.connection),instructions:[...this.allInstructions]}).compileToV0Message(Object.values(s)),l=new Ie(f);return l.sign(this.signers),{builder:this,transaction:l,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async()=>{var d;if(le([l]),(d=this.owner)!=null&&d.isKeyPair){this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))||l.sign([this.owner.signer]);let b=await this.connection.sendTransaction(l,{skipPreflight:!0}),{lastValidBlockHeight:m,blockhash:y}=await this.connection.getLatestBlockhash();return await this.connection.confirmTransaction({blockhash:y,lastValidBlockHeight:m,signature:b},"confirmed"),{txId:b,signedTx:l}}if(this.signAllTransactions){let b=await this.signAllTransactions([l]);return{txId:await this.connection.sendTransaction(b[0],{skipPreflight:!0}),signedTx:b[0]}}throw new Error("please connect wallet first")},extInfo:i||{}}}async buildV0MultiTx(t){let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:o}=await this.buildV0(r),i=n.filter(u=>u.builder.instructions.length>0),s=[o,...i.map(u=>u.transaction)],a=[this.signers,...i.map(u=>u.signers)],c=[...this.instructionTypes,...i.map(u=>u.instructionTypes).flat()];return s.forEach(async(u,f)=>{u.sign(a[f])}),{builder:this,transactions:s,signers:a,instructionTypes:c,buildProps:r,execute:async u=>{var p;le(s);let{sequentially:f,onTxUpdate:l}=u||{};if((p=this.owner)!=null&&p.isKeyPair){let{lastValidBlockHeight:d,blockhash:b}=await this.connection.getLatestBlockhash();return s.forEach((m,y)=>{a[y].find(h=>h.publicKey.equals(this.owner.publicKey))||m.sign([this.owner.signer])}),{txIds:await Promise.all(s.map(async m=>{let y=await this.connection.sendTransaction(m);return await this.connection.confirmTransaction({blockhash:b,lastValidBlockHeight:d,signature:y},"confirmed"),y})),signedTxs:s}}if(this.signAllTransactions){let d=await this.signAllTransactions(s);if(f){let b=0,m=[],y=async()=>{if(!d[b])return;let h=await this.connection.sendTransaction(d[b],{skipPreflight:!0});m.push({txId:h,status:"sent",signedTx:d[b]}),l==null||l([...m]),b++,this.connection.onSignature(h,T=>{let w=m.findIndex(L=>L.txId===h);w>-1&&(m[w].status=T.err?"error":"success"),l==null||l([...m]),T.err||y()},"processed"),this.connection.getSignatureStatus(h)};return y(),{txIds:[],signedTxs:d}}else{let b=[];for(let m=0;m<d.length;m+=1){let y=await this.connection.sendTransaction(d[m],{skipPreflight:!0});b.push(y)}return{txIds:b,signedTxs:d}}}throw new Error("please connect wallet first")},extInfo:r||{}}}async sizeCheckBuild(t){let u=t||{},{computeBudgetConfig:n}=u,r=ce(u,["computeBudgetConfig"]),o=n?je(n):{instructions:[],instructionTypes:[]},i=this.signers.reduce((f,l)=>ee(_({},f),{[l.publicKey.toBase58()]:l}),{}),s=[],a=[],c=[];if(this.allInstructions.forEach(f=>{let l=[...c,f],p=n?[...o.instructions,...l]:l,b=[...new Set(l.map(m=>m.keys.filter(y=>y.isSigner).map(y=>y.pubkey.toString())).flat()).values()].map(m=>new Be(m));if(c.length<12&&Ae({instructions:p,payer:this.feePayer,signers:b})||Ae({instructions:l,payer:this.feePayer,signers:b}))c.push(f);else{if(c.length===0)throw Error("item ins too big");Ae({instructions:n?[...o.instructions,...c]:[...c],payer:this.feePayer,signers:b})?s.push(new Se().add(...o.instructions,...c)):s.push(new Se().add(...c)),a.push(Array.from(new Set(c.map(m=>m.keys.filter(y=>y.isSigner).map(y=>y.pubkey.toString())).flat())).map(m=>i[m]).filter(m=>m!==void 0)),c=[f]}}),c.length>0){let l=[...new Set(c.map(p=>p.keys.filter(d=>d.isSigner).map(d=>d.pubkey.toString())).flat()).values()].map(p=>i[p]).filter(p=>p!==void 0);Ae({instructions:n?[...o.instructions,...c]:[...c],payer:this.feePayer,signers:l.map(p=>p.publicKey)})?s.push(new Se().add(...o.instructions,...c)):s.push(new Se().add(...c)),a.push(l)}return s.forEach(f=>f.feePayer=this.feePayer),{builder:this,transactions:s,signers:a,instructionTypes:this.instructionTypes,execute:async f=>{var b;let{sequentially:l,onTxUpdate:p}=f||{},d=await he(this.connection);if(s.forEach(async(m,y)=>{m.recentBlockhash=d,a[y].length&&m.sign(...a[y])}),le(s),(b=this.owner)!=null&&b.isKeyPair)return{txIds:await Promise.all(s.map(async(m,y)=>await Tt(this.connection,m,a[y].find(h=>h.publicKey.equals(this.owner.publicKey))?a[y]:[...a[y],this.owner.signer]))),signedTxs:s};if(this.signAllTransactions){let m=await this.signAllTransactions(s);if(l){let y=0,h=[],T=async()=>{if(!m[y])return;let w=await this.connection.sendRawTransaction(m[y].serialize(),{skipPreflight:!0});h.push({txId:w,status:"sent",signedTx:m[y]}),p==null||p([...h]),y++,this.connection.onSignature(w,L=>{let S=h.findIndex(I=>I.txId===w);S>-1&&(h[S].status=L.err?"error":"success"),p==null||p([...h]),L.err||T()},"processed"),this.connection.getSignatureStatus(w)};return await T(),{txIds:h.map(w=>w.txId),signedTxs:m}}else{let y=[];for(let h=0;h<m.length;h+=1){let T=await this.connection.sendRawTransaction(m[h].serialize(),{skipPreflight:!0});y.push(T)}return{txIds:y,signedTxs:m}}}throw new Error("please connect wallet first")},extInfo:r||{}}}async sizeCheckBuildV0(t){let y=t||{},{computeBudgetConfig:n,lookupTableCache:r={},lookupTableAddress:o=[]}=y,i=ce(y,["computeBudgetConfig","lookupTableCache","lookupTableAddress"]),s=_(_({},Ye),r),a=Array.from(new Set([...this.lookupTableAddress,...o])),c=[];for(let h of a)s[h]===void 0&&c.push(new Be(h));let u=await xt({connection:this.connection,address:c});for(let[h,T]of Object.entries(u))s[h]=T;let f=n?je(n):{instructions:[],instructionTypes:[]},l=await he(this.connection),p=this.signers.reduce((h,T)=>ee(_({},h),{[T.publicKey.toBase58()]:T}),{}),d=[],b=[],m=[];if(this.allInstructions.forEach(h=>{let T=[...m,h],w=n?[...f.instructions,...T]:T;if(m.length<12&&ke({instructions:w,payer:this.feePayer,lookupTableAddressAccount:s})||ke({instructions:T,payer:this.feePayer,lookupTableAddressAccount:s}))m.push(h);else{if(m.length===0)throw Error("item ins too big");let L={};for(let S of[...new Set(a)])s[S]!==void 0&&(L[S]=s[S]);if(n&&ke({instructions:[...f.instructions,...m],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let S=new Le({payerKey:this.feePayer,recentBlockhash:l,instructions:[...f.instructions,...m]}).compileToV0Message(Object.values(s));d.push(new Ie(S))}else{let S=new Le({payerKey:this.feePayer,recentBlockhash:l,instructions:[...m]}).compileToV0Message(Object.values(s));d.push(new Ie(S))}b.push(Array.from(new Set(m.map(S=>S.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat())).map(S=>p[S]).filter(S=>S!==void 0)),m=[h]}}),m.length>0){let T=[...new Set(m.map(w=>w.keys.filter(L=>L.isSigner).map(L=>L.pubkey.toString())).flat()).values()].map(w=>p[w]).filter(w=>w!==void 0);if(n&&ke({instructions:[...f.instructions,...m],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let w=new Le({payerKey:this.feePayer,recentBlockhash:l,instructions:[...f.instructions,...m]}).compileToV0Message(Object.values(s));d.push(new Ie(w))}else{let w=new Le({payerKey:this.feePayer,recentBlockhash:l,instructions:[...m]}).compileToV0Message(Object.values(s));d.push(new Ie(w))}b.push(T)}return{builder:this,transactions:d,buildProps:t,signers:b,instructionTypes:this.instructionTypes,execute:async h=>{var L;let{sequentially:T,onTxUpdate:w}=h||{};if(d.map(async(S,I)=>{b[I].length&&S.sign(b[I])}),le(d),(L=this.owner)!=null&&L.isKeyPair){let{lastValidBlockHeight:S,blockhash:I}=await this.connection.getLatestBlockhash();return d.forEach((O,U)=>{b[U].find(j=>j.publicKey.equals(this.owner.publicKey))||O.sign([this.owner.signer])}),{txIds:await Promise.all(d.map(async O=>{let U=await this.connection.sendTransaction(O);return await this.connection.confirmTransaction({blockhash:I,lastValidBlockHeight:S,signature:U},"confirmed"),U})),signedTxs:d}}if(this.signAllTransactions){let S=await this.signAllTransactions(d);if(T){let I=0,O=[],U=async()=>{if(!S[I])return;let j=await this.connection.sendTransaction(S[I],{skipPreflight:!0});O.push({txId:j,status:"sent",signedTx:S[I]}),w==null||w([...O]),I++,this.connection.onSignature(j,fe=>{let q=O.findIndex(pe=>pe.txId===j);q>-1&&(O[q].status=fe.err?"error":"success"),w==null||w([...O]),fe.err||U()},"processed"),this.connection.getSignatureStatus(j)};return U(),{txIds:[],signedTxs:S}}else{let I=[];for(let O=0;O<S.length;O+=1){let U=await this.connection.sendTransaction(S[O],{skipPreflight:!0});I.push(U)}return{txIds:I,signedTxs:S}}}throw new Error("please connect wallet first")},extInfo:i||{}}}};function wt(e,t=1,n=[]){let r=[...e];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}import{PublicKey as D}from"@solana/web3.js";var wa=new D("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),xa=new D("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ta=new D("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Pa=new D("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Aa=new D("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),ka=new D("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Ba=new D("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Sa=new D("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),La=new D("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ia=new D("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ca=new D("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Na=new D("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ra=new D("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ea=new D("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),_a=new D("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Da=new D("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Ma=new D("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ka=new D("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),Oa=new D("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),va=new D("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2");import{PublicKey as $r}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as eo}from"@solana/spl-token";function Xe(e,t,n){return yn([e.toBuffer(),(n!=null?n:eo).toBuffer(),t.toBuffer()],new $r("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import Ha from"bn.js";var Pt=(...e)=>e.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),Ce=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=W(n)}createTxBuilder(t){return this.scope.checkOwner(),new Ze({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,owner:this.scope.owner,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(Pt(t))}logInfo(...t){this.logger.info(Pt(t))}logAndCreateError(...t){let n=Pt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{createInitializeAccountInstruction as go,createCloseAccountInstruction as ho,createTransferInstruction as bo,TOKEN_PROGRAM_ID as be}from"@solana/spl-token";import{PublicKey as yo,SystemProgram as wo}from"@solana/web3.js";import xo from"bn.js";import{PublicKey as Nn,Keypair as lo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as fo}from"@solana/spl-token";import po from"bn.js";import{PublicKey as io}from"@solana/web3.js";import Pn,{isBN as mc}from"bn.js";import{bits as gu,BitStructure as hu,blob as to,Blob as bu,cstr as yu,f32 as wu,f32be as xu,f64 as Tu,f64be as Pu,greedy as Au,Layout as no,ns64 as ku,ns64be as Bu,nu64 as Su,nu64be as Lu,offset as Iu,s16 as Cu,s16be as Nu,s24 as Ru,s24be as Eu,s32 as _u,s32be as Du,s40 as Mu,s40be as Ku,s48 as Ou,s48be as vu,s8 as Fu,seq as Wu,struct as Vu,Structure as ro,u16 as Uu,u16be as qu,u24 as Gu,u24be as Hu,u32 as ju,u32be as zu,u40 as Yu,u40be as Zu,u48 as Xu,u48be as Ju,u8 as Qu,UInt as oo,union as $u,Union as ec,unionLayoutDiscriminator as tc,utf8 as nc}from"@solana/buffer-layout";var At=no,Tn=ro;var kt=oo;var Bt=to;var St=class extends At{constructor(n,r,o){super(n,o);this.blob=Bt(n),this.signed=r}decode(n,r=0){let o=new Pn(this.blob.decode(n,r),10,"le");return this.signed?o.fromTwos(this.span*8).clone():o}encode(n,r,o=0){return typeof n=="number"&&(n=new Pn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,o)}};function An(e){return new kt(1,e)}function Je(e){return new kt(4,e)}function Qe(e){return new St(8,!1,e)}var Lt=class extends At{constructor(n,r,o,i){super(n.span,i);this.layout=n,this.decoder=r,this.encoder=o}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,o){return this.layout.encode(this.encoder(n),r,o)}getSpan(n,r){return this.layout.getSpan(n,r)}};function Ne(e){return new Lt(Bt(32),t=>new io(t),t=>t.toBuffer(),e)}var It=class extends Tn{decode(t,n){return super.decode(t,n)}};function kn(e,t,n){return new It(e,t,n)}var Re=kn([Ne("mint"),Ne("owner"),Qe("amount"),Je("delegateOption"),Ne("delegate"),An("state"),Je("isNativeOption"),Qe("isNative"),Qe("delegatedAmount"),Je("closeAuthorityOption"),Ne("closeAuthority")]);function so(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}function Ct(e,...t){if(!so(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 Nt(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 Bn(e,t){Ct(e);let n=t.outputLen;if(e.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}var et=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Z=(e,t)=>e<<32-t|e>>>t;var Pc=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ao(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function Rt(e){return typeof e=="string"&&(e=ao(e)),Ct(e),e}var $e=class{clone(){return this._cloneInto()}},Ac={}.toString;function Sn(e){let t=r=>e().update(Rt(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function uo(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);let o=BigInt(32),i=BigInt(4294967295),s=Number(n>>o&i),a=Number(n&i),c=r?4:0,u=r?0:4;e.setUint32(t+c,s,r),e.setUint32(t+u,a,r)}var Ln=(e,t,n)=>e&t^~e&n,In=(e,t,n)=>e&t^e&n^t&n,tt=class extends $e{constructor(t,n,r,o){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=et(this.buffer)}update(t){Nt(this);let{view:n,buffer:r,blockLen:o}=this;t=Rt(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=et(t);for(;o<=i-s;s+=o)this.process(c,s);continue}r.set(t.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===o&&(this.process(n,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Nt(this),Bn(t,this),this.finished=!0;let{buffer:n,view:r,blockLen:o,isLE:i}=this,{pos:s}=this;n[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>o-s&&(this.process(r,0),s=0);for(let l=s;l<o;l++)n[l]=0;uo(r,o-8,BigInt(this.length*8),i),this.process(r,0);let a=et(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)a.setUint32(4*l,f[l],i)}digest(){let{buffer:t,outputLen:n}=this;this.digestInto(t);let r=t.slice(0,n);return this.destroy(),r}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:n,buffer:r,length:o,finished:i,destroyed:s,pos:a}=this;return t.length=o,t.pos=a,t.finished=i,t.destroyed=s,o%n&&t.buffer.set(r),t}};var co=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]),se=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ae=new Uint32Array(64),Et=class extends tt{constructor(){super(64,32,8,!1),this.A=se[0]|0,this.B=se[1]|0,this.C=se[2]|0,this.D=se[3]|0,this.E=se[4]|0,this.F=se[5]|0,this.G=se[6]|0,this.H=se[7]|0}get(){let{A:t,B:n,C:r,D:o,E:i,F:s,G:a,H:c}=this;return[t,n,r,o,i,s,a,c]}set(t,n,r,o,i,s,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=o|0,this.E=i|0,this.F=s|0,this.G=a|0,this.H=c|0}process(t,n){for(let l=0;l<16;l++,n+=4)ae[l]=t.getUint32(n,!1);for(let l=16;l<64;l++){let p=ae[l-15],d=ae[l-2],b=Z(p,7)^Z(p,18)^p>>>3,m=Z(d,17)^Z(d,19)^d>>>10;ae[l]=m+ae[l-7]+b+ae[l-16]|0}let{A:r,B:o,C:i,D:s,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let p=Z(a,6)^Z(a,11)^Z(a,25),d=f+p+Ln(a,c,u)+co[l]+ae[l]|0,m=(Z(r,2)^Z(r,13)^Z(r,22))+In(r,o,i)|0;f=u,u=c,c=a,a=s+d|0,s=i,i=o,o=r,r=d+m|0}r=r+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,f=f+this.H|0,this.set(r,o,i,s,a,c,u,f)}roundClean(){ae.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Cn=Sn(()=>new Et);var Wc=W("Raydium_Util");function Rn({owner:e,solAccountResp:t,tokenAccountResp:n}){let r=[],o=[];for(let{pubkey:i,account:s}of n.value){let a=Re.decode(s.data),{mint:c,amount:u}=a;r.push({publicKey:i,mint:c,amount:u,isAssociated:Xe(e,c,s.owner).publicKey.equals(i),isNative:!1,programId:s.owner}),o.push({pubkey:i,accountInfo:a,programId:s.owner})}return t&&r.push({mint:Nn.default,amount:new po(t.lamports),isNative:!0,programId:t.owner}),{tokenAccounts:r,tokenAccountRawInfos:o}}function nt({fromPublicKey:e,programId:t=fo}){let n=lo.generate().publicKey.toBase58().slice(0,32);return{publicKey:mo(e,n,t),seed:n}}function mo(e,t,n){let r=Buffer.concat([e.toBuffer(),Buffer.from(t),n.toBuffer()]),o=Cn(r);return new Nn(o)}function _t(e){let{mint:t,tokenAccount:n,owner:r,programId:o=be}=e;return go(n,t,r,o)}function Ee(e){let{tokenAccount:t,payer:n,multiSigners:r=[],owner:o,programId:i=be}=e;return ho(t,n,o,r,i)}async function rt(e){let{connection:t,amount:n,commitment:r,payer:o,owner:i,skipCloseAccount:s}=e,a=await t.getMinimumBalanceForRentExemption(Re.span,r),c=J(n).add(new xo(a)),u=nt({fromPublicKey:o,programId:be});return{addresses:{newAccount:u.publicKey},signers:[],instructions:[wo.createAccountWithSeed({fromPubkey:o,basePubkey:o,seed:u.seed,newAccountPubkey:u.publicKey,lamports:c.toNumber(),space:Re.span,programId:be}),_t({mint:new yo($.address),tokenAccount:u.publicKey,owner:i,programId:be})],instructionTypes:[K.CreateAccount,K.InitAccount],endInstructionTypes:s?[]:[K.CloseAccount],endInstructions:s?[]:[Ee({tokenAccount:u.publicKey,payer:o,owner:i})]}}function En({source:e,destination:t,owner:n,amount:r,multiSigners:o=[],tokenProgram:i=be}){return bo(e,t,n,BigInt(String(r)),o,i)}var Mt=class extends Ce{constructor(n){super(n);this._tokenAccounts=[];this._tokenAccountRawInfos=[];this._accountListener=[];this._clientOwnedToken=!1;let{tokenAccounts:r,tokenAccountRawInfos:o}=n;this._tokenAccounts=r||[],this._tokenAccountRawInfos=o||[],this._clientOwnedToken=!!(r||o)}get tokenAccounts(){return this._tokenAccounts}get tokenAccountRawInfos(){return this._tokenAccountRawInfos}updateTokenAccount({tokenAccounts:n,tokenAccountRawInfos:r}){return n&&(this._tokenAccounts=n),r&&(this._tokenAccountRawInfos=r),this._accountChangeListenerId&&this.scope.connection.removeAccountChangeListener(this._accountChangeListenerId),this._accountChangeListenerId=void 0,this._clientOwnedToken=!0,this}addAccountChangeListener(n){return this._accountListener.push(n),this}removeAccountChangeListener(n){return this._accountListener=this._accountListener.filter(r=>r!==n),this}getAssociatedTokenAccount(n,r){return Xe(this.scope.ownerPubKey,n,r).publicKey}async fetchWalletTokenAccounts(n){if(this._clientOwnedToken||!(n!=null&&n.forceUpdate)&&this._tokenAccounts.length)return{tokenAccounts:this._tokenAccounts,tokenAccountRawInfos:this._tokenAccountRawInfos};this.scope.checkOwner();let o=_(_({},{}),n),[i,s,a]=await Promise.all([this.scope.connection.getAccountInfo(this.scope.ownerPubKey,o.commitment),this.scope.connection.getTokenAccountsByOwner(this.scope.ownerPubKey,{programId:ue},o.commitment),this.scope.connection.getTokenAccountsByOwner(this.scope.ownerPubKey,{programId:To},o.commitment)]),{tokenAccounts:c,tokenAccountRawInfos:u}=Rn({owner:this.scope.ownerPubKey,solAccountResp:i,tokenAccountResp:{context:s.context,value:[...s.value,...a.value]}});return this._tokenAccounts=c,this._tokenAccountRawInfos=u,this._accountChangeListenerId&&this.scope.connection.removeAccountChangeListener(this._accountChangeListenerId),this._accountChangeListenerId=this.scope.connection.onAccountChange(this.scope.ownerPubKey,()=>this.fetchWalletTokenAccounts({forceUpdate:!0}),"confirmed"),{tokenAccounts:c,tokenAccountRawInfos:u}}async getCreatedTokenAccount({mint:n,programId:r=ue,associatedOnly:o=!0}){await this.fetchWalletTokenAccounts();let i=this._tokenAccounts.filter(({mint:a})=>a==null?void 0:a.equals(n)).sort((a,c)=>a.amount.lt(c.amount)?1:-1),s=this.getAssociatedTokenAccount(n,r);for(let a of i){let{publicKey:c}=a;if(c)return o&&s.equals(c),c}}async getOrCreateTokenAccount(n){var b,m,y;await this.fetchWalletTokenAccounts();let{mint:r,createInfo:o,associatedOnly:i,owner:s,notUseTokenAccount:a=!1,skipCloseAccount:c=!1,checkCreateATAOwner:u=!1}=n,f=new ot(n.tokenProgram||ue),l=this.getAssociatedTokenAccount(r,new ot(f)),p=(a?[]:this.tokenAccountRawInfos).filter(h=>h.accountInfo.mint.equals(r)&&(!i||h.pubkey.equals(l))).sort((h,T)=>h.accountInfo.amount.lt(T.accountInfo.amount)?1:-1);if(o===void 0||p.length>0)return p.length>0?{account:p[0].pubkey}:{};let d={instructions:[],endInstructions:[],signers:[],instructionTypes:[],endInstructionTypes:[]};if(i){let h=Dt(s,l,s,r,f);if(u){let T=await this.scope.connection.getAccountInfo(l);if(T===null)(b=d.instructions)==null||b.push(h),d.instructionTypes.push(K.CreateATA);else if(!(T.owner.equals(f)&&ye.decode(T.data).mint.equals(r)&&ye.decode(T.data).owner.equals(s)))throw Error(`create ata check error -> mint: ${r.toString()}, ata: ${l.toString()}`)}else d.instructions.push(h),d.instructionTypes.push(K.CreateATA);if(r.equals(ie)&&o.amount){let T=await rt({connection:this.scope.connection,owner:this.scope.ownerPubKey,payer:o.payer||this.scope.ownerPubKey,amount:(m=o.amount)!=null?m:0,skipCloseAccount:c});d.instructions.push(...T.instructions||[]),d.endInstructions.push(...T.endInstructions||[]),d.instructionTypes.push(...T.instructionTypes||[]),d.endInstructionTypes.push(...T.endInstructionTypes||[]),o.amount&&(d.instructions.push(En({source:T.addresses.newAccount,destination:l,owner:this.scope.ownerPubKey,amount:o.amount,tokenProgram:ue})),d.instructionTypes.push(K.TransferAmount))}return c||(d.endInstructions.push(Ee({owner:s,payer:o.payer||s,tokenAccount:l,programId:f})),d.endInstructionTypes.push(K.CloseAccount)),{account:l,instructionParams:d}}else if(r.equals(ie)){let h=await rt({connection:this.scope.connection,owner:this.scope.ownerPubKey,payer:o.payer||this.scope.ownerPubKey,amount:(y=o.amount)!=null?y:0,skipCloseAccount:c});return d.instructions.push(...h.instructions||[]),d.endInstructions.push(...h.endInstructions||[]),d.signers.push(...h.signers||[]),d.instructionTypes.push(...h.instructionTypes||[]),d.endInstructionTypes.push(...h.endInstructionTypes||[]),{account:h.addresses.newAccount,instructionParams:d}}else{let h=nt({fromPublicKey:s,programId:f}),T=await this.scope.connection.getMinimumBalanceForRentExemption(ye.span),w=Po.createAccountWithSeed({fromPubkey:s,basePubkey:s,seed:h.seed,newAccountPubkey:h.publicKey,lamports:T,space:ye.span,programId:f});return d.instructions.push(w,_t({mint:r,tokenAccount:h.publicKey,owner:this.scope.ownerPubKey,programId:f})),d.instructionTypes.push(K.CreateAccount),d.instructionTypes.push(K.InitAccount),c||(d.endInstructions.push(Ee({owner:s,payer:o.payer||s,tokenAccount:h.publicKey,programId:f})),d.endInstructionTypes.push(K.CloseAccount)),{account:h.publicKey,instructionParams:d}}}async checkOrCreateAta({mint:n,programId:r=ue,autoUnwrapWSOLToSOL:o}){var c;await this.fetchWalletTokenAccounts();let i=(c=this.scope.account.tokenAccounts.find(({mint:u})=>(u==null?void 0:u.toBase58())===n.toBase58()))==null?void 0:c.publicKey,s=this.scope.ownerPubKey,a={};if(!i){let u=this.getAssociatedTokenAccount(n,r),f=await Dt(s,u,s,n,r);a.instructions=[f],a.instructionTypes=[K.CreateATA],i=u}return o&&ie.toBase58()===n.toBase58()&&(a.endInstructions=[Ee({owner:s,payer:s,tokenAccount:i,programId:r})],a.endInstructionTypes=[K.CloseAccount]),{pubKey:i,newInstructions:a}}async handleTokenAccount(n){let{side:r,amount:o,mint:i,programId:s=ue,tokenAccount:a,payer:c=this.scope.ownerPubKey,bypassAssociatedCheck:u,skipCloseAccount:f,checkCreateATAOwner:l}=n,p=this.getAssociatedTokenAccount(i,s);if(new ot(ie).equals(i)){let d=await rt({connection:this.scope.connection,owner:this.scope.ownerPubKey,payer:c,amount:o,skipCloseAccount:f});return _({tokenAccount:d.addresses.newAccount},d)}else if(!a||r==="out"&&!p.equals(a)&&!u){let d=[],b=Dt(this.scope.ownerPubKey,p,this.scope.ownerPubKey,i,s);if(l){let m=await this.scope.connection.getAccountInfo(p);if(m===null)d.push(b);else if(!(m.owner.equals(ue)&&ye.decode(m.data).mint.equals(i)&&ye.decode(m.data).owner.equals(this.scope.ownerPubKey)))throw Error(`create ata check error -> mint: ${i.toString()}, ata: ${p.toString()}`)}else d.push(b);return{tokenAccount:p,instructions:d,instructionTypes:[K.CreateATA]}}return{tokenAccount:a}}async processTokenAccount(n){let{mint:r,programId:o=ue,amount:i,useSOLBalance:s,handleTokenAccount:a}=n,c,u=this.createTxBuilder();if(r.equals(new ot(ie))&&s){let f=await this.handleTokenAccount({side:"in",amount:i||0,mint:r,bypassAssociatedCheck:!0,programId:o}),{tokenAccount:p}=f,d=ce(f,["tokenAccount"]);c=p,u.addInstruction(d)}else if(c=await this.getCreatedTokenAccount({mint:r,associatedOnly:!1,programId:o}),!c&&a){let l=await this.scope.account.handleTokenAccount({side:"in",amount:0,mint:r,bypassAssociatedCheck:!0,programId:o}),{tokenAccount:p}=l,d=ce(l,["tokenAccount"]);c=p,u.addInstruction(d)}return _({tokenAccount:c},u.AllTxData)}};export{Mt as default};
1
+ var _n=Object.defineProperty,Dn=Object.defineProperties;var Mn=Object.getOwnPropertyDescriptors;var De=Object.getOwnPropertySymbols;var Ot=Object.prototype.hasOwnProperty,vt=Object.prototype.propertyIsEnumerable;var Kt=(e,t,n)=>t in e?_n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_=(e,t)=>{for(var n in t||(t={}))Ot.call(t,n)&&Kt(e,n,t[n]);if(De)for(var n of De(t))vt.call(t,n)&&Kt(e,n,t[n]);return e},ee=(e,t)=>Dn(e,Mn(t));var ce=(e,t)=>{var n={};for(var r in e)Ot.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&De)for(var r of De(e))t.indexOf(r)<0&&vt.call(e,r)&&(n[r]=e[r]);return n};import{createAssociatedTokenAccountInstruction as Dt,TOKEN_PROGRAM_ID as ue,AccountLayout as ye,TOKEN_2022_PROGRAM_ID as To}from"@solana/spl-token";import{PublicKey as ot,SystemProgram as Po}from"@solana/web3.js";import{get as Ft,set as Kn}from"lodash";import Vt from"dayjs";import On from"dayjs/plugin/utc";Vt.extend(On);var st=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 Vt().utc().format("YYYY/MM/DD HH:mm:ss UTC")}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 n=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}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}},Wt={},vn={};function W(e){let t=Ft(Wt,e);if(!t){let n=Ft(vn,e);t=new st({name:e,logLevel:n}),Kn(Wt,e,t)}return t}import{PublicKey as Is}from"@solana/web3.js";import Ns from"bn.js";import Hr from"big.js";import us from"bn.js";import H from"bn.js";var de=9e15,oe=1e9,at="0123456789abcdef",Ke="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Oe="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",ut={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-de,maxE:de,crypto:!1},Ht,Q,A=!0,Fe="[DecimalError] ",re=Fe+"Invalid argument: ",jt=Fe+"Precision limit exceeded",zt=Fe+"crypto unavailable",Yt="[object Decimal]",V=Math.floor,M=Math.pow,Fn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Wn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Vn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Zt=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Y=1e7,P=7,Un=9007199254740991,qn=Ke.length-1,ct=Oe.length-1,g={toStringTag:Yt};g.absoluteValue=g.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),x(e)};g.ceil=function(){return x(new this.constructor(this),this.e+1,2)};g.clampedTo=g.clamp=function(e,t){var n,r=this,o=r.constructor;if(e=new o(e),t=new o(t),!e.s||!t.s)return new o(NaN);if(e.gt(t))throw Error(re+t);return n=r.cmp(e),n<0?e:r.cmp(t)>0?t:new o(r)};g.comparedTo=g.cmp=function(e){var t,n,r,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(r=s.length,o=a.length,t=0,n=r<o?r:o;t<n;++t)if(s[t]!==a[t])return s[t]>a[t]^c<0?1:-1;return r===o?0:r>o^c<0?1:-1};g.cosine=g.cos=function(){var e,t,n=this,r=n.constructor;return n.d?n.d[0]?(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+P,r.rounding=1,n=Gn(r,en(r,n)),r.precision=e,r.rounding=t,x(Q==2||Q==3?n.neg():n,e,t,!0)):new r(1):new r(NaN)};g.cubeRoot=g.cbrt=function(){var e,t,n,r,o,i,s,a,c,u,f=this,l=f.constructor;if(!f.isFinite()||f.isZero())return new l(f);for(A=!1,i=f.s*M(f.s*f,1/3),!i||Math.abs(i)==1/0?(n=v(f.d),e=f.e,(i=(e-n.length+1)%3)&&(n+=i==1||i==-2?"0":"00"),i=M(n,1/3),e=V((e+1)/3)-(e%3==(e<0?-1:2)),i==1/0?n="5e"+e:(n=i.toExponential(),n=n.slice(0,n.indexOf("e")+1)+e),r=new l(n),r.s=f.s):r=new l(i.toString()),s=(e=l.precision)+3;;)if(a=r,c=a.times(a).times(a),u=c.plus(f),r=C(u.plus(f).times(a),u.plus(c),s+2,1),v(a.d).slice(0,s)===(n=v(r.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!o&&n=="4999"){if(!o&&(x(a,e+1,0),a.times(a).times(a).eq(f))){r=a;break}s+=4,o=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(x(r,e+1,1),t=!r.times(r).times(r).eq(f));break}return A=!0,x(r,e,l.rounding,t)};g.decimalPlaces=g.dp=function(){var e,t=this.d,n=NaN;if(t){if(e=t.length-1,n=(e-V(this.e/P))*P,e=t[e],e)for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n};g.dividedBy=g.div=function(e){return C(this,new this.constructor(e))};g.dividedToIntegerBy=g.divToInt=function(e){var t=this,n=t.constructor;return x(C(t,new n(e),0,1,1),n.precision,n.rounding)};g.equals=g.eq=function(e){return this.cmp(e)===0};g.floor=function(){return x(new this.constructor(this),this.e+1,3)};g.greaterThan=g.gt=function(e){return this.cmp(e)>0};g.greaterThanOrEqualTo=g.gte=function(e){var t=this.cmp(e);return t==1||t===0};g.hyperbolicCosine=g.cosh=function(){var e,t,n,r,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;n=s.precision,r=s.rounding,s.precision=n+Math.max(i.e,i.sd())+4,s.rounding=1,o=i.d.length,o<32?(e=Math.ceil(o/3),t=(1/Ve(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),i=me(s,1,i.times(t),new s(1),!0);for(var c,u=e,f=new s(8);u--;)c=i.times(i),i=a.minus(c.times(f.minus(c.times(f))));return x(i,s.precision=n,s.rounding=r,!0)};g.hyperbolicSine=g.sinh=function(){var e,t,n,r,o=this,i=o.constructor;if(!o.isFinite()||o.isZero())return new i(o);if(t=i.precision,n=i.rounding,i.precision=t+Math.max(o.e,o.sd())+4,i.rounding=1,r=o.d.length,r<3)o=me(i,2,o,o,!0);else{e=1.4*Math.sqrt(r),e=e>16?16:e|0,o=o.times(1/Ve(5,e)),o=me(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=n,x(o,t,n,!0)};g.hyperbolicTangent=g.tanh=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+7,r.rounding=1,C(n.sinh(),n.cosh(),r.precision=e,r.rounding=t)):new r(n.s)};g.inverseCosine=g.acos=function(){var e,t=this,n=t.constructor,r=t.abs().cmp(1),o=n.precision,i=n.rounding;return r!==-1?r===0?t.isNeg()?z(n,o,i):new n(0):new n(NaN):t.isZero()?z(n,o+4,i).times(.5):(n.precision=o+6,n.rounding=1,t=t.asin(),e=z(n,o+4,i).times(.5),n.precision=o,n.rounding=i,e.minus(t))};g.inverseHyperbolicCosine=g.acosh=function(){var e,t,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(e=r.precision,t=r.rounding,r.precision=e+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,A=!1,n=n.times(n).minus(1).sqrt().plus(n),A=!0,r.precision=e,r.rounding=t,n.ln()):new r(n)};g.inverseHyperbolicSine=g.asinh=function(){var e,t,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,A=!1,n=n.times(n).plus(1).sqrt().plus(n),A=!0,r.precision=e,r.rounding=t,n.ln())};g.inverseHyperbolicTangent=g.atanh=function(){var e,t,n,r,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,r=o.sd(),Math.max(r,e)<2*-o.e-1?x(new i(o),e,t,!0):(i.precision=n=r-o.e,o=C(o.plus(1),new i(1).minus(o),n+e,1),i.precision=e+4,i.rounding=1,o=o.ln(),i.precision=e,i.rounding=t,o.times(.5))):new i(NaN)};g.inverseSine=g.asin=function(){var e,t,n,r,o=this,i=o.constructor;return o.isZero()?new i(o):(t=o.abs().cmp(1),n=i.precision,r=i.rounding,t!==-1?t===0?(e=z(i,n+4,r).times(.5),e.s=o.s,e):new i(NaN):(i.precision=n+6,i.rounding=1,o=o.div(new i(1).minus(o.times(o)).sqrt().plus(1)).atan(),i.precision=n,i.rounding=r,o.times(2)))};g.inverseTangent=g.atan=function(){var e,t,n,r,o,i,s,a,c,u=this,f=u.constructor,l=f.precision,p=f.rounding;if(u.isFinite()){if(u.isZero())return new f(u);if(u.abs().eq(1)&&l+4<=ct)return s=z(f,l+4,p).times(.25),s.s=u.s,s}else{if(!u.s)return new f(NaN);if(l+4<=ct)return s=z(f,l+4,p).times(.5),s.s=u.s,s}for(f.precision=a=l+10,f.rounding=1,n=Math.min(28,a/P+2|0),e=n;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(A=!1,t=Math.ceil(a/P),r=1,c=u.times(u),s=new f(u),o=u;e!==-1;)if(o=o.times(c),i=s.minus(o.div(r+=2)),o=o.times(c),s=i.plus(o.div(r+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===i.d[e]&&e--;);return n&&(s=s.times(2<<n-1)),A=!0,x(s,f.precision=l,f.rounding=p,!0)};g.isFinite=function(){return!!this.d};g.isInteger=g.isInt=function(){return!!this.d&&V(this.e/P)>this.d.length-2};g.isNaN=function(){return!this.s};g.isNegative=g.isNeg=function(){return this.s<0};g.isPositive=g.isPos=function(){return this.s>0};g.isZero=function(){return!!this.d&&this.d[0]===0};g.lessThan=g.lt=function(e){return this.cmp(e)<0};g.lessThanOrEqualTo=g.lte=function(e){return this.cmp(e)<1};g.logarithm=g.log=function(e){var t,n,r,o,i,s,a,c,u=this,f=u.constructor,l=f.precision,p=f.rounding,d=5;if(e==null)e=new f(10),t=!0;else{if(e=new f(e),n=e.d,e.s<0||!n||!n[0]||e.eq(1))return new f(NaN);t=e.eq(10)}if(n=u.d,u.s<0||!n||!n[0]||u.eq(1))return new f(n&&!n[0]?-1/0:u.s!=1?NaN:n?0:1/0);if(t)if(n.length>1)i=!0;else{for(o=n[0];o%10===0;)o/=10;i=o!==1}if(A=!1,a=l+d,s=ne(u,a),r=t?ve(f,a+10):ne(e,a),c=C(s,r,a,1),we(c.d,o=l,p))do if(a+=10,s=ne(u,a),r=t?ve(f,a+10):ne(e,a),c=C(s,r,a,1),!i){+v(c.d).slice(o+1,o+15)+1==1e14&&(c=x(c,l+1,0));break}while(we(c.d,o+=10,p));return A=!0,x(c,l,p)};g.minus=g.sub=function(e){var t,n,r,o,i,s,a,c,u,f,l,p,d=this,b=d.constructor;if(e=new b(e),!d.d||!e.d)return!d.s||!e.s?e=new b(NaN):d.d?e.s=-e.s:e=new b(e.d||d.s!==e.s?d:NaN),e;if(d.s!=e.s)return e.s=-e.s,d.plus(e);if(u=d.d,p=e.d,a=b.precision,c=b.rounding,!u[0]||!p[0]){if(p[0])e.s=-e.s;else if(u[0])e=new b(d);else return new b(c===3?-0:0);return A?x(e,a,c):e}if(n=V(e.e/P),f=V(d.e/P),u=u.slice(),i=f-n,i){for(l=i<0,l?(t=u,i=-i,s=p.length):(t=p,n=f,s=u.length),r=Math.max(Math.ceil(a/P),s)+2,i>r&&(i=r,t.length=1),t.reverse(),r=i;r--;)t.push(0);t.reverse()}else{for(r=u.length,s=p.length,l=r<s,l&&(s=r),r=0;r<s;r++)if(u[r]!=p[r]){l=u[r]<p[r];break}i=0}for(l&&(t=u,u=p,p=t,e.s=-e.s),s=u.length,r=p.length-s;r>0;--r)u[s++]=0;for(r=p.length;r>i;){if(u[--r]<p[r]){for(o=r;o&&u[--o]===0;)u[o]=Y-1;--u[o],u[r]+=Y}u[r]-=p[r]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--n;return u[0]?(e.d=u,e.e=We(u,n),A?x(e,a,c):e):new b(c===3?-0:0)};g.modulo=g.mod=function(e){var t,n=this,r=n.constructor;return e=new r(e),!n.d||!e.s||e.d&&!e.d[0]?new r(NaN):!e.d||n.d&&!n.d[0]?x(new r(n),r.precision,r.rounding):(A=!1,r.modulo==9?(t=C(n,e.abs(),0,3,1),t.s*=e.s):t=C(n,e,0,r.modulo,1),t=t.times(e),A=!0,n.minus(t))};g.naturalExponential=g.exp=function(){return lt(this)};g.naturalLogarithm=g.ln=function(){return ne(this)};g.negated=g.neg=function(){var e=new this.constructor(this);return e.s=-e.s,x(e)};g.plus=g.add=function(e){var t,n,r,o,i,s,a,c,u,f,l=this,p=l.constructor;if(e=new p(e),!l.d||!e.d)return!l.s||!e.s?e=new p(NaN):l.d||(e=new p(e.d||l.s===e.s?l:NaN)),e;if(l.s!=e.s)return e.s=-e.s,l.minus(e);if(u=l.d,f=e.d,a=p.precision,c=p.rounding,!u[0]||!f[0])return f[0]||(e=new p(l)),A?x(e,a,c):e;if(i=V(l.e/P),r=V(e.e/P),u=u.slice(),o=i-r,o){for(o<0?(n=u,o=-o,s=f.length):(n=f,r=i,s=u.length),i=Math.ceil(a/P),s=i>s?i+1:s+1,o>s&&(o=s,n.length=1),n.reverse();o--;)n.push(0);n.reverse()}for(s=u.length,o=f.length,s-o<0&&(o=s,n=f,f=u,u=n),t=0;o;)t=(u[--o]=u[o]+f[o]+t)/Y|0,u[o]%=Y;for(t&&(u.unshift(t),++r),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=We(u,r),A?x(e,a,c):e};g.precision=g.sd=function(e){var t,n=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(re+e);return n.d?(t=Xt(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t};g.round=function(){var e=this,t=e.constructor;return x(new t(e),e.e+1,t.rounding)};g.sine=g.sin=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+P,r.rounding=1,n=jn(r,en(r,n)),r.precision=e,r.rounding=t,x(Q>2?n.neg():n,e,t,!0)):new r(NaN)};g.squareRoot=g.sqrt=function(){var e,t,n,r,o,i,s=this,a=s.d,c=s.e,u=s.s,f=s.constructor;if(u!==1||!a||!a[0])return new f(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(A=!1,u=Math.sqrt(+s),u==0||u==1/0?(t=v(a),(t.length+c)%2==0&&(t+="0"),u=Math.sqrt(t),c=V((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),r=new f(t)):r=new f(u.toString()),n=(c=f.precision)+3;;)if(i=r,r=i.plus(C(s,i,n+2,1)).times(.5),v(i.d).slice(0,n)===(t=v(r.d)).slice(0,n))if(t=t.slice(n-3,n+1),t=="9999"||!o&&t=="4999"){if(!o&&(x(i,c+1,0),i.times(i).eq(s))){r=i;break}n+=4,o=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(x(r,c+1,1),e=!r.times(r).eq(s));break}return A=!0,x(r,c,f.rounding,e)};g.tangent=g.tan=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+10,r.rounding=1,n=n.sin(),n.s=1,n=C(n,new r(1).minus(n.times(n)).sqrt(),e+10,0),r.precision=e,r.rounding=t,x(Q==2||Q==4?n.neg():n,e,t,!0)):new r(NaN)};g.times=g.mul=function(e){var t,n,r,o,i,s,a,c,u,f=this,l=f.constructor,p=f.d,d=(e=new l(e)).d;if(e.s*=f.s,!p||!p[0]||!d||!d[0])return new l(!e.s||p&&!p[0]&&!d||d&&!d[0]&&!p?NaN:!p||!d?e.s/0:e.s*0);for(n=V(f.e/P)+V(e.e/P),c=p.length,u=d.length,c<u&&(i=p,p=d,d=i,s=c,c=u,u=s),i=[],s=c+u,r=s;r--;)i.push(0);for(r=u;--r>=0;){for(t=0,o=c+r;o>r;)a=i[o]+d[r]*p[o-r-1]+t,i[o--]=a%Y|0,t=a/Y|0;i[o]=(i[o]+t)%Y|0}for(;!i[--s];)i.pop();return t?++n:i.shift(),e.d=i,e.e=We(i,n),A?x(e,l.precision,l.rounding):e};g.toBinary=function(e,t){return pt(this,2,e,t)};g.toDecimalPlaces=g.toDP=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(G(e,0,oe),t===void 0?t=r.rounding:G(t,0,8),x(n,e+n.e+1,t))};g.toExponential=function(e,t){var n,r=this,o=r.constructor;return e===void 0?n=X(r,!0):(G(e,0,oe),t===void 0?t=o.rounding:G(t,0,8),r=x(new o(r),e+1,t),n=X(r,!0,e+1)),r.isNeg()&&!r.isZero()?"-"+n:n};g.toFixed=function(e,t){var n,r,o=this,i=o.constructor;return e===void 0?n=X(o):(G(e,0,oe),t===void 0?t=i.rounding:G(t,0,8),r=x(new i(o),e+o.e+1,t),n=X(r,!1,e+r.e+1)),o.isNeg()&&!o.isZero()?"-"+n:n};g.toFraction=function(e){var t,n,r,o,i,s,a,c,u,f,l,p,d=this,b=d.d,m=d.constructor;if(!b)return new m(d);if(u=n=new m(1),r=c=new m(0),t=new m(r),i=t.e=Xt(b)-d.e-1,s=i%P,t.d[0]=M(10,s<0?P+s:s),e==null)e=i>0?t:u;else{if(a=new m(e),!a.isInt()||a.lt(u))throw Error(re+a);e=a.gt(t)?i>0?t:u:a}for(A=!1,a=new m(v(b)),f=m.precision,m.precision=i=b.length*P*2;l=C(a,t,0,1,1),o=n.plus(l.times(r)),o.cmp(e)!=1;)n=r,r=o,o=u,u=c.plus(l.times(o)),c=o,o=t,t=a.minus(l.times(o)),a=o;return o=C(e.minus(n),r,0,1,1),c=c.plus(o.times(u)),n=n.plus(o.times(r)),c.s=u.s=d.s,p=C(u,r,i,1).minus(d).abs().cmp(C(c,n,i,1).minus(d).abs())<1?[u,r]:[c,n],m.precision=f,A=!0,p};g.toHexadecimal=g.toHex=function(e,t){return pt(this,16,e,t)};g.toNearest=function(e,t){var n=this,r=n.constructor;if(n=new r(n),e==null){if(!n.d)return n;e=new r(1),t=r.rounding}else{if(e=new r(e),t===void 0?t=r.rounding:G(t,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&(e.s=n.s),e}return e.d[0]?(A=!1,n=C(n,e,0,t,1).times(e),A=!0,x(n)):(e.s=n.s,n=e),n};g.toNumber=function(){return+this};g.toOctal=function(e,t){return pt(this,8,e,t)};g.toPower=g.pow=function(e){var t,n,r,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(M(+a,u));if(a=new c(a),a.eq(1))return a;if(r=c.precision,i=c.rounding,e.eq(1))return x(a,r,i);if(t=V(e.e/P),t>=e.d.length-1&&(n=u<0?-u:u)<=Un)return o=Jt(c,a,n,r),e.s<0?new c(1).div(o):x(o,r,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 n=M(+a,u),t=n==0||!isFinite(n)?V(u*(Math.log("0."+v(a.d))/Math.LN10+a.e+1)):new c(n+"").e,t>c.maxE+1||t<c.minE-1?new c(t>0?s/0:0):(A=!1,c.rounding=a.s=1,n=Math.min(12,(t+"").length),o=lt(e.times(ne(a,r+n)),r),o.d&&(o=x(o,r+5,1),we(o.d,r,i)&&(t=r+10,o=x(lt(e.times(ne(a,t+n)),t),t+5,1),+v(o.d).slice(r+1,r+15)+1==1e14&&(o=x(o,r+1,0)))),o.s=s,A=!0,c.rounding=i,x(o,r,i))};g.toPrecision=function(e,t){var n,r=this,o=r.constructor;return e===void 0?n=X(r,r.e<=o.toExpNeg||r.e>=o.toExpPos):(G(e,1,oe),t===void 0?t=o.rounding:G(t,0,8),r=x(new o(r),e,t),n=X(r,e<=r.e||r.e<=o.toExpNeg,e)),r.isNeg()&&!r.isZero()?"-"+n:n};g.toSignificantDigits=g.toSD=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(G(e,1,oe),t===void 0?t=r.rounding:G(t,0,8)),x(new r(n),e,t)};g.toString=function(){var e=this,t=e.constructor,n=X(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n};g.truncated=g.trunc=function(){return x(new this.constructor(this),this.e+1,1)};g.valueOf=g.toJSON=function(){var e=this,t=e.constructor,n=X(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n};function v(e){var t,n,r,o=e.length-1,i="",s=e[0];if(o>0){for(i+=s,t=1;t<o;t++)r=e[t]+"",n=P-r.length,n&&(i+=te(n)),i+=r;s=e[t],r=s+"",n=P-r.length,n&&(i+=te(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return i+s}function G(e,t,n){if(e!==~~e||e<t||e>n)throw Error(re+e)}function we(e,t,n,r){var o,i,s,a;for(i=e[0];i>=10;i/=10)--t;return--t<0?(t+=P,o=0):(o=Math.ceil((t+1)/P),t%=P),i=M(10,P-t),a=e[o]%i|0,r==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=n<4&&a==99999||n>3&&a==49999||a==5e4||a==0):s=(n<4&&a+1==i||n>3&&a+1==i/2)&&(e[o+1]/i/100|0)==M(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=(r||n<4)&&a==9999||!r&&n>3&&a==4999):s=((r||n<4)&&a+1==i||!r&&n>3&&a+1==i/2)&&(e[o+1]/i/1e3|0)==M(10,t-3)-1,s}function Me(e,t,n){for(var r,o=[0],i,s=0,a=e.length;s<a;){for(i=o.length;i--;)o[i]*=t;for(o[0]+=at.indexOf(e.charAt(s++)),r=0;r<o.length;r++)o[r]>n-1&&(o[r+1]===void 0&&(o[r+1]=0),o[r+1]+=o[r]/n|0,o[r]%=n)}return o.reverse()}function Gn(e,t){var n,r,o;if(t.isZero())return t;r=t.d.length,r<32?(n=Math.ceil(r/3),o=(1/Ve(4,n)).toString()):(n=16,o="2.3283064365386962890625e-10"),e.precision+=n,t=me(e,1,t.times(o),new e(1));for(var i=n;i--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=n,t}var C=function(){function e(r,o,i){var s,a=0,c=r.length;for(r=r.slice();c--;)s=r[c]*o+a,r[c]=s%i|0,a=s/i|0;return a&&r.unshift(a),r}function t(r,o,i,s){var a,c;if(i!=s)c=i>s?1:-1;else for(a=c=0;a<i;a++)if(r[a]!=o[a]){c=r[a]>o[a]?1:-1;break}return c}function n(r,o,i,s){for(var a=0;i--;)r[i]-=a,a=r[i]<o[i]?1:0,r[i]=a*s+r[i]-o[i];for(;!r[0]&&r.length>1;)r.shift()}return function(r,o,i,s,a,c){var u,f,l,p,d,b,m,y,h,T,w,L,S,I,O,U,j,fe,q,pe,_e=r.constructor,it=r.s==o.s?1:-1,F=r.d,N=o.d;if(!F||!F[0]||!N||!N[0])return new _e(!r.s||!o.s||(F?N&&F[0]==N[0]:!N)?NaN:F&&F[0]==0||!N?it*0:it/0);for(c?(d=1,f=r.e-o.e):(c=Y,d=P,f=V(r.e/d)-V(o.e/d)),q=N.length,j=F.length,h=new _e(it),T=h.d=[],l=0;N[l]==(F[l]||0);l++);if(N[l]>(F[l]||0)&&f--,i==null?(I=i=_e.precision,s=_e.rounding):a?I=i+(r.e-o.e)+1:I=i,I<0)T.push(1),b=!0;else{if(I=I/d+2|0,l=0,q==1){for(p=0,N=N[0],I++;(l<j||p)&&I--;l++)O=p*c+(F[l]||0),T[l]=O/N|0,p=O%N|0;b=p||l<j}else{for(p=c/(N[0]+1)|0,p>1&&(N=e(N,p,c),F=e(F,p,c),q=N.length,j=F.length),U=q,w=F.slice(0,q),L=w.length;L<q;)w[L++]=0;pe=N.slice(),pe.unshift(0),fe=N[0],N[1]>=c/2&&++fe;do p=0,u=t(N,w,q,L),u<0?(S=w[0],q!=L&&(S=S*c+(w[1]||0)),p=S/fe|0,p>1?(p>=c&&(p=c-1),m=e(N,p,c),y=m.length,L=w.length,u=t(m,w,y,L),u==1&&(p--,n(m,q<y?pe:N,y,c))):(p==0&&(u=p=1),m=N.slice()),y=m.length,y<L&&m.unshift(0),n(w,m,L,c),u==-1&&(L=w.length,u=t(N,w,q,L),u<1&&(p++,n(w,q<L?pe:N,L,c))),L=w.length):u===0&&(p++,w=[0]),T[l++]=p,u&&w[0]?w[L++]=F[U]||0:(w=[F[U]],L=1);while((U++<j||w[0]!==void 0)&&I--);b=w[0]!==void 0}T[0]||T.shift()}if(d==1)h.e=f,Ht=b;else{for(l=1,p=T[0];p>=10;p/=10)l++;h.e=l+f*d-1,x(h,a?i+h.e+1:i,s,b)}return h}}();function x(e,t,n,r){var o,i,s,a,c,u,f,l,p,d=e.constructor;e:if(t!=null){if(l=e.d,!l)return e;for(o=1,a=l[0];a>=10;a/=10)o++;if(i=t-o,i<0)i+=P,s=t,f=l[p=0],c=f/M(10,o-s-1)%10|0;else if(p=Math.ceil((i+1)/P),a=l.length,p>=a)if(r){for(;a++<=p;)l.push(0);f=c=0,o=1,i%=P,s=i-P+1}else break e;else{for(f=a=l[p],o=1;a>=10;a/=10)o++;i%=P,s=i-P+o,c=s<0?0:f/M(10,o-s-1)%10|0}if(r=r||t<0||l[p+1]!==void 0||(s<0?f:f%M(10,o-s-1)),u=n<4?(c||r)&&(n==0||n==(e.s<0?3:2)):c>5||c==5&&(n==4||r||n==6&&(i>0?s>0?f/M(10,o-s):0:l[p-1])%10&1||n==(e.s<0?8:7)),t<1||!l[0])return l.length=0,u?(t-=e.e+1,l[0]=M(10,(P-t%P)%P),e.e=-t||0):l[0]=e.e=0,e;if(i==0?(l.length=p,a=1,p--):(l.length=p+1,a=M(10,P-i),l[p]=s>0?(f/M(10,o-s)%M(10,s)|0)*a:0),u)for(;;)if(p==0){for(i=1,s=l[0];s>=10;s/=10)i++;for(s=l[0]+=a,a=1;s>=10;s/=10)a++;i!=a&&(e.e++,l[0]==Y&&(l[0]=1));break}else{if(l[p]+=a,l[p]!=Y)break;l[p--]=0,a=1}for(i=l.length;l[--i]===0;)l.pop()}return A&&(e.e>d.maxE?(e.d=null,e.e=NaN):e.e<d.minE&&(e.e=0,e.d=[0])),e}function X(e,t,n){if(!e.isFinite())return $t(e);var r,o=e.e,i=v(e.d),s=i.length;return t?(n&&(r=n-s)>0?i=i.charAt(0)+"."+i.slice(1)+te(r):s>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(e.e<0?"e":"e+")+e.e):o<0?(i="0."+te(-o-1)+i,n&&(r=n-s)>0&&(i+=te(r))):o>=s?(i+=te(o+1-s),n&&(r=n-o-1)>0&&(i=i+"."+te(r))):((r=o+1)<s&&(i=i.slice(0,r)+"."+i.slice(r)),n&&(r=n-s)>0&&(o+1===s&&(i+="."),i+=te(r))),i}function We(e,t){var n=e[0];for(t*=P;n>=10;n/=10)t++;return t}function ve(e,t,n){if(t>qn)throw A=!0,n&&(e.precision=n),Error(jt);return x(new e(Ke),t,1,!0)}function z(e,t,n){if(t>ct)throw Error(jt);return x(new e(Oe),t,n,!0)}function Xt(e){var t=e.length-1,n=t*P+1;if(t=e[t],t){for(;t%10==0;t/=10)n--;for(t=e[0];t>=10;t/=10)n++}return n}function te(e){for(var t="";e--;)t+="0";return t}function Jt(e,t,n,r){var o,i=new e(1),s=Math.ceil(r/P+4);for(A=!1;;){if(n%2&&(i=i.times(t),qt(i.d,s)&&(o=!0)),n=V(n/2),n===0){n=i.d.length-1,o&&i.d[n]===0&&++i.d[n];break}t=t.times(t),qt(t.d,s)}return A=!0,i}function Ut(e){return e.d[e.d.length-1]&1}function Qt(e,t,n){for(var r,o=new e(t[0]),i=0;++i<t.length;)if(r=new e(t[i]),r.s)o[n](r)&&(o=r);else{o=r;break}return o}function lt(e,t){var n,r,o,i,s,a,c,u=0,f=0,l=0,p=e.constructor,d=p.rounding,b=p.precision;if(!e.d||!e.d[0]||e.e>17)return new p(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:0/0);for(t==null?(A=!1,c=b):c=t,a=new p(.03125);e.e>-2;)e=e.times(a),l+=5;for(r=Math.log(M(2,l))/Math.LN10*2+5|0,c+=r,n=i=s=new p(1),p.precision=c;;){if(i=x(i.times(e),c,1),n=n.times(++f),a=s.plus(C(i,n,c,1)),v(a.d).slice(0,c)===v(s.d).slice(0,c)){for(o=l;o--;)s=x(s.times(s),c,1);if(t==null)if(u<3&&we(s.d,c-r,d,u))p.precision=c+=10,n=i=a=new p(1),f=0,u++;else return x(s,p.precision=b,d,A=!0);else return p.precision=b,s}s=a}}function ne(e,t){var n,r,o,i,s,a,c,u,f,l,p,d=1,b=10,m=e,y=m.d,h=m.constructor,T=h.rounding,w=h.precision;if(m.s<0||!y||!y[0]||!m.e&&y[0]==1&&y.length==1)return new h(y&&!y[0]?-1/0:m.s!=1?NaN:y?0:m);if(t==null?(A=!1,f=w):f=t,h.precision=f+=b,n=v(y),r=n.charAt(0),Math.abs(i=m.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)m=m.times(e),n=v(m.d),r=n.charAt(0),d++;i=m.e,r>1?(m=new h("0."+n),i++):m=new h(r+"."+n.slice(1))}else return u=ve(h,f+2,w).times(i+""),m=ne(new h(r+"."+n.slice(1)),f-b).plus(u),h.precision=w,t==null?x(m,w,T,A=!0):m;for(l=m,c=s=m=C(m.minus(1),m.plus(1),f,1),p=x(m.times(m),f,1),o=3;;){if(s=x(s.times(p),f,1),u=c.plus(C(s,new h(o),f,1)),v(u.d).slice(0,f)===v(c.d).slice(0,f))if(c=c.times(2),i!==0&&(c=c.plus(ve(h,f+2,w).times(i+""))),c=C(c,new h(d),f,1),t==null)if(we(c.d,f-b,T,a))h.precision=f+=b,u=s=m=C(l.minus(1),l.plus(1),f,1),p=x(m.times(m),f,1),o=a=1;else return x(c,h.precision=w,T,A=!0);else return h.precision=w,c;c=u,o+=2}}function $t(e){return String(e.s*e.s/0)}function ft(e,t){var n,r,o;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;r++);for(o=t.length;t.charCodeAt(o-1)===48;--o);if(t=t.slice(r,o),t){if(o-=r,e.e=n=n-r-1,e.d=[],r=(n+1)%P,n<0&&(r+=P),r<o){for(r&&e.d.push(+t.slice(0,r)),o-=P;r<o;)e.d.push(+t.slice(r,r+=P));t=t.slice(r),r=P-t.length}else r-=o;for(;r--;)t+="0";e.d.push(+t),A&&(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 Hn(e,t){var n,r,o,i,s,a,c,u,f;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),Zt.test(t))return ft(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Wn.test(t))n=16,t=t.toLowerCase();else if(Fn.test(t))n=2;else if(Vn.test(t))n=8;else throw Error(re+t);for(i=t.search(/p/i),i>0?(c=+t.slice(i+1),t=t.substring(2,i)):t=t.slice(2),i=t.indexOf("."),s=i>=0,r=e.constructor,s&&(t=t.replace(".",""),a=t.length,i=a-i,o=Jt(r,new r(n),i,i*2)),u=Me(t,n,Y),f=u.length-1,i=f;u[i]===0;--i)u.pop();return i<0?new r(e.s*0):(e.e=We(u,f),e.d=u,A=!1,s&&(e=C(e,o,a*4)),c&&(e=e.times(Math.abs(c)<54?M(2,c):Ue.pow(2,c))),A=!0,e)}function jn(e,t){var n,r=t.d.length;if(r<3)return t.isZero()?t:me(e,2,t,t);n=1.4*Math.sqrt(r),n=n>16?16:n|0,t=t.times(1/Ve(5,n)),t=me(e,2,t,t);for(var o,i=new e(5),s=new e(16),a=new e(20);n--;)o=t.times(t),t=t.times(i.plus(o.times(s.times(o).minus(a))));return t}function me(e,t,n,r,o){var i,s,a,c,u=1,f=e.precision,l=Math.ceil(f/P);for(A=!1,c=n.times(n),a=new e(r);;){if(s=C(a.times(c),new e(t++*t++),f,1),a=o?r.plus(s):r.minus(s),r=C(s.times(c),new e(t++*t++),f,1),s=a.plus(r),s.d[l]!==void 0){for(i=l;s.d[i]===a.d[i]&&i--;);if(i==-1)break}i=a,a=r,r=s,s=i,u++}return A=!0,s.d.length=l+1,s}function Ve(e,t){for(var n=e;--t;)n*=e;return n}function en(e,t){var n,r=t.s<0,o=z(e,e.precision,1),i=o.times(.5);if(t=t.abs(),t.lte(i))return Q=r?4:1,t;if(n=t.divToInt(o),n.isZero())Q=r?3:2;else{if(t=t.minus(n.times(o)),t.lte(i))return Q=Ut(n)?r?2:3:r?4:1,t;Q=Ut(n)?r?1:4:r?3:2}return t.minus(o).abs()}function pt(e,t,n,r){var o,i,s,a,c,u,f,l,p,d=e.constructor,b=n!==void 0;if(b?(G(n,1,oe),r===void 0?r=d.rounding:G(r,0,8)):(n=d.precision,r=d.rounding),!e.isFinite())f=$t(e);else{for(f=X(e),s=f.indexOf("."),b?(o=2,t==16?n=n*4-3:t==8&&(n=n*3-2)):o=t,s>=0&&(f=f.replace(".",""),p=new d(1),p.e=f.length-s,p.d=Me(X(p),10,o),p.e=p.d.length),l=Me(f,10,o),i=c=l.length;l[--c]==0;)l.pop();if(!l[0])f=b?"0p+0":"0";else{if(s<0?i--:(e=new d(e),e.d=l,e.e=i,e=C(e,p,n,r,0,o),l=e.d,i=e.e,u=Ht),s=l[n],a=o/2,u=u||l[n+1]!==void 0,u=r<4?(s!==void 0||u)&&(r===0||r===(e.s<0?3:2)):s>a||s===a&&(r===4||u||r===6&&l[n-1]&1||r===(e.s<0?8:7)),l.length=n,u)for(;++l[--n]>o-1;)l[n]=0,n||(++i,l.unshift(1));for(c=l.length;!l[c-1];--c);for(s=0,f="";s<c;s++)f+=at.charAt(l[s]);if(b){if(c>1)if(t==16||t==8){for(s=t==16?4:3,--c;c%s;c++)f+="0";for(l=Me(f,o,t),c=l.length;!l[c-1];--c);for(s=1,f="1.";s<c;s++)f+=at.charAt(l[s])}else f=f.charAt(0)+"."+f.slice(1);f=f+(i<0?"p":"p+")+i}else if(i<0){for(;++i;)f="0"+f;f="0."+f}else if(++i>c)for(i-=c;i--;)f+="0";else i<c&&(f=f.slice(0,i)+"."+f.slice(i))}f=(t==16?"0x":t==2?"0b":t==8?"0o":"")+f}return e.s<0?"-"+f:f}function qt(e,t){if(e.length>t)return e.length=t,!0}function zn(e){return new this(e).abs()}function Yn(e){return new this(e).acos()}function Zn(e){return new this(e).acosh()}function Xn(e,t){return new this(e).plus(t)}function Jn(e){return new this(e).asin()}function Qn(e){return new this(e).asinh()}function $n(e){return new this(e).atan()}function er(e){return new this(e).atanh()}function tr(e,t){e=new this(e),t=new this(t);var n,r=this.precision,o=this.rounding,i=r+4;return!e.s||!t.s?n=new this(NaN):!e.d&&!t.d?(n=z(this,i,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?z(this,r,o):new this(0),n.s=e.s):!e.d||t.isZero()?(n=z(this,i,1).times(.5),n.s=e.s):t.s<0?(this.precision=i,this.rounding=1,n=this.atan(C(e,t,i,1)),t=z(this,i,1),this.precision=r,this.rounding=o,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(C(e,t,i,1)),n}function nr(e){return new this(e).cbrt()}function rr(e){return x(e=new this(e),e.e+1,2)}function or(e,t,n){return new this(e).clamp(t,n)}function ir(e){if(!e||typeof e!="object")throw Error(Fe+"Object expected");var t,n,r,o=e.defaults===!0,i=["precision",1,oe,"rounding",0,8,"toExpNeg",-de,0,"toExpPos",0,de,"maxE",0,de,"minE",-de,0,"modulo",0,9];for(t=0;t<i.length;t+=3)if(n=i[t],o&&(this[n]=ut[n]),(r=e[n])!==void 0)if(V(r)===r&&r>=i[t+1]&&r<=i[t+2])this[n]=r;else throw Error(re+n+": "+r);if(n="crypto",o&&(this[n]=ut[n]),(r=e[n])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[n]=!0;else throw Error(zt);else this[n]=!1;else throw Error(re+n+": "+r);return this}function sr(e){return new this(e).cos()}function ar(e){return new this(e).cosh()}function tn(e){var t,n,r;function o(i){var s,a,c,u=this;if(!(u instanceof o))return new o(i);if(u.constructor=o,Gt(i)){u.s=i.s,A?!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++;A?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 ft(u,i.toString())}else if(c!=="string")throw Error(re+i);return(a=i.charCodeAt(0))===45?(i=i.slice(1),u.s=-1):(a===43&&(i=i.slice(1)),u.s=1),Zt.test(i)?ft(u,i):Hn(u,i)}if(o.prototype=g,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=ir,o.clone=tn,o.isDecimal=Gt,o.abs=zn,o.acos=Yn,o.acosh=Zn,o.add=Xn,o.asin=Jn,o.asinh=Qn,o.atan=$n,o.atanh=er,o.atan2=tr,o.cbrt=nr,o.ceil=rr,o.clamp=or,o.cos=sr,o.cosh=ar,o.div=ur,o.exp=cr,o.floor=lr,o.hypot=fr,o.ln=pr,o.log=dr,o.log10=gr,o.log2=mr,o.max=hr,o.min=br,o.mod=yr,o.mul=wr,o.pow=xr,o.random=Tr,o.round=Pr,o.sign=Ar,o.sin=kr,o.sinh=Br,o.sqrt=Sr,o.sub=Lr,o.sum=Ir,o.tan=Cr,o.tanh=Nr,o.trunc=Rr,e===void 0&&(e={}),e&&e.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<r.length;)e.hasOwnProperty(n=r[t++])||(e[n]=this[n]);return o.config(e),o}function ur(e,t){return new this(e).div(t)}function cr(e){return new this(e).exp()}function lr(e){return x(e=new this(e),e.e+1,3)}function fr(){var e,t,n=new this(0);for(A=!1,e=0;e<arguments.length;)if(t=new this(arguments[e++]),t.d)n.d&&(n=n.plus(t.times(t)));else{if(t.s)return A=!0,new this(1/0);n=t}return A=!0,n.sqrt()}function Gt(e){return e instanceof Ue||e&&e.toStringTag===Yt||!1}function pr(e){return new this(e).ln()}function dr(e,t){return new this(e).log(t)}function mr(e){return new this(e).log(2)}function gr(e){return new this(e).log(10)}function hr(){return Qt(this,arguments,"lt")}function br(){return Qt(this,arguments,"gt")}function yr(e,t){return new this(e).mod(t)}function wr(e,t){return new this(e).mul(t)}function xr(e,t){return new this(e).pow(t)}function Tr(e){var t,n,r,o,i=0,s=new this(1),a=[];if(e===void 0?e=this.precision:G(e,1,oe),r=Math.ceil(e/P),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(r));i<r;)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(r*=4);i<r;)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=r/4}else throw Error(zt);else for(;i<r;)a[i++]=Math.random()*1e7|0;for(r=a[--i],e%=P,r&&e&&(o=M(10,P-e),a[i]=(r/o|0)*o);a[i]===0;i--)a.pop();if(i<0)n=0,a=[0];else{for(n=-1;a[0]===0;n-=P)a.shift();for(r=1,o=a[0];o>=10;o/=10)r++;r<P&&(n-=P-r)}return s.e=n,s.d=a,s}function Pr(e){return x(e=new this(e),e.e+1,this.rounding)}function Ar(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function kr(e){return new this(e).sin()}function Br(e){return new this(e).sinh()}function Sr(e){return new this(e).sqrt()}function Lr(e,t){return new this(e).sub(t)}function Ir(){var e=0,t=arguments,n=new this(t[e]);for(A=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return A=!0,x(n,this.precision,this.rounding)}function Cr(e){return new this(e).tan()}function Nr(e){return new this(e).tanh()}function Rr(e){return x(e=new this(e),e.e+1,1)}g[Symbol.for("nodejs.util.inspect.custom")]=g.toString;g[Symbol.toStringTag]="Decimal";var Ue=g.constructor=tn(ut);Ke=new Ue(Ke);Oe=new Ue(Oe);import{PublicKey as mt}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Er}from"@solana/spl-token";import{PublicKey as E,SystemProgram as nn,SYSVAR_RENT_PUBKEY as _r}from"@solana/web3.js";function dt({pubkey:e,isSigner:t=!1,isWritable:n=!0}){return{pubkey:e,isWritable:n,isSigner:t}}var Eo=[dt({pubkey:Er,isWritable:!1}),dt({pubkey:nn.programId,isWritable:!1}),dt({pubkey:_r,isWritable:!1})];function rn({publicKey:e,transformSol:t}){let n=on(e.toString());if(n instanceof E)return t&&n.equals(xe)?ie:n;if(t&&n.toString()===xe.toBase58())return ie;if(typeof n=="string"){if(n===E.default.toBase58())return E.default;try{return new E(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function on(e){try{return new E(e)}catch{return e}}var _o=new E("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Do=new E("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Mo=new E("SysvarRent111111111111111111111111111111111"),Ko=new E("SysvarC1ock11111111111111111111111111111111"),Oo=new E("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),vo=new E("Sysvar1nstructions1111111111111111111111111"),Fo=nn.programId,Wo=new E("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Vo=new E("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Uo=new E("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),qo=new E("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Go=new E("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ho=new E("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),jo=new E("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),zo=new E("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Yo=new E("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Zo=new E("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Xo=new E("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ie=new E("So11111111111111111111111111111111111111112"),xe=E.default;import{PublicKey as Dr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as sn}from"@solana/spl-token";var an={chainId:101,address:Dr.default.toBase58(),programId:sn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},$={chainId:101,address:"So11111111111111111111111111111111111111112",programId:sn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};var gt=class{constructor({mint:t,decimals:n,symbol:r,name:o,skipMint:i=!1,isToken2022:s=!1}){if(t===xe.toBase58()||t instanceof mt&&xe.equals(t)){this.decimals=$.decimals,this.symbol=$.symbol,this.name=$.name,this.mint=new mt($.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=o||t.toString().substring(0,6),this.mint=i?mt.default:rn({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},ge=gt;ge.WSOL=new gt(ee(_({},$),{mint:$.address}));import Ge from"big.js";import Or from"bn.js";import vr from"decimal.js-light";import Mr from"toformat";var Kr=Mr,Te=Kr;var qe=W("module/fraction"),ht=Te(Ge),Pe=Te(vr),Fr={[0]:Pe.ROUND_DOWN,[1]:Pe.ROUND_HALF_UP,[2]:Pe.ROUND_UP},Wr={[0]:Ge.roundDown,[1]:Ge.roundHalfUp,[2]:Ge.roundUp},R=class{constructor(t,n=new Or(1)){this.numerator=J(t),this.denominator=J(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new R(this.denominator,this.numerator)}add(t){let n=t instanceof R?t:new R(J(t));return this.denominator.eq(n.denominator)?new R(this.numerator.add(n.numerator),this.denominator):new R(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof R?t:new R(J(t));return this.denominator.eq(n.denominator)?new R(this.numerator.sub(n.numerator),this.denominator):new R(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof R?t:new R(J(t));return new R(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof R?t:new R(J(t));return new R(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||qe.logWithError(`${t} is not an integer.`),t<=0&&qe.logWithError(`${t} is not positive.`),Pe.set({precision:t+1,rounding:Fr[r]});let o=new Pe(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return o.toFormat(o.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||qe.logWithError(`${t} is not an integer.`),t<0&&qe.logWithError(`${t} is negative.`),ht.DP=t,ht.RM=Wr[r]||1,new ht(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Pi=W("Raydium_price");var bt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},He=bt;He.SOL=new bt(an);import Ur from"bn.js";var Ni=new R(new Ur(100));var qr=new H(0),Xi=new H(1),Ji=new H(2),Qi=new H(3),$i=new H(5),Gr=new H(10),es=new H(100),ts=new H(1e3),ns=new H(1e4),fn=9007199254740991;function J(e){let t=W("Raydium_parseBigNumberish");if(e instanceof H)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new H(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=fn||e<=-fn)&&t.logWithError(`BigNumberish number overflow: ${e}`),new H(String(e))):typeof e=="bigint"?new H(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new H(0))}var hs=W("Raydium_amount"),bs=Te(Hr);import{PublicKey as Be,sendAndConfirmTransaction as Tt,Transaction as Se,TransactionMessage as Le,VersionedTransaction as Ie}from"@solana/web3.js";import Qr from"axios";var K={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",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",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"};import{PublicKey as jr,ComputeBudgetProgram as pn,Transaction as mn,TransactionMessage as zr,Keypair as gn,VersionedTransaction as hn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Yr}from"@solana/spl-token";var dn=W("Raydium_txUtil"),bn=1644;function je(e){let t=[],n=[];return e.microLamports&&(t.push(pn.setComputeUnitPrice({microLamports:e.microLamports})),n.push(K.SetComputeUnitPrice)),e.units&&(t.push(pn.setComputeUnitLimit({units:e.units})),n.push(K.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function he(e){var t,n;try{return((n=await((t=e.getLatestBlockhash)==null?void 0:t.call(e)))==null?void 0:n.blockhash)||(await e.getRecentBlockhash()).blockhash}catch{return(await e.getRecentBlockhash()).blockhash}}function Zr(e,t){e.length<1&&dn.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&dn.logWithError(`no signers provided:, ${t.toString()}`);let n=new mn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...e);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<bn}catch{return!1}}function yn(e,t){let[n,r]=jr.findProgramAddressSync(e,t);return{publicKey:n,nonce:r}}function Ae({instructions:e,payer:t,signers:n}){return Zr(e,[t,...n])}function ke({instructions:e,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=gn.generate().publicKey.toString()}){let i=new zr({payerKey:t,recentBlockhash:r,instructions:e}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new hn(i).serialize()).toString("base64").length<bn}catch{return!1}}var Xr=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e);function le(e){let t=[];return e.forEach(n=>{n instanceof mn&&(n.recentBlockhash||(n.recentBlockhash=Yr.toBase58()),n.feePayer||(n.feePayer=gn.generate().publicKey));let r=n.serialize({requireAllSignatures:!1,verifySignatures:!1});n instanceof hn&&(r=Xr(r));let o=r.toString("base64");t.push(o)}),console.log("simulate tx string:",t),t}import{PublicKey as xn,AddressLookupTableAccount as ze}from"@solana/web3.js";import{PublicKey as Jr}from"@solana/web3.js";import{getTransferFeeConfig as Zs,unpackMint as Xs}from"@solana/spl-token";var yt=W("Raydium_accountInfo_util");async function wn(e,t,n){let{batchRequest:r,commitment:o="confirmed"}=_({batchRequest:!1},n),i=wt(t,100),s=new Array(i.length).fill([]);if(r){let a=i.map(f=>{let l=e._buildArgs([f.map(p=>p.toBase58())],o,"base64");return{methodName:"getMultipleAccounts",args:l}}),c=wt(a,10);s=(await(await Promise.all(c.map(async f=>await e._rpcBatchRequest(f)))).flat()).map(f=>(f.error&&yt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${f.error.message}`),f.result.value.map(l=>{if(l){let{data:p,executable:d,lamports:b,owner:m,rentEpoch:y}=l;return p.length!==2&&p[1]!=="base64"&&yt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:d,lamports:b,owner:new Jr(m),rentEpoch:y}}return null})))}else try{s=await Promise.all(i.map(a=>e.getMultipleAccountsInfo(a,o)))}catch(a){a instanceof Error&&yt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${a.message}`)}return s.flat()}async function xt({connection:e,address:t}){let n=await wn(e,[...new Set(t.map(o=>o.toString()))].map(o=>new xn(o))),r={};for(let o=0;o<t.length;o++){let i=n[o],s=t[o];if(!i)continue;let a=new ze({key:s,state:ze.deserialize(i.data)});r[s.toString()]=a,Ye[s.toString()]=a}return r}var Ye={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new ze({key:new xn("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:ze.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"))})};var Ze=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}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 r;let t=(await Qr.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=je(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:o=[],endInstructionTypes:i=[],lookupTableAddress:s=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...o),this.endInstructionTypes.push(...i),this.lookupTableAddress.push(...s.filter(a=>a!==Be.default.toString())),this}async versionBuild({txVersion:t,extInfo:n}){return t===0?await this.buildV0(_({},n||{})):this.build(n)}build(t){let n=new Se;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async()=>{var o;let r=await he(this.connection);if(n.recentBlockhash=r,this.signers.length&&n.sign(...this.signers),le([n]),(o=this.owner)!=null&&o.isKeyPair)return{txId:await Tt(this.connection,n,this.signers.find(i=>i.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer]),signedTx:n};if(this.signAllTransactions){let i=await this.signAllTransactions([n]);return{txId:await this.connection.sendRawTransaction(i[0].serialize(),{skipPreflight:!0}),signedTx:i[0]}}throw new Error("please connect wallet first")},extInfo:t||{}}}buildMultiTx(t){let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:o}=this.build(r),i=n.filter(u=>u.transaction.instructions.length>0),s=[o,...i.map(u=>u.transaction)],a=[this.signers,...i.map(u=>u.signers)],c=[...this.instructionTypes,...i.map(u=>u.instructionTypes).flat()];return{builder:this,transactions:s,signers:a,instructionTypes:c,execute:async u=>{var d;let{sequentially:f,onTxUpdate:l}=u||{},p=await he(this.connection);if((d=this.owner)!=null&&d.isKeyPair)return{txIds:await await Promise.all(s.map(async(b,m)=>(b.recentBlockhash=p,await Tt(this.connection,b,a[m].find(y=>y.publicKey.equals(this.owner.publicKey))?a[m]:[...a[m],this.owner.signer])))),signedTxs:s};if(this.signAllTransactions){let b=s.map((y,h)=>(y.recentBlockhash=p,a[h].length&&y.sign(...a[h]),y));le(b);let m=await this.signAllTransactions(b);if(f){let y=0,h=[],T=async()=>{if(!m[y])return;let w=await this.connection.sendRawTransaction(m[y].serialize(),{skipPreflight:!0});h.push({txId:w,status:"sent",signedTx:m[y]}),l==null||l([...h]),y++,this.connection.onSignature(w,L=>{let S=h.findIndex(I=>I.txId===w);S>-1&&(h[S].status=L.err?"error":"success"),l==null||l([...h]),L.err||T()},"processed"),this.connection.getSignatureStatus(w)};return await T(),{txIds:h.map(w=>w.txId),signedTxs:m}}else{let y=[];for(let h=0;h<m.length;h+=1){let T=await this.connection.sendRawTransaction(m[h].serialize(),{skipPreflight:!0});y.push(T)}return{txIds:y,signedTxs:m}}}throw new Error("please connect wallet first")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){let p=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:o}=p,i=ce(p,["lookupTableCache","lookupTableAddress","forerunCreate"]),s=_(_({},Ye),n),a=Array.from(new Set([...r,...this.lookupTableAddress])),c=[];for(let d of a)s[d]===void 0&&c.push(new Be(d));let u=await xt({connection:this.connection,address:c});for(let[d,b]of Object.entries(u))s[d]=b;let f=new Le({payerKey:this.feePayer,recentBlockhash:o?Be.default.toBase58():await he(this.connection),instructions:[...this.allInstructions]}).compileToV0Message(Object.values(s)),l=new Ie(f);return l.sign(this.signers),{builder:this,transaction:l,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async()=>{var d;if(le([l]),(d=this.owner)!=null&&d.isKeyPair){this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))||l.sign([this.owner.signer]);let b=await this.connection.sendTransaction(l,{skipPreflight:!0}),{lastValidBlockHeight:m,blockhash:y}=await this.connection.getLatestBlockhash();return await this.connection.confirmTransaction({blockhash:y,lastValidBlockHeight:m,signature:b},"confirmed"),{txId:b,signedTx:l}}if(this.signAllTransactions){let b=await this.signAllTransactions([l]);return{txId:await this.connection.sendTransaction(b[0],{skipPreflight:!0}),signedTx:b[0]}}throw new Error("please connect wallet first")},extInfo:i||{}}}async buildV0MultiTx(t){let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:o}=await this.buildV0(r),i=n.filter(u=>u.builder.instructions.length>0),s=[o,...i.map(u=>u.transaction)],a=[this.signers,...i.map(u=>u.signers)],c=[...this.instructionTypes,...i.map(u=>u.instructionTypes).flat()];return s.forEach(async(u,f)=>{u.sign(a[f])}),{builder:this,transactions:s,signers:a,instructionTypes:c,buildProps:r,execute:async u=>{var p;le(s);let{sequentially:f,onTxUpdate:l}=u||{};if((p=this.owner)!=null&&p.isKeyPair){let{lastValidBlockHeight:d,blockhash:b}=await this.connection.getLatestBlockhash();return s.forEach((m,y)=>{a[y].find(h=>h.publicKey.equals(this.owner.publicKey))||m.sign([this.owner.signer])}),{txIds:await Promise.all(s.map(async m=>{let y=await this.connection.sendTransaction(m);return await this.connection.confirmTransaction({blockhash:b,lastValidBlockHeight:d,signature:y},"confirmed"),y})),signedTxs:s}}if(this.signAllTransactions){let d=await this.signAllTransactions(s);if(f){let b=0,m=[],y=async()=>{if(!d[b])return;let h=await this.connection.sendTransaction(d[b],{skipPreflight:!0});m.push({txId:h,status:"sent",signedTx:d[b]}),l==null||l([...m]),b++,this.connection.onSignature(h,T=>{let w=m.findIndex(L=>L.txId===h);w>-1&&(m[w].status=T.err?"error":"success"),l==null||l([...m]),T.err||y()},"processed"),this.connection.getSignatureStatus(h)};return y(),{txIds:[],signedTxs:d}}else{let b=[];for(let m=0;m<d.length;m+=1){let y=await this.connection.sendTransaction(d[m],{skipPreflight:!0});b.push(y)}return{txIds:b,signedTxs:d}}}throw new Error("please connect wallet first")},extInfo:r||{}}}async sizeCheckBuild(t){let u=t||{},{computeBudgetConfig:n}=u,r=ce(u,["computeBudgetConfig"]),o=n?je(n):{instructions:[],instructionTypes:[]},i=this.signers.reduce((f,l)=>ee(_({},f),{[l.publicKey.toBase58()]:l}),{}),s=[],a=[],c=[];if(this.allInstructions.forEach(f=>{let l=[...c,f],p=n?[...o.instructions,...l]:l,b=[...new Set(l.map(m=>m.keys.filter(y=>y.isSigner).map(y=>y.pubkey.toString())).flat()).values()].map(m=>new Be(m));if(c.length<12&&Ae({instructions:p,payer:this.feePayer,signers:b})||Ae({instructions:l,payer:this.feePayer,signers:b}))c.push(f);else{if(c.length===0)throw Error("item ins too big");Ae({instructions:n?[...o.instructions,...c]:[...c],payer:this.feePayer,signers:b})?s.push(new Se().add(...o.instructions,...c)):s.push(new Se().add(...c)),a.push(Array.from(new Set(c.map(m=>m.keys.filter(y=>y.isSigner).map(y=>y.pubkey.toString())).flat())).map(m=>i[m]).filter(m=>m!==void 0)),c=[f]}}),c.length>0){let l=[...new Set(c.map(p=>p.keys.filter(d=>d.isSigner).map(d=>d.pubkey.toString())).flat()).values()].map(p=>i[p]).filter(p=>p!==void 0);Ae({instructions:n?[...o.instructions,...c]:[...c],payer:this.feePayer,signers:l.map(p=>p.publicKey)})?s.push(new Se().add(...o.instructions,...c)):s.push(new Se().add(...c)),a.push(l)}return s.forEach(f=>f.feePayer=this.feePayer),{builder:this,transactions:s,signers:a,instructionTypes:this.instructionTypes,execute:async f=>{var b;let{sequentially:l,onTxUpdate:p}=f||{},d=await he(this.connection);if(s.forEach(async(m,y)=>{m.recentBlockhash=d,a[y].length&&m.sign(...a[y])}),le(s),(b=this.owner)!=null&&b.isKeyPair)return{txIds:await Promise.all(s.map(async(m,y)=>await Tt(this.connection,m,a[y].find(h=>h.publicKey.equals(this.owner.publicKey))?a[y]:[...a[y],this.owner.signer]))),signedTxs:s};if(this.signAllTransactions){let m=await this.signAllTransactions(s);if(l){let y=0,h=[],T=async()=>{if(!m[y])return;let w=await this.connection.sendRawTransaction(m[y].serialize(),{skipPreflight:!0});h.push({txId:w,status:"sent",signedTx:m[y]}),p==null||p([...h]),y++,this.connection.onSignature(w,L=>{let S=h.findIndex(I=>I.txId===w);S>-1&&(h[S].status=L.err?"error":"success"),p==null||p([...h]),L.err||T()},"processed"),this.connection.getSignatureStatus(w)};return await T(),{txIds:h.map(w=>w.txId),signedTxs:m}}else{let y=[];for(let h=0;h<m.length;h+=1){let T=await this.connection.sendRawTransaction(m[h].serialize(),{skipPreflight:!0});y.push(T)}return{txIds:y,signedTxs:m}}}throw new Error("please connect wallet first")},extInfo:r||{}}}async sizeCheckBuildV0(t){let y=t||{},{computeBudgetConfig:n,lookupTableCache:r={},lookupTableAddress:o=[]}=y,i=ce(y,["computeBudgetConfig","lookupTableCache","lookupTableAddress"]),s=_(_({},Ye),r),a=Array.from(new Set([...this.lookupTableAddress,...o])),c=[];for(let h of a)s[h]===void 0&&c.push(new Be(h));let u=await xt({connection:this.connection,address:c});for(let[h,T]of Object.entries(u))s[h]=T;let f=n?je(n):{instructions:[],instructionTypes:[]},l=await he(this.connection),p=this.signers.reduce((h,T)=>ee(_({},h),{[T.publicKey.toBase58()]:T}),{}),d=[],b=[],m=[];if(this.allInstructions.forEach(h=>{let T=[...m,h],w=n?[...f.instructions,...T]:T;if(m.length<12&&ke({instructions:w,payer:this.feePayer,lookupTableAddressAccount:s})||ke({instructions:T,payer:this.feePayer,lookupTableAddressAccount:s}))m.push(h);else{if(m.length===0)throw Error("item ins too big");let L={};for(let S of[...new Set(a)])s[S]!==void 0&&(L[S]=s[S]);if(n&&ke({instructions:[...f.instructions,...m],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let S=new Le({payerKey:this.feePayer,recentBlockhash:l,instructions:[...f.instructions,...m]}).compileToV0Message(Object.values(s));d.push(new Ie(S))}else{let S=new Le({payerKey:this.feePayer,recentBlockhash:l,instructions:[...m]}).compileToV0Message(Object.values(s));d.push(new Ie(S))}b.push(Array.from(new Set(m.map(S=>S.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat())).map(S=>p[S]).filter(S=>S!==void 0)),m=[h]}}),m.length>0){let T=[...new Set(m.map(w=>w.keys.filter(L=>L.isSigner).map(L=>L.pubkey.toString())).flat()).values()].map(w=>p[w]).filter(w=>w!==void 0);if(n&&ke({instructions:[...f.instructions,...m],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let w=new Le({payerKey:this.feePayer,recentBlockhash:l,instructions:[...f.instructions,...m]}).compileToV0Message(Object.values(s));d.push(new Ie(w))}else{let w=new Le({payerKey:this.feePayer,recentBlockhash:l,instructions:[...m]}).compileToV0Message(Object.values(s));d.push(new Ie(w))}b.push(T)}return{builder:this,transactions:d,buildProps:t,signers:b,instructionTypes:this.instructionTypes,execute:async h=>{var L;let{sequentially:T,onTxUpdate:w}=h||{};if(d.map(async(S,I)=>{b[I].length&&S.sign(b[I])}),le(d),(L=this.owner)!=null&&L.isKeyPair){let{lastValidBlockHeight:S,blockhash:I}=await this.connection.getLatestBlockhash();return d.forEach((O,U)=>{b[U].find(j=>j.publicKey.equals(this.owner.publicKey))||O.sign([this.owner.signer])}),{txIds:await Promise.all(d.map(async O=>{let U=await this.connection.sendTransaction(O);return await this.connection.confirmTransaction({blockhash:I,lastValidBlockHeight:S,signature:U},"confirmed"),U})),signedTxs:d}}if(this.signAllTransactions){let S=await this.signAllTransactions(d);if(T){let I=0,O=[],U=async()=>{if(!S[I])return;let j=await this.connection.sendTransaction(S[I],{skipPreflight:!0});O.push({txId:j,status:"sent",signedTx:S[I]}),w==null||w([...O]),I++,this.connection.onSignature(j,fe=>{let q=O.findIndex(pe=>pe.txId===j);q>-1&&(O[q].status=fe.err?"error":"success"),w==null||w([...O]),fe.err||U()},"processed"),this.connection.getSignatureStatus(j)};return U(),{txIds:[],signedTxs:S}}else{let I=[];for(let O=0;O<S.length;O+=1){let U=await this.connection.sendTransaction(S[O],{skipPreflight:!0});I.push(U)}return{txIds:I,signedTxs:S}}}throw new Error("please connect wallet first")},extInfo:i||{}}}};function wt(e,t=1,n=[]){let r=[...e];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}import{PublicKey as D}from"@solana/web3.js";var wa=new D("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),xa=new D("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ta=new D("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Pa=new D("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Aa=new D("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),ka=new D("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Ba=new D("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Sa=new D("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),La=new D("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ia=new D("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ca=new D("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Na=new D("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ra=new D("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ea=new D("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),_a=new D("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Da=new D("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Ma=new D("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ka=new D("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),Oa=new D("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),va=new D("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2");import{PublicKey as $r}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as eo}from"@solana/spl-token";function Xe(e,t,n){return yn([e.toBuffer(),(n!=null?n:eo).toBuffer(),t.toBuffer()],new $r("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import Ha from"bn.js";var Pt=(...e)=>e.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),Ce=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=W(n)}createTxBuilder(t){return this.scope.checkOwner(),new Ze({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,owner:this.scope.owner,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(Pt(t))}logInfo(...t){this.logger.info(Pt(t))}logAndCreateError(...t){let n=Pt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{createInitializeAccountInstruction as go,createCloseAccountInstruction as ho,createTransferInstruction as bo,TOKEN_PROGRAM_ID as be}from"@solana/spl-token";import{PublicKey as yo,SystemProgram as wo}from"@solana/web3.js";import xo from"bn.js";import{PublicKey as Nn,Keypair as lo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as fo}from"@solana/spl-token";import po from"bn.js";import{PublicKey as io}from"@solana/web3.js";import Pn,{isBN as mc}from"bn.js";import{bits as gu,BitStructure as hu,blob as to,Blob as bu,cstr as yu,f32 as wu,f32be as xu,f64 as Tu,f64be as Pu,greedy as Au,Layout as no,ns64 as ku,ns64be as Bu,nu64 as Su,nu64be as Lu,offset as Iu,s16 as Cu,s16be as Nu,s24 as Ru,s24be as Eu,s32 as _u,s32be as Du,s40 as Mu,s40be as Ku,s48 as Ou,s48be as vu,s8 as Fu,seq as Wu,struct as Vu,Structure as ro,u16 as Uu,u16be as qu,u24 as Gu,u24be as Hu,u32 as ju,u32be as zu,u40 as Yu,u40be as Zu,u48 as Xu,u48be as Ju,u8 as Qu,UInt as oo,union as $u,Union as ec,unionLayoutDiscriminator as tc,utf8 as nc}from"@solana/buffer-layout";var At=no,Tn=ro;var kt=oo;var Bt=to;var St=class extends At{constructor(n,r,o){super(n,o);this.blob=Bt(n),this.signed=r}decode(n,r=0){let o=new Pn(this.blob.decode(n,r),10,"le");return this.signed?o.fromTwos(this.span*8).clone():o}encode(n,r,o=0){return typeof n=="number"&&(n=new Pn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,o)}};function An(e){return new kt(1,e)}function Je(e){return new kt(4,e)}function Qe(e){return new St(8,!1,e)}var Lt=class extends At{constructor(n,r,o,i){super(n.span,i);this.layout=n,this.decoder=r,this.encoder=o}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,o){return this.layout.encode(this.encoder(n),r,o)}getSpan(n,r){return this.layout.getSpan(n,r)}};function Ne(e){return new Lt(Bt(32),t=>new io(t),t=>t.toBuffer(),e)}var It=class extends Tn{decode(t,n){return super.decode(t,n)}};function kn(e,t,n){return new It(e,t,n)}var Re=kn([Ne("mint"),Ne("owner"),Qe("amount"),Je("delegateOption"),Ne("delegate"),An("state"),Je("isNativeOption"),Qe("isNative"),Qe("delegatedAmount"),Je("closeAuthorityOption"),Ne("closeAuthority")]);function so(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}function Ct(e,...t){if(!so(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 Nt(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 Bn(e,t){Ct(e);let n=t.outputLen;if(e.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}var et=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Z=(e,t)=>e<<32-t|e>>>t;var Pc=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ao(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function Rt(e){return typeof e=="string"&&(e=ao(e)),Ct(e),e}var $e=class{clone(){return this._cloneInto()}},Ac={}.toString;function Sn(e){let t=r=>e().update(Rt(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function uo(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);let o=BigInt(32),i=BigInt(4294967295),s=Number(n>>o&i),a=Number(n&i),c=r?4:0,u=r?0:4;e.setUint32(t+c,s,r),e.setUint32(t+u,a,r)}var Ln=(e,t,n)=>e&t^~e&n,In=(e,t,n)=>e&t^e&n^t&n,tt=class extends $e{constructor(t,n,r,o){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=et(this.buffer)}update(t){Nt(this);let{view:n,buffer:r,blockLen:o}=this;t=Rt(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=et(t);for(;o<=i-s;s+=o)this.process(c,s);continue}r.set(t.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===o&&(this.process(n,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Nt(this),Bn(t,this),this.finished=!0;let{buffer:n,view:r,blockLen:o,isLE:i}=this,{pos:s}=this;n[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>o-s&&(this.process(r,0),s=0);for(let l=s;l<o;l++)n[l]=0;uo(r,o-8,BigInt(this.length*8),i),this.process(r,0);let a=et(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)a.setUint32(4*l,f[l],i)}digest(){let{buffer:t,outputLen:n}=this;this.digestInto(t);let r=t.slice(0,n);return this.destroy(),r}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:n,buffer:r,length:o,finished:i,destroyed:s,pos:a}=this;return t.length=o,t.pos=a,t.finished=i,t.destroyed=s,o%n&&t.buffer.set(r),t}};var co=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]),se=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ae=new Uint32Array(64),Et=class extends tt{constructor(){super(64,32,8,!1),this.A=se[0]|0,this.B=se[1]|0,this.C=se[2]|0,this.D=se[3]|0,this.E=se[4]|0,this.F=se[5]|0,this.G=se[6]|0,this.H=se[7]|0}get(){let{A:t,B:n,C:r,D:o,E:i,F:s,G:a,H:c}=this;return[t,n,r,o,i,s,a,c]}set(t,n,r,o,i,s,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=o|0,this.E=i|0,this.F=s|0,this.G=a|0,this.H=c|0}process(t,n){for(let l=0;l<16;l++,n+=4)ae[l]=t.getUint32(n,!1);for(let l=16;l<64;l++){let p=ae[l-15],d=ae[l-2],b=Z(p,7)^Z(p,18)^p>>>3,m=Z(d,17)^Z(d,19)^d>>>10;ae[l]=m+ae[l-7]+b+ae[l-16]|0}let{A:r,B:o,C:i,D:s,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let p=Z(a,6)^Z(a,11)^Z(a,25),d=f+p+Ln(a,c,u)+co[l]+ae[l]|0,m=(Z(r,2)^Z(r,13)^Z(r,22))+In(r,o,i)|0;f=u,u=c,c=a,a=s+d|0,s=i,i=o,o=r,r=d+m|0}r=r+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,f=f+this.H|0,this.set(r,o,i,s,a,c,u,f)}roundClean(){ae.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Cn=Sn(()=>new Et);var Wc=W("Raydium_Util");function Rn({owner:e,solAccountResp:t,tokenAccountResp:n}){let r=[],o=[];for(let{pubkey:i,account:s}of n.value){let a=Re.decode(s.data),{mint:c,amount:u}=a;r.push({publicKey:i,mint:c,amount:u,isAssociated:Xe(e,c,s.owner).publicKey.equals(i),isNative:!1,programId:s.owner}),o.push({pubkey:i,accountInfo:a,programId:s.owner})}return t&&r.push({mint:Nn.default,amount:new po(t.lamports),isNative:!0,programId:t.owner}),{tokenAccounts:r,tokenAccountRawInfos:o}}function nt({fromPublicKey:e,programId:t=fo}){let n=lo.generate().publicKey.toBase58().slice(0,32);return{publicKey:mo(e,n,t),seed:n}}function mo(e,t,n){let r=Buffer.concat([e.toBuffer(),Buffer.from(t),n.toBuffer()]),o=Cn(r);return new Nn(o)}function _t(e){let{mint:t,tokenAccount:n,owner:r,programId:o=be}=e;return go(n,t,r,o)}function Ee(e){let{tokenAccount:t,payer:n,multiSigners:r=[],owner:o,programId:i=be}=e;return ho(t,n,o,r,i)}async function rt(e){let{connection:t,amount:n,commitment:r,payer:o,owner:i,skipCloseAccount:s}=e,a=await t.getMinimumBalanceForRentExemption(Re.span,r),c=J(n).add(new xo(a)),u=nt({fromPublicKey:o,programId:be});return{addresses:{newAccount:u.publicKey},signers:[],instructions:[wo.createAccountWithSeed({fromPubkey:o,basePubkey:o,seed:u.seed,newAccountPubkey:u.publicKey,lamports:c.toNumber(),space:Re.span,programId:be}),_t({mint:new yo($.address),tokenAccount:u.publicKey,owner:i,programId:be})],instructionTypes:[K.CreateAccount,K.InitAccount],endInstructionTypes:s?[]:[K.CloseAccount],endInstructions:s?[]:[Ee({tokenAccount:u.publicKey,payer:o,owner:i})]}}function En({source:e,destination:t,owner:n,amount:r,multiSigners:o=[],tokenProgram:i=be}){return bo(e,t,n,BigInt(String(r)),o,i)}var Mt=class extends Ce{constructor(n){super(n);this._tokenAccounts=[];this._tokenAccountRawInfos=[];this._accountListener=[];this._clientOwnedToken=!1;let{tokenAccounts:r,tokenAccountRawInfos:o}=n;this._tokenAccounts=r||[],this._tokenAccountRawInfos=o||[],this._clientOwnedToken=!!(r||o)}get tokenAccounts(){return this._tokenAccounts}get tokenAccountRawInfos(){return this._tokenAccountRawInfos}updateTokenAccount({tokenAccounts:n,tokenAccountRawInfos:r}){return n&&(this._tokenAccounts=n),r&&(this._tokenAccountRawInfos=r),this._accountChangeListenerId&&this.scope.connection.removeAccountChangeListener(this._accountChangeListenerId),this._accountChangeListenerId=void 0,this._clientOwnedToken=!0,this}addAccountChangeListener(n){return this._accountListener.push(n),this}removeAccountChangeListener(n){return this._accountListener=this._accountListener.filter(r=>r!==n),this}getAssociatedTokenAccount(n,r){return Xe(this.scope.ownerPubKey,n,r).publicKey}async fetchWalletTokenAccounts(n){if(this._clientOwnedToken||!(n!=null&&n.forceUpdate)&&this._tokenAccounts.length)return{tokenAccounts:this._tokenAccounts,tokenAccountRawInfos:this._tokenAccountRawInfos};this.scope.checkOwner();let o=_(_({},{}),n),[i,s,a]=await Promise.all([this.scope.connection.getAccountInfo(this.scope.ownerPubKey,o.commitment),this.scope.connection.getTokenAccountsByOwner(this.scope.ownerPubKey,{programId:ue},o.commitment),this.scope.connection.getTokenAccountsByOwner(this.scope.ownerPubKey,{programId:To},o.commitment)]),{tokenAccounts:c,tokenAccountRawInfos:u}=Rn({owner:this.scope.ownerPubKey,solAccountResp:i,tokenAccountResp:{context:s.context,value:[...s.value,...a.value]}});return this._tokenAccounts=c,this._tokenAccountRawInfos=u,this._accountChangeListenerId&&this.scope.connection.removeAccountChangeListener(this._accountChangeListenerId),this._accountChangeListenerId=this.scope.connection.onAccountChange(this.scope.ownerPubKey,()=>this.fetchWalletTokenAccounts({forceUpdate:!0}),"confirmed"),{tokenAccounts:c,tokenAccountRawInfos:u}}async getCreatedTokenAccount({mint:n,programId:r=ue,associatedOnly:o=!0}){await this.fetchWalletTokenAccounts();let i=this._tokenAccounts.filter(({mint:a})=>a==null?void 0:a.equals(n)).sort((a,c)=>a.amount.lt(c.amount)?1:-1),s=this.getAssociatedTokenAccount(n,r);for(let a of i){let{publicKey:c}=a;if(c&&(!o||o&&s.equals(c)))return c}}async getOrCreateTokenAccount(n){var b,m,y;await this.fetchWalletTokenAccounts();let{mint:r,createInfo:o,associatedOnly:i,owner:s,notUseTokenAccount:a=!1,skipCloseAccount:c=!1,checkCreateATAOwner:u=!1}=n,f=new ot(n.tokenProgram||ue),l=this.getAssociatedTokenAccount(r,new ot(f)),p=(a?[]:this.tokenAccountRawInfos).filter(h=>h.accountInfo.mint.equals(r)&&(!i||h.pubkey.equals(l))).sort((h,T)=>h.accountInfo.amount.lt(T.accountInfo.amount)?1:-1);if(o===void 0||p.length>0)return p.length>0?{account:p[0].pubkey}:{};let d={instructions:[],endInstructions:[],signers:[],instructionTypes:[],endInstructionTypes:[]};if(i){let h=Dt(s,l,s,r,f);if(u){let T=await this.scope.connection.getAccountInfo(l);if(T===null)(b=d.instructions)==null||b.push(h),d.instructionTypes.push(K.CreateATA);else if(!(T.owner.equals(f)&&ye.decode(T.data).mint.equals(r)&&ye.decode(T.data).owner.equals(s)))throw Error(`create ata check error -> mint: ${r.toString()}, ata: ${l.toString()}`)}else d.instructions.push(h),d.instructionTypes.push(K.CreateATA);if(r.equals(ie)&&o.amount){let T=await rt({connection:this.scope.connection,owner:this.scope.ownerPubKey,payer:o.payer||this.scope.ownerPubKey,amount:(m=o.amount)!=null?m:0,skipCloseAccount:c});d.instructions.push(...T.instructions||[]),d.endInstructions.push(...T.endInstructions||[]),d.instructionTypes.push(...T.instructionTypes||[]),d.endInstructionTypes.push(...T.endInstructionTypes||[]),o.amount&&(d.instructions.push(En({source:T.addresses.newAccount,destination:l,owner:this.scope.ownerPubKey,amount:o.amount,tokenProgram:ue})),d.instructionTypes.push(K.TransferAmount))}return c||(d.endInstructions.push(Ee({owner:s,payer:o.payer||s,tokenAccount:l,programId:f})),d.endInstructionTypes.push(K.CloseAccount)),{account:l,instructionParams:d}}else if(r.equals(ie)){let h=await rt({connection:this.scope.connection,owner:this.scope.ownerPubKey,payer:o.payer||this.scope.ownerPubKey,amount:(y=o.amount)!=null?y:0,skipCloseAccount:c});return d.instructions.push(...h.instructions||[]),d.endInstructions.push(...h.endInstructions||[]),d.signers.push(...h.signers||[]),d.instructionTypes.push(...h.instructionTypes||[]),d.endInstructionTypes.push(...h.endInstructionTypes||[]),{account:h.addresses.newAccount,instructionParams:d}}else{let h=nt({fromPublicKey:s,programId:f}),T=await this.scope.connection.getMinimumBalanceForRentExemption(ye.span),w=Po.createAccountWithSeed({fromPubkey:s,basePubkey:s,seed:h.seed,newAccountPubkey:h.publicKey,lamports:T,space:ye.span,programId:f});return d.instructions.push(w,_t({mint:r,tokenAccount:h.publicKey,owner:this.scope.ownerPubKey,programId:f})),d.instructionTypes.push(K.CreateAccount),d.instructionTypes.push(K.InitAccount),c||(d.endInstructions.push(Ee({owner:s,payer:o.payer||s,tokenAccount:h.publicKey,programId:f})),d.endInstructionTypes.push(K.CloseAccount)),{account:h.publicKey,instructionParams:d}}}async checkOrCreateAta({mint:n,programId:r=ue,autoUnwrapWSOLToSOL:o}){var c;await this.fetchWalletTokenAccounts();let i=(c=this.scope.account.tokenAccounts.find(({mint:u})=>(u==null?void 0:u.toBase58())===n.toBase58()))==null?void 0:c.publicKey,s=this.scope.ownerPubKey,a={};if(!i){let u=this.getAssociatedTokenAccount(n,r),f=await Dt(s,u,s,n,r);a.instructions=[f],a.instructionTypes=[K.CreateATA],i=u}return o&&ie.toBase58()===n.toBase58()&&(a.endInstructions=[Ee({owner:s,payer:s,tokenAccount:i,programId:r})],a.endInstructionTypes=[K.CloseAccount]),{pubKey:i,newInstructions:a}}async handleTokenAccount(n){let{side:r,amount:o,mint:i,programId:s=ue,tokenAccount:a,payer:c=this.scope.ownerPubKey,bypassAssociatedCheck:u,skipCloseAccount:f,checkCreateATAOwner:l}=n,p=this.getAssociatedTokenAccount(i,s);if(new ot(ie).equals(i)){let d=await rt({connection:this.scope.connection,owner:this.scope.ownerPubKey,payer:c,amount:o,skipCloseAccount:f});return _({tokenAccount:d.addresses.newAccount},d)}else if(!a||r==="out"&&!p.equals(a)&&!u){let d=[],b=Dt(this.scope.ownerPubKey,p,this.scope.ownerPubKey,i,s);if(l){let m=await this.scope.connection.getAccountInfo(p);if(m===null)d.push(b);else if(!(m.owner.equals(ue)&&ye.decode(m.data).mint.equals(i)&&ye.decode(m.data).owner.equals(this.scope.ownerPubKey)))throw Error(`create ata check error -> mint: ${i.toString()}, ata: ${p.toString()}`)}else d.push(b);return{tokenAccount:p,instructions:d,instructionTypes:[K.CreateATA]}}return{tokenAccount:a}}async processTokenAccount(n){let{mint:r,programId:o=ue,amount:i,useSOLBalance:s,handleTokenAccount:a}=n,c,u=this.createTxBuilder();if(r.equals(new ot(ie))&&s){let f=await this.handleTokenAccount({side:"in",amount:i||0,mint:r,bypassAssociatedCheck:!0,programId:o}),{tokenAccount:p}=f,d=ce(f,["tokenAccount"]);c=p,u.addInstruction(d)}else if(c=await this.getCreatedTokenAccount({mint:r,associatedOnly:!1,programId:o}),!c&&a){let l=await this.scope.account.handleTokenAccount({side:"in",amount:0,mint:r,bypassAssociatedCheck:!0,programId:o}),{tokenAccount:p}=l,d=ce(l,["tokenAccount"]);c=p,u.addInstruction(d)}return _({tokenAccount:c},u.AllTxData)}};export{Mt as default};
2
2
  /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
3
3
  //# sourceMappingURL=account.mjs.map