@raydium-io/raydium-sdk-v2 0.2.6-alpha → 0.2.7-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 (100) 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/{api-c81dd6be.d.ts → api-92e9adc3.d.ts} +3 -3
  5. package/lib/common/accountInfo.d.ts +1 -1
  6. package/lib/common/bignumber.d.ts +1 -1
  7. package/lib/common/constant.d.ts +1 -1
  8. package/lib/common/fractionUtil.d.ts +1 -1
  9. package/lib/common/index.d.ts +1 -1
  10. package/lib/common/transfer.d.ts +1 -1
  11. package/lib/common/txTool/txTool.d.ts +1 -1
  12. package/lib/common/txTool/txUtils.d.ts +1 -1
  13. package/lib/common/utility.d.ts +1 -1
  14. package/lib/index.d.ts +3 -3
  15. package/lib/index.js +1 -1
  16. package/lib/index.js.map +1 -1
  17. package/lib/index.mjs +1 -1
  18. package/lib/index.mjs.map +1 -1
  19. package/lib/module/amount.d.ts +1 -1
  20. package/lib/module/fraction.d.ts +1 -1
  21. package/lib/module/index.d.ts +1 -1
  22. package/lib/module/percent.d.ts +1 -1
  23. package/lib/module/price.d.ts +1 -1
  24. package/lib/raydium/account/account.d.ts +3 -3
  25. package/lib/raydium/account/index.d.ts +1 -1
  26. package/lib/raydium/account/instruction.d.ts +1 -1
  27. package/lib/raydium/account/types.d.ts +1 -1
  28. package/lib/raydium/account/util.d.ts +1 -1
  29. package/lib/raydium/clmm/clmm.d.ts +3 -3
  30. package/lib/raydium/clmm/index.d.ts +3 -3
  31. package/lib/raydium/clmm/instrument.d.ts +2 -2
  32. package/lib/raydium/clmm/layout.d.ts +5 -5
  33. package/lib/raydium/clmm/type.d.ts +2 -2
  34. package/lib/raydium/clmm/utils/math.d.ts +2 -2
  35. package/lib/raydium/clmm/utils/pool.d.ts +2 -2
  36. package/lib/raydium/clmm/utils/position.d.ts +2 -2
  37. package/lib/raydium/clmm/utils/tick.d.ts +2 -2
  38. package/lib/raydium/clmm/utils/tickQuery.d.ts +2 -2
  39. package/lib/raydium/clmm/utils/tickarrayBitmap.d.ts +2 -2
  40. package/lib/raydium/cpmm/cpmm.d.ts +3 -3
  41. package/lib/raydium/cpmm/cpmm.js +1 -1
  42. package/lib/raydium/cpmm/cpmm.js.map +1 -1
  43. package/lib/raydium/cpmm/cpmm.mjs +1 -1
  44. package/lib/raydium/cpmm/cpmm.mjs.map +1 -1
  45. package/lib/raydium/cpmm/curve/calculator.d.ts +1 -1
  46. package/lib/raydium/cpmm/curve/constantProduct.d.ts +1 -1
  47. package/lib/raydium/cpmm/index.d.ts +1 -1
  48. package/lib/raydium/cpmm/instruction.d.ts +1 -1
  49. package/lib/raydium/cpmm/type.d.ts +1 -1
  50. package/lib/raydium/farm/config.d.ts +1 -1
  51. package/lib/raydium/farm/farm.d.ts +3 -3
  52. package/lib/raydium/farm/index.d.ts +1 -1
  53. package/lib/raydium/farm/instruction.d.ts +1 -1
  54. package/lib/raydium/farm/layout.d.ts +1 -1
  55. package/lib/raydium/farm/type.d.ts +1 -1
  56. package/lib/raydium/farm/util.d.ts +1 -1
  57. package/lib/raydium/ido/ido.d.ts +3 -3
  58. package/lib/raydium/ido/index.d.ts +3 -3
  59. package/lib/raydium/ido/instruction.d.ts +1 -1
  60. package/lib/raydium/ido/type.d.ts +1 -1
  61. package/lib/raydium/index.d.ts +3 -3
  62. package/lib/raydium/index.js +1 -1
  63. package/lib/raydium/index.js.map +1 -1
  64. package/lib/raydium/index.mjs +1 -1
  65. package/lib/raydium/index.mjs.map +1 -1
  66. package/lib/raydium/launchpad/curve/curve.d.ts +1 -1
  67. package/lib/raydium/launchpad/index.d.ts +3 -3
  68. package/lib/raydium/launchpad/launchpad.d.ts +3 -3
  69. package/lib/raydium/launchpad/layout.d.ts +2 -2
  70. package/lib/raydium/launchpad/pda.d.ts +1 -1
  71. package/lib/raydium/launchpad/type.d.ts +1 -1
  72. package/lib/raydium/liquidity/index.d.ts +1 -1
  73. package/lib/raydium/liquidity/instruction.d.ts +1 -1
  74. package/lib/raydium/liquidity/liquidity.d.ts +3 -3
  75. package/lib/raydium/liquidity/type.d.ts +1 -1
  76. package/lib/raydium/liquidity/utils.d.ts +1 -1
  77. package/lib/raydium/marketV2/createMarket.d.ts +3 -3
  78. package/lib/raydium/marketV2/index.d.ts +3 -3
  79. package/lib/raydium/moduleBase.d.ts +3 -3
  80. package/lib/raydium/raydium.d.ts +3 -3
  81. package/lib/raydium/raydium.js +1 -1
  82. package/lib/raydium/raydium.js.map +1 -1
  83. package/lib/raydium/raydium.mjs +1 -1
  84. package/lib/raydium/raydium.mjs.map +1 -1
  85. package/lib/raydium/token/constant.d.ts +1 -1
  86. package/lib/raydium/token/index.d.ts +1 -1
  87. package/lib/raydium/token/token.d.ts +3 -3
  88. package/lib/raydium/token/type.d.ts +1 -1
  89. package/lib/raydium/token/utils.d.ts +1 -1
  90. package/lib/raydium/tradeV2/index.d.ts +2 -2
  91. package/lib/raydium/tradeV2/instrument.d.ts +2 -2
  92. package/lib/raydium/tradeV2/trade.d.ts +3 -3
  93. package/lib/raydium/tradeV2/type.d.ts +2 -2
  94. package/lib/raydium/type.d.ts +1 -1
  95. package/lib/raydium/utils1216/index.d.ts +3 -3
  96. package/lib/raydium/utils1216/utils1216.d.ts +3 -3
  97. package/lib/{raydium-0ce2c946.d.ts → raydium-bd752ae1.d.ts} +2 -2
  98. package/lib/{type-dabc7a99.d.ts → type-f95c297a.d.ts} +1 -1
  99. package/package.json +1 -1
  100. package/src/raydium/cpmm/cpmm.ts +70 -65
