@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 cr=Object.create;var ut=Object.defineProperty,lr=Object.defineProperties,mr=Object.getOwnPropertyDescriptor,dr=Object.getOwnPropertyDescriptors,pr=Object.getOwnPropertyNames,St=Object.getOwnPropertySymbols,fr=Object.getPrototypeOf,un=Object.prototype.hasOwnProperty,zn=Object.prototype.propertyIsEnumerable;var Zn=(n,e,t)=>e in n?ut(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,U=(n,e)=>{for(var t in e||(e={}))un.call(e,t)&&Zn(n,t,e[t]);if(St)for(var t of St(e))zn.call(e,t)&&Zn(n,t,e[t]);return n},Y=(n,e)=>lr(n,dr(e));var Ke=(n,e)=>{var t={};for(var i in n)un.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&St)for(var i of St(n))e.indexOf(i)<0&&zn.call(n,i)&&(t[i]=n[i]);return t};var br=(n,e)=>{for(var t in e)ut(n,t,{get:e[t],enumerable:!0})},jn=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of pr(e))!un.call(n,r)&&r!==t&&ut(n,r,{get:()=>e[r],enumerable:!(i=mr(e,r))||i.enumerable});return n};var Q=(n,e,t)=>(t=n!=null?cr(fr(n)):{},jn(e||!n||!n.__esModule?ut(t,"default",{value:n,enumerable:!0}):t,n)),yr=n=>jn(ut({},"__esModule",{value:!0}),n);var ds={};br(ds,{default:()=>an});module.exports=yr(ds);var B=require("@solana/web3.js"),ee=require("@solana/spl-token");var Be=Q(require("bn.js"));var ze=9e15,Ee=1e9,cn="0123456789abcdef",Kt="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Nt="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",ln={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-ze,maxE:ze,crypto:!1},$n,Ne,V=!0,Rt="[DecimalError] ",Fe=Rt+"Invalid argument: ",ei=Rt+"Precision limit exceeded",ti=Rt+"crypto unavailable",ni="[object Decimal]",ce=Math.floor,ie=Math.pow,gr=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,wr=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Pr=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,ii=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ke=1e7,v=7,Ar=9007199254740991,kr=Kt.length-1,mn=Nt.length-1,g={toStringTag:ni};g.absoluteValue=g.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),L(n)};g.ceil=function(){return L(new this.constructor(this),this.e+1,2)};g.clampedTo=g.clamp=function(n,e){var t,i=this,r=i.constructor;if(n=new r(n),e=new r(e),!n.s||!e.s)return new r(NaN);if(n.gt(e))throw Error(Fe+e);return t=i.cmp(n),t<0?n:i.cmp(e)>0?e:new r(i)};g.comparedTo=g.cmp=function(n){var e,t,i,r,o=this,s=o.d,a=(n=new o.constructor(n)).d,c=o.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(o.e!==n.e)return o.e>n.e^c<0?1:-1;for(i=s.length,r=a.length,e=0,t=i<r?i:r;e<t;++e)if(s[e]!==a[e])return s[e]>a[e]^c<0?1:-1;return i===r?0:i>r^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=Tr(i,ui(i,t)),i.precision=n,i.rounding=e,L(Ne==2||Ne==3?t.neg():t,n,e,!0)):new i(1):new i(NaN)};g.cubeRoot=g.cbrt=function(){var n,e,t,i,r,o,s,a,c,u,l=this,m=l.constructor;if(!l.isFinite()||l.isZero())return new m(l);for(V=!1,o=l.s*ie(l.s*l,1/3),!o||Math.abs(o)==1/0?(t=ae(l.d),n=l.e,(o=(n-t.length+1)%3)&&(t+=o==1||o==-2?"0":"00"),o=ie(t,1/3),n=ce((n+1)/3)-(n%3==(n<0?-1:2)),o==1/0?t="5e"+n:(t=o.toExponential(),t=t.slice(0,t.indexOf("e")+1)+n),i=new m(t),i.s=l.s):i=new m(o.toString()),s=(n=m.precision)+3;;)if(a=i,c=a.times(a).times(a),u=c.plus(l),i=Z(u.plus(l).times(a),u.plus(c),s+2,1),ae(a.d).slice(0,s)===(t=ae(i.d)).slice(0,s))if(t=t.slice(s-3,s+1),t=="9999"||!r&&t=="4999"){if(!r&&(L(a,n+1,0),a.times(a).times(a).eq(l))){i=a;break}s+=4,r=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(L(i,n+1,1),e=!i.times(i).times(i).eq(l));break}return V=!0,L(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-ce(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 Z(this,new this.constructor(n))};g.dividedToIntegerBy=g.divToInt=function(n){var e=this,t=e.constructor;return L(Z(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 L(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,r,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;t=s.precision,i=s.rounding,s.precision=t+Math.max(o.e,o.sd())+4,s.rounding=1,r=o.d.length,r<32?(n=Math.ceil(r/3),e=(1/Ot(4,n)).toString()):(n=16,e="2.3283064365386962890625e-10"),o=je(s,1,o.times(e),new s(1),!0);for(var c,u=n,l=new s(8);u--;)c=o.times(o),o=a.minus(c.times(l.minus(c.times(l))));return L(o,s.precision=t,s.rounding=i,!0)};g.hyperbolicSine=g.sinh=function(){var n,e,t,i,r=this,o=r.constructor;if(!r.isFinite()||r.isZero())return new o(r);if(e=o.precision,t=o.rounding,o.precision=e+Math.max(r.e,r.sd())+4,o.rounding=1,i=r.d.length,i<3)r=je(o,2,r,r,!0);else{n=1.4*Math.sqrt(i),n=n>16?16:n|0,r=r.times(1/Ot(5,n)),r=je(o,2,r,r,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);n--;)s=r.times(r),r=r.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=e,o.rounding=t,L(r,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,Z(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),r=t.precision,o=t.rounding;return i!==-1?i===0?e.isNeg()?Ae(t,r,o):new t(0):new t(NaN):e.isZero()?Ae(t,r+4,o).times(.5):(t.precision=r+6,t.rounding=1,e=e.asin(),n=Ae(t,r+4,o).times(.5),t.precision=r,t.rounding=o,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,r=this,o=r.constructor;return r.isFinite()?r.e>=0?new o(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(n=o.precision,e=o.rounding,i=r.sd(),Math.max(i,n)<2*-r.e-1?L(new o(r),n,e,!0):(o.precision=t=i-r.e,r=Z(r.plus(1),new o(1).minus(r),t+n,1),o.precision=n+4,o.rounding=1,r=r.ln(),o.precision=n,o.rounding=e,r.times(.5))):new o(NaN)};g.inverseSine=g.asin=function(){var n,e,t,i,r=this,o=r.constructor;return r.isZero()?new o(r):(e=r.abs().cmp(1),t=o.precision,i=o.rounding,e!==-1?e===0?(n=Ae(o,t+4,i).times(.5),n.s=r.s,n):new o(NaN):(o.precision=t+6,o.rounding=1,r=r.div(new o(1).minus(r.times(r)).sqrt().plus(1)).atan(),o.precision=t,o.rounding=i,r.times(2)))};g.inverseTangent=g.atan=function(){var n,e,t,i,r,o,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<=mn)return s=Ae(l,m+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(m+4<=mn)return s=Ae(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),r=u;n!==-1;)if(r=r.times(c),o=s.minus(r.div(i+=2)),r=r.times(c),s=o.plus(r.div(i+=2)),s.d[e]!==void 0)for(n=e;s.d[n]===o.d[n]&&n--;);return t&&(s=s.times(2<<t-1)),V=!0,L(s,l.precision=m,l.rounding=d,!0)};g.isFinite=function(){return!!this.d};g.isInteger=g.isInt=function(){return!!this.d&&ce(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,r,o,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)o=!0;else{for(r=t[0];r%10===0;)r/=10;o=r!==1}if(V=!1,a=m+p,s=Oe(u,a),i=e?Lt(l,a+10):Oe(n,a),c=Z(s,i,a,1),ct(c.d,r=m,d))do if(a+=10,s=Oe(u,a),i=e?Lt(l,a+10):Oe(n,a),c=Z(s,i,a,1),!o){+ae(c.d).slice(r+1,r+15)+1==1e14&&(c=L(c,m+1,0));break}while(ct(c.d,r+=10,d));return V=!0,L(c,m,d)};g.minus=g.sub=function(n){var e,t,i,r,o,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?L(n,a,c):n}if(t=ce(n.e/v),l=ce(p.e/v),u=u.slice(),o=l-t,o){for(m=o<0,m?(e=u,o=-o,s=d.length):(e=d,t=l,s=u.length),i=Math.max(Math.ceil(a/v),s)+2,o>i&&(o=i,e.length=1),e.reverse(),i=o;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}o=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>o;){if(u[--i]<d[i]){for(r=i;r&&u[--r]===0;)u[r]=ke-1;--u[r],u[i]+=ke}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=Mt(u,t),V?L(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]?L(new i(t),i.precision,i.rounding):(V=!1,i.modulo==9?(e=Z(t,n.abs(),0,3,1),e.s*=n.s):e=Z(t,n,0,i.modulo,1),e=e.times(n),V=!0,t.minus(e))};g.naturalExponential=g.exp=function(){return dn(this)};g.naturalLogarithm=g.ln=function(){return Oe(this)};g.negated=g.neg=function(){var n=new this.constructor(this);return n.s=-n.s,L(n)};g.plus=g.add=function(n){var e,t,i,r,o,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?L(n,a,c):n;if(o=ce(m.e/v),i=ce(n.e/v),u=u.slice(),r=o-i,r){for(r<0?(t=u,r=-r,s=l.length):(t=l,i=o,s=u.length),o=Math.ceil(a/v),s=o>s?o+1:s+1,r>s&&(r=s,t.length=1),t.reverse();r--;)t.push(0);t.reverse()}for(s=u.length,r=l.length,s-r<0&&(r=s,t=l,l=u,u=t),e=0;r;)e=(u[--r]=u[r]+l[r]+e)/ke|0,u[r]%=ke;for(e&&(u.unshift(e),++i),s=u.length;u[--s]==0;)u.pop();return n.d=u,n.e=Mt(u,i),V?L(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(Fe+n);return t.d?(e=ri(t.d),n&&t.e+1>e&&(e=t.e+1)):e=NaN,e};g.round=function(){var n=this,e=n.constructor;return L(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=Br(i,ui(i,t)),i.precision=n,i.rounding=e,L(Ne>2?t.neg():t,n,e,!0)):new i(NaN)};g.squareRoot=g.sqrt=function(){var n,e,t,i,r,o,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=ae(a),(e.length+c)%2==0&&(e+="0"),u=Math.sqrt(e),c=ce((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(o=i,i=o.plus(Z(s,o,t+2,1)).times(.5),ae(o.d).slice(0,t)===(e=ae(i.d)).slice(0,t))if(e=e.slice(t-3,t+1),e=="9999"||!r&&e=="4999"){if(!r&&(L(o,c+1,0),o.times(o).eq(s))){i=o;break}t+=4,r=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(L(i,c+1,1),n=!i.times(i).eq(s));break}return V=!0,L(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=Z(t,new i(1).minus(t.times(t)).sqrt(),n+10,0),i.precision=n,i.rounding=e,L(Ne==2||Ne==4?t.neg():t,n,e,!0)):new i(NaN)};g.times=g.mul=function(n){var e,t,i,r,o,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=ce(l.e/v)+ce(n.e/v),c=d.length,u=p.length,c<u&&(o=d,d=p,p=o,s=c,c=u,u=s),o=[],s=c+u,i=s;i--;)o.push(0);for(i=u;--i>=0;){for(e=0,r=c+i;r>i;)a=o[r]+p[i]*d[r-i-1]+e,o[r--]=a%ke|0,e=a/ke|0;o[r]=(o[r]+e)%ke|0}for(;!o[--s];)o.pop();return e?++t:o.shift(),n.d=o,n.e=Mt(o,t),V?L(n,m.precision,m.rounding):n};g.toBinary=function(n,e){return fn(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:(pe(n,0,Ee),e===void 0?e=i.rounding:pe(e,0,8),L(t,n+t.e+1,e))};g.toExponential=function(n,e){var t,i=this,r=i.constructor;return n===void 0?t=xe(i,!0):(pe(n,0,Ee),e===void 0?e=r.rounding:pe(e,0,8),i=L(new r(i),n+1,e),t=xe(i,!0,n+1)),i.isNeg()&&!i.isZero()?"-"+t:t};g.toFixed=function(n,e){var t,i,r=this,o=r.constructor;return n===void 0?t=xe(r):(pe(n,0,Ee),e===void 0?e=o.rounding:pe(e,0,8),i=L(new o(r),n+r.e+1,e),t=xe(i,!1,n+i.e+1)),r.isNeg()&&!r.isZero()?"-"+t:t};g.toFraction=function(n){var e,t,i,r,o,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),o=e.e=ri(b)-p.e-1,s=o%v,e.d[0]=ie(10,s<0?v+s:s),n==null)n=o>0?e:u;else{if(a=new f(n),!a.isInt()||a.lt(u))throw Error(Fe+a);n=a.gt(e)?o>0?e:u:a}for(V=!1,a=new f(ae(b)),l=f.precision,f.precision=o=b.length*v*2;m=Z(a,e,0,1,1),r=t.plus(m.times(i)),r.cmp(n)!=1;)t=i,i=r,r=u,u=c.plus(m.times(r)),c=r,r=e,e=a.minus(m.times(r)),a=r;return r=Z(n.minus(t),i,0,1,1),c=c.plus(r.times(u)),t=t.plus(r.times(i)),c.s=u.s=p.s,d=Z(u,i,o,1).minus(p).abs().cmp(Z(c,t,o,1).minus(p).abs())<1?[u,i]:[c,t],f.precision=l,V=!0,d};g.toHexadecimal=g.toHex=function(n,e){return fn(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:pe(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=Z(t,n,0,e,1).times(n),V=!0,L(t)):(n.s=t.s,t=n),t};g.toNumber=function(){return+this};g.toOctal=function(n,e){return fn(this,8,n,e)};g.toPower=g.pow=function(n){var e,t,i,r,o,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(ie(+a,u));if(a=new c(a),a.eq(1))return a;if(i=c.precision,o=c.rounding,n.eq(1))return L(a,i,o);if(e=ce(n.e/v),e>=n.d.length-1&&(t=u<0?-u:u)<=Ar)return r=oi(c,a,t,i),n.s<0?new c(1).div(r):L(r,i,o);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=ie(+a,u),e=t==0||!isFinite(t)?ce(u*(Math.log("0."+ae(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),r=dn(n.times(Oe(a,i+t)),i),r.d&&(r=L(r,i+5,1),ct(r.d,i,o)&&(e=i+10,r=L(dn(n.times(Oe(a,e+t)),e),e+5,1),+ae(r.d).slice(i+1,i+15)+1==1e14&&(r=L(r,i+1,0)))),r.s=s,V=!0,c.rounding=o,L(r,i,o))};g.toPrecision=function(n,e){var t,i=this,r=i.constructor;return n===void 0?t=xe(i,i.e<=r.toExpNeg||i.e>=r.toExpPos):(pe(n,1,Ee),e===void 0?e=r.rounding:pe(e,0,8),i=L(new r(i),n,e),t=xe(i,n<=i.e||i.e<=r.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):(pe(n,1,Ee),e===void 0?e=i.rounding:pe(e,0,8)),L(new i(t),n,e)};g.toString=function(){var n=this,e=n.constructor,t=xe(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()&&!n.isZero()?"-"+t:t};g.truncated=g.trunc=function(){return L(new this.constructor(this),this.e+1,1)};g.valueOf=g.toJSON=function(){var n=this,e=n.constructor,t=xe(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()?"-"+t:t};function ae(n){var e,t,i,r=n.length-1,o="",s=n[0];if(r>0){for(o+=s,e=1;e<r;e++)i=n[e]+"",t=v-i.length,t&&(o+=Me(t)),o+=i;s=n[e],i=s+"",t=v-i.length,t&&(o+=Me(t))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function pe(n,e,t){if(n!==~~n||n<e||n>t)throw Error(Fe+n)}function ct(n,e,t,i){var r,o,s,a;for(o=n[0];o>=10;o/=10)--e;return--e<0?(e+=v,r=0):(r=Math.ceil((e+1)/v),e%=v),o=ie(10,v-e),a=n[r]%o|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==o||t>3&&a+1==o/2)&&(n[r+1]/o/100|0)==ie(10,e-2)-1||(a==o/2||a==0)&&(n[r+1]/o/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==o||!i&&t>3&&a+1==o/2)&&(n[r+1]/o/1e3|0)==ie(10,e-3)-1,s}function Ct(n,e,t){for(var i,r=[0],o,s=0,a=n.length;s<a;){for(o=r.length;o--;)r[o]*=e;for(r[0]+=cn.indexOf(n.charAt(s++)),i=0;i<r.length;i++)r[i]>t-1&&(r[i+1]===void 0&&(r[i+1]=0),r[i+1]+=r[i]/t|0,r[i]%=t)}return r.reverse()}function Tr(n,e){var t,i,r;if(e.isZero())return e;i=e.d.length,i<32?(t=Math.ceil(i/3),r=(1/Ot(4,t)).toString()):(t=16,r="2.3283064365386962890625e-10"),n.precision+=t,e=je(n,1,e.times(r),new n(1));for(var o=t;o--;){var s=e.times(e);e=s.times(s).minus(s).times(8).plus(1)}return n.precision-=t,e}var Z=function(){function n(i,r,o){var s,a=0,c=i.length;for(i=i.slice();c--;)s=i[c]*r+a,i[c]=s%o|0,a=s/o|0;return a&&i.unshift(a),i}function e(i,r,o,s){var a,c;if(o!=s)c=o>s?1:-1;else for(a=c=0;a<o;a++)if(i[a]!=r[a]){c=i[a]>r[a]?1:-1;break}return c}function t(i,r,o,s){for(var a=0;o--;)i[o]-=a,a=i[o]<r[o]?1:0,i[o]=a*s+i[o]-r[o];for(;!i[0]&&i.length>1;)i.shift()}return function(i,r,o,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==r.s?1:-1,D=i.d,O=r.d;if(!D||!D[0]||!O||!O[0])return new W(!i.s||!r.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-r.e):(c=ke,p=v,l=ce(i.e/p)-ce(r.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--,o==null?(T=o=W.precision,s=W.rounding):a?T=o+(i.e-r.e)+1:T=o,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,$n=b;else{for(m=1,d=A[0];d>=10;d/=10)m++;k.e=m+l*p-1,L(k,a?o+k.e+1:o,s,b)}return k}}();function L(n,e,t,i){var r,o,s,a,c,u,l,m,d,p=n.constructor;e:if(e!=null){if(m=n.d,!m)return n;for(r=1,a=m[0];a>=10;a/=10)r++;if(o=e-r,o<0)o+=v,s=e,l=m[d=0],c=l/ie(10,r-s-1)%10|0;else if(d=Math.ceil((o+1)/v),a=m.length,d>=a)if(i){for(;a++<=d;)m.push(0);l=c=0,r=1,o%=v,s=o-v+1}else break e;else{for(l=a=m[d],r=1;a>=10;a/=10)r++;o%=v,s=o-v+r,c=s<0?0:l/ie(10,r-s-1)%10|0}if(i=i||e<0||m[d+1]!==void 0||(s<0?l:l%ie(10,r-s-1)),u=t<4?(c||i)&&(t==0||t==(n.s<0?3:2)):c>5||c==5&&(t==4||i||t==6&&(o>0?s>0?l/ie(10,r-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]=ie(10,(v-e%v)%v),n.e=-e||0):m[0]=n.e=0,n;if(o==0?(m.length=d,a=1,d--):(m.length=d+1,a=ie(10,v-o),m[d]=s>0?(l/ie(10,r-s)%ie(10,s)|0)*a:0),u)for(;;)if(d==0){for(o=1,s=m[0];s>=10;s/=10)o++;for(s=m[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(n.e++,m[0]==ke&&(m[0]=1));break}else{if(m[d]+=a,m[d]!=ke)break;m[d--]=0,a=1}for(o=m.length;m[--o]===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 xe(n,e,t){if(!n.isFinite())return ai(n);var i,r=n.e,o=ae(n.d),s=o.length;return e?(t&&(i=t-s)>0?o=o.charAt(0)+"."+o.slice(1)+Me(i):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(n.e<0?"e":"e+")+n.e):r<0?(o="0."+Me(-r-1)+o,t&&(i=t-s)>0&&(o+=Me(i))):r>=s?(o+=Me(r+1-s),t&&(i=t-r-1)>0&&(o=o+"."+Me(i))):((i=r+1)<s&&(o=o.slice(0,i)+"."+o.slice(i)),t&&(i=t-s)>0&&(r+1===s&&(o+="."),o+=Me(i))),o}function Mt(n,e){var t=n[0];for(e*=v;t>=10;t/=10)e++;return e}function Lt(n,e,t){if(e>kr)throw V=!0,t&&(n.precision=t),Error(ei);return L(new n(Kt),e,1,!0)}function Ae(n,e,t){if(e>mn)throw Error(ei);return L(new n(Nt),e,t,!0)}function ri(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 Me(n){for(var e="";n--;)e+="0";return e}function oi(n,e,t,i){var r,o=new n(1),s=Math.ceil(i/v+4);for(V=!1;;){if(t%2&&(o=o.times(e),Qn(o.d,s)&&(r=!0)),t=ce(t/2),t===0){t=o.d.length-1,r&&o.d[t]===0&&++o.d[t];break}e=e.times(e),Qn(e.d,s)}return V=!0,o}function Yn(n){return n.d[n.d.length-1]&1}function si(n,e,t){for(var i,r=new n(e[0]),o=0;++o<e.length;)if(i=new n(e[o]),i.s)r[t](i)&&(r=i);else{r=i;break}return r}function dn(n,e){var t,i,r,o,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(ie(2,m))/Math.LN10*2+5|0,c+=i,t=o=s=new d(1),d.precision=c;;){if(o=L(o.times(n),c,1),t=t.times(++l),a=s.plus(Z(o,t,c,1)),ae(a.d).slice(0,c)===ae(s.d).slice(0,c)){for(r=m;r--;)s=L(s.times(s),c,1);if(e==null)if(u<3&&ct(s.d,c-i,p,u))d.precision=c+=10,t=o=a=new d(1),l=0,u++;else return L(s,d.precision=b,p,V=!0);else return d.precision=b,s}s=a}}function Oe(n,e){var t,i,r,o,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=ae(y),i=t.charAt(0),Math.abs(o=f.e)<15e14){for(;i<7&&i!=1||i==1&&t.charAt(1)>3;)f=f.times(n),t=ae(f.d),i=t.charAt(0),p++;o=f.e,i>1?(f=new k("0."+t),o++):f=new k(i+"."+t.slice(1))}else return u=Lt(k,l+2,P).times(o+""),f=Oe(new k(i+"."+t.slice(1)),l-b).plus(u),k.precision=P,e==null?L(f,P,A,V=!0):f;for(m=f,c=s=f=Z(f.minus(1),f.plus(1),l,1),d=L(f.times(f),l,1),r=3;;){if(s=L(s.times(d),l,1),u=c.plus(Z(s,new k(r),l,1)),ae(u.d).slice(0,l)===ae(c.d).slice(0,l))if(c=c.times(2),o!==0&&(c=c.plus(Lt(k,l+2,P).times(o+""))),c=Z(c,new k(p),l,1),e==null)if(ct(c.d,l-b,A,a))k.precision=l+=b,u=s=f=Z(m.minus(1),m.plus(1),l,1),d=L(f.times(f),l,1),r=a=1;else return L(c,k.precision=P,A,V=!0);else return k.precision=P,c;c=u,r+=2}}function ai(n){return String(n.s*n.s/0)}function pn(n,e){var t,i,r;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(r=e.length;e.charCodeAt(r-1)===48;--r);if(e=e.slice(i,r),e){if(r-=i,n.e=t=t-i-1,n.d=[],i=(t+1)%v,t<0&&(i+=v),i<r){for(i&&n.d.push(+e.slice(0,i)),r-=v;i<r;)n.d.push(+e.slice(i,i+=v));e=e.slice(i),i=v-e.length}else i-=r;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 hr(n,e){var t,i,r,o,s,a,c,u,l;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),ii.test(e))return pn(n,e)}else if(e==="Infinity"||e==="NaN")return+e||(n.s=NaN),n.e=NaN,n.d=null,n;if(wr.test(e))t=16,e=e.toLowerCase();else if(gr.test(e))t=2;else if(Pr.test(e))t=8;else throw Error(Fe+e);for(o=e.search(/p/i),o>0?(c=+e.slice(o+1),e=e.substring(2,o)):e=e.slice(2),o=e.indexOf("."),s=o>=0,i=n.constructor,s&&(e=e.replace(".",""),a=e.length,o=a-o,r=oi(i,new i(t),o,o*2)),u=Ct(e,t,ke),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new i(n.s*0):(n.e=Mt(u,l),n.d=u,V=!1,s&&(n=Z(n,r,a*4)),c&&(n=n.times(Math.abs(c)<54?ie(2,c):lt.pow(2,c))),V=!0,n)}function Br(n,e){var t,i=e.d.length;if(i<3)return e.isZero()?e:je(n,2,e,e);t=1.4*Math.sqrt(i),t=t>16?16:t|0,e=e.times(1/Ot(5,t)),e=je(n,2,e,e);for(var r,o=new n(5),s=new n(16),a=new n(20);t--;)r=e.times(e),e=e.times(o.plus(r.times(s.times(r).minus(a))));return e}function je(n,e,t,i,r){var o,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=Z(a.times(c),new n(e++*e++),l,1),a=r?i.plus(s):i.minus(s),i=Z(s.times(c),new n(e++*e++),l,1),s=a.plus(i),s.d[m]!==void 0){for(o=m;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=i,i=s,s=o,u++}return V=!0,s.d.length=m+1,s}function Ot(n,e){for(var t=n;--e;)t*=n;return t}function ui(n,e){var t,i=e.s<0,r=Ae(n,n.precision,1),o=r.times(.5);if(e=e.abs(),e.lte(o))return Ne=i?4:1,e;if(t=e.divToInt(r),t.isZero())Ne=i?3:2;else{if(e=e.minus(t.times(r)),e.lte(o))return Ne=Yn(t)?i?2:3:i?4:1,e;Ne=Yn(t)?i?1:4:i?3:2}return e.minus(r).abs()}function fn(n,e,t,i){var r,o,s,a,c,u,l,m,d,p=n.constructor,b=t!==void 0;if(b?(pe(t,1,Ee),i===void 0?i=p.rounding:pe(i,0,8)):(t=p.precision,i=p.rounding),!n.isFinite())l=ai(n);else{for(l=xe(n),s=l.indexOf("."),b?(r=2,e==16?t=t*4-3:e==8&&(t=t*3-2)):r=e,s>=0&&(l=l.replace(".",""),d=new p(1),d.e=l.length-s,d.d=Ct(xe(d),10,r),d.e=d.d.length),m=Ct(l,10,r),o=c=m.length;m[--c]==0;)m.pop();if(!m[0])l=b?"0p+0":"0";else{if(s<0?o--:(n=new p(n),n.d=m,n.e=o,n=Z(n,d,t,i,0,r),m=n.d,o=n.e,u=$n),s=m[t],a=r/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]>r-1;)m[t]=0,t||(++o,m.unshift(1));for(c=m.length;!m[c-1];--c);for(s=0,l="";s<c;s++)l+=cn.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=Ct(l,r,e),c=m.length;!m[c-1];--c);for(s=1,l="1.";s<c;s++)l+=cn.charAt(m[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)l="0"+l;l="0."+l}else if(++o>c)for(o-=c;o--;)l+="0";else o<c&&(l=l.slice(0,o)+"."+l.slice(o))}l=(e==16?"0x":e==2?"0b":e==8?"0o":"")+l}return n.s<0?"-"+l:l}function Qn(n,e){if(n.length>e)return n.length=e,!0}function xr(n){return new this(n).abs()}function Ir(n){return new this(n).acos()}function Sr(n){return new this(n).acosh()}function Cr(n,e){return new this(n).plus(e)}function Kr(n){return new this(n).asin()}function Nr(n){return new this(n).asinh()}function Lr(n){return new this(n).atan()}function Rr(n){return new this(n).atanh()}function Mr(n,e){n=new this(n),e=new this(e);var t,i=this.precision,r=this.rounding,o=i+4;return!n.s||!e.s?t=new this(NaN):!n.d&&!e.d?(t=Ae(this,o,1).times(e.s>0?.25:.75),t.s=n.s):!e.d||n.isZero()?(t=e.s<0?Ae(this,i,r):new this(0),t.s=n.s):!n.d||e.isZero()?(t=Ae(this,o,1).times(.5),t.s=n.s):e.s<0?(this.precision=o,this.rounding=1,t=this.atan(Z(n,e,o,1)),e=Ae(this,o,1),this.precision=i,this.rounding=r,t=n.s<0?t.minus(e):t.plus(e)):t=this.atan(Z(n,e,o,1)),t}function Or(n){return new this(n).cbrt()}function Fr(n){return L(n=new this(n),n.e+1,2)}function Er(n,e,t){return new this(n).clamp(e,t)}function vr(n){if(!n||typeof n!="object")throw Error(Rt+"Object expected");var e,t,i,r=n.defaults===!0,o=["precision",1,Ee,"rounding",0,8,"toExpNeg",-ze,0,"toExpPos",0,ze,"maxE",0,ze,"minE",-ze,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(t=o[e],r&&(this[t]=ln[t]),(i=n[t])!==void 0)if(ce(i)===i&&i>=o[e+1]&&i<=o[e+2])this[t]=i;else throw Error(Fe+t+": "+i);if(t="crypto",r&&(this[t]=ln[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(ti);else this[t]=!1;else throw Error(Fe+t+": "+i);return this}function Dr(n){return new this(n).cos()}function Wr(n){return new this(n).cosh()}function ci(n){var e,t,i;function r(o){var s,a,c,u=this;if(!(u instanceof r))return new r(o);if(u.constructor=r,Jn(o)){u.s=o.s,V?!o.d||o.e>r.maxE?(u.e=NaN,u.d=null):o.e<r.minE?(u.e=0,u.d=[0]):(u.e=o.e,u.d=o.d.slice()):(u.e=o.e,u.d=o.d?o.d.slice():o.d);return}if(c=typeof o,c==="number"){if(o===0){u.s=1/o<0?-1:1,u.e=0,u.d=[0];return}if(o<0?(o=-o,u.s=-1):u.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;V?s>r.maxE?(u.e=NaN,u.d=null):s<r.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[o]):(u.e=s,u.d=[o]);return}else if(o*0!==0){o||(u.s=NaN),u.e=NaN,u.d=null;return}return pn(u,o.toString())}else if(c!=="string")throw Error(Fe+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),ii.test(o)?pn(u,o):hr(u,o)}if(r.prototype=g,r.ROUND_UP=0,r.ROUND_DOWN=1,r.ROUND_CEIL=2,r.ROUND_FLOOR=3,r.ROUND_HALF_UP=4,r.ROUND_HALF_DOWN=5,r.ROUND_HALF_EVEN=6,r.ROUND_HALF_CEIL=7,r.ROUND_HALF_FLOOR=8,r.EUCLID=9,r.config=r.set=vr,r.clone=ci,r.isDecimal=Jn,r.abs=xr,r.acos=Ir,r.acosh=Sr,r.add=Cr,r.asin=Kr,r.asinh=Nr,r.atan=Lr,r.atanh=Rr,r.atan2=Mr,r.cbrt=Or,r.ceil=Fr,r.clamp=Er,r.cos=Dr,r.cosh=Wr,r.div=Vr,r.exp=_r,r.floor=qr,r.hypot=Ur,r.ln=Gr,r.log=Xr,r.log10=Zr,r.log2=Hr,r.max=zr,r.min=jr,r.mod=Yr,r.mul=Qr,r.pow=Jr,r.random=$r,r.round=eo,r.sign=to,r.sin=no,r.sinh=io,r.sqrt=ro,r.sub=oo,r.sum=so,r.tan=ao,r.tanh=uo,r.trunc=co,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 r.config(n),r}function Vr(n,e){return new this(n).div(e)}function _r(n){return new this(n).exp()}function qr(n){return L(n=new this(n),n.e+1,3)}function Ur(){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 Jn(n){return n instanceof lt||n&&n.toStringTag===ni||!1}function Gr(n){return new this(n).ln()}function Xr(n,e){return new this(n).log(e)}function Hr(n){return new this(n).log(2)}function Zr(n){return new this(n).log(10)}function zr(){return si(this,arguments,"lt")}function jr(){return si(this,arguments,"gt")}function Yr(n,e){return new this(n).mod(e)}function Qr(n,e){return new this(n).mul(e)}function Jr(n,e){return new this(n).pow(e)}function $r(n){var e,t,i,r,o=0,s=new this(1),a=[];if(n===void 0?n=this.precision:pe(n,1,Ee),i=Math.ceil(n/v),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(i));o<i;)r=e[o],r>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=r%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(i*=4);o<i;)r=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((e[o+3]&127)<<24),r>=214e7?crypto.randomBytes(4).copy(e,o):(a.push(r%1e7),o+=4);o=i/4}else throw Error(ti);else for(;o<i;)a[o++]=Math.random()*1e7|0;for(i=a[--o],n%=v,i&&n&&(r=ie(10,v-n),a[o]=(i/r|0)*r);a[o]===0;o--)a.pop();if(o<0)t=0,a=[0];else{for(t=-1;a[0]===0;t-=v)a.shift();for(i=1,r=a[0];r>=10;r/=10)i++;i<v&&(t-=v-i)}return s.e=t,s.d=a,s}function eo(n){return L(n=new this(n),n.e+1,this.rounding)}function to(n){return n=new this(n),n.d?n.d[0]?n.s:0*n.s:n.s||NaN}function no(n){return new this(n).sin()}function io(n){return new this(n).sinh()}function ro(n){return new this(n).sqrt()}function oo(n,e){return new this(n).sub(e)}function so(){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,L(t,this.precision,this.rounding)}function ao(n){return new this(n).tan()}function uo(n){return new this(n).tanh()}function co(n){return L(n=new this(n),n.e+1,1)}g[Symbol.for("nodejs.util.inspect.custom")]=g.toString;g[Symbol.toStringTag]="Decimal";var lt=g.constructor=ci(ln);Kt=new lt(Kt);Nt=new lt(Nt);var re=lt;var Li=Q(require("big.js")),xo=Q(require("bn.js"));var mt=require("lodash");var bn=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}},li={},lo={};function oe(n){let e=(0,mt.get)(li,n);if(!e){let t=(0,mt.get)(lo,n);e=new bn({name:n,logLevel:t}),(0,mt.set)(li,n,e)}return e}var wn=require("@solana/web3.js");var ve=require("@solana/spl-token"),yn=oe("Raydium_accountInfo_util");async function dt(n,e,t){let{batchRequest:i,commitment:r="confirmed",chunkCount:o=100}=U({batchRequest:!1},t),s=gn(e,o),a=new Array(s.length).fill([]);if(i){let c=s.map(m=>{let d=n._buildArgs([m.map(p=>p.toBase58())],r,"base64");return{methodName:"getMultipleAccounts",args:d}}),u=gn(c,10);a=(await(await Promise.all(u.map(async m=>await n._rpcBatchRequest(m)))).flat()).map(m=>(m.error&&yn.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"&&yn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:b,lamports:f,owner:new wn.PublicKey(y),rentEpoch:k}}return null})))}else try{a=await Promise.all(s.map(c=>n.getMultipleAccountsInfo(c,r)))}catch(c){c instanceof Error&&yn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}async function qe(n,e,t){let i=await dt(n,e.map(r=>r.pubkey),t);return e.map((r,o)=>Y(U({},r),{accountInfo:i[o]}))}async function Pn({connection:n,mints:e,config:t}){var o,s,a;if(e.length===0)return{};let i=await qe(n,e.map(c=>({pubkey:pt(c)})),t),r={};for(let c of i){if(!c.accountInfo||c.accountInfo.data.length<ve.MINT_SIZE){console.log("invalid mint account",c.pubkey.toBase58());continue}let u=(0,ve.unpackMint)(c.pubkey,c.accountInfo,(o=c.accountInfo)==null?void 0:o.owner);r[c.pubkey.toString()]=Y(U({},u),{programId:((s=c.accountInfo)==null?void 0:s.owner)||ve.TOKEN_PROGRAM_ID,feeConfig:(a=(0,ve.getTransferFeeConfig)(u))!=null?a:void 0})}return r[wn.PublicKey.default.toBase58()]=r[fe.toBase58()],r}var Ye=Q(require("bn.js"));var mi=9007199254740991;function Ie(n){let e=oe("Raydium_parseBigNumberish");if(n instanceof Ye.default)return n;if(typeof n=="string"){if(n.match(/^-?[0-9]+$/))return new Ye.default(n);e.logWithError(`invalid BigNumberish string: ${n}`)}return typeof n=="number"?(n%1&&e.logWithError(`BigNumberish number underflow: ${n}`),(n>=mi||n<=-mi)&&e.logWithError(`BigNumberish number overflow: ${n}`),new Ye.default(String(n))):typeof n=="bigint"?new Ye.default(n.toString()):(e.error(`invalid BigNumberish value: ${n}`),new Ye.default(0))}var di=require("@solana/web3.js"),An=require("@solana/spl-token"),kn={chainId:101,address:di.PublicKey.default.toBase58(),programId:An.TOKEN_PROGRAM_ID.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},De={chainId:101,address:"So11111111111111111111111111111111111111112",programId:An.TOKEN_PROGRAM_ID.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"}};var vt=require("@solana/web3.js");var X=require("@solana/web3.js"),pi=require("@solana/spl-token");function Tn({pubkey:n,isSigner:e=!1,isWritable:t=!0}){return{pubkey:n,isWritable:t,isSigner:e}}var Ss=[Tn({pubkey:pi.TOKEN_PROGRAM_ID,isWritable:!1}),Tn({pubkey:X.SystemProgram.programId,isWritable:!1}),Tn({pubkey:X.SYSVAR_RENT_PUBKEY,isWritable:!1})];function hn({publicKey:n,transformSol:e}){let t=fi(n.toString());if(t instanceof X.PublicKey)return e&&t.equals(ft)?fe:t;if(e&&t.toString()===ft.toBase58())return fe;if(typeof t=="string"){if(t===X.PublicKey.default.toBase58())return X.PublicKey.default;try{return new X.PublicKey(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function fi(n){try{return new X.PublicKey(n)}catch{return n}}var mo=new X.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ft=new X.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Et=new X.PublicKey("SysvarRent111111111111111111111111111111111"),Cs=new X.PublicKey("SysvarC1ock11111111111111111111111111111111"),Qe=new X.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Ks=new X.PublicKey("Sysvar1nstructions1111111111111111111111111"),bi=X.SystemProgram.programId,Ns=new X.PublicKey("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ls=new X.PublicKey("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Rs=new X.PublicKey("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ms=new X.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Os=new X.PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Fs=new X.PublicKey("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Es=new X.PublicKey("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),vs=new X.PublicKey("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ds=new X.PublicKey("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ws=new X.PublicKey("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Vs=new X.PublicKey("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),fe=new X.PublicKey("So11111111111111111111111111111111111111112"),ft=X.PublicKey.default;function pt(n){return hn({publicKey:n,transformSol:!0})}var Bn=class{constructor({mint:e,decimals:t,symbol:i,name:r,skipMint:o=!1,isToken2022:s=!1}){if(e===ft.toBase58()||e instanceof vt.PublicKey&&ft.equals(e)){this.decimals=De.decimals,this.symbol=De.symbol,this.name=De.name,this.mint=new vt.PublicKey(De.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=i||e.toString().substring(0,6),this.name=r||e.toString().substring(0,6),this.mint=o?vt.PublicKey.default:hn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},We=Bn;We.WSOL=new Bn(Y(U({},De),{mint:De.address}));var xn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=i}equals(e){return this===e}},Dt=xn;Dt.SOL=new xn(kn);var yi=Q(require("toformat")),po=yi.default,bt=po;var yt=Q(require("big.js")),gi=Q(require("bn.js")),wi=Q(require("decimal.js-light"));var Wt=oe("module/fraction"),In=bt(yt.default),gt=bt(wi.default),bo={[0]:gt.ROUND_DOWN,[1]:gt.ROUND_HALF_UP,[2]:gt.ROUND_UP},yo={[0]:yt.default.roundDown,[1]:yt.default.roundHalfUp,[2]:yt.default.roundUp},j=class{constructor(e,t=new gi.default(1)){this.numerator=Ie(e),this.denominator=Ie(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new j(this.denominator,this.numerator)}add(e){let t=e instanceof j?e:new j(Ie(e));return this.denominator.eq(t.denominator)?new j(this.numerator.add(t.numerator),this.denominator):new j(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof j?e:new j(Ie(e));return this.denominator.eq(t.denominator)?new j(this.numerator.sub(t.numerator),this.denominator):new j(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof j?e:new j(Ie(e));return new j(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof j?e:new j(Ie(e));return new j(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},i=1){Number.isInteger(e)||Wt.logWithError(`${e} is not an integer.`),e<=0&&Wt.logWithError(`${e} is not positive.`),gt.set({precision:e+1,rounding:bo[i]});let r=new gt(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},i=1){return Number.isInteger(e)||Wt.logWithError(`${e} is not an integer.`),e<0&&Wt.logWithError(`${e} is negative.`),In.DP=e,In.RM=yo[i]||1,new In(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Ai=Q(require("bn.js"));var Pi=new j(new Ai.default(100)),ye=class extends j{toSignificant(e=5,t,i){return this.mul(Pi).toSignificant(e,t,i)}toFixed(e=2,t,i){return this.mul(Pi).toFixed(e,t,i)}};var aa=oe("Raydium_price");function gn(n,e=1,t=[]){let i=[...n];if(e<=0)return t;for(;i.length;)t.push(i.splice(0,e));return t}var Bi=require("@solana/web3.js"),xi=require("@solana/spl-token");var le=require("@solana/web3.js");var ue={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"};var Ti=require("@solana/spl-token"),ki=oe("Raydium_txUtil"),hi=1644;function _t(n){let e=[],t=[];return n.microLamports&&(e.push(le.ComputeBudgetProgram.setComputeUnitPrice({microLamports:n.microLamports})),t.push(ue.SetComputeUnitPrice)),n.units&&(e.push(le.ComputeBudgetProgram.setComputeUnitLimit({units:n.units})),t.push(ue.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Je(n,e){var i,r;let t=e!=null?e:"confirmed";return(r=await((i=n.getLatestBlockhash)==null?void 0:i.call(n,{commitment:t})))==null?void 0:r.blockhash}async function qt(n,e){return n.getSignatureStatuses([e]),new Promise((t,i)=>{let r=setTimeout(i,6e4);n.onSignature(e,o=>{if(clearTimeout(r),!o.err){t("");return}i(Object.assign(o.err,{txId:e}))},"confirmed")})}function go(n,e){n.length<1&&ki.logWithError(`no instructions provided: ${n.toString()}`),e.length<1&&ki.logWithError(`no signers provided:, ${e.toString()}`);let t=new le.Transaction;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...n);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<hi}catch{return!1}}function Te(n,e){let[t,i]=le.PublicKey.findProgramAddressSync(n,e);return{publicKey:t,nonce:i}}function wt({instructions:n,payer:e,signers:t}){return go(n,[e,...t])}function Pt({instructions:n,payer:e,lookupTableAddressAccount:t,recentBlockhash:i=le.Keypair.generate().publicKey.toString()}){let o=new le.TransactionMessage({payerKey:e,recentBlockhash:i,instructions:n}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new le.VersionedTransaction(o).serialize()).toString("base64").length<hi}catch{return!1}}var wo=n=>Buffer.isBuffer(n)?n:n instanceof Uint8Array?Buffer.from(n.buffer,n.byteOffset,n.byteLength):Buffer.from(n),Po=n=>{let e=n.serialize({requireAllSignatures:!1,verifySignatures:!1});n instanceof le.VersionedTransaction&&(e=wo(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Ue(n){let e=[];return n.forEach(t=>{t instanceof le.Transaction&&(t.recentBlockhash||(t.recentBlockhash=Ti.TOKEN_PROGRAM_ID.toBase58()),t.feePayer||(t.feePayer=le.Keypair.generate().publicKey)),e.push(Po(t))}),console.log("simulate tx string:",e),e}function ge(n,e,t){return Te([n.toBuffer(),(t!=null?t:xi.TOKEN_PROGRAM_ID).toBuffer(),e.toBuffer()],new Bi.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}var R=require("@solana/web3.js"),Ea=new R.PublicKey("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),va=new R.PublicKey("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Da=new R.PublicKey("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Wa=new R.PublicKey("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Va=new R.PublicKey("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),_a=new R.PublicKey("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),qa=new R.PublicKey("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Ua=new R.PublicKey("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Ga=new R.PublicKey("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Xa=new R.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ao=new R.PublicKey("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ko=new R.PublicKey("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),To=new R.PublicKey("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Ha=new R.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Za=new R.PublicKey("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),za=new R.PublicKey("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ja=new R.PublicKey("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Ya=new R.PublicKey("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Qa=new R.PublicKey("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ja=new R.PublicKey("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Ii=new R.PublicKey("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Si=new R.PublicKey("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),$a=new R.PublicKey("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ut=new R.PublicKey("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Gt=new R.PublicKey("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),eu=new R.PublicKey("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),tu=new R.PublicKey("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),nu=new R.PublicKey("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),iu=new R.PublicKey("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),ru=new R.PublicKey("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ou=new R.PublicKey("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var su={OPEN_BOOK_PROGRAM:new R.PublicKey("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new R.PublicKey("Ray1111111111111111111111111111111111111111"),AMM_V4:new R.PublicKey("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new R.PublicKey("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new R.PublicKey("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new R.PublicKey("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new R.PublicKey("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new R.PublicKey("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new R.PublicKey("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new R.PublicKey("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new R.PublicKey("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new R.PublicKey("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:R.PublicKey.default,Router:new R.PublicKey("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new R.PublicKey("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new R.PublicKey("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new R.PublicKey("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new R.PublicKey("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new R.PublicKey("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new R.PublicKey("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new R.PublicKey("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new R.PublicKey("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new R.PublicKey("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new R.PublicKey("Ray1111111111111111111111111111111111111111")};var we=Q(require("bn.js")),At=1e4;function Se(n,e,t,i){if(e===void 0)return{amount:n,fee:void 0,expirationTime:void 0};let r=Y(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}}),o=t.epoch<r.newerTransferFee.epoch?r.olderTransferFee:r.newerTransferFee,s=new we.default(o.maximumFee.toString()),a=t.epoch<r.newerTransferFee.epoch?(Number(r.newerTransferFee.epoch)*t.slotsInEpoch-t.absoluteSlot)*400/1e3:void 0;if(i)if(o.transferFeeBasisPoints===At){let c=new we.default(o.maximumFee.toString());return{amount:n.add(c),fee:c,expirationTime:a}}else{let c=$e(n.mul(new we.default(At)),new we.default(At-o.transferFeeBasisPoints)),u=new we.default(o.maximumFee.toString()),l=c.sub(n).gt(u)?n.add(u):c,m=$e(l.mul(new we.default(o.transferFeeBasisPoints)),new we.default(At)),d=m.gt(s)?s:m;return{amount:l,fee:d,expirationTime:a}}else{let c=$e(n.mul(new we.default(o.transferFeeBasisPoints)),new we.default(At)),u=c.gt(s)?s:c;return{amount:n,fee:u,expirationTime:a}}}function $e(n,e){let{div:t,mod:i}=n.divmod(e);return i.gt(new we.default(0))?t.add(new we.default(1)):t}var he=require("@solana/web3.js");async function Kn({connection:n,address:e,cluster:t="mainnet"}){let i=await dt(n,[...new Set(e.map(o=>o.toString()))].map(o=>new he.PublicKey(o))),r={};for(let o=0;o<e.length;o++){let s=i[o],a=e[o];if(!s)continue;let c=new he.AddressLookupTableAccount({key:a,state:he.AddressLookupTableAccount.deserialize(s.data)});r[a.toString()]=c,t==="devnet"?et[a.toString()]=c:Xt[a.toString()]=c}return r}var Xt={AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU:new he.AddressLookupTableAccount({key:new he.PublicKey("AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU"),state:he.AddressLookupTableAccount.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"))})},et={},Nn=async n=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(et[e])return et;let t=new he.PublicKey(e),i=await n.getAccountInfo(t);return i&&(et[e]=new he.AddressLookupTableAccount({key:t,state:he.AddressLookupTableAccount.deserialize(i.data)})),et};var G=require("@solana/web3.js"),Ki=Q(require("axios"));var Ht=2e3,Zt=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 Ki.default.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}=_t(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(G.SystemProgram.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new G.PublicKey(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(ue.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:r=[],endInstructionTypes:o=[],lookupTableAddress:s=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...i),this.instructionTypes.push(...r),this.endInstructionTypes.push(...o),this.lookupTableAddress.push(...s.filter(a=>a!==G.PublicKey.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 G.Transaction;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(r=>r.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 r=>{var l;let{recentBlockHash:o,skipPreflight:s=!0,sendAndConfirm:a,notSendToRpc:c}=r||{},u=o!=null?o:await Je(this.connection,this.blockhashCommitment);if(t.recentBlockhash=u,this.signers.length&&t.sign(...this.signers),Ue([t]),(l=this.owner)!=null&&l.isKeyPair)return{txId:a?await(0,G.sendAndConfirmTransaction)(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:r}=this.build(i),o=t.filter(l=>l.transaction.instructions.length>0),s=[r,...o.map(l=>l.transaction)],a=[this.signers,...o.map(l=>l.signers)],c=[...this.instructionTypes,...o.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 Je(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(0,G.sendAndConfirmTransaction)(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));Ue(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)}},Ht)),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:r,recentBlockhash:o}=b,s=Ke(b,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=U(U({},this.cluster==="devnet"?await Nn(this.connection):Xt),t),c=Array.from(new Set([...i,...this.lookupTableAddress])),u=[];for(let y of c)a[y]===void 0&&u.push(new G.PublicKey(y));let l=await Kn({connection:this.connection,address:u});for(let[y,k]of Object.entries(l))a[y]=k;let m=r?G.PublicKey.default.toBase58():o!=null?o:await Je(this.connection,this.blockhashCommitment),d=new G.TransactionMessage({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 G.VersionedTransaction(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(Ue([p]),(w=this.owner)!=null&&w.isKeyPair){let h=await this.connection.sendTransaction(p,{skipPreflight:k});return A&&await qt(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:r}=await this.buildV0(i),o=t.filter(l=>l.builder.instructions.length>0),s=[r,...o.map(l=>l.transaction)],a=[this.signers,...o.map(l=>l.signers)],c=[...this.instructionTypes,...o.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),Ue(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 qt(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)}},Ht)),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,r=Ke(m,["splitIns","computeBudgetConfig"]),o=i?_t(i):{instructions:[],instructionTypes:[]},s=this.signers.reduce((p,b)=>Y(U({},p),{[b.publicKey.toBase58()]:b}),{}),a=[],c=[],u=[],l=0;if(this.allInstructions.forEach(p=>{let b=[...u,p],f=i?[...o.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 G.PublicKey(A));if(p!==t[l]&&u.length<12&&(wt({instructions:f,payer:this.feePayer,signers:k})||wt({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,wt({instructions:i?[...o.instructions,...u]:[...u],payer:this.feePayer,signers:k})?a.push(new G.Transaction().add(...o.instructions,...u)):a.push(new G.Transaction().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);wt({instructions:i?[...o.instructions,...u]:[...u],payer:this.feePayer,signers:b.map(f=>f.publicKey)})?a.push(new G.Transaction().add(...o.instructions,...u)):a.push(new G.Transaction().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 Je(this.connection,this.blockhashCommitment);if(a.forEach(async(h,T)=>{h.recentBlockhash=P,c[T].length&&h.sign(...c[T])}),Ue(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(0,G.sendAndConfirmTransaction)(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(ne=>ne.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)}},Ht)),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:r||{}}}async sizeCheckBuildV0(e){var P;let A=e||{},{computeBudgetConfig:t,splitIns:i=[],lookupTableCache:r={},lookupTableAddress:o=[]}=A,s=Ke(A,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress"]),a=U(U({},this.cluster==="devnet"?await Nn(this.connection):Xt),r),c=Array.from(new Set([...this.lookupTableAddress,...o])),u=[];for(let w of c)a[w]===void 0&&u.push(new G.PublicKey(w));let l=await Kn({connection:this.connection,address:u});for(let[w,h]of Object.entries(l))a[w]=h;let m=t?_t(t):{instructions:[],instructionTypes:[]},d=await Je(this.connection,this.blockhashCommitment),p=this.signers.reduce((w,h)=>Y(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&&(Pt({instructions:T,payer:this.feePayer,lookupTableAddressAccount:a})||Pt({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&&Pt({instructions:[...m.instructions,...y],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:d})){let I=new G.TransactionMessage({payerKey:this.feePayer,recentBlockhash:d,instructions:[...m.instructions,...y]}).compileToV0Message(Object.values(a));b.push(new G.VersionedTransaction(I))}else{let I=new G.TransactionMessage({payerKey:this.feePayer,recentBlockhash:d,instructions:[...y]}).compileToV0Message(Object.values(a));b.push(new G.VersionedTransaction(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&&Pt({instructions:[...m.instructions,...y],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:d})){let T=new G.TransactionMessage({payerKey:this.feePayer,recentBlockhash:d,instructions:[...m.instructions,...y]}).compileToV0Message(Object.values(a));b.push(new G.VersionedTransaction(T))}else{let T=new G.TransactionMessage({payerKey:this.feePayer,recentBlockhash:d,instructions:[...y]}).compileToV0Message(Object.values(a));b.push(new G.VersionedTransaction(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)}),Ue(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 qt(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 ne=!1,Pe=null,Ve=null,Hn=_e=>{Pe!==null&&clearInterval(Pe),Ve!==null&&this.connection.removeSignatureListener(Ve);let Ce=q.findIndex(ur=>ur.txId===O);if(Ce>-1){if(q[Ce].status==="error"||q[Ce].status==="success")return;q[Ce].status=_e.err?"error":"success"}T==null||T([...q]),_e.err||D()};this.loopMultiTxStatus&&(Pe=setInterval(async()=>{var _e;if(ne){clearInterval(Pe);return}try{let Ce=await this.connection.getTransaction(O,{commitment:"confirmed",maxSupportedTransactionVersion:0});Ce&&(ne=!0,clearInterval(Pe),Hn({err:((_e=Ce.meta)==null?void 0:_e.err)||null}),console.log("tx status from getTransaction:",O))}catch(Ce){ne=!0,clearInterval(Pe),console.error("getTransaction timeout:",Ce,O)}},Ht)),Ve=this.connection.onSignature(O,_e=>{if(ne){this.connection.removeSignatureListener(Ve);return}ne=!0,Hn(_e)},"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||{}}}};var ho=require("@solana/web3.js"),Bo=Q(require("bn.js"));var Ni=Q(require("bn.js")),zt=new Ni.default(1e6);var $u=oe("Raydium_amount"),ec=bt(Li.default);var Cn=new Be.default(0),bc=new Be.default(1),yc=new Be.default(2),gc=new Be.default(3),wc=new Be.default(5),Io=new Be.default(10),Pc=new Be.default(100),Ac=new Be.default(1e3),kc=new Be.default(1e4);function Ri(n,e,t){return n.mul(e).add(t).sub(new Be.default(1)).div(t)}function Ln(n,e,t){return n.mul(e).div(t)}var Jt=Q(require("bn.js")),kt=Q(require("decimal.js-light"));var nt=Q(require("bn.js"));function jt(n,e){if(e.isZero())throw Error("divisor is zero");return n.mod(e)}function So(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=jt(n,e);return i.gt(tt)&&(t=t.add(new nt.default(1)),e=n.div(t),i=jt(n,t),i.gt(tt)&&(e=e.add(new nt.default(1)))),[t,e]}var tt=new nt.default(0),Yt=class{static swapWithoutFees(e,t,i){let r=t.mul(i),o=t.add(e),[s]=So(r,o),a=i.sub(s);if(a.isZero())throw Error("destinationAmountSwapped is zero");return{destinationAmountSwapped:a}}static lpTokensToTradingTokens(e,t,i,r,o){let s=e.mul(i).div(t),a=e.mul(r).div(t);if(o===0)return{tokenAmount0:s,tokenAmount1:a};if(o===1)return jt(e.mul(i),t).gt(tt)&&s.gt(tt)&&(s=s.add(new nt.default(1))),jt(e.mul(r),t).gt(tt)&&a.gt(tt)&&(a=a.add(new nt.default(1))),{tokenAmount0:s,tokenAmount1:a};throw Error("roundDirection value error")}};var Qt=class{static tradingFee(e,t){return Ri(e,t,zt)}static protocolFee(e,t){return Ln(e,t,zt)}static fundFee(e,t){return Ln(e,t,zt)}};var $t=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,r){let o=Qt.tradingFee(e,r),s=e.sub(o),{destinationAmountSwapped:a}=Yt.swapWithoutFees(s,t,i);return{newSwapDestinationAmount:i.sub(a),sourceAmountSwapped:e,destinationAmountSwapped:a,tradeFee:o}}static swapBaseOut({poolMintA:e,poolMintB:t,tradeFeeRate:i,baseReserve:r,quoteReserve:o,outputMint:s,outputAmount:a}){let[c,u,l,m,d]=t.address===s.toString()?[r,o,e.decimals,t.decimals,e.address]:[o,r,t.decimals,e.decimals,t.address],p=new kt.default(u.toString()).div(10**m).div(new kt.default(c.toString()).div(10**l)),b=a.gte(u)?u.sub(new Jt.default(1)):a,f=u.sub(b),y=$e(c.mul(b),f),k=$e(y.mul(new Jt.default(1e6)),new Jt.default(1e6).sub(i)),A=k.sub(y),P=new kt.default(b.toString()).div(10**m).div(new kt.default(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}}};var te=Q(require("bn.js"));var Rn=(...n)=>n.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),it=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=oe(t)}createTxBuilder(e){return this.scope.checkOwner(),new Zt({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(Rn(e))}logInfo(...e){this.logger.info(Rn(e))}logAndCreateError(...e){let t=Rn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var Ei=require("@solana/web3.js"),rt=Q(require("bn.js"));var F=require("@solana/buffer-layout"),Mn=F.Layout,Mi=F.Structure;var On=F.UInt;var Oi=F.u8,Ge=F.u16;var Le=F.s32;var Fi=F.seq;var me=F.blob;var ot=class extends Mn{constructor(t,i,r){super(t,r);this.blob=me(t),this.signed=i}decode(t,i=0){let r=new rt.default(this.blob.decode(t,i),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(t,i,r=0){return typeof t=="number"&&(t=new rt.default(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),i,r)}};function J(n){return new On(1,n)}function Re(n){return new On(4,n)}function C(n){return new ot(8,!1,n)}function $(n){return new ot(16,!1,n)}function vi(n){return new ot(8,!0,n)}function Di(n){return new ot(16,!0,n)}var en=class extends Mn{constructor(t,i,r,o){super(t.span,o);this.layout=t,this.decoder=i,this.encoder=r}decode(t,i){return this.decoder(this.layout.decode(t,i))}encode(t,i,r){return this.layout.encode(this.encoder(t),i,r)}getSpan(t,i){return this.layout.getSpan(t,i)}};function _(n){return new en(me(32),e=>new Ei.PublicKey(e),e=>e.toBuffer(),n)}function Xe(n){return new en(Oi(),Co,Ko,n)}function Co(n){if(n===0)return!1;if(n===1)return!0;throw new Error("Invalid bool: "+n)}function Ko(n){return n?1:0}var Fn=class extends Mi{decode(e,t){return super.decode(e,t)}};function H(n,e,t){return new Fn(n,e,t)}function z(n,e,t){let i,r=typeof e=="number"?e:(0,rt.isBN)(e)?e.toNumber():new Proxy(e,{get(o,s){if(!i){let a=Reflect.get(o,"count");i=(0,rt.isBN)(a)?a.toNumber():a,Reflect.set(o,"count",i)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(i=a),Reflect.set(o,s,a)}});return Fi(n,r,t)}var Yc=H([Re("mintAuthorityOption"),_("mintAuthority"),C("supply"),J("decimals"),J("isInitialized"),Re("freezeAuthorityOption"),_("freezeAuthority")]);var No=require("@solana/web3.js"),Wi=require("@solana/spl-token");var He=r=>{var o=r,{address:n,programId:e,decimals:t}=o,i=Ke(o,["address","programId","decimals"]);return U({chainId:101,address:pt(n).toBase58(),programId:e,logoURI:"",symbol:"",name:"",decimals:t,tags:[],extensions:i.extensions||{}},i)},st=n=>n?Y(U({},n),{transferFeeConfigAuthority:n.transferFeeConfigAuthority.toBase58(),withdrawWithheldAuthority:n.withdrawWithheldAuthority.toBase58(),withheldAmount:n.withheldAmount.toString(),olderTransferFee:Y(U({},n.olderTransferFee),{epoch:n.olderTransferFee.epoch.toString(),maximumFee:n.olderTransferFee.maximumFee.toString()}),newerTransferFee:Y(U({},n.newerTransferFee),{epoch:n.newerTransferFee.epoch.toString(),maximumFee:n.newerTransferFee.maximumFee.toString()})}):void 0;var se=require("@solana/web3.js"),de=require("@solana/spl-token");var Lo=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),ml=Buffer.from("amm_config","utf8"),Ro=Buffer.from("pool","utf8"),Mo=Buffer.from("pool_lp_mint","utf8"),Oo=Buffer.from("pool_vault","utf8"),Fo=Buffer.from("observation","utf8");function tn(n){return Te([Lo],n)}function En(n,e,t,i){return Te([Ro,e.toBuffer(),t.toBuffer(),i.toBuffer()],n)}function Eo(n,e){return Te([Mo,e.toBuffer()],n)}function Vi(n,e,t){return Te([Oo,e.toBuffer(),t.toBuffer()],n)}function Tt(n,e){return Te([Fo,e.toBuffer()],n)}function _i({poolId:n,programId:e,configId:t,mintA:i,mintB:r}){let o=tn(e).publicKey,s=n||En(e,t,i,r).publicKey,a=Eo(e,s).publicKey,c=Vi(e,s,i).publicKey,u=Vi(e,s,r).publicKey,l=Tt(e,s).publicKey;return{poolId:s,configId:t,authority:o,lpMint:a,vaultA:c,vaultB:u,observationId:l}}var vo=Buffer.from("locked_liquidity","utf8");function ht(n,e){return Te([vo,e.toBuffer()],n)}var as=require("@solana/web3.js"),us=Q(require("bn.js"));var sn=require("@solana/spl-token");var on=require("@solana/web3.js"),ss=Q(require("bn.js"));var Gn=require("@solana/spl-token");var jo=Q(require("bn.js"));var be=Q(require("bn.js")),vn=new be.default(0),qi=new be.default(1),Ui=new be.default(-1),nn=new be.default(1).shln(64),Gi=new be.default(1).shln(128),Do=nn.sub(qi);var Wo=Gi.subn(1),at=-443636,Bt=-at,Dn=new be.default("4295048016"),Wn=new be.default("79226673521066979257578248091"),pl=new be.default("4295048017"),fl=new be.default("79226673521066979257578248090");var Vo=new be.default(10).pow(new be.default(6));var bl=new be.default("18446744073700000000");var zo=Q(require("bn.js"));var Tl=Buffer.from("amm_config","utf8"),hl=Buffer.from("pool","utf8"),Bl=Buffer.from("pool_vault","utf8"),xl=Buffer.from("pool_reward_vault","utf8"),Il=Buffer.from("position","utf8"),Sl=Buffer.from("tick_array","utf8"),Cl=Buffer.from("operation","utf8"),Kl=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Nl=Buffer.from("observation","utf8");function Vn(n){return Te([Buffer.from("metadata","utf8"),Qe.toBuffer(),n.toBuffer()],Qe)}var Ll=Buffer.from("locked_position","utf8");var Rl=Buffer.from("support_mint","utf8");var Go=require("@solana/web3.js"),Xo=require("@solana/spl-token"),Ho=Q(require("bn.js"));var _o=Q(require("bn.js"));var Un=14;var rn=60;var Yo=H([me(8),J("bump"),Ge("index"),_(""),Re("protocolFeeRate"),Re("tradeFeeRate"),Ge("tickSpacing"),z(C(),8,"")]),Qo=H([Re("blockTimestamp"),vi("tickCumulative"),z(C(),4)]),$i=H([me(8),Xe("initialized"),C("recentEpoch"),Ge("observationIndex"),_("poolId"),z(Qo,100,"observations"),z(C(),4)]),Jo=H([J("rewardState"),C("openTime"),C("endTime"),C("lastUpdateTime"),$("emissionsPerSecondX64"),C("rewardTotalEmissioned"),C("rewardClaimed"),_("tokenMint"),_("tokenVault"),_("creator"),$("rewardGrowthGlobalX64")]),Yi=H([me(8),J("bump"),_("ammConfig"),_("creator"),_("mintA"),_("mintB"),_("vaultA"),_("vaultB"),_("observationId"),J("mintDecimalsA"),J("mintDecimalsB"),Ge("tickSpacing"),$("liquidity"),$("sqrtPriceX64"),Le("tickCurrent"),Re(),$("feeGrowthGlobalX64A"),$("feeGrowthGlobalX64B"),C("protocolFeesTokenA"),C("protocolFeesTokenB"),$("swapInAmountTokenA"),$("swapOutAmountTokenB"),$("swapInAmountTokenB"),$("swapOutAmountTokenA"),J("status"),z(J(),7,""),z(Jo,3,"rewardInfos"),z(C(),16,"tickArrayBitmap"),C("totalFeesTokenA"),C("totalFeesClaimedTokenA"),C("totalFeesTokenB"),C("totalFeesClaimedTokenB"),C("fundFeesTokenA"),C("fundFeesTokenB"),C("startTime"),z(C(),15*4-3,"padding")]),$o=H([$("growthInsideLastX64"),C("rewardAmountOwed")]),Qi=H([me(8),J("bump"),_("nftMint"),_("poolId"),Le("tickLower"),Le("tickUpper"),$("liquidity"),$("feeGrowthInsideLastX64A"),$("feeGrowthInsideLastX64B"),C("tokenFeesOwedA"),C("tokenFeesOwedB"),z($o,3,"rewardInfos"),z(C(),8,"")]),jm=H([me(8),J("bump"),_("poolId"),Le("tickLowerIndex"),Le("tickUpperIndex"),$("liquidity"),$("feeGrowthInsideLastX64A"),$("feeGrowthInsideLastX64B"),C("tokenFeesOwedA"),C("tokenFeesOwedB"),z($(),3,"rewardGrowthInside"),z(C(),8,"")]),es=H([Le("tick"),Di("liquidityNet"),$("liquidityGross"),$("feeGrowthOutsideX64A"),$("feeGrowthOutsideX64B"),z($(),3,"rewardGrowthsOutsideX64"),z(Re(),13,"")]),Zi=H([me(8),_("poolId"),Le("startTickIndex"),z(es,rn,"ticks"),J("initializedTickCount"),z(J(),115,"")]),ts=H([me(329),z(_(),100,"whitelistMints")]),Zo=H([me(8),_("poolId"),z(z(C(),8),Un,"positiveTickArrayBitmap"),z(z(C(),8),Un,"negativeTickArrayBitmap")]),Ym=H([C(),J("bump"),_("owner"),_("poolId"),_("positionId"),_("nftAccount"),z(C(),8)]),ns=H([me(8),J("bump"),_("lockOwner"),_("poolId"),_("positionId"),_("nftAccount"),_("lockNftMint"),C("recentEpoch"),z(C(),8)]);$i.span;var fd=oe("Raydium_Clmm");var cs=oe("Raydium_cpmm"),Ze={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 er(n,e,t,i,r,o,s,a,c,u,l,m,d,p,b,f,y,k,A,P){let w=H([C("amountMaxA"),C("amountMaxB"),C("openTime")]),h=En(n,t,o,s).publicKey,T=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!r.equals(h),isWritable:!0},{pubkey:o,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:de.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:de.ASSOCIATED_TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:bi,isSigner:!1,isWritable:!1},{pubkey:Et,isSigner:!1,isWritable:!1}],x=Buffer.alloc(w.span);return w.encode({amountMaxA:k,amountMaxB:A,openTime:P},x),new se.TransactionInstruction({keys:T,programId:n,data:Buffer.from([...Ze.initialize,...x])})}function tr(n,e,t,i,r,o,s,a,c,u,l,m,d,p,b){let f=H([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:r,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:de.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:de.TOKEN_2022_PROGRAM_ID,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 cs.debug("cpmm deposit data",{lpAmount:d.toString(),amountMaxA:p.toString(),amountMaxB:b.toString()}),f.encode({lpAmount:d,amountMaxA:p,amountMaxB:b},k),new se.TransactionInstruction({keys:y,programId:n,data:Buffer.from([...Ze.deposit,...k])})}function nr(n,e,t,i,r,o,s,a,c,u,l,m,d,p,b){let f=H([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:r,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:de.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:de.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:Ft,isSigner:!1,isWritable:!1}],k=Buffer.alloc(f.span);return f.encode({lpAmount:d,amountMinA:p,amountMinB:b},k),new se.TransactionInstruction({keys:y,programId:n,data:Buffer.from([...Ze.withdraw,...k])})}function ir(n,e,t,i,r,o,s,a,c,u,l,m,d,p,b,f){let y=H([C("amountIn"),C("amounOutMin")]),k=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:o,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 se.TransactionInstruction({keys:k,programId:n,data:Buffer.from([...Ze.swapBaseInput,...A])})}function rr(n,e,t,i,r,o,s,a,c,u,l,m,d,p,b,f){let y=H([C("amountInMax"),C("amountOut")]),k=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:o,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 se.TransactionInstruction({keys:k,programId:n,data:Buffer.from([...Ze.swapBaseOutput,...A])})}async function or(n){var y;let{ownerInfo:e,poolInfo:t,poolKeys:i,feeNftOwner:r,getEphemeralSigners:o}=n,s=[],[a,c]=[new se.PublicKey(t.id),new se.PublicKey(t.lpMint.address)],u;if(o)u=new se.PublicKey((await o(1))[0]);else{let k=se.Keypair.generate();s.push(k),u=k.publicKey}let{publicKey:l}=ge(r,u,de.TOKEN_PROGRAM_ID),{publicKey:m}=Vn(u),{publicKey:d}=ht(n.lockProgram,u),{publicKey:p}=ge(e.wallet,c,de.TOKEN_PROGRAM_ID),{publicKey:b}=ge(n.lockAuthProgram,c,de.TOKEN_PROGRAM_ID),f=ls({programId:n.lockProgram,auth:n.lockAuthProgram,payer:e.feePayer,liquidityOwner:e.wallet,nftOwner:r,nftMint:u,nftAccount:l,poolId:a,lockPda:d,mintLp:c,userLpVault:p,lockLpVault:b,poolVaultA:new se.PublicKey(i.vault.A),poolVaultB:new se.PublicKey(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:[ue.CpmmLockLp],lookupTableAddress:[]}}function ls({programId:n,auth:e,payer:t,liquidityOwner:i,nftOwner:r,nftMint:o,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:r,isSigner:!1,isWritable:!1},{pubkey:o,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:Et,isSigner:!1,isWritable:!1},{pubkey:se.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:de.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:de.ASSOCIATED_TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:Qe,isSigner:!1,isWritable:!1}],A=H([C("lpAmount"),Xe("withMetadata")]),P=Buffer.alloc(A.span);A.encode({lpAmount:f,withMetadata:y},P);let w=Buffer.from([...Ze.lockCpLiquidity,...P]);return new se.TransactionInstruction({keys:k,programId:n,data:w})}function Xn({programId:n,nftOwner:e,auth:t,nftAccount:i,lockPda:r,poolId:o,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:r,isSigner:!1,isWritable:!0},{pubkey:f!=null?f:Ii,isSigner:!1,isWritable:!1},{pubkey:y!=null?y:Si,isSigner:!1,isWritable:!1},{pubkey:o,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:de.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:de.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:Ft,isSigner:!1,isWritable:!1}],A=H([C("lpFeeAmount")]),P=Buffer.alloc(A.span);A.encode({lpFeeAmount:b},P);let w=Buffer.from([...Ze.collectCpFee,...P]);return new se.TransactionInstruction({keys:k,programId:n,data:w})}var sr=H([me(8),J("bump"),Xe("disableCreatePool"),Ge("index"),C("tradeFeeRate"),C("protocolFeeRate"),C("fundFeeRate"),C("createPoolFee"),_("protocolOwner"),_("fundOwner"),z(C(),16)]),ar=H([me(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"),z(C(),32)]);var an=class extends it{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 qe(this.scope.connection,e.map(m=>({pubkey:new B.PublicKey(m)}))),r={},o=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=ar.decode(d.accountInfo.data);r[String(e[m])]=Y(U({},p),{programId:d.accountInfo.owner}),o.add(String(p.configId)),s.push(p.vaultA,p.vaultB)}let a={};if(t){let m=[...o],d=await qe(this.scope.connection,m.map(p=>({pubkey:new B.PublicKey(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]]=sr.decode(b.data)}}let c={},u=await qe(this.scope.connection,s.map(m=>({pubkey:new B.PublicKey(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 te.default(ee.AccountLayout.decode(d.data).amount.toString())}let l={};for(let[m,d]of Object.entries(r)){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]=Y(U({},d),{baseReserve:p,quoteReserve:b,vaultAAmount:c[d.vaultA.toString()],vaultBAmount:c[d.vaultB.toString()],configInfo:a[d.configId.toString()],poolPrice:new re(b.toString()).div(new re(10).pow(d.mintDecimalB)).div(new re(p.toString()).div(new re(10).pow(d.mintDecimalA)))})}return l}toComputePoolInfos({pools:e,mintInfos:t}){return Object.keys(e).reduce((i,r)=>{var c,u,l,m;let o=e[r],[s,a]=[o.mintA.toBase58(),o.mintB.toBase58()];return Y(U({},i),{[r]:Y(U({},o),{id:new B.PublicKey(r),configInfo:o.configInfo,version:7,authority:tn(o.programId).publicKey,mintA:He({address:s,decimals:o.mintDecimalA,programId:o.mintProgramA.toBase58(),extensions:{feeConfig:(c=t[s])!=null&&c.feeConfig?st((u=t[s])==null?void 0:u.feeConfig):void 0}}),mintB:He({address:a,decimals:o.mintDecimalB,programId:o.mintProgramB.toBase58(),extensions:{feeConfig:(l=t[a])!=null&&l.feeConfig?st((m=t[a])==null?void 0:m.feeConfig):void 0}})})})},{})}async getPoolInfoFromRpc(e){let t=await this.getRpcPoolInfo(e,!0),i=await Pn({connection:this.scope.connection,mints:[t.mintA,t.mintB]}),r=He({address:t.mintA.toBase58(),decimals:t.mintDecimalA,programId:t.mintProgramA.toBase58(),extensions:{feeConfig:i[t.mintA.toBase58()].feeConfig?st(i[t.mintA.toBase58()].feeConfig):void 0}}),o=He({address:t.mintB.toBase58(),decimals:t.mintDecimalB,programId:t.mintProgramB.toBase58(),extensions:{feeConfig:i[t.mintB.toBase58()].feeConfig?st(i[t.mintB.toBase58()].feeConfig):void 0}}),s=He({address:t.mintLp.toBase58(),decimals:t.lpDecimals,programId:ee.TOKEN_PROGRAM_ID.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:r,mintB:o,rewardDefaultInfos:[],rewardDefaultPoolInfos:"Ecosystem",price:t.poolPrice.toNumber(),mintAmountA:new re(t.vaultAAmount.toString()).div(10**r.decimals).toNumber(),mintAmountB:new re(t.vaultBAmount.toString()).div(10**o.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:r,mintB:o,openTime:t.openTime.toString(),vault:{A:t.vaultA.toBase58(),B:t.vaultB.toBase58()},authority:tn(t.programId).publicKey.toBase58(),mintLp:s,config:a,observationId:Tt(t.programId,new B.PublicKey(e)).publicKey.toBase58()},rpcData:t}}async createPool(b){var f=b,{poolId:e,programId:t,poolFeeAccount:i,startTime:r,ownerInfo:o,associatedOnly:s=!1,checkCreateATAOwner:a=!1,txVersion:c,feeConfig:u,computeBudgetConfig:l,txTipConfig:m,feePayer:d}=f,p=Ke(f,["poolId","programId","poolFeeAccount","startTime","ownerInfo","associatedOnly","checkCreateATAOwner","txVersion","feeConfig","computeBudgetConfig","txTipConfig","feePayer"]);var O,ne,Pe;let y=o.feePayer||((O=this.scope.owner)==null?void 0:O.publicKey),k=new te.default(new B.PublicKey(p.mintA.address).toBuffer()).lte(new te.default(new B.PublicKey(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=o.useSOLBalance&&A.address===ee.NATIVE_MINT.toBase58(),x=o.useSOLBalance&&P.address===ee.NATIVE_MINT.toBase58(),[I,K]=[new B.PublicKey(A.address),new B.PublicKey(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.PublicKey(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=_i({poolId:e,programId:t,configId:new B.PublicKey(u.id),mintA:I,mintB:K});return S.addInstruction({instructions:[er(t,this.scope.ownerPubKey,new B.PublicKey(u.id),D.authority,D.poolId,I,K,D.lpMint,M,W,ge(this.scope.ownerPubKey,D.lpMint).publicKey,D.vaultA,D.vaultB,i,new B.PublicKey((ne=A.programId)!=null?ne:ee.TOKEN_PROGRAM_ID),new B.PublicKey((Pe=P.programId)!=null?Pe:ee.TOKEN_PROGRAM_ID),D.observationId,w,h,r)],instructionTypes:[ue.CpmmCreatePool]}),S.addCustomComputeBudget(l),S.addTipInstruction(m),S.versionBuild({txVersion:c,extInfo:{address:Y(U({},D),{mintA:A,mintB:P,programId:t,poolFeeAccount:i,feeConfig:u})}})}async addLiquidity(e){let{poolInfo:t,poolKeys:i,inputAmount:r,baseIn:o,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"),r.isZero()&&this.logAndCreateError("amounts must greater than zero","amountInA",{amountInA:r.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:Y(U({},t),{lpAmount:new re(y.lpAmount.toString()).div(10**t.lpMint.decimals).toNumber()}),baseReserve:y.baseReserve,quoteReserve:y.quoteReserve,slippage:new ye(0),baseIn:o,epochInfo:await this.scope.fetchEpochInfo(),amount:new re(r.toString()).div(10**(o?t.mintA.decimals:t.mintB.decimals))}),w=P.amount,h=t.mintA.address===ee.NATIVE_MINT.toString(),T=t.mintB.address===ee.NATIVE_MINT.toString(),x=this.createTxBuilder(d),[I,K]=[new B.PublicKey(t.mintA.address),new B.PublicKey(t.mintB.address)],{account:S,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new B.PublicKey(t.mintA.address),owner:this.scope.ownerPubKey,createInfo:h||(o?r:w).isZero()?{payer:this.scope.ownerPubKey,amount:o?r: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.PublicKey(t.mintB.address),owner:this.scope.ownerPubKey,createInfo:T||(o?w:r).isZero()?{payer:this.scope.ownerPubKey,amount:o?w:r}: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.PublicKey(t.lpMint.address)}),Ve=await p.handleTokenAccount({side:"out",amount:0,mint:new B.PublicKey(t.lpMint.address),tokenAccount:q,bypassAssociatedCheck:b,checkCreateATAOwner:f}),{tokenAccount:D}=Ve,O=Ke(Ve,["tokenAccount"]);x.addInstruction(O);let ne=i!=null?i:await this.getCpmmPoolKeys(t.id),Pe=new ye(new te.default(1)).sub(s);return x.addInstruction({instructions:[tr(new B.PublicKey(t.programId),this.scope.ownerPubKey,new B.PublicKey(ne.authority),new B.PublicKey(t.id),D,S,E,new B.PublicKey(ne.vault.A),new B.PublicKey(ne.vault.B),I,K,new B.PublicKey(t.lpMint.address),a?a==null?void 0:a.liquidity:Pe.mul(k).quotient,o?A.amount:w,o?w:A.amount)],instructionTypes:[ue.CpmmAddLiquidity],lookupTableAddress:ne.lookupTableAccount?[ne.lookupTableAccount]:[]}),x.addCustomComputeBudget(c),x.addTipInstruction(u),x.versionBuild({txVersion:m})}async withdrawLiquidity(e){var O,ne;let{poolInfo:t,poolKeys:i,lpAmount:r,slippage:o,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 ye(new te.default(1)).sub(o),d=await this.getRpcPoolInfo(t.id),[p,b]=[m.mul(r.mul(d.baseReserve).div(d.lpAmount)).quotient,m.mul(r.mul(d.quoteReserve).div(d.lpAmount)).quotient],f=await this.scope.fetchEpochInfo(),[y,k]=[Se(p,t.mintA.extensions.feeConfig,f,!1),Se(b,t.mintB.extensions.feeConfig,f,!1)],{account:A}=this.scope,P=this.createTxBuilder(u),[w,h]=[new B.PublicKey(t.mintA.address),new B.PublicKey(t.mintB.address)],T=w.equals(fe),x=h.equals(fe),I,K,{account:S,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new B.PublicKey(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.PublicKey(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.PublicKey(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:[nr(new B.PublicKey(t.programId),this.scope.ownerPubKey,new B.PublicKey(D.authority),new B.PublicKey(t.id),q,I,K,new B.PublicKey(D.vault.A),new B.PublicKey(D.vault.B),w,h,new B.PublicKey(t.lpMint.address),r,p.sub((O=y.fee)!=null?O:new te.default(0)),b.sub((ne=k.fee)!=null?ne:new te.default(0)))],instructionTypes:[ue.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:r,fixedOut:o,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.PublicKey(t.mintA.address),new B.PublicKey(t.mintB.address)];o?a.sourceAmountSwapped=a.sourceAmountSwapped.mul(new te.default((1+c)*1e4)).div(new te.default(1e4)):a.destinationAmountSwapped=a.destinationAmountSwapped.mul(new te.default((1-c)*1e4)).div(new te.default(1e4));let w=t.mintA.address===fe.toBase58(),h=t.mintB.address===fe.toBase58(),{account:T,instructionParams:x}=await this.scope.account.getOrCreateTokenAccount({mint:A,tokenProgram:new B.PublicKey((M=t.mintA.programId)!=null?M:ee.TOKEN_PROGRAM_ID),owner:this.scope.ownerPubKey,createInfo:w||!r?{payer:this.scope.ownerPubKey,amount:r?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.PublicKey((E=t.mintB.programId)!=null?E:ee.TOKEN_PROGRAM_ID),owner:this.scope.ownerPubKey,createInfo:h||r?{payer:this.scope.ownerPubKey,amount:r?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:[o?rr(new B.PublicKey(t.programId),this.scope.ownerPubKey,new B.PublicKey(S.authority),new B.PublicKey(S.config.id),new B.PublicKey(t.id),r?T:I,r?I:T,new B.PublicKey(S.vault[r?"A":"B"]),new B.PublicKey(S.vault[r?"B":"A"]),new B.PublicKey((D=t[r?"mintA":"mintB"].programId)!=null?D:ee.TOKEN_PROGRAM_ID),new B.PublicKey((O=t[r?"mintB":"mintA"].programId)!=null?O:ee.TOKEN_PROGRAM_ID),r?A:P,r?P:A,Tt(new B.PublicKey(t.programId),new B.PublicKey(t.id)).publicKey,a.sourceAmountSwapped,a.destinationAmountSwapped):ir(new B.PublicKey(t.programId),this.scope.ownerPubKey,new B.PublicKey(S.authority),new B.PublicKey(S.config.id),new B.PublicKey(t.id),r?T:I,r?I:T,new B.PublicKey(S.vault[r?"A":"B"]),new B.PublicKey(S.vault[r?"B":"A"]),new B.PublicKey((W=t[r?"mintA":"mintB"].programId)!=null?W:ee.TOKEN_PROGRAM_ID),new B.PublicKey((q=t[r?"mintB":"mintA"].programId)!=null?q:ee.TOKEN_PROGRAM_ID),r?A:P,r?P:A,Tt(new B.PublicKey(t.programId),new B.PublicKey(t.id)).publicKey,s,a.destinationAmountSwapped)],instructionTypes:[o?ue.CpmmSwapBaseOut:ue.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:r,txTipConfig:o,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 or({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:Ut,lockAuthProgram:(f=e.authProgram)!=null?f:Gt,lpAmount:i,withMetadata:(y=e.withMetadata)!=null?y:!0,getEphemeralSigners:e.getEphemeralSigners});return u.addInstruction(m),u.addCustomComputeBudget(r),u.addTipInstruction(o),u.versionBuild({txVersion:s,extInfo:m.address})}async harvestLockLp(e){var E;let{poolInfo:t,lpFeeAmount:i,nftMint:r,programId:o=Ut,authProgram:s=Gt,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.PublicKey(t.mintA.address),new B.PublicKey(t.mintB.address)],y=b.equals(fe),k=f.equals(fe),A,P,{account:w,instructionParams:h}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new B.PublicKey(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.PublicKey(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}=ge(d,r,ee.TOKEN_PROGRAM_ID),{publicKey:S}=ht(o,r),{publicKey:M}=ge(s,new B.PublicKey(t.lpMint.address),ee.TOKEN_PROGRAM_ID);return p.addInstruction({instructions:[Xn({programId:o,nftOwner:this.scope.ownerPubKey,auth:s,nftMint:r,nftAccount:K,lockPda:S,poolId:new B.PublicKey(t.id),mintLp:new B.PublicKey(I.mintLp.address),userVaultA:A,userVaultB:P,poolVaultA:new B.PublicKey(I.vault.A),poolVaultB:new B.PublicKey(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:[ue.CpmmCollectLockFee]}),p.addCustomComputeBudget(c),p.addTipInstruction(u),p.versionBuild({txVersion:l})}async harvestMultiLockLp(e){let{lockInfo:t,programId:i=Ut,authProgram:r=Gt,cpmmProgram:o,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.PublicKey(d.mintA.address),new B.PublicKey(d.mintB.address)],k=f.equals(fe),A=y.equals(fe),P,w;if(k){let{account:S,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:d.mintA.programId,mint:new B.PublicKey(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.PublicKey(d.mintA.address);P=this.scope.account.getAssociatedTokenAccount(S,new B.PublicKey(d.mintA.programId)),l.addInstruction({instructions:[(0,ee.createAssociatedTokenAccountIdempotentInstruction)(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.PublicKey(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.PublicKey(d.mintB.address);w=this.scope.account.getAssociatedTokenAccount(S,new B.PublicKey(d.mintB.programId)),l.addInstruction({instructions:[(0,ee.createAssociatedTokenAccountIdempotentInstruction)(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}=ge(u,b,ee.TOKEN_PROGRAM_ID),{publicKey:x}=ht(i,b),{publicKey:I}=ge(r,new B.PublicKey(d.lpMint.address),ee.TOKEN_PROGRAM_ID);l.addInstruction({instructions:[Xn({programId:i,nftOwner:this.scope.ownerPubKey,auth:r,nftMint:b,nftAccount:T,lockPda:x,poolId:new B.PublicKey(d.id),mintLp:new B.PublicKey(h.mintLp.address),userVaultA:P,userVaultB:w,poolVaultA:new B.PublicKey(h.vault.A),poolVaultB:new B.PublicKey(h.vault.B),mintA:f,mintB:y,lockLpVault:I,lpFeeAmount:p,cpmmProgram:o==null?void 0:o.programId,cpmmAuthProgram:o==null?void 0:o.authProgram})],instructionTypes:[ue.CpmmCollectLockFee]})}),a===0?l.sizeCheckBuildV0({computeBudgetConfig:s}):l.sizeCheckBuild({computeBudgetConfig:s})}computeSwapAmount({pool:e,amountIn:t,outputMint:i,slippage:r}){let o=i.toString()===e.mintB.address,s=$t.swap(t,o?e.baseReserve:e.quoteReserve,o?e.quoteReserve:e.baseReserve,e.configInfo.tradeFeeRate),a=new re(s.destinationAmountSwapped.toString()).div(s.sourceAmountSwapped.toString()),c=s.destinationAmountSwapped.mul(new te.default((1-r)*1e4)).div(new te.default(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:r,slippage:o,epochInfo:s,baseIn:a}){var w,h,T,x,I,K,S,M,E;let c=1-Number(o.toSignificant())/100,u=new te.default(new re(r).mul(10**e[a?"mintA":"mintB"].decimals).mul(c).toFixed(0)),l=Se(u,e[a?"mintA":"mintB"].extensions.feeConfig,s,!1),m=u.sub((w=l.fee)!=null?w:new te.default(0)),d=new te.default(new re(e.lpAmount).mul(10**e.lpMint.decimals).toFixed(0,re.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:",`${o.toSignificant()}%`);let p=a?"base":"quote";this.logDebug("input side:",p);let b=m.mul(d).div(p==="base"?t:i),f={amount:Cn,fee:void 0,expirationTime:void 0};if(!m.isZero()){let W=ms(b,t,i,d);this.logDebug("lpAmountData:",{amountA:W.amountA.toString(),amountB:W.amountB.toString()}),f=Se(W[a?"amountB":"amountA"],e[a?"mintB":"mintA"].extensions.feeConfig,s,!0)}let y=new ye(new te.default(1)).add(o),k=new ye(new te.default(1)).sub(o),A=Se(y.mul(f.amount.sub((x=f.fee)!=null?x:new te.default(0))).quotient,e[a?"mintB":"mintA"].extensions.feeConfig,s,!0),P=Se(k.mul(f.amount.sub((I=f.fee)!=null?I:new te.default(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 ms(n,e,t,i){let r=n.mul(e).div(i);!r.isZero()&&!n.mul(e).mod(i).isZero()&&(r=r.add(new te.default(1)));let o=n.mul(t).div(i);return!o.isZero()&&!n.mul(t).mod(i).isZero()&&(o=o.add(new te.default(1))),{amountA:r,amountB:o}}0&&(module.exports={});
1
+ var cr=Object.create;var ut=Object.defineProperty,lr=Object.defineProperties,mr=Object.getOwnPropertyDescriptor,dr=Object.getOwnPropertyDescriptors,pr=Object.getOwnPropertyNames,St=Object.getOwnPropertySymbols,fr=Object.getPrototypeOf,un=Object.prototype.hasOwnProperty,zn=Object.prototype.propertyIsEnumerable;var Zn=(n,e,t)=>e in n?ut(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,U=(n,e)=>{for(var t in e||(e={}))un.call(e,t)&&Zn(n,t,e[t]);if(St)for(var t of St(e))zn.call(e,t)&&Zn(n,t,e[t]);return n},Y=(n,e)=>lr(n,dr(e));var Ke=(n,e)=>{var t={};for(var i in n)un.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&St)for(var i of St(n))e.indexOf(i)<0&&zn.call(n,i)&&(t[i]=n[i]);return t};var br=(n,e)=>{for(var t in e)ut(n,t,{get:e[t],enumerable:!0})},jn=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of pr(e))!un.call(n,r)&&r!==t&&ut(n,r,{get:()=>e[r],enumerable:!(i=mr(e,r))||i.enumerable});return n};var Q=(n,e,t)=>(t=n!=null?cr(fr(n)):{},jn(e||!n||!n.__esModule?ut(t,"default",{value:n,enumerable:!0}):t,n)),yr=n=>jn(ut({},"__esModule",{value:!0}),n);var ds={};br(ds,{default:()=>an});module.exports=yr(ds);var B=require("@solana/web3.js"),ee=require("@solana/spl-token");var Be=Q(require("bn.js"));var ze=9e15,Ee=1e9,cn="0123456789abcdef",Kt="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Nt="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",ln={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-ze,maxE:ze,crypto:!1},$n,Ne,V=!0,Rt="[DecimalError] ",Fe=Rt+"Invalid argument: ",ei=Rt+"Precision limit exceeded",ti=Rt+"crypto unavailable",ni="[object Decimal]",ce=Math.floor,ie=Math.pow,gr=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,wr=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Pr=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,ii=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ke=1e7,v=7,Ar=9007199254740991,kr=Kt.length-1,mn=Nt.length-1,w={toStringTag:ni};w.absoluteValue=w.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),M(n)};w.ceil=function(){return M(new this.constructor(this),this.e+1,2)};w.clampedTo=w.clamp=function(n,e){var t,i=this,r=i.constructor;if(n=new r(n),e=new r(e),!n.s||!e.s)return new r(NaN);if(n.gt(e))throw Error(Fe+e);return t=i.cmp(n),t<0?n:i.cmp(e)>0?e:new r(i)};w.comparedTo=w.cmp=function(n){var e,t,i,r,o=this,s=o.d,a=(n=new o.constructor(n)).d,c=o.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(o.e!==n.e)return o.e>n.e^c<0?1:-1;for(i=s.length,r=a.length,e=0,t=i<r?i:r;e<t;++e)if(s[e]!==a[e])return s[e]>a[e]^c<0?1:-1;return i===r?0:i>r^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=Tr(i,ui(i,t)),i.precision=n,i.rounding=e,M(Ne==2||Ne==3?t.neg():t,n,e,!0)):new i(1):new i(NaN)};w.cubeRoot=w.cbrt=function(){var n,e,t,i,r,o,s,a,c,u,l=this,m=l.constructor;if(!l.isFinite()||l.isZero())return new m(l);for(V=!1,o=l.s*ie(l.s*l,1/3),!o||Math.abs(o)==1/0?(t=ae(l.d),n=l.e,(o=(n-t.length+1)%3)&&(t+=o==1||o==-2?"0":"00"),o=ie(t,1/3),n=ce((n+1)/3)-(n%3==(n<0?-1:2)),o==1/0?t="5e"+n:(t=o.toExponential(),t=t.slice(0,t.indexOf("e")+1)+n),i=new m(t),i.s=l.s):i=new m(o.toString()),s=(n=m.precision)+3;;)if(a=i,c=a.times(a).times(a),u=c.plus(l),i=Z(u.plus(l).times(a),u.plus(c),s+2,1),ae(a.d).slice(0,s)===(t=ae(i.d)).slice(0,s))if(t=t.slice(s-3,s+1),t=="9999"||!r&&t=="4999"){if(!r&&(M(a,n+1,0),a.times(a).times(a).eq(l))){i=a;break}s+=4,r=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(M(i,n+1,1),e=!i.times(i).times(i).eq(l));break}return V=!0,M(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-ce(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 Z(this,new this.constructor(n))};w.dividedToIntegerBy=w.divToInt=function(n){var e=this,t=e.constructor;return M(Z(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 M(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,r,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;t=s.precision,i=s.rounding,s.precision=t+Math.max(o.e,o.sd())+4,s.rounding=1,r=o.d.length,r<32?(n=Math.ceil(r/3),e=(1/Ot(4,n)).toString()):(n=16,e="2.3283064365386962890625e-10"),o=je(s,1,o.times(e),new s(1),!0);for(var c,u=n,l=new s(8);u--;)c=o.times(o),o=a.minus(c.times(l.minus(c.times(l))));return M(o,s.precision=t,s.rounding=i,!0)};w.hyperbolicSine=w.sinh=function(){var n,e,t,i,r=this,o=r.constructor;if(!r.isFinite()||r.isZero())return new o(r);if(e=o.precision,t=o.rounding,o.precision=e+Math.max(r.e,r.sd())+4,o.rounding=1,i=r.d.length,i<3)r=je(o,2,r,r,!0);else{n=1.4*Math.sqrt(i),n=n>16?16:n|0,r=r.times(1/Ot(5,n)),r=je(o,2,r,r,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);n--;)s=r.times(r),r=r.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=e,o.rounding=t,M(r,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,Z(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),r=t.precision,o=t.rounding;return i!==-1?i===0?e.isNeg()?Ae(t,r,o):new t(0):new t(NaN):e.isZero()?Ae(t,r+4,o).times(.5):(t.precision=r+6,t.rounding=1,e=e.asin(),n=Ae(t,r+4,o).times(.5),t.precision=r,t.rounding=o,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,r=this,o=r.constructor;return r.isFinite()?r.e>=0?new o(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(n=o.precision,e=o.rounding,i=r.sd(),Math.max(i,n)<2*-r.e-1?M(new o(r),n,e,!0):(o.precision=t=i-r.e,r=Z(r.plus(1),new o(1).minus(r),t+n,1),o.precision=n+4,o.rounding=1,r=r.ln(),o.precision=n,o.rounding=e,r.times(.5))):new o(NaN)};w.inverseSine=w.asin=function(){var n,e,t,i,r=this,o=r.constructor;return r.isZero()?new o(r):(e=r.abs().cmp(1),t=o.precision,i=o.rounding,e!==-1?e===0?(n=Ae(o,t+4,i).times(.5),n.s=r.s,n):new o(NaN):(o.precision=t+6,o.rounding=1,r=r.div(new o(1).minus(r.times(r)).sqrt().plus(1)).atan(),o.precision=t,o.rounding=i,r.times(2)))};w.inverseTangent=w.atan=function(){var n,e,t,i,r,o,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<=mn)return s=Ae(l,m+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(m+4<=mn)return s=Ae(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),r=u;n!==-1;)if(r=r.times(c),o=s.minus(r.div(i+=2)),r=r.times(c),s=o.plus(r.div(i+=2)),s.d[e]!==void 0)for(n=e;s.d[n]===o.d[n]&&n--;);return t&&(s=s.times(2<<t-1)),V=!0,M(s,l.precision=m,l.rounding=d,!0)};w.isFinite=function(){return!!this.d};w.isInteger=w.isInt=function(){return!!this.d&&ce(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,r,o,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)o=!0;else{for(r=t[0];r%10===0;)r/=10;o=r!==1}if(V=!1,a=m+p,s=Oe(u,a),i=e?Lt(l,a+10):Oe(n,a),c=Z(s,i,a,1),ct(c.d,r=m,d))do if(a+=10,s=Oe(u,a),i=e?Lt(l,a+10):Oe(n,a),c=Z(s,i,a,1),!o){+ae(c.d).slice(r+1,r+15)+1==1e14&&(c=M(c,m+1,0));break}while(ct(c.d,r+=10,d));return V=!0,M(c,m,d)};w.minus=w.sub=function(n){var e,t,i,r,o,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?M(n,a,c):n}if(t=ce(n.e/v),l=ce(p.e/v),u=u.slice(),o=l-t,o){for(m=o<0,m?(e=u,o=-o,s=d.length):(e=d,t=l,s=u.length),i=Math.max(Math.ceil(a/v),s)+2,o>i&&(o=i,e.length=1),e.reverse(),i=o;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}o=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>o;){if(u[--i]<d[i]){for(r=i;r&&u[--r]===0;)u[r]=ke-1;--u[r],u[i]+=ke}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=Mt(u,t),V?M(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]?M(new i(t),i.precision,i.rounding):(V=!1,i.modulo==9?(e=Z(t,n.abs(),0,3,1),e.s*=n.s):e=Z(t,n,0,i.modulo,1),e=e.times(n),V=!0,t.minus(e))};w.naturalExponential=w.exp=function(){return dn(this)};w.naturalLogarithm=w.ln=function(){return Oe(this)};w.negated=w.neg=function(){var n=new this.constructor(this);return n.s=-n.s,M(n)};w.plus=w.add=function(n){var e,t,i,r,o,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?M(n,a,c):n;if(o=ce(m.e/v),i=ce(n.e/v),u=u.slice(),r=o-i,r){for(r<0?(t=u,r=-r,s=l.length):(t=l,i=o,s=u.length),o=Math.ceil(a/v),s=o>s?o+1:s+1,r>s&&(r=s,t.length=1),t.reverse();r--;)t.push(0);t.reverse()}for(s=u.length,r=l.length,s-r<0&&(r=s,t=l,l=u,u=t),e=0;r;)e=(u[--r]=u[r]+l[r]+e)/ke|0,u[r]%=ke;for(e&&(u.unshift(e),++i),s=u.length;u[--s]==0;)u.pop();return n.d=u,n.e=Mt(u,i),V?M(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(Fe+n);return t.d?(e=ri(t.d),n&&t.e+1>e&&(e=t.e+1)):e=NaN,e};w.round=function(){var n=this,e=n.constructor;return M(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=Br(i,ui(i,t)),i.precision=n,i.rounding=e,M(Ne>2?t.neg():t,n,e,!0)):new i(NaN)};w.squareRoot=w.sqrt=function(){var n,e,t,i,r,o,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=ae(a),(e.length+c)%2==0&&(e+="0"),u=Math.sqrt(e),c=ce((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(o=i,i=o.plus(Z(s,o,t+2,1)).times(.5),ae(o.d).slice(0,t)===(e=ae(i.d)).slice(0,t))if(e=e.slice(t-3,t+1),e=="9999"||!r&&e=="4999"){if(!r&&(M(o,c+1,0),o.times(o).eq(s))){i=o;break}t+=4,r=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(M(i,c+1,1),n=!i.times(i).eq(s));break}return V=!0,M(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=Z(t,new i(1).minus(t.times(t)).sqrt(),n+10,0),i.precision=n,i.rounding=e,M(Ne==2||Ne==4?t.neg():t,n,e,!0)):new i(NaN)};w.times=w.mul=function(n){var e,t,i,r,o,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=ce(l.e/v)+ce(n.e/v),c=d.length,u=p.length,c<u&&(o=d,d=p,p=o,s=c,c=u,u=s),o=[],s=c+u,i=s;i--;)o.push(0);for(i=u;--i>=0;){for(e=0,r=c+i;r>i;)a=o[r]+p[i]*d[r-i-1]+e,o[r--]=a%ke|0,e=a/ke|0;o[r]=(o[r]+e)%ke|0}for(;!o[--s];)o.pop();return e?++t:o.shift(),n.d=o,n.e=Mt(o,t),V?M(n,m.precision,m.rounding):n};w.toBinary=function(n,e){return fn(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:(pe(n,0,Ee),e===void 0?e=i.rounding:pe(e,0,8),M(t,n+t.e+1,e))};w.toExponential=function(n,e){var t,i=this,r=i.constructor;return n===void 0?t=xe(i,!0):(pe(n,0,Ee),e===void 0?e=r.rounding:pe(e,0,8),i=M(new r(i),n+1,e),t=xe(i,!0,n+1)),i.isNeg()&&!i.isZero()?"-"+t:t};w.toFixed=function(n,e){var t,i,r=this,o=r.constructor;return n===void 0?t=xe(r):(pe(n,0,Ee),e===void 0?e=o.rounding:pe(e,0,8),i=M(new o(r),n+r.e+1,e),t=xe(i,!1,n+i.e+1)),r.isNeg()&&!r.isZero()?"-"+t:t};w.toFraction=function(n){var e,t,i,r,o,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),o=e.e=ri(b)-p.e-1,s=o%v,e.d[0]=ie(10,s<0?v+s:s),n==null)n=o>0?e:u;else{if(a=new f(n),!a.isInt()||a.lt(u))throw Error(Fe+a);n=a.gt(e)?o>0?e:u:a}for(V=!1,a=new f(ae(b)),l=f.precision,f.precision=o=b.length*v*2;m=Z(a,e,0,1,1),r=t.plus(m.times(i)),r.cmp(n)!=1;)t=i,i=r,r=u,u=c.plus(m.times(r)),c=r,r=e,e=a.minus(m.times(r)),a=r;return r=Z(n.minus(t),i,0,1,1),c=c.plus(r.times(u)),t=t.plus(r.times(i)),c.s=u.s=p.s,d=Z(u,i,o,1).minus(p).abs().cmp(Z(c,t,o,1).minus(p).abs())<1?[u,i]:[c,t],f.precision=l,V=!0,d};w.toHexadecimal=w.toHex=function(n,e){return fn(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:pe(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=Z(t,n,0,e,1).times(n),V=!0,M(t)):(n.s=t.s,t=n),t};w.toNumber=function(){return+this};w.toOctal=function(n,e){return fn(this,8,n,e)};w.toPower=w.pow=function(n){var e,t,i,r,o,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(ie(+a,u));if(a=new c(a),a.eq(1))return a;if(i=c.precision,o=c.rounding,n.eq(1))return M(a,i,o);if(e=ce(n.e/v),e>=n.d.length-1&&(t=u<0?-u:u)<=Ar)return r=oi(c,a,t,i),n.s<0?new c(1).div(r):M(r,i,o);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=ie(+a,u),e=t==0||!isFinite(t)?ce(u*(Math.log("0."+ae(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),r=dn(n.times(Oe(a,i+t)),i),r.d&&(r=M(r,i+5,1),ct(r.d,i,o)&&(e=i+10,r=M(dn(n.times(Oe(a,e+t)),e),e+5,1),+ae(r.d).slice(i+1,i+15)+1==1e14&&(r=M(r,i+1,0)))),r.s=s,V=!0,c.rounding=o,M(r,i,o))};w.toPrecision=function(n,e){var t,i=this,r=i.constructor;return n===void 0?t=xe(i,i.e<=r.toExpNeg||i.e>=r.toExpPos):(pe(n,1,Ee),e===void 0?e=r.rounding:pe(e,0,8),i=M(new r(i),n,e),t=xe(i,n<=i.e||i.e<=r.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):(pe(n,1,Ee),e===void 0?e=i.rounding:pe(e,0,8)),M(new i(t),n,e)};w.toString=function(){var n=this,e=n.constructor,t=xe(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()&&!n.isZero()?"-"+t:t};w.truncated=w.trunc=function(){return M(new this.constructor(this),this.e+1,1)};w.valueOf=w.toJSON=function(){var n=this,e=n.constructor,t=xe(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()?"-"+t:t};function ae(n){var e,t,i,r=n.length-1,o="",s=n[0];if(r>0){for(o+=s,e=1;e<r;e++)i=n[e]+"",t=v-i.length,t&&(o+=Me(t)),o+=i;s=n[e],i=s+"",t=v-i.length,t&&(o+=Me(t))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function pe(n,e,t){if(n!==~~n||n<e||n>t)throw Error(Fe+n)}function ct(n,e,t,i){var r,o,s,a;for(o=n[0];o>=10;o/=10)--e;return--e<0?(e+=v,r=0):(r=Math.ceil((e+1)/v),e%=v),o=ie(10,v-e),a=n[r]%o|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==o||t>3&&a+1==o/2)&&(n[r+1]/o/100|0)==ie(10,e-2)-1||(a==o/2||a==0)&&(n[r+1]/o/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==o||!i&&t>3&&a+1==o/2)&&(n[r+1]/o/1e3|0)==ie(10,e-3)-1,s}function Ct(n,e,t){for(var i,r=[0],o,s=0,a=n.length;s<a;){for(o=r.length;o--;)r[o]*=e;for(r[0]+=cn.indexOf(n.charAt(s++)),i=0;i<r.length;i++)r[i]>t-1&&(r[i+1]===void 0&&(r[i+1]=0),r[i+1]+=r[i]/t|0,r[i]%=t)}return r.reverse()}function Tr(n,e){var t,i,r;if(e.isZero())return e;i=e.d.length,i<32?(t=Math.ceil(i/3),r=(1/Ot(4,t)).toString()):(t=16,r="2.3283064365386962890625e-10"),n.precision+=t,e=je(n,1,e.times(r),new n(1));for(var o=t;o--;){var s=e.times(e);e=s.times(s).minus(s).times(8).plus(1)}return n.precision-=t,e}var Z=function(){function n(i,r,o){var s,a=0,c=i.length;for(i=i.slice();c--;)s=i[c]*r+a,i[c]=s%o|0,a=s/o|0;return a&&i.unshift(a),i}function e(i,r,o,s){var a,c;if(o!=s)c=o>s?1:-1;else for(a=c=0;a<o;a++)if(i[a]!=r[a]){c=i[a]>r[a]?1:-1;break}return c}function t(i,r,o,s){for(var a=0;o--;)i[o]-=a,a=i[o]<r[o]?1:0,i[o]=a*s+i[o]-r[o];for(;!i[0]&&i.length>1;)i.shift()}return function(i,r,o,s,a,c){var u,l,m,d,p,b,f,y,P,A,k,g,T,h,x,I,R,K,C,N,W=i.constructor,q=i.s==r.s?1:-1,D=i.d,F=r.d;if(!D||!D[0]||!F||!F[0])return new W(!i.s||!r.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-r.e):(c=ke,p=v,l=ce(i.e/p)-ce(r.e/p)),C=F.length,R=D.length,P=new W(q),A=P.d=[],m=0;F[m]==(D[m]||0);m++);if(F[m]>(D[m]||0)&&l--,o==null?(h=o=W.precision,s=W.rounding):a?h=o+(i.e-r.e)+1:h=o,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<R||d)&&h--;m++)x=d*c+(D[m]||0),A[m]=x/F|0,d=x%F|0;b=d||m<R}else{for(d=c/(F[0]+1)|0,d>1&&(F=n(F,d,c),D=n(D,d,c),C=F.length,R=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++<R||k[0]!==void 0)&&h--);b=k[0]!==void 0}A[0]||A.shift()}if(p==1)P.e=l,$n=b;else{for(m=1,d=A[0];d>=10;d/=10)m++;P.e=m+l*p-1,M(P,a?o+P.e+1:o,s,b)}return P}}();function M(n,e,t,i){var r,o,s,a,c,u,l,m,d,p=n.constructor;e:if(e!=null){if(m=n.d,!m)return n;for(r=1,a=m[0];a>=10;a/=10)r++;if(o=e-r,o<0)o+=v,s=e,l=m[d=0],c=l/ie(10,r-s-1)%10|0;else if(d=Math.ceil((o+1)/v),a=m.length,d>=a)if(i){for(;a++<=d;)m.push(0);l=c=0,r=1,o%=v,s=o-v+1}else break e;else{for(l=a=m[d],r=1;a>=10;a/=10)r++;o%=v,s=o-v+r,c=s<0?0:l/ie(10,r-s-1)%10|0}if(i=i||e<0||m[d+1]!==void 0||(s<0?l:l%ie(10,r-s-1)),u=t<4?(c||i)&&(t==0||t==(n.s<0?3:2)):c>5||c==5&&(t==4||i||t==6&&(o>0?s>0?l/ie(10,r-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]=ie(10,(v-e%v)%v),n.e=-e||0):m[0]=n.e=0,n;if(o==0?(m.length=d,a=1,d--):(m.length=d+1,a=ie(10,v-o),m[d]=s>0?(l/ie(10,r-s)%ie(10,s)|0)*a:0),u)for(;;)if(d==0){for(o=1,s=m[0];s>=10;s/=10)o++;for(s=m[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(n.e++,m[0]==ke&&(m[0]=1));break}else{if(m[d]+=a,m[d]!=ke)break;m[d--]=0,a=1}for(o=m.length;m[--o]===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 xe(n,e,t){if(!n.isFinite())return ai(n);var i,r=n.e,o=ae(n.d),s=o.length;return e?(t&&(i=t-s)>0?o=o.charAt(0)+"."+o.slice(1)+Me(i):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(n.e<0?"e":"e+")+n.e):r<0?(o="0."+Me(-r-1)+o,t&&(i=t-s)>0&&(o+=Me(i))):r>=s?(o+=Me(r+1-s),t&&(i=t-r-1)>0&&(o=o+"."+Me(i))):((i=r+1)<s&&(o=o.slice(0,i)+"."+o.slice(i)),t&&(i=t-s)>0&&(r+1===s&&(o+="."),o+=Me(i))),o}function Mt(n,e){var t=n[0];for(e*=v;t>=10;t/=10)e++;return e}function Lt(n,e,t){if(e>kr)throw V=!0,t&&(n.precision=t),Error(ei);return M(new n(Kt),e,1,!0)}function Ae(n,e,t){if(e>mn)throw Error(ei);return M(new n(Nt),e,t,!0)}function ri(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 Me(n){for(var e="";n--;)e+="0";return e}function oi(n,e,t,i){var r,o=new n(1),s=Math.ceil(i/v+4);for(V=!1;;){if(t%2&&(o=o.times(e),Qn(o.d,s)&&(r=!0)),t=ce(t/2),t===0){t=o.d.length-1,r&&o.d[t]===0&&++o.d[t];break}e=e.times(e),Qn(e.d,s)}return V=!0,o}function Yn(n){return n.d[n.d.length-1]&1}function si(n,e,t){for(var i,r=new n(e[0]),o=0;++o<e.length;)if(i=new n(e[o]),i.s)r[t](i)&&(r=i);else{r=i;break}return r}function dn(n,e){var t,i,r,o,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(ie(2,m))/Math.LN10*2+5|0,c+=i,t=o=s=new d(1),d.precision=c;;){if(o=M(o.times(n),c,1),t=t.times(++l),a=s.plus(Z(o,t,c,1)),ae(a.d).slice(0,c)===ae(s.d).slice(0,c)){for(r=m;r--;)s=M(s.times(s),c,1);if(e==null)if(u<3&&ct(s.d,c-i,p,u))d.precision=c+=10,t=o=a=new d(1),l=0,u++;else return M(s,d.precision=b,p,V=!0);else return d.precision=b,s}s=a}}function Oe(n,e){var t,i,r,o,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=ae(y),i=t.charAt(0),Math.abs(o=f.e)<15e14){for(;i<7&&i!=1||i==1&&t.charAt(1)>3;)f=f.times(n),t=ae(f.d),i=t.charAt(0),p++;o=f.e,i>1?(f=new P("0."+t),o++):f=new P(i+"."+t.slice(1))}else return u=Lt(P,l+2,k).times(o+""),f=Oe(new P(i+"."+t.slice(1)),l-b).plus(u),P.precision=k,e==null?M(f,k,A,V=!0):f;for(m=f,c=s=f=Z(f.minus(1),f.plus(1),l,1),d=M(f.times(f),l,1),r=3;;){if(s=M(s.times(d),l,1),u=c.plus(Z(s,new P(r),l,1)),ae(u.d).slice(0,l)===ae(c.d).slice(0,l))if(c=c.times(2),o!==0&&(c=c.plus(Lt(P,l+2,k).times(o+""))),c=Z(c,new P(p),l,1),e==null)if(ct(c.d,l-b,A,a))P.precision=l+=b,u=s=f=Z(m.minus(1),m.plus(1),l,1),d=M(f.times(f),l,1),r=a=1;else return M(c,P.precision=k,A,V=!0);else return P.precision=k,c;c=u,r+=2}}function ai(n){return String(n.s*n.s/0)}function pn(n,e){var t,i,r;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(r=e.length;e.charCodeAt(r-1)===48;--r);if(e=e.slice(i,r),e){if(r-=i,n.e=t=t-i-1,n.d=[],i=(t+1)%v,t<0&&(i+=v),i<r){for(i&&n.d.push(+e.slice(0,i)),r-=v;i<r;)n.d.push(+e.slice(i,i+=v));e=e.slice(i),i=v-e.length}else i-=r;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 hr(n,e){var t,i,r,o,s,a,c,u,l;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),ii.test(e))return pn(n,e)}else if(e==="Infinity"||e==="NaN")return+e||(n.s=NaN),n.e=NaN,n.d=null,n;if(wr.test(e))t=16,e=e.toLowerCase();else if(gr.test(e))t=2;else if(Pr.test(e))t=8;else throw Error(Fe+e);for(o=e.search(/p/i),o>0?(c=+e.slice(o+1),e=e.substring(2,o)):e=e.slice(2),o=e.indexOf("."),s=o>=0,i=n.constructor,s&&(e=e.replace(".",""),a=e.length,o=a-o,r=oi(i,new i(t),o,o*2)),u=Ct(e,t,ke),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new i(n.s*0):(n.e=Mt(u,l),n.d=u,V=!1,s&&(n=Z(n,r,a*4)),c&&(n=n.times(Math.abs(c)<54?ie(2,c):lt.pow(2,c))),V=!0,n)}function Br(n,e){var t,i=e.d.length;if(i<3)return e.isZero()?e:je(n,2,e,e);t=1.4*Math.sqrt(i),t=t>16?16:t|0,e=e.times(1/Ot(5,t)),e=je(n,2,e,e);for(var r,o=new n(5),s=new n(16),a=new n(20);t--;)r=e.times(e),e=e.times(o.plus(r.times(s.times(r).minus(a))));return e}function je(n,e,t,i,r){var o,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=Z(a.times(c),new n(e++*e++),l,1),a=r?i.plus(s):i.minus(s),i=Z(s.times(c),new n(e++*e++),l,1),s=a.plus(i),s.d[m]!==void 0){for(o=m;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=i,i=s,s=o,u++}return V=!0,s.d.length=m+1,s}function Ot(n,e){for(var t=n;--e;)t*=n;return t}function ui(n,e){var t,i=e.s<0,r=Ae(n,n.precision,1),o=r.times(.5);if(e=e.abs(),e.lte(o))return Ne=i?4:1,e;if(t=e.divToInt(r),t.isZero())Ne=i?3:2;else{if(e=e.minus(t.times(r)),e.lte(o))return Ne=Yn(t)?i?2:3:i?4:1,e;Ne=Yn(t)?i?1:4:i?3:2}return e.minus(r).abs()}function fn(n,e,t,i){var r,o,s,a,c,u,l,m,d,p=n.constructor,b=t!==void 0;if(b?(pe(t,1,Ee),i===void 0?i=p.rounding:pe(i,0,8)):(t=p.precision,i=p.rounding),!n.isFinite())l=ai(n);else{for(l=xe(n),s=l.indexOf("."),b?(r=2,e==16?t=t*4-3:e==8&&(t=t*3-2)):r=e,s>=0&&(l=l.replace(".",""),d=new p(1),d.e=l.length-s,d.d=Ct(xe(d),10,r),d.e=d.d.length),m=Ct(l,10,r),o=c=m.length;m[--c]==0;)m.pop();if(!m[0])l=b?"0p+0":"0";else{if(s<0?o--:(n=new p(n),n.d=m,n.e=o,n=Z(n,d,t,i,0,r),m=n.d,o=n.e,u=$n),s=m[t],a=r/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]>r-1;)m[t]=0,t||(++o,m.unshift(1));for(c=m.length;!m[c-1];--c);for(s=0,l="";s<c;s++)l+=cn.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=Ct(l,r,e),c=m.length;!m[c-1];--c);for(s=1,l="1.";s<c;s++)l+=cn.charAt(m[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)l="0"+l;l="0."+l}else if(++o>c)for(o-=c;o--;)l+="0";else o<c&&(l=l.slice(0,o)+"."+l.slice(o))}l=(e==16?"0x":e==2?"0b":e==8?"0o":"")+l}return n.s<0?"-"+l:l}function Qn(n,e){if(n.length>e)return n.length=e,!0}function xr(n){return new this(n).abs()}function Ir(n){return new this(n).acos()}function Sr(n){return new this(n).acosh()}function Cr(n,e){return new this(n).plus(e)}function Kr(n){return new this(n).asin()}function Nr(n){return new this(n).asinh()}function Lr(n){return new this(n).atan()}function Rr(n){return new this(n).atanh()}function Mr(n,e){n=new this(n),e=new this(e);var t,i=this.precision,r=this.rounding,o=i+4;return!n.s||!e.s?t=new this(NaN):!n.d&&!e.d?(t=Ae(this,o,1).times(e.s>0?.25:.75),t.s=n.s):!e.d||n.isZero()?(t=e.s<0?Ae(this,i,r):new this(0),t.s=n.s):!n.d||e.isZero()?(t=Ae(this,o,1).times(.5),t.s=n.s):e.s<0?(this.precision=o,this.rounding=1,t=this.atan(Z(n,e,o,1)),e=Ae(this,o,1),this.precision=i,this.rounding=r,t=n.s<0?t.minus(e):t.plus(e)):t=this.atan(Z(n,e,o,1)),t}function Or(n){return new this(n).cbrt()}function Fr(n){return M(n=new this(n),n.e+1,2)}function Er(n,e,t){return new this(n).clamp(e,t)}function vr(n){if(!n||typeof n!="object")throw Error(Rt+"Object expected");var e,t,i,r=n.defaults===!0,o=["precision",1,Ee,"rounding",0,8,"toExpNeg",-ze,0,"toExpPos",0,ze,"maxE",0,ze,"minE",-ze,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(t=o[e],r&&(this[t]=ln[t]),(i=n[t])!==void 0)if(ce(i)===i&&i>=o[e+1]&&i<=o[e+2])this[t]=i;else throw Error(Fe+t+": "+i);if(t="crypto",r&&(this[t]=ln[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(ti);else this[t]=!1;else throw Error(Fe+t+": "+i);return this}function Dr(n){return new this(n).cos()}function Wr(n){return new this(n).cosh()}function ci(n){var e,t,i;function r(o){var s,a,c,u=this;if(!(u instanceof r))return new r(o);if(u.constructor=r,Jn(o)){u.s=o.s,V?!o.d||o.e>r.maxE?(u.e=NaN,u.d=null):o.e<r.minE?(u.e=0,u.d=[0]):(u.e=o.e,u.d=o.d.slice()):(u.e=o.e,u.d=o.d?o.d.slice():o.d);return}if(c=typeof o,c==="number"){if(o===0){u.s=1/o<0?-1:1,u.e=0,u.d=[0];return}if(o<0?(o=-o,u.s=-1):u.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;V?s>r.maxE?(u.e=NaN,u.d=null):s<r.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[o]):(u.e=s,u.d=[o]);return}else if(o*0!==0){o||(u.s=NaN),u.e=NaN,u.d=null;return}return pn(u,o.toString())}else if(c!=="string")throw Error(Fe+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),ii.test(o)?pn(u,o):hr(u,o)}if(r.prototype=w,r.ROUND_UP=0,r.ROUND_DOWN=1,r.ROUND_CEIL=2,r.ROUND_FLOOR=3,r.ROUND_HALF_UP=4,r.ROUND_HALF_DOWN=5,r.ROUND_HALF_EVEN=6,r.ROUND_HALF_CEIL=7,r.ROUND_HALF_FLOOR=8,r.EUCLID=9,r.config=r.set=vr,r.clone=ci,r.isDecimal=Jn,r.abs=xr,r.acos=Ir,r.acosh=Sr,r.add=Cr,r.asin=Kr,r.asinh=Nr,r.atan=Lr,r.atanh=Rr,r.atan2=Mr,r.cbrt=Or,r.ceil=Fr,r.clamp=Er,r.cos=Dr,r.cosh=Wr,r.div=Vr,r.exp=_r,r.floor=qr,r.hypot=Ur,r.ln=Gr,r.log=Xr,r.log10=Zr,r.log2=Hr,r.max=zr,r.min=jr,r.mod=Yr,r.mul=Qr,r.pow=Jr,r.random=$r,r.round=eo,r.sign=to,r.sin=no,r.sinh=io,r.sqrt=ro,r.sub=oo,r.sum=so,r.tan=ao,r.tanh=uo,r.trunc=co,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 r.config(n),r}function Vr(n,e){return new this(n).div(e)}function _r(n){return new this(n).exp()}function qr(n){return M(n=new this(n),n.e+1,3)}function Ur(){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 Jn(n){return n instanceof lt||n&&n.toStringTag===ni||!1}function Gr(n){return new this(n).ln()}function Xr(n,e){return new this(n).log(e)}function Hr(n){return new this(n).log(2)}function Zr(n){return new this(n).log(10)}function zr(){return si(this,arguments,"lt")}function jr(){return si(this,arguments,"gt")}function Yr(n,e){return new this(n).mod(e)}function Qr(n,e){return new this(n).mul(e)}function Jr(n,e){return new this(n).pow(e)}function $r(n){var e,t,i,r,o=0,s=new this(1),a=[];if(n===void 0?n=this.precision:pe(n,1,Ee),i=Math.ceil(n/v),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(i));o<i;)r=e[o],r>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=r%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(i*=4);o<i;)r=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((e[o+3]&127)<<24),r>=214e7?crypto.randomBytes(4).copy(e,o):(a.push(r%1e7),o+=4);o=i/4}else throw Error(ti);else for(;o<i;)a[o++]=Math.random()*1e7|0;for(i=a[--o],n%=v,i&&n&&(r=ie(10,v-n),a[o]=(i/r|0)*r);a[o]===0;o--)a.pop();if(o<0)t=0,a=[0];else{for(t=-1;a[0]===0;t-=v)a.shift();for(i=1,r=a[0];r>=10;r/=10)i++;i<v&&(t-=v-i)}return s.e=t,s.d=a,s}function eo(n){return M(n=new this(n),n.e+1,this.rounding)}function to(n){return n=new this(n),n.d?n.d[0]?n.s:0*n.s:n.s||NaN}function no(n){return new this(n).sin()}function io(n){return new this(n).sinh()}function ro(n){return new this(n).sqrt()}function oo(n,e){return new this(n).sub(e)}function so(){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,M(t,this.precision,this.rounding)}function ao(n){return new this(n).tan()}function uo(n){return new this(n).tanh()}function co(n){return M(n=new this(n),n.e+1,1)}w[Symbol.for("nodejs.util.inspect.custom")]=w.toString;w[Symbol.toStringTag]="Decimal";var lt=w.constructor=ci(ln);Kt=new lt(Kt);Nt=new lt(Nt);var re=lt;var Li=Q(require("big.js")),xo=Q(require("bn.js"));var mt=require("lodash");var bn=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}},li={},lo={};function oe(n){let e=(0,mt.get)(li,n);if(!e){let t=(0,mt.get)(lo,n);e=new bn({name:n,logLevel:t}),(0,mt.set)(li,n,e)}return e}var wn=require("@solana/web3.js");var ve=require("@solana/spl-token"),yn=oe("Raydium_accountInfo_util");async function dt(n,e,t){let{batchRequest:i,commitment:r="confirmed",chunkCount:o=100}=U({batchRequest:!1},t),s=gn(e,o),a=new Array(s.length).fill([]);if(i){let c=s.map(m=>{let d=n._buildArgs([m.map(p=>p.toBase58())],r,"base64");return{methodName:"getMultipleAccounts",args:d}}),u=gn(c,10);a=(await(await Promise.all(u.map(async m=>await n._rpcBatchRequest(m)))).flat()).map(m=>(m.error&&yn.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"&&yn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:b,lamports:f,owner:new wn.PublicKey(y),rentEpoch:P}}return null})))}else try{a=await Promise.all(s.map(c=>n.getMultipleAccountsInfo(c,r)))}catch(c){c instanceof Error&&yn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}async function qe(n,e,t){let i=await dt(n,e.map(r=>r.pubkey),t);return e.map((r,o)=>Y(U({},r),{accountInfo:i[o]}))}async function Pn({connection:n,mints:e,config:t}){var o,s,a;if(e.length===0)return{};let i=await qe(n,e.map(c=>({pubkey:pt(c)})),t),r={};for(let c of i){if(!c.accountInfo||c.accountInfo.data.length<ve.MINT_SIZE){console.log("invalid mint account",c.pubkey.toBase58());continue}let u=(0,ve.unpackMint)(c.pubkey,c.accountInfo,(o=c.accountInfo)==null?void 0:o.owner);r[c.pubkey.toString()]=Y(U({},u),{programId:((s=c.accountInfo)==null?void 0:s.owner)||ve.TOKEN_PROGRAM_ID,feeConfig:(a=(0,ve.getTransferFeeConfig)(u))!=null?a:void 0})}return r[wn.PublicKey.default.toBase58()]=r[fe.toBase58()],r}var Ye=Q(require("bn.js"));var mi=9007199254740991;function Ie(n){let e=oe("Raydium_parseBigNumberish");if(n instanceof Ye.default)return n;if(typeof n=="string"){if(n.match(/^-?[0-9]+$/))return new Ye.default(n);e.logWithError(`invalid BigNumberish string: ${n}`)}return typeof n=="number"?(n%1&&e.logWithError(`BigNumberish number underflow: ${n}`),(n>=mi||n<=-mi)&&e.logWithError(`BigNumberish number overflow: ${n}`),new Ye.default(String(n))):typeof n=="bigint"?new Ye.default(n.toString()):(e.error(`invalid BigNumberish value: ${n}`),new Ye.default(0))}var di=require("@solana/web3.js"),An=require("@solana/spl-token"),kn={chainId:101,address:di.PublicKey.default.toBase58(),programId:An.TOKEN_PROGRAM_ID.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},De={chainId:101,address:"So11111111111111111111111111111111111111112",programId:An.TOKEN_PROGRAM_ID.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"}};var vt=require("@solana/web3.js");var X=require("@solana/web3.js"),pi=require("@solana/spl-token");function Tn({pubkey:n,isSigner:e=!1,isWritable:t=!0}){return{pubkey:n,isWritable:t,isSigner:e}}var Ss=[Tn({pubkey:pi.TOKEN_PROGRAM_ID,isWritable:!1}),Tn({pubkey:X.SystemProgram.programId,isWritable:!1}),Tn({pubkey:X.SYSVAR_RENT_PUBKEY,isWritable:!1})];function hn({publicKey:n,transformSol:e}){let t=fi(n.toString());if(t instanceof X.PublicKey)return e&&t.equals(ft)?fe:t;if(e&&t.toString()===ft.toBase58())return fe;if(typeof t=="string"){if(t===X.PublicKey.default.toBase58())return X.PublicKey.default;try{return new X.PublicKey(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function fi(n){try{return new X.PublicKey(n)}catch{return n}}var mo=new X.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ft=new X.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Et=new X.PublicKey("SysvarRent111111111111111111111111111111111"),Cs=new X.PublicKey("SysvarC1ock11111111111111111111111111111111"),Qe=new X.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Ks=new X.PublicKey("Sysvar1nstructions1111111111111111111111111"),bi=X.SystemProgram.programId,Ns=new X.PublicKey("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ls=new X.PublicKey("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Rs=new X.PublicKey("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ms=new X.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Os=new X.PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Fs=new X.PublicKey("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Es=new X.PublicKey("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),vs=new X.PublicKey("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ds=new X.PublicKey("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ws=new X.PublicKey("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Vs=new X.PublicKey("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),fe=new X.PublicKey("So11111111111111111111111111111111111111112"),ft=X.PublicKey.default;function pt(n){return hn({publicKey:n,transformSol:!0})}var Bn=class{constructor({mint:e,decimals:t,symbol:i,name:r,skipMint:o=!1,isToken2022:s=!1}){if(e===ft.toBase58()||e instanceof vt.PublicKey&&ft.equals(e)){this.decimals=De.decimals,this.symbol=De.symbol,this.name=De.name,this.mint=new vt.PublicKey(De.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=i||e.toString().substring(0,6),this.name=r||e.toString().substring(0,6),this.mint=o?vt.PublicKey.default:hn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},We=Bn;We.WSOL=new Bn(Y(U({},De),{mint:De.address}));var xn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=i}equals(e){return this===e}},Dt=xn;Dt.SOL=new xn(kn);var yi=Q(require("toformat")),po=yi.default,bt=po;var yt=Q(require("big.js")),gi=Q(require("bn.js")),wi=Q(require("decimal.js-light"));var Wt=oe("module/fraction"),In=bt(yt.default),gt=bt(wi.default),bo={[0]:gt.ROUND_DOWN,[1]:gt.ROUND_HALF_UP,[2]:gt.ROUND_UP},yo={[0]:yt.default.roundDown,[1]:yt.default.roundHalfUp,[2]:yt.default.roundUp},j=class{constructor(e,t=new gi.default(1)){this.numerator=Ie(e),this.denominator=Ie(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new j(this.denominator,this.numerator)}add(e){let t=e instanceof j?e:new j(Ie(e));return this.denominator.eq(t.denominator)?new j(this.numerator.add(t.numerator),this.denominator):new j(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof j?e:new j(Ie(e));return this.denominator.eq(t.denominator)?new j(this.numerator.sub(t.numerator),this.denominator):new j(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof j?e:new j(Ie(e));return new j(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof j?e:new j(Ie(e));return new j(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},i=1){Number.isInteger(e)||Wt.logWithError(`${e} is not an integer.`),e<=0&&Wt.logWithError(`${e} is not positive.`),gt.set({precision:e+1,rounding:bo[i]});let r=new gt(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},i=1){return Number.isInteger(e)||Wt.logWithError(`${e} is not an integer.`),e<0&&Wt.logWithError(`${e} is negative.`),In.DP=e,In.RM=yo[i]||1,new In(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Ai=Q(require("bn.js"));var Pi=new j(new Ai.default(100)),ye=class extends j{toSignificant(e=5,t,i){return this.mul(Pi).toSignificant(e,t,i)}toFixed(e=2,t,i){return this.mul(Pi).toFixed(e,t,i)}};var aa=oe("Raydium_price");function gn(n,e=1,t=[]){let i=[...n];if(e<=0)return t;for(;i.length;)t.push(i.splice(0,e));return t}var Bi=require("@solana/web3.js"),xi=require("@solana/spl-token");var le=require("@solana/web3.js");var ue={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"};var Ti=require("@solana/spl-token"),ki=oe("Raydium_txUtil"),hi=1644;function _t(n){let e=[],t=[];return n.microLamports&&(e.push(le.ComputeBudgetProgram.setComputeUnitPrice({microLamports:n.microLamports})),t.push(ue.SetComputeUnitPrice)),n.units&&(e.push(le.ComputeBudgetProgram.setComputeUnitLimit({units:n.units})),t.push(ue.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Je(n,e){var i,r;let t=e!=null?e:"confirmed";return(r=await((i=n.getLatestBlockhash)==null?void 0:i.call(n,{commitment:t})))==null?void 0:r.blockhash}async function qt(n,e){return n.getSignatureStatuses([e]),new Promise((t,i)=>{let r=setTimeout(i,6e4);n.onSignature(e,o=>{if(clearTimeout(r),!o.err){t("");return}i(Object.assign(o.err,{txId:e}))},"confirmed")})}function go(n,e){n.length<1&&ki.logWithError(`no instructions provided: ${n.toString()}`),e.length<1&&ki.logWithError(`no signers provided:, ${e.toString()}`);let t=new le.Transaction;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...n);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<hi}catch{return!1}}function Te(n,e){let[t,i]=le.PublicKey.findProgramAddressSync(n,e);return{publicKey:t,nonce:i}}function wt({instructions:n,payer:e,signers:t}){return go(n,[e,...t])}function Pt({instructions:n,payer:e,lookupTableAddressAccount:t,recentBlockhash:i=le.Keypair.generate().publicKey.toString()}){let o=new le.TransactionMessage({payerKey:e,recentBlockhash:i,instructions:n}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new le.VersionedTransaction(o).serialize()).toString("base64").length<hi}catch{return!1}}var wo=n=>Buffer.isBuffer(n)?n:n instanceof Uint8Array?Buffer.from(n.buffer,n.byteOffset,n.byteLength):Buffer.from(n),Po=n=>{let e=n.serialize({requireAllSignatures:!1,verifySignatures:!1});n instanceof le.VersionedTransaction&&(e=wo(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Ue(n){let e=[];return n.forEach(t=>{t instanceof le.Transaction&&(t.recentBlockhash||(t.recentBlockhash=Ti.TOKEN_PROGRAM_ID.toBase58()),t.feePayer||(t.feePayer=le.Keypair.generate().publicKey)),e.push(Po(t))}),console.log("simulate tx string:",e),e}function ge(n,e,t){return Te([n.toBuffer(),(t!=null?t:xi.TOKEN_PROGRAM_ID).toBuffer(),e.toBuffer()],new Bi.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}var O=require("@solana/web3.js"),Ea=new O.PublicKey("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),va=new O.PublicKey("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Da=new O.PublicKey("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Wa=new O.PublicKey("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Va=new O.PublicKey("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),_a=new O.PublicKey("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),qa=new O.PublicKey("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Ua=new O.PublicKey("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Ga=new O.PublicKey("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Xa=new O.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ao=new O.PublicKey("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ko=new O.PublicKey("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),To=new O.PublicKey("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Ha=new O.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Za=new O.PublicKey("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),za=new O.PublicKey("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ja=new O.PublicKey("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Ya=new O.PublicKey("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Qa=new O.PublicKey("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ja=new O.PublicKey("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Ii=new O.PublicKey("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Si=new O.PublicKey("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),$a=new O.PublicKey("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ut=new O.PublicKey("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Gt=new O.PublicKey("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),eu=new O.PublicKey("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),tu=new O.PublicKey("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),nu=new O.PublicKey("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),iu=new O.PublicKey("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),ru=new O.PublicKey("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ou=new O.PublicKey("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var su={OPEN_BOOK_PROGRAM:new O.PublicKey("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new O.PublicKey("Ray1111111111111111111111111111111111111111"),AMM_V4:new O.PublicKey("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new O.PublicKey("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new O.PublicKey("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new O.PublicKey("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new O.PublicKey("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new O.PublicKey("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new O.PublicKey("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new O.PublicKey("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new O.PublicKey("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new O.PublicKey("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:O.PublicKey.default,Router:new O.PublicKey("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new O.PublicKey("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new O.PublicKey("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new O.PublicKey("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new O.PublicKey("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new O.PublicKey("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new O.PublicKey("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new O.PublicKey("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new O.PublicKey("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new O.PublicKey("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new O.PublicKey("Ray1111111111111111111111111111111111111111")};var we=Q(require("bn.js")),At=1e4;function Se(n,e,t,i){if(e===void 0)return{amount:n,fee:void 0,expirationTime:void 0};let r=Y(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}}),o=t.epoch<r.newerTransferFee.epoch?r.olderTransferFee:r.newerTransferFee,s=new we.default(o.maximumFee.toString()),a=t.epoch<r.newerTransferFee.epoch?(Number(r.newerTransferFee.epoch)*t.slotsInEpoch-t.absoluteSlot)*400/1e3:void 0;if(i)if(o.transferFeeBasisPoints===At){let c=new we.default(o.maximumFee.toString());return{amount:n.add(c),fee:c,expirationTime:a}}else{let c=$e(n.mul(new we.default(At)),new we.default(At-o.transferFeeBasisPoints)),u=new we.default(o.maximumFee.toString()),l=c.sub(n).gt(u)?n.add(u):c,m=$e(l.mul(new we.default(o.transferFeeBasisPoints)),new we.default(At)),d=m.gt(s)?s:m;return{amount:l,fee:d,expirationTime:a}}else{let c=$e(n.mul(new we.default(o.transferFeeBasisPoints)),new we.default(At)),u=c.gt(s)?s:c;return{amount:n,fee:u,expirationTime:a}}}function $e(n,e){let{div:t,mod:i}=n.divmod(e);return i.gt(new we.default(0))?t.add(new we.default(1)):t}var he=require("@solana/web3.js");async function Kn({connection:n,address:e,cluster:t="mainnet"}){let i=await dt(n,[...new Set(e.map(o=>o.toString()))].map(o=>new he.PublicKey(o))),r={};for(let o=0;o<e.length;o++){let s=i[o],a=e[o];if(!s)continue;let c=new he.AddressLookupTableAccount({key:a,state:he.AddressLookupTableAccount.deserialize(s.data)});r[a.toString()]=c,t==="devnet"?et[a.toString()]=c:Xt[a.toString()]=c}return r}var Xt={AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU:new he.AddressLookupTableAccount({key:new he.PublicKey("AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU"),state:he.AddressLookupTableAccount.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"))})},et={},Nn=async n=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(et[e])return et;let t=new he.PublicKey(e),i=await n.getAccountInfo(t);return i&&(et[e]=new he.AddressLookupTableAccount({key:t,state:he.AddressLookupTableAccount.deserialize(i.data)})),et};var G=require("@solana/web3.js"),Ki=Q(require("axios"));var Ht=2e3,Zt=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 Ki.default.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}=_t(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(G.SystemProgram.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new G.PublicKey(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(ue.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:r=[],endInstructionTypes:o=[],lookupTableAddress:s=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...i),this.instructionTypes.push(...r),this.endInstructionTypes.push(...o),this.lookupTableAddress.push(...s.filter(a=>a!==G.PublicKey.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 G.Transaction;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(r=>r.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 r=>{var l;let{recentBlockHash:o,skipPreflight:s=!0,sendAndConfirm:a,notSendToRpc:c}=r||{},u=o!=null?o:await Je(this.connection,this.blockhashCommitment);if(t.recentBlockhash=u,this.signers.length&&t.sign(...this.signers),Ue([t]),(l=this.owner)!=null&&l.isKeyPair)return{txId:a?await(0,G.sendAndConfirmTransaction)(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:r}=this.build(i),o=t.filter(l=>l.transaction.instructions.length>0),s=[r,...o.map(l=>l.transaction)],a=[this.signers,...o.map(l=>l.signers)],c=[...this.instructionTypes,...o.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 Je(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(0,G.sendAndConfirmTransaction)(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));Ue(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,R=null,K=null,C=N=>{R!==null&&clearInterval(R),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&&(R=setInterval(async()=>{var N;if(I){clearInterval(R);return}try{let W=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(I=!0,clearInterval(R),C({err:((N=W.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",x))}catch(W){I=!0,clearInterval(R),console.error("getTransaction timeout:",W,x)}},Ht)),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:r,recentBlockhash:o}=b,s=Ke(b,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=U(U({},this.cluster==="devnet"?await Nn(this.connection):Xt),t),c=Array.from(new Set([...i,...this.lookupTableAddress])),u=[];for(let y of c)a[y]===void 0&&u.push(new G.PublicKey(y));let l=await Kn({connection:this.connection,address:u});for(let[y,P]of Object.entries(l))a[y]=P;let m=r?G.PublicKey.default.toBase58():o!=null?o:await Je(this.connection,this.blockhashCommitment),d=new G.TransactionMessage({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 G.VersionedTransaction(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(Ue([p]),(g=this.owner)!=null&&g.isKeyPair){let T=await this.connection.sendTransaction(p,{skipPreflight:P});return A&&await qt(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:r}=await this.buildV0(i),o=t.filter(l=>l.builder.instructions.length>0),s=[r,...o.map(l=>l.transaction)],a=[this.signers,...o.map(l=>l.signers)],c=[...this.instructionTypes,...o.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),Ue(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 qt(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=R=>{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=R.err?"error":"success"}d==null||d([...A]),R.err||k()};this.loopMultiTxStatus&&(h=setInterval(async()=>{var R;if(T){clearInterval(h);return}try{let K=await this.connection.getTransaction(g,{commitment:"confirmed",maxSupportedTransactionVersion:0});K&&(T=!0,clearInterval(h),I({err:((R=K.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",g))}catch(K){T=!0,clearInterval(h),console.error("getTransaction timeout:",K,g)}},Ht)),x=this.connection.onSignature(g,R=>{if(T){this.connection.removeSignatureListener(x);return}T=!0,I(R)},"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,r=Ke(m,["splitIns","computeBudgetConfig"]),o=i?_t(i):{instructions:[],instructionTypes:[]},s=this.signers.reduce((p,b)=>Y(U({},p),{[b.publicKey.toBase58()]:b}),{}),a=[],c=[],u=[],l=0;if(this.allInstructions.forEach(p=>{let b=[...u,p],f=i?[...o.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 G.PublicKey(A));if(p!==t[l]&&u.length<12&&(wt({instructions:f,payer:this.feePayer,signers:P})||wt({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,wt({instructions:i?[...o.instructions,...u]:[...u],payer:this.feePayer,signers:P})?a.push(new G.Transaction().add(...o.instructions,...u)):a.push(new G.Transaction().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);wt({instructions:i?[...o.instructions,...u]:[...u],payer:this.feePayer,signers:b.map(f=>f.publicKey)})?a.push(new G.Transaction().add(...o.instructions,...u)):a.push(new G.Transaction().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 Je(this.connection,this.blockhashCommitment);if(a.forEach(async(T,h)=>{T.recentBlockhash=k,c[h].length&&T.sign(...c[h])}),Ue(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(0,G.sendAndConfirmTransaction)(this.connection,x,this.signers.find(R=>R.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=[],R=async()=>{if(!h[x])return;x<y&&(I.push({txId:"",status:"success",signedTx:h[x]}),f==null||f([...I]),x++,R());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(ne=>ne.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||R()};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)}},Ht)),W=this.connection.onSignature(K,D=>{if(C){this.connection.removeSignatureListener(W);return}C=!0,q(D)},"confirmed"),this.connection.getSignatureStatus(K)};return await R(),{txIds:I.map(K=>K.txId),signedTxs:h}}else{let x=[];for(let I=0;I<h.length;I+=1){let R=await this.connection.sendRawTransaction(h[I].serialize(),{skipPreflight:A});x.push(R)}return{txIds:x,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var k;let A=e||{},{computeBudgetConfig:t,splitIns:i=[],lookupTableCache:r={},lookupTableAddress:o=[]}=A,s=Ke(A,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress"]),a=U(U({},this.cluster==="devnet"?await Nn(this.connection):Xt),r),c=Array.from(new Set([...this.lookupTableAddress,...o])),u=[];for(let g of c)a[g]===void 0&&u.push(new G.PublicKey(g));let l=await Kn({connection:this.connection,address:u});for(let[g,T]of Object.entries(l))a[g]=T;let m=t?_t(t):{instructions:[],instructionTypes:[]},d=await Je(this.connection,this.blockhashCommitment),p=this.signers.reduce((g,T)=>Y(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&&(Pt({instructions:h,payer:this.feePayer,lookupTableAddressAccount:a})||Pt({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&&Pt({instructions:[...m.instructions,...y],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:d})){let I=new G.TransactionMessage({payerKey:this.feePayer,recentBlockhash:d,instructions:[...m.instructions,...y]}).compileToV0Message(Object.values(a));b.push(new G.VersionedTransaction(I))}else{let I=new G.TransactionMessage({payerKey:this.feePayer,recentBlockhash:d,instructions:[...y]}).compileToV0Message(Object.values(a));b.push(new G.VersionedTransaction(I))}f.push(Array.from(new Set(y.map(I=>I.keys.filter(R=>R.isSigner).map(R=>R.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&&Pt({instructions:[...m.instructions,...y],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:d})){let h=new G.TransactionMessage({payerKey:this.feePayer,recentBlockhash:d,instructions:[...m.instructions,...y]}).compileToV0Message(Object.values(a));b.push(new G.VersionedTransaction(h))}else{let h=new G.TransactionMessage({payerKey:this.feePayer,recentBlockhash:d,instructions:[...y]}).compileToV0Message(Object.values(a));b.push(new G.VersionedTransaction(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:R=!0}=g||{};if(b.map(async(C,N)=>{f[N].length&&C.sign(f[N]),I&&(C.message.recentBlockhash=I)}),Ue(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:R});await qt(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:R}))),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:R});q.push({txId:F,status:"sent",signedTx:N[W]}),h==null||h([...q]),W++;let ne=!1,Pe=null,Ve=null,Hn=_e=>{Pe!==null&&clearInterval(Pe),Ve!==null&&this.connection.removeSignatureListener(Ve);let Ce=q.findIndex(ur=>ur.txId===F);if(Ce>-1){if(q[Ce].status==="error"||q[Ce].status==="success")return;q[Ce].status=_e.err?"error":"success"}h==null||h([...q]),_e.err||D()};this.loopMultiTxStatus&&(Pe=setInterval(async()=>{var _e;if(ne){clearInterval(Pe);return}try{let Ce=await this.connection.getTransaction(F,{commitment:"confirmed",maxSupportedTransactionVersion:0});Ce&&(ne=!0,clearInterval(Pe),Hn({err:((_e=Ce.meta)==null?void 0:_e.err)||null}),console.log("tx status from getTransaction:",F))}catch(Ce){ne=!0,clearInterval(Pe),console.error("getTransaction timeout:",Ce,F)}},Ht)),Ve=this.connection.onSignature(F,_e=>{if(ne){this.connection.removeSignatureListener(Ve);return}ne=!0,Hn(_e)},"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:R});W.push(D)}return{txIds:W,signedTxs:N}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}};var ho=require("@solana/web3.js"),Bo=Q(require("bn.js"));var Ni=Q(require("bn.js")),zt=new Ni.default(1e6);var $u=oe("Raydium_amount"),ec=bt(Li.default);var Cn=new Be.default(0),bc=new Be.default(1),yc=new Be.default(2),gc=new Be.default(3),wc=new Be.default(5),Io=new Be.default(10),Pc=new Be.default(100),Ac=new Be.default(1e3),kc=new Be.default(1e4);function Ri(n,e,t){return n.mul(e).add(t).sub(new Be.default(1)).div(t)}function Ln(n,e,t){return n.mul(e).div(t)}var Jt=Q(require("bn.js")),kt=Q(require("decimal.js-light"));var nt=Q(require("bn.js"));function jt(n,e){if(e.isZero())throw Error("divisor is zero");return n.mod(e)}function So(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=jt(n,e);return i.gt(tt)&&(t=t.add(new nt.default(1)),e=n.div(t),i=jt(n,t),i.gt(tt)&&(e=e.add(new nt.default(1)))),[t,e]}var tt=new nt.default(0),Yt=class{static swapWithoutFees(e,t,i){let r=t.mul(i),o=t.add(e),[s]=So(r,o),a=i.sub(s);if(a.isZero())throw Error("destinationAmountSwapped is zero");return{destinationAmountSwapped:a}}static lpTokensToTradingTokens(e,t,i,r,o){let s=e.mul(i).div(t),a=e.mul(r).div(t);if(o===0)return{tokenAmount0:s,tokenAmount1:a};if(o===1)return jt(e.mul(i),t).gt(tt)&&s.gt(tt)&&(s=s.add(new nt.default(1))),jt(e.mul(r),t).gt(tt)&&a.gt(tt)&&(a=a.add(new nt.default(1))),{tokenAmount0:s,tokenAmount1:a};throw Error("roundDirection value error")}};var Qt=class{static tradingFee(e,t){return Ri(e,t,zt)}static protocolFee(e,t){return Ln(e,t,zt)}static fundFee(e,t){return Ln(e,t,zt)}};var $t=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,r){let o=Qt.tradingFee(e,r),s=e.sub(o),{destinationAmountSwapped:a}=Yt.swapWithoutFees(s,t,i);return{newSwapDestinationAmount:i.sub(a),sourceAmountSwapped:e,destinationAmountSwapped:a,tradeFee:o}}static swapBaseOut({poolMintA:e,poolMintB:t,tradeFeeRate:i,baseReserve:r,quoteReserve:o,outputMint:s,outputAmount:a}){let[c,u,l,m,d]=t.address===s.toString()?[r,o,e.decimals,t.decimals,e.address]:[o,r,t.decimals,e.decimals,t.address],p=new kt.default(u.toString()).div(10**m).div(new kt.default(c.toString()).div(10**l)),b=a.gte(u)?u.sub(new Jt.default(1)):a,f=u.sub(b),y=$e(c.mul(b),f),P=$e(y.mul(new Jt.default(1e6)),new Jt.default(1e6).sub(i)),A=P.sub(y),k=new kt.default(b.toString()).div(10**m).div(new kt.default(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}}};var te=Q(require("bn.js"));var Rn=(...n)=>n.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),it=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=oe(t)}createTxBuilder(e){return this.scope.checkOwner(),new Zt({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(Rn(e))}logInfo(...e){this.logger.info(Rn(e))}logAndCreateError(...e){let t=Rn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var Ei=require("@solana/web3.js"),rt=Q(require("bn.js"));var E=require("@solana/buffer-layout"),Mn=E.Layout,Mi=E.Structure;var On=E.UInt;var Oi=E.u8,Ge=E.u16;var Le=E.s32;var Fi=E.seq;var me=E.blob;var ot=class extends Mn{constructor(t,i,r){super(t,r);this.blob=me(t),this.signed=i}decode(t,i=0){let r=new rt.default(this.blob.decode(t,i),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(t,i,r=0){return typeof t=="number"&&(t=new rt.default(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),i,r)}};function J(n){return new On(1,n)}function Re(n){return new On(4,n)}function S(n){return new ot(8,!1,n)}function $(n){return new ot(16,!1,n)}function vi(n){return new ot(8,!0,n)}function Di(n){return new ot(16,!0,n)}var en=class extends Mn{constructor(t,i,r,o){super(t.span,o);this.layout=t,this.decoder=i,this.encoder=r}decode(t,i){return this.decoder(this.layout.decode(t,i))}encode(t,i,r){return this.layout.encode(this.encoder(t),i,r)}getSpan(t,i){return this.layout.getSpan(t,i)}};function _(n){return new en(me(32),e=>new Ei.PublicKey(e),e=>e.toBuffer(),n)}function Xe(n){return new en(Oi(),Co,Ko,n)}function Co(n){if(n===0)return!1;if(n===1)return!0;throw new Error("Invalid bool: "+n)}function Ko(n){return n?1:0}var Fn=class extends Mi{decode(e,t){return super.decode(e,t)}};function H(n,e,t){return new Fn(n,e,t)}function z(n,e,t){let i,r=typeof e=="number"?e:(0,rt.isBN)(e)?e.toNumber():new Proxy(e,{get(o,s){if(!i){let a=Reflect.get(o,"count");i=(0,rt.isBN)(a)?a.toNumber():a,Reflect.set(o,"count",i)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(i=a),Reflect.set(o,s,a)}});return Fi(n,r,t)}var Yc=H([Re("mintAuthorityOption"),_("mintAuthority"),S("supply"),J("decimals"),J("isInitialized"),Re("freezeAuthorityOption"),_("freezeAuthority")]);var No=require("@solana/web3.js"),Wi=require("@solana/spl-token");var He=r=>{var o=r,{address:n,programId:e,decimals:t}=o,i=Ke(o,["address","programId","decimals"]);return U({chainId:101,address:pt(n).toBase58(),programId:e,logoURI:"",symbol:"",name:"",decimals:t,tags:[],extensions:i.extensions||{}},i)},st=n=>n?Y(U({},n),{transferFeeConfigAuthority:n.transferFeeConfigAuthority.toBase58(),withdrawWithheldAuthority:n.withdrawWithheldAuthority.toBase58(),withheldAmount:n.withheldAmount.toString(),olderTransferFee:Y(U({},n.olderTransferFee),{epoch:n.olderTransferFee.epoch.toString(),maximumFee:n.olderTransferFee.maximumFee.toString()}),newerTransferFee:Y(U({},n.newerTransferFee),{epoch:n.newerTransferFee.epoch.toString(),maximumFee:n.newerTransferFee.maximumFee.toString()})}):void 0;var se=require("@solana/web3.js"),de=require("@solana/spl-token");var Lo=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),ml=Buffer.from("amm_config","utf8"),Ro=Buffer.from("pool","utf8"),Mo=Buffer.from("pool_lp_mint","utf8"),Oo=Buffer.from("pool_vault","utf8"),Fo=Buffer.from("observation","utf8");function tn(n){return Te([Lo],n)}function En(n,e,t,i){return Te([Ro,e.toBuffer(),t.toBuffer(),i.toBuffer()],n)}function Eo(n,e){return Te([Mo,e.toBuffer()],n)}function Vi(n,e,t){return Te([Oo,e.toBuffer(),t.toBuffer()],n)}function Tt(n,e){return Te([Fo,e.toBuffer()],n)}function _i({poolId:n,programId:e,configId:t,mintA:i,mintB:r}){let o=tn(e).publicKey,s=n||En(e,t,i,r).publicKey,a=Eo(e,s).publicKey,c=Vi(e,s,i).publicKey,u=Vi(e,s,r).publicKey,l=Tt(e,s).publicKey;return{poolId:s,configId:t,authority:o,lpMint:a,vaultA:c,vaultB:u,observationId:l}}var vo=Buffer.from("locked_liquidity","utf8");function ht(n,e){return Te([vo,e.toBuffer()],n)}var as=require("@solana/web3.js"),us=Q(require("bn.js"));var sn=require("@solana/spl-token");var on=require("@solana/web3.js"),ss=Q(require("bn.js"));var Gn=require("@solana/spl-token");var jo=Q(require("bn.js"));var be=Q(require("bn.js")),vn=new be.default(0),qi=new be.default(1),Ui=new be.default(-1),nn=new be.default(1).shln(64),Gi=new be.default(1).shln(128),Do=nn.sub(qi);var Wo=Gi.subn(1),at=-443636,Bt=-at,Dn=new be.default("4295048016"),Wn=new be.default("79226673521066979257578248091"),pl=new be.default("4295048017"),fl=new be.default("79226673521066979257578248090");var Vo=new be.default(10).pow(new be.default(6));var bl=new be.default("18446744073700000000");var zo=Q(require("bn.js"));var Tl=Buffer.from("amm_config","utf8"),hl=Buffer.from("pool","utf8"),Bl=Buffer.from("pool_vault","utf8"),xl=Buffer.from("pool_reward_vault","utf8"),Il=Buffer.from("position","utf8"),Sl=Buffer.from("tick_array","utf8"),Cl=Buffer.from("operation","utf8"),Kl=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Nl=Buffer.from("observation","utf8");function Vn(n){return Te([Buffer.from("metadata","utf8"),Qe.toBuffer(),n.toBuffer()],Qe)}var Ll=Buffer.from("locked_position","utf8");var Rl=Buffer.from("support_mint","utf8");var Go=require("@solana/web3.js"),Xo=require("@solana/spl-token"),Ho=Q(require("bn.js"));var _o=Q(require("bn.js"));var Un=14;var rn=60;var Yo=H([me(8),J("bump"),Ge("index"),_(""),Re("protocolFeeRate"),Re("tradeFeeRate"),Ge("tickSpacing"),z(S(),8,"")]),Qo=H([Re("blockTimestamp"),vi("tickCumulative"),z(S(),4)]),$i=H([me(8),Xe("initialized"),S("recentEpoch"),Ge("observationIndex"),_("poolId"),z(Qo,100,"observations"),z(S(),4)]),Jo=H([J("rewardState"),S("openTime"),S("endTime"),S("lastUpdateTime"),$("emissionsPerSecondX64"),S("rewardTotalEmissioned"),S("rewardClaimed"),_("tokenMint"),_("tokenVault"),_("creator"),$("rewardGrowthGlobalX64")]),Yi=H([me(8),J("bump"),_("ammConfig"),_("creator"),_("mintA"),_("mintB"),_("vaultA"),_("vaultB"),_("observationId"),J("mintDecimalsA"),J("mintDecimalsB"),Ge("tickSpacing"),$("liquidity"),$("sqrtPriceX64"),Le("tickCurrent"),Re(),$("feeGrowthGlobalX64A"),$("feeGrowthGlobalX64B"),S("protocolFeesTokenA"),S("protocolFeesTokenB"),$("swapInAmountTokenA"),$("swapOutAmountTokenB"),$("swapInAmountTokenB"),$("swapOutAmountTokenA"),J("status"),z(J(),7,""),z(Jo,3,"rewardInfos"),z(S(),16,"tickArrayBitmap"),S("totalFeesTokenA"),S("totalFeesClaimedTokenA"),S("totalFeesTokenB"),S("totalFeesClaimedTokenB"),S("fundFeesTokenA"),S("fundFeesTokenB"),S("startTime"),z(S(),15*4-3,"padding")]),$o=H([$("growthInsideLastX64"),S("rewardAmountOwed")]),Qi=H([me(8),J("bump"),_("nftMint"),_("poolId"),Le("tickLower"),Le("tickUpper"),$("liquidity"),$("feeGrowthInsideLastX64A"),$("feeGrowthInsideLastX64B"),S("tokenFeesOwedA"),S("tokenFeesOwedB"),z($o,3,"rewardInfos"),z(S(),8,"")]),jm=H([me(8),J("bump"),_("poolId"),Le("tickLowerIndex"),Le("tickUpperIndex"),$("liquidity"),$("feeGrowthInsideLastX64A"),$("feeGrowthInsideLastX64B"),S("tokenFeesOwedA"),S("tokenFeesOwedB"),z($(),3,"rewardGrowthInside"),z(S(),8,"")]),es=H([Le("tick"),Di("liquidityNet"),$("liquidityGross"),$("feeGrowthOutsideX64A"),$("feeGrowthOutsideX64B"),z($(),3,"rewardGrowthsOutsideX64"),z(Re(),13,"")]),Zi=H([me(8),_("poolId"),Le("startTickIndex"),z(es,rn,"ticks"),J("initializedTickCount"),z(J(),115,"")]),ts=H([me(329),z(_(),100,"whitelistMints")]),Zo=H([me(8),_("poolId"),z(z(S(),8),Un,"positiveTickArrayBitmap"),z(z(S(),8),Un,"negativeTickArrayBitmap")]),Ym=H([S(),J("bump"),_("owner"),_("poolId"),_("positionId"),_("nftAccount"),z(S(),8)]),ns=H([me(8),J("bump"),_("lockOwner"),_("poolId"),_("positionId"),_("nftAccount"),_("lockNftMint"),S("recentEpoch"),z(S(),8)]);$i.span;var fd=oe("Raydium_Clmm");var cs=oe("Raydium_cpmm"),Ze={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 er(n,e,t,i,r,o,s,a,c,u,l,m,d,p,b,f,y,P,A,k){let g=H([S("amountMaxA"),S("amountMaxB"),S("openTime")]),T=En(n,t,o,s).publicKey,h=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!r.equals(T),isWritable:!0},{pubkey:o,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:de.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:de.ASSOCIATED_TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:bi,isSigner:!1,isWritable:!1},{pubkey:Et,isSigner:!1,isWritable:!1}],x=Buffer.alloc(g.span);return g.encode({amountMaxA:P,amountMaxB:A,openTime:k},x),new se.TransactionInstruction({keys:h,programId:n,data:Buffer.from([...Ze.initialize,...x])})}function tr(n,e,t,i,r,o,s,a,c,u,l,m,d,p,b){let f=H([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:r,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:de.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:de.TOKEN_2022_PROGRAM_ID,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 cs.debug("cpmm deposit data",{lpAmount:d.toString(),amountMaxA:p.toString(),amountMaxB:b.toString()}),f.encode({lpAmount:d,amountMaxA:p,amountMaxB:b},P),new se.TransactionInstruction({keys:y,programId:n,data:Buffer.from([...Ze.deposit,...P])})}function nr(n,e,t,i,r,o,s,a,c,u,l,m,d,p,b){let f=H([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:r,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:de.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:de.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:Ft,isSigner:!1,isWritable:!1}],P=Buffer.alloc(f.span);return f.encode({lpAmount:d,amountMinA:p,amountMinB:b},P),new se.TransactionInstruction({keys:y,programId:n,data:Buffer.from([...Ze.withdraw,...P])})}function ir(n,e,t,i,r,o,s,a,c,u,l,m,d,p,b,f){let y=H([S("amountIn"),S("amounOutMin")]),P=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:o,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 se.TransactionInstruction({keys:P,programId:n,data:Buffer.from([...Ze.swapBaseInput,...A])})}function rr(n,e,t,i,r,o,s,a,c,u,l,m,d,p,b,f){let y=H([S("amountInMax"),S("amountOut")]),P=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:o,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 se.TransactionInstruction({keys:P,programId:n,data:Buffer.from([...Ze.swapBaseOutput,...A])})}async function or(n){var y;let{ownerInfo:e,poolInfo:t,poolKeys:i,feeNftOwner:r,getEphemeralSigners:o}=n,s=[],[a,c]=[new se.PublicKey(t.id),new se.PublicKey(t.lpMint.address)],u;if(o)u=new se.PublicKey((await o(1))[0]);else{let P=se.Keypair.generate();s.push(P),u=P.publicKey}let{publicKey:l}=ge(r,u,de.TOKEN_PROGRAM_ID),{publicKey:m}=Vn(u),{publicKey:d}=ht(n.lockProgram,u),{publicKey:p}=ge(e.wallet,c,de.TOKEN_PROGRAM_ID),{publicKey:b}=ge(n.lockAuthProgram,c,de.TOKEN_PROGRAM_ID),f=ls({programId:n.lockProgram,auth:n.lockAuthProgram,payer:e.feePayer,liquidityOwner:e.wallet,nftOwner:r,nftMint:u,nftAccount:l,poolId:a,lockPda:d,mintLp:c,userLpVault:p,lockLpVault:b,poolVaultA:new se.PublicKey(i.vault.A),poolVaultB:new se.PublicKey(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:[ue.CpmmLockLp],lookupTableAddress:[]}}function ls({programId:n,auth:e,payer:t,liquidityOwner:i,nftOwner:r,nftMint:o,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:r,isSigner:!1,isWritable:!1},{pubkey:o,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:Et,isSigner:!1,isWritable:!1},{pubkey:se.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:de.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:de.ASSOCIATED_TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:Qe,isSigner:!1,isWritable:!1}],A=H([S("lpAmount"),Xe("withMetadata")]),k=Buffer.alloc(A.span);A.encode({lpAmount:f,withMetadata:y},k);let g=Buffer.from([...Ze.lockCpLiquidity,...k]);return new se.TransactionInstruction({keys:P,programId:n,data:g})}function Xn({programId:n,nftOwner:e,auth:t,nftAccount:i,lockPda:r,poolId:o,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:r,isSigner:!1,isWritable:!0},{pubkey:f!=null?f:Ii,isSigner:!1,isWritable:!1},{pubkey:y!=null?y:Si,isSigner:!1,isWritable:!1},{pubkey:o,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:de.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:de.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:Ft,isSigner:!1,isWritable:!1}],A=H([S("lpFeeAmount")]),k=Buffer.alloc(A.span);A.encode({lpFeeAmount:b},k);let g=Buffer.from([...Ze.collectCpFee,...k]);return new se.TransactionInstruction({keys:P,programId:n,data:g})}var sr=H([me(8),J("bump"),Xe("disableCreatePool"),Ge("index"),S("tradeFeeRate"),S("protocolFeeRate"),S("fundFeeRate"),S("createPoolFee"),_("protocolOwner"),_("fundOwner"),z(S(),16)]),ar=H([me(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"),z(S(),32)]);var an=class extends it{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 qe(this.scope.connection,e.map(m=>({pubkey:new B.PublicKey(m)}))),r={},o=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=ar.decode(d.accountInfo.data);r[String(e[m])]=Y(U({},p),{programId:d.accountInfo.owner}),o.add(String(p.configId)),s.push(p.vaultA,p.vaultB)}let a={};if(t){let m=[...o],d=await qe(this.scope.connection,m.map(p=>({pubkey:new B.PublicKey(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]]=sr.decode(b.data)}}let c={},u=await qe(this.scope.connection,s.map(m=>({pubkey:new B.PublicKey(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 te.default(ee.AccountLayout.decode(d.data).amount.toString())}let l={};for(let[m,d]of Object.entries(r)){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]=Y(U({},d),{baseReserve:p,quoteReserve:b,vaultAAmount:c[d.vaultA.toString()],vaultBAmount:c[d.vaultB.toString()],configInfo:a[d.configId.toString()],poolPrice:new re(b.toString()).div(new re(10).pow(d.mintDecimalB)).div(new re(p.toString()).div(new re(10).pow(d.mintDecimalA)))})}return l}toComputePoolInfos({pools:e,mintInfos:t}){return Object.keys(e).reduce((i,r)=>{var c,u,l,m;let o=e[r],[s,a]=[o.mintA.toBase58(),o.mintB.toBase58()];return Y(U({},i),{[r]:Y(U({},o),{id:new B.PublicKey(r),configInfo:o.configInfo,version:7,authority:tn(o.programId).publicKey,mintA:He({address:s,decimals:o.mintDecimalA,programId:o.mintProgramA.toBase58(),extensions:{feeConfig:(c=t[s])!=null&&c.feeConfig?st((u=t[s])==null?void 0:u.feeConfig):void 0}}),mintB:He({address:a,decimals:o.mintDecimalB,programId:o.mintProgramB.toBase58(),extensions:{feeConfig:(l=t[a])!=null&&l.feeConfig?st((m=t[a])==null?void 0:m.feeConfig):void 0}})})})},{})}async getPoolInfoFromRpc(e){let t=await this.getRpcPoolInfo(e,!0),i=await Pn({connection:this.scope.connection,mints:[t.mintA,t.mintB]}),r=He({address:t.mintA.toBase58(),decimals:t.mintDecimalA,programId:t.mintProgramA.toBase58(),extensions:{feeConfig:i[t.mintA.toBase58()].feeConfig?st(i[t.mintA.toBase58()].feeConfig):void 0}}),o=He({address:t.mintB.toBase58(),decimals:t.mintDecimalB,programId:t.mintProgramB.toBase58(),extensions:{feeConfig:i[t.mintB.toBase58()].feeConfig?st(i[t.mintB.toBase58()].feeConfig):void 0}}),s=He({address:t.mintLp.toBase58(),decimals:t.lpDecimals,programId:ee.TOKEN_PROGRAM_ID.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:r,mintB:o,rewardDefaultInfos:[],rewardDefaultPoolInfos:"Ecosystem",price:t.poolPrice.toNumber(),mintAmountA:new re(t.vaultAAmount.toString()).div(10**r.decimals).toNumber(),mintAmountB:new re(t.vaultBAmount.toString()).div(10**o.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:r,mintB:o,openTime:t.openTime.toString(),vault:{A:t.vaultA.toBase58(),B:t.vaultB.toBase58()},authority:tn(t.programId).publicKey.toBase58(),mintLp:s,config:a,observationId:Tt(t.programId,new B.PublicKey(e)).publicKey.toBase58()},rpcData:t}}async createPool(b){var f=b,{poolId:e,programId:t,poolFeeAccount:i,startTime:r,ownerInfo:o,associatedOnly:s=!1,checkCreateATAOwner:a=!1,txVersion:c,feeConfig:u,computeBudgetConfig:l,txTipConfig:m,feePayer:d}=f,p=Ke(f,["poolId","programId","poolFeeAccount","startTime","ownerInfo","associatedOnly","checkCreateATAOwner","txVersion","feeConfig","computeBudgetConfig","txTipConfig","feePayer"]);var F,ne,Pe;let y=o.feePayer||((F=this.scope.owner)==null?void 0:F.publicKey),P=new te.default(new B.PublicKey(p.mintA.address).toBuffer()).lte(new te.default(new B.PublicKey(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=o.useSOLBalance&&A.address===ee.NATIVE_MINT.toBase58(),x=o.useSOLBalance&&k.address===ee.NATIVE_MINT.toBase58(),[I,R]=[new B.PublicKey(A.address),new B.PublicKey(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.PublicKey(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=_i({poolId:e,programId:t,configId:new B.PublicKey(u.id),mintA:I,mintB:R});return K.addInstruction({instructions:[er(t,this.scope.ownerPubKey,new B.PublicKey(u.id),D.authority,D.poolId,I,R,D.lpMint,C,W,ge(this.scope.ownerPubKey,D.lpMint).publicKey,D.vaultA,D.vaultB,i,new B.PublicKey((ne=A.programId)!=null?ne:ee.TOKEN_PROGRAM_ID),new B.PublicKey((Pe=k.programId)!=null?Pe:ee.TOKEN_PROGRAM_ID),D.observationId,g,T,r)],instructionTypes:[ue.CpmmCreatePool]}),K.addCustomComputeBudget(l),K.addTipInstruction(m),K.versionBuild({txVersion:c,extInfo:{address:Y(U({},D),{mintA:A,mintB:k,programId:t,poolFeeAccount:i,feeConfig:u})}})}async addLiquidity(e){let{poolInfo:t,poolKeys:i,inputAmount:r,baseIn:o,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"),r.isZero()&&this.logAndCreateError("amounts must greater than zero","amountInA",{amountInA:r.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:Y(U({},t),{lpAmount:new re(y.lpAmount.toString()).div(10**t.lpMint.decimals).toNumber()}),baseReserve:y.baseReserve,quoteReserve:y.quoteReserve,slippage:new ye(0),baseIn:o,epochInfo:await this.scope.fetchEpochInfo(),amount:new re(r.toString()).div(10**(o?t.mintA.decimals:t.mintB.decimals))}),g=k.amount,T=t.mintA.address===ee.NATIVE_MINT.toString(),h=t.mintB.address===ee.NATIVE_MINT.toString(),x=this.createTxBuilder(d),[I,R]=[new B.PublicKey(t.mintA.address),new B.PublicKey(t.mintB.address)],{account:K,instructionParams:C}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new B.PublicKey(t.mintA.address),owner:this.scope.ownerPubKey,createInfo:T||(o?r:g).isZero()?{payer:this.scope.ownerPubKey,amount:o?r: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.PublicKey(t.mintB.address),owner:this.scope.ownerPubKey,createInfo:h||(o?g:r).isZero()?{payer:this.scope.ownerPubKey,amount:o?g:r}: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.PublicKey(t.lpMint.address)}),Ve=await p.handleTokenAccount({side:"out",amount:0,mint:new B.PublicKey(t.lpMint.address),tokenAccount:q,bypassAssociatedCheck:b,checkCreateATAOwner:f}),{tokenAccount:D}=Ve,F=Ke(Ve,["tokenAccount"]);x.addInstruction(F);let ne=i!=null?i:await this.getCpmmPoolKeys(t.id),Pe=new ye(new te.default(1)).sub(s);return x.addInstruction({instructions:[tr(new B.PublicKey(t.programId),this.scope.ownerPubKey,new B.PublicKey(ne.authority),new B.PublicKey(t.id),D,K,N,new B.PublicKey(ne.vault.A),new B.PublicKey(ne.vault.B),I,R,new B.PublicKey(t.lpMint.address),a?a==null?void 0:a.liquidity:Pe.mul(P).quotient,o?A.amount:g,o?g:A.amount)],instructionTypes:[ue.CpmmAddLiquidity],lookupTableAddress:ne.lookupTableAccount?[ne.lookupTableAccount]:[]}),x.addCustomComputeBudget(c),x.addTipInstruction(u),x.versionBuild({txVersion:m})}async withdrawLiquidity(e){var F,ne;let{poolInfo:t,poolKeys:i,lpAmount:r,slippage:o,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 ye(new te.default(1)).sub(o),d=await this.getRpcPoolInfo(t.id),[p,b]=[m.mul(r.mul(d.baseReserve).div(d.lpAmount)).quotient,m.mul(r.mul(d.quoteReserve).div(d.lpAmount)).quotient],f=await this.scope.fetchEpochInfo(),[y,P]=[Se(p,t.mintA.extensions.feeConfig,f,!1),Se(b,t.mintB.extensions.feeConfig,f,!1)],{account:A}=this.scope,k=this.createTxBuilder(u),[g,T]=[new B.PublicKey(t.mintA.address),new B.PublicKey(t.mintB.address)],h=g.equals(fe),x=T.equals(fe),I,R,{account:K,instructionParams:C}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new B.PublicKey(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.PublicKey(t.mintB.address),notUseTokenAccount:x,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!(x&&l),associatedOnly:!x,checkCreateATAOwner:!1});R=N,W&&k.addInstruction(W),(!I||!R)&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",A.tokenAccounts);let q=await A.getCreatedTokenAccount({mint:new B.PublicKey(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:[nr(new B.PublicKey(t.programId),this.scope.ownerPubKey,new B.PublicKey(D.authority),new B.PublicKey(t.id),q,I,R,new B.PublicKey(D.vault.A),new B.PublicKey(D.vault.B),g,T,new B.PublicKey(t.lpMint.address),r,p.sub((F=y.fee)!=null?F:new te.default(0)),b.sub((ne=P.fee)!=null?ne:new te.default(0)))],instructionTypes:[ue.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:r,fixedOut:o,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.PublicKey(t.mintA.address),new B.PublicKey(t.mintB.address)];o?a.sourceAmountSwapped=a.sourceAmountSwapped.mul(new te.default((1+c)*1e4)).div(new te.default(1e4)):a.destinationAmountSwapped=a.destinationAmountSwapped.mul(new te.default((1-c)*1e4)).div(new te.default(1e4));let g=t.mintA.address===fe.toBase58(),T=t.mintB.address===fe.toBase58(),{account:h,instructionParams:x}=await this.scope.account.getOrCreateTokenAccount({mint:A,tokenProgram:new B.PublicKey((C=t.mintA.programId)!=null?C:ee.TOKEN_PROGRAM_ID),owner:this.scope.ownerPubKey,createInfo:g||!r?{payer:this.scope.ownerPubKey,amount:r?a.sourceAmountSwapped:0}:void 0,notUseTokenAccount:g,skipCloseAccount:!g,associatedOnly:g?!1:y,checkCreateATAOwner:f});x&&P.addInstruction(x);let{account:I,instructionParams:R}=await this.scope.account.getOrCreateTokenAccount({mint:k,tokenProgram:new B.PublicKey((N=t.mintB.programId)!=null?N:ee.TOKEN_PROGRAM_ID),owner:this.scope.ownerPubKey,createInfo:T||r?{payer:this.scope.ownerPubKey,amount:r?0:a.sourceAmountSwapped}:void 0,notUseTokenAccount:T,skipCloseAccount:!T,associatedOnly:T?!1:y,checkCreateATAOwner:f});R&&P.addInstruction(R),(!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:[o?rr(new B.PublicKey(t.programId),this.scope.ownerPubKey,new B.PublicKey(K.authority),new B.PublicKey(K.config.id),new B.PublicKey(t.id),r?h:I,r?I:h,new B.PublicKey(K.vault[r?"A":"B"]),new B.PublicKey(K.vault[r?"B":"A"]),new B.PublicKey((D=t[r?"mintA":"mintB"].programId)!=null?D:ee.TOKEN_PROGRAM_ID),new B.PublicKey((F=t[r?"mintB":"mintA"].programId)!=null?F:ee.TOKEN_PROGRAM_ID),r?A:k,r?k:A,Tt(new B.PublicKey(t.programId),new B.PublicKey(t.id)).publicKey,a.sourceAmountSwapped,a.destinationAmountSwapped):ir(new B.PublicKey(t.programId),this.scope.ownerPubKey,new B.PublicKey(K.authority),new B.PublicKey(K.config.id),new B.PublicKey(t.id),r?h:I,r?I:h,new B.PublicKey(K.vault[r?"A":"B"]),new B.PublicKey(K.vault[r?"B":"A"]),new B.PublicKey((W=t[r?"mintA":"mintB"].programId)!=null?W:ee.TOKEN_PROGRAM_ID),new B.PublicKey((q=t[r?"mintB":"mintA"].programId)!=null?q:ee.TOKEN_PROGRAM_ID),r?A:k,r?k:A,Tt(new B.PublicKey(t.programId),new B.PublicKey(t.id)).publicKey,s,a.destinationAmountSwapped)],instructionTypes:[o?ue.CpmmSwapBaseOut:ue.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:r,txTipConfig:o,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 or({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:Ut,lockAuthProgram:(f=e.authProgram)!=null?f:Gt,lpAmount:i,withMetadata:(y=e.withMetadata)!=null?y:!0,getEphemeralSigners:e.getEphemeralSigners});return u.addInstruction(m),u.addCustomComputeBudget(r),u.addTipInstruction(o),u.versionBuild({txVersion:s,extInfo:m.address})}async harvestLockLp(e){var N;let{poolInfo:t,lpFeeAmount:i,nftMint:r,programId:o=Ut,authProgram:s=Gt,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.PublicKey(t.mintA.address),new B.PublicKey(t.mintB.address)],y=b.equals(fe),P=f.equals(fe),A,k,{account:g,instructionParams:T}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new B.PublicKey(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.PublicKey(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:R}=ge(d,r,ee.TOKEN_PROGRAM_ID),{publicKey:K}=ht(o,r),{publicKey:C}=ge(s,new B.PublicKey(t.lpMint.address),ee.TOKEN_PROGRAM_ID);return p.addInstruction({instructions:[Xn({programId:o,nftOwner:this.scope.ownerPubKey,auth:s,nftMint:r,nftAccount:R,lockPda:K,poolId:new B.PublicKey(t.id),mintLp:new B.PublicKey(I.mintLp.address),userVaultA:A,userVaultB:k,poolVaultA:new B.PublicKey(I.vault.A),poolVaultB:new B.PublicKey(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:[ue.CpmmCollectLockFee]}),p.addCustomComputeBudget(c),p.addTipInstruction(u),p.versionBuild({txVersion:l})}async harvestMultiLockLp(e){let{lockInfo:t,programId:i=Ut,authProgram:r=Gt,cpmmProgram:o,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.PublicKey(p.mintA.address),new B.PublicKey(p.mintB.address)],A=y.equals(fe),k=P.equals(fe),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.PublicKey(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.PublicKey(p.mintA.address);g=this.scope.account.getAssociatedTokenAccount(C,new B.PublicKey(p.mintA.programId)),l.addInstruction({instructions:[(0,ee.createAssociatedTokenAccountIdempotentInstruction)(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.PublicKey(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.PublicKey(p.mintB.address);T=this.scope.account.getAssociatedTokenAccount(C,new B.PublicKey(p.mintB.programId)),l.addInstruction({instructions:[(0,ee.createAssociatedTokenAccountIdempotentInstruction)(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}=ge(u,f,ee.TOKEN_PROGRAM_ID),{publicKey:I}=ht(i,f),{publicKey:R}=ge(r,new B.PublicKey(p.lpMint.address),ee.TOKEN_PROGRAM_ID);l.addInstruction({instructions:[Xn({programId:i,nftOwner:this.scope.ownerPubKey,auth:r,nftMint:f,nftAccount:x,lockPda:I,poolId:new B.PublicKey(p.id),mintLp:new B.PublicKey(h.mintLp.address),userVaultA:g,userVaultB:T,poolVaultA:new B.PublicKey(h.vault.A),poolVaultB:new B.PublicKey(h.vault.B),mintA:y,mintB:P,lockLpVault:R,lpFeeAmount:b,cpmmProgram:o==null?void 0:o.programId,cpmmAuthProgram:o==null?void 0:o.authProgram})],instructionTypes:[ue.CpmmCollectLockFee]})}),a===0?l.sizeCheckBuildV0({computeBudgetConfig:s}):l.sizeCheckBuild({computeBudgetConfig:s})}computeSwapAmount({pool:e,amountIn:t,outputMint:i,slippage:r}){let o=i.toString()===e.mintB.address,s=$t.swap(t,o?e.baseReserve:e.quoteReserve,o?e.quoteReserve:e.baseReserve,e.configInfo.tradeFeeRate),a=new re(s.destinationAmountSwapped.toString()).div(s.sourceAmountSwapped.toString()),c=s.destinationAmountSwapped.mul(new te.default((1-r)*1e4)).div(new te.default(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:r,slippage:o,epochInfo:s,baseIn:a}){var g,T,h,x,I,R,K,C,N;let c=1-Number(o.toSignificant())/100,u=new te.default(new re(r).mul(10**e[a?"mintA":"mintB"].decimals).mul(c).toFixed(0)),l=Se(u,e[a?"mintA":"mintB"].extensions.feeConfig,s,!1),m=u.sub((g=l.fee)!=null?g:new te.default(0)),d=new te.default(new re(e.lpAmount).mul(10**e.lpMint.decimals).toFixed(0,re.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:",`${o.toSignificant()}%`);let p=a?"base":"quote";this.logDebug("input side:",p);let b=m.mul(d).div(p==="base"?t:i),f={amount:Cn,fee:void 0,expirationTime:void 0};if(!m.isZero()){let W=ms(b,t,i,d);this.logDebug("lpAmountData:",{amountA:W.amountA.toString(),amountB:W.amountB.toString()}),f=Se(W[a?"amountB":"amountA"],e[a?"mintB":"mintA"].extensions.feeConfig,s,!0)}let y=new ye(new te.default(1)).add(o),P=new ye(new te.default(1)).sub(o),A=Se(y.mul(f.amount.sub((x=f.fee)!=null?x:new te.default(0))).quotient,e[a?"mintB":"mintA"].extensions.feeConfig,s,!0),k=Se(P.mul(f.amount.sub((I=f.fee)!=null?I:new te.default(0))).quotient,e[a?"mintB":"mintA"].extensions.feeConfig,s,!0);return this.logDebug("anotherAmount:",f.amount.toString(),"anotherAmountFee:",(K=(R=f.fee)==null?void 0:R.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 ms(n,e,t,i){let r=n.mul(e).div(i);!r.isZero()&&!n.mul(e).mod(i).isZero()&&(r=r.add(new te.default(1)));let o=n.mul(t).div(i);return!o.isZero()&&!n.mul(t).mod(i).isZero()&&(o=o.add(new te.default(1))),{amountA:r,amountB:o}}0&&(module.exports={});
2
2
  //# sourceMappingURL=cpmm.js.map