@@ -1,2 +1,2 @@
1
- var ir=Object.defineProperty,rr=Object.defineProperties;var or=Object.getOwnPropertyDescriptors;var ht=Object.getOwnPropertySymbols;var Gn=Object.prototype.hasOwnProperty,Xn=Object.prototype.propertyIsEnumerable;var Un=(n,e,t)=>e in n?ir(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,U=(n,e)=>{for(var t in e||(e={}))Gn.call(e,t)&&Un(n,t,e[t]);if(ht)for(var t of ht(e))Xn.call(e,t)&&Un(n,t,e[t]);return n},z=(n,e)=>rr(n,or(e));var he=(n,e)=>{var t={};for(var i in n)Gn.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&ht)for(var i of ht(n))e.indexOf(i)<0&&Xn.call(n,i)&&(t[i]=n[i]);return t};import{PublicKey as B}from"@solana/web3.js";import{AccountLayout as Ps,NATIVE_MINT as en,TOKEN_PROGRAM_ID as ce,createAssociatedTokenAccountIdempotentInstruction as tr}from"@solana/spl-token";import ke from"bn.js";var Ue=9e15,Ne=1e9,tn="0123456789abcdef",xt="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",It="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",nn={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Ue,maxE:Ue,crypto:!1},jn,Be,V=!0,Ct="[DecimalError] ",Ke=Ct+"Invalid argument: ",Yn=Ct+"Precision limit exceeded",Qn=Ct+"crypto unavailable",Jn="[object Decimal]",oe=Math.floor,ee=Math.pow,sr=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,ar=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,ur=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,$n=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,be=1e7,v=7,cr=9007199254740991,lr=xt.length-1,rn=It.length-1,g={toStringTag:Jn};g.absoluteValue=g.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),R(n)};g.ceil=function(){return R(new this.constructor(this),this.e+1,2)};g.clampedTo=g.clamp=function(n,e){var t,i=this,o=i.constructor;if(n=new o(n),e=new o(e),!n.s||!e.s)return new o(NaN);if(n.gt(e))throw Error(Ke+e);return t=i.cmp(n),t<0?n:i.cmp(e)>0?e:new o(i)};g.comparedTo=g.cmp=function(n){var e,t,i,o,r=this,s=r.d,a=(n=new r.constructor(n)).d,c=r.s,u=n.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(r.e!==n.e)return r.e>n.e^c<0?1:-1;for(i=s.length,o=a.length,e=0,t=i<o?i:o;e<t;++e)if(s[e]!==a[e])return s[e]>a[e]^c<0?1:-1;return i===o?0:i>o^c<0?1:-1};g.cosine=g.cos=function(){var n,e,t=this,i=t.constructor;return t.d?t.d[0]?(n=i.precision,e=i.rounding,i.precision=n+Math.max(t.e,t.sd())+v,i.rounding=1,t=mr(i,ri(i,t)),i.precision=n,i.rounding=e,R(Be==2||Be==3?t.neg():t,n,e,!0)):new i(1):new i(NaN)};g.cubeRoot=g.cbrt=function(){var n,e,t,i,o,r,s,a,c,u,l=this,m=l.constructor;if(!l.isFinite()||l.isZero())return new m(l);for(V=!1,r=l.s*ee(l.s*l,1/3),!r||Math.abs(r)==1/0?(t=ie(l.d),n=l.e,(r=(n-t.length+1)%3)&&(t+=r==1||r==-2?"0":"00"),r=ee(t,1/3),n=oe((n+1)/3)-(n%3==(n<0?-1:2)),r==1/0?t="5e"+n:(t=r.toExponential(),t=t.slice(0,t.indexOf("e")+1)+n),i=new m(t),i.s=l.s):i=new m(r.toString()),s=(n=m.precision)+3;;)if(a=i,c=a.times(a).times(a),u=c.plus(l),i=X(u.plus(l).times(a),u.plus(c),s+2,1),ie(a.d).slice(0,s)===(t=ie(i.d)).slice(0,s))if(t=t.slice(s-3,s+1),t=="9999"||!o&&t=="4999"){if(!o&&(R(a,n+1,0),a.times(a).times(a).eq(l))){i=a;break}s+=4,o=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(R(i,n+1,1),e=!i.times(i).times(i).eq(l));break}return V=!0,R(i,n,m.rounding,e)};g.decimalPlaces=g.dp=function(){var n,e=this.d,t=NaN;if(e){if(n=e.length-1,t=(n-oe(this.e/v))*v,n=e[n],n)for(;n%10==0;n/=10)t--;t<0&&(t=0)}return t};g.dividedBy=g.div=function(n){return X(this,new this.constructor(n))};g.dividedToIntegerBy=g.divToInt=function(n){var e=this,t=e.constructor;return R(X(e,new t(n),0,1,1),t.precision,t.rounding)};g.equals=g.eq=function(n){return this.cmp(n)===0};g.floor=function(){return R(new this.constructor(this),this.e+1,3)};g.greaterThan=g.gt=function(n){return this.cmp(n)>0};g.greaterThanOrEqualTo=g.gte=function(n){var e=this.cmp(n);return e==1||e===0};g.hyperbolicCosine=g.cosh=function(){var n,e,t,i,o,r=this,s=r.constructor,a=new s(1);if(!r.isFinite())return new s(r.s?1/0:NaN);if(r.isZero())return a;t=s.precision,i=s.rounding,s.precision=t+Math.max(r.e,r.sd())+4,s.rounding=1,o=r.d.length,o<32?(n=Math.ceil(o/3),e=(1/Nt(4,n)).toString()):(n=16,e="2.3283064365386962890625e-10"),r=Ge(s,1,r.times(e),new s(1),!0);for(var c,u=n,l=new s(8);u--;)c=r.times(r),r=a.minus(c.times(l.minus(c.times(l))));return R(r,s.precision=t,s.rounding=i,!0)};g.hyperbolicSine=g.sinh=function(){var n,e,t,i,o=this,r=o.constructor;if(!o.isFinite()||o.isZero())return new r(o);if(e=r.precision,t=r.rounding,r.precision=e+Math.max(o.e,o.sd())+4,r.rounding=1,i=o.d.length,i<3)o=Ge(r,2,o,o,!0);else{n=1.4*Math.sqrt(i),n=n>16?16:n|0,o=o.times(1/Nt(5,n)),o=Ge(r,2,o,o,!0);for(var s,a=new r(5),c=new r(16),u=new r(20);n--;)s=o.times(o),o=o.times(a.plus(s.times(c.times(s).plus(u))))}return r.precision=e,r.rounding=t,R(o,e,t,!0)};g.hyperbolicTangent=g.tanh=function(){var n,e,t=this,i=t.constructor;return t.isFinite()?t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+7,i.rounding=1,X(t.sinh(),t.cosh(),i.precision=n,i.rounding=e)):new i(t.s)};g.inverseCosine=g.acos=function(){var n,e=this,t=e.constructor,i=e.abs().cmp(1),o=t.precision,r=t.rounding;return i!==-1?i===0?e.isNeg()?fe(t,o,r):new t(0):new t(NaN):e.isZero()?fe(t,o+4,r).times(.5):(t.precision=o+6,t.rounding=1,e=e.asin(),n=fe(t,o+4,r).times(.5),t.precision=o,t.rounding=r,n.minus(e))};g.inverseHyperbolicCosine=g.acosh=function(){var n,e,t=this,i=t.constructor;return t.lte(1)?new i(t.eq(1)?0:NaN):t.isFinite()?(n=i.precision,e=i.rounding,i.precision=n+Math.max(Math.abs(t.e),t.sd())+4,i.rounding=1,V=!1,t=t.times(t).minus(1).sqrt().plus(t),V=!0,i.precision=n,i.rounding=e,t.ln()):new i(t)};g.inverseHyperbolicSine=g.asinh=function(){var n,e,t=this,i=t.constructor;return!t.isFinite()||t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+2*Math.max(Math.abs(t.e),t.sd())+6,i.rounding=1,V=!1,t=t.times(t).plus(1).sqrt().plus(t),V=!0,i.precision=n,i.rounding=e,t.ln())};g.inverseHyperbolicTangent=g.atanh=function(){var n,e,t,i,o=this,r=o.constructor;return o.isFinite()?o.e>=0?new r(o.abs().eq(1)?o.s/0:o.isZero()?o:NaN):(n=r.precision,e=r.rounding,i=o.sd(),Math.max(i,n)<2*-o.e-1?R(new r(o),n,e,!0):(r.precision=t=i-o.e,o=X(o.plus(1),new r(1).minus(o),t+n,1),r.precision=n+4,r.rounding=1,o=o.ln(),r.precision=n,r.rounding=e,o.times(.5))):new r(NaN)};g.inverseSine=g.asin=function(){var n,e,t,i,o=this,r=o.constructor;return o.isZero()?new r(o):(e=o.abs().cmp(1),t=r.precision,i=r.rounding,e!==-1?e===0?(n=fe(r,t+4,i).times(.5),n.s=o.s,n):new r(NaN):(r.precision=t+6,r.rounding=1,o=o.div(new r(1).minus(o.times(o)).sqrt().plus(1)).atan(),r.precision=t,r.rounding=i,o.times(2)))};g.inverseTangent=g.atan=function(){var n,e,t,i,o,r,s,a,c,u=this,l=u.constructor,m=l.precision,d=l.rounding;if(u.isFinite()){if(u.isZero())return new l(u);if(u.abs().eq(1)&&m+4<=rn)return s=fe(l,m+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(m+4<=rn)return s=fe(l,m+4,d).times(.5),s.s=u.s,s}for(l.precision=a=m+10,l.rounding=1,t=Math.min(28,a/v+2|0),n=t;n;--n)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(V=!1,e=Math.ceil(a/v),i=1,c=u.times(u),s=new l(u),o=u;n!==-1;)if(o=o.times(c),r=s.minus(o.div(i+=2)),o=o.times(c),s=r.plus(o.div(i+=2)),s.d[e]!==void 0)for(n=e;s.d[n]===r.d[n]&&n--;);return t&&(s=s.times(2<<t-1)),V=!0,R(s,l.precision=m,l.rounding=d,!0)};g.isFinite=function(){return!!this.d};g.isInteger=g.isInt=function(){return!!this.d&&oe(this.e/v)>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(n){return this.cmp(n)<0};g.lessThanOrEqualTo=g.lte=function(n){return this.cmp(n)<1};g.logarithm=g.log=function(n){var e,t,i,o,r,s,a,c,u=this,l=u.constructor,m=l.precision,d=l.rounding,p=5;if(n==null)n=new l(10),e=!0;else{if(n=new l(n),t=n.d,n.s<0||!t||!t[0]||n.eq(1))return new l(NaN);e=n.eq(10)}if(t=u.d,u.s<0||!t||!t[0]||u.eq(1))return new l(t&&!t[0]?-1/0:u.s!=1?NaN:t?0:1/0);if(e)if(t.length>1)r=!0;else{for(o=t[0];o%10===0;)o/=10;r=o!==1}if(V=!1,a=m+p,s=Ce(u,a),i=e?St(l,a+10):Ce(n,a),c=X(s,i,a,1),nt(c.d,o=m,d))do if(a+=10,s=Ce(u,a),i=e?St(l,a+10):Ce(n,a),c=X(s,i,a,1),!r){+ie(c.d).slice(o+1,o+15)+1==1e14&&(c=R(c,m+1,0));break}while(nt(c.d,o+=10,d));return V=!0,R(c,m,d)};g.minus=g.sub=function(n){var e,t,i,o,r,s,a,c,u,l,m,d,p=this,b=p.constructor;if(n=new b(n),!p.d||!n.d)return!p.s||!n.s?n=new b(NaN):p.d?n.s=-n.s:n=new b(n.d||p.s!==n.s?p:NaN),n;if(p.s!=n.s)return n.s=-n.s,p.plus(n);if(u=p.d,d=n.d,a=b.precision,c=b.rounding,!u[0]||!d[0]){if(d[0])n.s=-n.s;else if(u[0])n=new b(p);else return new b(c===3?-0:0);return V?R(n,a,c):n}if(t=oe(n.e/v),l=oe(p.e/v),u=u.slice(),r=l-t,r){for(m=r<0,m?(e=u,r=-r,s=d.length):(e=d,t=l,s=u.length),i=Math.max(Math.ceil(a/v),s)+2,r>i&&(r=i,e.length=1),e.reverse(),i=r;i--;)e.push(0);e.reverse()}else{for(i=u.length,s=d.length,m=i<s,m&&(s=i),i=0;i<s;i++)if(u[i]!=d[i]){m=u[i]<d[i];break}r=0}for(m&&(e=u,u=d,d=e,n.s=-n.s),s=u.length,i=d.length-s;i>0;--i)u[s++]=0;for(i=d.length;i>r;){if(u[--i]<d[i]){for(o=i;o&&u[--o]===0;)u[o]=be-1;--u[o],u[i]+=be}u[i]-=d[i]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--t;return u[0]?(n.d=u,n.e=Kt(u,t),V?R(n,a,c):n):new b(c===3?-0:0)};g.modulo=g.mod=function(n){var e,t=this,i=t.constructor;return n=new i(n),!t.d||!n.s||n.d&&!n.d[0]?new i(NaN):!n.d||t.d&&!t.d[0]?R(new i(t),i.precision,i.rounding):(V=!1,i.modulo==9?(e=X(t,n.abs(),0,3,1),e.s*=n.s):e=X(t,n,0,i.modulo,1),e=e.times(n),V=!0,t.minus(e))};g.naturalExponential=g.exp=function(){return on(this)};g.naturalLogarithm=g.ln=function(){return Ce(this)};g.negated=g.neg=function(){var n=new this.constructor(this);return n.s=-n.s,R(n)};g.plus=g.add=function(n){var e,t,i,o,r,s,a,c,u,l,m=this,d=m.constructor;if(n=new d(n),!m.d||!n.d)return!m.s||!n.s?n=new d(NaN):m.d||(n=new d(n.d||m.s===n.s?m:NaN)),n;if(m.s!=n.s)return n.s=-n.s,m.minus(n);if(u=m.d,l=n.d,a=d.precision,c=d.rounding,!u[0]||!l[0])return l[0]||(n=new d(m)),V?R(n,a,c):n;if(r=oe(m.e/v),i=oe(n.e/v),u=u.slice(),o=r-i,o){for(o<0?(t=u,o=-o,s=l.length):(t=l,i=r,s=u.length),r=Math.ceil(a/v),s=r>s?r+1:s+1,o>s&&(o=s,t.length=1),t.reverse();o--;)t.push(0);t.reverse()}for(s=u.length,o=l.length,s-o<0&&(o=s,t=l,l=u,u=t),e=0;o;)e=(u[--o]=u[o]+l[o]+e)/be|0,u[o]%=be;for(e&&(u.unshift(e),++i),s=u.length;u[--s]==0;)u.pop();return n.d=u,n.e=Kt(u,i),V?R(n,a,c):n};g.precision=g.sd=function(n){var e,t=this;if(n!==void 0&&n!==!!n&&n!==1&&n!==0)throw Error(Ke+n);return t.d?(e=ei(t.d),n&&t.e+1>e&&(e=t.e+1)):e=NaN,e};g.round=function(){var n=this,e=n.constructor;return R(new e(n),n.e+1,e.rounding)};g.sine=g.sin=function(){var n,e,t=this,i=t.constructor;return t.isFinite()?t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+Math.max(t.e,t.sd())+v,i.rounding=1,t=pr(i,ri(i,t)),i.precision=n,i.rounding=e,R(Be>2?t.neg():t,n,e,!0)):new i(NaN)};g.squareRoot=g.sqrt=function(){var n,e,t,i,o,r,s=this,a=s.d,c=s.e,u=s.s,l=s.constructor;if(u!==1||!a||!a[0])return new l(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(V=!1,u=Math.sqrt(+s),u==0||u==1/0?(e=ie(a),(e.length+c)%2==0&&(e+="0"),u=Math.sqrt(e),c=oe((c+1)/2)-(c<0||c%2),u==1/0?e="5e"+c:(e=u.toExponential(),e=e.slice(0,e.indexOf("e")+1)+c),i=new l(e)):i=new l(u.toString()),t=(c=l.precision)+3;;)if(r=i,i=r.plus(X(s,r,t+2,1)).times(.5),ie(r.d).slice(0,t)===(e=ie(i.d)).slice(0,t))if(e=e.slice(t-3,t+1),e=="9999"||!o&&e=="4999"){if(!o&&(R(r,c+1,0),r.times(r).eq(s))){i=r;break}t+=4,o=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(R(i,c+1,1),n=!i.times(i).eq(s));break}return V=!0,R(i,c,l.rounding,n)};g.tangent=g.tan=function(){var n,e,t=this,i=t.constructor;return t.isFinite()?t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+10,i.rounding=1,t=t.sin(),t.s=1,t=X(t,new i(1).minus(t.times(t)).sqrt(),n+10,0),i.precision=n,i.rounding=e,R(Be==2||Be==4?t.neg():t,n,e,!0)):new i(NaN)};g.times=g.mul=function(n){var e,t,i,o,r,s,a,c,u,l=this,m=l.constructor,d=l.d,p=(n=new m(n)).d;if(n.s*=l.s,!d||!d[0]||!p||!p[0])return new m(!n.s||d&&!d[0]&&!p||p&&!p[0]&&!d?NaN:!d||!p?n.s/0:n.s*0);for(t=oe(l.e/v)+oe(n.e/v),c=d.length,u=p.length,c<u&&(r=d,d=p,p=r,s=c,c=u,u=s),r=[],s=c+u,i=s;i--;)r.push(0);for(i=u;--i>=0;){for(e=0,o=c+i;o>i;)a=r[o]+p[i]*d[o-i-1]+e,r[o--]=a%be|0,e=a/be|0;r[o]=(r[o]+e)%be|0}for(;!r[--s];)r.pop();return e?++t:r.shift(),n.d=r,n.e=Kt(r,t),V?R(n,m.precision,m.rounding):n};g.toBinary=function(n,e){return an(this,2,n,e)};g.toDecimalPlaces=g.toDP=function(n,e){var t=this,i=t.constructor;return t=new i(t),n===void 0?t:(ae(n,0,Ne),e===void 0?e=i.rounding:ae(e,0,8),R(t,n+t.e+1,e))};g.toExponential=function(n,e){var t,i=this,o=i.constructor;return n===void 0?t=we(i,!0):(ae(n,0,Ne),e===void 0?e=o.rounding:ae(e,0,8),i=R(new o(i),n+1,e),t=we(i,!0,n+1)),i.isNeg()&&!i.isZero()?"-"+t:t};g.toFixed=function(n,e){var t,i,o=this,r=o.constructor;return n===void 0?t=we(o):(ae(n,0,Ne),e===void 0?e=r.rounding:ae(e,0,8),i=R(new r(o),n+o.e+1,e),t=we(i,!1,n+i.e+1)),o.isNeg()&&!o.isZero()?"-"+t:t};g.toFraction=function(n){var e,t,i,o,r,s,a,c,u,l,m,d,p=this,b=p.d,f=p.constructor;if(!b)return new f(p);if(u=t=new f(1),i=c=new f(0),e=new f(i),r=e.e=ei(b)-p.e-1,s=r%v,e.d[0]=ee(10,s<0?v+s:s),n==null)n=r>0?e:u;else{if(a=new f(n),!a.isInt()||a.lt(u))throw Error(Ke+a);n=a.gt(e)?r>0?e:u:a}for(V=!1,a=new f(ie(b)),l=f.precision,f.precision=r=b.length*v*2;m=X(a,e,0,1,1),o=t.plus(m.times(i)),o.cmp(n)!=1;)t=i,i=o,o=u,u=c.plus(m.times(o)),c=o,o=e,e=a.minus(m.times(o)),a=o;return o=X(n.minus(t),i,0,1,1),c=c.plus(o.times(u)),t=t.plus(o.times(i)),c.s=u.s=p.s,d=X(u,i,r,1).minus(p).abs().cmp(X(c,t,r,1).minus(p).abs())<1?[u,i]:[c,t],f.precision=l,V=!0,d};g.toHexadecimal=g.toHex=function(n,e){return an(this,16,n,e)};g.toNearest=function(n,e){var t=this,i=t.constructor;if(t=new i(t),n==null){if(!t.d)return t;n=new i(1),e=i.rounding}else{if(n=new i(n),e===void 0?e=i.rounding:ae(e,0,8),!t.d)return n.s?t:n;if(!n.d)return n.s&&(n.s=t.s),n}return n.d[0]?(V=!1,t=X(t,n,0,e,1).times(n),V=!0,R(t)):(n.s=t.s,t=n),t};g.toNumber=function(){return+this};g.toOctal=function(n,e){return an(this,8,n,e)};g.toPower=g.pow=function(n){var e,t,i,o,r,s,a=this,c=a.constructor,u=+(n=new c(n));if(!a.d||!n.d||!a.d[0]||!n.d[0])return new c(ee(+a,u));if(a=new c(a),a.eq(1))return a;if(i=c.precision,r=c.rounding,n.eq(1))return R(a,i,r);if(e=oe(n.e/v),e>=n.d.length-1&&(t=u<0?-u:u)<=cr)return o=ti(c,a,t,i),n.s<0?new c(1).div(o):R(o,i,r);if(s=a.s,s<0){if(e<n.d.length-1)return new c(NaN);if((n.d[e]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return t=ee(+a,u),e=t==0||!isFinite(t)?oe(u*(Math.log("0."+ie(a.d))/Math.LN10+a.e+1)):new c(t+"").e,e>c.maxE+1||e<c.minE-1?new c(e>0?s/0:0):(V=!1,c.rounding=a.s=1,t=Math.min(12,(e+"").length),o=on(n.times(Ce(a,i+t)),i),o.d&&(o=R(o,i+5,1),nt(o.d,i,r)&&(e=i+10,o=R(on(n.times(Ce(a,e+t)),e),e+5,1),+ie(o.d).slice(i+1,i+15)+1==1e14&&(o=R(o,i+1,0)))),o.s=s,V=!0,c.rounding=r,R(o,i,r))};g.toPrecision=function(n,e){var t,i=this,o=i.constructor;return n===void 0?t=we(i,i.e<=o.toExpNeg||i.e>=o.toExpPos):(ae(n,1,Ne),e===void 0?e=o.rounding:ae(e,0,8),i=R(new o(i),n,e),t=we(i,n<=i.e||i.e<=o.toExpNeg,n)),i.isNeg()&&!i.isZero()?"-"+t:t};g.toSignificantDigits=g.toSD=function(n,e){var t=this,i=t.constructor;return n===void 0?(n=i.precision,e=i.rounding):(ae(n,1,Ne),e===void 0?e=i.rounding:ae(e,0,8)),R(new i(t),n,e)};g.toString=function(){var n=this,e=n.constructor,t=we(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()&&!n.isZero()?"-"+t:t};g.truncated=g.trunc=function(){return R(new this.constructor(this),this.e+1,1)};g.valueOf=g.toJSON=function(){var n=this,e=n.constructor,t=we(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()?"-"+t:t};function ie(n){var e,t,i,o=n.length-1,r="",s=n[0];if(o>0){for(r+=s,e=1;e<o;e++)i=n[e]+"",t=v-i.length,t&&(r+=Se(t)),r+=i;s=n[e],i=s+"",t=v-i.length,t&&(r+=Se(t))}else if(s===0)return"0";for(;s%10===0;)s/=10;return r+s}function ae(n,e,t){if(n!==~~n||n<e||n>t)throw Error(Ke+n)}function nt(n,e,t,i){var o,r,s,a;for(r=n[0];r>=10;r/=10)--e;return--e<0?(e+=v,o=0):(o=Math.ceil((e+1)/v),e%=v),r=ee(10,v-e),a=n[o]%r|0,i==null?e<3?(e==0?a=a/100|0:e==1&&(a=a/10|0),s=t<4&&a==99999||t>3&&a==49999||a==5e4||a==0):s=(t<4&&a+1==r||t>3&&a+1==r/2)&&(n[o+1]/r/100|0)==ee(10,e-2)-1||(a==r/2||a==0)&&(n[o+1]/r/100|0)==0:e<4?(e==0?a=a/1e3|0:e==1?a=a/100|0:e==2&&(a=a/10|0),s=(i||t<4)&&a==9999||!i&&t>3&&a==4999):s=((i||t<4)&&a+1==r||!i&&t>3&&a+1==r/2)&&(n[o+1]/r/1e3|0)==ee(10,e-3)-1,s}function Bt(n,e,t){for(var i,o=[0],r,s=0,a=n.length;s<a;){for(r=o.length;r--;)o[r]*=e;for(o[0]+=tn.indexOf(n.charAt(s++)),i=0;i<o.length;i++)o[i]>t-1&&(o[i+1]===void 0&&(o[i+1]=0),o[i+1]+=o[i]/t|0,o[i]%=t)}return o.reverse()}function mr(n,e){var t,i,o;if(e.isZero())return e;i=e.d.length,i<32?(t=Math.ceil(i/3),o=(1/Nt(4,t)).toString()):(t=16,o="2.3283064365386962890625e-10"),n.precision+=t,e=Ge(n,1,e.times(o),new n(1));for(var r=t;r--;){var s=e.times(e);e=s.times(s).minus(s).times(8).plus(1)}return n.precision-=t,e}var X=function(){function n(i,o,r){var s,a=0,c=i.length;for(i=i.slice();c--;)s=i[c]*o+a,i[c]=s%r|0,a=s/r|0;return a&&i.unshift(a),i}function e(i,o,r,s){var a,c;if(r!=s)c=r>s?1:-1;else for(a=c=0;a<r;a++)if(i[a]!=o[a]){c=i[a]>o[a]?1:-1;break}return c}function t(i,o,r,s){for(var a=0;r--;)i[r]-=a,a=i[r]<o[r]?1:0,i[r]=a*s+i[r]-o[r];for(;!i[0]&&i.length>1;)i.shift()}return function(i,o,r,s,a,c){var u,l,m,d,p,b,f,y,k,A,P,w,h,T,x,I,K,S,M,E,W=i.constructor,q=i.s==o.s?1:-1,D=i.d,O=o.d;if(!D||!D[0]||!O||!O[0])return new W(!i.s||!o.s||(D?O&&D[0]==O[0]:!O)?NaN:D&&D[0]==0||!O?q*0:q/0);for(c?(p=1,l=i.e-o.e):(c=be,p=v,l=oe(i.e/p)-oe(o.e/p)),M=O.length,K=D.length,k=new W(q),A=k.d=[],m=0;O[m]==(D[m]||0);m++);if(O[m]>(D[m]||0)&&l--,r==null?(T=r=W.precision,s=W.rounding):a?T=r+(i.e-o.e)+1:T=r,T<0)A.push(1),b=!0;else{if(T=T/p+2|0,m=0,M==1){for(d=0,O=O[0],T++;(m<K||d)&&T--;m++)x=d*c+(D[m]||0),A[m]=x/O|0,d=x%O|0;b=d||m<K}else{for(d=c/(O[0]+1)|0,d>1&&(O=n(O,d,c),D=n(D,d,c),M=O.length,K=D.length),I=M,P=D.slice(0,M),w=P.length;w<M;)P[w++]=0;E=O.slice(),E.unshift(0),S=O[0],O[1]>=c/2&&++S;do d=0,u=e(O,P,M,w),u<0?(h=P[0],M!=w&&(h=h*c+(P[1]||0)),d=h/S|0,d>1?(d>=c&&(d=c-1),f=n(O,d,c),y=f.length,w=P.length,u=e(f,P,y,w),u==1&&(d--,t(f,M<y?E:O,y,c))):(d==0&&(u=d=1),f=O.slice()),y=f.length,y<w&&f.unshift(0),t(P,f,w,c),u==-1&&(w=P.length,u=e(O,P,M,w),u<1&&(d++,t(P,M<w?E:O,w,c))),w=P.length):u===0&&(d++,P=[0]),A[m++]=d,u&&P[0]?P[w++]=D[I]||0:(P=[D[I]],w=1);while((I++<K||P[0]!==void 0)&&T--);b=P[0]!==void 0}A[0]||A.shift()}if(p==1)k.e=l,jn=b;else{for(m=1,d=A[0];d>=10;d/=10)m++;k.e=m+l*p-1,R(k,a?r+k.e+1:r,s,b)}return k}}();function R(n,e,t,i){var o,r,s,a,c,u,l,m,d,p=n.constructor;e:if(e!=null){if(m=n.d,!m)return n;for(o=1,a=m[0];a>=10;a/=10)o++;if(r=e-o,r<0)r+=v,s=e,l=m[d=0],c=l/ee(10,o-s-1)%10|0;else if(d=Math.ceil((r+1)/v),a=m.length,d>=a)if(i){for(;a++<=d;)m.push(0);l=c=0,o=1,r%=v,s=r-v+1}else break e;else{for(l=a=m[d],o=1;a>=10;a/=10)o++;r%=v,s=r-v+o,c=s<0?0:l/ee(10,o-s-1)%10|0}if(i=i||e<0||m[d+1]!==void 0||(s<0?l:l%ee(10,o-s-1)),u=t<4?(c||i)&&(t==0||t==(n.s<0?3:2)):c>5||c==5&&(t==4||i||t==6&&(r>0?s>0?l/ee(10,o-s):0:m[d-1])%10&1||t==(n.s<0?8:7)),e<1||!m[0])return m.length=0,u?(e-=n.e+1,m[0]=ee(10,(v-e%v)%v),n.e=-e||0):m[0]=n.e=0,n;if(r==0?(m.length=d,a=1,d--):(m.length=d+1,a=ee(10,v-r),m[d]=s>0?(l/ee(10,o-s)%ee(10,s)|0)*a:0),u)for(;;)if(d==0){for(r=1,s=m[0];s>=10;s/=10)r++;for(s=m[0]+=a,a=1;s>=10;s/=10)a++;r!=a&&(n.e++,m[0]==be&&(m[0]=1));break}else{if(m[d]+=a,m[d]!=be)break;m[d--]=0,a=1}for(r=m.length;m[--r]===0;)m.pop()}return V&&(n.e>p.maxE?(n.d=null,n.e=NaN):n.e<p.minE&&(n.e=0,n.d=[0])),n}function we(n,e,t){if(!n.isFinite())return ii(n);var i,o=n.e,r=ie(n.d),s=r.length;return e?(t&&(i=t-s)>0?r=r.charAt(0)+"."+r.slice(1)+Se(i):s>1&&(r=r.charAt(0)+"."+r.slice(1)),r=r+(n.e<0?"e":"e+")+n.e):o<0?(r="0."+Se(-o-1)+r,t&&(i=t-s)>0&&(r+=Se(i))):o>=s?(r+=Se(o+1-s),t&&(i=t-o-1)>0&&(r=r+"."+Se(i))):((i=o+1)<s&&(r=r.slice(0,i)+"."+r.slice(i)),t&&(i=t-s)>0&&(o+1===s&&(r+="."),r+=Se(i))),r}function Kt(n,e){var t=n[0];for(e*=v;t>=10;t/=10)e++;return e}function St(n,e,t){if(e>lr)throw V=!0,t&&(n.precision=t),Error(Yn);return R(new n(xt),e,1,!0)}function fe(n,e,t){if(e>rn)throw Error(Yn);return R(new n(It),e,t,!0)}function ei(n){var e=n.length-1,t=e*v+1;if(e=n[e],e){for(;e%10==0;e/=10)t--;for(e=n[0];e>=10;e/=10)t++}return t}function Se(n){for(var e="";n--;)e+="0";return e}function ti(n,e,t,i){var o,r=new n(1),s=Math.ceil(i/v+4);for(V=!1;;){if(t%2&&(r=r.times(e),Zn(r.d,s)&&(o=!0)),t=oe(t/2),t===0){t=r.d.length-1,o&&r.d[t]===0&&++r.d[t];break}e=e.times(e),Zn(e.d,s)}return V=!0,r}function Hn(n){return n.d[n.d.length-1]&1}function ni(n,e,t){for(var i,o=new n(e[0]),r=0;++r<e.length;)if(i=new n(e[r]),i.s)o[t](i)&&(o=i);else{o=i;break}return o}function on(n,e){var t,i,o,r,s,a,c,u=0,l=0,m=0,d=n.constructor,p=d.rounding,b=d.precision;if(!n.d||!n.d[0]||n.e>17)return new d(n.d?n.d[0]?n.s<0?0:1/0:1:n.s?n.s<0?0:n:0/0);for(e==null?(V=!1,c=b):c=e,a=new d(.03125);n.e>-2;)n=n.times(a),m+=5;for(i=Math.log(ee(2,m))/Math.LN10*2+5|0,c+=i,t=r=s=new d(1),d.precision=c;;){if(r=R(r.times(n),c,1),t=t.times(++l),a=s.plus(X(r,t,c,1)),ie(a.d).slice(0,c)===ie(s.d).slice(0,c)){for(o=m;o--;)s=R(s.times(s),c,1);if(e==null)if(u<3&&nt(s.d,c-i,p,u))d.precision=c+=10,t=r=a=new d(1),l=0,u++;else return R(s,d.precision=b,p,V=!0);else return d.precision=b,s}s=a}}function Ce(n,e){var t,i,o,r,s,a,c,u,l,m,d,p=1,b=10,f=n,y=f.d,k=f.constructor,A=k.rounding,P=k.precision;if(f.s<0||!y||!y[0]||!f.e&&y[0]==1&&y.length==1)return new k(y&&!y[0]?-1/0:f.s!=1?NaN:y?0:f);if(e==null?(V=!1,l=P):l=e,k.precision=l+=b,t=ie(y),i=t.charAt(0),Math.abs(r=f.e)<15e14){for(;i<7&&i!=1||i==1&&t.charAt(1)>3;)f=f.times(n),t=ie(f.d),i=t.charAt(0),p++;r=f.e,i>1?(f=new k("0."+t),r++):f=new k(i+"."+t.slice(1))}else return u=St(k,l+2,P).times(r+""),f=Ce(new k(i+"."+t.slice(1)),l-b).plus(u),k.precision=P,e==null?R(f,P,A,V=!0):f;for(m=f,c=s=f=X(f.minus(1),f.plus(1),l,1),d=R(f.times(f),l,1),o=3;;){if(s=R(s.times(d),l,1),u=c.plus(X(s,new k(o),l,1)),ie(u.d).slice(0,l)===ie(c.d).slice(0,l))if(c=c.times(2),r!==0&&(c=c.plus(St(k,l+2,P).times(r+""))),c=X(c,new k(p),l,1),e==null)if(nt(c.d,l-b,A,a))k.precision=l+=b,u=s=f=X(m.minus(1),m.plus(1),l,1),d=R(f.times(f),l,1),o=a=1;else return R(c,k.precision=P,A,V=!0);else return k.precision=P,c;c=u,o+=2}}function ii(n){return String(n.s*n.s/0)}function sn(n,e){var t,i,o;for((t=e.indexOf("."))>-1&&(e=e.replace(".","")),(i=e.search(/e/i))>0?(t<0&&(t=i),t+=+e.slice(i+1),e=e.substring(0,i)):t<0&&(t=e.length),i=0;e.charCodeAt(i)===48;i++);for(o=e.length;e.charCodeAt(o-1)===48;--o);if(e=e.slice(i,o),e){if(o-=i,n.e=t=t-i-1,n.d=[],i=(t+1)%v,t<0&&(i+=v),i<o){for(i&&n.d.push(+e.slice(0,i)),o-=v;i<o;)n.d.push(+e.slice(i,i+=v));e=e.slice(i),i=v-e.length}else i-=o;for(;i--;)e+="0";n.d.push(+e),V&&(n.e>n.constructor.maxE?(n.d=null,n.e=NaN):n.e<n.constructor.minE&&(n.e=0,n.d=[0]))}else n.e=0,n.d=[0];return n}function dr(n,e){var t,i,o,r,s,a,c,u,l;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),$n.test(e))return sn(n,e)}else if(e==="Infinity"||e==="NaN")return+e||(n.s=NaN),n.e=NaN,n.d=null,n;if(ar.test(e))t=16,e=e.toLowerCase();else if(sr.test(e))t=2;else if(ur.test(e))t=8;else throw Error(Ke+e);for(r=e.search(/p/i),r>0?(c=+e.slice(r+1),e=e.substring(2,r)):e=e.slice(2),r=e.indexOf("."),s=r>=0,i=n.constructor,s&&(e=e.replace(".",""),a=e.length,r=a-r,o=ti(i,new i(t),r,r*2)),u=Bt(e,t,be),l=u.length-1,r=l;u[r]===0;--r)u.pop();return r<0?new i(n.s*0):(n.e=Kt(u,l),n.d=u,V=!1,s&&(n=X(n,o,a*4)),c&&(n=n.times(Math.abs(c)<54?ee(2,c):it.pow(2,c))),V=!0,n)}function pr(n,e){var t,i=e.d.length;if(i<3)return e.isZero()?e:Ge(n,2,e,e);t=1.4*Math.sqrt(i),t=t>16?16:t|0,e=e.times(1/Nt(5,t)),e=Ge(n,2,e,e);for(var o,r=new n(5),s=new n(16),a=new n(20);t--;)o=e.times(e),e=e.times(r.plus(o.times(s.times(o).minus(a))));return e}function Ge(n,e,t,i,o){var r,s,a,c,u=1,l=n.precision,m=Math.ceil(l/v);for(V=!1,c=t.times(t),a=new n(i);;){if(s=X(a.times(c),new n(e++*e++),l,1),a=o?i.plus(s):i.minus(s),i=X(s.times(c),new n(e++*e++),l,1),s=a.plus(i),s.d[m]!==void 0){for(r=m;s.d[r]===a.d[r]&&r--;);if(r==-1)break}r=a,a=i,i=s,s=r,u++}return V=!0,s.d.length=m+1,s}function Nt(n,e){for(var t=n;--e;)t*=n;return t}function ri(n,e){var t,i=e.s<0,o=fe(n,n.precision,1),r=o.times(.5);if(e=e.abs(),e.lte(r))return Be=i?4:1,e;if(t=e.divToInt(o),t.isZero())Be=i?3:2;else{if(e=e.minus(t.times(o)),e.lte(r))return Be=Hn(t)?i?2:3:i?4:1,e;Be=Hn(t)?i?1:4:i?3:2}return e.minus(o).abs()}function an(n,e,t,i){var o,r,s,a,c,u,l,m,d,p=n.constructor,b=t!==void 0;if(b?(ae(t,1,Ne),i===void 0?i=p.rounding:ae(i,0,8)):(t=p.precision,i=p.rounding),!n.isFinite())l=ii(n);else{for(l=we(n),s=l.indexOf("."),b?(o=2,e==16?t=t*4-3:e==8&&(t=t*3-2)):o=e,s>=0&&(l=l.replace(".",""),d=new p(1),d.e=l.length-s,d.d=Bt(we(d),10,o),d.e=d.d.length),m=Bt(l,10,o),r=c=m.length;m[--c]==0;)m.pop();if(!m[0])l=b?"0p+0":"0";else{if(s<0?r--:(n=new p(n),n.d=m,n.e=r,n=X(n,d,t,i,0,o),m=n.d,r=n.e,u=jn),s=m[t],a=o/2,u=u||m[t+1]!==void 0,u=i<4?(s!==void 0||u)&&(i===0||i===(n.s<0?3:2)):s>a||s===a&&(i===4||u||i===6&&m[t-1]&1||i===(n.s<0?8:7)),m.length=t,u)for(;++m[--t]>o-1;)m[t]=0,t||(++r,m.unshift(1));for(c=m.length;!m[c-1];--c);for(s=0,l="";s<c;s++)l+=tn.charAt(m[s]);if(b){if(c>1)if(e==16||e==8){for(s=e==16?4:3,--c;c%s;c++)l+="0";for(m=Bt(l,o,e),c=m.length;!m[c-1];--c);for(s=1,l="1.";s<c;s++)l+=tn.charAt(m[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(r<0?"p":"p+")+r}else if(r<0){for(;++r;)l="0"+l;l="0."+l}else if(++r>c)for(r-=c;r--;)l+="0";else r<c&&(l=l.slice(0,r)+"."+l.slice(r))}l=(e==16?"0x":e==2?"0b":e==8?"0o":"")+l}return n.s<0?"-"+l:l}function Zn(n,e){if(n.length>e)return n.length=e,!0}function fr(n){return new this(n).abs()}function br(n){return new this(n).acos()}function yr(n){return new this(n).acosh()}function gr(n,e){return new this(n).plus(e)}function wr(n){return new this(n).asin()}function Pr(n){return new this(n).asinh()}function Ar(n){return new this(n).atan()}function kr(n){return new this(n).atanh()}function Tr(n,e){n=new this(n),e=new this(e);var t,i=this.precision,o=this.rounding,r=i+4;return!n.s||!e.s?t=new this(NaN):!n.d&&!e.d?(t=fe(this,r,1).times(e.s>0?.25:.75),t.s=n.s):!e.d||n.isZero()?(t=e.s<0?fe(this,i,o):new this(0),t.s=n.s):!n.d||e.isZero()?(t=fe(this,r,1).times(.5),t.s=n.s):e.s<0?(this.precision=r,this.rounding=1,t=this.atan(X(n,e,r,1)),e=fe(this,r,1),this.precision=i,this.rounding=o,t=n.s<0?t.minus(e):t.plus(e)):t=this.atan(X(n,e,r,1)),t}function hr(n){return new this(n).cbrt()}function Br(n){return R(n=new this(n),n.e+1,2)}function xr(n,e,t){return new this(n).clamp(e,t)}function Ir(n){if(!n||typeof n!="object")throw Error(Ct+"Object expected");var e,t,i,o=n.defaults===!0,r=["precision",1,Ne,"rounding",0,8,"toExpNeg",-Ue,0,"toExpPos",0,Ue,"maxE",0,Ue,"minE",-Ue,0,"modulo",0,9];for(e=0;e<r.length;e+=3)if(t=r[e],o&&(this[t]=nn[t]),(i=n[t])!==void 0)if(oe(i)===i&&i>=r[e+1]&&i<=r[e+2])this[t]=i;else throw Error(Ke+t+": "+i);if(t="crypto",o&&(this[t]=nn[t]),(i=n[t])!==void 0)if(i===!0||i===!1||i===0||i===1)if(i)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[t]=!0;else throw Error(Qn);else this[t]=!1;else throw Error(Ke+t+": "+i);return this}function Sr(n){return new this(n).cos()}function Cr(n){return new this(n).cosh()}function oi(n){var e,t,i;function o(r){var s,a,c,u=this;if(!(u instanceof o))return new o(r);if(u.constructor=o,zn(r)){u.s=r.s,V?!r.d||r.e>o.maxE?(u.e=NaN,u.d=null):r.e<o.minE?(u.e=0,u.d=[0]):(u.e=r.e,u.d=r.d.slice()):(u.e=r.e,u.d=r.d?r.d.slice():r.d);return}if(c=typeof r,c==="number"){if(r===0){u.s=1/r<0?-1:1,u.e=0,u.d=[0];return}if(r<0?(r=-r,u.s=-1):u.s=1,r===~~r&&r<1e7){for(s=0,a=r;a>=10;a/=10)s++;V?s>o.maxE?(u.e=NaN,u.d=null):s<o.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[r]):(u.e=s,u.d=[r]);return}else if(r*0!==0){r||(u.s=NaN),u.e=NaN,u.d=null;return}return sn(u,r.toString())}else if(c!=="string")throw Error(Ke+r);return(a=r.charCodeAt(0))===45?(r=r.slice(1),u.s=-1):(a===43&&(r=r.slice(1)),u.s=1),$n.test(r)?sn(u,r):dr(u,r)}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=oi,o.isDecimal=zn,o.abs=fr,o.acos=br,o.acosh=yr,o.add=gr,o.asin=wr,o.asinh=Pr,o.atan=Ar,o.atanh=kr,o.atan2=Tr,o.cbrt=hr,o.ceil=Br,o.clamp=xr,o.cos=Sr,o.cosh=Cr,o.div=Kr,o.exp=Nr,o.floor=Lr,o.hypot=Rr,o.ln=Mr,o.log=Or,o.log10=Er,o.log2=Fr,o.max=vr,o.min=Dr,o.mod=Wr,o.mul=Vr,o.pow=_r,o.random=qr,o.round=Ur,o.sign=Gr,o.sin=Xr,o.sinh=Hr,o.sqrt=Zr,o.sub=zr,o.sum=jr,o.tan=Yr,o.tanh=Qr,o.trunc=Jr,n===void 0&&(n={}),n&&n.defaults!==!0)for(i=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<i.length;)n.hasOwnProperty(t=i[e++])||(n[t]=this[t]);return o.config(n),o}function Kr(n,e){return new this(n).div(e)}function Nr(n){return new this(n).exp()}function Lr(n){return R(n=new this(n),n.e+1,3)}function Rr(){var n,e,t=new this(0);for(V=!1,n=0;n<arguments.length;)if(e=new this(arguments[n++]),e.d)t.d&&(t=t.plus(e.times(e)));else{if(e.s)return V=!0,new this(1/0);t=e}return V=!0,t.sqrt()}function zn(n){return n instanceof it||n&&n.toStringTag===Jn||!1}function Mr(n){return new this(n).ln()}function Or(n,e){return new this(n).log(e)}function Fr(n){return new this(n).log(2)}function Er(n){return new this(n).log(10)}function vr(){return ni(this,arguments,"lt")}function Dr(){return ni(this,arguments,"gt")}function Wr(n,e){return new this(n).mod(e)}function Vr(n,e){return new this(n).mul(e)}function _r(n,e){return new this(n).pow(e)}function qr(n){var e,t,i,o,r=0,s=new this(1),a=[];if(n===void 0?n=this.precision:ae(n,1,Ne),i=Math.ceil(n/v),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(i));r<i;)o=e[r],o>=429e7?e[r]=crypto.getRandomValues(new Uint32Array(1))[0]:a[r++]=o%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(i*=4);r<i;)o=e[r]+(e[r+1]<<8)+(e[r+2]<<16)+((e[r+3]&127)<<24),o>=214e7?crypto.randomBytes(4).copy(e,r):(a.push(o%1e7),r+=4);r=i/4}else throw Error(Qn);else for(;r<i;)a[r++]=Math.random()*1e7|0;for(i=a[--r],n%=v,i&&n&&(o=ee(10,v-n),a[r]=(i/o|0)*o);a[r]===0;r--)a.pop();if(r<0)t=0,a=[0];else{for(t=-1;a[0]===0;t-=v)a.shift();for(i=1,o=a[0];o>=10;o/=10)i++;i<v&&(t-=v-i)}return s.e=t,s.d=a,s}function Ur(n){return R(n=new this(n),n.e+1,this.rounding)}function Gr(n){return n=new this(n),n.d?n.d[0]?n.s:0*n.s:n.s||NaN}function Xr(n){return new this(n).sin()}function Hr(n){return new this(n).sinh()}function Zr(n){return new this(n).sqrt()}function zr(n,e){return new this(n).sub(e)}function jr(){var n=0,e=arguments,t=new this(e[n]);for(V=!1;t.s&&++n<e.length;)t=t.plus(e[n]);return V=!0,R(t,this.precision,this.rounding)}function Yr(n){return new this(n).tan()}function Qr(n){return new this(n).tanh()}function Jr(n){return R(n=new this(n),n.e+1,1)}g[Symbol.for("nodejs.util.inspect.custom")]=g.toString;g[Symbol.toStringTag]="Decimal";var it=g.constructor=oi(nn);xt=new it(xt);It=new it(It);var te=it;import Ro from"big.js";import Kc from"bn.js";import{get as si,set as $r}from"lodash";var un=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let t=e.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},ai={},eo={};function ne(n){let e=si(ai,n);if(!e){let t=si(eo,n);e=new un({name:n,logLevel:t}),$r(ai,n,e)}return e}import{PublicKey as ui}from"@solana/web3.js";import{MINT_SIZE as to,TOKEN_PROGRAM_ID as no,getTransferFeeConfig as io,unpackMint as ro}from"@solana/spl-token";var cn=ne("Raydium_accountInfo_util");async function rt(n,e,t){let{batchRequest:i,commitment:o="confirmed",chunkCount:r=100}=U({batchRequest:!1},t),s=ln(e,r),a=new Array(s.length).fill([]);if(i){let c=s.map(m=>{let d=n._buildArgs([m.map(p=>p.toBase58())],o,"base64");return{methodName:"getMultipleAccounts",args:d}}),u=ln(c,10);a=(await(await Promise.all(u.map(async m=>await n._rpcBatchRequest(m)))).flat()).map(m=>(m.error&&cn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${m.error.message}`),m.result.value.map(d=>{if(d){let{data:p,executable:b,lamports:f,owner:y,rentEpoch:k}=d;return p.length!==2&&p[1]!=="base64"&&cn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:b,lamports:f,owner:new ui(y),rentEpoch:k}}return null})))}else try{a=await Promise.all(s.map(c=>n.getMultipleAccountsInfo(c,o)))}catch(c){c instanceof Error&&cn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}async function Ee(n,e,t){let i=await rt(n,e.map(o=>o.pubkey),t);return e.map((o,r)=>z(U({},o),{accountInfo:i[r]}))}async function mn({connection:n,mints:e,config:t}){var r,s,a;if(e.length===0)return{};let i=await Ee(n,e.map(c=>({pubkey:ot(c)})),t),o={};for(let c of i){if(!c.accountInfo||c.accountInfo.data.length<to){console.log("invalid mint account",c.pubkey.toBase58());continue}let u=ro(c.pubkey,c.accountInfo,(r=c.accountInfo)==null?void 0:r.owner);o[c.pubkey.toString()]=z(U({},u),{programId:((s=c.accountInfo)==null?void 0:s.owner)||no,feeConfig:(a=io(u))!=null?a:void 0})}return o[ui.default.toBase58()]=o[ue.toBase58()],o}import st from"bn.js";var ci=9007199254740991;function Pe(n){let e=ne("Raydium_parseBigNumberish");if(n instanceof st)return n;if(typeof n=="string"){if(n.match(/^-?[0-9]+$/))return new st(n);e.logWithError(`invalid BigNumberish string: ${n}`)}return typeof n=="number"?(n%1&&e.logWithError(`BigNumberish number underflow: ${n}`),(n>=ci||n<=-ci)&&e.logWithError(`BigNumberish number overflow: ${n}`),new st(String(n))):typeof n=="bigint"?new st(n.toString()):(e.error(`invalid BigNumberish value: ${n}`),new st(0))}import{PublicKey as oo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as li}from"@solana/spl-token";var dn={chainId:101,address:oo.default.toBase58(),programId:li.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Le={chainId:101,address:"So11111111111111111111111111111111111111112",programId:li.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as bn}from"@solana/web3.js";import{PublicKey as Y,SystemProgram as mi,SYSVAR_RENT_PUBKEY as so}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ao}from"@solana/spl-token";function pn({pubkey:n,isSigner:e=!1,isWritable:t=!0}){return{pubkey:n,isWritable:t,isSigner:e}}var Us=[pn({pubkey:ao,isWritable:!1}),pn({pubkey:mi.programId,isWritable:!1}),pn({pubkey:so,isWritable:!1})];function fn({publicKey:n,transformSol:e}){let t=di(n.toString());if(t instanceof Y)return e&&t.equals(at)?ue:t;if(e&&t.toString()===at.toBase58())return ue;if(typeof t=="string"){if(t===Y.default.toBase58())return Y.default;try{return new Y(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function di(n){try{return new Y(n)}catch{return n}}var uo=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Lt=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Rt=new Y("SysvarRent111111111111111111111111111111111"),Gs=new Y("SysvarC1ock11111111111111111111111111111111"),Xe=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Xs=new Y("Sysvar1nstructions1111111111111111111111111"),pi=mi.programId,Hs=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Zs=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),zs=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),js=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ys=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Qs=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Js=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),$s=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ea=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ta=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),na=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ue=new Y("So11111111111111111111111111111111111111112"),at=Y.default;function ot(n){return fn({publicKey:n,transformSol:!0})}var yn=class{constructor({mint:e,decimals:t,symbol:i,name:o,skipMint:r=!1,isToken2022:s=!1}){if(e===at.toBase58()||e instanceof bn&&at.equals(e)){this.decimals=Le.decimals,this.symbol=Le.symbol,this.name=Le.name,this.mint=new bn(Le.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=i||e.toString().substring(0,6),this.name=o||e.toString().substring(0,6),this.mint=r?bn.default:fn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},Re=yn;Re.WSOL=new yn(z(U({},Le),{mint:Le.address}));var gn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=i}equals(e){return this===e}},Mt=gn;Mt.SOL=new gn(dn);import co from"toformat";var lo=co,ut=lo;import Ft from"big.js";import po from"bn.js";import fo from"decimal.js-light";var Ot=ne("module/fraction"),wn=ut(Ft),ct=ut(fo),bo={[0]:ct.ROUND_DOWN,[1]:ct.ROUND_HALF_UP,[2]:ct.ROUND_UP},yo={[0]:Ft.roundDown,[1]:Ft.roundHalfUp,[2]:Ft.roundUp},Z=class{constructor(e,t=new po(1)){this.numerator=Pe(e),this.denominator=Pe(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new Z(this.denominator,this.numerator)}add(e){let t=e instanceof Z?e:new Z(Pe(e));return this.denominator.eq(t.denominator)?new Z(this.numerator.add(t.numerator),this.denominator):new Z(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof Z?e:new Z(Pe(e));return this.denominator.eq(t.denominator)?new Z(this.numerator.sub(t.numerator),this.denominator):new Z(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof Z?e:new Z(Pe(e));return new Z(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof Z?e:new Z(Pe(e));return new Z(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},i=1){Number.isInteger(e)||Ot.logWithError(`${e} is not an integer.`),e<=0&&Ot.logWithError(`${e} is not positive.`),ct.set({precision:e+1,rounding:bo[i]});let o=new ct(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return o.toFormat(o.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},i=1){return Number.isInteger(e)||Ot.logWithError(`${e} is not an integer.`),e<0&&Ot.logWithError(`${e} is negative.`),wn.DP=e,wn.RM=yo[i]||1,new wn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};import go from"bn.js";var fi=new Z(new go(100)),le=class extends Z{toSignificant(e=5,t,i){return this.mul(fi).toSignificant(e,t,i)}toFixed(e=2,t,i){return this.mul(fi).toFixed(e,t,i)}};var Ka=ne("Raydium_price");function ln(n,e=1,t=[]){let i=[...n];if(e<=0)return t;for(;i.length;)t.push(i.splice(0,e));return t}import{PublicKey as Bo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as xo}from"@solana/spl-token";import{ComputeBudgetProgram as bi,Keypair as gi,PublicKey as wo,Transaction as wi,TransactionMessage as Po,VersionedTransaction as Pi}from"@solana/web3.js";var re={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as Ao}from"@solana/spl-token";var yi=ne("Raydium_txUtil"),Ai=1644;function vt(n){let e=[],t=[];return n.microLamports&&(e.push(bi.setComputeUnitPrice({microLamports:n.microLamports})),t.push(re.SetComputeUnitPrice)),n.units&&(e.push(bi.setComputeUnitLimit({units:n.units})),t.push(re.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function He(n,e){var i,o;let t=e!=null?e:"confirmed";return(o=await((i=n.getLatestBlockhash)==null?void 0:i.call(n,{commitment:t})))==null?void 0:o.blockhash}async function Dt(n,e){return n.getSignatureStatuses([e]),new Promise((t,i)=>{let o=setTimeout(i,6e4);n.onSignature(e,r=>{if(clearTimeout(o),!r.err){t("");return}i(Object.assign(r.err,{txId:e}))},"confirmed")})}function ko(n,e){n.length<1&&yi.logWithError(`no instructions provided: ${n.toString()}`),e.length<1&&yi.logWithError(`no signers provided:, ${e.toString()}`);let t=new wi;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...n);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Ai}catch{return!1}}function ye(n,e){let[t,i]=wo.findProgramAddressSync(n,e);return{publicKey:t,nonce:i}}function lt({instructions:n,payer:e,signers:t}){return ko(n,[e,...t])}function mt({instructions:n,payer:e,lookupTableAddressAccount:t,recentBlockhash:i=gi.generate().publicKey.toString()}){let r=new Po({payerKey:e,recentBlockhash:i,instructions:n}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Pi(r).serialize()).toString("base64").length<Ai}catch{return!1}}var To=n=>Buffer.isBuffer(n)?n:n instanceof Uint8Array?Buffer.from(n.buffer,n.byteOffset,n.byteLength):Buffer.from(n),ho=n=>{let e=n.serialize({requireAllSignatures:!1,verifySignatures:!1});n instanceof Pi&&(e=To(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function ve(n){let e=[];return n.forEach(t=>{t instanceof wi&&(t.recentBlockhash||(t.recentBlockhash=Ao.toBase58()),t.feePayer||(t.feePayer=gi.generate().publicKey)),e.push(ho(t))}),console.log("simulate tx string:",e),e}function me(n,e,t){return ye([n.toBuffer(),(t!=null?t:xo).toBuffer(),e.toBuffer()],new Bo("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as F}from"@solana/web3.js";var cu=new F("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),lu=new F("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),mu=new F("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),du=new F("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),pu=new F("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),fu=new F("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),bu=new F("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),yu=new F("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),gu=new F("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),wu=new F("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Io=new F("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),So=new F("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Co=new F("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Pu=new F("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Au=new F("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ku=new F("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Tu=new F("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),hu=new F("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Bu=new F("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),xu=new F("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),ki=new F("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ti=new F("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Iu=new F("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Wt=new F("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Vt=new F("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Su=new F("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Cu=new F("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Ku=new F("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Nu=new F("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Lu=new F("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Ru=new F("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Mu={OPEN_BOOK_PROGRAM:new F("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new F("Ray1111111111111111111111111111111111111111"),AMM_V4:new F("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new F("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new F("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new F("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new F("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new F("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new F("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new F("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new F("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new F("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:F.default,Router:new F("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new F("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new F("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new F("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new F("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new F("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new F("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new F("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new F("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new F("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new F("Ray1111111111111111111111111111111111111111")};import ge from"bn.js";var dt=1e4;function Ae(n,e,t,i){if(e===void 0)return{amount:n,fee:void 0,expirationTime:void 0};let o=z(U({},e),{olderTransferFee:{epoch:BigInt(e.olderTransferFee.epoch),maximumFee:BigInt(e.olderTransferFee.maximumFee),transferFeeBasisPoints:e.olderTransferFee.transferFeeBasisPoints},newerTransferFee:{epoch:BigInt(e.newerTransferFee.epoch),maximumFee:BigInt(e.newerTransferFee.maximumFee),transferFeeBasisPoints:e.newerTransferFee.transferFeeBasisPoints}}),r=t.epoch<o.newerTransferFee.epoch?o.olderTransferFee:o.newerTransferFee,s=new ge(r.maximumFee.toString()),a=t.epoch<o.newerTransferFee.epoch?(Number(o.newerTransferFee.epoch)*t.slotsInEpoch-t.absoluteSlot)*400/1e3:void 0;if(i)if(r.transferFeeBasisPoints===dt){let c=new ge(r.maximumFee.toString());return{amount:n.add(c),fee:c,expirationTime:a}}else{let c=Ze(n.mul(new ge(dt)),new ge(dt-r.transferFeeBasisPoints)),u=new ge(r.maximumFee.toString()),l=c.sub(n).gt(u)?n.add(u):c,m=Ze(l.mul(new ge(r.transferFeeBasisPoints)),new ge(dt)),d=m.gt(s)?s:m;return{amount:l,fee:d,expirationTime:a}}else{let c=Ze(n.mul(new ge(r.transferFeeBasisPoints)),new ge(dt)),u=c.gt(s)?s:c;return{amount:n,fee:u,expirationTime:a}}}function Ze(n,e){let{div:t,mod:i}=n.divmod(e);return i.gt(new ge(0))?t.add(new ge(1)):t}import{PublicKey as kn,AddressLookupTableAccount as je}from"@solana/web3.js";async function Tn({connection:n,address:e,cluster:t="mainnet"}){let i=await rt(n,[...new Set(e.map(r=>r.toString()))].map(r=>new kn(r))),o={};for(let r=0;r<e.length;r++){let s=i[r],a=e[r];if(!s)continue;let c=new je({key:a,state:je.deserialize(s.data)});o[a.toString()]=c,t==="devnet"?ze[a.toString()]=c:_t[a.toString()]=c}return o}var _t={AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU:new je({key:new kn("AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU"),state:je.deserialize(Buffer.from("AQAAAP//////////I1rcEwAAAAAvAQYwun9CU6c5Ikm2pAj+D9IEnCOR45nK+SFTGSdpd6J6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpBt324e51j94YQl285GzN2rYa/E2DuQ0n/r35KNihi/wFSlNQ+F3IgtYUpVZyeIopbd8eq6vQpgZ4iEky9O72oAVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvBkX2T9y7AHdNGviJAqQNtlDUDCnauQRWybsLji6nPM8Qkw5asQRvCdB3MbX6IEBwytOrpM32l4jQygKG9TKgR0vZScQ2AsM/IHeQ7RajUkyhuZdc8SGiqQz/7H34torNR/Wir3sl0ruUrVxJWEZfUg+QLNAxxODdBi53/OP7Ioil1cqeBM9dtZC3FLov4yyxWRM/wcGStyJX/QfTnLBAHqkqWotPKVlShCVQqpP9W5W1rOao65IMk5QuQ2kMIOxzDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu/YsA/yfEEFGcr8Z57VKDw8uQzpiru7g4lvjnfapW62W030syevD8k07SGoxUHiuT/ai7gAHWWhDsVmg/C63ajgpkH7Sn3GdutArDTfyqOkdqv4/IPC/EFFy7mGkfDd2C57N5a/4jC+BbmJy7wQaSEZr0CQU88lPtUxIVvzGjC95b8Ooss2TqmkrayGKofkPMGQn7Ux+9lfwBSNfxwH8NgbpqC/7LNlV4I7nCvsXf3p+ohQk9NrAJb2KAFpUqEIJ9ZBV7BYDzHF/ORKYlgtvPnXjudZQ6CEo5OzUDaNIomTCCsvhD16TxJjsbgne1kGnQPCFSoaxUbq2V1bPMFQ3VYP6wDZ9bKStCFKx9A3tNbwZFC5ZGAN83MFK7XoTy+OmmcFEr6rLOjfSuTfPvHJkSVxW6Qllwkl67XcBi5v00u2gQsbu+38sp+rd5pA/LvyWj4P94ZGZwc1tE2P88xekCLcAwZGb+UhFzL/7K26csOb57yM5bvF9xJrLEObOkAAAAAn+HWRkdcPKyFFMnVwEoD7vnD0jCKFIU1sImubYCxNTSVzsKpaQX+fzNxrLAI3L14JQnJx/D6Uk2LADIHGqnGELzjEbkBDAlaM77NkXMPfqXNLSveCkWI7UEgNs31WEWB6XHSYI/v5DklHOb4QTtDOR804PVbi3fjloZeLR2F8d4FuZmMMO7ck3Fnkn2zEMG5gOmqsygb6PjTitArVl52NhcSznTxVnguaIJxiZkAnurDmn3MWR0PC2GLghp2KJqHCc6QQ85odeIjFHKOlRlJyeSXVJmL8vb1UgOzsbJPVP8p6zM4M3C1Sd7uWIHP33G42AP2Zg8ucn/n6meQjjD266JgCWdxZD6PXs9CsnIeL7SSG0/6lGb9xfP0ZcWkCXB/3hjxHYVXjra/GPOeXGk0fLLKjCbk+mgs2w6d2oCwimBipTzuoZ30GiI8ij8VRzD5CzMWtu2m21eDBIfjGAEo4pQeNNonKcqzV/cleX8ySZLOHsz8PtBCrLqF+VkLm9hOzIT+6i/nIf6keR4GWKMOD4AvqfpjHoD4DuhBpz8P28+DxkGrDXXr/nr20x291VPvcTU/b+b+o2kC9G0kcXeTlLjU6a2TQXWlZ4gBUdBl1jgT7mObSTpLblNiXZsLkbmVXZwvFKXua5cUKlWed/w30skmEUraTuQqtqr5fHZPW9n57EmeTif6LjHL2YJFZkQU+TrJmFzqzmF4/b8OwrPQAprl8mX3q4LUIdAS/a+11B6DWD1Xk2++Sn94dLC4xjkO4Wtlw8c4XuzciVbepHOmnoWzVu/0y3KCrLCSfQxQ3br8DJCoVzhgtPsS2nZZjsBGIZgnU0QpMv+2MnRsnKwdp1VsrCX84j/qvaZn4WhKunippgTbN2EUs0tPTP55Qfgj+nKmjtWW5IYs72FrEwJKYoNfsmqaF4o5pf4v9zgPwVwY/5I4XJKUL2L25m9kAQcW/K+H1RTFEUoj8Z4ajpOmAB/dG0COmCphVMW2CCMvnxhcGiSgPnpDuWu6qiJ7NG7ye5kvHgefgqPLeicspNJ5EpL3XiRNLM2tmJLI1awAwOyd6iHv0dCkMYRKaa6rcaZeYwmKCkckm0kM2JNmnmmAaBQQ7mwmIM0IMxX4f5W6j9PqZWcJxF7r17T/lQBAmcjoupRiJifbnXCNUv9GhpRF19WcBdeKbivRJVlGop6I2RS6lGImJ9udcI1S/0aGlEXX1ZwF14puK9ElWUainojZFYVHLHD6dIP2ESjqBzg3ol1/wB7+/ylGwd9LS7wSZ2A630CJSVKwH47K9P4bB8PEQP8BwjMFa7xQHOqZFP1XqaQ==","base64"))})},ze={},hn=async n=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(ze[e])return ze;let t=new kn(e),i=await n.getAccountInfo(t);return i&&(ze[e]=new je({key:t,state:je.deserialize(i.data)})),ze};import{PublicKey as Ye,sendAndConfirmTransaction as Bn,SystemProgram as Ko,Transaction as pt,TransactionMessage as ft,VersionedTransaction as bt}from"@solana/web3.js";import No from"axios";var qt=2e3,Ut=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var i;let e=(await No.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(i=e==null?void 0:e[15])!=null?i:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:i}=vt(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Ko.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Ye(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(re.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let i=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:i=[],instructionTypes:o=[],endInstructionTypes:r=[],lookupTableAddress:s=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...i),this.instructionTypes.push(...o),this.endInstructionTypes.push(...r),this.lookupTableAddress.push(...s.filter(a=>a!==Ye.default.toString())),this}async versionBuild({txVersion:e,extInfo:t}){return e===0?await this.buildV0(U({},t||{})):this.build(t)}build(e){var i;let t=new pt;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(o=>o.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async o=>{var l;let{recentBlockHash:r,skipPreflight:s=!0,sendAndConfirm:a,notSendToRpc:c}=o||{},u=r!=null?r:await He(this.connection,this.blockhashCommitment);if(t.recentBlockhash=u,this.signers.length&&t.sign(...this.signers),ve([t]),(l=this.owner)!=null&&l.isKeyPair)return{txId:a?await Bn(this.connection,t,this.signers.find(d=>d.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:s}),signedTx:t};if(this.signAllTransactions){let m=await this.signAllTransactions([t]);if(this.signers.length)for(let d of m)try{d.sign(...this.signers)}catch{}return{txId:c?"":await this.connection.sendRawTransaction(m[0].serialize(),{skipPreflight:s}),signedTx:m[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var u;let{extraPreBuildData:t=[],extInfo:i}=e,{transaction:o}=this.build(i),r=t.filter(l=>l.transaction.instructions.length>0),s=[o,...r.map(l=>l.transaction)],a=[this.signers,...r.map(l=>l.signers)],c=[...this.instructionTypes,...r.map(l=>l.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&a.forEach(l=>{l.some(m=>m.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:a,instructionTypes:c,execute:async l=>{var k;let{sequentially:m,onTxUpdate:d,skipTxCount:p=0,recentBlockHash:b,skipPreflight:f=!0}=l||{},y=b!=null?b:await He(this.connection,this.blockhashCommitment);if((k=this.owner)!=null&&k.isKeyPair){if(m){let A=[],P=0;for(let w of s){if(++P,P<=p)continue;let h=await Bn(this.connection,w,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:f});A.push(h)}return{txIds:A,signedTxs:s}}return{txIds:await await Promise.all(s.map(async A=>(A.recentBlockhash=y,await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:f})))),signedTxs:s}}if(this.signAllTransactions){let A=s.map((w,h)=>(w.recentBlockhash=y,a[h].length&&w.sign(...a[h]),w));ve(A);let P=await this.signAllTransactions(A);if(m){let w=0,h=[],T=async()=>{if(!P[w])return;let x=await this.connection.sendRawTransaction(P[w].serialize(),{skipPreflight:f});h.push({txId:x,status:"sent",signedTx:P[w]}),d==null||d([...h]),w++;let I=!1,K=null,S=null,M=E=>{K!==null&&clearInterval(K),S!==null&&this.connection.removeSignatureListener(S);let W=h.findIndex(q=>q.txId===x);if(W>-1){if(h[W].status==="error"||h[W].status==="success")return;h[W].status=E.err?"error":"success"}d==null||d([...h]),E.err||T()};this.loopMultiTxStatus&&(K=setInterval(async()=>{var E;if(I){clearInterval(K);return}try{let W=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(I=!0,clearInterval(K),M({err:((E=W.meta)==null?void 0:E.err)||null}),console.log("tx status from getTransaction:",x))}catch(W){I=!0,clearInterval(K),console.error("getTransaction timeout:",W,x)}},qt)),S=this.connection.onSignature(x,E=>{if(I){this.connection.removeSignatureListener(S);return}I=!0,M(E)},"confirmed"),this.connection.getSignatureStatus(x)};return await T(),{txIds:h.map(x=>x.txId),signedTxs:P}}else{let w=[];for(let h=0;h<P.length;h+=1){let T=await this.connection.sendRawTransaction(P[h].serialize(),{skipPreflight:f});w.push(T)}return{txIds:w,signedTxs:P}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:i}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:i})}async buildV0(e){var f;let b=e||{},{lookupTableCache:t={},lookupTableAddress:i=[],forerunCreate:o,recentBlockhash:r}=b,s=he(b,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=U(U({},this.cluster==="devnet"?await hn(this.connection):_t),t),c=Array.from(new Set([...i,...this.lookupTableAddress])),u=[];for(let y of c)a[y]===void 0&&u.push(new Ye(y));let l=await Tn({connection:this.connection,address:u});for(let[y,k]of Object.entries(l))a[y]=k;let m=o?Ye.default.toBase58():r!=null?r:await He(this.connection,this.blockhashCommitment),d=new ft({payerKey:this.feePayer,recentBlockhash:m,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(a));((f=this.owner)==null?void 0:f.signer)&&!this.signers.some(y=>y.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let p=new bt(d);return p.sign(this.signers),{builder:this,transaction:p,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async y=>{var w;let{skipPreflight:k=!0,sendAndConfirm:A,notSendToRpc:P}=y||{};if(ve([p]),(w=this.owner)!=null&&w.isKeyPair){let h=await this.connection.sendTransaction(p,{skipPreflight:k});return A&&await Dt(this.connection,h),{txId:h,signedTx:p}}if(this.signAllTransactions){let h=await this.signAllTransactions([p]);if(this.signers.length)for(let T of h)try{T.sign(this.signers)}catch{}return{txId:P?"":await this.connection.sendTransaction(h[0],{skipPreflight:k}),signedTx:h[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}async buildV0MultiTx(e){var u;let{extraPreBuildData:t=[],buildProps:i}=e,{transaction:o}=await this.buildV0(i),r=t.filter(l=>l.builder.instructions.length>0),s=[o,...r.map(l=>l.transaction)],a=[this.signers,...r.map(l=>l.signers)],c=[...this.instructionTypes,...r.map(l=>l.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&a.forEach(l=>{l.some(m=>m.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach(async(l,m)=>{l.sign(a[m])}),{builder:this,transactions:s,signers:a,instructionTypes:c,buildProps:i,execute:async l=>{var f;let{sequentially:m,onTxUpdate:d,recentBlockHash:p,skipPreflight:b=!0}=l||{};if(p&&s.forEach(y=>y.message.recentBlockhash=p),ve(s),(f=this.owner)!=null&&f.isKeyPair){if(m){let y=[];for(let k of s){let A=await this.connection.sendTransaction(k,{skipPreflight:b});await Dt(this.connection,A),y.push(A)}return{txIds:y,signedTxs:s}}return{txIds:await Promise.all(s.map(async y=>await this.connection.sendTransaction(y,{skipPreflight:b}))),signedTxs:s}}if(this.signAllTransactions){let y=await this.signAllTransactions(s);if(m){let k=0,A=[],P=async()=>{if(!y[k])return;let w=await this.connection.sendTransaction(y[k],{skipPreflight:b});A.push({txId:w,status:"sent",signedTx:y[k]}),d==null||d([...A]),k++;let h=!1,T=null,x=null,I=K=>{T!==null&&clearInterval(T),x!==null&&this.connection.removeSignatureListener(x);let S=A.findIndex(M=>M.txId===w);if(S>-1){if(A[S].status==="error"||A[S].status==="success")return;A[S].status=K.err?"error":"success"}d==null||d([...A]),K.err||P()};this.loopMultiTxStatus&&(T=setInterval(async()=>{var K;if(h){clearInterval(T);return}try{let S=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:0});S&&(h=!0,clearInterval(T),I({err:((K=S.meta)==null?void 0:K.err)||null}),console.log("tx status from getTransaction:",w))}catch(S){h=!0,clearInterval(T),console.error("getTransaction timeout:",S,w)}},qt)),x=this.connection.onSignature(w,K=>{if(h){this.connection.removeSignatureListener(x);return}h=!0,I(K)},"confirmed"),this.connection.getSignatureStatus(w)};return P(),{txIds:[],signedTxs:y}}else{let k=[];for(let A=0;A<y.length;A+=1){let P=await this.connection.sendTransaction(y[A],{skipPreflight:b});k.push(P)}return{txIds:k,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var d;let m=e||{},{splitIns:t=[],computeBudgetConfig:i}=m,o=he(m,["splitIns","computeBudgetConfig"]),r=i?vt(i):{instructions:[],instructionTypes:[]},s=this.signers.reduce((p,b)=>z(U({},p),{[b.publicKey.toBase58()]:b}),{}),a=[],c=[],u=[],l=0;if(this.allInstructions.forEach(p=>{let b=[...u,p],f=i?[...r.instructions,...b]:b,k=[...new Set(b.map(A=>A.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(A=>new Ye(A));if(p!==t[l]&&u.length<12&&(lt({instructions:f,payer:this.feePayer,signers:k})||lt({instructions:b,payer:this.feePayer,signers:k})))u.push(p);else{if(u.length===0)throw Error("item ins too big");l+=p===t[l]?1:0,lt({instructions:i?[...r.instructions,...u]:[...u],payer:this.feePayer,signers:k})?a.push(new pt().add(...r.instructions,...u)):a.push(new pt().add(...u)),c.push(Array.from(new Set(u.map(A=>A.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat())).map(A=>s[A]).filter(A=>A!==void 0)),u=[p]}}),u.length>0){let b=[...new Set(u.map(f=>f.keys.filter(y=>y.isSigner).map(y=>y.pubkey.toString())).flat()).values()].map(f=>s[f]).filter(f=>f!==void 0);lt({instructions:i?[...r.instructions,...u]:[...u],payer:this.feePayer,signers:b.map(f=>f.publicKey)})?a.push(new pt().add(...r.instructions,...u)):a.push(new pt().add(...u)),c.push(b)}return a.forEach(p=>p.feePayer=this.feePayer),(d=this.owner)!=null&&d.signer&&c.forEach(p=>{p.some(b=>b.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),{builder:this,transactions:a,signers:c,instructionTypes:this.instructionTypes,execute:async p=>{var w;let{sequentially:b,onTxUpdate:f,skipTxCount:y=0,recentBlockHash:k,skipPreflight:A=!0}=p||{},P=k!=null?k:await He(this.connection,this.blockhashCommitment);if(a.forEach(async(h,T)=>{h.recentBlockhash=P,c[T].length&&h.sign(...c[T])}),ve(a),(w=this.owner)!=null&&w.isKeyPair){if(b){let h=0,T=[];for(let x of a){if(++h,h<=y){T.push("tx skipped");continue}let I=await Bn(this.connection,x,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});T.push(I)}return{txIds:T,signedTxs:a}}return{txIds:await Promise.all(a.map(async h=>await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:A}))),signedTxs:a}}if(this.signAllTransactions){let h=await this.signAllTransactions(a.slice(y,a.length)),T=[...a.slice(0,y),...h];if(b){let x=0,I=[],K=async()=>{if(!T[x])return;x<y&&(I.push({txId:"",status:"success",signedTx:T[x]}),f==null||f([...I]),x++,K());let S=await this.connection.sendRawTransaction(T[x].serialize(),{skipPreflight:A});I.push({txId:S,status:"sent",signedTx:T[x]}),f==null||f([...I]),x++;let M=!1,E=null,W=null,q=D=>{E!==null&&clearInterval(E),W!==null&&this.connection.removeSignatureListener(W);let O=I.findIndex($=>$.txId===S);if(O>-1){if(I[O].status==="error"||I[O].status==="success")return;I[O].status=D.err?"error":"success"}f==null||f([...I]),D.err||K()};this.loopMultiTxStatus&&(E=setInterval(async()=>{var D;if(M){clearInterval(E);return}try{let O=await this.connection.getTransaction(S,{commitment:"confirmed",maxSupportedTransactionVersion:0});O&&(M=!0,clearInterval(E),q({err:((D=O.meta)==null?void 0:D.err)||null}),console.log("tx status from getTransaction:",S))}catch(O){M=!0,clearInterval(E),console.error("getTransaction timeout:",O,S)}},qt)),W=this.connection.onSignature(S,D=>{if(M){this.connection.removeSignatureListener(W);return}M=!0,q(D)},"confirmed"),this.connection.getSignatureStatus(S)};return await K(),{txIds:I.map(S=>S.txId),signedTxs:T}}else{let x=[];for(let I=0;I<T.length;I+=1){let K=await this.connection.sendRawTransaction(T[I].serialize(),{skipPreflight:A});x.push(K)}return{txIds:x,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(e){var P;let A=e||{},{computeBudgetConfig:t,splitIns:i=[],lookupTableCache:o={},lookupTableAddress:r=[]}=A,s=he(A,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress"]),a=U(U({},this.cluster==="devnet"?await hn(this.connection):_t),o),c=Array.from(new Set([...this.lookupTableAddress,...r])),u=[];for(let w of c)a[w]===void 0&&u.push(new Ye(w));let l=await Tn({connection:this.connection,address:u});for(let[w,h]of Object.entries(l))a[w]=h;let m=t?vt(t):{instructions:[],instructionTypes:[]},d=await He(this.connection,this.blockhashCommitment),p=this.signers.reduce((w,h)=>z(U({},w),{[h.publicKey.toBase58()]:h}),{}),b=[],f=[],y=[],k=0;if(this.allInstructions.forEach(w=>{let h=[...y,w],T=t?[...m.instructions,...h]:h;if(w!==i[k]&&y.length<12&&(mt({instructions:T,payer:this.feePayer,lookupTableAddressAccount:a})||mt({instructions:h,payer:this.feePayer,lookupTableAddressAccount:a})))y.push(w);else{if(y.length===0)throw Error("item ins too big");k+=w===i[k]?1:0;let x={};for(let I of[...new Set(c)])a[I]!==void 0&&(x[I]=a[I]);if(t&&mt({instructions:[...m.instructions,...y],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:d})){let I=new ft({payerKey:this.feePayer,recentBlockhash:d,instructions:[...m.instructions,...y]}).compileToV0Message(Object.values(a));b.push(new bt(I))}else{let I=new ft({payerKey:this.feePayer,recentBlockhash:d,instructions:[...y]}).compileToV0Message(Object.values(a));b.push(new bt(I))}f.push(Array.from(new Set(y.map(I=>I.keys.filter(K=>K.isSigner).map(K=>K.pubkey.toString())).flat())).map(I=>p[I]).filter(I=>I!==void 0)),y=[w]}}),y.length>0){let h=[...new Set(y.map(T=>T.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat()).values()].map(T=>p[T]).filter(T=>T!==void 0);if(t&&mt({instructions:[...m.instructions,...y],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:d})){let T=new ft({payerKey:this.feePayer,recentBlockhash:d,instructions:[...m.instructions,...y]}).compileToV0Message(Object.values(a));b.push(new bt(T))}else{let T=new ft({payerKey:this.feePayer,recentBlockhash:d,instructions:[...y]}).compileToV0Message(Object.values(a));b.push(new bt(T))}f.push(h)}return(P=this.owner)!=null&&P.signer&&f.forEach(w=>{w.some(h=>h.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),b.forEach((w,h)=>{w.sign(f[h])}),{builder:this,transactions:b,buildProps:e,signers:f,instructionTypes:this.instructionTypes,execute:async w=>{var S;let{sequentially:h,onTxUpdate:T,skipTxCount:x=0,recentBlockHash:I,skipPreflight:K=!0}=w||{};if(b.map(async(M,E)=>{f[E].length&&M.sign(f[E]),I&&(M.message.recentBlockhash=I)}),ve(b),(S=this.owner)!=null&&S.isKeyPair){if(h){let M=0,E=[];for(let W of b){if(++M,M<=x){console.log("skip tx: ",M),E.push("tx skipped");continue}let q=await this.connection.sendTransaction(W,{skipPreflight:K});await Dt(this.connection,q),E.push(q)}return{txIds:E,signedTxs:b}}return{txIds:await Promise.all(b.map(async M=>await this.connection.sendTransaction(M,{skipPreflight:K}))),signedTxs:b}}if(this.signAllTransactions){let M=await this.signAllTransactions(b.slice(x,b.length)),E=[...b.slice(0,x),...M];if(h){let W=0,q=[],D=async()=>{if(!E[W])return;if(W<x){q.push({txId:"",status:"success",signedTx:E[W]}),T==null||T([...q]),W++,D();return}let O=await this.connection.sendTransaction(E[W],{skipPreflight:K});q.push({txId:O,status:"sent",signedTx:E[W]}),T==null||T([...q]),W++;let $=!1,pe=null,Oe=null,qn=Fe=>{pe!==null&&clearInterval(pe),Oe!==null&&this.connection.removeSignatureListener(Oe);let Te=q.findIndex(nr=>nr.txId===O);if(Te>-1){if(q[Te].status==="error"||q[Te].status==="success")return;q[Te].status=Fe.err?"error":"success"}T==null||T([...q]),Fe.err||D()};this.loopMultiTxStatus&&(pe=setInterval(async()=>{var Fe;if($){clearInterval(pe);return}try{let Te=await this.connection.getTransaction(O,{commitment:"confirmed",maxSupportedTransactionVersion:0});Te&&($=!0,clearInterval(pe),qn({err:((Fe=Te.meta)==null?void 0:Fe.err)||null}),console.log("tx status from getTransaction:",O))}catch(Te){$=!0,clearInterval(pe),console.error("getTransaction timeout:",Te,O)}},qt)),Oe=this.connection.onSignature(O,Fe=>{if($){this.connection.removeSignatureListener(Oe);return}$=!0,qn(Fe)},"confirmed"),this.connection.getSignatureStatus(O)};return D(),{txIds:[],signedTxs:E}}else{let W=[];for(let q=0;q<E.length;q+=1){let D=await this.connection.sendTransaction(E[q],{skipPreflight:K});W.push(D)}return{txIds:W,signedTxs:E}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}};import{PublicKey as ec}from"@solana/web3.js";import nc from"bn.js";import Lo from"bn.js";var Gt=new Lo(1e6);var Dc=ne("Raydium_amount"),Wc=ut(Ro);var An=new ke(0),tl=new ke(1),nl=new ke(2),il=new ke(3),rl=new ke(5),Mo=new ke(10),ol=new ke(100),sl=new ke(1e3),al=new ke(1e4);function Bi(n,e,t){return n.mul(e).add(t).sub(new ke(1)).div(t)}function xn(n,e,t){return n.mul(e).div(t)}import In from"bn.js";import zt from"decimal.js-light";import yt from"bn.js";function Xt(n,e){if(e.isZero())throw Error("divisor is zero");return n.mod(e)}function Oo(n,e){if(e.isZero())throw Error("rhs is zero");let t=n.div(e);if(t.isZero())throw Error("quotient is zero");let i=Xt(n,e);return i.gt(Qe)&&(t=t.add(new yt(1)),e=n.div(t),i=Xt(n,t),i.gt(Qe)&&(e=e.add(new yt(1)))),[t,e]}var Qe=new yt(0),Ht=class{static swapWithoutFees(e,t,i){let o=t.mul(i),r=t.add(e),[s]=Oo(o,r),a=i.sub(s);if(a.isZero())throw Error("destinationAmountSwapped is zero");return{destinationAmountSwapped:a}}static lpTokensToTradingTokens(e,t,i,o,r){let s=e.mul(i).div(t),a=e.mul(o).div(t);if(r===0)return{tokenAmount0:s,tokenAmount1:a};if(r===1)return Xt(e.mul(i),t).gt(Qe)&&s.gt(Qe)&&(s=s.add(new yt(1))),Xt(e.mul(o),t).gt(Qe)&&a.gt(Qe)&&(a=a.add(new yt(1))),{tokenAmount0:s,tokenAmount1:a};throw Error("roundDirection value error")}};var Zt=class{static tradingFee(e,t){return Bi(e,t,Gt)}static protocolFee(e,t){return xn(e,t,Gt)}static fundFee(e,t){return xn(e,t,Gt)}};var jt=class{static validate_supply(e,t){if(e.isZero())throw Error("tokenAmount0 is zero");if(t.isZero())throw Error("tokenAmount1 is zero")}static swap(e,t,i,o){let r=Zt.tradingFee(e,o),s=e.sub(r),{destinationAmountSwapped:a}=Ht.swapWithoutFees(s,t,i);return{newSwapDestinationAmount:i.sub(a),sourceAmountSwapped:e,destinationAmountSwapped:a,tradeFee:r}}static swapBaseOut({poolMintA:e,poolMintB:t,tradeFeeRate:i,baseReserve:o,quoteReserve:r,outputMint:s,outputAmount:a}){let[c,u,l,m,d]=t.address===s.toString()?[o,r,e.decimals,t.decimals,e.address]:[r,o,t.decimals,e.decimals,t.address],p=new zt(u.toString()).div(10**m).div(new zt(c.toString()).div(10**l)),b=a.gte(u)?u.sub(new In(1)):a,f=u.sub(b),y=Ze(c.mul(b),f),k=Ze(y.mul(new In(1e6)),new In(1e6).sub(i)),A=k.sub(y),P=new zt(b.toString()).div(10**m).div(new zt(k.toString()).div(10**l)),w=p.isZero()?0:P.sub(p).div(p).abs().toNumber();return{amountRealOut:b,amountIn:k,amountInWithoutFee:y,tradeFee:A,priceImpact:w}}};import J from"bn.js";var Sn=(...n)=>n.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),Je=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=ne(t)}createTxBuilder(e){return this.scope.checkOwner(),new Ut({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(Sn(e))}logInfo(...e){this.logger.info(Sn(e))}logAndCreateError(...e){let t=Sn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Uo}from"@solana/web3.js";import Ci,{isBN as Ki}from"bn.js";import{bits as Kl,BitStructure as Nl,blob as Fo,Blob as Ll,cstr as Rl,f32 as Ml,f32be as Ol,f64 as Fl,f64be as El,greedy as vl,Layout as Eo,ns64 as Dl,ns64be as Wl,nu64 as Vl,nu64be as _l,offset as ql,s16 as Ul,s16be as Gl,s24 as Xl,s24be as Hl,s32 as vo,s32be as Zl,s40 as zl,s40be as jl,s48 as Yl,s48be as Ql,s8 as Jl,seq as Do,struct as $l,Structure as Wo,u16 as Vo,u16be as em,u24 as tm,u24be as nm,u32 as im,u32be as rm,u40 as om,u40be as sm,u48 as am,u48be as um,u8 as _o,UInt as qo,union as cm,Union as lm,unionLayoutDiscriminator as mm,utf8 as dm}from"@solana/buffer-layout";var Cn=Eo,xi=Wo;var Kn=qo;var Ii=_o,De=Vo;var xe=vo;var Si=Do;var se=Fo;var $e=class extends Cn{constructor(t,i,o){super(t,o);this.blob=se(t),this.signed=i}decode(t,i=0){let o=new Ci(this.blob.decode(t,i),10,"le");return this.signed?o.fromTwos(this.span*8).clone():o}encode(t,i,o=0){return typeof t=="number"&&(t=new Ci(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),i,o)}};function j(n){return new Kn(1,n)}function Ie(n){return new Kn(4,n)}function C(n){return new $e(8,!1,n)}function Q(n){return new $e(16,!1,n)}function Ni(n){return new $e(8,!0,n)}function Li(n){return new $e(16,!0,n)}var Yt=class extends Cn{constructor(t,i,o,r){super(t.span,r);this.layout=t,this.decoder=i,this.encoder=o}decode(t,i){return this.decoder(this.layout.decode(t,i))}encode(t,i,o){return this.layout.encode(this.encoder(t),i,o)}getSpan(t,i){return this.layout.getSpan(t,i)}};function _(n){return new Yt(se(32),e=>new Uo(e),e=>e.toBuffer(),n)}function We(n){return new Yt(Ii(),Go,Xo,n)}function Go(n){if(n===0)return!1;if(n===1)return!0;throw new Error("Invalid bool: "+n)}function Xo(n){return n?1:0}var Nn=class extends xi{decode(e,t){return super.decode(e,t)}};function G(n,e,t){return new Nn(n,e,t)}function H(n,e,t){let i,o=typeof e=="number"?e:Ki(e)?e.toNumber():new Proxy(e,{get(r,s){if(!i){let a=Reflect.get(r,"count");i=Ki(a)?a.toNumber():a,Reflect.set(r,"count",i)}return Reflect.get(r,s)},set(r,s,a){return s==="count"&&(i=a),Reflect.set(r,s,a)}});return Si(n,o,t)}var Im=G([Ie("mintAuthorityOption"),_("mintAuthority"),C("supply"),j("decimals"),j("isInitialized"),Ie("freezeAuthorityOption"),_("freezeAuthority")]);import{PublicKey as Nm}from"@solana/web3.js";import{MintLayout as Rm,TOKEN_PROGRAM_ID as Om}from"@solana/spl-token";var Ve=o=>{var r=o,{address:n,programId:e,decimals:t}=r,i=he(r,["address","programId","decimals"]);return U({chainId:101,address:ot(n).toBase58(),programId:e,logoURI:"",symbol:"",name:"",decimals:t,tags:[],extensions:i.extensions||{}},i)},et=n=>n?z(U({},n),{transferFeeConfigAuthority:n.transferFeeConfigAuthority.toBase58(),withdrawWithheldAuthority:n.withdrawWithheldAuthority.toBase58(),withheldAmount:n.withheldAmount.toString(),olderTransferFee:z(U({},n.olderTransferFee),{epoch:n.olderTransferFee.epoch.toString(),maximumFee:n.olderTransferFee.maximumFee.toString()}),newerTransferFee:z(U({},n.newerTransferFee),{epoch:n.newerTransferFee.epoch.toString(),maximumFee:n.newerTransferFee.maximumFee.toString()})}):void 0;import{PublicKey as Tt,TransactionInstruction as _e,Keypair as bs,SystemProgram as ys}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Hi,TOKEN_2022_PROGRAM_ID as Wn,TOKEN_PROGRAM_ID as Me}from"@solana/spl-token";var Ho=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Hm=Buffer.from("amm_config","utf8"),Zo=Buffer.from("pool","utf8"),zo=Buffer.from("pool_lp_mint","utf8"),jo=Buffer.from("pool_vault","utf8"),Yo=Buffer.from("observation","utf8");function Qt(n){return ye([Ho],n)}function Ln(n,e,t,i){return ye([Zo,e.toBuffer(),t.toBuffer(),i.toBuffer()],n)}function Qo(n,e){return ye([zo,e.toBuffer()],n)}function Ri(n,e,t){return ye([jo,e.toBuffer(),t.toBuffer()],n)}function gt(n,e){return ye([Yo,e.toBuffer()],n)}function Mi({poolId:n,programId:e,configId:t,mintA:i,mintB:o}){let r=Qt(e).publicKey,s=n||Ln(e,t,i,o).publicKey,a=Qo(e,s).publicKey,c=Ri(e,s,i).publicKey,u=Ri(e,s,o).publicKey,l=gt(e,s).publicKey;return{poolId:s,configId:t,authority:r,lpMint:a,vaultA:c,vaultB:u,observationId:l}}var Jo=Buffer.from("locked_liquidity","utf8");function wt(n,e){return ye([Jo,e.toBuffer()],n)}import{PublicKey as Sf}from"@solana/web3.js";import Kf from"bn.js";import{AccountLayout as Mf,createAssociatedTokenAccountIdempotentInstruction as Of,TOKEN_2022_PROGRAM_ID as Ff,TOKEN_PROGRAM_ID as Ef}from"@solana/spl-token";import{Keypair as $p,PublicKey as ef,SystemProgram as nf,TransactionInstruction as rf}from"@solana/web3.js";import sf from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as cf,TOKEN_2022_PROGRAM_ID as lf,TOKEN_PROGRAM_ID as mf}from"@solana/spl-token";import Mp from"bn.js";import de from"bn.js";var Rn=new de(0),Oi=new de(1),Fi=new de(-1),Jt=new de(1).shln(64),Ei=new de(1).shln(128),$o=Jt.sub(Oi);var es=Ei.subn(1),tt=-443636,Pt=-tt,Mn=new de("4295048016"),On=new de("79226673521066979257578248091"),jm=new de("4295048017"),Ym=new de("79226673521066979257578248090");var ts=new de(10).pow(new de(6));var Qm=new de("18446744073700000000");import Pp from"bn.js";var rd=Buffer.from("amm_config","utf8"),od=Buffer.from("pool","utf8"),sd=Buffer.from("pool_vault","utf8"),ad=Buffer.from("pool_reward_vault","utf8"),ud=Buffer.from("position","utf8"),cd=Buffer.from("tick_array","utf8"),ld=Buffer.from("operation","utf8"),md=Buffer.from("pool_tick_array_bitmap_extension","utf8"),dd=Buffer.from("observation","utf8");function Fn(n){return ye([Buffer.from("metadata","utf8"),Xe.toBuffer(),n.toBuffer()],Xe)}var pd=Buffer.from("locked_position","utf8");var fd=Buffer.from("support_mint","utf8");import{PublicKey as Zd}from"@solana/web3.js";import{TOKEN_2022_PROGRAM_ID as jd}from"@solana/spl-token";import Qd from"bn.js";import gd from"bn.js";var Dn=14;var $t=60;var os=G([se(8),j("bump"),De("index"),_(""),Ie("protocolFeeRate"),Ie("tradeFeeRate"),De("tickSpacing"),H(C(),8,"")]),ss=G([Ie("blockTimestamp"),Ni("tickCumulative"),H(C(),4)]),Xi=G([se(8),We("initialized"),C("recentEpoch"),De("observationIndex"),_("poolId"),H(ss,100,"observations"),H(C(),4)]),as=G([j("rewardState"),C("openTime"),C("endTime"),C("lastUpdateTime"),Q("emissionsPerSecondX64"),C("rewardTotalEmissioned"),C("rewardClaimed"),_("tokenMint"),_("tokenVault"),_("creator"),Q("rewardGrowthGlobalX64")]),qi=G([se(8),j("bump"),_("ammConfig"),_("creator"),_("mintA"),_("mintB"),_("vaultA"),_("vaultB"),_("observationId"),j("mintDecimalsA"),j("mintDecimalsB"),De("tickSpacing"),Q("liquidity"),Q("sqrtPriceX64"),xe("tickCurrent"),Ie(),Q("feeGrowthGlobalX64A"),Q("feeGrowthGlobalX64B"),C("protocolFeesTokenA"),C("protocolFeesTokenB"),Q("swapInAmountTokenA"),Q("swapOutAmountTokenB"),Q("swapInAmountTokenB"),Q("swapOutAmountTokenA"),j("status"),H(j(),7,""),H(as,3,"rewardInfos"),H(C(),16,"tickArrayBitmap"),C("totalFeesTokenA"),C("totalFeesClaimedTokenA"),C("totalFeesTokenB"),C("totalFeesClaimedTokenB"),C("fundFeesTokenA"),C("fundFeesTokenB"),C("startTime"),H(C(),15*4-3,"padding")]),us=G([Q("growthInsideLastX64"),C("rewardAmountOwed")]),Ui=G([se(8),j("bump"),_("nftMint"),_("poolId"),xe("tickLower"),xe("tickUpper"),Q("liquidity"),Q("feeGrowthInsideLastX64A"),Q("feeGrowthInsideLastX64B"),C("tokenFeesOwedA"),C("tokenFeesOwedB"),H(us,3,"rewardInfos"),H(C(),8,"")]),Up=G([se(8),j("bump"),_("poolId"),xe("tickLowerIndex"),xe("tickUpperIndex"),Q("liquidity"),Q("feeGrowthInsideLastX64A"),Q("feeGrowthInsideLastX64B"),C("tokenFeesOwedA"),C("tokenFeesOwedB"),H(Q(),3,"rewardGrowthInside"),H(C(),8,"")]),cs=G([xe("tick"),Li("liquidityNet"),Q("liquidityGross"),Q("feeGrowthOutsideX64A"),Q("feeGrowthOutsideX64B"),H(Q(),3,"rewardGrowthsOutsideX64"),H(Ie(),13,"")]),Wi=G([se(8),_("poolId"),xe("startTickIndex"),H(cs,$t,"ticks"),j("initializedTickCount"),H(j(),115,"")]),ls=G([se(329),H(_(),100,"whitelistMints")]),rs=G([se(8),_("poolId"),H(H(C(),8),Dn,"positiveTickArrayBitmap"),H(H(C(),8),Dn,"negativeTickArrayBitmap")]),Gp=G([C(),j("bump"),_("owner"),_("poolId"),_("positionId"),_("nftAccount"),H(C(),8)]),ms=G([se(8),j("bump"),_("lockOwner"),_("poolId"),_("positionId"),_("nftAccount"),_("lockNftMint"),C("recentEpoch"),H(C(),8)]);Xi.span;var Af=ne("Raydium_Clmm");var gs=ne("Raydium_cpmm"),qe={initialize:[175,175,109,31,13,152,155,237],deposit:[242,35,198,137,82,225,242,182],withdraw:[183,18,70,156,148,109,161,34],swapBaseInput:[143,190,90,218,196,30,51,222],swapBaseOutput:[55,217,98,86,163,74,180,173],lockCpLiquidity:[216,157,29,78,38,51,31,26],collectCpFee:[8,30,51,199,209,184,247,133]};function Zi(n,e,t,i,o,r,s,a,c,u,l,m,d,p,b,f,y,k,A,P){let w=G([C("amountMaxA"),C("amountMaxB"),C("openTime")]),h=Ln(n,t,r,s).publicKey,T=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!o.equals(h),isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:Me,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:Hi,isSigner:!1,isWritable:!1},{pubkey:pi,isSigner:!1,isWritable:!1},{pubkey:Rt,isSigner:!1,isWritable:!1}],x=Buffer.alloc(w.span);return w.encode({amountMaxA:k,amountMaxB:A,openTime:P},x),new _e({keys:T,programId:n,data:Buffer.from([...qe.initialize,...x])})}function zi(n,e,t,i,o,r,s,a,c,u,l,m,d,p,b){let f=G([C("lpAmount"),C("amountMaxA"),C("amountMaxB")]),y=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:Me,isSigner:!1,isWritable:!1},{pubkey:Wn,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0}],k=Buffer.alloc(f.span);return gs.debug("cpmm deposit data",{lpAmount:d.toString(),amountMaxA:p.toString(),amountMaxB:b.toString()}),f.encode({lpAmount:d,amountMaxA:p,amountMaxB:b},k),new _e({keys:y,programId:n,data:Buffer.from([...qe.deposit,...k])})}function ji(n,e,t,i,o,r,s,a,c,u,l,m,d,p,b){let f=G([C("lpAmount"),C("amountMinA"),C("amountMinB")]),y=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:Me,isSigner:!1,isWritable:!1},{pubkey:Wn,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:Lt,isSigner:!1,isWritable:!1}],k=Buffer.alloc(f.span);return f.encode({lpAmount:d,amountMinA:p,amountMinB:b},k),new _e({keys:y,programId:n,data:Buffer.from([...qe.withdraw,...k])})}function Yi(n,e,t,i,o,r,s,a,c,u,l,m,d,p,b,f){let y=G([C("amountIn"),C("amounOutMin")]),k=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0}],A=Buffer.alloc(y.span);return y.encode({amountIn:b,amounOutMin:f},A),new _e({keys:k,programId:n,data:Buffer.from([...qe.swapBaseInput,...A])})}function Qi(n,e,t,i,o,r,s,a,c,u,l,m,d,p,b,f){let y=G([C("amountInMax"),C("amountOut")]),k=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0}],A=Buffer.alloc(y.span);return y.encode({amountInMax:b,amountOut:f},A),new _e({keys:k,programId:n,data:Buffer.from([...qe.swapBaseOutput,...A])})}async function Ji(n){var y;let{ownerInfo:e,poolInfo:t,poolKeys:i,feeNftOwner:o,getEphemeralSigners:r}=n,s=[],[a,c]=[new Tt(t.id),new Tt(t.lpMint.address)],u;if(r)u=new Tt((await r(1))[0]);else{let k=bs.generate();s.push(k),u=k.publicKey}let{publicKey:l}=me(o,u,Me),{publicKey:m}=Fn(u),{publicKey:d}=wt(n.lockProgram,u),{publicKey:p}=me(e.wallet,c,Me),{publicKey:b}=me(n.lockAuthProgram,c,Me),f=ws({programId:n.lockProgram,auth:n.lockAuthProgram,payer:e.feePayer,liquidityOwner:e.wallet,nftOwner:o,nftMint:u,nftAccount:l,poolId:a,lockPda:d,mintLp:c,userLpVault:p,lockLpVault:b,poolVaultA:new Tt(i.vault.A),poolVaultB:new Tt(i.vault.B),metadataAccount:m,lpAmount:n.lpAmount,withMetadata:(y=n.withMetadata)!=null?y:!0});return{address:{nftMint:u,nftAccount:l,metadataAccount:m,lockPda:d,userLpVault:p,lockLpVault:b},instructions:[f],signers:s,instructionTypes:[re.CpmmLockLp],lookupTableAddress:[]}}function ws({programId:n,auth:e,payer:t,liquidityOwner:i,nftOwner:o,nftMint:r,nftAccount:s,poolId:a,lockPda:c,mintLp:u,userLpVault:l,lockLpVault:m,poolVaultA:d,poolVaultB:p,metadataAccount:b,lpAmount:f,withMetadata:y}){let k=[{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:i,isSigner:!0,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:Rt,isSigner:!1,isWritable:!1},{pubkey:ys.programId,isSigner:!1,isWritable:!1},{pubkey:Me,isSigner:!1,isWritable:!1},{pubkey:Hi,isSigner:!1,isWritable:!1},{pubkey:Xe,isSigner:!1,isWritable:!1}],A=G([C("lpAmount"),We("withMetadata")]),P=Buffer.alloc(A.span);A.encode({lpAmount:f,withMetadata:y},P);let w=Buffer.from([...qe.lockCpLiquidity,...P]);return new _e({keys:k,programId:n,data:w})}function Vn({programId:n,nftOwner:e,auth:t,nftAccount:i,lockPda:o,poolId:r,mintLp:s,userVaultA:a,userVaultB:c,poolVaultA:u,poolVaultB:l,mintA:m,mintB:d,lockLpVault:p,lpFeeAmount:b,cpmmProgram:f,cpmmAuthProgram:y}){let k=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:f!=null?f:ki,isSigner:!1,isWritable:!1},{pubkey:y!=null?y:Ti,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:Me,isSigner:!1,isWritable:!1},{pubkey:Wn,isSigner:!1,isWritable:!1},{pubkey:Lt,isSigner:!1,isWritable:!1}],A=G([C("lpFeeAmount")]),P=Buffer.alloc(A.span);A.encode({lpFeeAmount:b},P);let w=Buffer.from([...qe.collectCpFee,...P]);return new _e({keys:k,programId:n,data:w})}var $i=G([se(8),j("bump"),We("disableCreatePool"),De("index"),C("tradeFeeRate"),C("protocolFeeRate"),C("fundFeeRate"),C("createPoolFee"),_("protocolOwner"),_("fundOwner"),H(C(),16)]),er=G([se(8),_("configId"),_("poolCreator"),_("vaultA"),_("vaultB"),_("mintLp"),_("mintA"),_("mintB"),_("mintProgramA"),_("mintProgramB"),_("observationId"),j("bump"),j("status"),j("lpDecimals"),j("mintDecimalA"),j("mintDecimalB"),C("lpAmount"),C("protocolFeesMintA"),C("protocolFeesMintB"),C("fundFeesMintA"),C("fundFeesMintB"),C("openTime"),H(C(),32)]);var _n=class extends Je{constructor(e){super(e)}async load(){this.checkDisabled()}async getCpmmPoolKeys(e){return(await this.scope.api.fetchPoolKeysById({idList:[e]}))[0]}async getRpcPoolInfo(e,t){return(await this.getRpcPoolInfos([e],t))[e]}async getRpcPoolInfos(e,t){let i=await Ee(this.scope.connection,e.map(m=>({pubkey:new B(m)}))),o={},r=new Set,s=[];for(let m=0;m<e.length;m++){let d=i[m];if(d.accountInfo===null)throw Error("fetch pool info error: "+String(e[m]));let p=er.decode(d.accountInfo.data);o[String(e[m])]=z(U({},p),{programId:d.accountInfo.owner}),r.add(String(p.configId)),s.push(p.vaultA,p.vaultB)}let a={};if(t){let m=[...r],d=await Ee(this.scope.connection,m.map(p=>({pubkey:new B(p)})));for(let p=0;p<m.length;p++){let b=d[p].accountInfo;if(b===null)throw Error("fetch pool config error: "+m[p]);a[m[p]]=$i.decode(b.data)}}let c={},u=await Ee(this.scope.connection,s.map(m=>({pubkey:new B(m)})));for(let m=0;m<s.length;m++){let d=u[m].accountInfo;if(d===null)throw Error("fetch vault info error: "+s[m]);c[String(s[m])]=new J(Ps.decode(d.data).amount.toString())}let l={};for(let[m,d]of Object.entries(o)){let p=c[d.vaultA.toString()].sub(d.protocolFeesMintA).sub(d.fundFeesMintA),b=c[d.vaultB.toString()].sub(d.protocolFeesMintB).sub(d.fundFeesMintB);l[m]=z(U({},d),{baseReserve:p,quoteReserve:b,vaultAAmount:c[d.vaultA.toString()],vaultBAmount:c[d.vaultB.toString()],configInfo:a[d.configId.toString()],poolPrice:new te(b.toString()).div(new te(10).pow(d.mintDecimalB)).div(new te(p.toString()).div(new te(10).pow(d.mintDecimalA)))})}return l}toComputePoolInfos({pools:e,mintInfos:t}){return Object.keys(e).reduce((i,o)=>{var c,u,l,m;let r=e[o],[s,a]=[r.mintA.toBase58(),r.mintB.toBase58()];return z(U({},i),{[o]:z(U({},r),{id:new B(o),configInfo:r.configInfo,version:7,authority:Qt(r.programId).publicKey,mintA:Ve({address:s,decimals:r.mintDecimalA,programId:r.mintProgramA.toBase58(),extensions:{feeConfig:(c=t[s])!=null&&c.feeConfig?et((u=t[s])==null?void 0:u.feeConfig):void 0}}),mintB:Ve({address:a,decimals:r.mintDecimalB,programId:r.mintProgramB.toBase58(),extensions:{feeConfig:(l=t[a])!=null&&l.feeConfig?et((m=t[a])==null?void 0:m.feeConfig):void 0}})})})},{})}async getPoolInfoFromRpc(e){let t=await this.getRpcPoolInfo(e,!0),i=await mn({connection:this.scope.connection,mints:[t.mintA,t.mintB]}),o=Ve({address:t.mintA.toBase58(),decimals:t.mintDecimalA,programId:t.mintProgramA.toBase58(),extensions:{feeConfig:i[t.mintA.toBase58()].feeConfig?et(i[t.mintA.toBase58()].feeConfig):void 0}}),r=Ve({address:t.mintB.toBase58(),decimals:t.mintDecimalB,programId:t.mintProgramB.toBase58(),extensions:{feeConfig:i[t.mintB.toBase58()].feeConfig?et(i[t.mintB.toBase58()].feeConfig):void 0}}),s=Ve({address:t.mintLp.toBase58(),decimals:t.lpDecimals,programId:ce.toBase58()}),a={id:t.configId.toBase58(),index:t.configInfo.index,protocolFeeRate:t.configInfo.protocolFeeRate.toNumber(),tradeFeeRate:t.configInfo.tradeFeeRate.toNumber(),fundFeeRate:t.configInfo.fundFeeRate.toNumber(),createPoolFee:t.configInfo.createPoolFee.toString()},c={volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[]};return{poolInfo:{programId:t.programId.toBase58(),id:e,type:"Standard",lpMint:s,lpPrice:0,lpAmount:t.lpAmount.toNumber(),config:a,mintA:o,mintB:r,rewardDefaultInfos:[],rewardDefaultPoolInfos:"Ecosystem",price:t.poolPrice.toNumber(),mintAmountA:new te(t.vaultAAmount.toString()).div(10**o.decimals).toNumber(),mintAmountB:new te(t.vaultBAmount.toString()).div(10**r.decimals).toNumber(),feeRate:t.configInfo.tradeFeeRate.toNumber(),openTime:t.openTime.toString(),tvl:0,burnPercent:0,day:c,week:c,month:c,pooltype:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0},poolKeys:{programId:t.programId.toBase58(),id:e,mintA:o,mintB:r,openTime:t.openTime.toString(),vault:{A:t.vaultA.toBase58(),B:t.vaultB.toBase58()},authority:Qt(t.programId).publicKey.toBase58(),mintLp:s,config:a,observationId:gt(t.programId,new B(e)).publicKey.toBase58()},rpcData:t}}async createPool(b){var f=b,{poolId:e,programId:t,poolFeeAccount:i,startTime:o,ownerInfo:r,associatedOnly:s=!1,checkCreateATAOwner:a=!1,txVersion:c,feeConfig:u,computeBudgetConfig:l,txTipConfig:m,feePayer:d}=f,p=he(f,["poolId","programId","poolFeeAccount","startTime","ownerInfo","associatedOnly","checkCreateATAOwner","txVersion","feeConfig","computeBudgetConfig","txTipConfig","feePayer"]);var O,$,pe;let y=r.feePayer||((O=this.scope.owner)==null?void 0:O.publicKey),k=new J(new B(p.mintA.address).toBuffer()).lte(new J(new B(p.mintB.address).toBuffer())),[A,P]=k?[p.mintA,p.mintB]:[p.mintB,p.mintA],[w,h]=k?[p.mintAAmount,p.mintBAmount]:[p.mintBAmount,p.mintAAmount],T=r.useSOLBalance&&A.address===en.toBase58(),x=r.useSOLBalance&&P.address===en.toBase58(),[I,K]=[new B(A.address),new B(P.address)],S=this.createTxBuilder(d),{account:M,instructionParams:E}=await this.scope.account.getOrCreateTokenAccount({mint:I,tokenProgram:A.programId,owner:this.scope.ownerPubKey,createInfo:T?{payer:y,amount:w}:void 0,notUseTokenAccount:T,skipCloseAccount:!T,associatedOnly:T?!1:s,checkCreateATAOwner:a});S.addInstruction(E||{});let{account:W,instructionParams:q}=await this.scope.account.getOrCreateTokenAccount({mint:new B(P.address),tokenProgram:P.programId,owner:this.scope.ownerPubKey,createInfo:x?{payer:y,amount:h}:void 0,notUseTokenAccount:x,skipCloseAccount:!x,associatedOnly:x?!1:s,checkCreateATAOwner:a});if(S.addInstruction(q||{}),M===void 0||W===void 0)throw Error("you don't has some token account");let D=Mi({poolId:e,programId:t,configId:new B(u.id),mintA:I,mintB:K});return S.addInstruction({instructions:[Zi(t,this.scope.ownerPubKey,new B(u.id),D.authority,D.poolId,I,K,D.lpMint,M,W,me(this.scope.ownerPubKey,D.lpMint).publicKey,D.vaultA,D.vaultB,i,new B(($=A.programId)!=null?$:ce),new B((pe=P.programId)!=null?pe:ce),D.observationId,w,h,o)],instructionTypes:[re.CpmmCreatePool]}),S.addCustomComputeBudget(l),S.addTipInstruction(m),S.versionBuild({txVersion:c,extInfo:{address:z(U({},D),{mintA:A,mintB:P,programId:t,poolFeeAccount:i,feeConfig:u})}})}async addLiquidity(e){let{poolInfo:t,poolKeys:i,inputAmount:o,baseIn:r,slippage:s,computeResult:a,computeBudgetConfig:c,txTipConfig:u,config:l,txVersion:m,feePayer:d}=e;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region"),o.isZero()&&this.logAndCreateError("amounts must greater than zero","amountInA",{amountInA:o.toString()});let{account:p}=this.scope,{bypassAssociatedCheck:b,checkCreateATAOwner:f}=U({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},l),y=a?void 0:await this.getRpcPoolInfo(t.id),{liquidity:k,inputAmountFee:A,anotherAmount:P}=a||this.computePairAmount({poolInfo:z(U({},t),{lpAmount:new te(y.lpAmount.toString()).div(10**t.lpMint.decimals).toNumber()}),baseReserve:y.baseReserve,quoteReserve:y.quoteReserve,slippage:new le(0),baseIn:r,epochInfo:await this.scope.fetchEpochInfo(),amount:new te(o.toString()).div(10**(r?t.mintA.decimals:t.mintB.decimals))}),w=P.amount,h=t.mintA.address===en.toString(),T=t.mintB.address===en.toString(),x=this.createTxBuilder(d),[I,K]=[new B(t.mintA.address),new B(t.mintB.address)],{account:S,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new B(t.mintA.address),owner:this.scope.ownerPubKey,createInfo:h||(r?o:w).isZero()?{payer:this.scope.ownerPubKey,amount:r?o:w}:void 0,skipCloseAccount:!h,notUseTokenAccount:h,associatedOnly:!1,checkCreateATAOwner:f});x.addInstruction(M||{});let{account:E,instructionParams:W}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new B(t.mintB.address),owner:this.scope.ownerPubKey,createInfo:T||(r?w:o).isZero()?{payer:this.scope.ownerPubKey,amount:r?w:o}:void 0,skipCloseAccount:!T,notUseTokenAccount:T,associatedOnly:!1,checkCreateATAOwner:f});x.addInstruction(W||{}),!S&&!E&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",p.tokenAccounts);let q=await p.getCreatedTokenAccount({mint:new B(t.lpMint.address)}),Oe=await p.handleTokenAccount({side:"out",amount:0,mint:new B(t.lpMint.address),tokenAccount:q,bypassAssociatedCheck:b,checkCreateATAOwner:f}),{tokenAccount:D}=Oe,O=he(Oe,["tokenAccount"]);x.addInstruction(O);let $=i!=null?i:await this.getCpmmPoolKeys(t.id),pe=new le(new J(1)).sub(s);return x.addInstruction({instructions:[zi(new B(t.programId),this.scope.ownerPubKey,new B($.authority),new B(t.id),D,S,E,new B($.vault.A),new B($.vault.B),I,K,new B(t.lpMint.address),a?a==null?void 0:a.liquidity:pe.mul(k).quotient,r?A.amount:w,r?w:A.amount)],instructionTypes:[re.CpmmAddLiquidity],lookupTableAddress:$.lookupTableAccount?[$.lookupTableAccount]:[]}),x.addCustomComputeBudget(c),x.addTipInstruction(u),x.versionBuild({txVersion:m})}async withdrawLiquidity(e){var O,$;let{poolInfo:t,poolKeys:i,lpAmount:o,slippage:r,computeBudgetConfig:s,txTipConfig:a,txVersion:c,feePayer:u,closeWsol:l=!0}=e;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region");let m=new le(new J(1)).sub(r),d=await this.getRpcPoolInfo(t.id),[p,b]=[m.mul(o.mul(d.baseReserve).div(d.lpAmount)).quotient,m.mul(o.mul(d.quoteReserve).div(d.lpAmount)).quotient],f=await this.scope.fetchEpochInfo(),[y,k]=[Ae(p,t.mintA.extensions.feeConfig,f,!1),Ae(b,t.mintB.extensions.feeConfig,f,!1)],{account:A}=this.scope,P=this.createTxBuilder(u),[w,h]=[new B(t.mintA.address),new B(t.mintB.address)],T=w.equals(ue),x=h.equals(ue),I,K,{account:S,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new B(t.mintA.address),notUseTokenAccount:T,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!(T&&l),associatedOnly:!T,checkCreateATAOwner:!1});I=S,M&&P.addInstruction(M);let{account:E,instructionParams:W}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new B(t.mintB.address),notUseTokenAccount:x,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!(x&&l),associatedOnly:!x,checkCreateATAOwner:!1});K=E,W&&P.addInstruction(W),(!I||!K)&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",A.tokenAccounts);let q=await A.getCreatedTokenAccount({mint:new B(t.lpMint.address)});q||this.logAndCreateError("cannot found lp token account","tokenAccounts",A.tokenAccounts);let D=i!=null?i:await this.getCpmmPoolKeys(t.id);return P.addInstruction({instructions:[ji(new B(t.programId),this.scope.ownerPubKey,new B(D.authority),new B(t.id),q,I,K,new B(D.vault.A),new B(D.vault.B),w,h,new B(t.lpMint.address),o,p.sub((O=y.fee)!=null?O:new J(0)),b.sub(($=k.fee)!=null?$:new J(0)))],instructionTypes:[re.CpmmWithdrawLiquidity],lookupTableAddress:D.lookupTableAccount?[D.lookupTableAccount]:[]}),P.addCustomComputeBudget(s),P.addTipInstruction(a),P.versionBuild({txVersion:c})}async swap(e){var M,E,W,q,D,O;let{poolInfo:t,poolKeys:i,baseIn:o,fixedOut:r,inputAmount:s,swapResult:a,slippage:c=0,config:u,computeBudgetConfig:l,txTipConfig:m,txVersion:d,feePayer:p}=e,{bypassAssociatedCheck:b,checkCreateATAOwner:f,associatedOnly:y}=U({bypassAssociatedCheck:!1,checkCreateATAOwner:!1,associatedOnly:!0},u),k=this.createTxBuilder(p),[A,P]=[new B(t.mintA.address),new B(t.mintB.address)];r?a.sourceAmountSwapped=a.sourceAmountSwapped.mul(new J((1+c)*1e4)).div(new J(1e4)):a.destinationAmountSwapped=a.destinationAmountSwapped.mul(new J((1-c)*1e4)).div(new J(1e4));let w=t.mintA.address===ue.toBase58(),h=t.mintB.address===ue.toBase58(),{account:T,instructionParams:x}=await this.scope.account.getOrCreateTokenAccount({mint:A,tokenProgram:new B((M=t.mintA.programId)!=null?M:ce),owner:this.scope.ownerPubKey,createInfo:w||!o?{payer:this.scope.ownerPubKey,amount:o?a.sourceAmountSwapped:0}:void 0,notUseTokenAccount:w,skipCloseAccount:!w,associatedOnly:w?!1:y,checkCreateATAOwner:f});x&&k.addInstruction(x);let{account:I,instructionParams:K}=await this.scope.account.getOrCreateTokenAccount({mint:P,tokenProgram:new B((E=t.mintB.programId)!=null?E:ce),owner:this.scope.ownerPubKey,createInfo:h||o?{payer:this.scope.ownerPubKey,amount:o?0:a.sourceAmountSwapped}:void 0,notUseTokenAccount:h,skipCloseAccount:!h,associatedOnly:h?!1:y,checkCreateATAOwner:f});K&&k.addInstruction(K),(!T||!I)&&this.logAndCreateError("user do not have token account",{mintA:t.mintA.symbol||t.mintA.address,mintB:t.mintB.symbol||t.mintB.address,mintATokenAcc:T,mintBTokenAcc:I,mintAUseSOLBalance:w,mintBUseSOLBalance:h,associatedOnly:y});let S=i!=null?i:await this.getCpmmPoolKeys(t.id);return k.addInstruction({instructions:[r?Qi(new B(t.programId),this.scope.ownerPubKey,new B(S.authority),new B(S.config.id),new B(t.id),o?T:I,o?I:T,new B(S.vault[o?"A":"B"]),new B(S.vault[o?"B":"A"]),new B((D=t[o?"mintA":"mintB"].programId)!=null?D:ce),new B((O=t[o?"mintB":"mintA"].programId)!=null?O:ce),o?A:P,o?P:A,gt(new B(t.programId),new B(t.id)).publicKey,a.sourceAmountSwapped,a.destinationAmountSwapped):Yi(new B(t.programId),this.scope.ownerPubKey,new B(S.authority),new B(S.config.id),new B(t.id),o?T:I,o?I:T,new B(S.vault[o?"A":"B"]),new B(S.vault[o?"B":"A"]),new B((W=t[o?"mintA":"mintB"].programId)!=null?W:ce),new B((q=t[o?"mintB":"mintA"].programId)!=null?q:ce),o?A:P,o?P:A,gt(new B(t.programId),new B(t.id)).publicKey,s,a.destinationAmountSwapped)],instructionTypes:[r?re.CpmmSwapBaseOut:re.ClmmSwapBaseIn]}),k.addCustomComputeBudget(l),k.addTipInstruction(m),k.versionBuild({txVersion:d})}async lockLp(e){var d,p,b,f,y;let{poolInfo:t,lpAmount:i,computeBudgetConfig:o,txTipConfig:r,txVersion:s,feePayer:a,feeNftOwner:c}=e;i.isZero()&&this.logAndCreateError("lpAmount must greater than zero",{lpAmount:i.toString()});let u=this.createTxBuilder(a),l=(d=e.poolKeys)!=null?d:await this.getCpmmPoolKeys(t.id),m=await Ji({poolInfo:t,poolKeys:l,ownerInfo:{wallet:this.scope.ownerPubKey,feePayer:(p=e.feePayer)!=null?p:this.scope.ownerPubKey},feeNftOwner:c!=null?c:this.scope.ownerPubKey,lockProgram:(b=e.programId)!=null?b:Wt,lockAuthProgram:(f=e.authProgram)!=null?f:Vt,lpAmount:i,withMetadata:(y=e.withMetadata)!=null?y:!0,getEphemeralSigners:e.getEphemeralSigners});return u.addInstruction(m),u.addCustomComputeBudget(o),u.addTipInstruction(r),u.versionBuild({txVersion:s,extInfo:m.address})}async harvestLockLp(e){var E;let{poolInfo:t,lpFeeAmount:i,nftMint:o,programId:r=Wt,authProgram:s=Vt,cpmmProgram:a,computeBudgetConfig:c,txTipConfig:u,txVersion:l,closeWsol:m=!0}=e;i.isZero()&&this.logAndCreateError("lpFeeAmount must greater than zero",{lpAmount:i.toString()});let d=e.feePayer||this.scope.ownerPubKey,p=this.createTxBuilder(d),[b,f]=[new B(t.mintA.address),new B(t.mintB.address)],y=b.equals(ue),k=f.equals(ue),A,P,{account:w,instructionParams:h}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new B(t.mintA.address),notUseTokenAccount:y,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!(y&&m),associatedOnly:!y,checkCreateATAOwner:!1});A=w,h&&p.addInstruction(h);let{account:T,instructionParams:x}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new B(t.mintB.address),notUseTokenAccount:k,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!(k&&m),associatedOnly:!k,checkCreateATAOwner:!1});P=T,x&&p.addInstruction(x),(!A||!P)&&this.logAndCreateError("cannot found target token accounts",{tokenAccountA:A,tokenAccountB:P});let I=(E=e.poolKeys)!=null?E:await this.getCpmmPoolKeys(t.id),{publicKey:K}=me(d,o,ce),{publicKey:S}=wt(r,o),{publicKey:M}=me(s,new B(t.lpMint.address),ce);return p.addInstruction({instructions:[Vn({programId:r,nftOwner:this.scope.ownerPubKey,auth:s,nftMint:o,nftAccount:K,lockPda:S,poolId:new B(t.id),mintLp:new B(I.mintLp.address),userVaultA:A,userVaultB:P,poolVaultA:new B(I.vault.A),poolVaultB:new B(I.vault.B),mintA:b,mintB:f,lockLpVault:M,lpFeeAmount:i,cpmmProgram:a==null?void 0:a.programId,cpmmAuthProgram:a==null?void 0:a.authProgram})],instructionTypes:[re.CpmmCollectLockFee]}),p.addCustomComputeBudget(c),p.addTipInstruction(u),p.versionBuild({txVersion:l})}async harvestMultiLockLp(e){let{lockInfo:t,programId:i=Wt,authProgram:o=Vt,cpmmProgram:r,computeBudgetConfig:s,txVersion:a,closeWsol:c=!0}=e,u=e.feePayer||this.scope.ownerPubKey,l=this.createTxBuilder(u);return t.forEach(async m=>{var K;let{poolInfo:d,lpFeeAmount:p,nftMint:b}=m;if(p.isZero())return;let[f,y]=[new B(d.mintA.address),new B(d.mintB.address)],k=f.equals(ue),A=y.equals(ue),P,w;if(k){let{account:S,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:d.mintA.programId,mint:new B(d.mintA.address),notUseTokenAccount:!0,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!c,associatedOnly:!1,checkCreateATAOwner:!1});P=S,M&&l.addInstruction(M)}else{let S=new B(d.mintA.address);P=this.scope.account.getAssociatedTokenAccount(S,new B(d.mintA.programId)),l.addInstruction({instructions:[tr(this.scope.ownerPubKey,P,this.scope.ownerPubKey,S)]})}if(A){let{account:S,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:d.mintB.programId,mint:new B(d.mintB.address),notUseTokenAccount:!0,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!c,associatedOnly:!1,checkCreateATAOwner:!1});w=S,M&&l.addInstruction(M)}else{let S=new B(d.mintB.address);w=this.scope.account.getAssociatedTokenAccount(S,new B(d.mintB.programId)),l.addInstruction({instructions:[tr(this.scope.ownerPubKey,w,this.scope.ownerPubKey,S)]})}(!P||!w)&&this.logAndCreateError("cannot found target token accounts",{tokenAccountA:P,tokenAccountB:w});let h=(K=m.poolKeys)!=null?K:await this.getCpmmPoolKeys(d.id),{publicKey:T}=me(u,b,ce),{publicKey:x}=wt(i,b),{publicKey:I}=me(o,new B(d.lpMint.address),ce);l.addInstruction({instructions:[Vn({programId:i,nftOwner:this.scope.ownerPubKey,auth:o,nftMint:b,nftAccount:T,lockPda:x,poolId:new B(d.id),mintLp:new B(h.mintLp.address),userVaultA:P,userVaultB:w,poolVaultA:new B(h.vault.A),poolVaultB:new B(h.vault.B),mintA:f,mintB:y,lockLpVault:I,lpFeeAmount:p,cpmmProgram:r==null?void 0:r.programId,cpmmAuthProgram:r==null?void 0:r.authProgram})],instructionTypes:[re.CpmmCollectLockFee]})}),a===0?l.sizeCheckBuildV0({computeBudgetConfig:s}):l.sizeCheckBuild({computeBudgetConfig:s})}computeSwapAmount({pool:e,amountIn:t,outputMint:i,slippage:o}){let r=i.toString()===e.mintB.address,s=jt.swap(t,r?e.baseReserve:e.quoteReserve,r?e.quoteReserve:e.baseReserve,e.configInfo.tradeFeeRate),a=new te(s.destinationAmountSwapped.toString()).div(s.sourceAmountSwapped.toString()),c=s.destinationAmountSwapped.mul(new J((1-o)*1e4)).div(new J(1e4));return{allTrade:s.sourceAmountSwapped.eq(t),amountIn:t,amountOut:s.destinationAmountSwapped,minAmountOut:c,executionPrice:a,fee:s.tradeFee,priceImpact:e.poolPrice.sub(a).div(e.poolPrice)}}computePairAmount({poolInfo:e,baseReserve:t,quoteReserve:i,amount:o,slippage:r,epochInfo:s,baseIn:a}){var w,h,T,x,I,K,S,M,E;let c=1-Number(r.toSignificant())/100,u=new J(new te(o).mul(10**e[a?"mintA":"mintB"].decimals).mul(c).toFixed(0)),l=Ae(u,e[a?"mintA":"mintB"].extensions.feeConfig,s,!1),m=u.sub((w=l.fee)!=null?w:new J(0)),d=new J(new te(e.lpAmount).mul(10**e.lpMint.decimals).toFixed(0,te.ROUND_DOWN));this.logDebug("baseReserve:",t.toString(),"quoteReserve:",i.toString()),this.logDebug("tokenIn:",a?e.mintA.symbol:e.mintB.symbol,"amountIn:",u.toString(),"amountInFee:",(T=(h=l.fee)==null?void 0:h.toString())!=null?T:0,"anotherToken:",a?e.mintB.symbol:e.mintA.symbol,"slippage:",`${r.toSignificant()}%`);let p=a?"base":"quote";this.logDebug("input side:",p);let b=m.mul(d).div(p==="base"?t:i),f={amount:An,fee:void 0,expirationTime:void 0};if(!m.isZero()){let W=As(b,t,i,d);this.logDebug("lpAmountData:",{amountA:W.amountA.toString(),amountB:W.amountB.toString()}),f=Ae(W[a?"amountB":"amountA"],e[a?"mintB":"mintA"].extensions.feeConfig,s,!0)}let y=new le(new J(1)).add(r),k=new le(new J(1)).sub(r),A=Ae(y.mul(f.amount.sub((x=f.fee)!=null?x:new J(0))).quotient,e[a?"mintB":"mintA"].extensions.feeConfig,s,!0),P=Ae(k.mul(f.amount.sub((I=f.fee)!=null?I:new J(0))).quotient,e[a?"mintB":"mintA"].extensions.feeConfig,s,!0);return this.logDebug("anotherAmount:",f.amount.toString(),"anotherAmountFee:",(S=(K=f.fee)==null?void 0:K.toString())!=null?S:0,"maxAnotherAmount:",A.amount.toString(),"maxAnotherAmountFee:",(E=(M=A.fee)==null?void 0:M.toString())!=null?E:0),{inputAmountFee:l,anotherAmount:f,maxAnotherAmount:A,minAnotherAmount:P,liquidity:b}}};function As(n,e,t,i){let o=n.mul(e).div(i);!o.isZero()&&!n.mul(e).mod(i).isZero()&&(o=o.add(new J(1)));let r=n.mul(t).div(i);return!r.isZero()&&!n.mul(t).mod(i).isZero()&&(r=r.add(new J(1))),{amountA:o,amountB:r}}export{_n as default};
1
+ var ir=Object.defineProperty,rr=Object.defineProperties;var or=Object.getOwnPropertyDescriptors;var ht=Object.getOwnPropertySymbols;var Gn=Object.prototype.hasOwnProperty,Xn=Object.prototype.propertyIsEnumerable;var Un=(n,e,t)=>e in n?ir(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,U=(n,e)=>{for(var t in e||(e={}))Gn.call(e,t)&&Un(n,t,e[t]);if(ht)for(var t of ht(e))Xn.call(e,t)&&Un(n,t,e[t]);return n},z=(n,e)=>rr(n,or(e));var he=(n,e)=>{var t={};for(var i in n)Gn.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&ht)for(var i of ht(n))e.indexOf(i)<0&&Xn.call(n,i)&&(t[i]=n[i]);return t};import{PublicKey as B}from"@solana/web3.js";import{AccountLayout as Ps,NATIVE_MINT as en,TOKEN_PROGRAM_ID as ce,createAssociatedTokenAccountIdempotentInstruction as tr}from"@solana/spl-token";import ke from"bn.js";var Ue=9e15,Ne=1e9,tn="0123456789abcdef",xt="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",It="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",nn={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Ue,maxE:Ue,crypto:!1},jn,Be,V=!0,Ct="[DecimalError] ",Ke=Ct+"Invalid argument: ",Yn=Ct+"Precision limit exceeded",Qn=Ct+"crypto unavailable",Jn="[object Decimal]",oe=Math.floor,ee=Math.pow,sr=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,ar=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,ur=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,$n=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,be=1e7,v=7,cr=9007199254740991,lr=xt.length-1,rn=It.length-1,w={toStringTag:Jn};w.absoluteValue=w.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),O(n)};w.ceil=function(){return O(new this.constructor(this),this.e+1,2)};w.clampedTo=w.clamp=function(n,e){var t,i=this,o=i.constructor;if(n=new o(n),e=new o(e),!n.s||!e.s)return new o(NaN);if(n.gt(e))throw Error(Ke+e);return t=i.cmp(n),t<0?n:i.cmp(e)>0?e:new o(i)};w.comparedTo=w.cmp=function(n){var e,t,i,o,r=this,s=r.d,a=(n=new r.constructor(n)).d,c=r.s,u=n.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(r.e!==n.e)return r.e>n.e^c<0?1:-1;for(i=s.length,o=a.length,e=0,t=i<o?i:o;e<t;++e)if(s[e]!==a[e])return s[e]>a[e]^c<0?1:-1;return i===o?0:i>o^c<0?1:-1};w.cosine=w.cos=function(){var n,e,t=this,i=t.constructor;return t.d?t.d[0]?(n=i.precision,e=i.rounding,i.precision=n+Math.max(t.e,t.sd())+v,i.rounding=1,t=mr(i,ri(i,t)),i.precision=n,i.rounding=e,O(Be==2||Be==3?t.neg():t,n,e,!0)):new i(1):new i(NaN)};w.cubeRoot=w.cbrt=function(){var n,e,t,i,o,r,s,a,c,u,l=this,m=l.constructor;if(!l.isFinite()||l.isZero())return new m(l);for(V=!1,r=l.s*ee(l.s*l,1/3),!r||Math.abs(r)==1/0?(t=ie(l.d),n=l.e,(r=(n-t.length+1)%3)&&(t+=r==1||r==-2?"0":"00"),r=ee(t,1/3),n=oe((n+1)/3)-(n%3==(n<0?-1:2)),r==1/0?t="5e"+n:(t=r.toExponential(),t=t.slice(0,t.indexOf("e")+1)+n),i=new m(t),i.s=l.s):i=new m(r.toString()),s=(n=m.precision)+3;;)if(a=i,c=a.times(a).times(a),u=c.plus(l),i=X(u.plus(l).times(a),u.plus(c),s+2,1),ie(a.d).slice(0,s)===(t=ie(i.d)).slice(0,s))if(t=t.slice(s-3,s+1),t=="9999"||!o&&t=="4999"){if(!o&&(O(a,n+1,0),a.times(a).times(a).eq(l))){i=a;break}s+=4,o=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(O(i,n+1,1),e=!i.times(i).times(i).eq(l));break}return V=!0,O(i,n,m.rounding,e)};w.decimalPlaces=w.dp=function(){var n,e=this.d,t=NaN;if(e){if(n=e.length-1,t=(n-oe(this.e/v))*v,n=e[n],n)for(;n%10==0;n/=10)t--;t<0&&(t=0)}return t};w.dividedBy=w.div=function(n){return X(this,new this.constructor(n))};w.dividedToIntegerBy=w.divToInt=function(n){var e=this,t=e.constructor;return O(X(e,new t(n),0,1,1),t.precision,t.rounding)};w.equals=w.eq=function(n){return this.cmp(n)===0};w.floor=function(){return O(new this.constructor(this),this.e+1,3)};w.greaterThan=w.gt=function(n){return this.cmp(n)>0};w.greaterThanOrEqualTo=w.gte=function(n){var e=this.cmp(n);return e==1||e===0};w.hyperbolicCosine=w.cosh=function(){var n,e,t,i,o,r=this,s=r.constructor,a=new s(1);if(!r.isFinite())return new s(r.s?1/0:NaN);if(r.isZero())return a;t=s.precision,i=s.rounding,s.precision=t+Math.max(r.e,r.sd())+4,s.rounding=1,o=r.d.length,o<32?(n=Math.ceil(o/3),e=(1/Nt(4,n)).toString()):(n=16,e="2.3283064365386962890625e-10"),r=Ge(s,1,r.times(e),new s(1),!0);for(var c,u=n,l=new s(8);u--;)c=r.times(r),r=a.minus(c.times(l.minus(c.times(l))));return O(r,s.precision=t,s.rounding=i,!0)};w.hyperbolicSine=w.sinh=function(){var n,e,t,i,o=this,r=o.constructor;if(!o.isFinite()||o.isZero())return new r(o);if(e=r.precision,t=r.rounding,r.precision=e+Math.max(o.e,o.sd())+4,r.rounding=1,i=o.d.length,i<3)o=Ge(r,2,o,o,!0);else{n=1.4*Math.sqrt(i),n=n>16?16:n|0,o=o.times(1/Nt(5,n)),o=Ge(r,2,o,o,!0);for(var s,a=new r(5),c=new r(16),u=new r(20);n--;)s=o.times(o),o=o.times(a.plus(s.times(c.times(s).plus(u))))}return r.precision=e,r.rounding=t,O(o,e,t,!0)};w.hyperbolicTangent=w.tanh=function(){var n,e,t=this,i=t.constructor;return t.isFinite()?t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+7,i.rounding=1,X(t.sinh(),t.cosh(),i.precision=n,i.rounding=e)):new i(t.s)};w.inverseCosine=w.acos=function(){var n,e=this,t=e.constructor,i=e.abs().cmp(1),o=t.precision,r=t.rounding;return i!==-1?i===0?e.isNeg()?fe(t,o,r):new t(0):new t(NaN):e.isZero()?fe(t,o+4,r).times(.5):(t.precision=o+6,t.rounding=1,e=e.asin(),n=fe(t,o+4,r).times(.5),t.precision=o,t.rounding=r,n.minus(e))};w.inverseHyperbolicCosine=w.acosh=function(){var n,e,t=this,i=t.constructor;return t.lte(1)?new i(t.eq(1)?0:NaN):t.isFinite()?(n=i.precision,e=i.rounding,i.precision=n+Math.max(Math.abs(t.e),t.sd())+4,i.rounding=1,V=!1,t=t.times(t).minus(1).sqrt().plus(t),V=!0,i.precision=n,i.rounding=e,t.ln()):new i(t)};w.inverseHyperbolicSine=w.asinh=function(){var n,e,t=this,i=t.constructor;return!t.isFinite()||t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+2*Math.max(Math.abs(t.e),t.sd())+6,i.rounding=1,V=!1,t=t.times(t).plus(1).sqrt().plus(t),V=!0,i.precision=n,i.rounding=e,t.ln())};w.inverseHyperbolicTangent=w.atanh=function(){var n,e,t,i,o=this,r=o.constructor;return o.isFinite()?o.e>=0?new r(o.abs().eq(1)?o.s/0:o.isZero()?o:NaN):(n=r.precision,e=r.rounding,i=o.sd(),Math.max(i,n)<2*-o.e-1?O(new r(o),n,e,!0):(r.precision=t=i-o.e,o=X(o.plus(1),new r(1).minus(o),t+n,1),r.precision=n+4,r.rounding=1,o=o.ln(),r.precision=n,r.rounding=e,o.times(.5))):new r(NaN)};w.inverseSine=w.asin=function(){var n,e,t,i,o=this,r=o.constructor;return o.isZero()?new r(o):(e=o.abs().cmp(1),t=r.precision,i=r.rounding,e!==-1?e===0?(n=fe(r,t+4,i).times(.5),n.s=o.s,n):new r(NaN):(r.precision=t+6,r.rounding=1,o=o.div(new r(1).minus(o.times(o)).sqrt().plus(1)).atan(),r.precision=t,r.rounding=i,o.times(2)))};w.inverseTangent=w.atan=function(){var n,e,t,i,o,r,s,a,c,u=this,l=u.constructor,m=l.precision,d=l.rounding;if(u.isFinite()){if(u.isZero())return new l(u);if(u.abs().eq(1)&&m+4<=rn)return s=fe(l,m+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(m+4<=rn)return s=fe(l,m+4,d).times(.5),s.s=u.s,s}for(l.precision=a=m+10,l.rounding=1,t=Math.min(28,a/v+2|0),n=t;n;--n)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(V=!1,e=Math.ceil(a/v),i=1,c=u.times(u),s=new l(u),o=u;n!==-1;)if(o=o.times(c),r=s.minus(o.div(i+=2)),o=o.times(c),s=r.plus(o.div(i+=2)),s.d[e]!==void 0)for(n=e;s.d[n]===r.d[n]&&n--;);return t&&(s=s.times(2<<t-1)),V=!0,O(s,l.precision=m,l.rounding=d,!0)};w.isFinite=function(){return!!this.d};w.isInteger=w.isInt=function(){return!!this.d&&oe(this.e/v)>this.d.length-2};w.isNaN=function(){return!this.s};w.isNegative=w.isNeg=function(){return this.s<0};w.isPositive=w.isPos=function(){return this.s>0};w.isZero=function(){return!!this.d&&this.d[0]===0};w.lessThan=w.lt=function(n){return this.cmp(n)<0};w.lessThanOrEqualTo=w.lte=function(n){return this.cmp(n)<1};w.logarithm=w.log=function(n){var e,t,i,o,r,s,a,c,u=this,l=u.constructor,m=l.precision,d=l.rounding,p=5;if(n==null)n=new l(10),e=!0;else{if(n=new l(n),t=n.d,n.s<0||!t||!t[0]||n.eq(1))return new l(NaN);e=n.eq(10)}if(t=u.d,u.s<0||!t||!t[0]||u.eq(1))return new l(t&&!t[0]?-1/0:u.s!=1?NaN:t?0:1/0);if(e)if(t.length>1)r=!0;else{for(o=t[0];o%10===0;)o/=10;r=o!==1}if(V=!1,a=m+p,s=Ce(u,a),i=e?St(l,a+10):Ce(n,a),c=X(s,i,a,1),nt(c.d,o=m,d))do if(a+=10,s=Ce(u,a),i=e?St(l,a+10):Ce(n,a),c=X(s,i,a,1),!r){+ie(c.d).slice(o+1,o+15)+1==1e14&&(c=O(c,m+1,0));break}while(nt(c.d,o+=10,d));return V=!0,O(c,m,d)};w.minus=w.sub=function(n){var e,t,i,o,r,s,a,c,u,l,m,d,p=this,b=p.constructor;if(n=new b(n),!p.d||!n.d)return!p.s||!n.s?n=new b(NaN):p.d?n.s=-n.s:n=new b(n.d||p.s!==n.s?p:NaN),n;if(p.s!=n.s)return n.s=-n.s,p.plus(n);if(u=p.d,d=n.d,a=b.precision,c=b.rounding,!u[0]||!d[0]){if(d[0])n.s=-n.s;else if(u[0])n=new b(p);else return new b(c===3?-0:0);return V?O(n,a,c):n}if(t=oe(n.e/v),l=oe(p.e/v),u=u.slice(),r=l-t,r){for(m=r<0,m?(e=u,r=-r,s=d.length):(e=d,t=l,s=u.length),i=Math.max(Math.ceil(a/v),s)+2,r>i&&(r=i,e.length=1),e.reverse(),i=r;i--;)e.push(0);e.reverse()}else{for(i=u.length,s=d.length,m=i<s,m&&(s=i),i=0;i<s;i++)if(u[i]!=d[i]){m=u[i]<d[i];break}r=0}for(m&&(e=u,u=d,d=e,n.s=-n.s),s=u.length,i=d.length-s;i>0;--i)u[s++]=0;for(i=d.length;i>r;){if(u[--i]<d[i]){for(o=i;o&&u[--o]===0;)u[o]=be-1;--u[o],u[i]+=be}u[i]-=d[i]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--t;return u[0]?(n.d=u,n.e=Kt(u,t),V?O(n,a,c):n):new b(c===3?-0:0)};w.modulo=w.mod=function(n){var e,t=this,i=t.constructor;return n=new i(n),!t.d||!n.s||n.d&&!n.d[0]?new i(NaN):!n.d||t.d&&!t.d[0]?O(new i(t),i.precision,i.rounding):(V=!1,i.modulo==9?(e=X(t,n.abs(),0,3,1),e.s*=n.s):e=X(t,n,0,i.modulo,1),e=e.times(n),V=!0,t.minus(e))};w.naturalExponential=w.exp=function(){return on(this)};w.naturalLogarithm=w.ln=function(){return Ce(this)};w.negated=w.neg=function(){var n=new this.constructor(this);return n.s=-n.s,O(n)};w.plus=w.add=function(n){var e,t,i,o,r,s,a,c,u,l,m=this,d=m.constructor;if(n=new d(n),!m.d||!n.d)return!m.s||!n.s?n=new d(NaN):m.d||(n=new d(n.d||m.s===n.s?m:NaN)),n;if(m.s!=n.s)return n.s=-n.s,m.minus(n);if(u=m.d,l=n.d,a=d.precision,c=d.rounding,!u[0]||!l[0])return l[0]||(n=new d(m)),V?O(n,a,c):n;if(r=oe(m.e/v),i=oe(n.e/v),u=u.slice(),o=r-i,o){for(o<0?(t=u,o=-o,s=l.length):(t=l,i=r,s=u.length),r=Math.ceil(a/v),s=r>s?r+1:s+1,o>s&&(o=s,t.length=1),t.reverse();o--;)t.push(0);t.reverse()}for(s=u.length,o=l.length,s-o<0&&(o=s,t=l,l=u,u=t),e=0;o;)e=(u[--o]=u[o]+l[o]+e)/be|0,u[o]%=be;for(e&&(u.unshift(e),++i),s=u.length;u[--s]==0;)u.pop();return n.d=u,n.e=Kt(u,i),V?O(n,a,c):n};w.precision=w.sd=function(n){var e,t=this;if(n!==void 0&&n!==!!n&&n!==1&&n!==0)throw Error(Ke+n);return t.d?(e=ei(t.d),n&&t.e+1>e&&(e=t.e+1)):e=NaN,e};w.round=function(){var n=this,e=n.constructor;return O(new e(n),n.e+1,e.rounding)};w.sine=w.sin=function(){var n,e,t=this,i=t.constructor;return t.isFinite()?t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+Math.max(t.e,t.sd())+v,i.rounding=1,t=pr(i,ri(i,t)),i.precision=n,i.rounding=e,O(Be>2?t.neg():t,n,e,!0)):new i(NaN)};w.squareRoot=w.sqrt=function(){var n,e,t,i,o,r,s=this,a=s.d,c=s.e,u=s.s,l=s.constructor;if(u!==1||!a||!a[0])return new l(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(V=!1,u=Math.sqrt(+s),u==0||u==1/0?(e=ie(a),(e.length+c)%2==0&&(e+="0"),u=Math.sqrt(e),c=oe((c+1)/2)-(c<0||c%2),u==1/0?e="5e"+c:(e=u.toExponential(),e=e.slice(0,e.indexOf("e")+1)+c),i=new l(e)):i=new l(u.toString()),t=(c=l.precision)+3;;)if(r=i,i=r.plus(X(s,r,t+2,1)).times(.5),ie(r.d).slice(0,t)===(e=ie(i.d)).slice(0,t))if(e=e.slice(t-3,t+1),e=="9999"||!o&&e=="4999"){if(!o&&(O(r,c+1,0),r.times(r).eq(s))){i=r;break}t+=4,o=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(O(i,c+1,1),n=!i.times(i).eq(s));break}return V=!0,O(i,c,l.rounding,n)};w.tangent=w.tan=function(){var n,e,t=this,i=t.constructor;return t.isFinite()?t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+10,i.rounding=1,t=t.sin(),t.s=1,t=X(t,new i(1).minus(t.times(t)).sqrt(),n+10,0),i.precision=n,i.rounding=e,O(Be==2||Be==4?t.neg():t,n,e,!0)):new i(NaN)};w.times=w.mul=function(n){var e,t,i,o,r,s,a,c,u,l=this,m=l.constructor,d=l.d,p=(n=new m(n)).d;if(n.s*=l.s,!d||!d[0]||!p||!p[0])return new m(!n.s||d&&!d[0]&&!p||p&&!p[0]&&!d?NaN:!d||!p?n.s/0:n.s*0);for(t=oe(l.e/v)+oe(n.e/v),c=d.length,u=p.length,c<u&&(r=d,d=p,p=r,s=c,c=u,u=s),r=[],s=c+u,i=s;i--;)r.push(0);for(i=u;--i>=0;){for(e=0,o=c+i;o>i;)a=r[o]+p[i]*d[o-i-1]+e,r[o--]=a%be|0,e=a/be|0;r[o]=(r[o]+e)%be|0}for(;!r[--s];)r.pop();return e?++t:r.shift(),n.d=r,n.e=Kt(r,t),V?O(n,m.precision,m.rounding):n};w.toBinary=function(n,e){return an(this,2,n,e)};w.toDecimalPlaces=w.toDP=function(n,e){var t=this,i=t.constructor;return t=new i(t),n===void 0?t:(ae(n,0,Ne),e===void 0?e=i.rounding:ae(e,0,8),O(t,n+t.e+1,e))};w.toExponential=function(n,e){var t,i=this,o=i.constructor;return n===void 0?t=we(i,!0):(ae(n,0,Ne),e===void 0?e=o.rounding:ae(e,0,8),i=O(new o(i),n+1,e),t=we(i,!0,n+1)),i.isNeg()&&!i.isZero()?"-"+t:t};w.toFixed=function(n,e){var t,i,o=this,r=o.constructor;return n===void 0?t=we(o):(ae(n,0,Ne),e===void 0?e=r.rounding:ae(e,0,8),i=O(new r(o),n+o.e+1,e),t=we(i,!1,n+i.e+1)),o.isNeg()&&!o.isZero()?"-"+t:t};w.toFraction=function(n){var e,t,i,o,r,s,a,c,u,l,m,d,p=this,b=p.d,f=p.constructor;if(!b)return new f(p);if(u=t=new f(1),i=c=new f(0),e=new f(i),r=e.e=ei(b)-p.e-1,s=r%v,e.d[0]=ee(10,s<0?v+s:s),n==null)n=r>0?e:u;else{if(a=new f(n),!a.isInt()||a.lt(u))throw Error(Ke+a);n=a.gt(e)?r>0?e:u:a}for(V=!1,a=new f(ie(b)),l=f.precision,f.precision=r=b.length*v*2;m=X(a,e,0,1,1),o=t.plus(m.times(i)),o.cmp(n)!=1;)t=i,i=o,o=u,u=c.plus(m.times(o)),c=o,o=e,e=a.minus(m.times(o)),a=o;return o=X(n.minus(t),i,0,1,1),c=c.plus(o.times(u)),t=t.plus(o.times(i)),c.s=u.s=p.s,d=X(u,i,r,1).minus(p).abs().cmp(X(c,t,r,1).minus(p).abs())<1?[u,i]:[c,t],f.precision=l,V=!0,d};w.toHexadecimal=w.toHex=function(n,e){return an(this,16,n,e)};w.toNearest=function(n,e){var t=this,i=t.constructor;if(t=new i(t),n==null){if(!t.d)return t;n=new i(1),e=i.rounding}else{if(n=new i(n),e===void 0?e=i.rounding:ae(e,0,8),!t.d)return n.s?t:n;if(!n.d)return n.s&&(n.s=t.s),n}return n.d[0]?(V=!1,t=X(t,n,0,e,1).times(n),V=!0,O(t)):(n.s=t.s,t=n),t};w.toNumber=function(){return+this};w.toOctal=function(n,e){return an(this,8,n,e)};w.toPower=w.pow=function(n){var e,t,i,o,r,s,a=this,c=a.constructor,u=+(n=new c(n));if(!a.d||!n.d||!a.d[0]||!n.d[0])return new c(ee(+a,u));if(a=new c(a),a.eq(1))return a;if(i=c.precision,r=c.rounding,n.eq(1))return O(a,i,r);if(e=oe(n.e/v),e>=n.d.length-1&&(t=u<0?-u:u)<=cr)return o=ti(c,a,t,i),n.s<0?new c(1).div(o):O(o,i,r);if(s=a.s,s<0){if(e<n.d.length-1)return new c(NaN);if((n.d[e]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return t=ee(+a,u),e=t==0||!isFinite(t)?oe(u*(Math.log("0."+ie(a.d))/Math.LN10+a.e+1)):new c(t+"").e,e>c.maxE+1||e<c.minE-1?new c(e>0?s/0:0):(V=!1,c.rounding=a.s=1,t=Math.min(12,(e+"").length),o=on(n.times(Ce(a,i+t)),i),o.d&&(o=O(o,i+5,1),nt(o.d,i,r)&&(e=i+10,o=O(on(n.times(Ce(a,e+t)),e),e+5,1),+ie(o.d).slice(i+1,i+15)+1==1e14&&(o=O(o,i+1,0)))),o.s=s,V=!0,c.rounding=r,O(o,i,r))};w.toPrecision=function(n,e){var t,i=this,o=i.constructor;return n===void 0?t=we(i,i.e<=o.toExpNeg||i.e>=o.toExpPos):(ae(n,1,Ne),e===void 0?e=o.rounding:ae(e,0,8),i=O(new o(i),n,e),t=we(i,n<=i.e||i.e<=o.toExpNeg,n)),i.isNeg()&&!i.isZero()?"-"+t:t};w.toSignificantDigits=w.toSD=function(n,e){var t=this,i=t.constructor;return n===void 0?(n=i.precision,e=i.rounding):(ae(n,1,Ne),e===void 0?e=i.rounding:ae(e,0,8)),O(new i(t),n,e)};w.toString=function(){var n=this,e=n.constructor,t=we(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()&&!n.isZero()?"-"+t:t};w.truncated=w.trunc=function(){return O(new this.constructor(this),this.e+1,1)};w.valueOf=w.toJSON=function(){var n=this,e=n.constructor,t=we(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()?"-"+t:t};function ie(n){var e,t,i,o=n.length-1,r="",s=n[0];if(o>0){for(r+=s,e=1;e<o;e++)i=n[e]+"",t=v-i.length,t&&(r+=Se(t)),r+=i;s=n[e],i=s+"",t=v-i.length,t&&(r+=Se(t))}else if(s===0)return"0";for(;s%10===0;)s/=10;return r+s}function ae(n,e,t){if(n!==~~n||n<e||n>t)throw Error(Ke+n)}function nt(n,e,t,i){var o,r,s,a;for(r=n[0];r>=10;r/=10)--e;return--e<0?(e+=v,o=0):(o=Math.ceil((e+1)/v),e%=v),r=ee(10,v-e),a=n[o]%r|0,i==null?e<3?(e==0?a=a/100|0:e==1&&(a=a/10|0),s=t<4&&a==99999||t>3&&a==49999||a==5e4||a==0):s=(t<4&&a+1==r||t>3&&a+1==r/2)&&(n[o+1]/r/100|0)==ee(10,e-2)-1||(a==r/2||a==0)&&(n[o+1]/r/100|0)==0:e<4?(e==0?a=a/1e3|0:e==1?a=a/100|0:e==2&&(a=a/10|0),s=(i||t<4)&&a==9999||!i&&t>3&&a==4999):s=((i||t<4)&&a+1==r||!i&&t>3&&a+1==r/2)&&(n[o+1]/r/1e3|0)==ee(10,e-3)-1,s}function Bt(n,e,t){for(var i,o=[0],r,s=0,a=n.length;s<a;){for(r=o.length;r--;)o[r]*=e;for(o[0]+=tn.indexOf(n.charAt(s++)),i=0;i<o.length;i++)o[i]>t-1&&(o[i+1]===void 0&&(o[i+1]=0),o[i+1]+=o[i]/t|0,o[i]%=t)}return o.reverse()}function mr(n,e){var t,i,o;if(e.isZero())return e;i=e.d.length,i<32?(t=Math.ceil(i/3),o=(1/Nt(4,t)).toString()):(t=16,o="2.3283064365386962890625e-10"),n.precision+=t,e=Ge(n,1,e.times(o),new n(1));for(var r=t;r--;){var s=e.times(e);e=s.times(s).minus(s).times(8).plus(1)}return n.precision-=t,e}var X=function(){function n(i,o,r){var s,a=0,c=i.length;for(i=i.slice();c--;)s=i[c]*o+a,i[c]=s%r|0,a=s/r|0;return a&&i.unshift(a),i}function e(i,o,r,s){var a,c;if(r!=s)c=r>s?1:-1;else for(a=c=0;a<r;a++)if(i[a]!=o[a]){c=i[a]>o[a]?1:-1;break}return c}function t(i,o,r,s){for(var a=0;r--;)i[r]-=a,a=i[r]<o[r]?1:0,i[r]=a*s+i[r]-o[r];for(;!i[0]&&i.length>1;)i.shift()}return function(i,o,r,s,a,c){var u,l,m,d,p,b,f,y,P,A,k,g,T,h,x,I,M,K,C,N,W=i.constructor,q=i.s==o.s?1:-1,D=i.d,F=o.d;if(!D||!D[0]||!F||!F[0])return new W(!i.s||!o.s||(D?F&&D[0]==F[0]:!F)?NaN:D&&D[0]==0||!F?q*0:q/0);for(c?(p=1,l=i.e-o.e):(c=be,p=v,l=oe(i.e/p)-oe(o.e/p)),C=F.length,M=D.length,P=new W(q),A=P.d=[],m=0;F[m]==(D[m]||0);m++);if(F[m]>(D[m]||0)&&l--,r==null?(h=r=W.precision,s=W.rounding):a?h=r+(i.e-o.e)+1:h=r,h<0)A.push(1),b=!0;else{if(h=h/p+2|0,m=0,C==1){for(d=0,F=F[0],h++;(m<M||d)&&h--;m++)x=d*c+(D[m]||0),A[m]=x/F|0,d=x%F|0;b=d||m<M}else{for(d=c/(F[0]+1)|0,d>1&&(F=n(F,d,c),D=n(D,d,c),C=F.length,M=D.length),I=C,k=D.slice(0,C),g=k.length;g<C;)k[g++]=0;N=F.slice(),N.unshift(0),K=F[0],F[1]>=c/2&&++K;do d=0,u=e(F,k,C,g),u<0?(T=k[0],C!=g&&(T=T*c+(k[1]||0)),d=T/K|0,d>1?(d>=c&&(d=c-1),f=n(F,d,c),y=f.length,g=k.length,u=e(f,k,y,g),u==1&&(d--,t(f,C<y?N:F,y,c))):(d==0&&(u=d=1),f=F.slice()),y=f.length,y<g&&f.unshift(0),t(k,f,g,c),u==-1&&(g=k.length,u=e(F,k,C,g),u<1&&(d++,t(k,C<g?N:F,g,c))),g=k.length):u===0&&(d++,k=[0]),A[m++]=d,u&&k[0]?k[g++]=D[I]||0:(k=[D[I]],g=1);while((I++<M||k[0]!==void 0)&&h--);b=k[0]!==void 0}A[0]||A.shift()}if(p==1)P.e=l,jn=b;else{for(m=1,d=A[0];d>=10;d/=10)m++;P.e=m+l*p-1,O(P,a?r+P.e+1:r,s,b)}return P}}();function O(n,e,t,i){var o,r,s,a,c,u,l,m,d,p=n.constructor;e:if(e!=null){if(m=n.d,!m)return n;for(o=1,a=m[0];a>=10;a/=10)o++;if(r=e-o,r<0)r+=v,s=e,l=m[d=0],c=l/ee(10,o-s-1)%10|0;else if(d=Math.ceil((r+1)/v),a=m.length,d>=a)if(i){for(;a++<=d;)m.push(0);l=c=0,o=1,r%=v,s=r-v+1}else break e;else{for(l=a=m[d],o=1;a>=10;a/=10)o++;r%=v,s=r-v+o,c=s<0?0:l/ee(10,o-s-1)%10|0}if(i=i||e<0||m[d+1]!==void 0||(s<0?l:l%ee(10,o-s-1)),u=t<4?(c||i)&&(t==0||t==(n.s<0?3:2)):c>5||c==5&&(t==4||i||t==6&&(r>0?s>0?l/ee(10,o-s):0:m[d-1])%10&1||t==(n.s<0?8:7)),e<1||!m[0])return m.length=0,u?(e-=n.e+1,m[0]=ee(10,(v-e%v)%v),n.e=-e||0):m[0]=n.e=0,n;if(r==0?(m.length=d,a=1,d--):(m.length=d+1,a=ee(10,v-r),m[d]=s>0?(l/ee(10,o-s)%ee(10,s)|0)*a:0),u)for(;;)if(d==0){for(r=1,s=m[0];s>=10;s/=10)r++;for(s=m[0]+=a,a=1;s>=10;s/=10)a++;r!=a&&(n.e++,m[0]==be&&(m[0]=1));break}else{if(m[d]+=a,m[d]!=be)break;m[d--]=0,a=1}for(r=m.length;m[--r]===0;)m.pop()}return V&&(n.e>p.maxE?(n.d=null,n.e=NaN):n.e<p.minE&&(n.e=0,n.d=[0])),n}function we(n,e,t){if(!n.isFinite())return ii(n);var i,o=n.e,r=ie(n.d),s=r.length;return e?(t&&(i=t-s)>0?r=r.charAt(0)+"."+r.slice(1)+Se(i):s>1&&(r=r.charAt(0)+"."+r.slice(1)),r=r+(n.e<0?"e":"e+")+n.e):o<0?(r="0."+Se(-o-1)+r,t&&(i=t-s)>0&&(r+=Se(i))):o>=s?(r+=Se(o+1-s),t&&(i=t-o-1)>0&&(r=r+"."+Se(i))):((i=o+1)<s&&(r=r.slice(0,i)+"."+r.slice(i)),t&&(i=t-s)>0&&(o+1===s&&(r+="."),r+=Se(i))),r}function Kt(n,e){var t=n[0];for(e*=v;t>=10;t/=10)e++;return e}function St(n,e,t){if(e>lr)throw V=!0,t&&(n.precision=t),Error(Yn);return O(new n(xt),e,1,!0)}function fe(n,e,t){if(e>rn)throw Error(Yn);return O(new n(It),e,t,!0)}function ei(n){var e=n.length-1,t=e*v+1;if(e=n[e],e){for(;e%10==0;e/=10)t--;for(e=n[0];e>=10;e/=10)t++}return t}function Se(n){for(var e="";n--;)e+="0";return e}function ti(n,e,t,i){var o,r=new n(1),s=Math.ceil(i/v+4);for(V=!1;;){if(t%2&&(r=r.times(e),Zn(r.d,s)&&(o=!0)),t=oe(t/2),t===0){t=r.d.length-1,o&&r.d[t]===0&&++r.d[t];break}e=e.times(e),Zn(e.d,s)}return V=!0,r}function Hn(n){return n.d[n.d.length-1]&1}function ni(n,e,t){for(var i,o=new n(e[0]),r=0;++r<e.length;)if(i=new n(e[r]),i.s)o[t](i)&&(o=i);else{o=i;break}return o}function on(n,e){var t,i,o,r,s,a,c,u=0,l=0,m=0,d=n.constructor,p=d.rounding,b=d.precision;if(!n.d||!n.d[0]||n.e>17)return new d(n.d?n.d[0]?n.s<0?0:1/0:1:n.s?n.s<0?0:n:0/0);for(e==null?(V=!1,c=b):c=e,a=new d(.03125);n.e>-2;)n=n.times(a),m+=5;for(i=Math.log(ee(2,m))/Math.LN10*2+5|0,c+=i,t=r=s=new d(1),d.precision=c;;){if(r=O(r.times(n),c,1),t=t.times(++l),a=s.plus(X(r,t,c,1)),ie(a.d).slice(0,c)===ie(s.d).slice(0,c)){for(o=m;o--;)s=O(s.times(s),c,1);if(e==null)if(u<3&&nt(s.d,c-i,p,u))d.precision=c+=10,t=r=a=new d(1),l=0,u++;else return O(s,d.precision=b,p,V=!0);else return d.precision=b,s}s=a}}function Ce(n,e){var t,i,o,r,s,a,c,u,l,m,d,p=1,b=10,f=n,y=f.d,P=f.constructor,A=P.rounding,k=P.precision;if(f.s<0||!y||!y[0]||!f.e&&y[0]==1&&y.length==1)return new P(y&&!y[0]?-1/0:f.s!=1?NaN:y?0:f);if(e==null?(V=!1,l=k):l=e,P.precision=l+=b,t=ie(y),i=t.charAt(0),Math.abs(r=f.e)<15e14){for(;i<7&&i!=1||i==1&&t.charAt(1)>3;)f=f.times(n),t=ie(f.d),i=t.charAt(0),p++;r=f.e,i>1?(f=new P("0."+t),r++):f=new P(i+"."+t.slice(1))}else return u=St(P,l+2,k).times(r+""),f=Ce(new P(i+"."+t.slice(1)),l-b).plus(u),P.precision=k,e==null?O(f,k,A,V=!0):f;for(m=f,c=s=f=X(f.minus(1),f.plus(1),l,1),d=O(f.times(f),l,1),o=3;;){if(s=O(s.times(d),l,1),u=c.plus(X(s,new P(o),l,1)),ie(u.d).slice(0,l)===ie(c.d).slice(0,l))if(c=c.times(2),r!==0&&(c=c.plus(St(P,l+2,k).times(r+""))),c=X(c,new P(p),l,1),e==null)if(nt(c.d,l-b,A,a))P.precision=l+=b,u=s=f=X(m.minus(1),m.plus(1),l,1),d=O(f.times(f),l,1),o=a=1;else return O(c,P.precision=k,A,V=!0);else return P.precision=k,c;c=u,o+=2}}function ii(n){return String(n.s*n.s/0)}function sn(n,e){var t,i,o;for((t=e.indexOf("."))>-1&&(e=e.replace(".","")),(i=e.search(/e/i))>0?(t<0&&(t=i),t+=+e.slice(i+1),e=e.substring(0,i)):t<0&&(t=e.length),i=0;e.charCodeAt(i)===48;i++);for(o=e.length;e.charCodeAt(o-1)===48;--o);if(e=e.slice(i,o),e){if(o-=i,n.e=t=t-i-1,n.d=[],i=(t+1)%v,t<0&&(i+=v),i<o){for(i&&n.d.push(+e.slice(0,i)),o-=v;i<o;)n.d.push(+e.slice(i,i+=v));e=e.slice(i),i=v-e.length}else i-=o;for(;i--;)e+="0";n.d.push(+e),V&&(n.e>n.constructor.maxE?(n.d=null,n.e=NaN):n.e<n.constructor.minE&&(n.e=0,n.d=[0]))}else n.e=0,n.d=[0];return n}function dr(n,e){var t,i,o,r,s,a,c,u,l;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),$n.test(e))return sn(n,e)}else if(e==="Infinity"||e==="NaN")return+e||(n.s=NaN),n.e=NaN,n.d=null,n;if(ar.test(e))t=16,e=e.toLowerCase();else if(sr.test(e))t=2;else if(ur.test(e))t=8;else throw Error(Ke+e);for(r=e.search(/p/i),r>0?(c=+e.slice(r+1),e=e.substring(2,r)):e=e.slice(2),r=e.indexOf("."),s=r>=0,i=n.constructor,s&&(e=e.replace(".",""),a=e.length,r=a-r,o=ti(i,new i(t),r,r*2)),u=Bt(e,t,be),l=u.length-1,r=l;u[r]===0;--r)u.pop();return r<0?new i(n.s*0):(n.e=Kt(u,l),n.d=u,V=!1,s&&(n=X(n,o,a*4)),c&&(n=n.times(Math.abs(c)<54?ee(2,c):it.pow(2,c))),V=!0,n)}function pr(n,e){var t,i=e.d.length;if(i<3)return e.isZero()?e:Ge(n,2,e,e);t=1.4*Math.sqrt(i),t=t>16?16:t|0,e=e.times(1/Nt(5,t)),e=Ge(n,2,e,e);for(var o,r=new n(5),s=new n(16),a=new n(20);t--;)o=e.times(e),e=e.times(r.plus(o.times(s.times(o).minus(a))));return e}function Ge(n,e,t,i,o){var r,s,a,c,u=1,l=n.precision,m=Math.ceil(l/v);for(V=!1,c=t.times(t),a=new n(i);;){if(s=X(a.times(c),new n(e++*e++),l,1),a=o?i.plus(s):i.minus(s),i=X(s.times(c),new n(e++*e++),l,1),s=a.plus(i),s.d[m]!==void 0){for(r=m;s.d[r]===a.d[r]&&r--;);if(r==-1)break}r=a,a=i,i=s,s=r,u++}return V=!0,s.d.length=m+1,s}function Nt(n,e){for(var t=n;--e;)t*=n;return t}function ri(n,e){var t,i=e.s<0,o=fe(n,n.precision,1),r=o.times(.5);if(e=e.abs(),e.lte(r))return Be=i?4:1,e;if(t=e.divToInt(o),t.isZero())Be=i?3:2;else{if(e=e.minus(t.times(o)),e.lte(r))return Be=Hn(t)?i?2:3:i?4:1,e;Be=Hn(t)?i?1:4:i?3:2}return e.minus(o).abs()}function an(n,e,t,i){var o,r,s,a,c,u,l,m,d,p=n.constructor,b=t!==void 0;if(b?(ae(t,1,Ne),i===void 0?i=p.rounding:ae(i,0,8)):(t=p.precision,i=p.rounding),!n.isFinite())l=ii(n);else{for(l=we(n),s=l.indexOf("."),b?(o=2,e==16?t=t*4-3:e==8&&(t=t*3-2)):o=e,s>=0&&(l=l.replace(".",""),d=new p(1),d.e=l.length-s,d.d=Bt(we(d),10,o),d.e=d.d.length),m=Bt(l,10,o),r=c=m.length;m[--c]==0;)m.pop();if(!m[0])l=b?"0p+0":"0";else{if(s<0?r--:(n=new p(n),n.d=m,n.e=r,n=X(n,d,t,i,0,o),m=n.d,r=n.e,u=jn),s=m[t],a=o/2,u=u||m[t+1]!==void 0,u=i<4?(s!==void 0||u)&&(i===0||i===(n.s<0?3:2)):s>a||s===a&&(i===4||u||i===6&&m[t-1]&1||i===(n.s<0?8:7)),m.length=t,u)for(;++m[--t]>o-1;)m[t]=0,t||(++r,m.unshift(1));for(c=m.length;!m[c-1];--c);for(s=0,l="";s<c;s++)l+=tn.charAt(m[s]);if(b){if(c>1)if(e==16||e==8){for(s=e==16?4:3,--c;c%s;c++)l+="0";for(m=Bt(l,o,e),c=m.length;!m[c-1];--c);for(s=1,l="1.";s<c;s++)l+=tn.charAt(m[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(r<0?"p":"p+")+r}else if(r<0){for(;++r;)l="0"+l;l="0."+l}else if(++r>c)for(r-=c;r--;)l+="0";else r<c&&(l=l.slice(0,r)+"."+l.slice(r))}l=(e==16?"0x":e==2?"0b":e==8?"0o":"")+l}return n.s<0?"-"+l:l}function Zn(n,e){if(n.length>e)return n.length=e,!0}function fr(n){return new this(n).abs()}function br(n){return new this(n).acos()}function yr(n){return new this(n).acosh()}function gr(n,e){return new this(n).plus(e)}function wr(n){return new this(n).asin()}function Pr(n){return new this(n).asinh()}function Ar(n){return new this(n).atan()}function kr(n){return new this(n).atanh()}function Tr(n,e){n=new this(n),e=new this(e);var t,i=this.precision,o=this.rounding,r=i+4;return!n.s||!e.s?t=new this(NaN):!n.d&&!e.d?(t=fe(this,r,1).times(e.s>0?.25:.75),t.s=n.s):!e.d||n.isZero()?(t=e.s<0?fe(this,i,o):new this(0),t.s=n.s):!n.d||e.isZero()?(t=fe(this,r,1).times(.5),t.s=n.s):e.s<0?(this.precision=r,this.rounding=1,t=this.atan(X(n,e,r,1)),e=fe(this,r,1),this.precision=i,this.rounding=o,t=n.s<0?t.minus(e):t.plus(e)):t=this.atan(X(n,e,r,1)),t}function hr(n){return new this(n).cbrt()}function Br(n){return O(n=new this(n),n.e+1,2)}function xr(n,e,t){return new this(n).clamp(e,t)}function Ir(n){if(!n||typeof n!="object")throw Error(Ct+"Object expected");var e,t,i,o=n.defaults===!0,r=["precision",1,Ne,"rounding",0,8,"toExpNeg",-Ue,0,"toExpPos",0,Ue,"maxE",0,Ue,"minE",-Ue,0,"modulo",0,9];for(e=0;e<r.length;e+=3)if(t=r[e],o&&(this[t]=nn[t]),(i=n[t])!==void 0)if(oe(i)===i&&i>=r[e+1]&&i<=r[e+2])this[t]=i;else throw Error(Ke+t+": "+i);if(t="crypto",o&&(this[t]=nn[t]),(i=n[t])!==void 0)if(i===!0||i===!1||i===0||i===1)if(i)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[t]=!0;else throw Error(Qn);else this[t]=!1;else throw Error(Ke+t+": "+i);return this}function Sr(n){return new this(n).cos()}function Cr(n){return new this(n).cosh()}function oi(n){var e,t,i;function o(r){var s,a,c,u=this;if(!(u instanceof o))return new o(r);if(u.constructor=o,zn(r)){u.s=r.s,V?!r.d||r.e>o.maxE?(u.e=NaN,u.d=null):r.e<o.minE?(u.e=0,u.d=[0]):(u.e=r.e,u.d=r.d.slice()):(u.e=r.e,u.d=r.d?r.d.slice():r.d);return}if(c=typeof r,c==="number"){if(r===0){u.s=1/r<0?-1:1,u.e=0,u.d=[0];return}if(r<0?(r=-r,u.s=-1):u.s=1,r===~~r&&r<1e7){for(s=0,a=r;a>=10;a/=10)s++;V?s>o.maxE?(u.e=NaN,u.d=null):s<o.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[r]):(u.e=s,u.d=[r]);return}else if(r*0!==0){r||(u.s=NaN),u.e=NaN,u.d=null;return}return sn(u,r.toString())}else if(c!=="string")throw Error(Ke+r);return(a=r.charCodeAt(0))===45?(r=r.slice(1),u.s=-1):(a===43&&(r=r.slice(1)),u.s=1),$n.test(r)?sn(u,r):dr(u,r)}if(o.prototype=w,o.ROUND_UP=0,o.ROUND_DOWN=1,o.ROUND_CEIL=2,o.ROUND_FLOOR=3,o.ROUND_HALF_UP=4,o.ROUND_HALF_DOWN=5,o.ROUND_HALF_EVEN=6,o.ROUND_HALF_CEIL=7,o.ROUND_HALF_FLOOR=8,o.EUCLID=9,o.config=o.set=Ir,o.clone=oi,o.isDecimal=zn,o.abs=fr,o.acos=br,o.acosh=yr,o.add=gr,o.asin=wr,o.asinh=Pr,o.atan=Ar,o.atanh=kr,o.atan2=Tr,o.cbrt=hr,o.ceil=Br,o.clamp=xr,o.cos=Sr,o.cosh=Cr,o.div=Kr,o.exp=Nr,o.floor=Lr,o.hypot=Rr,o.ln=Mr,o.log=Or,o.log10=Er,o.log2=Fr,o.max=vr,o.min=Dr,o.mod=Wr,o.mul=Vr,o.pow=_r,o.random=qr,o.round=Ur,o.sign=Gr,o.sin=Xr,o.sinh=Hr,o.sqrt=Zr,o.sub=zr,o.sum=jr,o.tan=Yr,o.tanh=Qr,o.trunc=Jr,n===void 0&&(n={}),n&&n.defaults!==!0)for(i=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<i.length;)n.hasOwnProperty(t=i[e++])||(n[t]=this[t]);return o.config(n),o}function Kr(n,e){return new this(n).div(e)}function Nr(n){return new this(n).exp()}function Lr(n){return O(n=new this(n),n.e+1,3)}function Rr(){var n,e,t=new this(0);for(V=!1,n=0;n<arguments.length;)if(e=new this(arguments[n++]),e.d)t.d&&(t=t.plus(e.times(e)));else{if(e.s)return V=!0,new this(1/0);t=e}return V=!0,t.sqrt()}function zn(n){return n instanceof it||n&&n.toStringTag===Jn||!1}function Mr(n){return new this(n).ln()}function Or(n,e){return new this(n).log(e)}function Fr(n){return new this(n).log(2)}function Er(n){return new this(n).log(10)}function vr(){return ni(this,arguments,"lt")}function Dr(){return ni(this,arguments,"gt")}function Wr(n,e){return new this(n).mod(e)}function Vr(n,e){return new this(n).mul(e)}function _r(n,e){return new this(n).pow(e)}function qr(n){var e,t,i,o,r=0,s=new this(1),a=[];if(n===void 0?n=this.precision:ae(n,1,Ne),i=Math.ceil(n/v),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(i));r<i;)o=e[r],o>=429e7?e[r]=crypto.getRandomValues(new Uint32Array(1))[0]:a[r++]=o%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(i*=4);r<i;)o=e[r]+(e[r+1]<<8)+(e[r+2]<<16)+((e[r+3]&127)<<24),o>=214e7?crypto.randomBytes(4).copy(e,r):(a.push(o%1e7),r+=4);r=i/4}else throw Error(Qn);else for(;r<i;)a[r++]=Math.random()*1e7|0;for(i=a[--r],n%=v,i&&n&&(o=ee(10,v-n),a[r]=(i/o|0)*o);a[r]===0;r--)a.pop();if(r<0)t=0,a=[0];else{for(t=-1;a[0]===0;t-=v)a.shift();for(i=1,o=a[0];o>=10;o/=10)i++;i<v&&(t-=v-i)}return s.e=t,s.d=a,s}function Ur(n){return O(n=new this(n),n.e+1,this.rounding)}function Gr(n){return n=new this(n),n.d?n.d[0]?n.s:0*n.s:n.s||NaN}function Xr(n){return new this(n).sin()}function Hr(n){return new this(n).sinh()}function Zr(n){return new this(n).sqrt()}function zr(n,e){return new this(n).sub(e)}function jr(){var n=0,e=arguments,t=new this(e[n]);for(V=!1;t.s&&++n<e.length;)t=t.plus(e[n]);return V=!0,O(t,this.precision,this.rounding)}function Yr(n){return new this(n).tan()}function Qr(n){return new this(n).tanh()}function Jr(n){return O(n=new this(n),n.e+1,1)}w[Symbol.for("nodejs.util.inspect.custom")]=w.toString;w[Symbol.toStringTag]="Decimal";var it=w.constructor=oi(nn);xt=new it(xt);It=new it(It);var te=it;import Ro from"big.js";import Kc from"bn.js";import{get as si,set as $r}from"lodash";var un=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let t=e.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},ai={},eo={};function ne(n){let e=si(ai,n);if(!e){let t=si(eo,n);e=new un({name:n,logLevel:t}),$r(ai,n,e)}return e}import{PublicKey as ui}from"@solana/web3.js";import{MINT_SIZE as to,TOKEN_PROGRAM_ID as no,getTransferFeeConfig as io,unpackMint as ro}from"@solana/spl-token";var cn=ne("Raydium_accountInfo_util");async function rt(n,e,t){let{batchRequest:i,commitment:o="confirmed",chunkCount:r=100}=U({batchRequest:!1},t),s=ln(e,r),a=new Array(s.length).fill([]);if(i){let c=s.map(m=>{let d=n._buildArgs([m.map(p=>p.toBase58())],o,"base64");return{methodName:"getMultipleAccounts",args:d}}),u=ln(c,10);a=(await(await Promise.all(u.map(async m=>await n._rpcBatchRequest(m)))).flat()).map(m=>(m.error&&cn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${m.error.message}`),m.result.value.map(d=>{if(d){let{data:p,executable:b,lamports:f,owner:y,rentEpoch:P}=d;return p.length!==2&&p[1]!=="base64"&&cn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:b,lamports:f,owner:new ui(y),rentEpoch:P}}return null})))}else try{a=await Promise.all(s.map(c=>n.getMultipleAccountsInfo(c,o)))}catch(c){c instanceof Error&&cn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}async function Ee(n,e,t){let i=await rt(n,e.map(o=>o.pubkey),t);return e.map((o,r)=>z(U({},o),{accountInfo:i[r]}))}async function mn({connection:n,mints:e,config:t}){var r,s,a;if(e.length===0)return{};let i=await Ee(n,e.map(c=>({pubkey:ot(c)})),t),o={};for(let c of i){if(!c.accountInfo||c.accountInfo.data.length<to){console.log("invalid mint account",c.pubkey.toBase58());continue}let u=ro(c.pubkey,c.accountInfo,(r=c.accountInfo)==null?void 0:r.owner);o[c.pubkey.toString()]=z(U({},u),{programId:((s=c.accountInfo)==null?void 0:s.owner)||no,feeConfig:(a=io(u))!=null?a:void 0})}return o[ui.default.toBase58()]=o[ue.toBase58()],o}import st from"bn.js";var ci=9007199254740991;function Pe(n){let e=ne("Raydium_parseBigNumberish");if(n instanceof st)return n;if(typeof n=="string"){if(n.match(/^-?[0-9]+$/))return new st(n);e.logWithError(`invalid BigNumberish string: ${n}`)}return typeof n=="number"?(n%1&&e.logWithError(`BigNumberish number underflow: ${n}`),(n>=ci||n<=-ci)&&e.logWithError(`BigNumberish number overflow: ${n}`),new st(String(n))):typeof n=="bigint"?new st(n.toString()):(e.error(`invalid BigNumberish value: ${n}`),new st(0))}import{PublicKey as oo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as li}from"@solana/spl-token";var dn={chainId:101,address:oo.default.toBase58(),programId:li.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Le={chainId:101,address:"So11111111111111111111111111111111111111112",programId:li.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as bn}from"@solana/web3.js";import{PublicKey as Y,SystemProgram as mi,SYSVAR_RENT_PUBKEY as so}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ao}from"@solana/spl-token";function pn({pubkey:n,isSigner:e=!1,isWritable:t=!0}){return{pubkey:n,isWritable:t,isSigner:e}}var Us=[pn({pubkey:ao,isWritable:!1}),pn({pubkey:mi.programId,isWritable:!1}),pn({pubkey:so,isWritable:!1})];function fn({publicKey:n,transformSol:e}){let t=di(n.toString());if(t instanceof Y)return e&&t.equals(at)?ue:t;if(e&&t.toString()===at.toBase58())return ue;if(typeof t=="string"){if(t===Y.default.toBase58())return Y.default;try{return new Y(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function di(n){try{return new Y(n)}catch{return n}}var uo=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Lt=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Rt=new Y("SysvarRent111111111111111111111111111111111"),Gs=new Y("SysvarC1ock11111111111111111111111111111111"),Xe=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Xs=new Y("Sysvar1nstructions1111111111111111111111111"),pi=mi.programId,Hs=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Zs=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),zs=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),js=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ys=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Qs=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Js=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),$s=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ea=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ta=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),na=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ue=new Y("So11111111111111111111111111111111111111112"),at=Y.default;function ot(n){return fn({publicKey:n,transformSol:!0})}var yn=class{constructor({mint:e,decimals:t,symbol:i,name:o,skipMint:r=!1,isToken2022:s=!1}){if(e===at.toBase58()||e instanceof bn&&at.equals(e)){this.decimals=Le.decimals,this.symbol=Le.symbol,this.name=Le.name,this.mint=new bn(Le.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=i||e.toString().substring(0,6),this.name=o||e.toString().substring(0,6),this.mint=r?bn.default:fn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},Re=yn;Re.WSOL=new yn(z(U({},Le),{mint:Le.address}));var gn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=i}equals(e){return this===e}},Mt=gn;Mt.SOL=new gn(dn);import co from"toformat";var lo=co,ut=lo;import Ft from"big.js";import po from"bn.js";import fo from"decimal.js-light";var Ot=ne("module/fraction"),wn=ut(Ft),ct=ut(fo),bo={[0]:ct.ROUND_DOWN,[1]:ct.ROUND_HALF_UP,[2]:ct.ROUND_UP},yo={[0]:Ft.roundDown,[1]:Ft.roundHalfUp,[2]:Ft.roundUp},Z=class{constructor(e,t=new po(1)){this.numerator=Pe(e),this.denominator=Pe(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new Z(this.denominator,this.numerator)}add(e){let t=e instanceof Z?e:new Z(Pe(e));return this.denominator.eq(t.denominator)?new Z(this.numerator.add(t.numerator),this.denominator):new Z(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof Z?e:new Z(Pe(e));return this.denominator.eq(t.denominator)?new Z(this.numerator.sub(t.numerator),this.denominator):new Z(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof Z?e:new Z(Pe(e));return new Z(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof Z?e:new Z(Pe(e));return new Z(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},i=1){Number.isInteger(e)||Ot.logWithError(`${e} is not an integer.`),e<=0&&Ot.logWithError(`${e} is not positive.`),ct.set({precision:e+1,rounding:bo[i]});let o=new ct(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return o.toFormat(o.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},i=1){return Number.isInteger(e)||Ot.logWithError(`${e} is not an integer.`),e<0&&Ot.logWithError(`${e} is negative.`),wn.DP=e,wn.RM=yo[i]||1,new wn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};import go from"bn.js";var fi=new Z(new go(100)),le=class extends Z{toSignificant(e=5,t,i){return this.mul(fi).toSignificant(e,t,i)}toFixed(e=2,t,i){return this.mul(fi).toFixed(e,t,i)}};var Ka=ne("Raydium_price");function ln(n,e=1,t=[]){let i=[...n];if(e<=0)return t;for(;i.length;)t.push(i.splice(0,e));return t}import{PublicKey as Bo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as xo}from"@solana/spl-token";import{ComputeBudgetProgram as bi,Keypair as gi,PublicKey as wo,Transaction as wi,TransactionMessage as Po,VersionedTransaction as Pi}from"@solana/web3.js";var re={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as Ao}from"@solana/spl-token";var yi=ne("Raydium_txUtil"),Ai=1644;function vt(n){let e=[],t=[];return n.microLamports&&(e.push(bi.setComputeUnitPrice({microLamports:n.microLamports})),t.push(re.SetComputeUnitPrice)),n.units&&(e.push(bi.setComputeUnitLimit({units:n.units})),t.push(re.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function He(n,e){var i,o;let t=e!=null?e:"confirmed";return(o=await((i=n.getLatestBlockhash)==null?void 0:i.call(n,{commitment:t})))==null?void 0:o.blockhash}async function Dt(n,e){return n.getSignatureStatuses([e]),new Promise((t,i)=>{let o=setTimeout(i,6e4);n.onSignature(e,r=>{if(clearTimeout(o),!r.err){t("");return}i(Object.assign(r.err,{txId:e}))},"confirmed")})}function ko(n,e){n.length<1&&yi.logWithError(`no instructions provided: ${n.toString()}`),e.length<1&&yi.logWithError(`no signers provided:, ${e.toString()}`);let t=new wi;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...n);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Ai}catch{return!1}}function ye(n,e){let[t,i]=wo.findProgramAddressSync(n,e);return{publicKey:t,nonce:i}}function lt({instructions:n,payer:e,signers:t}){return ko(n,[e,...t])}function mt({instructions:n,payer:e,lookupTableAddressAccount:t,recentBlockhash:i=gi.generate().publicKey.toString()}){let r=new Po({payerKey:e,recentBlockhash:i,instructions:n}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Pi(r).serialize()).toString("base64").length<Ai}catch{return!1}}var To=n=>Buffer.isBuffer(n)?n:n instanceof Uint8Array?Buffer.from(n.buffer,n.byteOffset,n.byteLength):Buffer.from(n),ho=n=>{let e=n.serialize({requireAllSignatures:!1,verifySignatures:!1});n instanceof Pi&&(e=To(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function ve(n){let e=[];return n.forEach(t=>{t instanceof wi&&(t.recentBlockhash||(t.recentBlockhash=Ao.toBase58()),t.feePayer||(t.feePayer=gi.generate().publicKey)),e.push(ho(t))}),console.log("simulate tx string:",e),e}function me(n,e,t){return ye([n.toBuffer(),(t!=null?t:xo).toBuffer(),e.toBuffer()],new Bo("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as E}from"@solana/web3.js";var cu=new E("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),lu=new E("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),mu=new E("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),du=new E("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),pu=new E("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),fu=new E("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),bu=new E("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),yu=new E("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),gu=new E("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),wu=new E("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Io=new E("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),So=new E("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Co=new E("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Pu=new E("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Au=new E("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ku=new E("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Tu=new E("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),hu=new E("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Bu=new E("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),xu=new E("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),ki=new E("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ti=new E("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Iu=new E("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Wt=new E("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Vt=new E("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Su=new E("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Cu=new E("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Ku=new E("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Nu=new E("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Lu=new E("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Ru=new E("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Mu={OPEN_BOOK_PROGRAM:new E("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new E("Ray1111111111111111111111111111111111111111"),AMM_V4:new E("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new E("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new E("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new E("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new E("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new E("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new E("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new E("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new E("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new E("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:E.default,Router:new E("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new E("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new E("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new E("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new E("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new E("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new E("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new E("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new E("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new E("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new E("Ray1111111111111111111111111111111111111111")};import ge from"bn.js";var dt=1e4;function Ae(n,e,t,i){if(e===void 0)return{amount:n,fee:void 0,expirationTime:void 0};let o=z(U({},e),{olderTransferFee:{epoch:BigInt(e.olderTransferFee.epoch),maximumFee:BigInt(e.olderTransferFee.maximumFee),transferFeeBasisPoints:e.olderTransferFee.transferFeeBasisPoints},newerTransferFee:{epoch:BigInt(e.newerTransferFee.epoch),maximumFee:BigInt(e.newerTransferFee.maximumFee),transferFeeBasisPoints:e.newerTransferFee.transferFeeBasisPoints}}),r=t.epoch<o.newerTransferFee.epoch?o.olderTransferFee:o.newerTransferFee,s=new ge(r.maximumFee.toString()),a=t.epoch<o.newerTransferFee.epoch?(Number(o.newerTransferFee.epoch)*t.slotsInEpoch-t.absoluteSlot)*400/1e3:void 0;if(i)if(r.transferFeeBasisPoints===dt){let c=new ge(r.maximumFee.toString());return{amount:n.add(c),fee:c,expirationTime:a}}else{let c=Ze(n.mul(new ge(dt)),new ge(dt-r.transferFeeBasisPoints)),u=new ge(r.maximumFee.toString()),l=c.sub(n).gt(u)?n.add(u):c,m=Ze(l.mul(new ge(r.transferFeeBasisPoints)),new ge(dt)),d=m.gt(s)?s:m;return{amount:l,fee:d,expirationTime:a}}else{let c=Ze(n.mul(new ge(r.transferFeeBasisPoints)),new ge(dt)),u=c.gt(s)?s:c;return{amount:n,fee:u,expirationTime:a}}}function Ze(n,e){let{div:t,mod:i}=n.divmod(e);return i.gt(new ge(0))?t.add(new ge(1)):t}import{PublicKey as kn,AddressLookupTableAccount as je}from"@solana/web3.js";async function Tn({connection:n,address:e,cluster:t="mainnet"}){let i=await rt(n,[...new Set(e.map(r=>r.toString()))].map(r=>new kn(r))),o={};for(let r=0;r<e.length;r++){let s=i[r],a=e[r];if(!s)continue;let c=new je({key:a,state:je.deserialize(s.data)});o[a.toString()]=c,t==="devnet"?ze[a.toString()]=c:_t[a.toString()]=c}return o}var _t={AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU:new je({key:new kn("AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU"),state:je.deserialize(Buffer.from("AQAAAP//////////I1rcEwAAAAAvAQYwun9CU6c5Ikm2pAj+D9IEnCOR45nK+SFTGSdpd6J6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpBt324e51j94YQl285GzN2rYa/E2DuQ0n/r35KNihi/wFSlNQ+F3IgtYUpVZyeIopbd8eq6vQpgZ4iEky9O72oAVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvBkX2T9y7AHdNGviJAqQNtlDUDCnauQRWybsLji6nPM8Qkw5asQRvCdB3MbX6IEBwytOrpM32l4jQygKG9TKgR0vZScQ2AsM/IHeQ7RajUkyhuZdc8SGiqQz/7H34torNR/Wir3sl0ruUrVxJWEZfUg+QLNAxxODdBi53/OP7Ioil1cqeBM9dtZC3FLov4yyxWRM/wcGStyJX/QfTnLBAHqkqWotPKVlShCVQqpP9W5W1rOao65IMk5QuQ2kMIOxzDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu/YsA/yfEEFGcr8Z57VKDw8uQzpiru7g4lvjnfapW62W030syevD8k07SGoxUHiuT/ai7gAHWWhDsVmg/C63ajgpkH7Sn3GdutArDTfyqOkdqv4/IPC/EFFy7mGkfDd2C57N5a/4jC+BbmJy7wQaSEZr0CQU88lPtUxIVvzGjC95b8Ooss2TqmkrayGKofkPMGQn7Ux+9lfwBSNfxwH8NgbpqC/7LNlV4I7nCvsXf3p+ohQk9NrAJb2KAFpUqEIJ9ZBV7BYDzHF/ORKYlgtvPnXjudZQ6CEo5OzUDaNIomTCCsvhD16TxJjsbgne1kGnQPCFSoaxUbq2V1bPMFQ3VYP6wDZ9bKStCFKx9A3tNbwZFC5ZGAN83MFK7XoTy+OmmcFEr6rLOjfSuTfPvHJkSVxW6Qllwkl67XcBi5v00u2gQsbu+38sp+rd5pA/LvyWj4P94ZGZwc1tE2P88xekCLcAwZGb+UhFzL/7K26csOb57yM5bvF9xJrLEObOkAAAAAn+HWRkdcPKyFFMnVwEoD7vnD0jCKFIU1sImubYCxNTSVzsKpaQX+fzNxrLAI3L14JQnJx/D6Uk2LADIHGqnGELzjEbkBDAlaM77NkXMPfqXNLSveCkWI7UEgNs31WEWB6XHSYI/v5DklHOb4QTtDOR804PVbi3fjloZeLR2F8d4FuZmMMO7ck3Fnkn2zEMG5gOmqsygb6PjTitArVl52NhcSznTxVnguaIJxiZkAnurDmn3MWR0PC2GLghp2KJqHCc6QQ85odeIjFHKOlRlJyeSXVJmL8vb1UgOzsbJPVP8p6zM4M3C1Sd7uWIHP33G42AP2Zg8ucn/n6meQjjD266JgCWdxZD6PXs9CsnIeL7SSG0/6lGb9xfP0ZcWkCXB/3hjxHYVXjra/GPOeXGk0fLLKjCbk+mgs2w6d2oCwimBipTzuoZ30GiI8ij8VRzD5CzMWtu2m21eDBIfjGAEo4pQeNNonKcqzV/cleX8ySZLOHsz8PtBCrLqF+VkLm9hOzIT+6i/nIf6keR4GWKMOD4AvqfpjHoD4DuhBpz8P28+DxkGrDXXr/nr20x291VPvcTU/b+b+o2kC9G0kcXeTlLjU6a2TQXWlZ4gBUdBl1jgT7mObSTpLblNiXZsLkbmVXZwvFKXua5cUKlWed/w30skmEUraTuQqtqr5fHZPW9n57EmeTif6LjHL2YJFZkQU+TrJmFzqzmF4/b8OwrPQAprl8mX3q4LUIdAS/a+11B6DWD1Xk2++Sn94dLC4xjkO4Wtlw8c4XuzciVbepHOmnoWzVu/0y3KCrLCSfQxQ3br8DJCoVzhgtPsS2nZZjsBGIZgnU0QpMv+2MnRsnKwdp1VsrCX84j/qvaZn4WhKunippgTbN2EUs0tPTP55Qfgj+nKmjtWW5IYs72FrEwJKYoNfsmqaF4o5pf4v9zgPwVwY/5I4XJKUL2L25m9kAQcW/K+H1RTFEUoj8Z4ajpOmAB/dG0COmCphVMW2CCMvnxhcGiSgPnpDuWu6qiJ7NG7ye5kvHgefgqPLeicspNJ5EpL3XiRNLM2tmJLI1awAwOyd6iHv0dCkMYRKaa6rcaZeYwmKCkckm0kM2JNmnmmAaBQQ7mwmIM0IMxX4f5W6j9PqZWcJxF7r17T/lQBAmcjoupRiJifbnXCNUv9GhpRF19WcBdeKbivRJVlGop6I2RS6lGImJ9udcI1S/0aGlEXX1ZwF14puK9ElWUainojZFYVHLHD6dIP2ESjqBzg3ol1/wB7+/ylGwd9LS7wSZ2A630CJSVKwH47K9P4bB8PEQP8BwjMFa7xQHOqZFP1XqaQ==","base64"))})},ze={},hn=async n=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(ze[e])return ze;let t=new kn(e),i=await n.getAccountInfo(t);return i&&(ze[e]=new je({key:t,state:je.deserialize(i.data)})),ze};import{PublicKey as Ye,sendAndConfirmTransaction as Bn,SystemProgram as Ko,Transaction as pt,TransactionMessage as ft,VersionedTransaction as bt}from"@solana/web3.js";import No from"axios";var qt=2e3,Ut=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var i;let e=(await No.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(i=e==null?void 0:e[15])!=null?i:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:i}=vt(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Ko.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Ye(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(re.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let i=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:i=[],instructionTypes:o=[],endInstructionTypes:r=[],lookupTableAddress:s=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...i),this.instructionTypes.push(...o),this.endInstructionTypes.push(...r),this.lookupTableAddress.push(...s.filter(a=>a!==Ye.default.toString())),this}async versionBuild({txVersion:e,extInfo:t}){return e===0?await this.buildV0(U({},t||{})):this.build(t)}build(e){var i;let t=new pt;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(o=>o.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async o=>{var l;let{recentBlockHash:r,skipPreflight:s=!0,sendAndConfirm:a,notSendToRpc:c}=o||{},u=r!=null?r:await He(this.connection,this.blockhashCommitment);if(t.recentBlockhash=u,this.signers.length&&t.sign(...this.signers),ve([t]),(l=this.owner)!=null&&l.isKeyPair)return{txId:a?await Bn(this.connection,t,this.signers.find(d=>d.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:s}),signedTx:t};if(this.signAllTransactions){let m=await this.signAllTransactions([t]);if(this.signers.length)for(let d of m)try{d.sign(...this.signers)}catch{}return{txId:c?"":await this.connection.sendRawTransaction(m[0].serialize(),{skipPreflight:s}),signedTx:m[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var u;let{extraPreBuildData:t=[],extInfo:i}=e,{transaction:o}=this.build(i),r=t.filter(l=>l.transaction.instructions.length>0),s=[o,...r.map(l=>l.transaction)],a=[this.signers,...r.map(l=>l.signers)],c=[...this.instructionTypes,...r.map(l=>l.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&a.forEach(l=>{l.some(m=>m.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:a,instructionTypes:c,execute:async l=>{var P;let{sequentially:m,onTxUpdate:d,skipTxCount:p=0,recentBlockHash:b,skipPreflight:f=!0}=l||{},y=b!=null?b:await He(this.connection,this.blockhashCommitment);if((P=this.owner)!=null&&P.isKeyPair){if(m){let A=[],k=0;for(let g of s){if(++k,k<=p)continue;let T=await Bn(this.connection,g,this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:f});A.push(T)}return{txIds:A,signedTxs:s}}return{txIds:await await Promise.all(s.map(async A=>(A.recentBlockhash=y,await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:f})))),signedTxs:s}}if(this.signAllTransactions){let A=s.map((g,T)=>(g.recentBlockhash=y,a[T].length&&g.sign(...a[T]),g));ve(A);let k=await this.signAllTransactions(A);if(m){let g=0,T=[],h=async()=>{if(!k[g])return;let x=await this.connection.sendRawTransaction(k[g].serialize(),{skipPreflight:f});T.push({txId:x,status:"sent",signedTx:k[g]}),d==null||d([...T]),g++;let I=!1,M=null,K=null,C=N=>{M!==null&&clearInterval(M),K!==null&&this.connection.removeSignatureListener(K);let W=T.findIndex(q=>q.txId===x);if(W>-1){if(T[W].status==="error"||T[W].status==="success")return;T[W].status=N.err?"error":"success"}d==null||d([...T]),N.err||h()};this.loopMultiTxStatus&&(M=setInterval(async()=>{var N;if(I){clearInterval(M);return}try{let W=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(I=!0,clearInterval(M),C({err:((N=W.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",x))}catch(W){I=!0,clearInterval(M),console.error("getTransaction timeout:",W,x)}},qt)),K=this.connection.onSignature(x,N=>{if(I){this.connection.removeSignatureListener(K);return}I=!0,C(N)},"confirmed"),this.connection.getSignatureStatus(x)};return await h(),{txIds:T.map(x=>x.txId),signedTxs:k}}else{let g=[];for(let T=0;T<k.length;T+=1){let h=await this.connection.sendRawTransaction(k[T].serialize(),{skipPreflight:f});g.push(h)}return{txIds:g,signedTxs:k}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:i}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:i})}async buildV0(e){var f;let b=e||{},{lookupTableCache:t={},lookupTableAddress:i=[],forerunCreate:o,recentBlockhash:r}=b,s=he(b,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=U(U({},this.cluster==="devnet"?await hn(this.connection):_t),t),c=Array.from(new Set([...i,...this.lookupTableAddress])),u=[];for(let y of c)a[y]===void 0&&u.push(new Ye(y));let l=await Tn({connection:this.connection,address:u});for(let[y,P]of Object.entries(l))a[y]=P;let m=o?Ye.default.toBase58():r!=null?r:await He(this.connection,this.blockhashCommitment),d=new ft({payerKey:this.feePayer,recentBlockhash:m,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(a));((f=this.owner)==null?void 0:f.signer)&&!this.signers.some(y=>y.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let p=new bt(d);return p.sign(this.signers),{builder:this,transaction:p,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async y=>{var g;let{skipPreflight:P=!0,sendAndConfirm:A,notSendToRpc:k}=y||{};if(ve([p]),(g=this.owner)!=null&&g.isKeyPair){let T=await this.connection.sendTransaction(p,{skipPreflight:P});return A&&await Dt(this.connection,T),{txId:T,signedTx:p}}if(this.signAllTransactions){let T=await this.signAllTransactions([p]);if(this.signers.length)for(let h of T)try{h.sign(this.signers)}catch{}return{txId:k?"":await this.connection.sendTransaction(T[0],{skipPreflight:P}),signedTx:T[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}async buildV0MultiTx(e){var u;let{extraPreBuildData:t=[],buildProps:i}=e,{transaction:o}=await this.buildV0(i),r=t.filter(l=>l.builder.instructions.length>0),s=[o,...r.map(l=>l.transaction)],a=[this.signers,...r.map(l=>l.signers)],c=[...this.instructionTypes,...r.map(l=>l.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&a.forEach(l=>{l.some(m=>m.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach(async(l,m)=>{l.sign(a[m])}),{builder:this,transactions:s,signers:a,instructionTypes:c,buildProps:i,execute:async l=>{var f;let{sequentially:m,onTxUpdate:d,recentBlockHash:p,skipPreflight:b=!0}=l||{};if(p&&s.forEach(y=>y.message.recentBlockhash=p),ve(s),(f=this.owner)!=null&&f.isKeyPair){if(m){let y=[];for(let P of s){let A=await this.connection.sendTransaction(P,{skipPreflight:b});await Dt(this.connection,A),y.push(A)}return{txIds:y,signedTxs:s}}return{txIds:await Promise.all(s.map(async y=>await this.connection.sendTransaction(y,{skipPreflight:b}))),signedTxs:s}}if(this.signAllTransactions){let y=await this.signAllTransactions(s);if(m){let P=0,A=[],k=async()=>{if(!y[P])return;let g=await this.connection.sendTransaction(y[P],{skipPreflight:b});A.push({txId:g,status:"sent",signedTx:y[P]}),d==null||d([...A]),P++;let T=!1,h=null,x=null,I=M=>{h!==null&&clearInterval(h),x!==null&&this.connection.removeSignatureListener(x);let K=A.findIndex(C=>C.txId===g);if(K>-1){if(A[K].status==="error"||A[K].status==="success")return;A[K].status=M.err?"error":"success"}d==null||d([...A]),M.err||k()};this.loopMultiTxStatus&&(h=setInterval(async()=>{var M;if(T){clearInterval(h);return}try{let K=await this.connection.getTransaction(g,{commitment:"confirmed",maxSupportedTransactionVersion:0});K&&(T=!0,clearInterval(h),I({err:((M=K.meta)==null?void 0:M.err)||null}),console.log("tx status from getTransaction:",g))}catch(K){T=!0,clearInterval(h),console.error("getTransaction timeout:",K,g)}},qt)),x=this.connection.onSignature(g,M=>{if(T){this.connection.removeSignatureListener(x);return}T=!0,I(M)},"confirmed"),this.connection.getSignatureStatus(g)};return k(),{txIds:[],signedTxs:y}}else{let P=[];for(let A=0;A<y.length;A+=1){let k=await this.connection.sendTransaction(y[A],{skipPreflight:b});P.push(k)}return{txIds:P,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var d;let m=e||{},{splitIns:t=[],computeBudgetConfig:i}=m,o=he(m,["splitIns","computeBudgetConfig"]),r=i?vt(i):{instructions:[],instructionTypes:[]},s=this.signers.reduce((p,b)=>z(U({},p),{[b.publicKey.toBase58()]:b}),{}),a=[],c=[],u=[],l=0;if(this.allInstructions.forEach(p=>{let b=[...u,p],f=i?[...r.instructions,...b]:b,P=[...new Set(b.map(A=>A.keys.filter(k=>k.isSigner).map(k=>k.pubkey.toString())).flat()).values()].map(A=>new Ye(A));if(p!==t[l]&&u.length<12&&(lt({instructions:f,payer:this.feePayer,signers:P})||lt({instructions:b,payer:this.feePayer,signers:P})))u.push(p);else{if(u.length===0)throw Error("item ins too big");l+=p===t[l]?1:0,lt({instructions:i?[...r.instructions,...u]:[...u],payer:this.feePayer,signers:P})?a.push(new pt().add(...r.instructions,...u)):a.push(new pt().add(...u)),c.push(Array.from(new Set(u.map(A=>A.keys.filter(k=>k.isSigner).map(k=>k.pubkey.toString())).flat())).map(A=>s[A]).filter(A=>A!==void 0)),u=[p]}}),u.length>0){let b=[...new Set(u.map(f=>f.keys.filter(y=>y.isSigner).map(y=>y.pubkey.toString())).flat()).values()].map(f=>s[f]).filter(f=>f!==void 0);lt({instructions:i?[...r.instructions,...u]:[...u],payer:this.feePayer,signers:b.map(f=>f.publicKey)})?a.push(new pt().add(...r.instructions,...u)):a.push(new pt().add(...u)),c.push(b)}return a.forEach(p=>p.feePayer=this.feePayer),(d=this.owner)!=null&&d.signer&&c.forEach(p=>{p.some(b=>b.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),{builder:this,transactions:a,signers:c,instructionTypes:this.instructionTypes,execute:async p=>{var g;let{sequentially:b,onTxUpdate:f,skipTxCount:y=0,recentBlockHash:P,skipPreflight:A=!0}=p||{},k=P!=null?P:await He(this.connection,this.blockhashCommitment);if(a.forEach(async(T,h)=>{T.recentBlockhash=k,c[h].length&&T.sign(...c[h])}),ve(a),(g=this.owner)!=null&&g.isKeyPair){if(b){let T=0,h=[];for(let x of a){if(++T,T<=y){h.push("tx skipped");continue}let I=await Bn(this.connection,x,this.signers.find(M=>M.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});h.push(I)}return{txIds:h,signedTxs:a}}return{txIds:await Promise.all(a.map(async T=>await this.connection.sendRawTransaction(T.serialize(),{skipPreflight:A}))),signedTxs:a}}if(this.signAllTransactions){let T=await this.signAllTransactions(a.slice(y,a.length)),h=[...a.slice(0,y),...T];if(b){let x=0,I=[],M=async()=>{if(!h[x])return;x<y&&(I.push({txId:"",status:"success",signedTx:h[x]}),f==null||f([...I]),x++,M());let K=await this.connection.sendRawTransaction(h[x].serialize(),{skipPreflight:A});I.push({txId:K,status:"sent",signedTx:h[x]}),f==null||f([...I]),x++;let C=!1,N=null,W=null,q=D=>{N!==null&&clearInterval(N),W!==null&&this.connection.removeSignatureListener(W);let F=I.findIndex($=>$.txId===K);if(F>-1){if(I[F].status==="error"||I[F].status==="success")return;I[F].status=D.err?"error":"success"}f==null||f([...I]),D.err||M()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var D;if(C){clearInterval(N);return}try{let F=await this.connection.getTransaction(K,{commitment:"confirmed",maxSupportedTransactionVersion:0});F&&(C=!0,clearInterval(N),q({err:((D=F.meta)==null?void 0:D.err)||null}),console.log("tx status from getTransaction:",K))}catch(F){C=!0,clearInterval(N),console.error("getTransaction timeout:",F,K)}},qt)),W=this.connection.onSignature(K,D=>{if(C){this.connection.removeSignatureListener(W);return}C=!0,q(D)},"confirmed"),this.connection.getSignatureStatus(K)};return await M(),{txIds:I.map(K=>K.txId),signedTxs:h}}else{let x=[];for(let I=0;I<h.length;I+=1){let M=await this.connection.sendRawTransaction(h[I].serialize(),{skipPreflight:A});x.push(M)}return{txIds:x,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(e){var k;let A=e||{},{computeBudgetConfig:t,splitIns:i=[],lookupTableCache:o={},lookupTableAddress:r=[]}=A,s=he(A,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress"]),a=U(U({},this.cluster==="devnet"?await hn(this.connection):_t),o),c=Array.from(new Set([...this.lookupTableAddress,...r])),u=[];for(let g of c)a[g]===void 0&&u.push(new Ye(g));let l=await Tn({connection:this.connection,address:u});for(let[g,T]of Object.entries(l))a[g]=T;let m=t?vt(t):{instructions:[],instructionTypes:[]},d=await He(this.connection,this.blockhashCommitment),p=this.signers.reduce((g,T)=>z(U({},g),{[T.publicKey.toBase58()]:T}),{}),b=[],f=[],y=[],P=0;if(this.allInstructions.forEach(g=>{let T=[...y,g],h=t?[...m.instructions,...T]:T;if(g!==i[P]&&y.length<12&&(mt({instructions:h,payer:this.feePayer,lookupTableAddressAccount:a})||mt({instructions:T,payer:this.feePayer,lookupTableAddressAccount:a})))y.push(g);else{if(y.length===0)throw Error("item ins too big");P+=g===i[P]?1:0;let x={};for(let I of[...new Set(c)])a[I]!==void 0&&(x[I]=a[I]);if(t&&mt({instructions:[...m.instructions,...y],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:d})){let I=new ft({payerKey:this.feePayer,recentBlockhash:d,instructions:[...m.instructions,...y]}).compileToV0Message(Object.values(a));b.push(new bt(I))}else{let I=new ft({payerKey:this.feePayer,recentBlockhash:d,instructions:[...y]}).compileToV0Message(Object.values(a));b.push(new bt(I))}f.push(Array.from(new Set(y.map(I=>I.keys.filter(M=>M.isSigner).map(M=>M.pubkey.toString())).flat())).map(I=>p[I]).filter(I=>I!==void 0)),y=[g]}}),y.length>0){let T=[...new Set(y.map(h=>h.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat()).values()].map(h=>p[h]).filter(h=>h!==void 0);if(t&&mt({instructions:[...m.instructions,...y],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:d})){let h=new ft({payerKey:this.feePayer,recentBlockhash:d,instructions:[...m.instructions,...y]}).compileToV0Message(Object.values(a));b.push(new bt(h))}else{let h=new ft({payerKey:this.feePayer,recentBlockhash:d,instructions:[...y]}).compileToV0Message(Object.values(a));b.push(new bt(h))}f.push(T)}return(k=this.owner)!=null&&k.signer&&f.forEach(g=>{g.some(T=>T.publicKey.equals(this.owner.publicKey))||g.push(this.owner.signer)}),b.forEach((g,T)=>{g.sign(f[T])}),{builder:this,transactions:b,buildProps:e,signers:f,instructionTypes:this.instructionTypes,execute:async g=>{var K;let{sequentially:T,onTxUpdate:h,skipTxCount:x=0,recentBlockHash:I,skipPreflight:M=!0}=g||{};if(b.map(async(C,N)=>{f[N].length&&C.sign(f[N]),I&&(C.message.recentBlockhash=I)}),ve(b),(K=this.owner)!=null&&K.isKeyPair){if(T){let C=0,N=[];for(let W of b){if(++C,C<=x){console.log("skip tx: ",C),N.push("tx skipped");continue}let q=await this.connection.sendTransaction(W,{skipPreflight:M});await Dt(this.connection,q),N.push(q)}return{txIds:N,signedTxs:b}}return{txIds:await Promise.all(b.map(async C=>await this.connection.sendTransaction(C,{skipPreflight:M}))),signedTxs:b}}if(this.signAllTransactions){let C=await this.signAllTransactions(b.slice(x,b.length)),N=[...b.slice(0,x),...C];if(T){let W=0,q=[],D=async()=>{if(!N[W])return;if(W<x){q.push({txId:"",status:"success",signedTx:N[W]}),h==null||h([...q]),W++,D();return}let F=await this.connection.sendTransaction(N[W],{skipPreflight:M});q.push({txId:F,status:"sent",signedTx:N[W]}),h==null||h([...q]),W++;let $=!1,pe=null,Oe=null,qn=Fe=>{pe!==null&&clearInterval(pe),Oe!==null&&this.connection.removeSignatureListener(Oe);let Te=q.findIndex(nr=>nr.txId===F);if(Te>-1){if(q[Te].status==="error"||q[Te].status==="success")return;q[Te].status=Fe.err?"error":"success"}h==null||h([...q]),Fe.err||D()};this.loopMultiTxStatus&&(pe=setInterval(async()=>{var Fe;if($){clearInterval(pe);return}try{let Te=await this.connection.getTransaction(F,{commitment:"confirmed",maxSupportedTransactionVersion:0});Te&&($=!0,clearInterval(pe),qn({err:((Fe=Te.meta)==null?void 0:Fe.err)||null}),console.log("tx status from getTransaction:",F))}catch(Te){$=!0,clearInterval(pe),console.error("getTransaction timeout:",Te,F)}},qt)),Oe=this.connection.onSignature(F,Fe=>{if($){this.connection.removeSignatureListener(Oe);return}$=!0,qn(Fe)},"confirmed"),this.connection.getSignatureStatus(F)};return D(),{txIds:[],signedTxs:N}}else{let W=[];for(let q=0;q<N.length;q+=1){let D=await this.connection.sendTransaction(N[q],{skipPreflight:M});W.push(D)}return{txIds:W,signedTxs:N}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}};import{PublicKey as ec}from"@solana/web3.js";import nc from"bn.js";import Lo from"bn.js";var Gt=new Lo(1e6);var Dc=ne("Raydium_amount"),Wc=ut(Ro);var An=new ke(0),tl=new ke(1),nl=new ke(2),il=new ke(3),rl=new ke(5),Mo=new ke(10),ol=new ke(100),sl=new ke(1e3),al=new ke(1e4);function Bi(n,e,t){return n.mul(e).add(t).sub(new ke(1)).div(t)}function xn(n,e,t){return n.mul(e).div(t)}import In from"bn.js";import zt from"decimal.js-light";import yt from"bn.js";function Xt(n,e){if(e.isZero())throw Error("divisor is zero");return n.mod(e)}function Oo(n,e){if(e.isZero())throw Error("rhs is zero");let t=n.div(e);if(t.isZero())throw Error("quotient is zero");let i=Xt(n,e);return i.gt(Qe)&&(t=t.add(new yt(1)),e=n.div(t),i=Xt(n,t),i.gt(Qe)&&(e=e.add(new yt(1)))),[t,e]}var Qe=new yt(0),Ht=class{static swapWithoutFees(e,t,i){let o=t.mul(i),r=t.add(e),[s]=Oo(o,r),a=i.sub(s);if(a.isZero())throw Error("destinationAmountSwapped is zero");return{destinationAmountSwapped:a}}static lpTokensToTradingTokens(e,t,i,o,r){let s=e.mul(i).div(t),a=e.mul(o).div(t);if(r===0)return{tokenAmount0:s,tokenAmount1:a};if(r===1)return Xt(e.mul(i),t).gt(Qe)&&s.gt(Qe)&&(s=s.add(new yt(1))),Xt(e.mul(o),t).gt(Qe)&&a.gt(Qe)&&(a=a.add(new yt(1))),{tokenAmount0:s,tokenAmount1:a};throw Error("roundDirection value error")}};var Zt=class{static tradingFee(e,t){return Bi(e,t,Gt)}static protocolFee(e,t){return xn(e,t,Gt)}static fundFee(e,t){return xn(e,t,Gt)}};var jt=class{static validate_supply(e,t){if(e.isZero())throw Error("tokenAmount0 is zero");if(t.isZero())throw Error("tokenAmount1 is zero")}static swap(e,t,i,o){let r=Zt.tradingFee(e,o),s=e.sub(r),{destinationAmountSwapped:a}=Ht.swapWithoutFees(s,t,i);return{newSwapDestinationAmount:i.sub(a),sourceAmountSwapped:e,destinationAmountSwapped:a,tradeFee:r}}static swapBaseOut({poolMintA:e,poolMintB:t,tradeFeeRate:i,baseReserve:o,quoteReserve:r,outputMint:s,outputAmount:a}){let[c,u,l,m,d]=t.address===s.toString()?[o,r,e.decimals,t.decimals,e.address]:[r,o,t.decimals,e.decimals,t.address],p=new zt(u.toString()).div(10**m).div(new zt(c.toString()).div(10**l)),b=a.gte(u)?u.sub(new In(1)):a,f=u.sub(b),y=Ze(c.mul(b),f),P=Ze(y.mul(new In(1e6)),new In(1e6).sub(i)),A=P.sub(y),k=new zt(b.toString()).div(10**m).div(new zt(P.toString()).div(10**l)),g=p.isZero()?0:k.sub(p).div(p).abs().toNumber();return{amountRealOut:b,amountIn:P,amountInWithoutFee:y,tradeFee:A,priceImpact:g}}};import J from"bn.js";var Sn=(...n)=>n.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),Je=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=ne(t)}createTxBuilder(e){return this.scope.checkOwner(),new Ut({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(Sn(e))}logInfo(...e){this.logger.info(Sn(e))}logAndCreateError(...e){let t=Sn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Uo}from"@solana/web3.js";import Ci,{isBN as Ki}from"bn.js";import{bits as Kl,BitStructure as Nl,blob as Fo,Blob as Ll,cstr as Rl,f32 as Ml,f32be as Ol,f64 as Fl,f64be as El,greedy as vl,Layout as Eo,ns64 as Dl,ns64be as Wl,nu64 as Vl,nu64be as _l,offset as ql,s16 as Ul,s16be as Gl,s24 as Xl,s24be as Hl,s32 as vo,s32be as Zl,s40 as zl,s40be as jl,s48 as Yl,s48be as Ql,s8 as Jl,seq as Do,struct as $l,Structure as Wo,u16 as Vo,u16be as em,u24 as tm,u24be as nm,u32 as im,u32be as rm,u40 as om,u40be as sm,u48 as am,u48be as um,u8 as _o,UInt as qo,union as cm,Union as lm,unionLayoutDiscriminator as mm,utf8 as dm}from"@solana/buffer-layout";var Cn=Eo,xi=Wo;var Kn=qo;var Ii=_o,De=Vo;var xe=vo;var Si=Do;var se=Fo;var $e=class extends Cn{constructor(t,i,o){super(t,o);this.blob=se(t),this.signed=i}decode(t,i=0){let o=new Ci(this.blob.decode(t,i),10,"le");return this.signed?o.fromTwos(this.span*8).clone():o}encode(t,i,o=0){return typeof t=="number"&&(t=new Ci(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),i,o)}};function j(n){return new Kn(1,n)}function Ie(n){return new Kn(4,n)}function S(n){return new $e(8,!1,n)}function Q(n){return new $e(16,!1,n)}function Ni(n){return new $e(8,!0,n)}function Li(n){return new $e(16,!0,n)}var Yt=class extends Cn{constructor(t,i,o,r){super(t.span,r);this.layout=t,this.decoder=i,this.encoder=o}decode(t,i){return this.decoder(this.layout.decode(t,i))}encode(t,i,o){return this.layout.encode(this.encoder(t),i,o)}getSpan(t,i){return this.layout.getSpan(t,i)}};function _(n){return new Yt(se(32),e=>new Uo(e),e=>e.toBuffer(),n)}function We(n){return new Yt(Ii(),Go,Xo,n)}function Go(n){if(n===0)return!1;if(n===1)return!0;throw new Error("Invalid bool: "+n)}function Xo(n){return n?1:0}var Nn=class extends xi{decode(e,t){return super.decode(e,t)}};function G(n,e,t){return new Nn(n,e,t)}function H(n,e,t){let i,o=typeof e=="number"?e:Ki(e)?e.toNumber():new Proxy(e,{get(r,s){if(!i){let a=Reflect.get(r,"count");i=Ki(a)?a.toNumber():a,Reflect.set(r,"count",i)}return Reflect.get(r,s)},set(r,s,a){return s==="count"&&(i=a),Reflect.set(r,s,a)}});return Si(n,o,t)}var Im=G([Ie("mintAuthorityOption"),_("mintAuthority"),S("supply"),j("decimals"),j("isInitialized"),Ie("freezeAuthorityOption"),_("freezeAuthority")]);import{PublicKey as Nm}from"@solana/web3.js";import{MintLayout as Rm,TOKEN_PROGRAM_ID as Om}from"@solana/spl-token";var Ve=o=>{var r=o,{address:n,programId:e,decimals:t}=r,i=he(r,["address","programId","decimals"]);return U({chainId:101,address:ot(n).toBase58(),programId:e,logoURI:"",symbol:"",name:"",decimals:t,tags:[],extensions:i.extensions||{}},i)},et=n=>n?z(U({},n),{transferFeeConfigAuthority:n.transferFeeConfigAuthority.toBase58(),withdrawWithheldAuthority:n.withdrawWithheldAuthority.toBase58(),withheldAmount:n.withheldAmount.toString(),olderTransferFee:z(U({},n.olderTransferFee),{epoch:n.olderTransferFee.epoch.toString(),maximumFee:n.olderTransferFee.maximumFee.toString()}),newerTransferFee:z(U({},n.newerTransferFee),{epoch:n.newerTransferFee.epoch.toString(),maximumFee:n.newerTransferFee.maximumFee.toString()})}):void 0;import{PublicKey as Tt,TransactionInstruction as _e,Keypair as bs,SystemProgram as ys}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Hi,TOKEN_2022_PROGRAM_ID as Wn,TOKEN_PROGRAM_ID as Me}from"@solana/spl-token";var Ho=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Hm=Buffer.from("amm_config","utf8"),Zo=Buffer.from("pool","utf8"),zo=Buffer.from("pool_lp_mint","utf8"),jo=Buffer.from("pool_vault","utf8"),Yo=Buffer.from("observation","utf8");function Qt(n){return ye([Ho],n)}function Ln(n,e,t,i){return ye([Zo,e.toBuffer(),t.toBuffer(),i.toBuffer()],n)}function Qo(n,e){return ye([zo,e.toBuffer()],n)}function Ri(n,e,t){return ye([jo,e.toBuffer(),t.toBuffer()],n)}function gt(n,e){return ye([Yo,e.toBuffer()],n)}function Mi({poolId:n,programId:e,configId:t,mintA:i,mintB:o}){let r=Qt(e).publicKey,s=n||Ln(e,t,i,o).publicKey,a=Qo(e,s).publicKey,c=Ri(e,s,i).publicKey,u=Ri(e,s,o).publicKey,l=gt(e,s).publicKey;return{poolId:s,configId:t,authority:r,lpMint:a,vaultA:c,vaultB:u,observationId:l}}var Jo=Buffer.from("locked_liquidity","utf8");function wt(n,e){return ye([Jo,e.toBuffer()],n)}import{PublicKey as Sf}from"@solana/web3.js";import Kf from"bn.js";import{AccountLayout as Mf,createAssociatedTokenAccountIdempotentInstruction as Of,TOKEN_2022_PROGRAM_ID as Ff,TOKEN_PROGRAM_ID as Ef}from"@solana/spl-token";import{Keypair as $p,PublicKey as ef,SystemProgram as nf,TransactionInstruction as rf}from"@solana/web3.js";import sf from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as cf,TOKEN_2022_PROGRAM_ID as lf,TOKEN_PROGRAM_ID as mf}from"@solana/spl-token";import Mp from"bn.js";import de from"bn.js";var Rn=new de(0),Oi=new de(1),Fi=new de(-1),Jt=new de(1).shln(64),Ei=new de(1).shln(128),$o=Jt.sub(Oi);var es=Ei.subn(1),tt=-443636,Pt=-tt,Mn=new de("4295048016"),On=new de("79226673521066979257578248091"),jm=new de("4295048017"),Ym=new de("79226673521066979257578248090");var ts=new de(10).pow(new de(6));var Qm=new de("18446744073700000000");import Pp from"bn.js";var rd=Buffer.from("amm_config","utf8"),od=Buffer.from("pool","utf8"),sd=Buffer.from("pool_vault","utf8"),ad=Buffer.from("pool_reward_vault","utf8"),ud=Buffer.from("position","utf8"),cd=Buffer.from("tick_array","utf8"),ld=Buffer.from("operation","utf8"),md=Buffer.from("pool_tick_array_bitmap_extension","utf8"),dd=Buffer.from("observation","utf8");function Fn(n){return ye([Buffer.from("metadata","utf8"),Xe.toBuffer(),n.toBuffer()],Xe)}var pd=Buffer.from("locked_position","utf8");var fd=Buffer.from("support_mint","utf8");import{PublicKey as Zd}from"@solana/web3.js";import{TOKEN_2022_PROGRAM_ID as jd}from"@solana/spl-token";import Qd from"bn.js";import gd from"bn.js";var Dn=14;var $t=60;var os=G([se(8),j("bump"),De("index"),_(""),Ie("protocolFeeRate"),Ie("tradeFeeRate"),De("tickSpacing"),H(S(),8,"")]),ss=G([Ie("blockTimestamp"),Ni("tickCumulative"),H(S(),4)]),Xi=G([se(8),We("initialized"),S("recentEpoch"),De("observationIndex"),_("poolId"),H(ss,100,"observations"),H(S(),4)]),as=G([j("rewardState"),S("openTime"),S("endTime"),S("lastUpdateTime"),Q("emissionsPerSecondX64"),S("rewardTotalEmissioned"),S("rewardClaimed"),_("tokenMint"),_("tokenVault"),_("creator"),Q("rewardGrowthGlobalX64")]),qi=G([se(8),j("bump"),_("ammConfig"),_("creator"),_("mintA"),_("mintB"),_("vaultA"),_("vaultB"),_("observationId"),j("mintDecimalsA"),j("mintDecimalsB"),De("tickSpacing"),Q("liquidity"),Q("sqrtPriceX64"),xe("tickCurrent"),Ie(),Q("feeGrowthGlobalX64A"),Q("feeGrowthGlobalX64B"),S("protocolFeesTokenA"),S("protocolFeesTokenB"),Q("swapInAmountTokenA"),Q("swapOutAmountTokenB"),Q("swapInAmountTokenB"),Q("swapOutAmountTokenA"),j("status"),H(j(),7,""),H(as,3,"rewardInfos"),H(S(),16,"tickArrayBitmap"),S("totalFeesTokenA"),S("totalFeesClaimedTokenA"),S("totalFeesTokenB"),S("totalFeesClaimedTokenB"),S("fundFeesTokenA"),S("fundFeesTokenB"),S("startTime"),H(S(),15*4-3,"padding")]),us=G([Q("growthInsideLastX64"),S("rewardAmountOwed")]),Ui=G([se(8),j("bump"),_("nftMint"),_("poolId"),xe("tickLower"),xe("tickUpper"),Q("liquidity"),Q("feeGrowthInsideLastX64A"),Q("feeGrowthInsideLastX64B"),S("tokenFeesOwedA"),S("tokenFeesOwedB"),H(us,3,"rewardInfos"),H(S(),8,"")]),Up=G([se(8),j("bump"),_("poolId"),xe("tickLowerIndex"),xe("tickUpperIndex"),Q("liquidity"),Q("feeGrowthInsideLastX64A"),Q("feeGrowthInsideLastX64B"),S("tokenFeesOwedA"),S("tokenFeesOwedB"),H(Q(),3,"rewardGrowthInside"),H(S(),8,"")]),cs=G([xe("tick"),Li("liquidityNet"),Q("liquidityGross"),Q("feeGrowthOutsideX64A"),Q("feeGrowthOutsideX64B"),H(Q(),3,"rewardGrowthsOutsideX64"),H(Ie(),13,"")]),Wi=G([se(8),_("poolId"),xe("startTickIndex"),H(cs,$t,"ticks"),j("initializedTickCount"),H(j(),115,"")]),ls=G([se(329),H(_(),100,"whitelistMints")]),rs=G([se(8),_("poolId"),H(H(S(),8),Dn,"positiveTickArrayBitmap"),H(H(S(),8),Dn,"negativeTickArrayBitmap")]),Gp=G([S(),j("bump"),_("owner"),_("poolId"),_("positionId"),_("nftAccount"),H(S(),8)]),ms=G([se(8),j("bump"),_("lockOwner"),_("poolId"),_("positionId"),_("nftAccount"),_("lockNftMint"),S("recentEpoch"),H(S(),8)]);Xi.span;var Af=ne("Raydium_Clmm");var gs=ne("Raydium_cpmm"),qe={initialize:[175,175,109,31,13,152,155,237],deposit:[242,35,198,137,82,225,242,182],withdraw:[183,18,70,156,148,109,161,34],swapBaseInput:[143,190,90,218,196,30,51,222],swapBaseOutput:[55,217,98,86,163,74,180,173],lockCpLiquidity:[216,157,29,78,38,51,31,26],collectCpFee:[8,30,51,199,209,184,247,133]};function Zi(n,e,t,i,o,r,s,a,c,u,l,m,d,p,b,f,y,P,A,k){let g=G([S("amountMaxA"),S("amountMaxB"),S("openTime")]),T=Ln(n,t,r,s).publicKey,h=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!o.equals(T),isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:Me,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:Hi,isSigner:!1,isWritable:!1},{pubkey:pi,isSigner:!1,isWritable:!1},{pubkey:Rt,isSigner:!1,isWritable:!1}],x=Buffer.alloc(g.span);return g.encode({amountMaxA:P,amountMaxB:A,openTime:k},x),new _e({keys:h,programId:n,data:Buffer.from([...qe.initialize,...x])})}function zi(n,e,t,i,o,r,s,a,c,u,l,m,d,p,b){let f=G([S("lpAmount"),S("amountMaxA"),S("amountMaxB")]),y=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:Me,isSigner:!1,isWritable:!1},{pubkey:Wn,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0}],P=Buffer.alloc(f.span);return gs.debug("cpmm deposit data",{lpAmount:d.toString(),amountMaxA:p.toString(),amountMaxB:b.toString()}),f.encode({lpAmount:d,amountMaxA:p,amountMaxB:b},P),new _e({keys:y,programId:n,data:Buffer.from([...qe.deposit,...P])})}function ji(n,e,t,i,o,r,s,a,c,u,l,m,d,p,b){let f=G([S("lpAmount"),S("amountMinA"),S("amountMinB")]),y=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:Me,isSigner:!1,isWritable:!1},{pubkey:Wn,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:Lt,isSigner:!1,isWritable:!1}],P=Buffer.alloc(f.span);return f.encode({lpAmount:d,amountMinA:p,amountMinB:b},P),new _e({keys:y,programId:n,data:Buffer.from([...qe.withdraw,...P])})}function Yi(n,e,t,i,o,r,s,a,c,u,l,m,d,p,b,f){let y=G([S("amountIn"),S("amounOutMin")]),P=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0}],A=Buffer.alloc(y.span);return y.encode({amountIn:b,amounOutMin:f},A),new _e({keys:P,programId:n,data:Buffer.from([...qe.swapBaseInput,...A])})}function Qi(n,e,t,i,o,r,s,a,c,u,l,m,d,p,b,f){let y=G([S("amountInMax"),S("amountOut")]),P=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0}],A=Buffer.alloc(y.span);return y.encode({amountInMax:b,amountOut:f},A),new _e({keys:P,programId:n,data:Buffer.from([...qe.swapBaseOutput,...A])})}async function Ji(n){var y;let{ownerInfo:e,poolInfo:t,poolKeys:i,feeNftOwner:o,getEphemeralSigners:r}=n,s=[],[a,c]=[new Tt(t.id),new Tt(t.lpMint.address)],u;if(r)u=new Tt((await r(1))[0]);else{let P=bs.generate();s.push(P),u=P.publicKey}let{publicKey:l}=me(o,u,Me),{publicKey:m}=Fn(u),{publicKey:d}=wt(n.lockProgram,u),{publicKey:p}=me(e.wallet,c,Me),{publicKey:b}=me(n.lockAuthProgram,c,Me),f=ws({programId:n.lockProgram,auth:n.lockAuthProgram,payer:e.feePayer,liquidityOwner:e.wallet,nftOwner:o,nftMint:u,nftAccount:l,poolId:a,lockPda:d,mintLp:c,userLpVault:p,lockLpVault:b,poolVaultA:new Tt(i.vault.A),poolVaultB:new Tt(i.vault.B),metadataAccount:m,lpAmount:n.lpAmount,withMetadata:(y=n.withMetadata)!=null?y:!0});return{address:{nftMint:u,nftAccount:l,metadataAccount:m,lockPda:d,userLpVault:p,lockLpVault:b},instructions:[f],signers:s,instructionTypes:[re.CpmmLockLp],lookupTableAddress:[]}}function ws({programId:n,auth:e,payer:t,liquidityOwner:i,nftOwner:o,nftMint:r,nftAccount:s,poolId:a,lockPda:c,mintLp:u,userLpVault:l,lockLpVault:m,poolVaultA:d,poolVaultB:p,metadataAccount:b,lpAmount:f,withMetadata:y}){let P=[{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:i,isSigner:!0,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:Rt,isSigner:!1,isWritable:!1},{pubkey:ys.programId,isSigner:!1,isWritable:!1},{pubkey:Me,isSigner:!1,isWritable:!1},{pubkey:Hi,isSigner:!1,isWritable:!1},{pubkey:Xe,isSigner:!1,isWritable:!1}],A=G([S("lpAmount"),We("withMetadata")]),k=Buffer.alloc(A.span);A.encode({lpAmount:f,withMetadata:y},k);let g=Buffer.from([...qe.lockCpLiquidity,...k]);return new _e({keys:P,programId:n,data:g})}function Vn({programId:n,nftOwner:e,auth:t,nftAccount:i,lockPda:o,poolId:r,mintLp:s,userVaultA:a,userVaultB:c,poolVaultA:u,poolVaultB:l,mintA:m,mintB:d,lockLpVault:p,lpFeeAmount:b,cpmmProgram:f,cpmmAuthProgram:y}){let P=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:f!=null?f:ki,isSigner:!1,isWritable:!1},{pubkey:y!=null?y:Ti,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:Me,isSigner:!1,isWritable:!1},{pubkey:Wn,isSigner:!1,isWritable:!1},{pubkey:Lt,isSigner:!1,isWritable:!1}],A=G([S("lpFeeAmount")]),k=Buffer.alloc(A.span);A.encode({lpFeeAmount:b},k);let g=Buffer.from([...qe.collectCpFee,...k]);return new _e({keys:P,programId:n,data:g})}var $i=G([se(8),j("bump"),We("disableCreatePool"),De("index"),S("tradeFeeRate"),S("protocolFeeRate"),S("fundFeeRate"),S("createPoolFee"),_("protocolOwner"),_("fundOwner"),H(S(),16)]),er=G([se(8),_("configId"),_("poolCreator"),_("vaultA"),_("vaultB"),_("mintLp"),_("mintA"),_("mintB"),_("mintProgramA"),_("mintProgramB"),_("observationId"),j("bump"),j("status"),j("lpDecimals"),j("mintDecimalA"),j("mintDecimalB"),S("lpAmount"),S("protocolFeesMintA"),S("protocolFeesMintB"),S("fundFeesMintA"),S("fundFeesMintB"),S("openTime"),H(S(),32)]);var _n=class extends Je{constructor(e){super(e)}async load(){this.checkDisabled()}async getCpmmPoolKeys(e){return(await this.scope.api.fetchPoolKeysById({idList:[e]}))[0]}async getRpcPoolInfo(e,t){return(await this.getRpcPoolInfos([e],t))[e]}async getRpcPoolInfos(e,t){let i=await Ee(this.scope.connection,e.map(m=>({pubkey:new B(m)}))),o={},r=new Set,s=[];for(let m=0;m<e.length;m++){let d=i[m];if(d.accountInfo===null)throw Error("fetch pool info error: "+String(e[m]));let p=er.decode(d.accountInfo.data);o[String(e[m])]=z(U({},p),{programId:d.accountInfo.owner}),r.add(String(p.configId)),s.push(p.vaultA,p.vaultB)}let a={};if(t){let m=[...r],d=await Ee(this.scope.connection,m.map(p=>({pubkey:new B(p)})));for(let p=0;p<m.length;p++){let b=d[p].accountInfo;if(b===null)throw Error("fetch pool config error: "+m[p]);a[m[p]]=$i.decode(b.data)}}let c={},u=await Ee(this.scope.connection,s.map(m=>({pubkey:new B(m)})));for(let m=0;m<s.length;m++){let d=u[m].accountInfo;if(d===null)throw Error("fetch vault info error: "+s[m]);c[String(s[m])]=new J(Ps.decode(d.data).amount.toString())}let l={};for(let[m,d]of Object.entries(o)){let p=c[d.vaultA.toString()].sub(d.protocolFeesMintA).sub(d.fundFeesMintA),b=c[d.vaultB.toString()].sub(d.protocolFeesMintB).sub(d.fundFeesMintB);l[m]=z(U({},d),{baseReserve:p,quoteReserve:b,vaultAAmount:c[d.vaultA.toString()],vaultBAmount:c[d.vaultB.toString()],configInfo:a[d.configId.toString()],poolPrice:new te(b.toString()).div(new te(10).pow(d.mintDecimalB)).div(new te(p.toString()).div(new te(10).pow(d.mintDecimalA)))})}return l}toComputePoolInfos({pools:e,mintInfos:t}){return Object.keys(e).reduce((i,o)=>{var c,u,l,m;let r=e[o],[s,a]=[r.mintA.toBase58(),r.mintB.toBase58()];return z(U({},i),{[o]:z(U({},r),{id:new B(o),configInfo:r.configInfo,version:7,authority:Qt(r.programId).publicKey,mintA:Ve({address:s,decimals:r.mintDecimalA,programId:r.mintProgramA.toBase58(),extensions:{feeConfig:(c=t[s])!=null&&c.feeConfig?et((u=t[s])==null?void 0:u.feeConfig):void 0}}),mintB:Ve({address:a,decimals:r.mintDecimalB,programId:r.mintProgramB.toBase58(),extensions:{feeConfig:(l=t[a])!=null&&l.feeConfig?et((m=t[a])==null?void 0:m.feeConfig):void 0}})})})},{})}async getPoolInfoFromRpc(e){let t=await this.getRpcPoolInfo(e,!0),i=await mn({connection:this.scope.connection,mints:[t.mintA,t.mintB]}),o=Ve({address:t.mintA.toBase58(),decimals:t.mintDecimalA,programId:t.mintProgramA.toBase58(),extensions:{feeConfig:i[t.mintA.toBase58()].feeConfig?et(i[t.mintA.toBase58()].feeConfig):void 0}}),r=Ve({address:t.mintB.toBase58(),decimals:t.mintDecimalB,programId:t.mintProgramB.toBase58(),extensions:{feeConfig:i[t.mintB.toBase58()].feeConfig?et(i[t.mintB.toBase58()].feeConfig):void 0}}),s=Ve({address:t.mintLp.toBase58(),decimals:t.lpDecimals,programId:ce.toBase58()}),a={id:t.configId.toBase58(),index:t.configInfo.index,protocolFeeRate:t.configInfo.protocolFeeRate.toNumber(),tradeFeeRate:t.configInfo.tradeFeeRate.toNumber(),fundFeeRate:t.configInfo.fundFeeRate.toNumber(),createPoolFee:t.configInfo.createPoolFee.toString()},c={volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[]};return{poolInfo:{programId:t.programId.toBase58(),id:e,type:"Standard",lpMint:s,lpPrice:0,lpAmount:t.lpAmount.toNumber(),config:a,mintA:o,mintB:r,rewardDefaultInfos:[],rewardDefaultPoolInfos:"Ecosystem",price:t.poolPrice.toNumber(),mintAmountA:new te(t.vaultAAmount.toString()).div(10**o.decimals).toNumber(),mintAmountB:new te(t.vaultBAmount.toString()).div(10**r.decimals).toNumber(),feeRate:t.configInfo.tradeFeeRate.toNumber(),openTime:t.openTime.toString(),tvl:0,burnPercent:0,day:c,week:c,month:c,pooltype:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0},poolKeys:{programId:t.programId.toBase58(),id:e,mintA:o,mintB:r,openTime:t.openTime.toString(),vault:{A:t.vaultA.toBase58(),B:t.vaultB.toBase58()},authority:Qt(t.programId).publicKey.toBase58(),mintLp:s,config:a,observationId:gt(t.programId,new B(e)).publicKey.toBase58()},rpcData:t}}async createPool(b){var f=b,{poolId:e,programId:t,poolFeeAccount:i,startTime:o,ownerInfo:r,associatedOnly:s=!1,checkCreateATAOwner:a=!1,txVersion:c,feeConfig:u,computeBudgetConfig:l,txTipConfig:m,feePayer:d}=f,p=he(f,["poolId","programId","poolFeeAccount","startTime","ownerInfo","associatedOnly","checkCreateATAOwner","txVersion","feeConfig","computeBudgetConfig","txTipConfig","feePayer"]);var F,$,pe;let y=r.feePayer||((F=this.scope.owner)==null?void 0:F.publicKey),P=new J(new B(p.mintA.address).toBuffer()).lte(new J(new B(p.mintB.address).toBuffer())),[A,k]=P?[p.mintA,p.mintB]:[p.mintB,p.mintA],[g,T]=P?[p.mintAAmount,p.mintBAmount]:[p.mintBAmount,p.mintAAmount],h=r.useSOLBalance&&A.address===en.toBase58(),x=r.useSOLBalance&&k.address===en.toBase58(),[I,M]=[new B(A.address),new B(k.address)],K=this.createTxBuilder(d),{account:C,instructionParams:N}=await this.scope.account.getOrCreateTokenAccount({mint:I,tokenProgram:A.programId,owner:this.scope.ownerPubKey,createInfo:h?{payer:y,amount:g}:void 0,notUseTokenAccount:h,skipCloseAccount:!h,associatedOnly:h?!1:s,checkCreateATAOwner:a});K.addInstruction(N||{});let{account:W,instructionParams:q}=await this.scope.account.getOrCreateTokenAccount({mint:new B(k.address),tokenProgram:k.programId,owner:this.scope.ownerPubKey,createInfo:x?{payer:y,amount:T}:void 0,notUseTokenAccount:x,skipCloseAccount:!x,associatedOnly:x?!1:s,checkCreateATAOwner:a});if(K.addInstruction(q||{}),C===void 0||W===void 0)throw Error("you don't has some token account");let D=Mi({poolId:e,programId:t,configId:new B(u.id),mintA:I,mintB:M});return K.addInstruction({instructions:[Zi(t,this.scope.ownerPubKey,new B(u.id),D.authority,D.poolId,I,M,D.lpMint,C,W,me(this.scope.ownerPubKey,D.lpMint).publicKey,D.vaultA,D.vaultB,i,new B(($=A.programId)!=null?$:ce),new B((pe=k.programId)!=null?pe:ce),D.observationId,g,T,o)],instructionTypes:[re.CpmmCreatePool]}),K.addCustomComputeBudget(l),K.addTipInstruction(m),K.versionBuild({txVersion:c,extInfo:{address:z(U({},D),{mintA:A,mintB:k,programId:t,poolFeeAccount:i,feeConfig:u})}})}async addLiquidity(e){let{poolInfo:t,poolKeys:i,inputAmount:o,baseIn:r,slippage:s,computeResult:a,computeBudgetConfig:c,txTipConfig:u,config:l,txVersion:m,feePayer:d}=e;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region"),o.isZero()&&this.logAndCreateError("amounts must greater than zero","amountInA",{amountInA:o.toString()});let{account:p}=this.scope,{bypassAssociatedCheck:b,checkCreateATAOwner:f}=U({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},l),y=a?void 0:await this.getRpcPoolInfo(t.id),{liquidity:P,inputAmountFee:A,anotherAmount:k}=a||this.computePairAmount({poolInfo:z(U({},t),{lpAmount:new te(y.lpAmount.toString()).div(10**t.lpMint.decimals).toNumber()}),baseReserve:y.baseReserve,quoteReserve:y.quoteReserve,slippage:new le(0),baseIn:r,epochInfo:await this.scope.fetchEpochInfo(),amount:new te(o.toString()).div(10**(r?t.mintA.decimals:t.mintB.decimals))}),g=k.amount,T=t.mintA.address===en.toString(),h=t.mintB.address===en.toString(),x=this.createTxBuilder(d),[I,M]=[new B(t.mintA.address),new B(t.mintB.address)],{account:K,instructionParams:C}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new B(t.mintA.address),owner:this.scope.ownerPubKey,createInfo:T||(r?o:g).isZero()?{payer:this.scope.ownerPubKey,amount:r?o:g}:void 0,skipCloseAccount:!T,notUseTokenAccount:T,associatedOnly:!1,checkCreateATAOwner:f});x.addInstruction(C||{});let{account:N,instructionParams:W}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new B(t.mintB.address),owner:this.scope.ownerPubKey,createInfo:h||(r?g:o).isZero()?{payer:this.scope.ownerPubKey,amount:r?g:o}:void 0,skipCloseAccount:!h,notUseTokenAccount:h,associatedOnly:!1,checkCreateATAOwner:f});x.addInstruction(W||{}),!K&&!N&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",p.tokenAccounts);let q=await p.getCreatedTokenAccount({mint:new B(t.lpMint.address)}),Oe=await p.handleTokenAccount({side:"out",amount:0,mint:new B(t.lpMint.address),tokenAccount:q,bypassAssociatedCheck:b,checkCreateATAOwner:f}),{tokenAccount:D}=Oe,F=he(Oe,["tokenAccount"]);x.addInstruction(F);let $=i!=null?i:await this.getCpmmPoolKeys(t.id),pe=new le(new J(1)).sub(s);return x.addInstruction({instructions:[zi(new B(t.programId),this.scope.ownerPubKey,new B($.authority),new B(t.id),D,K,N,new B($.vault.A),new B($.vault.B),I,M,new B(t.lpMint.address),a?a==null?void 0:a.liquidity:pe.mul(P).quotient,r?A.amount:g,r?g:A.amount)],instructionTypes:[re.CpmmAddLiquidity],lookupTableAddress:$.lookupTableAccount?[$.lookupTableAccount]:[]}),x.addCustomComputeBudget(c),x.addTipInstruction(u),x.versionBuild({txVersion:m})}async withdrawLiquidity(e){var F,$;let{poolInfo:t,poolKeys:i,lpAmount:o,slippage:r,computeBudgetConfig:s,txTipConfig:a,txVersion:c,feePayer:u,closeWsol:l=!0}=e;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region");let m=new le(new J(1)).sub(r),d=await this.getRpcPoolInfo(t.id),[p,b]=[m.mul(o.mul(d.baseReserve).div(d.lpAmount)).quotient,m.mul(o.mul(d.quoteReserve).div(d.lpAmount)).quotient],f=await this.scope.fetchEpochInfo(),[y,P]=[Ae(p,t.mintA.extensions.feeConfig,f,!1),Ae(b,t.mintB.extensions.feeConfig,f,!1)],{account:A}=this.scope,k=this.createTxBuilder(u),[g,T]=[new B(t.mintA.address),new B(t.mintB.address)],h=g.equals(ue),x=T.equals(ue),I,M,{account:K,instructionParams:C}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new B(t.mintA.address),notUseTokenAccount:h,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!(h&&l),associatedOnly:!h,checkCreateATAOwner:!1});I=K,C&&k.addInstruction(C);let{account:N,instructionParams:W}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new B(t.mintB.address),notUseTokenAccount:x,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!(x&&l),associatedOnly:!x,checkCreateATAOwner:!1});M=N,W&&k.addInstruction(W),(!I||!M)&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",A.tokenAccounts);let q=await A.getCreatedTokenAccount({mint:new B(t.lpMint.address)});q||this.logAndCreateError("cannot found lp token account","tokenAccounts",A.tokenAccounts);let D=i!=null?i:await this.getCpmmPoolKeys(t.id);return k.addInstruction({instructions:[ji(new B(t.programId),this.scope.ownerPubKey,new B(D.authority),new B(t.id),q,I,M,new B(D.vault.A),new B(D.vault.B),g,T,new B(t.lpMint.address),o,p.sub((F=y.fee)!=null?F:new J(0)),b.sub(($=P.fee)!=null?$:new J(0)))],instructionTypes:[re.CpmmWithdrawLiquidity],lookupTableAddress:D.lookupTableAccount?[D.lookupTableAccount]:[]}),k.addCustomComputeBudget(s),k.addTipInstruction(a),k.versionBuild({txVersion:c})}async swap(e){var C,N,W,q,D,F;let{poolInfo:t,poolKeys:i,baseIn:o,fixedOut:r,inputAmount:s,swapResult:a,slippage:c=0,config:u,computeBudgetConfig:l,txTipConfig:m,txVersion:d,feePayer:p}=e,{bypassAssociatedCheck:b,checkCreateATAOwner:f,associatedOnly:y}=U({bypassAssociatedCheck:!1,checkCreateATAOwner:!1,associatedOnly:!0},u),P=this.createTxBuilder(p),[A,k]=[new B(t.mintA.address),new B(t.mintB.address)];r?a.sourceAmountSwapped=a.sourceAmountSwapped.mul(new J((1+c)*1e4)).div(new J(1e4)):a.destinationAmountSwapped=a.destinationAmountSwapped.mul(new J((1-c)*1e4)).div(new J(1e4));let g=t.mintA.address===ue.toBase58(),T=t.mintB.address===ue.toBase58(),{account:h,instructionParams:x}=await this.scope.account.getOrCreateTokenAccount({mint:A,tokenProgram:new B((C=t.mintA.programId)!=null?C:ce),owner:this.scope.ownerPubKey,createInfo:g||!o?{payer:this.scope.ownerPubKey,amount:o?a.sourceAmountSwapped:0}:void 0,notUseTokenAccount:g,skipCloseAccount:!g,associatedOnly:g?!1:y,checkCreateATAOwner:f});x&&P.addInstruction(x);let{account:I,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({mint:k,tokenProgram:new B((N=t.mintB.programId)!=null?N:ce),owner:this.scope.ownerPubKey,createInfo:T||o?{payer:this.scope.ownerPubKey,amount:o?0:a.sourceAmountSwapped}:void 0,notUseTokenAccount:T,skipCloseAccount:!T,associatedOnly:T?!1:y,checkCreateATAOwner:f});M&&P.addInstruction(M),(!h||!I)&&this.logAndCreateError("user do not have token account",{mintA:t.mintA.symbol||t.mintA.address,mintB:t.mintB.symbol||t.mintB.address,mintATokenAcc:h,mintBTokenAcc:I,mintAUseSOLBalance:g,mintBUseSOLBalance:T,associatedOnly:y});let K=i!=null?i:await this.getCpmmPoolKeys(t.id);return P.addInstruction({instructions:[r?Qi(new B(t.programId),this.scope.ownerPubKey,new B(K.authority),new B(K.config.id),new B(t.id),o?h:I,o?I:h,new B(K.vault[o?"A":"B"]),new B(K.vault[o?"B":"A"]),new B((D=t[o?"mintA":"mintB"].programId)!=null?D:ce),new B((F=t[o?"mintB":"mintA"].programId)!=null?F:ce),o?A:k,o?k:A,gt(new B(t.programId),new B(t.id)).publicKey,a.sourceAmountSwapped,a.destinationAmountSwapped):Yi(new B(t.programId),this.scope.ownerPubKey,new B(K.authority),new B(K.config.id),new B(t.id),o?h:I,o?I:h,new B(K.vault[o?"A":"B"]),new B(K.vault[o?"B":"A"]),new B((W=t[o?"mintA":"mintB"].programId)!=null?W:ce),new B((q=t[o?"mintB":"mintA"].programId)!=null?q:ce),o?A:k,o?k:A,gt(new B(t.programId),new B(t.id)).publicKey,s,a.destinationAmountSwapped)],instructionTypes:[r?re.CpmmSwapBaseOut:re.ClmmSwapBaseIn]}),P.addCustomComputeBudget(l),P.addTipInstruction(m),P.versionBuild({txVersion:d})}async lockLp(e){var d,p,b,f,y;let{poolInfo:t,lpAmount:i,computeBudgetConfig:o,txTipConfig:r,txVersion:s,feePayer:a,feeNftOwner:c}=e;i.isZero()&&this.logAndCreateError("lpAmount must greater than zero",{lpAmount:i.toString()});let u=this.createTxBuilder(a),l=(d=e.poolKeys)!=null?d:await this.getCpmmPoolKeys(t.id),m=await Ji({poolInfo:t,poolKeys:l,ownerInfo:{wallet:this.scope.ownerPubKey,feePayer:(p=e.feePayer)!=null?p:this.scope.ownerPubKey},feeNftOwner:c!=null?c:this.scope.ownerPubKey,lockProgram:(b=e.programId)!=null?b:Wt,lockAuthProgram:(f=e.authProgram)!=null?f:Vt,lpAmount:i,withMetadata:(y=e.withMetadata)!=null?y:!0,getEphemeralSigners:e.getEphemeralSigners});return u.addInstruction(m),u.addCustomComputeBudget(o),u.addTipInstruction(r),u.versionBuild({txVersion:s,extInfo:m.address})}async harvestLockLp(e){var N;let{poolInfo:t,lpFeeAmount:i,nftMint:o,programId:r=Wt,authProgram:s=Vt,cpmmProgram:a,computeBudgetConfig:c,txTipConfig:u,txVersion:l,closeWsol:m=!0}=e;i.isZero()&&this.logAndCreateError("lpFeeAmount must greater than zero",{lpAmount:i.toString()});let d=e.feePayer||this.scope.ownerPubKey,p=this.createTxBuilder(d),[b,f]=[new B(t.mintA.address),new B(t.mintB.address)],y=b.equals(ue),P=f.equals(ue),A,k,{account:g,instructionParams:T}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new B(t.mintA.address),notUseTokenAccount:y,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!(y&&m),associatedOnly:!y,checkCreateATAOwner:!1});A=g,T&&p.addInstruction(T);let{account:h,instructionParams:x}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new B(t.mintB.address),notUseTokenAccount:P,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!(P&&m),associatedOnly:!P,checkCreateATAOwner:!1});k=h,x&&p.addInstruction(x),(!A||!k)&&this.logAndCreateError("cannot found target token accounts",{tokenAccountA:A,tokenAccountB:k});let I=(N=e.poolKeys)!=null?N:await this.getCpmmPoolKeys(t.id),{publicKey:M}=me(d,o,ce),{publicKey:K}=wt(r,o),{publicKey:C}=me(s,new B(t.lpMint.address),ce);return p.addInstruction({instructions:[Vn({programId:r,nftOwner:this.scope.ownerPubKey,auth:s,nftMint:o,nftAccount:M,lockPda:K,poolId:new B(t.id),mintLp:new B(I.mintLp.address),userVaultA:A,userVaultB:k,poolVaultA:new B(I.vault.A),poolVaultB:new B(I.vault.B),mintA:b,mintB:f,lockLpVault:C,lpFeeAmount:i,cpmmProgram:a==null?void 0:a.programId,cpmmAuthProgram:a==null?void 0:a.authProgram})],instructionTypes:[re.CpmmCollectLockFee]}),p.addCustomComputeBudget(c),p.addTipInstruction(u),p.versionBuild({txVersion:l})}async harvestMultiLockLp(e){let{lockInfo:t,programId:i=Wt,authProgram:o=Vt,cpmmProgram:r,computeBudgetConfig:s,txVersion:a,closeWsol:c=!0}=e,u=e.feePayer||this.scope.ownerPubKey,l=this.createTxBuilder(u),m={};return t.forEach(async d=>{var K;let{poolInfo:p,lpFeeAmount:b,nftMint:f}=d;if(b.isZero())return;let[y,P]=[new B(p.mintA.address),new B(p.mintB.address)],A=y.equals(ue),k=P.equals(ue),g=m[p.mintA.address],T=m[p.mintB.address];if(!g)if(A){let{account:C,instructionParams:N}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:p.mintA.programId,mint:new B(p.mintA.address),notUseTokenAccount:!0,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!c,associatedOnly:!1,checkCreateATAOwner:!1});g=C,N&&l.addInstruction(N),m[p.mintA.address]=C}else{let C=new B(p.mintA.address);g=this.scope.account.getAssociatedTokenAccount(C,new B(p.mintA.programId)),l.addInstruction({instructions:[tr(this.scope.ownerPubKey,g,this.scope.ownerPubKey,C)]}),m[p.mintA.address]=g}if(!T)if(k){let{account:C,instructionParams:N}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:p.mintB.programId,mint:new B(p.mintB.address),notUseTokenAccount:!0,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!c,associatedOnly:!1,checkCreateATAOwner:!1});T=C,N&&l.addInstruction(N),m[p.mintB.address]=C}else{let C=new B(p.mintB.address);T=this.scope.account.getAssociatedTokenAccount(C,new B(p.mintB.programId)),l.addInstruction({instructions:[tr(this.scope.ownerPubKey,T,this.scope.ownerPubKey,C)]}),m[p.mintB.address]=T}(!g||!T)&&this.logAndCreateError("cannot found target token accounts",{tokenAccountA:g,tokenAccountB:T});let h=(K=d.poolKeys)!=null?K:await this.getCpmmPoolKeys(p.id),{publicKey:x}=me(u,f,ce),{publicKey:I}=wt(i,f),{publicKey:M}=me(o,new B(p.lpMint.address),ce);l.addInstruction({instructions:[Vn({programId:i,nftOwner:this.scope.ownerPubKey,auth:o,nftMint:f,nftAccount:x,lockPda:I,poolId:new B(p.id),mintLp:new B(h.mintLp.address),userVaultA:g,userVaultB:T,poolVaultA:new B(h.vault.A),poolVaultB:new B(h.vault.B),mintA:y,mintB:P,lockLpVault:M,lpFeeAmount:b,cpmmProgram:r==null?void 0:r.programId,cpmmAuthProgram:r==null?void 0:r.authProgram})],instructionTypes:[re.CpmmCollectLockFee]})}),a===0?l.sizeCheckBuildV0({computeBudgetConfig:s}):l.sizeCheckBuild({computeBudgetConfig:s})}computeSwapAmount({pool:e,amountIn:t,outputMint:i,slippage:o}){let r=i.toString()===e.mintB.address,s=jt.swap(t,r?e.baseReserve:e.quoteReserve,r?e.quoteReserve:e.baseReserve,e.configInfo.tradeFeeRate),a=new te(s.destinationAmountSwapped.toString()).div(s.sourceAmountSwapped.toString()),c=s.destinationAmountSwapped.mul(new J((1-o)*1e4)).div(new J(1e4));return{allTrade:s.sourceAmountSwapped.eq(t),amountIn:t,amountOut:s.destinationAmountSwapped,minAmountOut:c,executionPrice:a,fee:s.tradeFee,priceImpact:e.poolPrice.sub(a).div(e.poolPrice)}}computePairAmount({poolInfo:e,baseReserve:t,quoteReserve:i,amount:o,slippage:r,epochInfo:s,baseIn:a}){var g,T,h,x,I,M,K,C,N;let c=1-Number(r.toSignificant())/100,u=new J(new te(o).mul(10**e[a?"mintA":"mintB"].decimals).mul(c).toFixed(0)),l=Ae(u,e[a?"mintA":"mintB"].extensions.feeConfig,s,!1),m=u.sub((g=l.fee)!=null?g:new J(0)),d=new J(new te(e.lpAmount).mul(10**e.lpMint.decimals).toFixed(0,te.ROUND_DOWN));this.logDebug("baseReserve:",t.toString(),"quoteReserve:",i.toString()),this.logDebug("tokenIn:",a?e.mintA.symbol:e.mintB.symbol,"amountIn:",u.toString(),"amountInFee:",(h=(T=l.fee)==null?void 0:T.toString())!=null?h:0,"anotherToken:",a?e.mintB.symbol:e.mintA.symbol,"slippage:",`${r.toSignificant()}%`);let p=a?"base":"quote";this.logDebug("input side:",p);let b=m.mul(d).div(p==="base"?t:i),f={amount:An,fee:void 0,expirationTime:void 0};if(!m.isZero()){let W=As(b,t,i,d);this.logDebug("lpAmountData:",{amountA:W.amountA.toString(),amountB:W.amountB.toString()}),f=Ae(W[a?"amountB":"amountA"],e[a?"mintB":"mintA"].extensions.feeConfig,s,!0)}let y=new le(new J(1)).add(r),P=new le(new J(1)).sub(r),A=Ae(y.mul(f.amount.sub((x=f.fee)!=null?x:new J(0))).quotient,e[a?"mintB":"mintA"].extensions.feeConfig,s,!0),k=Ae(P.mul(f.amount.sub((I=f.fee)!=null?I:new J(0))).quotient,e[a?"mintB":"mintA"].extensions.feeConfig,s,!0);return this.logDebug("anotherAmount:",f.amount.toString(),"anotherAmountFee:",(K=(M=f.fee)==null?void 0:M.toString())!=null?K:0,"maxAnotherAmount:",A.amount.toString(),"maxAnotherAmountFee:",(N=(C=A.fee)==null?void 0:C.toString())!=null?N:0),{inputAmountFee:l,anotherAmount:f,maxAnotherAmount:A,minAnotherAmount:k,liquidity:b}}};function As(n,e,t,i){let o=n.mul(e).div(i);!o.isZero()&&!n.mul(e).mod(i).isZero()&&(o=o.add(new J(1)));let r=n.mul(t).div(i);return!r.isZero()&&!n.mul(t).mod(i).isZero()&&(r=r.add(new J(1))),{amountA:o,amountB:r}}export{_n as default};
2
2
  //# sourceMappingURL=cpmm.mjs.map