@raydium-io/raydium-sdk-v2 0.1.44-alpha → 0.1.45-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 (106) hide show
  1. package/lib/api/api.d.ts +1 -1
  2. package/lib/api/index.d.ts +1 -1
  3. package/lib/api/type.d.ts +1 -1
  4. package/lib/common/accountInfo.d.ts +1 -1
  5. package/lib/common/bignumber.d.ts +1 -1
  6. package/lib/common/fractionUtil.d.ts +1 -1
  7. package/lib/common/index.d.ts +1 -1
  8. package/lib/common/transfer.d.ts +1 -1
  9. package/lib/common/txTool/txTool.d.ts +1 -1
  10. package/lib/common/txTool/txUtils.d.ts +1 -1
  11. package/lib/common/utility.d.ts +1 -1
  12. package/lib/index.d.ts +3 -3
  13. package/lib/index.js +1 -1
  14. package/lib/index.js.map +1 -1
  15. package/lib/index.mjs +1 -1
  16. package/lib/index.mjs.map +1 -1
  17. package/lib/module/amount.d.ts +1 -1
  18. package/lib/module/fraction.d.ts +1 -1
  19. package/lib/module/index.d.ts +1 -1
  20. package/lib/module/percent.d.ts +1 -1
  21. package/lib/module/price.d.ts +1 -1
  22. package/lib/raydium/account/account.d.ts +3 -3
  23. package/lib/raydium/account/index.d.ts +1 -1
  24. package/lib/raydium/account/instruction.d.ts +1 -1
  25. package/lib/raydium/account/types.d.ts +1 -1
  26. package/lib/raydium/account/util.d.ts +1 -1
  27. package/lib/raydium/clmm/clmm.d.ts +3 -3
  28. package/lib/raydium/clmm/index.d.ts +3 -3
  29. package/lib/raydium/clmm/instrument.d.ts +2 -2
  30. package/lib/raydium/clmm/layout.d.ts +1 -1
  31. package/lib/raydium/clmm/type.d.ts +2 -2
  32. package/lib/raydium/clmm/utils/math.d.ts +2 -2
  33. package/lib/raydium/clmm/utils/pool.d.ts +2 -2
  34. package/lib/raydium/clmm/utils/position.d.ts +2 -2
  35. package/lib/raydium/clmm/utils/tick.d.ts +2 -2
  36. package/lib/raydium/clmm/utils/tickQuery.d.ts +2 -2
  37. package/lib/raydium/clmm/utils/tickarrayBitmap.d.ts +2 -2
  38. package/lib/raydium/cpmm/cpmm.d.ts +3 -3
  39. package/lib/raydium/cpmm/cpmm.js +1 -1
  40. package/lib/raydium/cpmm/cpmm.js.map +1 -1
  41. package/lib/raydium/cpmm/cpmm.mjs +1 -1
  42. package/lib/raydium/cpmm/cpmm.mjs.map +1 -1
  43. package/lib/raydium/cpmm/index.d.ts +1 -1
  44. package/lib/raydium/cpmm/layout.d.ts +1 -1
  45. package/lib/raydium/cpmm/type.d.ts +2 -1
  46. package/lib/raydium/cpmm/type.js.map +1 -1
  47. package/lib/raydium/farm/config.d.ts +1 -1
  48. package/lib/raydium/farm/farm.d.ts +3 -3
  49. package/lib/raydium/farm/index.d.ts +1 -1
  50. package/lib/raydium/farm/instruction.d.ts +1 -1
  51. package/lib/raydium/farm/layout.d.ts +1 -1
  52. package/lib/raydium/farm/type.d.ts +1 -1
  53. package/lib/raydium/farm/util.d.ts +1 -1
  54. package/lib/raydium/ido/ido.d.ts +3 -3
  55. package/lib/raydium/ido/index.d.ts +3 -3
  56. package/lib/raydium/ido/instruction.d.ts +1 -1
  57. package/lib/raydium/ido/type.d.ts +1 -1
  58. package/lib/raydium/index.d.ts +3 -3
  59. package/lib/raydium/index.js +1 -1
  60. package/lib/raydium/index.js.map +1 -1
  61. package/lib/raydium/index.mjs +1 -1
  62. package/lib/raydium/index.mjs.map +1 -1
  63. package/lib/raydium/liquidity/index.d.ts +1 -1
  64. package/lib/raydium/liquidity/instruction.d.ts +1 -1
  65. package/lib/raydium/liquidity/layout.d.ts +6 -6
  66. package/lib/raydium/liquidity/liquidity.d.ts +3 -3
  67. package/lib/raydium/liquidity/type.d.ts +1 -1
  68. package/lib/raydium/liquidity/utils.d.ts +1 -1
  69. package/lib/raydium/marketV2/createMarket.d.ts +3 -3
  70. package/lib/raydium/marketV2/createMarket.js.map +1 -1
  71. package/lib/raydium/marketV2/createMarket.mjs.map +1 -1
  72. package/lib/raydium/marketV2/index.d.ts +3 -3
  73. package/lib/raydium/marketV2/index.js.map +1 -1
  74. package/lib/raydium/marketV2/index.mjs.map +1 -1
  75. package/lib/raydium/moduleBase.d.ts +3 -3
  76. package/lib/raydium/raydium.d.ts +3 -3
  77. package/lib/raydium/raydium.js +1 -1
  78. package/lib/raydium/raydium.js.map +1 -1
  79. package/lib/raydium/raydium.mjs +1 -1
  80. package/lib/raydium/raydium.mjs.map +1 -1
  81. package/lib/raydium/token/constant.d.ts +1 -1
  82. package/lib/raydium/token/index.d.ts +1 -1
  83. package/lib/raydium/token/token.d.ts +3 -3
  84. package/lib/raydium/token/type.d.ts +1 -1
  85. package/lib/raydium/token/utils.d.ts +1 -1
  86. package/lib/raydium/tradeV2/index.d.ts +2 -2
  87. package/lib/raydium/tradeV2/index.js.map +1 -1
  88. package/lib/raydium/tradeV2/index.mjs.map +1 -1
  89. package/lib/raydium/tradeV2/instrument.d.ts +2 -2
  90. package/lib/raydium/tradeV2/trade.d.ts +3 -3
  91. package/lib/raydium/tradeV2/trade.js +1 -1
  92. package/lib/raydium/tradeV2/trade.js.map +1 -1
  93. package/lib/raydium/tradeV2/trade.mjs +1 -1
  94. package/lib/raydium/tradeV2/trade.mjs.map +1 -1
  95. package/lib/raydium/tradeV2/type.d.ts +2 -2
  96. package/lib/raydium/type.d.ts +1 -1
  97. package/lib/raydium/utils1216/index.d.ts +3 -3
  98. package/lib/raydium/utils1216/utils1216.d.ts +3 -3
  99. package/lib/{raydium-026a0a95.d.ts → raydium-15ed5dcf.d.ts} +3 -3
  100. package/lib/{type-c1771287.d.ts → type-b868e5e7.d.ts} +1 -1
  101. package/package.json +1 -1
  102. package/src/raydium/cpmm/cpmm.ts +2 -1
  103. package/src/raydium/cpmm/type.ts +1 -0
  104. package/src/raydium/marketV2/createMarket.ts +2 -2
  105. package/src/raydium/tradeV2/trade.ts +4 -4
  106. package/lib/{api-51b11f0d.d.ts → api-00b0713a.d.ts} +5 -5
@@ -1,2 +1,2 @@
1
- var er=Object.defineProperty,tr=Object.defineProperties;var nr=Object.getOwnPropertyDescriptors;var ze=Object.getOwnPropertySymbols;var Qt=Object.prototype.hasOwnProperty,$t=Object.prototype.propertyIsEnumerable;var Xt=(n,t,e)=>t in n?er(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,D=(n,t)=>{for(var e in t||(t={}))Qt.call(t,e)&&Xt(n,e,t[e]);if(ze)for(var e of ze(t))$t.call(t,e)&&Xt(n,e,t[e]);return n},G=(n,t)=>tr(n,nr(t));var ce=(n,t)=>{var e={};for(var r in n)Qt.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&ze)for(var r of ze(n))t.indexOf(r)<0&&$t.call(n,r)&&(e[r]=n[r]);return e};import{PublicKey as S}from"@solana/web3.js";import{NATIVE_MINT as ht,TOKEN_PROGRAM_ID as Ae,AccountLayout as Ji}from"@solana/spl-token";import li from"big.js";import Os from"bn.js";import te from"bn.js";var xe=9e15,be=1e9,bt="0123456789abcdef",Ze="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Ye="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",yt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-xe,maxE:xe,crypto:!1},rn,le,C=!0,Xe="[DecimalError] ",he=Xe+"Invalid argument: ",on=Xe+"Precision limit exceeded",sn=Xe+"crypto unavailable",an="[object Decimal]",Z=Math.floor,H=Math.pow,rr=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,ir=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,or=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,un=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,re=1e7,k=7,sr=9007199254740991,ar=Ze.length-1,wt=Ye.length-1,g={toStringTag:an};g.absoluteValue=g.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),x(n)};g.ceil=function(){return x(new this.constructor(this),this.e+1,2)};g.clampedTo=g.clamp=function(n,t){var e,r=this,i=r.constructor;if(n=new i(n),t=new i(t),!n.s||!t.s)return new i(NaN);if(n.gt(t))throw Error(he+t);return e=r.cmp(n),e<0?n:r.cmp(t)>0?t:new i(r)};g.comparedTo=g.cmp=function(n){var t,e,r,i,o=this,s=o.d,a=(n=new o.constructor(n)).d,u=o.s,c=n.s;if(!s||!a)return!u||!c?NaN:u!==c?u:s===a?0:!s^u<0?1:-1;if(!s[0]||!a[0])return s[0]?u:a[0]?-c:0;if(u!==c)return u;if(o.e!==n.e)return o.e>n.e^u<0?1:-1;for(r=s.length,i=a.length,t=0,e=r<i?r:i;t<e;++t)if(s[t]!==a[t])return s[t]>a[t]^u<0?1:-1;return r===i?0:r>i^u<0?1:-1};g.cosine=g.cos=function(){var n,t,e=this,r=e.constructor;return e.d?e.d[0]?(n=r.precision,t=r.rounding,r.precision=n+Math.max(e.e,e.sd())+k,r.rounding=1,e=ur(r,pn(r,e)),r.precision=n,r.rounding=t,x(le==2||le==3?e.neg():e,n,t,!0)):new r(1):new r(NaN)};g.cubeRoot=g.cbrt=function(){var n,t,e,r,i,o,s,a,u,c,m=this,l=m.constructor;if(!m.isFinite()||m.isZero())return new l(m);for(C=!1,o=m.s*H(m.s*m,1/3),!o||Math.abs(o)==1/0?(e=j(m.d),n=m.e,(o=(n-e.length+1)%3)&&(e+=o==1||o==-2?"0":"00"),o=H(e,1/3),n=Z((n+1)/3)-(n%3==(n<0?-1:2)),o==1/0?e="5e"+n:(e=o.toExponential(),e=e.slice(0,e.indexOf("e")+1)+n),r=new l(e),r.s=m.s):r=new l(o.toString()),s=(n=l.precision)+3;;)if(a=r,u=a.times(a).times(a),c=u.plus(m),r=O(c.plus(m).times(a),c.plus(u),s+2,1),j(a.d).slice(0,s)===(e=j(r.d)).slice(0,s))if(e=e.slice(s-3,s+1),e=="9999"||!i&&e=="4999"){if(!i&&(x(a,n+1,0),a.times(a).times(a).eq(m))){r=a;break}s+=4,i=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(x(r,n+1,1),t=!r.times(r).times(r).eq(m));break}return C=!0,x(r,n,l.rounding,t)};g.decimalPlaces=g.dp=function(){var n,t=this.d,e=NaN;if(t){if(n=t.length-1,e=(n-Z(this.e/k))*k,n=t[n],n)for(;n%10==0;n/=10)e--;e<0&&(e=0)}return e};g.dividedBy=g.div=function(n){return O(this,new this.constructor(n))};g.dividedToIntegerBy=g.divToInt=function(n){var t=this,e=t.constructor;return x(O(t,new e(n),0,1,1),e.precision,e.rounding)};g.equals=g.eq=function(n){return this.cmp(n)===0};g.floor=function(){return x(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 t=this.cmp(n);return t==1||t===0};g.hyperbolicCosine=g.cosh=function(){var n,t,e,r,i,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;e=s.precision,r=s.rounding,s.precision=e+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(n=Math.ceil(i/3),t=(1/$e(4,n)).toString()):(n=16,t="2.3283064365386962890625e-10"),o=Be(s,1,o.times(t),new s(1),!0);for(var u,c=n,m=new s(8);c--;)u=o.times(o),o=a.minus(u.times(m.minus(u.times(m))));return x(o,s.precision=e,s.rounding=r,!0)};g.hyperbolicSine=g.sinh=function(){var n,t,e,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,e=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=Be(o,2,i,i,!0);else{n=1.4*Math.sqrt(r),n=n>16?16:n|0,i=i.times(1/$e(5,n)),i=Be(o,2,i,i,!0);for(var s,a=new o(5),u=new o(16),c=new o(20);n--;)s=i.times(i),i=i.times(a.plus(s.times(u.times(s).plus(c))))}return o.precision=t,o.rounding=e,x(i,t,e,!0)};g.hyperbolicTangent=g.tanh=function(){var n,t,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(n=r.precision,t=r.rounding,r.precision=n+7,r.rounding=1,O(e.sinh(),e.cosh(),r.precision=n,r.rounding=t)):new r(e.s)};g.inverseCosine=g.acos=function(){var n,t=this,e=t.constructor,r=t.abs().cmp(1),i=e.precision,o=e.rounding;return r!==-1?r===0?t.isNeg()?ne(e,i,o):new e(0):new e(NaN):t.isZero()?ne(e,i+4,o).times(.5):(e.precision=i+6,e.rounding=1,t=t.asin(),n=ne(e,i+4,o).times(.5),e.precision=i,e.rounding=o,n.minus(t))};g.inverseHyperbolicCosine=g.acosh=function(){var n,t,e=this,r=e.constructor;return e.lte(1)?new r(e.eq(1)?0:NaN):e.isFinite()?(n=r.precision,t=r.rounding,r.precision=n+Math.max(Math.abs(e.e),e.sd())+4,r.rounding=1,C=!1,e=e.times(e).minus(1).sqrt().plus(e),C=!0,r.precision=n,r.rounding=t,e.ln()):new r(e)};g.inverseHyperbolicSine=g.asinh=function(){var n,t,e=this,r=e.constructor;return!e.isFinite()||e.isZero()?new r(e):(n=r.precision,t=r.rounding,r.precision=n+2*Math.max(Math.abs(e.e),e.sd())+6,r.rounding=1,C=!1,e=e.times(e).plus(1).sqrt().plus(e),C=!0,r.precision=n,r.rounding=t,e.ln())};g.inverseHyperbolicTangent=g.atanh=function(){var n,t,e,r,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(n=o.precision,t=o.rounding,r=i.sd(),Math.max(r,n)<2*-i.e-1?x(new o(i),n,t,!0):(o.precision=e=r-i.e,i=O(i.plus(1),new o(1).minus(i),e+n,1),o.precision=n+4,o.rounding=1,i=i.ln(),o.precision=n,o.rounding=t,i.times(.5))):new o(NaN)};g.inverseSine=g.asin=function(){var n,t,e,r,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),e=o.precision,r=o.rounding,t!==-1?t===0?(n=ne(o,e+4,r).times(.5),n.s=i.s,n):new o(NaN):(o.precision=e+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=e,o.rounding=r,i.times(2)))};g.inverseTangent=g.atan=function(){var n,t,e,r,i,o,s,a,u,c=this,m=c.constructor,l=m.precision,f=m.rounding;if(c.isFinite()){if(c.isZero())return new m(c);if(c.abs().eq(1)&&l+4<=wt)return s=ne(m,l+4,f).times(.25),s.s=c.s,s}else{if(!c.s)return new m(NaN);if(l+4<=wt)return s=ne(m,l+4,f).times(.5),s.s=c.s,s}for(m.precision=a=l+10,m.rounding=1,e=Math.min(28,a/k+2|0),n=e;n;--n)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(C=!1,t=Math.ceil(a/k),r=1,u=c.times(c),s=new m(c),i=c;n!==-1;)if(i=i.times(u),o=s.minus(i.div(r+=2)),i=i.times(u),s=o.plus(i.div(r+=2)),s.d[t]!==void 0)for(n=t;s.d[n]===o.d[n]&&n--;);return e&&(s=s.times(2<<e-1)),C=!0,x(s,m.precision=l,m.rounding=f,!0)};g.isFinite=function(){return!!this.d};g.isInteger=g.isInt=function(){return!!this.d&&Z(this.e/k)>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 t,e,r,i,o,s,a,u,c=this,m=c.constructor,l=m.precision,f=m.rounding,p=5;if(n==null)n=new m(10),t=!0;else{if(n=new m(n),e=n.d,n.s<0||!e||!e[0]||n.eq(1))return new m(NaN);t=n.eq(10)}if(e=c.d,c.s<0||!e||!e[0]||c.eq(1))return new m(e&&!e[0]?-1/0:c.s!=1?NaN:e?0:1/0);if(t)if(e.length>1)o=!0;else{for(i=e[0];i%10===0;)i/=10;o=i!==1}if(C=!1,a=l+p,s=ge(c,a),r=t?Je(m,a+10):ge(n,a),u=O(s,r,a,1),Le(u.d,i=l,f))do if(a+=10,s=ge(c,a),r=t?Je(m,a+10):ge(n,a),u=O(s,r,a,1),!o){+j(u.d).slice(i+1,i+15)+1==1e14&&(u=x(u,l+1,0));break}while(Le(u.d,i+=10,f));return C=!0,x(u,l,f)};g.minus=g.sub=function(n){var t,e,r,i,o,s,a,u,c,m,l,f,p=this,h=p.constructor;if(n=new h(n),!p.d||!n.d)return!p.s||!n.s?n=new h(NaN):p.d?n.s=-n.s:n=new h(n.d||p.s!==n.s?p:NaN),n;if(p.s!=n.s)return n.s=-n.s,p.plus(n);if(c=p.d,f=n.d,a=h.precision,u=h.rounding,!c[0]||!f[0]){if(f[0])n.s=-n.s;else if(c[0])n=new h(p);else return new h(u===3?-0:0);return C?x(n,a,u):n}if(e=Z(n.e/k),m=Z(p.e/k),c=c.slice(),o=m-e,o){for(l=o<0,l?(t=c,o=-o,s=f.length):(t=f,e=m,s=c.length),r=Math.max(Math.ceil(a/k),s)+2,o>r&&(o=r,t.length=1),t.reverse(),r=o;r--;)t.push(0);t.reverse()}else{for(r=c.length,s=f.length,l=r<s,l&&(s=r),r=0;r<s;r++)if(c[r]!=f[r]){l=c[r]<f[r];break}o=0}for(l&&(t=c,c=f,f=t,n.s=-n.s),s=c.length,r=f.length-s;r>0;--r)c[s++]=0;for(r=f.length;r>o;){if(c[--r]<f[r]){for(i=r;i&&c[--i]===0;)c[i]=re-1;--c[i],c[r]+=re}c[r]-=f[r]}for(;c[--s]===0;)c.pop();for(;c[0]===0;c.shift())--e;return c[0]?(n.d=c,n.e=Qe(c,e),C?x(n,a,u):n):new h(u===3?-0:0)};g.modulo=g.mod=function(n){var t,e=this,r=e.constructor;return n=new r(n),!e.d||!n.s||n.d&&!n.d[0]?new r(NaN):!n.d||e.d&&!e.d[0]?x(new r(e),r.precision,r.rounding):(C=!1,r.modulo==9?(t=O(e,n.abs(),0,3,1),t.s*=n.s):t=O(e,n,0,r.modulo,1),t=t.times(n),C=!0,e.minus(t))};g.naturalExponential=g.exp=function(){return Pt(this)};g.naturalLogarithm=g.ln=function(){return ge(this)};g.negated=g.neg=function(){var n=new this.constructor(this);return n.s=-n.s,x(n)};g.plus=g.add=function(n){var t,e,r,i,o,s,a,u,c,m,l=this,f=l.constructor;if(n=new f(n),!l.d||!n.d)return!l.s||!n.s?n=new f(NaN):l.d||(n=new f(n.d||l.s===n.s?l:NaN)),n;if(l.s!=n.s)return n.s=-n.s,l.minus(n);if(c=l.d,m=n.d,a=f.precision,u=f.rounding,!c[0]||!m[0])return m[0]||(n=new f(l)),C?x(n,a,u):n;if(o=Z(l.e/k),r=Z(n.e/k),c=c.slice(),i=o-r,i){for(i<0?(e=c,i=-i,s=m.length):(e=m,r=o,s=c.length),o=Math.ceil(a/k),s=o>s?o+1:s+1,i>s&&(i=s,e.length=1),e.reverse();i--;)e.push(0);e.reverse()}for(s=c.length,i=m.length,s-i<0&&(i=s,e=m,m=c,c=e),t=0;i;)t=(c[--i]=c[i]+m[i]+t)/re|0,c[i]%=re;for(t&&(c.unshift(t),++r),s=c.length;c[--s]==0;)c.pop();return n.d=c,n.e=Qe(c,r),C?x(n,a,u):n};g.precision=g.sd=function(n){var t,e=this;if(n!==void 0&&n!==!!n&&n!==1&&n!==0)throw Error(he+n);return e.d?(t=cn(e.d),n&&e.e+1>t&&(t=e.e+1)):t=NaN,t};g.round=function(){var n=this,t=n.constructor;return x(new t(n),n.e+1,t.rounding)};g.sine=g.sin=function(){var n,t,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(n=r.precision,t=r.rounding,r.precision=n+Math.max(e.e,e.sd())+k,r.rounding=1,e=lr(r,pn(r,e)),r.precision=n,r.rounding=t,x(le>2?e.neg():e,n,t,!0)):new r(NaN)};g.squareRoot=g.sqrt=function(){var n,t,e,r,i,o,s=this,a=s.d,u=s.e,c=s.s,m=s.constructor;if(c!==1||!a||!a[0])return new m(!c||c<0&&(!a||a[0])?NaN:a?s:1/0);for(C=!1,c=Math.sqrt(+s),c==0||c==1/0?(t=j(a),(t.length+u)%2==0&&(t+="0"),c=Math.sqrt(t),u=Z((u+1)/2)-(u<0||u%2),c==1/0?t="5e"+u:(t=c.toExponential(),t=t.slice(0,t.indexOf("e")+1)+u),r=new m(t)):r=new m(c.toString()),e=(u=m.precision)+3;;)if(o=r,r=o.plus(O(s,o,e+2,1)).times(.5),j(o.d).slice(0,e)===(t=j(r.d)).slice(0,e))if(t=t.slice(e-3,e+1),t=="9999"||!i&&t=="4999"){if(!i&&(x(o,u+1,0),o.times(o).eq(s))){r=o;break}e+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(x(r,u+1,1),n=!r.times(r).eq(s));break}return C=!0,x(r,u,m.rounding,n)};g.tangent=g.tan=function(){var n,t,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(n=r.precision,t=r.rounding,r.precision=n+10,r.rounding=1,e=e.sin(),e.s=1,e=O(e,new r(1).minus(e.times(e)).sqrt(),n+10,0),r.precision=n,r.rounding=t,x(le==2||le==4?e.neg():e,n,t,!0)):new r(NaN)};g.times=g.mul=function(n){var t,e,r,i,o,s,a,u,c,m=this,l=m.constructor,f=m.d,p=(n=new l(n)).d;if(n.s*=m.s,!f||!f[0]||!p||!p[0])return new l(!n.s||f&&!f[0]&&!p||p&&!p[0]&&!f?NaN:!f||!p?n.s/0:n.s*0);for(e=Z(m.e/k)+Z(n.e/k),u=f.length,c=p.length,u<c&&(o=f,f=p,p=o,s=u,u=c,c=s),o=[],s=u+c,r=s;r--;)o.push(0);for(r=c;--r>=0;){for(t=0,i=u+r;i>r;)a=o[i]+p[r]*f[i-r-1]+t,o[i--]=a%re|0,t=a/re|0;o[i]=(o[i]+t)%re|0}for(;!o[--s];)o.pop();return t?++e:o.shift(),n.d=o,n.e=Qe(o,e),C?x(n,l.precision,l.rounding):n};g.toBinary=function(n,t){return At(this,2,n,t)};g.toDecimalPlaces=g.toDP=function(n,t){var e=this,r=e.constructor;return e=new r(e),n===void 0?e:($(n,0,be),t===void 0?t=r.rounding:$(t,0,8),x(e,n+e.e+1,t))};g.toExponential=function(n,t){var e,r=this,i=r.constructor;return n===void 0?e=oe(r,!0):($(n,0,be),t===void 0?t=i.rounding:$(t,0,8),r=x(new i(r),n+1,t),e=oe(r,!0,n+1)),r.isNeg()&&!r.isZero()?"-"+e:e};g.toFixed=function(n,t){var e,r,i=this,o=i.constructor;return n===void 0?e=oe(i):($(n,0,be),t===void 0?t=o.rounding:$(t,0,8),r=x(new o(i),n+i.e+1,t),e=oe(r,!1,n+r.e+1)),i.isNeg()&&!i.isZero()?"-"+e:e};g.toFraction=function(n){var t,e,r,i,o,s,a,u,c,m,l,f,p=this,h=p.d,d=p.constructor;if(!h)return new d(p);if(c=e=new d(1),r=u=new d(0),t=new d(r),o=t.e=cn(h)-p.e-1,s=o%k,t.d[0]=H(10,s<0?k+s:s),n==null)n=o>0?t:c;else{if(a=new d(n),!a.isInt()||a.lt(c))throw Error(he+a);n=a.gt(t)?o>0?t:c:a}for(C=!1,a=new d(j(h)),m=d.precision,d.precision=o=h.length*k*2;l=O(a,t,0,1,1),i=e.plus(l.times(r)),i.cmp(n)!=1;)e=r,r=i,i=c,c=u.plus(l.times(i)),u=i,i=t,t=a.minus(l.times(i)),a=i;return i=O(n.minus(e),r,0,1,1),u=u.plus(i.times(c)),e=e.plus(i.times(r)),u.s=c.s=p.s,f=O(c,r,o,1).minus(p).abs().cmp(O(u,e,o,1).minus(p).abs())<1?[c,r]:[u,e],d.precision=m,C=!0,f};g.toHexadecimal=g.toHex=function(n,t){return At(this,16,n,t)};g.toNearest=function(n,t){var e=this,r=e.constructor;if(e=new r(e),n==null){if(!e.d)return e;n=new r(1),t=r.rounding}else{if(n=new r(n),t===void 0?t=r.rounding:$(t,0,8),!e.d)return n.s?e:n;if(!n.d)return n.s&&(n.s=e.s),n}return n.d[0]?(C=!1,e=O(e,n,0,t,1).times(n),C=!0,x(e)):(n.s=e.s,e=n),e};g.toNumber=function(){return+this};g.toOctal=function(n,t){return At(this,8,n,t)};g.toPower=g.pow=function(n){var t,e,r,i,o,s,a=this,u=a.constructor,c=+(n=new u(n));if(!a.d||!n.d||!a.d[0]||!n.d[0])return new u(H(+a,c));if(a=new u(a),a.eq(1))return a;if(r=u.precision,o=u.rounding,n.eq(1))return x(a,r,o);if(t=Z(n.e/k),t>=n.d.length-1&&(e=c<0?-c:c)<=sr)return i=ln(u,a,e,r),n.s<0?new u(1).div(i):x(i,r,o);if(s=a.s,s<0){if(t<n.d.length-1)return new u(NaN);if((n.d[t]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return e=H(+a,c),t=e==0||!isFinite(e)?Z(c*(Math.log("0."+j(a.d))/Math.LN10+a.e+1)):new u(e+"").e,t>u.maxE+1||t<u.minE-1?new u(t>0?s/0:0):(C=!1,u.rounding=a.s=1,e=Math.min(12,(t+"").length),i=Pt(n.times(ge(a,r+e)),r),i.d&&(i=x(i,r+5,1),Le(i.d,r,o)&&(t=r+10,i=x(Pt(n.times(ge(a,t+e)),t),t+5,1),+j(i.d).slice(r+1,r+15)+1==1e14&&(i=x(i,r+1,0)))),i.s=s,C=!0,u.rounding=o,x(i,r,o))};g.toPrecision=function(n,t){var e,r=this,i=r.constructor;return n===void 0?e=oe(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):($(n,1,be),t===void 0?t=i.rounding:$(t,0,8),r=x(new i(r),n,t),e=oe(r,n<=r.e||r.e<=i.toExpNeg,n)),r.isNeg()&&!r.isZero()?"-"+e:e};g.toSignificantDigits=g.toSD=function(n,t){var e=this,r=e.constructor;return n===void 0?(n=r.precision,t=r.rounding):($(n,1,be),t===void 0?t=r.rounding:$(t,0,8)),x(new r(e),n,t)};g.toString=function(){var n=this,t=n.constructor,e=oe(n,n.e<=t.toExpNeg||n.e>=t.toExpPos);return n.isNeg()&&!n.isZero()?"-"+e:e};g.truncated=g.trunc=function(){return x(new this.constructor(this),this.e+1,1)};g.valueOf=g.toJSON=function(){var n=this,t=n.constructor,e=oe(n,n.e<=t.toExpNeg||n.e>=t.toExpPos);return n.isNeg()?"-"+e:e};function j(n){var t,e,r,i=n.length-1,o="",s=n[0];if(i>0){for(o+=s,t=1;t<i;t++)r=n[t]+"",e=k-r.length,e&&(o+=de(e)),o+=r;s=n[t],r=s+"",e=k-r.length,e&&(o+=de(e))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function $(n,t,e){if(n!==~~n||n<t||n>e)throw Error(he+n)}function Le(n,t,e,r){var i,o,s,a;for(o=n[0];o>=10;o/=10)--t;return--t<0?(t+=k,i=0):(i=Math.ceil((t+1)/k),t%=k),o=H(10,k-t),a=n[i]%o|0,r==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=e<4&&a==99999||e>3&&a==49999||a==5e4||a==0):s=(e<4&&a+1==o||e>3&&a+1==o/2)&&(n[i+1]/o/100|0)==H(10,t-2)-1||(a==o/2||a==0)&&(n[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(r||e<4)&&a==9999||!r&&e>3&&a==4999):s=((r||e<4)&&a+1==o||!r&&e>3&&a+1==o/2)&&(n[i+1]/o/1e3|0)==H(10,t-3)-1,s}function je(n,t,e){for(var r,i=[0],o,s=0,a=n.length;s<a;){for(o=i.length;o--;)i[o]*=t;for(i[0]+=bt.indexOf(n.charAt(s++)),r=0;r<i.length;r++)i[r]>e-1&&(i[r+1]===void 0&&(i[r+1]=0),i[r+1]+=i[r]/e|0,i[r]%=e)}return i.reverse()}function ur(n,t){var e,r,i;if(t.isZero())return t;r=t.d.length,r<32?(e=Math.ceil(r/3),i=(1/$e(4,e)).toString()):(e=16,i="2.3283064365386962890625e-10"),n.precision+=e,t=Be(n,1,t.times(i),new n(1));for(var o=e;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return n.precision-=e,t}var O=function(){function n(r,i,o){var s,a=0,u=r.length;for(r=r.slice();u--;)s=r[u]*i+a,r[u]=s%o|0,a=s/o|0;return a&&r.unshift(a),r}function t(r,i,o,s){var a,u;if(o!=s)u=o>s?1:-1;else for(a=u=0;a<o;a++)if(r[a]!=i[a]){u=r[a]>i[a]?1:-1;break}return u}function e(r,i,o,s){for(var a=0;o--;)r[o]-=a,a=r[o]<i[o]?1:0,r[o]=a*s+r[o]-i[o];for(;!r[0]&&r.length>1;)r.shift()}return function(r,i,o,s,a,u){var c,m,l,f,p,h,d,T,P,y,b,w,B,A,K,I,M,v,R,U,X=r.constructor,Q=r.s==i.s?1:-1,V=r.d,F=i.d;if(!V||!V[0]||!F||!F[0])return new X(!r.s||!i.s||(V?F&&V[0]==F[0]:!F)?NaN:V&&V[0]==0||!F?Q*0:Q/0);for(u?(p=1,m=r.e-i.e):(u=re,p=k,m=Z(r.e/p)-Z(i.e/p)),R=F.length,M=V.length,P=new X(Q),y=P.d=[],l=0;F[l]==(V[l]||0);l++);if(F[l]>(V[l]||0)&&m--,o==null?(A=o=X.precision,s=X.rounding):a?A=o+(r.e-i.e)+1:A=o,A<0)y.push(1),h=!0;else{if(A=A/p+2|0,l=0,R==1){for(f=0,F=F[0],A++;(l<M||f)&&A--;l++)K=f*u+(V[l]||0),y[l]=K/F|0,f=K%F|0;h=f||l<M}else{for(f=u/(F[0]+1)|0,f>1&&(F=n(F,f,u),V=n(V,f,u),R=F.length,M=V.length),I=R,b=V.slice(0,R),w=b.length;w<R;)b[w++]=0;U=F.slice(),U.unshift(0),v=F[0],F[1]>=u/2&&++v;do f=0,c=t(F,b,R,w),c<0?(B=b[0],R!=w&&(B=B*u+(b[1]||0)),f=B/v|0,f>1?(f>=u&&(f=u-1),d=n(F,f,u),T=d.length,w=b.length,c=t(d,b,T,w),c==1&&(f--,e(d,R<T?U:F,T,u))):(f==0&&(c=f=1),d=F.slice()),T=d.length,T<w&&d.unshift(0),e(b,d,w,u),c==-1&&(w=b.length,c=t(F,b,R,w),c<1&&(f++,e(b,R<w?U:F,w,u))),w=b.length):c===0&&(f++,b=[0]),y[l++]=f,c&&b[0]?b[w++]=V[I]||0:(b=[V[I]],w=1);while((I++<M||b[0]!==void 0)&&A--);h=b[0]!==void 0}y[0]||y.shift()}if(p==1)P.e=m,rn=h;else{for(l=1,f=y[0];f>=10;f/=10)l++;P.e=l+m*p-1,x(P,a?o+P.e+1:o,s,h)}return P}}();function x(n,t,e,r){var i,o,s,a,u,c,m,l,f,p=n.constructor;e:if(t!=null){if(l=n.d,!l)return n;for(i=1,a=l[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=k,s=t,m=l[f=0],u=m/H(10,i-s-1)%10|0;else if(f=Math.ceil((o+1)/k),a=l.length,f>=a)if(r){for(;a++<=f;)l.push(0);m=u=0,i=1,o%=k,s=o-k+1}else break e;else{for(m=a=l[f],i=1;a>=10;a/=10)i++;o%=k,s=o-k+i,u=s<0?0:m/H(10,i-s-1)%10|0}if(r=r||t<0||l[f+1]!==void 0||(s<0?m:m%H(10,i-s-1)),c=e<4?(u||r)&&(e==0||e==(n.s<0?3:2)):u>5||u==5&&(e==4||r||e==6&&(o>0?s>0?m/H(10,i-s):0:l[f-1])%10&1||e==(n.s<0?8:7)),t<1||!l[0])return l.length=0,c?(t-=n.e+1,l[0]=H(10,(k-t%k)%k),n.e=-t||0):l[0]=n.e=0,n;if(o==0?(l.length=f,a=1,f--):(l.length=f+1,a=H(10,k-o),l[f]=s>0?(m/H(10,i-s)%H(10,s)|0)*a:0),c)for(;;)if(f==0){for(o=1,s=l[0];s>=10;s/=10)o++;for(s=l[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(n.e++,l[0]==re&&(l[0]=1));break}else{if(l[f]+=a,l[f]!=re)break;l[f--]=0,a=1}for(o=l.length;l[--o]===0;)l.pop()}return C&&(n.e>p.maxE?(n.d=null,n.e=NaN):n.e<p.minE&&(n.e=0,n.d=[0])),n}function oe(n,t,e){if(!n.isFinite())return fn(n);var r,i=n.e,o=j(n.d),s=o.length;return t?(e&&(r=e-s)>0?o=o.charAt(0)+"."+o.slice(1)+de(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(n.e<0?"e":"e+")+n.e):i<0?(o="0."+de(-i-1)+o,e&&(r=e-s)>0&&(o+=de(r))):i>=s?(o+=de(i+1-s),e&&(r=e-i-1)>0&&(o=o+"."+de(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),e&&(r=e-s)>0&&(i+1===s&&(o+="."),o+=de(r))),o}function Qe(n,t){var e=n[0];for(t*=k;e>=10;e/=10)t++;return t}function Je(n,t,e){if(t>ar)throw C=!0,e&&(n.precision=e),Error(on);return x(new n(Ze),t,1,!0)}function ne(n,t,e){if(t>wt)throw Error(on);return x(new n(Ye),t,e,!0)}function cn(n){var t=n.length-1,e=t*k+1;if(t=n[t],t){for(;t%10==0;t/=10)e--;for(t=n[0];t>=10;t/=10)e++}return e}function de(n){for(var t="";n--;)t+="0";return t}function ln(n,t,e,r){var i,o=new n(1),s=Math.ceil(r/k+4);for(C=!1;;){if(e%2&&(o=o.times(t),tn(o.d,s)&&(i=!0)),e=Z(e/2),e===0){e=o.d.length-1,i&&o.d[e]===0&&++o.d[e];break}t=t.times(t),tn(t.d,s)}return C=!0,o}function en(n){return n.d[n.d.length-1]&1}function mn(n,t,e){for(var r,i=new n(t[0]),o=0;++o<t.length;)if(r=new n(t[o]),r.s)i[e](r)&&(i=r);else{i=r;break}return i}function Pt(n,t){var e,r,i,o,s,a,u,c=0,m=0,l=0,f=n.constructor,p=f.rounding,h=f.precision;if(!n.d||!n.d[0]||n.e>17)return new f(n.d?n.d[0]?n.s<0?0:1/0:1:n.s?n.s<0?0:n:0/0);for(t==null?(C=!1,u=h):u=t,a=new f(.03125);n.e>-2;)n=n.times(a),l+=5;for(r=Math.log(H(2,l))/Math.LN10*2+5|0,u+=r,e=o=s=new f(1),f.precision=u;;){if(o=x(o.times(n),u,1),e=e.times(++m),a=s.plus(O(o,e,u,1)),j(a.d).slice(0,u)===j(s.d).slice(0,u)){for(i=l;i--;)s=x(s.times(s),u,1);if(t==null)if(c<3&&Le(s.d,u-r,p,c))f.precision=u+=10,e=o=a=new f(1),m=0,c++;else return x(s,f.precision=h,p,C=!0);else return f.precision=h,s}s=a}}function ge(n,t){var e,r,i,o,s,a,u,c,m,l,f,p=1,h=10,d=n,T=d.d,P=d.constructor,y=P.rounding,b=P.precision;if(d.s<0||!T||!T[0]||!d.e&&T[0]==1&&T.length==1)return new P(T&&!T[0]?-1/0:d.s!=1?NaN:T?0:d);if(t==null?(C=!1,m=b):m=t,P.precision=m+=h,e=j(T),r=e.charAt(0),Math.abs(o=d.e)<15e14){for(;r<7&&r!=1||r==1&&e.charAt(1)>3;)d=d.times(n),e=j(d.d),r=e.charAt(0),p++;o=d.e,r>1?(d=new P("0."+e),o++):d=new P(r+"."+e.slice(1))}else return c=Je(P,m+2,b).times(o+""),d=ge(new P(r+"."+e.slice(1)),m-h).plus(c),P.precision=b,t==null?x(d,b,y,C=!0):d;for(l=d,u=s=d=O(d.minus(1),d.plus(1),m,1),f=x(d.times(d),m,1),i=3;;){if(s=x(s.times(f),m,1),c=u.plus(O(s,new P(i),m,1)),j(c.d).slice(0,m)===j(u.d).slice(0,m))if(u=u.times(2),o!==0&&(u=u.plus(Je(P,m+2,b).times(o+""))),u=O(u,new P(p),m,1),t==null)if(Le(u.d,m-h,y,a))P.precision=m+=h,c=s=d=O(l.minus(1),l.plus(1),m,1),f=x(d.times(d),m,1),i=a=1;else return x(u,P.precision=b,y,C=!0);else return P.precision=b,u;u=c,i+=2}}function fn(n){return String(n.s*n.s/0)}function Tt(n,t){var e,r,i;for((e=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(e<0&&(e=r),e+=+t.slice(r+1),t=t.substring(0,r)):e<0&&(e=t.length),r=0;t.charCodeAt(r)===48;r++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(r,i),t){if(i-=r,n.e=e=e-r-1,n.d=[],r=(e+1)%k,e<0&&(r+=k),r<i){for(r&&n.d.push(+t.slice(0,r)),i-=k;r<i;)n.d.push(+t.slice(r,r+=k));t=t.slice(r),r=k-t.length}else r-=i;for(;r--;)t+="0";n.d.push(+t),C&&(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 cr(n,t){var e,r,i,o,s,a,u,c,m;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),un.test(t))return Tt(n,t)}else if(t==="Infinity"||t==="NaN")return+t||(n.s=NaN),n.e=NaN,n.d=null,n;if(ir.test(t))e=16,t=t.toLowerCase();else if(rr.test(t))e=2;else if(or.test(t))e=8;else throw Error(he+t);for(o=t.search(/p/i),o>0?(u=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,r=n.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=ln(r,new r(e),o,o*2)),c=je(t,e,re),m=c.length-1,o=m;c[o]===0;--o)c.pop();return o<0?new r(n.s*0):(n.e=Qe(c,m),n.d=c,C=!1,s&&(n=O(n,i,a*4)),u&&(n=n.times(Math.abs(u)<54?H(2,u):Me.pow(2,u))),C=!0,n)}function lr(n,t){var e,r=t.d.length;if(r<3)return t.isZero()?t:Be(n,2,t,t);e=1.4*Math.sqrt(r),e=e>16?16:e|0,t=t.times(1/$e(5,e)),t=Be(n,2,t,t);for(var i,o=new n(5),s=new n(16),a=new n(20);e--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function Be(n,t,e,r,i){var o,s,a,u,c=1,m=n.precision,l=Math.ceil(m/k);for(C=!1,u=e.times(e),a=new n(r);;){if(s=O(a.times(u),new n(t++*t++),m,1),a=i?r.plus(s):r.minus(s),r=O(s.times(u),new n(t++*t++),m,1),s=a.plus(r),s.d[l]!==void 0){for(o=l;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=r,r=s,s=o,c++}return C=!0,s.d.length=l+1,s}function $e(n,t){for(var e=n;--t;)e*=n;return e}function pn(n,t){var e,r=t.s<0,i=ne(n,n.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return le=r?4:1,t;if(e=t.divToInt(i),e.isZero())le=r?3:2;else{if(t=t.minus(e.times(i)),t.lte(o))return le=en(e)?r?2:3:r?4:1,t;le=en(e)?r?1:4:r?3:2}return t.minus(i).abs()}function At(n,t,e,r){var i,o,s,a,u,c,m,l,f,p=n.constructor,h=e!==void 0;if(h?($(e,1,be),r===void 0?r=p.rounding:$(r,0,8)):(e=p.precision,r=p.rounding),!n.isFinite())m=fn(n);else{for(m=oe(n),s=m.indexOf("."),h?(i=2,t==16?e=e*4-3:t==8&&(e=e*3-2)):i=t,s>=0&&(m=m.replace(".",""),f=new p(1),f.e=m.length-s,f.d=je(oe(f),10,i),f.e=f.d.length),l=je(m,10,i),o=u=l.length;l[--u]==0;)l.pop();if(!l[0])m=h?"0p+0":"0";else{if(s<0?o--:(n=new p(n),n.d=l,n.e=o,n=O(n,f,e,r,0,i),l=n.d,o=n.e,c=rn),s=l[e],a=i/2,c=c||l[e+1]!==void 0,c=r<4?(s!==void 0||c)&&(r===0||r===(n.s<0?3:2)):s>a||s===a&&(r===4||c||r===6&&l[e-1]&1||r===(n.s<0?8:7)),l.length=e,c)for(;++l[--e]>i-1;)l[e]=0,e||(++o,l.unshift(1));for(u=l.length;!l[u-1];--u);for(s=0,m="";s<u;s++)m+=bt.charAt(l[s]);if(h){if(u>1)if(t==16||t==8){for(s=t==16?4:3,--u;u%s;u++)m+="0";for(l=je(m,i,t),u=l.length;!l[u-1];--u);for(s=1,m="1.";s<u;s++)m+=bt.charAt(l[s])}else m=m.charAt(0)+"."+m.slice(1);m=m+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)m="0"+m;m="0."+m}else if(++o>u)for(o-=u;o--;)m+="0";else o<u&&(m=m.slice(0,o)+"."+m.slice(o))}m=(t==16?"0x":t==2?"0b":t==8?"0o":"")+m}return n.s<0?"-"+m:m}function tn(n,t){if(n.length>t)return n.length=t,!0}function mr(n){return new this(n).abs()}function fr(n){return new this(n).acos()}function pr(n){return new this(n).acosh()}function dr(n,t){return new this(n).plus(t)}function gr(n){return new this(n).asin()}function hr(n){return new this(n).asinh()}function br(n){return new this(n).atan()}function yr(n){return new this(n).atanh()}function wr(n,t){n=new this(n),t=new this(t);var e,r=this.precision,i=this.rounding,o=r+4;return!n.s||!t.s?e=new this(NaN):!n.d&&!t.d?(e=ne(this,o,1).times(t.s>0?.25:.75),e.s=n.s):!t.d||n.isZero()?(e=t.s<0?ne(this,r,i):new this(0),e.s=n.s):!n.d||t.isZero()?(e=ne(this,o,1).times(.5),e.s=n.s):t.s<0?(this.precision=o,this.rounding=1,e=this.atan(O(n,t,o,1)),t=ne(this,o,1),this.precision=r,this.rounding=i,e=n.s<0?e.minus(t):e.plus(t)):e=this.atan(O(n,t,o,1)),e}function Pr(n){return new this(n).cbrt()}function Tr(n){return x(n=new this(n),n.e+1,2)}function Ar(n,t,e){return new this(n).clamp(t,e)}function xr(n){if(!n||typeof n!="object")throw Error(Xe+"Object expected");var t,e,r,i=n.defaults===!0,o=["precision",1,be,"rounding",0,8,"toExpNeg",-xe,0,"toExpPos",0,xe,"maxE",0,xe,"minE",-xe,0,"modulo",0,9];for(t=0;t<o.length;t+=3)if(e=o[t],i&&(this[e]=yt[e]),(r=n[e])!==void 0)if(Z(r)===r&&r>=o[t+1]&&r<=o[t+2])this[e]=r;else throw Error(he+e+": "+r);if(e="crypto",i&&(this[e]=yt[e]),(r=n[e])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[e]=!0;else throw Error(sn);else this[e]=!1;else throw Error(he+e+": "+r);return this}function Br(n){return new this(n).cos()}function kr(n){return new this(n).cosh()}function dn(n){var t,e,r;function i(o){var s,a,u,c=this;if(!(c instanceof i))return new i(o);if(c.constructor=i,nn(o)){c.s=o.s,C?!o.d||o.e>i.maxE?(c.e=NaN,c.d=null):o.e<i.minE?(c.e=0,c.d=[0]):(c.e=o.e,c.d=o.d.slice()):(c.e=o.e,c.d=o.d?o.d.slice():o.d);return}if(u=typeof o,u==="number"){if(o===0){c.s=1/o<0?-1:1,c.e=0,c.d=[0];return}if(o<0?(o=-o,c.s=-1):c.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;C?s>i.maxE?(c.e=NaN,c.d=null):s<i.minE?(c.e=0,c.d=[0]):(c.e=s,c.d=[o]):(c.e=s,c.d=[o]);return}else if(o*0!==0){o||(c.s=NaN),c.e=NaN,c.d=null;return}return Tt(c,o.toString())}else if(u!=="string")throw Error(he+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),c.s=-1):(a===43&&(o=o.slice(1)),c.s=1),un.test(o)?Tt(c,o):cr(c,o)}if(i.prototype=g,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=xr,i.clone=dn,i.isDecimal=nn,i.abs=mr,i.acos=fr,i.acosh=pr,i.add=dr,i.asin=gr,i.asinh=hr,i.atan=br,i.atanh=yr,i.atan2=wr,i.cbrt=Pr,i.ceil=Tr,i.clamp=Ar,i.cos=Br,i.cosh=kr,i.div=Sr,i.exp=Cr,i.floor=Ir,i.hypot=Nr,i.ln=Lr,i.log=Mr,i.log10=Er,i.log2=Rr,i.max=Dr,i.min=Kr,i.mod=vr,i.mul=Fr,i.pow=Or,i.random=_r,i.round=Wr,i.sign=Vr,i.sin=qr,i.sinh=Ur,i.sqrt=Gr,i.sub=Hr,i.sum=zr,i.tan=jr,i.tanh=Zr,i.trunc=Yr,n===void 0&&(n={}),n&&n.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<r.length;)n.hasOwnProperty(e=r[t++])||(n[e]=this[e]);return i.config(n),i}function Sr(n,t){return new this(n).div(t)}function Cr(n){return new this(n).exp()}function Ir(n){return x(n=new this(n),n.e+1,3)}function Nr(){var n,t,e=new this(0);for(C=!1,n=0;n<arguments.length;)if(t=new this(arguments[n++]),t.d)e.d&&(e=e.plus(t.times(t)));else{if(t.s)return C=!0,new this(1/0);e=t}return C=!0,e.sqrt()}function nn(n){return n instanceof Me||n&&n.toStringTag===an||!1}function Lr(n){return new this(n).ln()}function Mr(n,t){return new this(n).log(t)}function Rr(n){return new this(n).log(2)}function Er(n){return new this(n).log(10)}function Dr(){return mn(this,arguments,"lt")}function Kr(){return mn(this,arguments,"gt")}function vr(n,t){return new this(n).mod(t)}function Fr(n,t){return new this(n).mul(t)}function Or(n,t){return new this(n).pow(t)}function _r(n){var t,e,r,i,o=0,s=new this(1),a=[];if(n===void 0?n=this.precision:$(n,1,be),r=Math.ceil(n/k),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(r));o<r;)i=t[o],i>=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(r*=4);o<r;)i=t[o]+(t[o+1]<<8)+(t[o+2]<<16)+((t[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=r/4}else throw Error(sn);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],n%=k,r&&n&&(i=H(10,k-n),a[o]=(r/i|0)*i);a[o]===0;o--)a.pop();if(o<0)e=0,a=[0];else{for(e=-1;a[0]===0;e-=k)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<k&&(e-=k-r)}return s.e=e,s.d=a,s}function Wr(n){return x(n=new this(n),n.e+1,this.rounding)}function Vr(n){return n=new this(n),n.d?n.d[0]?n.s:0*n.s:n.s||NaN}function qr(n){return new this(n).sin()}function Ur(n){return new this(n).sinh()}function Gr(n){return new this(n).sqrt()}function Hr(n,t){return new this(n).sub(t)}function zr(){var n=0,t=arguments,e=new this(t[n]);for(C=!1;e.s&&++n<t.length;)e=e.plus(t[n]);return C=!0,x(e,this.precision,this.rounding)}function jr(n){return new this(n).tan()}function Zr(n){return new this(n).tanh()}function Yr(n){return x(n=new this(n),n.e+1,1)}g[Symbol.for("nodejs.util.inspect.custom")]=g.toString;g[Symbol.toStringTag]="Decimal";var Me=g.constructor=dn(yt);Ze=new Me(Ze);Ye=new Me(Ye);var ee=Me;import{PublicKey as St}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Jr}from"@solana/spl-token";import{PublicKey as q,SystemProgram as gn,SYSVAR_RENT_PUBKEY as Xr}from"@solana/web3.js";function xt({pubkey:n,isSigner:t=!1,isWritable:e=!0}){return{pubkey:n,isWritable:e,isSigner:t}}var ro=[xt({pubkey:Jr,isWritable:!1}),xt({pubkey:gn.programId,isWritable:!1}),xt({pubkey:Xr,isWritable:!1})];function Bt({publicKey:n,transformSol:t}){let e=hn(n.toString());if(e instanceof q)return t&&e.equals(Re)?me:e;if(t&&e.toString()===Re.toBase58())return me;if(typeof e=="string"){if(e===q.default.toBase58())return q.default;try{return new q(e)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function hn(n){try{return new q(n)}catch{return n}}var io=new q("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),bn=new q("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),yn=new q("SysvarRent111111111111111111111111111111111"),oo=new q("SysvarC1ock11111111111111111111111111111111"),so=new q("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ao=new q("Sysvar1nstructions1111111111111111111111111"),wn=gn.programId,uo=new q("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),co=new q("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),lo=new q("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),mo=new q("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),fo=new q("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),po=new q("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),go=new q("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ho=new q("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),bo=new q("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),yo=new q("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),wo=new q("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),me=new q("So11111111111111111111111111111111111111112"),Re=q.default;function et(n){return Bt({publicKey:n,transformSol:!0})}import{PublicKey as Qr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Pn}from"@solana/spl-token";var kt={chainId:101,address:Qr.default.toBase58(),programId:Pn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ye={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Pn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};var Ct=class{constructor({mint:t,decimals:e,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(t===Re.toBase58()||t instanceof St&&Re.equals(t)){this.decimals=ye.decimals,this.symbol=ye.symbol,this.name=ye.name,this.mint=new St(ye.address),this.isToken2022=!1;return}this.decimals=e,this.symbol=r||t.toString().substring(0,6),this.name=i||t.toString().substring(0,6),this.mint=o?St.default:Bt({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},Pe=Ct;Pe.WSOL=new Ct(G(D({},ye),{mint:ye.address}));import{get as Tn,set as $r}from"lodash";var It=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let e=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(e)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},An={},ei={};function Y(n){let t=Tn(An,n);if(!t){let e=Tn(ei,n);t=new It({name:n,logLevel:e}),$r(An,n,t)}return t}import nt from"big.js";import ri from"bn.js";import ii from"decimal.js-light";import ti from"toformat";var ni=ti,Ee=ni;var tt=Y("module/fraction"),Nt=Ee(nt),De=Ee(ii),oi={[0]:De.ROUND_DOWN,[1]:De.ROUND_HALF_UP,[2]:De.ROUND_UP},si={[0]:nt.roundDown,[1]:nt.roundHalfUp,[2]:nt.roundUp},W=class{constructor(t,e=new ri(1)){this.numerator=we(t),this.denominator=we(e)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new W(this.denominator,this.numerator)}add(t){let e=t instanceof W?t:new W(we(t));return this.denominator.eq(e.denominator)?new W(this.numerator.add(e.numerator),this.denominator):new W(this.numerator.mul(e.denominator).add(e.numerator.mul(this.denominator)),this.denominator.mul(e.denominator))}sub(t){let e=t instanceof W?t:new W(we(t));return this.denominator.eq(e.denominator)?new W(this.numerator.sub(e.numerator),this.denominator):new W(this.numerator.mul(e.denominator).sub(e.numerator.mul(this.denominator)),this.denominator.mul(e.denominator))}mul(t){let e=t instanceof W?t:new W(we(t));return new W(this.numerator.mul(e.numerator),this.denominator.mul(e.denominator))}div(t){let e=t instanceof W?t:new W(we(t));return new W(this.numerator.mul(e.denominator),this.denominator.mul(e.numerator))}toSignificant(t,e={groupSeparator:""},r=1){Number.isInteger(t)||tt.logWithError(`${t} is not an integer.`),t<=0&&tt.logWithError(`${t} is not positive.`),De.set({precision:t+1,rounding:oi[r]});let i=new De(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return i.toFormat(i.decimalPlaces(),e)}toFixed(t,e={groupSeparator:""},r=1){return Number.isInteger(t)||tt.logWithError(`${t} is not an integer.`),t<0&&tt.logWithError(`${t} is negative.`),Nt.DP=t,Nt.RM=si[r]||1,new Nt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,e)}isZero(){return this.numerator.isZero()}};var jo=Y("Raydium_price");var Lt=class{constructor({decimals:t,symbol:e="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=e,this.name=r}equals(t){return this===t}},rt=Lt;rt.SOL=new Lt(kt);import ui from"bn.js";var xn=new W(new ui(100)),se=class extends W{toSignificant(t=5,e,r){return this.mul(xn).toSignificant(t,e,r)}toFixed(t=2,e,r){return this.mul(xn).toFixed(t,e,r)}};import{PublicKey as us}from"@solana/web3.js";import ls from"bn.js";var Mt=new te(0),Cs=new te(1),Is=new te(2),Ns=new te(3),Ls=new te(5),ci=new te(10),Ms=new te(100),Rs=new te(1e3),Es=new te(1e4),kn=9007199254740991;function we(n){let t=Y("Raydium_parseBigNumberish");if(n instanceof te)return n;if(typeof n=="string"){if(n.match(/^-?[0-9]+$/))return new te(n);t.logWithError(`invalid BigNumberish string: ${n}`)}return typeof n=="number"?(n%1&&t.logWithError(`BigNumberish number underflow: ${n}`),(n>=kn||n<=-kn)&&t.logWithError(`BigNumberish number overflow: ${n}`),new te(String(n))):typeof n=="bigint"?new te(n.toString()):(t.error(`invalid BigNumberish value: ${n}`),new te(0))}var zs=Y("Raydium_amount"),js=Ee(li);import{PublicKey as hi}from"@solana/web3.js";import{PublicKey as mi,ComputeBudgetProgram as Sn,Transaction as In,TransactionMessage as fi,Keypair as Nn,VersionedTransaction as Ln}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as pi}from"@solana/spl-token";var fe={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut"};var Cn=Y("Raydium_txUtil"),Mn=1644;function it(n){let t=[],e=[];return n.microLamports&&(t.push(Sn.setComputeUnitPrice({microLamports:n.microLamports})),e.push(fe.SetComputeUnitPrice)),n.units&&(t.push(Sn.setComputeUnitLimit({units:n.units})),e.push(fe.SetComputeUnitLimit)),{instructions:t,instructionTypes:e}}async function ke(n,t){var r,i;let e=t!=null?t:"confirmed";try{return((i=await((r=n.getLatestBlockhash)==null?void 0:r.call(n,{commitment:e})))==null?void 0:i.blockhash)||(await n.getRecentBlockhash(e)).blockhash}catch{return(await n.getRecentBlockhash(e)).blockhash}}function di(n,t){n.length<1&&Cn.logWithError(`no instructions provided: ${n.toString()}`),t.length<1&&Cn.logWithError(`no signers provided:, ${t.toString()}`);let e=new In;e.recentBlockhash="11111111111111111111111111111111",e.feePayer=t[0],e.add(...n);try{return Buffer.from(e.serialize({verifySignatures:!1})).toString("base64").length<Mn}catch{return!1}}function pe(n,t){let[e,r]=mi.findProgramAddressSync(n,t);return{publicKey:e,nonce:r}}function Ke({instructions:n,payer:t,signers:e}){return di(n,[t,...e])}function ve({instructions:n,payer:t,lookupTableAddressAccount:e,recentBlockhash:r=Nn.generate().publicKey.toString()}){let o=new fi({payerKey:t,recentBlockhash:r,instructions:n}).compileToV0Message(Object.values(e!=null?e:{}));try{return Buffer.from(new Ln(o).serialize()).toString("base64").length<Mn}catch{return!1}}var gi=n=>Buffer.isBuffer(n)?n:n instanceof Uint8Array?Buffer.from(n.buffer,n.byteOffset,n.byteLength):Buffer.from(n);function Te(n){let t=[];return n.forEach(e=>{e instanceof In&&(e.recentBlockhash||(e.recentBlockhash=pi.toBase58()),e.feePayer||(e.feePayer=Nn.generate().publicKey));let r=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof Ln&&(r=gi(r));let i=r.toString("base64");t.push(i)}),console.log("simulate tx string:",t),t}import{TOKEN_PROGRAM_ID as bi}from"@solana/spl-token";function Rn(n,t,e){return pe([n.toBuffer(),(e!=null?e:bi).toBuffer(),t.toBuffer()],new hi("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import Dn from"bn.js";var Et=new Dn(1e6);function yi(n,t,e){return n.mul(t).add(e).sub(new Dn(1)).div(e)}function En(n,t,e){return n.mul(t).div(e)}var ot=class{static tradingFee(t,e){return yi(t,e,Et)}static protocolFee(t,e){return En(t,e,Et)}static fundFee(t,e){return En(t,e,Et)}};import Fe from"bn.js";function st(n,t){if(t.isZero())throw Error("divisor is zero");return n.mod(t)}function wi(n,t){if(t.isZero())throw Error("rhs is zero");let e=n.div(t);if(e.isZero())throw Error("quotient is zero");let r=st(n,t);if(r.gt(Se)){e=e.add(new Fe(1));let i=n.div(e);r=st(n,e),r.gt(Se)&&(i=i.add(new Fe(1)))}return[e,t]}var Se=new Fe(0),at=class{static swapWithoutFees(t,e,r){let i=e.mul(r),o=e.add(t),[s,a]=wi(i,o),u=a.sub(e),c=r.sub(s);if(c.isZero())throw Error("destinationAmountSwapped is zero");return{sourceAmountSwapped:u,destinationAmountSwapped:c}}static lpTokensToTradingTokens(t,e,r,i,o){let s=t.mul(r).div(e),a=t.mul(i).div(e);if(o===0)return{tokenAmount0:s,tokenAmount1:a};if(o===1)return st(t.mul(r),e).gt(Se)&&s.gt(Se)&&(s=s.add(new Fe(1))),st(t.mul(i),e).gt(Se)&&a.gt(Se)&&(a=a.add(new Fe(1))),{tokenAmount0:s,tokenAmount1:a};throw Error("roundDirection value error")}};var ut=class{static validate_supply(t,e){if(t.isZero())throw Error("tokenAmount0 is zero");if(e.isZero())throw Error("tokenAmount1 is zero")}static swap(t,e,r,i){let o=ot.tradingFee(t,i),s=t.sub(o),{sourceAmountSwapped:a,destinationAmountSwapped:u}=at.swapWithoutFees(s,e,r),c=a.add(o);return{newSwapSourceAmount:e.add(c),newSwapDestinationAmount:r.sub(u),sourceAmountSwapped:c,destinationAmountSwapped:u,tradeFee:o}}};import{PublicKey as We,sendAndConfirmTransaction as _t,Transaction as Ve,TransactionMessage as qe,VersionedTransaction as Ue}from"@solana/web3.js";import Ci from"axios";import{PublicKey as Fn,AddressLookupTableAccount as ct}from"@solana/web3.js";import{PublicKey as Kn}from"@solana/web3.js";import{MINT_SIZE as xi,TOKEN_PROGRAM_ID as Bi,getTransferFeeConfig as ki,unpackMint as Si}from"@solana/spl-token";function Dt(n,t=1,e=[]){let r=[...n];if(t<=0)return e;for(;r.length;)e.push(r.splice(0,t));return e}import{PublicKey as E}from"@solana/web3.js";var Ea=new E("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Da=new E("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ka=new E("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),va=new E("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Fa=new E("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Oa=new E("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),_a=new E("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Wa=new E("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Va=new E("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),qa=new E("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ua=new E("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ga=new E("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ha=new E("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),za=new E("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),ja=new E("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Za=new E("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Ya=new E("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ja=new E("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Xa=new E("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Pi=new E("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),Ti=new E("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Ai=new E("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2");var Qa={SERUM_MARKET:E.default,OPENBOOK_MARKET:new E("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:E.default,FarmV3:new E("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new E("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new E("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new E("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new E("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new E("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),Router:new E("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:Pi,CREATE_CPMM_POOL_AUTH:Ti,CREATE_CPMM_POOL_FEE_ACC:Ai,FEE_DESTINATION_ID:new E("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR")};import ie from"bn.js";var Oe=1e4;function Ce(n,t,e,r){if(t===void 0)return{amount:n,fee:void 0,expirationTime:void 0};let i=G(D({},t),{olderTransferFee:{epoch:BigInt(t.olderTransferFee.epoch),maximumFee:BigInt(t.olderTransferFee.maximumFee),transferFeeBasisPoints:t.olderTransferFee.transferFeeBasisPoints},newerTransferFee:{epoch:BigInt(t.newerTransferFee.epoch),maximumFee:BigInt(t.newerTransferFee.maximumFee),transferFeeBasisPoints:t.newerTransferFee.transferFeeBasisPoints}}),o=e.epoch<i.newerTransferFee.epoch?i.olderTransferFee:i.newerTransferFee,s=new ie(o.maximumFee.toString()),a=e.epoch<i.newerTransferFee.epoch?(Number(i.newerTransferFee.epoch)*e.slotsInEpoch-e.absoluteSlot)*400/1e3:void 0;if(r)if(o.transferFeeBasisPoints===Oe){let u=new ie(o.maximumFee.toString());return{amount:n.add(u),fee:u,expirationTime:a}}else{let u=Kt(n.mul(new ie(Oe)),new ie(Oe-o.transferFeeBasisPoints)),c=new ie(o.maximumFee.toString()),m=u.sub(n).gt(c)?n.add(c):u,l=Kt(m.mul(new ie(o.transferFeeBasisPoints)),new ie(Oe)),f=l.gt(s)?s:l;return{amount:m,fee:f,expirationTime:a}}else{let u=Kt(n.mul(new ie(o.transferFeeBasisPoints)),new ie(Oe)),c=u.gt(s)?s:u;return{amount:n,fee:c,expirationTime:a}}}function Kt(n,t){let{div:e,mod:r}=n.divmod(t);return r.gt(new ie(0))?e.add(new ie(1)):e}var vt=Y("Raydium_accountInfo_util");async function Ft(n,t,e){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}=D({batchRequest:!1},e),s=Dt(t,o),a=new Array(s.length).fill([]);if(r){let u=s.map(l=>{let f=n._buildArgs([l.map(p=>p.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:f}}),c=Dt(u,10);a=(await(await Promise.all(c.map(async l=>await n._rpcBatchRequest(l)))).flat()).map(l=>(l.error&&vt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.error.message}`),l.result.value.map(f=>{if(f){let{data:p,executable:h,lamports:d,owner:T,rentEpoch:P}=f;return p.length!==2&&p[1]!=="base64"&&vt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:h,lamports:d,owner:new Kn(T),rentEpoch:P}}return null})))}else try{a=await Promise.all(s.map(u=>n.getMultipleAccountsInfo(u,i)))}catch(u){u instanceof Error&&vt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${u.message}`)}return a.flat()}async function _e(n,t,e){let r=await Ft(n,t.map(i=>i.pubkey),e);return t.map((i,o)=>G(D({},i),{accountInfo:r[o]}))}async function vn({connection:n,mints:t,config:e}){var o,s,a;if(t.length===0)return{};let r=await _e(n,t.map(u=>({pubkey:et(u)})),e),i={};for(let u of r){if(!u.accountInfo||u.accountInfo.data.length<xi){console.log("invalid mint account",u.pubkey.toBase58());continue}let c=Si(u.pubkey,u.accountInfo,(o=u.accountInfo)==null?void 0:o.owner);i[u.pubkey.toString()]=G(D({},c),{programId:((s=u.accountInfo)==null?void 0:s.owner)||Bi,feeConfig:(a=ki(c))!=null?a:void 0})}return i[Kn.default.toBase58()]=i[me.toBase58()],i}async function Ot({connection:n,address:t}){let e=await Ft(n,[...new Set(t.map(i=>i.toString()))].map(i=>new Fn(i))),r={};for(let i=0;i<t.length;i++){let o=e[i],s=t[i];if(!o)continue;let a=new ct({key:s,state:ct.deserialize(o.data)});r[s.toString()]=a,lt[s.toString()]=a}return r}var lt={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new ct({key:new Fn("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:ct.deserialize(Buffer.from("AQAAAP//////////d49+DAAAAAAAAQZMWvw7GUNJdaccNBVnb57OKakxL2BHLYvhRwVILRsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkG3fbh7nWP3hhCXbzkbM3athr8TYO5DSf+vfko2KGL/AVKU1D4XciC1hSlVnJ4iilt3x6rq9CmBniISTL07vagBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvDQdRqCgtphMF/imcN7mY5YRx2xE1A3MQ+L4QRaYK9u4GRfZP3LsAd00a+IkCpA22UNQMKdq5BFbJuwuOLqc8zxCTDlqxBG8J0HcxtfogQHDK06ukzfaXiNDKAob1MqBHS9lJxDYCwz8gd5DtFqNSTKG5l1zxIaKpDP/sffi2is1H9aKveyXSu5StXElYRl9SD5As0DHE4N0GLnf84/siiKXVyp4Ez121kLcUui/jLLFZEz/BwZK3Ilf9B9OcsEAeDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu9N9LMnrw/JNO0hqMVB4rk/2ou4AB1loQ7FZoPwut2o4KZB+0p9xnbrQKw038qjpHar+PyDwvxBRcu5hpHw3dguezeWv+IwvgW5icu8EGkhGa9AkFPPJT7VMSFb8xowveU=","base64"))})};var mt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.api=t.api}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let t=(await Ci.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:e}=(r=t==null?void 0:t[15])!=null?r:{};if(!!e)return{units:6e5,microLamports:Math.min(Math.ceil(e*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:e,instructionTypes:r}=it(t);return this.instructions.unshift(...e),this.instructionTypes.unshift(...r),!0}return!1}async calComputeBudget({config:t,defaultIns:e}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;e&&this.instructions.unshift(...e)}catch{e&&this.instructions.unshift(...e)}}addInstruction({instructions:t=[],endInstructions:e=[],signers:r=[],instructionTypes:i=[],endInstructionTypes:o=[],lookupTableAddress:s=[]}){return this.instructions.push(...t),this.endInstructions.push(...e),this.signers.push(...r),this.instructionTypes.push(...i),this.endInstructionTypes.push(...o),this.lookupTableAddress.push(...s.filter(a=>a!==We.default.toString())),this}async versionBuild({txVersion:t,extInfo:e}){return t===0?await this.buildV0(D({},e||{})):this.build(e)}build(t){var r;let e=new Ve;return this.allInstructions.length&&e.add(...this.allInstructions),e.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(i=>i.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:e,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async i=>{var c;let{recentBlockHash:o,skipPreflight:s=!0,sendAndConfirm:a}=i||{},u=o!=null?o:await ke(this.connection,this.blockhashCommitment);if(e.recentBlockhash=u,this.signers.length&&e.sign(...this.signers),Te([e]),(c=this.owner)!=null&&c.isKeyPair)return{txId:a?await _t(this.connection,e,this.signers.find(l=>l.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):await this.connection.sendRawTransaction(e.serialize(),{skipPreflight:s}),signedTx:e};if(this.signAllTransactions){let m=await this.signAllTransactions([e]);return{txId: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:t||{}}}buildMultiTx(t){var c;let{extraPreBuildData:e=[],extInfo:r}=t,{transaction:i}=this.build(r),o=e.filter(m=>m.transaction.instructions.length>0),s=[i,...o.map(m=>m.transaction)],a=[this.signers,...o.map(m=>m.signers)],u=[...this.instructionTypes,...o.map(m=>m.instructionTypes).flat()];return(c=this.owner)!=null&&c.signer&&a.forEach(m=>{m.some(l=>l.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:a,instructionTypes:u,execute:async m=>{var T;let{sequentially:l,onTxUpdate:f,recentBlockHash:p,skipPreflight:h=!0}=m||{},d=p!=null?p:await ke(this.connection,this.blockhashCommitment);if((T=this.owner)!=null&&T.isKeyPair){if(l){let P=[];for(let y of s){let b=await _t(this.connection,y,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});P.push(b)}return{txIds:P,signedTxs:s}}return{txIds:await await Promise.all(s.map(async P=>(P.recentBlockhash=d,await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:h})))),signedTxs:s}}if(this.signAllTransactions){let P=s.map((b,w)=>(b.recentBlockhash=d,a[w].length&&b.sign(...a[w]),b));Te(P);let y=await this.signAllTransactions(P);if(l){let b=0,w=[],B=async()=>{if(!y[b])return;let A=await this.connection.sendRawTransaction(y[b].serialize(),{skipPreflight:h});w.push({txId:A,status:"sent",signedTx:y[b]}),f==null||f([...w]),b++,this.connection.onSignature(A,K=>{let I=w.findIndex(M=>M.txId===A);I>-1&&(w[I].status=K.err?"error":"success"),f==null||f([...w]),K.err||B()},"processed"),this.connection.getSignatureStatus(A)};return await B(),{txIds:w.map(A=>A.txId),signedTxs:y}}else{let b=[];for(let w=0;w<y.length;w+=1){let B=await this.connection.sendRawTransaction(y[w].serialize(),{skipPreflight:h});b.push(B)}return{txIds:b,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:e,extInfo:r}){return e===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var p;let f=t||{},{lookupTableCache:e={},lookupTableAddress:r=[],forerunCreate:i}=f,o=ce(f,["lookupTableCache","lookupTableAddress","forerunCreate"]),s=D(D({},this.cluster==="devnet"?{}:lt),e),a=Array.from(new Set([...r,...this.lookupTableAddress])),u=[];for(let h of a)s[h]===void 0&&u.push(new We(h));let c=await Ot({connection:this.connection,address:u});for(let[h,d]of Object.entries(c))s[h]=d;let m=new qe({payerKey:this.feePayer,recentBlockhash:i?We.default.toBase58():await ke(this.connection,this.blockhashCommitment),instructions:[...this.allInstructions]}).compileToV0Message(Object.values(s));((p=this.owner)==null?void 0:p.signer)&&!this.signers.some(h=>h.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let l=new Ue(m);return l.sign(this.signers),{builder:this,transaction:l,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async h=>{var y;let{recentBlockHash:d,skipPreflight:T=!0,sendAndConfirm:P}=h||{};if(d&&(l.message.recentBlockhash=d),Te([l]),(y=this.owner)!=null&&y.isKeyPair){let b=await this.connection.sendTransaction(l,{skipPreflight:T});if(P){let{lastValidBlockHeight:w,blockhash:B}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:B,lastValidBlockHeight:w,signature:b},"confirmed")}return{txId:b,signedTx:l}}if(this.signAllTransactions){let b=await this.signAllTransactions([l]);return{txId:await this.connection.sendTransaction(b[0],{skipPreflight:T}),signedTx:b[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async buildV0MultiTx(t){var c;let{extraPreBuildData:e=[],buildProps:r}=t,{transaction:i}=await this.buildV0(r),o=e.filter(m=>m.builder.instructions.length>0),s=[i,...o.map(m=>m.transaction)],a=[this.signers,...o.map(m=>m.signers)],u=[...this.instructionTypes,...o.map(m=>m.instructionTypes).flat()];return(c=this.owner)!=null&&c.signer&&a.forEach(m=>{m.some(l=>l.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach(async(m,l)=>{m.sign(a[l])}),{builder:this,transactions:s,signers:a,instructionTypes:u,buildProps:r,execute:async m=>{var d;let{sequentially:l,onTxUpdate:f,recentBlockHash:p,skipPreflight:h=!0}=m||{};if(p&&s.forEach(T=>T.message.recentBlockhash=p),Te(s),(d=this.owner)!=null&&d.isKeyPair){if(l){let T=[];for(let P of s){let y=await this.connection.sendTransaction(P,{skipPreflight:h}),{lastValidBlockHeight:b,blockhash:w}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:w,lastValidBlockHeight:b,signature:y},"confirmed"),T.push(y)}return{txIds:T,signedTxs:s}}return{txIds:await Promise.all(s.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:h}))),signedTxs:s}}if(this.signAllTransactions){let T=await this.signAllTransactions(s);if(l){let P=0,y=[],b=async()=>{if(!T[P])return;let w=await this.connection.sendTransaction(T[P],{skipPreflight:h});y.push({txId:w,status:"sent",signedTx:T[P]}),f==null||f([...y]),P++,this.connection.onSignature(w,B=>{let A=y.findIndex(K=>K.txId===w);A>-1&&(y[A].status=B.err?"error":"success"),f==null||f([...y]),B.err||b()},"processed"),this.connection.getSignatureStatus(w)};return b(),{txIds:[],signedTxs:T}}else{let P=[];for(let y=0;y<T.length;y+=1){let b=await this.connection.sendTransaction(T[y],{skipPreflight:h});P.push(b)}return{txIds:P,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var m;let c=t||{},{computeBudgetConfig:e}=c,r=ce(c,["computeBudgetConfig"]),i=e?it(e):{instructions:[],instructionTypes:[]},o=this.signers.reduce((l,f)=>G(D({},l),{[f.publicKey.toBase58()]:f}),{}),s=[],a=[],u=[];if(this.allInstructions.forEach(l=>{let f=[...u,l],p=e?[...i.instructions,...f]:f,d=[...new Set(f.map(T=>T.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(T=>new We(T));if(u.length<12&&Ke({instructions:p,payer:this.feePayer,signers:d})||Ke({instructions:f,payer:this.feePayer,signers:d}))u.push(l);else{if(u.length===0)throw Error("item ins too big");Ke({instructions:e?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:d})?s.push(new Ve().add(...i.instructions,...u)):s.push(new Ve().add(...u)),a.push(Array.from(new Set(u.map(T=>T.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat())).map(T=>o[T]).filter(T=>T!==void 0)),u=[l]}}),u.length>0){let f=[...new Set(u.map(p=>p.keys.filter(h=>h.isSigner).map(h=>h.pubkey.toString())).flat()).values()].map(p=>o[p]).filter(p=>p!==void 0);Ke({instructions:e?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:f.map(p=>p.publicKey)})?s.push(new Ve().add(...i.instructions,...u)):s.push(new Ve().add(...u)),a.push(f)}return s.forEach(l=>l.feePayer=this.feePayer),(m=this.owner)!=null&&m.signer&&a.forEach(l=>{l.some(f=>f.publicKey.equals(this.owner.publicKey))||l.push(this.owner.signer)}),{builder:this,transactions:s,signers:a,instructionTypes:this.instructionTypes,execute:async l=>{var P;let{sequentially:f,onTxUpdate:p,recentBlockHash:h,skipPreflight:d=!0}=l||{},T=h!=null?h:await ke(this.connection,this.blockhashCommitment);if(s.forEach(async(y,b)=>{y.recentBlockhash=T,a[b].length&&y.sign(...a[b])}),Te(s),(P=this.owner)!=null&&P.isKeyPair){if(f){let y=[];for(let b of s){let w=await _t(this.connection,b,this.signers.find(B=>B.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:d});y.push(w)}return{txIds:y,signedTxs:s}}return{txIds:await Promise.all(s.map(async y=>await this.connection.sendRawTransaction(y.serialize(),{skipPreflight:d}))),signedTxs:s}}if(this.signAllTransactions){let y=await this.signAllTransactions(s);if(f){let b=0,w=[],B=async()=>{if(!y[b])return;let A=await this.connection.sendRawTransaction(y[b].serialize(),{skipPreflight:d});w.push({txId:A,status:"sent",signedTx:y[b]}),p==null||p([...w]),b++,this.connection.onSignature(A,K=>{let I=w.findIndex(M=>M.txId===A);I>-1&&(w[I].status=K.err?"error":"success"),p==null||p([...w]),K.err||B()},"processed"),this.connection.getSignatureStatus(A)};return await B(),{txIds:w.map(A=>A.txId),signedTxs:y}}else{let b=[];for(let w=0;w<y.length;w+=1){let B=await this.connection.sendRawTransaction(y[w].serialize(),{skipPreflight:d});b.push(B)}return{txIds:b,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(t){var P;let T=t||{},{computeBudgetConfig:e,lookupTableCache:r={},lookupTableAddress:i=[]}=T,o=ce(T,["computeBudgetConfig","lookupTableCache","lookupTableAddress"]),s=D(D({},this.cluster==="devnet"?{}:lt),r),a=Array.from(new Set([...this.lookupTableAddress,...i])),u=[];for(let y of a)s[y]===void 0&&u.push(new We(y));let c=await Ot({connection:this.connection,address:u});for(let[y,b]of Object.entries(c))s[y]=b;let m=e?it(e):{instructions:[],instructionTypes:[]},l=await ke(this.connection,this.blockhashCommitment),f=this.signers.reduce((y,b)=>G(D({},y),{[b.publicKey.toBase58()]:b}),{}),p=[],h=[],d=[];if(this.allInstructions.forEach(y=>{let b=[...d,y],w=e?[...m.instructions,...b]:b;if(d.length<12&&ve({instructions:w,payer:this.feePayer,lookupTableAddressAccount:s})||ve({instructions:b,payer:this.feePayer,lookupTableAddressAccount:s}))d.push(y);else{if(d.length===0)throw Error("item ins too big");let B={};for(let A of[...new Set(a)])s[A]!==void 0&&(B[A]=s[A]);if(e&&ve({instructions:[...m.instructions,...d],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let A=new qe({payerKey:this.feePayer,recentBlockhash:l,instructions:[...m.instructions,...d]}).compileToV0Message(Object.values(s));p.push(new Ue(A))}else{let A=new qe({payerKey:this.feePayer,recentBlockhash:l,instructions:[...d]}).compileToV0Message(Object.values(s));p.push(new Ue(A))}h.push(Array.from(new Set(d.map(A=>A.keys.filter(K=>K.isSigner).map(K=>K.pubkey.toString())).flat())).map(A=>f[A]).filter(A=>A!==void 0)),d=[y]}}),d.length>0){let b=[...new Set(d.map(w=>w.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat()).values()].map(w=>f[w]).filter(w=>w!==void 0);if(e&&ve({instructions:[...m.instructions,...d],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let w=new qe({payerKey:this.feePayer,recentBlockhash:l,instructions:[...m.instructions,...d]}).compileToV0Message(Object.values(s));p.push(new Ue(w))}else{let w=new qe({payerKey:this.feePayer,recentBlockhash:l,instructions:[...d]}).compileToV0Message(Object.values(s));p.push(new Ue(w))}h.push(b)}return(P=this.owner)!=null&&P.signer&&h.forEach(y=>{y.some(b=>b.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),{builder:this,transactions:p,buildProps:t,signers:h,instructionTypes:this.instructionTypes,execute:async y=>{var K;let{sequentially:b,onTxUpdate:w,recentBlockHash:B,skipPreflight:A=!0}=y||{};if(p.map(async(I,M)=>{h[M].length&&I.sign(h[M]),B&&(I.message.recentBlockhash=B)}),Te(p),(K=this.owner)!=null&&K.isKeyPair){if(b){let I=[];for(let M of p){let v=await this.connection.sendTransaction(M,{skipPreflight:A}),{lastValidBlockHeight:R,blockhash:U}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:U,lastValidBlockHeight:R,signature:v},"confirmed"),I.push(v)}return{txIds:I,signedTxs:p}}return{txIds:await Promise.all(p.map(async I=>await this.connection.sendTransaction(I,{skipPreflight:A}))),signedTxs:p}}if(this.signAllTransactions){let I=await this.signAllTransactions(p);if(b){let M=0,v=[],R=async()=>{if(!I[M])return;let U=await this.connection.sendTransaction(I[M],{skipPreflight:A});v.push({txId:U,status:"sent",signedTx:I[M]}),w==null||w([...v]),M++,this.connection.onSignature(U,X=>{let Q=v.findIndex(V=>V.txId===U);Q>-1&&(v[Q].status=X.err?"error":"success"),w==null||w([...v]),X.err||R()},"processed"),this.connection.getSignatureStatus(U)};return R(),{txIds:[],signedTxs:I}}else{let M=[];for(let v=0;v<I.length;v+=1){let R=await this.connection.sendTransaction(I[v],{skipPreflight:A});M.push(R)}return{txIds:M,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}};var Wt=(...n)=>n.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),Ge=class{constructor({scope:t,moduleName:e}){this.disabled=!1;this.scope=t,this.logger=Y(e)}createTxBuilder(t){return this.scope.checkOwner(),new mt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(Wt(t))}logInfo(...t){this.logger.info(Wt(t))}logAndCreateError(...t){let e=Wt(t);throw new Error(e)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var Ii=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Ni=Buffer.from("amm_config","utf8"),Li=Buffer.from("pool","utf8"),Mi=Buffer.from("pool_lp_mint","utf8"),Ri=Buffer.from("pool_vault","utf8"),Ei=Buffer.from("observation","utf8");function ft(n){return pe([Ii],n)}function Di(n,t){return pe([Ni,Fi(t)],n)}function Ki(n,t,e,r){return pe([Li,t.toBuffer(),e.toBuffer(),r.toBuffer()],n)}function vi(n,t){return pe([Mi,t.toBuffer()],n)}function On(n,t,e){return pe([Ri,t.toBuffer(),e.toBuffer()],n)}function Vt(n,t){return pe([Ei,t.toBuffer()],n)}function Fi(n){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,n,!1),new Uint8Array(t)}function _n({programId:n,mintA:t,mintB:e}){let r=Di(n,0).publicKey,i=ft(n).publicKey,o=Ki(n,r,t,e).publicKey,s=vi(n,o).publicKey,a=On(n,o,t).publicKey,u=On(n,o,e).publicKey,c=Vt(n,o).publicKey;return{poolId:o,configId:r,authority:i,lpMint:s,vaultA:a,vaultB:u,observationId:c}}import{TransactionInstruction as dt}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Zt,TOKEN_2022_PROGRAM_ID as jn,ASSOCIATED_TOKEN_PROGRAM_ID as Zi}from"@solana/spl-token";import{PublicKey as Hi}from"@solana/web3.js";import Gn,{isBN as Hn}from"bn.js";import{bits as Ju,BitStructure as Xu,blob as Oi,Blob as Qu,cstr as $u,f32 as ec,f32be as tc,f64 as nc,f64be as rc,greedy as ic,Layout as _i,ns64 as oc,ns64be as sc,nu64 as ac,nu64be as uc,offset as cc,s16 as lc,s16be as mc,s24 as fc,s24be as pc,s32 as dc,s32be as gc,s40 as hc,s40be as bc,s48 as yc,s48be as wc,s8 as Pc,seq as Wi,struct as Tc,Structure as Vi,u16 as qi,u16be as Ac,u24 as xc,u24be as Bc,u32 as kc,u32be as Sc,u40 as Cc,u40be as Ic,u48 as Nc,u48be as Lc,u8 as Ui,UInt as Gi,union as Mc,Union as Rc,unionLayoutDiscriminator as Ec,utf8 as Dc}from"@solana/buffer-layout";var qt=_i,Wn=Vi;var Ut=Gi;var Vn=Ui,qn=qi;var Un=Wi;var Ie=Oi;var Gt=class extends qt{constructor(e,r,i){super(e,i);this.blob=Ie(e),this.signed=r}decode(e,r=0){let i=new Gn(this.blob.decode(e,r),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(e,r,i=0){return typeof e=="number"&&(e=new Gn(e)),this.signed&&(e=e.toTwos(this.span*8)),this.blob.encode(e.toArrayLike(Buffer,"le",this.span),r,i)}};function ae(n){return new Ut(1,n)}function zt(n){return new Ut(4,n)}function _(n){return new Gt(8,!1,n)}var pt=class extends qt{constructor(e,r,i,o){super(e.span,o);this.layout=e,this.decoder=r,this.encoder=i}decode(e,r){return this.decoder(this.layout.decode(e,r))}encode(e,r,i){return this.layout.encode(this.encoder(e),r,i)}getSpan(e,r){return this.layout.getSpan(e,r)}};function J(n){return new pt(Ie(32),t=>new Hi(t),t=>t.toBuffer(),n)}function zn(n){return new pt(Vn(),zi,ji,n)}function zi(n){if(n===0)return!1;if(n===1)return!0;throw new Error("Invalid bool: "+n)}function ji(n){return n?1:0}var Ht=class extends Wn{decode(t,e){return super.decode(t,e)}};function ue(n,t,e){return new Ht(n,t,e)}function jt(n,t,e){let r,i=typeof t=="number"?t:Hn(t)?t.toNumber():new Proxy(t,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=Hn(a)?a.toNumber():a,Reflect.set(o,"count",r)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(r=a),Reflect.set(o,s,a)}});return Un(n,i,e)}var Yi=Y("Raydium_cpmm"),gt={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]};function Zn(n,t,e,r,i,o,s,a,u,c,m,l,f,p,h,d,T,P,y,b){let w=ue([_("amountMaxA"),_("amountMaxB"),_("openTime")]),B=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:T,isSigner:!1,isWritable:!0},{pubkey:Zt,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:Zi,isSigner:!1,isWritable:!1},{pubkey:wn,isSigner:!1,isWritable:!1},{pubkey:yn,isSigner:!1,isWritable:!1}],A=Buffer.alloc(w.span);return w.encode({amountMaxA:P,amountMaxB:y,openTime:b},A),new dt({keys:B,programId:n,data:Buffer.from([...gt.initialize,...A])})}function Yn(n,t,e,r,i,o,s,a,u,c,m,l,f,p,h){let d=ue([_("lpAmount"),_("amountMaxA"),_("amountMaxB")]),T=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:Zt,isSigner:!1,isWritable:!1},{pubkey:jn,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0}],P=Buffer.alloc(d.span);return Yi.debug("cpmm deposit data",{lpAmount:f.toString(),amountMaxA:p.toString(),amountMaxB:h.toString()}),d.encode({lpAmount:f,amountMaxA:p,amountMaxB:h},P),new dt({keys:T,programId:n,data:Buffer.from([...gt.deposit,...P])})}function Jn(n,t,e,r,i,o,s,a,u,c,m,l,f,p,h){let d=ue([_("lpAmount"),_("amountMinA"),_("amountMinB")]),T=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:Zt,isSigner:!1,isWritable:!1},{pubkey:jn,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:bn,isSigner:!1,isWritable:!1}],P=Buffer.alloc(d.span);return d.encode({lpAmount:f,amountMinA:p,amountMinB:h},P),new dt({keys:T,programId:n,data:Buffer.from([...gt.withdraw,...P])})}function Xn(n,t,e,r,i,o,s,a,u,c,m,l,f,p,h,d){let T=ue([_("amountIn"),_("amounOutMin")]),P=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0}],y=Buffer.alloc(T.span);return T.encode({amountIn:h,amounOutMin:d},y),new dt({keys:P,programId:n,data:Buffer.from([...gt.swapBaseInput,...y])})}import z from"bn.js";var Qn=ue([Ie(8),ae("bump"),zn("disableCreatePool"),qn("index"),_("tradeFeeRate"),_("protocolFeeRate"),_("fundFeeRate"),_("createPoolFee"),J("protocolOwner"),J("fundOwner"),jt(_(),16)]),$n=ue([Ie(8),J("configId"),J("poolCreator"),J("vaultA"),J("vaultB"),J("mintLp"),J("mintA"),J("mintB"),J("mintProgramA"),J("mintProgramB"),J("observationId"),ae("bump"),ae("status"),ae("lpDecimals"),ae("mintDecimalA"),ae("mintDecimalB"),_("lpAmount"),_("protocolFeesMintA"),_("protocolFeesMintB"),_("fundFeesMintA"),_("fundFeesMintB"),_("openTime"),jt(_(),32)]);var rl=ue([zt("mintAuthorityOption"),J("mintAuthority"),_("supply"),ae("decimals"),ae("isInitialized"),zt("freezeAuthorityOption"),J("freezeAuthority")]);import{PublicKey as al}from"@solana/web3.js";import{MintLayout as cl,TOKEN_PROGRAM_ID as ml}from"@solana/spl-token";var Ne=i=>{var o=i,{address:n,programId:t,decimals:e}=o,r=ce(o,["address","programId","decimals"]);return D({chainId:101,address:et(n).toBase58(),programId:t,logoURI:"",symbol:"",name:"",decimals:e,tags:[],extensions:r.extensions||{}},r)},He=n=>n?G(D({},n),{transferFeeConfigAuthority:n.transferFeeConfigAuthority.toBase58(),withdrawWithheldAuthority:n.withdrawWithheldAuthority.toBase58(),withheldAmount:n.withheldAmount.toString(),olderTransferFee:G(D({},n.olderTransferFee),{epoch:n.olderTransferFee.epoch.toString(),maximumFee:n.olderTransferFee.maximumFee.toString()}),newerTransferFee:G(D({},n.newerTransferFee),{epoch:n.newerTransferFee.epoch.toString(),maximumFee:n.newerTransferFee.maximumFee.toString()})}):void 0;var Yt=class extends Ge{constructor(t){super(t)}async load(){this.checkDisabled()}async getCpmmPoolKeys(t){return(await this.scope.api.fetchPoolKeysById({idList:[t]}))[0]}async getRpcPoolInfo(t,e){return(await this.getRpcPoolInfos([t],e))[t]}async getRpcPoolInfos(t,e){let r=await _e(this.scope.connection,t.map(l=>({pubkey:new S(l)}))),i={},o=new Set,s=[];for(let l=0;l<t.length;l++){let f=r[l];if(f.accountInfo===null)throw Error("fetch pool info error: "+String(t[l]));let p=$n.decode(f.accountInfo.data);i[String(t[l])]=G(D({},p),{programId:f.accountInfo.owner}),o.add(String(p.configId)),s.push(p.vaultA,p.vaultB)}let a={};if(e){let l=[...o],f=await _e(this.scope.connection,l.map(p=>({pubkey:new S(p)})));for(let p=0;p<l.length;p++){let h=f[p].accountInfo;if(h===null)throw Error("fetch pool config error: "+l[p]);a[l[p]]=Qn.decode(h.data)}}let u={},c=await _e(this.scope.connection,s.map(l=>({pubkey:new S(l)})));for(let l=0;l<s.length;l++){let f=c[l].accountInfo;if(f===null)throw Error("fetch vault info error: "+s[l]);u[String(s[l])]=new z(Ji.decode(f.data).amount.toString())}let m={};for(let[l,f]of Object.entries(i)){let p=u[f.vaultA.toString()].sub(f.protocolFeesMintA).sub(f.fundFeesMintA),h=u[f.vaultB.toString()].sub(f.protocolFeesMintB).sub(f.fundFeesMintB);m[l]=G(D({},f),{baseReserve:p,quoteReserve:h,vaultAAmount:u[f.vaultA.toString()],vaultBAmount:u[f.vaultB.toString()],configInfo:a[f.configId.toString()],poolPrice:new ee(h.toString()).div(new ee(10).pow(f.mintDecimalB)).div(new ee(p.toString()).div(new ee(10).pow(f.mintDecimalA)))})}return m}toComputePoolInfos({pools:t,mintInfos:e}){return Object.keys(t).reduce((r,i)=>{var u,c,m,l;let o=t[i],[s,a]=[o.mintA.toBase58(),o.mintB.toBase58()];return G(D({},r),{[i]:G(D({},o),{id:new S(i),configInfo:o.configInfo,version:7,authority:ft(o.programId).publicKey,mintA:Ne({address:s,decimals:o.mintDecimalA,programId:o.mintProgramA.toBase58(),extensions:{feeConfig:(u=e[s])!=null&&u.feeConfig?He((c=e[s])==null?void 0:c.feeConfig):void 0}}),mintB:Ne({address:a,decimals:o.mintDecimalB,programId:o.mintProgramB.toBase58(),extensions:{feeConfig:(m=e[a])!=null&&m.feeConfig?He((l=e[a])==null?void 0:l.feeConfig):void 0}})})})},{})}async getPoolInfoFromRpc(t){let e=await this.getRpcPoolInfo(t,!0),r=await vn({connection:this.scope.connection,mints:[e.mintA,e.mintB]}),i=Ne({address:e.mintA.toBase58(),decimals:e.mintDecimalA,programId:e.mintProgramA.toBase58(),extensions:{feeConfig:r[e.mintA.toBase58()].feeConfig?He(r[e.mintA.toBase58()].feeConfig):void 0}}),o=Ne({address:e.mintB.toBase58(),decimals:e.mintDecimalB,programId:e.mintProgramB.toBase58(),extensions:{feeConfig:r[e.mintB.toBase58()].feeConfig?He(r[e.mintB.toBase58()].feeConfig):void 0}}),s=Ne({address:e.mintLp.toBase58(),decimals:e.lpDecimals,programId:Ae.toBase58()}),a={id:e.configId.toBase58(),index:e.configInfo.index,protocolFeeRate:e.configInfo.protocolFeeRate.toNumber(),tradeFeeRate:e.configInfo.tradeFeeRate.toNumber(),fundFeeRate:e.configInfo.fundFeeRate.toNumber(),createPoolFee:e.configInfo.createPoolFee.toString()},u={volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[]};return{poolInfo:{programId:e.programId.toBase58(),id:t,type:"Standard",lpMint:s,lpPrice:0,lpAmount:e.lpAmount.toNumber(),config:a,mintA:i,mintB:o,rewardDefaultInfos:[],rewardDefaultPoolInfos:"Ecosystem",price:e.poolPrice.toNumber(),mintAmountA:new ee(e.vaultAAmount.toString()).div(10**i.decimals).toNumber(),mintAmountB:new ee(e.vaultBAmount.toString()).div(10**o.decimals).toNumber(),feeRate:e.configInfo.tradeFeeRate.toNumber(),openTime:e.openTime.toString(),tvl:0,day:u,week:u,month:u,pooltype:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0},poolKeys:{programId:e.programId.toBase58(),id:t,mintA:i,mintB:o,openTime:e.openTime.toString(),vault:{A:e.vaultA.toBase58(),B:e.vaultB.toBase58()},authority:ft(e.programId).publicKey.toBase58(),mintLp:s,config:a},rpcData:e}}async createPool(m){var l=m,{programId:t,poolFeeAccount:e,startTime:r,ownerInfo:i,associatedOnly:o=!1,checkCreateATAOwner:s=!1,txVersion:a,computeBudgetConfig:u}=l,c=ce(l,["programId","poolFeeAccount","startTime","ownerInfo","associatedOnly","checkCreateATAOwner","txVersion","computeBudgetConfig"]);var U,X,Q;let f=i.feePayer||((U=this.scope.owner)==null?void 0:U.publicKey),p=new z(new S(c.mintA.address).toBuffer()).lte(new z(new S(c.mintB.address).toBuffer())),[h,d]=p?[c.mintA,c.mintB]:[c.mintB,c.mintA],[T,P]=p?[c.mintAAmount,c.mintBAmount]:[c.mintBAmount,c.mintAAmount],y=i.useSOLBalance&&h.address===ht.toBase58(),b=i.useSOLBalance&&d.address===ht.toBase58(),[w,B]=[new S(h.address),new S(d.address)],A=this.createTxBuilder(),{account:K,instructionParams:I}=await this.scope.account.getOrCreateTokenAccount({mint:w,tokenProgram:h.programId,owner:this.scope.ownerPubKey,createInfo:y?{payer:f,amount:T}:void 0,notUseTokenAccount:y,skipCloseAccount:!y,associatedOnly:y?!1:o,checkCreateATAOwner:s});A.addInstruction(I||{});let{account:M,instructionParams:v}=await this.scope.account.getOrCreateTokenAccount({mint:new S(d.address),tokenProgram:d.programId,owner:this.scope.ownerPubKey,createInfo:b?{payer:f,amount:P}:void 0,notUseTokenAccount:b,skipCloseAccount:!b,associatedOnly:b?!1:o,checkCreateATAOwner:s});if(A.addInstruction(v||{}),K===void 0||M===void 0)throw Error("you don't has some token account");let R=_n({programId:t,mintA:w,mintB:B});return A.addInstruction({instructions:[Zn(t,this.scope.ownerPubKey,R.configId,R.authority,R.poolId,w,B,R.lpMint,K,M,Rn(this.scope.ownerPubKey,R.lpMint).publicKey,R.vaultA,R.vaultB,e,new S((X=h.programId)!=null?X:Ae),new S((Q=d.programId)!=null?Q:Ae),R.observationId,T,P,r)],instructionTypes:[fe.CpmmCreatePool]}),A.addCustomComputeBudget(u),A.versionBuild({txVersion:a,extInfo:{address:G(D({},R),{mintA:h,mintB:d,programId:t,poolFeeAccount:e})}})}async addLiquidity(t){let{poolInfo:e,poolKeys:r,inputAmount:i,baseIn:o,slippage:s,computeResult:a,computeBudgetConfig:u,config:c,txVersion:m}=t;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region"),i.isZero()&&this.logAndCreateError("amounts must greater than zero","amountInA",{amountInA:i.toString()});let{account:l}=this.scope,{bypassAssociatedCheck:f,checkCreateATAOwner:p}=D({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},c),h=a?void 0:await this.getRpcPoolInfo(e.id),{liquidity:d,inputAmountFee:T,anotherAmount:P}=a||this.computePairAmount({poolInfo:G(D({},e),{lpAmount:new ee(h.lpAmount.toString()).div(10**e.lpMint.decimals).toNumber()}),baseReserve:h.baseReserve,quoteReserve:h.quoteReserve,slippage:new se(0),baseIn:o,epochInfo:await this.scope.fetchEpochInfo(),amount:new ee(i.toString()).div(10**(o?e.mintA.decimals:e.mintB.decimals))}),y=P.amount,b=e.mintA.address===ht.toString(),w=e.mintB.address===ht.toString(),B=this.createTxBuilder(),[A,K]=[new S(e.mintA.address),new S(e.mintB.address)],{account:I,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintA.programId,mint:new S(e.mintA.address),owner:this.scope.ownerPubKey,createInfo:b||(o?i:y).isZero()?{payer:this.scope.ownerPubKey,amount:o?i:y}:void 0,skipCloseAccount:!b,notUseTokenAccount:b,associatedOnly:!1,checkCreateATAOwner:p});B.addInstruction(M||{});let{account:v,instructionParams:R}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintB.programId,mint:new S(e.mintB.address),owner:this.scope.ownerPubKey,createInfo:w||(o?y:i).isZero()?{payer:this.scope.ownerPubKey,amount:o?y:i}:void 0,skipCloseAccount:!w,notUseTokenAccount:w,associatedOnly:!1,checkCreateATAOwner:p});B.addInstruction(R||{}),!I&&!v&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",l.tokenAccounts);let U=await l.getCreatedTokenAccount({mint:new S(e.lpMint.address)}),Jt=await l.handleTokenAccount({side:"out",amount:0,mint:new S(e.lpMint.address),tokenAccount:U,bypassAssociatedCheck:f,checkCreateATAOwner:p}),{tokenAccount:X}=Jt,Q=ce(Jt,["tokenAccount"]);B.addInstruction(Q);let V=r!=null?r:await this.getCpmmPoolKeys(e.id),F=new se(new z(1)).sub(s);return B.addInstruction({instructions:[Yn(new S(e.programId),this.scope.ownerPubKey,new S(V.authority),new S(e.id),X,I,v,new S(V.vault.A),new S(V.vault.B),A,K,new S(e.lpMint.address),a?a==null?void 0:a.liquidity:F.mul(d).quotient,o?T.amount:y,o?y:T.amount)],instructionTypes:[fe.CpmmAddLiquidity],lookupTableAddress:V.lookupTableAccount?[V.lookupTableAccount]:[]}),B.addCustomComputeBudget(u),B.versionBuild({txVersion:m})}async withdrawLiquidity(t){var X,Q;let{poolInfo:e,poolKeys:r,lpAmount:i,slippage:o,computeBudgetConfig:s,txVersion:a}=t;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region");let u=new se(new z(1)).sub(o),c=await this.getRpcPoolInfo(e.id),[m,l]=[u.mul(i.mul(c.baseReserve).div(c.lpAmount)).quotient,u.mul(i.mul(c.quoteReserve).div(c.lpAmount)).quotient],f=await this.scope.fetchEpochInfo(),[p,h]=[Ce(m,e.mintA.extensions.feeConfig,f,!1),Ce(l,e.mintB.extensions.feeConfig,f,!1)],{account:d}=this.scope,T=this.createTxBuilder(),[P,y]=[new S(e.mintA.address),new S(e.mintB.address)],b=P.equals(me),w=y.equals(me),B,A,{account:K,instructionParams:I}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintA.programId,mint:new S(e.mintA.address),notUseTokenAccount:b,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!b,associatedOnly:!b,checkCreateATAOwner:!1});B=K,I&&T.addInstruction(I);let{account:M,instructionParams:v}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintB.programId,mint:new S(e.mintB.address),notUseTokenAccount:w,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!w,associatedOnly:!w,checkCreateATAOwner:!1});A=M,v&&T.addInstruction(v),(!B||!A)&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",d.tokenAccounts);let R=await d.getCreatedTokenAccount({mint:new S(e.lpMint.address)});R||this.logAndCreateError("cannot found lp token account","tokenAccounts",d.tokenAccounts);let U=r!=null?r:await this.getCpmmPoolKeys(e.id);return T.addInstruction({instructions:[Jn(new S(e.programId),this.scope.ownerPubKey,new S(U.authority),new S(e.id),R,B,A,new S(U.vault.A),new S(U.vault.B),P,y,new S(e.lpMint.address),i,m.sub((X=p.fee)!=null?X:new z(0)),l.sub((Q=h.fee)!=null?Q:new z(0)))],instructionTypes:[fe.CpmmWithdrawLiquidity],lookupTableAddress:U.lookupTableAccount?[U.lookupTableAccount]:[]}),T.addCustomComputeBudget(s),T.versionBuild({txVersion:a})}async swap(t){var K,I,M,v;let{poolInfo:e,poolKeys:r,baseIn:i,swapResult:o,slippage:s=0,config:a,computeBudgetConfig:u,txVersion:c}=t,{bypassAssociatedCheck:m,checkCreateATAOwner:l,associatedOnly:f}=D({bypassAssociatedCheck:!1,checkCreateATAOwner:!1,associatedOnly:!0},a),p=this.createTxBuilder(),[h,d]=[new S(e.mintA.address),new S(e.mintB.address)];o.destinationAmountSwapped=o.destinationAmountSwapped.mul(new z((1-s)*1e4)).div(new z(1e4));let T=e.mintA.address===me.toBase58(),P=e.mintB.address===me.toBase58(),{account:y,instructionParams:b}=await this.scope.account.getOrCreateTokenAccount({mint:h,tokenProgram:new S((K=e.mintA.programId)!=null?K:Ae),owner:this.scope.ownerPubKey,createInfo:T||!i?{payer:this.scope.ownerPubKey,amount:i?o.sourceAmountSwapped:0}:void 0,notUseTokenAccount:T,skipCloseAccount:!T,associatedOnly:T?!1:f,checkCreateATAOwner:l});b&&p.addInstruction(b);let{account:w,instructionParams:B}=await this.scope.account.getOrCreateTokenAccount({mint:d,tokenProgram:new S((I=e.mintB.programId)!=null?I:Ae),owner:this.scope.ownerPubKey,createInfo:P||i?{payer:this.scope.ownerPubKey,amount:i?0:o.sourceAmountSwapped}:void 0,notUseTokenAccount:P,skipCloseAccount:!P,associatedOnly:P?!1:f,checkCreateATAOwner:l});B&&p.addInstruction(B),(!y||!w)&&this.logAndCreateError("user do not have token account",{mintA:e.mintA.symbol||e.mintA.address,mintB:e.mintB.symbol||e.mintB.address,mintATokenAcc:y,mintBTokenAcc:w,mintAUseSOLBalance:T,mintBUseSOLBalance:P,associatedOnly:f});let A=r!=null?r:await this.getCpmmPoolKeys(e.id);return p.addInstruction({instructions:[Xn(new S(e.programId),this.scope.ownerPubKey,new S(A.authority),new S(A.config.id),new S(e.id),i?y:w,i?w:y,new S(A.vault[i?"A":"B"]),new S(A.vault[i?"B":"A"]),new S((M=e[i?"mintA":"mintB"].programId)!=null?M:Ae),new S((v=e[i?"mintB":"mintA"].programId)!=null?v:Ae),i?h:d,i?d:h,Vt(new S(e.programId),new S(e.id)).publicKey,o.sourceAmountSwapped,o.destinationAmountSwapped)],instructionTypes:[i?fe.CpmmSwapBaseIn:fe.CpmmSwapBaseOut]}),p.addCustomComputeBudget(u),p.versionBuild({txVersion:c})}computeSwapAmount({pool:t,amountIn:e,outputMint:r,slippage:i}){let o=r.toString()===t.mintB.address,s=ut.swap(e,o?t.baseReserve:t.quoteReserve,o?t.quoteReserve:t.baseReserve,t.configInfo.tradeFeeRate),a=new ee(s.destinationAmountSwapped.toString()).div(s.sourceAmountSwapped.toString()),u=s.destinationAmountSwapped.mul(new z((1-i)*1e4)).div(new z(1e4));return{allTrade:s.sourceAmountSwapped.eq(e),amountIn:e,amountOut:s.destinationAmountSwapped,minAmountOut:u,executionPrice:a,fee:s.tradeFee,priceImpact:t.poolPrice.sub(a).div(t.poolPrice)}}computePairAmount({poolInfo:t,baseReserve:e,quoteReserve:r,amount:i,slippage:o,epochInfo:s,baseIn:a}){var y,b,w,B,A,K,I,M;let u=1-Number(o.toSignificant())/100,c=new z(new ee(i).mul(10**t[a?"mintA":"mintB"].decimals).mul(u).toFixed(0)),m=Ce(c,t[a?"mintA":"mintB"].extensions.feeConfig,s,!1),l=c.sub((y=m.fee)!=null?y:new z(0)),f=new z(new ee(t.lpAmount).mul(10**t.lpMint.decimals).toFixed(0,ee.ROUND_DOWN));this.logDebug("baseReserve:",e.toString(),"quoteReserve:",r.toString()),this.logDebug("tokenIn:",a?t.mintA.symbol:t.mintB.symbol,"amountIn:",c.toString(),"amountInFee:",(w=(b=m.fee)==null?void 0:b.toString())!=null?w:0,"anotherToken:",a?t.mintB.symbol:t.mintA.symbol,"slippage:",`${o.toSignificant()}%`);let p=a?"base":"quote";this.logDebug("input side:",p);let h=l.mul(f).div(p==="base"?e:r),d={amount:Mt,fee:void 0,expirationTime:void 0};if(!l.isZero()){let v=Xi(h,e,r,f);this.logDebug("lpAmountData:",{amountA:v.amountA.toString(),amountB:v.amountB.toString()}),d=Ce(v[a?"amountB":"amountA"],t[a?"mintB":"mintA"].extensions.feeConfig,s,!0)}let T=new se(new z(1)).add(o),P=Ce(T.mul(d.amount.sub((B=d.fee)!=null?B:new z(0))).quotient,t[a?"mintB":"mintA"].extensions.feeConfig,s,!0);return this.logDebug("anotherAmount:",d.amount.toString(),"anotherAmountFee:",(K=(A=d.fee)==null?void 0:A.toString())!=null?K:0,"maxAnotherAmount:",P.amount.toString(),"maxAnotherAmountFee:",(M=(I=P.fee)==null?void 0:I.toString())!=null?M:0),{inputAmountFee:m,anotherAmount:d,maxAnotherAmount:P,liquidity:h}}};function Xi(n,t,e,r){let i=n.mul(t).div(r);!i.isZero()&&!n.mul(t).mod(r).isZero()&&(i=i.add(new z(1)));let o=n.mul(e).div(r);return!o.isZero()&&!n.mul(e).mod(r).isZero()&&(o=o.add(new z(1))),{amountA:i,amountB:o}}export{Yt as default};
1
+ var er=Object.defineProperty,tr=Object.defineProperties;var nr=Object.getOwnPropertyDescriptors;var ze=Object.getOwnPropertySymbols;var Qt=Object.prototype.hasOwnProperty,$t=Object.prototype.propertyIsEnumerable;var Xt=(n,t,e)=>t in n?er(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,K=(n,t)=>{for(var e in t||(t={}))Qt.call(t,e)&&Xt(n,e,t[e]);if(ze)for(var e of ze(t))$t.call(t,e)&&Xt(n,e,t[e]);return n},G=(n,t)=>tr(n,nr(t));var ce=(n,t)=>{var e={};for(var r in n)Qt.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&ze)for(var r of ze(n))t.indexOf(r)<0&&$t.call(n,r)&&(e[r]=n[r]);return e};import{PublicKey as S}from"@solana/web3.js";import{NATIVE_MINT as ht,TOKEN_PROGRAM_ID as Ae,AccountLayout as Ji}from"@solana/spl-token";import li from"big.js";import Os from"bn.js";import te from"bn.js";var xe=9e15,be=1e9,bt="0123456789abcdef",Ze="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Ye="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",yt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-xe,maxE:xe,crypto:!1},rn,le,C=!0,Xe="[DecimalError] ",he=Xe+"Invalid argument: ",on=Xe+"Precision limit exceeded",sn=Xe+"crypto unavailable",an="[object Decimal]",Z=Math.floor,H=Math.pow,rr=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,ir=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,or=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,un=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,re=1e7,k=7,sr=9007199254740991,ar=Ze.length-1,wt=Ye.length-1,b={toStringTag:an};b.absoluteValue=b.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),x(n)};b.ceil=function(){return x(new this.constructor(this),this.e+1,2)};b.clampedTo=b.clamp=function(n,t){var e,r=this,i=r.constructor;if(n=new i(n),t=new i(t),!n.s||!t.s)return new i(NaN);if(n.gt(t))throw Error(he+t);return e=r.cmp(n),e<0?n:r.cmp(t)>0?t:new i(r)};b.comparedTo=b.cmp=function(n){var t,e,r,i,o=this,s=o.d,a=(n=new o.constructor(n)).d,u=o.s,c=n.s;if(!s||!a)return!u||!c?NaN:u!==c?u:s===a?0:!s^u<0?1:-1;if(!s[0]||!a[0])return s[0]?u:a[0]?-c:0;if(u!==c)return u;if(o.e!==n.e)return o.e>n.e^u<0?1:-1;for(r=s.length,i=a.length,t=0,e=r<i?r:i;t<e;++t)if(s[t]!==a[t])return s[t]>a[t]^u<0?1:-1;return r===i?0:r>i^u<0?1:-1};b.cosine=b.cos=function(){var n,t,e=this,r=e.constructor;return e.d?e.d[0]?(n=r.precision,t=r.rounding,r.precision=n+Math.max(e.e,e.sd())+k,r.rounding=1,e=ur(r,pn(r,e)),r.precision=n,r.rounding=t,x(le==2||le==3?e.neg():e,n,t,!0)):new r(1):new r(NaN)};b.cubeRoot=b.cbrt=function(){var n,t,e,r,i,o,s,a,u,c,m=this,l=m.constructor;if(!m.isFinite()||m.isZero())return new l(m);for(C=!1,o=m.s*H(m.s*m,1/3),!o||Math.abs(o)==1/0?(e=j(m.d),n=m.e,(o=(n-e.length+1)%3)&&(e+=o==1||o==-2?"0":"00"),o=H(e,1/3),n=Z((n+1)/3)-(n%3==(n<0?-1:2)),o==1/0?e="5e"+n:(e=o.toExponential(),e=e.slice(0,e.indexOf("e")+1)+n),r=new l(e),r.s=m.s):r=new l(o.toString()),s=(n=l.precision)+3;;)if(a=r,u=a.times(a).times(a),c=u.plus(m),r=O(c.plus(m).times(a),c.plus(u),s+2,1),j(a.d).slice(0,s)===(e=j(r.d)).slice(0,s))if(e=e.slice(s-3,s+1),e=="9999"||!i&&e=="4999"){if(!i&&(x(a,n+1,0),a.times(a).times(a).eq(m))){r=a;break}s+=4,i=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(x(r,n+1,1),t=!r.times(r).times(r).eq(m));break}return C=!0,x(r,n,l.rounding,t)};b.decimalPlaces=b.dp=function(){var n,t=this.d,e=NaN;if(t){if(n=t.length-1,e=(n-Z(this.e/k))*k,n=t[n],n)for(;n%10==0;n/=10)e--;e<0&&(e=0)}return e};b.dividedBy=b.div=function(n){return O(this,new this.constructor(n))};b.dividedToIntegerBy=b.divToInt=function(n){var t=this,e=t.constructor;return x(O(t,new e(n),0,1,1),e.precision,e.rounding)};b.equals=b.eq=function(n){return this.cmp(n)===0};b.floor=function(){return x(new this.constructor(this),this.e+1,3)};b.greaterThan=b.gt=function(n){return this.cmp(n)>0};b.greaterThanOrEqualTo=b.gte=function(n){var t=this.cmp(n);return t==1||t===0};b.hyperbolicCosine=b.cosh=function(){var n,t,e,r,i,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;e=s.precision,r=s.rounding,s.precision=e+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(n=Math.ceil(i/3),t=(1/$e(4,n)).toString()):(n=16,t="2.3283064365386962890625e-10"),o=Be(s,1,o.times(t),new s(1),!0);for(var u,c=n,m=new s(8);c--;)u=o.times(o),o=a.minus(u.times(m.minus(u.times(m))));return x(o,s.precision=e,s.rounding=r,!0)};b.hyperbolicSine=b.sinh=function(){var n,t,e,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,e=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=Be(o,2,i,i,!0);else{n=1.4*Math.sqrt(r),n=n>16?16:n|0,i=i.times(1/$e(5,n)),i=Be(o,2,i,i,!0);for(var s,a=new o(5),u=new o(16),c=new o(20);n--;)s=i.times(i),i=i.times(a.plus(s.times(u.times(s).plus(c))))}return o.precision=t,o.rounding=e,x(i,t,e,!0)};b.hyperbolicTangent=b.tanh=function(){var n,t,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(n=r.precision,t=r.rounding,r.precision=n+7,r.rounding=1,O(e.sinh(),e.cosh(),r.precision=n,r.rounding=t)):new r(e.s)};b.inverseCosine=b.acos=function(){var n,t=this,e=t.constructor,r=t.abs().cmp(1),i=e.precision,o=e.rounding;return r!==-1?r===0?t.isNeg()?ne(e,i,o):new e(0):new e(NaN):t.isZero()?ne(e,i+4,o).times(.5):(e.precision=i+6,e.rounding=1,t=t.asin(),n=ne(e,i+4,o).times(.5),e.precision=i,e.rounding=o,n.minus(t))};b.inverseHyperbolicCosine=b.acosh=function(){var n,t,e=this,r=e.constructor;return e.lte(1)?new r(e.eq(1)?0:NaN):e.isFinite()?(n=r.precision,t=r.rounding,r.precision=n+Math.max(Math.abs(e.e),e.sd())+4,r.rounding=1,C=!1,e=e.times(e).minus(1).sqrt().plus(e),C=!0,r.precision=n,r.rounding=t,e.ln()):new r(e)};b.inverseHyperbolicSine=b.asinh=function(){var n,t,e=this,r=e.constructor;return!e.isFinite()||e.isZero()?new r(e):(n=r.precision,t=r.rounding,r.precision=n+2*Math.max(Math.abs(e.e),e.sd())+6,r.rounding=1,C=!1,e=e.times(e).plus(1).sqrt().plus(e),C=!0,r.precision=n,r.rounding=t,e.ln())};b.inverseHyperbolicTangent=b.atanh=function(){var n,t,e,r,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(n=o.precision,t=o.rounding,r=i.sd(),Math.max(r,n)<2*-i.e-1?x(new o(i),n,t,!0):(o.precision=e=r-i.e,i=O(i.plus(1),new o(1).minus(i),e+n,1),o.precision=n+4,o.rounding=1,i=i.ln(),o.precision=n,o.rounding=t,i.times(.5))):new o(NaN)};b.inverseSine=b.asin=function(){var n,t,e,r,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),e=o.precision,r=o.rounding,t!==-1?t===0?(n=ne(o,e+4,r).times(.5),n.s=i.s,n):new o(NaN):(o.precision=e+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=e,o.rounding=r,i.times(2)))};b.inverseTangent=b.atan=function(){var n,t,e,r,i,o,s,a,u,c=this,m=c.constructor,l=m.precision,f=m.rounding;if(c.isFinite()){if(c.isZero())return new m(c);if(c.abs().eq(1)&&l+4<=wt)return s=ne(m,l+4,f).times(.25),s.s=c.s,s}else{if(!c.s)return new m(NaN);if(l+4<=wt)return s=ne(m,l+4,f).times(.5),s.s=c.s,s}for(m.precision=a=l+10,m.rounding=1,e=Math.min(28,a/k+2|0),n=e;n;--n)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(C=!1,t=Math.ceil(a/k),r=1,u=c.times(c),s=new m(c),i=c;n!==-1;)if(i=i.times(u),o=s.minus(i.div(r+=2)),i=i.times(u),s=o.plus(i.div(r+=2)),s.d[t]!==void 0)for(n=t;s.d[n]===o.d[n]&&n--;);return e&&(s=s.times(2<<e-1)),C=!0,x(s,m.precision=l,m.rounding=f,!0)};b.isFinite=function(){return!!this.d};b.isInteger=b.isInt=function(){return!!this.d&&Z(this.e/k)>this.d.length-2};b.isNaN=function(){return!this.s};b.isNegative=b.isNeg=function(){return this.s<0};b.isPositive=b.isPos=function(){return this.s>0};b.isZero=function(){return!!this.d&&this.d[0]===0};b.lessThan=b.lt=function(n){return this.cmp(n)<0};b.lessThanOrEqualTo=b.lte=function(n){return this.cmp(n)<1};b.logarithm=b.log=function(n){var t,e,r,i,o,s,a,u,c=this,m=c.constructor,l=m.precision,f=m.rounding,p=5;if(n==null)n=new m(10),t=!0;else{if(n=new m(n),e=n.d,n.s<0||!e||!e[0]||n.eq(1))return new m(NaN);t=n.eq(10)}if(e=c.d,c.s<0||!e||!e[0]||c.eq(1))return new m(e&&!e[0]?-1/0:c.s!=1?NaN:e?0:1/0);if(t)if(e.length>1)o=!0;else{for(i=e[0];i%10===0;)i/=10;o=i!==1}if(C=!1,a=l+p,s=ge(c,a),r=t?Je(m,a+10):ge(n,a),u=O(s,r,a,1),Le(u.d,i=l,f))do if(a+=10,s=ge(c,a),r=t?Je(m,a+10):ge(n,a),u=O(s,r,a,1),!o){+j(u.d).slice(i+1,i+15)+1==1e14&&(u=x(u,l+1,0));break}while(Le(u.d,i+=10,f));return C=!0,x(u,l,f)};b.minus=b.sub=function(n){var t,e,r,i,o,s,a,u,c,m,l,f,p=this,g=p.constructor;if(n=new g(n),!p.d||!n.d)return!p.s||!n.s?n=new g(NaN):p.d?n.s=-n.s:n=new g(n.d||p.s!==n.s?p:NaN),n;if(p.s!=n.s)return n.s=-n.s,p.plus(n);if(c=p.d,f=n.d,a=g.precision,u=g.rounding,!c[0]||!f[0]){if(f[0])n.s=-n.s;else if(c[0])n=new g(p);else return new g(u===3?-0:0);return C?x(n,a,u):n}if(e=Z(n.e/k),m=Z(p.e/k),c=c.slice(),o=m-e,o){for(l=o<0,l?(t=c,o=-o,s=f.length):(t=f,e=m,s=c.length),r=Math.max(Math.ceil(a/k),s)+2,o>r&&(o=r,t.length=1),t.reverse(),r=o;r--;)t.push(0);t.reverse()}else{for(r=c.length,s=f.length,l=r<s,l&&(s=r),r=0;r<s;r++)if(c[r]!=f[r]){l=c[r]<f[r];break}o=0}for(l&&(t=c,c=f,f=t,n.s=-n.s),s=c.length,r=f.length-s;r>0;--r)c[s++]=0;for(r=f.length;r>o;){if(c[--r]<f[r]){for(i=r;i&&c[--i]===0;)c[i]=re-1;--c[i],c[r]+=re}c[r]-=f[r]}for(;c[--s]===0;)c.pop();for(;c[0]===0;c.shift())--e;return c[0]?(n.d=c,n.e=Qe(c,e),C?x(n,a,u):n):new g(u===3?-0:0)};b.modulo=b.mod=function(n){var t,e=this,r=e.constructor;return n=new r(n),!e.d||!n.s||n.d&&!n.d[0]?new r(NaN):!n.d||e.d&&!e.d[0]?x(new r(e),r.precision,r.rounding):(C=!1,r.modulo==9?(t=O(e,n.abs(),0,3,1),t.s*=n.s):t=O(e,n,0,r.modulo,1),t=t.times(n),C=!0,e.minus(t))};b.naturalExponential=b.exp=function(){return Pt(this)};b.naturalLogarithm=b.ln=function(){return ge(this)};b.negated=b.neg=function(){var n=new this.constructor(this);return n.s=-n.s,x(n)};b.plus=b.add=function(n){var t,e,r,i,o,s,a,u,c,m,l=this,f=l.constructor;if(n=new f(n),!l.d||!n.d)return!l.s||!n.s?n=new f(NaN):l.d||(n=new f(n.d||l.s===n.s?l:NaN)),n;if(l.s!=n.s)return n.s=-n.s,l.minus(n);if(c=l.d,m=n.d,a=f.precision,u=f.rounding,!c[0]||!m[0])return m[0]||(n=new f(l)),C?x(n,a,u):n;if(o=Z(l.e/k),r=Z(n.e/k),c=c.slice(),i=o-r,i){for(i<0?(e=c,i=-i,s=m.length):(e=m,r=o,s=c.length),o=Math.ceil(a/k),s=o>s?o+1:s+1,i>s&&(i=s,e.length=1),e.reverse();i--;)e.push(0);e.reverse()}for(s=c.length,i=m.length,s-i<0&&(i=s,e=m,m=c,c=e),t=0;i;)t=(c[--i]=c[i]+m[i]+t)/re|0,c[i]%=re;for(t&&(c.unshift(t),++r),s=c.length;c[--s]==0;)c.pop();return n.d=c,n.e=Qe(c,r),C?x(n,a,u):n};b.precision=b.sd=function(n){var t,e=this;if(n!==void 0&&n!==!!n&&n!==1&&n!==0)throw Error(he+n);return e.d?(t=cn(e.d),n&&e.e+1>t&&(t=e.e+1)):t=NaN,t};b.round=function(){var n=this,t=n.constructor;return x(new t(n),n.e+1,t.rounding)};b.sine=b.sin=function(){var n,t,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(n=r.precision,t=r.rounding,r.precision=n+Math.max(e.e,e.sd())+k,r.rounding=1,e=lr(r,pn(r,e)),r.precision=n,r.rounding=t,x(le>2?e.neg():e,n,t,!0)):new r(NaN)};b.squareRoot=b.sqrt=function(){var n,t,e,r,i,o,s=this,a=s.d,u=s.e,c=s.s,m=s.constructor;if(c!==1||!a||!a[0])return new m(!c||c<0&&(!a||a[0])?NaN:a?s:1/0);for(C=!1,c=Math.sqrt(+s),c==0||c==1/0?(t=j(a),(t.length+u)%2==0&&(t+="0"),c=Math.sqrt(t),u=Z((u+1)/2)-(u<0||u%2),c==1/0?t="5e"+u:(t=c.toExponential(),t=t.slice(0,t.indexOf("e")+1)+u),r=new m(t)):r=new m(c.toString()),e=(u=m.precision)+3;;)if(o=r,r=o.plus(O(s,o,e+2,1)).times(.5),j(o.d).slice(0,e)===(t=j(r.d)).slice(0,e))if(t=t.slice(e-3,e+1),t=="9999"||!i&&t=="4999"){if(!i&&(x(o,u+1,0),o.times(o).eq(s))){r=o;break}e+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(x(r,u+1,1),n=!r.times(r).eq(s));break}return C=!0,x(r,u,m.rounding,n)};b.tangent=b.tan=function(){var n,t,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(n=r.precision,t=r.rounding,r.precision=n+10,r.rounding=1,e=e.sin(),e.s=1,e=O(e,new r(1).minus(e.times(e)).sqrt(),n+10,0),r.precision=n,r.rounding=t,x(le==2||le==4?e.neg():e,n,t,!0)):new r(NaN)};b.times=b.mul=function(n){var t,e,r,i,o,s,a,u,c,m=this,l=m.constructor,f=m.d,p=(n=new l(n)).d;if(n.s*=m.s,!f||!f[0]||!p||!p[0])return new l(!n.s||f&&!f[0]&&!p||p&&!p[0]&&!f?NaN:!f||!p?n.s/0:n.s*0);for(e=Z(m.e/k)+Z(n.e/k),u=f.length,c=p.length,u<c&&(o=f,f=p,p=o,s=u,u=c,c=s),o=[],s=u+c,r=s;r--;)o.push(0);for(r=c;--r>=0;){for(t=0,i=u+r;i>r;)a=o[i]+p[r]*f[i-r-1]+t,o[i--]=a%re|0,t=a/re|0;o[i]=(o[i]+t)%re|0}for(;!o[--s];)o.pop();return t?++e:o.shift(),n.d=o,n.e=Qe(o,e),C?x(n,l.precision,l.rounding):n};b.toBinary=function(n,t){return At(this,2,n,t)};b.toDecimalPlaces=b.toDP=function(n,t){var e=this,r=e.constructor;return e=new r(e),n===void 0?e:($(n,0,be),t===void 0?t=r.rounding:$(t,0,8),x(e,n+e.e+1,t))};b.toExponential=function(n,t){var e,r=this,i=r.constructor;return n===void 0?e=oe(r,!0):($(n,0,be),t===void 0?t=i.rounding:$(t,0,8),r=x(new i(r),n+1,t),e=oe(r,!0,n+1)),r.isNeg()&&!r.isZero()?"-"+e:e};b.toFixed=function(n,t){var e,r,i=this,o=i.constructor;return n===void 0?e=oe(i):($(n,0,be),t===void 0?t=o.rounding:$(t,0,8),r=x(new o(i),n+i.e+1,t),e=oe(r,!1,n+r.e+1)),i.isNeg()&&!i.isZero()?"-"+e:e};b.toFraction=function(n){var t,e,r,i,o,s,a,u,c,m,l,f,p=this,g=p.d,d=p.constructor;if(!g)return new d(p);if(c=e=new d(1),r=u=new d(0),t=new d(r),o=t.e=cn(g)-p.e-1,s=o%k,t.d[0]=H(10,s<0?k+s:s),n==null)n=o>0?t:c;else{if(a=new d(n),!a.isInt()||a.lt(c))throw Error(he+a);n=a.gt(t)?o>0?t:c:a}for(C=!1,a=new d(j(g)),m=d.precision,d.precision=o=g.length*k*2;l=O(a,t,0,1,1),i=e.plus(l.times(r)),i.cmp(n)!=1;)e=r,r=i,i=c,c=u.plus(l.times(i)),u=i,i=t,t=a.minus(l.times(i)),a=i;return i=O(n.minus(e),r,0,1,1),u=u.plus(i.times(c)),e=e.plus(i.times(r)),u.s=c.s=p.s,f=O(c,r,o,1).minus(p).abs().cmp(O(u,e,o,1).minus(p).abs())<1?[c,r]:[u,e],d.precision=m,C=!0,f};b.toHexadecimal=b.toHex=function(n,t){return At(this,16,n,t)};b.toNearest=function(n,t){var e=this,r=e.constructor;if(e=new r(e),n==null){if(!e.d)return e;n=new r(1),t=r.rounding}else{if(n=new r(n),t===void 0?t=r.rounding:$(t,0,8),!e.d)return n.s?e:n;if(!n.d)return n.s&&(n.s=e.s),n}return n.d[0]?(C=!1,e=O(e,n,0,t,1).times(n),C=!0,x(e)):(n.s=e.s,e=n),e};b.toNumber=function(){return+this};b.toOctal=function(n,t){return At(this,8,n,t)};b.toPower=b.pow=function(n){var t,e,r,i,o,s,a=this,u=a.constructor,c=+(n=new u(n));if(!a.d||!n.d||!a.d[0]||!n.d[0])return new u(H(+a,c));if(a=new u(a),a.eq(1))return a;if(r=u.precision,o=u.rounding,n.eq(1))return x(a,r,o);if(t=Z(n.e/k),t>=n.d.length-1&&(e=c<0?-c:c)<=sr)return i=ln(u,a,e,r),n.s<0?new u(1).div(i):x(i,r,o);if(s=a.s,s<0){if(t<n.d.length-1)return new u(NaN);if((n.d[t]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return e=H(+a,c),t=e==0||!isFinite(e)?Z(c*(Math.log("0."+j(a.d))/Math.LN10+a.e+1)):new u(e+"").e,t>u.maxE+1||t<u.minE-1?new u(t>0?s/0:0):(C=!1,u.rounding=a.s=1,e=Math.min(12,(t+"").length),i=Pt(n.times(ge(a,r+e)),r),i.d&&(i=x(i,r+5,1),Le(i.d,r,o)&&(t=r+10,i=x(Pt(n.times(ge(a,t+e)),t),t+5,1),+j(i.d).slice(r+1,r+15)+1==1e14&&(i=x(i,r+1,0)))),i.s=s,C=!0,u.rounding=o,x(i,r,o))};b.toPrecision=function(n,t){var e,r=this,i=r.constructor;return n===void 0?e=oe(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):($(n,1,be),t===void 0?t=i.rounding:$(t,0,8),r=x(new i(r),n,t),e=oe(r,n<=r.e||r.e<=i.toExpNeg,n)),r.isNeg()&&!r.isZero()?"-"+e:e};b.toSignificantDigits=b.toSD=function(n,t){var e=this,r=e.constructor;return n===void 0?(n=r.precision,t=r.rounding):($(n,1,be),t===void 0?t=r.rounding:$(t,0,8)),x(new r(e),n,t)};b.toString=function(){var n=this,t=n.constructor,e=oe(n,n.e<=t.toExpNeg||n.e>=t.toExpPos);return n.isNeg()&&!n.isZero()?"-"+e:e};b.truncated=b.trunc=function(){return x(new this.constructor(this),this.e+1,1)};b.valueOf=b.toJSON=function(){var n=this,t=n.constructor,e=oe(n,n.e<=t.toExpNeg||n.e>=t.toExpPos);return n.isNeg()?"-"+e:e};function j(n){var t,e,r,i=n.length-1,o="",s=n[0];if(i>0){for(o+=s,t=1;t<i;t++)r=n[t]+"",e=k-r.length,e&&(o+=de(e)),o+=r;s=n[t],r=s+"",e=k-r.length,e&&(o+=de(e))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function $(n,t,e){if(n!==~~n||n<t||n>e)throw Error(he+n)}function Le(n,t,e,r){var i,o,s,a;for(o=n[0];o>=10;o/=10)--t;return--t<0?(t+=k,i=0):(i=Math.ceil((t+1)/k),t%=k),o=H(10,k-t),a=n[i]%o|0,r==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=e<4&&a==99999||e>3&&a==49999||a==5e4||a==0):s=(e<4&&a+1==o||e>3&&a+1==o/2)&&(n[i+1]/o/100|0)==H(10,t-2)-1||(a==o/2||a==0)&&(n[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(r||e<4)&&a==9999||!r&&e>3&&a==4999):s=((r||e<4)&&a+1==o||!r&&e>3&&a+1==o/2)&&(n[i+1]/o/1e3|0)==H(10,t-3)-1,s}function je(n,t,e){for(var r,i=[0],o,s=0,a=n.length;s<a;){for(o=i.length;o--;)i[o]*=t;for(i[0]+=bt.indexOf(n.charAt(s++)),r=0;r<i.length;r++)i[r]>e-1&&(i[r+1]===void 0&&(i[r+1]=0),i[r+1]+=i[r]/e|0,i[r]%=e)}return i.reverse()}function ur(n,t){var e,r,i;if(t.isZero())return t;r=t.d.length,r<32?(e=Math.ceil(r/3),i=(1/$e(4,e)).toString()):(e=16,i="2.3283064365386962890625e-10"),n.precision+=e,t=Be(n,1,t.times(i),new n(1));for(var o=e;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return n.precision-=e,t}var O=function(){function n(r,i,o){var s,a=0,u=r.length;for(r=r.slice();u--;)s=r[u]*i+a,r[u]=s%o|0,a=s/o|0;return a&&r.unshift(a),r}function t(r,i,o,s){var a,u;if(o!=s)u=o>s?1:-1;else for(a=u=0;a<o;a++)if(r[a]!=i[a]){u=r[a]>i[a]?1:-1;break}return u}function e(r,i,o,s){for(var a=0;o--;)r[o]-=a,a=r[o]<i[o]?1:0,r[o]=a*s+r[o]-i[o];for(;!r[0]&&r.length>1;)r.shift()}return function(r,i,o,s,a,u){var c,m,l,f,p,g,d,T,P,y,h,w,B,A,E,I,R,v,M,U,X=r.constructor,Q=r.s==i.s?1:-1,V=r.d,F=i.d;if(!V||!V[0]||!F||!F[0])return new X(!r.s||!i.s||(V?F&&V[0]==F[0]:!F)?NaN:V&&V[0]==0||!F?Q*0:Q/0);for(u?(p=1,m=r.e-i.e):(u=re,p=k,m=Z(r.e/p)-Z(i.e/p)),M=F.length,R=V.length,P=new X(Q),y=P.d=[],l=0;F[l]==(V[l]||0);l++);if(F[l]>(V[l]||0)&&m--,o==null?(A=o=X.precision,s=X.rounding):a?A=o+(r.e-i.e)+1:A=o,A<0)y.push(1),g=!0;else{if(A=A/p+2|0,l=0,M==1){for(f=0,F=F[0],A++;(l<R||f)&&A--;l++)E=f*u+(V[l]||0),y[l]=E/F|0,f=E%F|0;g=f||l<R}else{for(f=u/(F[0]+1)|0,f>1&&(F=n(F,f,u),V=n(V,f,u),M=F.length,R=V.length),I=M,h=V.slice(0,M),w=h.length;w<M;)h[w++]=0;U=F.slice(),U.unshift(0),v=F[0],F[1]>=u/2&&++v;do f=0,c=t(F,h,M,w),c<0?(B=h[0],M!=w&&(B=B*u+(h[1]||0)),f=B/v|0,f>1?(f>=u&&(f=u-1),d=n(F,f,u),T=d.length,w=h.length,c=t(d,h,T,w),c==1&&(f--,e(d,M<T?U:F,T,u))):(f==0&&(c=f=1),d=F.slice()),T=d.length,T<w&&d.unshift(0),e(h,d,w,u),c==-1&&(w=h.length,c=t(F,h,M,w),c<1&&(f++,e(h,M<w?U:F,w,u))),w=h.length):c===0&&(f++,h=[0]),y[l++]=f,c&&h[0]?h[w++]=V[I]||0:(h=[V[I]],w=1);while((I++<R||h[0]!==void 0)&&A--);g=h[0]!==void 0}y[0]||y.shift()}if(p==1)P.e=m,rn=g;else{for(l=1,f=y[0];f>=10;f/=10)l++;P.e=l+m*p-1,x(P,a?o+P.e+1:o,s,g)}return P}}();function x(n,t,e,r){var i,o,s,a,u,c,m,l,f,p=n.constructor;e:if(t!=null){if(l=n.d,!l)return n;for(i=1,a=l[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=k,s=t,m=l[f=0],u=m/H(10,i-s-1)%10|0;else if(f=Math.ceil((o+1)/k),a=l.length,f>=a)if(r){for(;a++<=f;)l.push(0);m=u=0,i=1,o%=k,s=o-k+1}else break e;else{for(m=a=l[f],i=1;a>=10;a/=10)i++;o%=k,s=o-k+i,u=s<0?0:m/H(10,i-s-1)%10|0}if(r=r||t<0||l[f+1]!==void 0||(s<0?m:m%H(10,i-s-1)),c=e<4?(u||r)&&(e==0||e==(n.s<0?3:2)):u>5||u==5&&(e==4||r||e==6&&(o>0?s>0?m/H(10,i-s):0:l[f-1])%10&1||e==(n.s<0?8:7)),t<1||!l[0])return l.length=0,c?(t-=n.e+1,l[0]=H(10,(k-t%k)%k),n.e=-t||0):l[0]=n.e=0,n;if(o==0?(l.length=f,a=1,f--):(l.length=f+1,a=H(10,k-o),l[f]=s>0?(m/H(10,i-s)%H(10,s)|0)*a:0),c)for(;;)if(f==0){for(o=1,s=l[0];s>=10;s/=10)o++;for(s=l[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(n.e++,l[0]==re&&(l[0]=1));break}else{if(l[f]+=a,l[f]!=re)break;l[f--]=0,a=1}for(o=l.length;l[--o]===0;)l.pop()}return C&&(n.e>p.maxE?(n.d=null,n.e=NaN):n.e<p.minE&&(n.e=0,n.d=[0])),n}function oe(n,t,e){if(!n.isFinite())return fn(n);var r,i=n.e,o=j(n.d),s=o.length;return t?(e&&(r=e-s)>0?o=o.charAt(0)+"."+o.slice(1)+de(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(n.e<0?"e":"e+")+n.e):i<0?(o="0."+de(-i-1)+o,e&&(r=e-s)>0&&(o+=de(r))):i>=s?(o+=de(i+1-s),e&&(r=e-i-1)>0&&(o=o+"."+de(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),e&&(r=e-s)>0&&(i+1===s&&(o+="."),o+=de(r))),o}function Qe(n,t){var e=n[0];for(t*=k;e>=10;e/=10)t++;return t}function Je(n,t,e){if(t>ar)throw C=!0,e&&(n.precision=e),Error(on);return x(new n(Ze),t,1,!0)}function ne(n,t,e){if(t>wt)throw Error(on);return x(new n(Ye),t,e,!0)}function cn(n){var t=n.length-1,e=t*k+1;if(t=n[t],t){for(;t%10==0;t/=10)e--;for(t=n[0];t>=10;t/=10)e++}return e}function de(n){for(var t="";n--;)t+="0";return t}function ln(n,t,e,r){var i,o=new n(1),s=Math.ceil(r/k+4);for(C=!1;;){if(e%2&&(o=o.times(t),tn(o.d,s)&&(i=!0)),e=Z(e/2),e===0){e=o.d.length-1,i&&o.d[e]===0&&++o.d[e];break}t=t.times(t),tn(t.d,s)}return C=!0,o}function en(n){return n.d[n.d.length-1]&1}function mn(n,t,e){for(var r,i=new n(t[0]),o=0;++o<t.length;)if(r=new n(t[o]),r.s)i[e](r)&&(i=r);else{i=r;break}return i}function Pt(n,t){var e,r,i,o,s,a,u,c=0,m=0,l=0,f=n.constructor,p=f.rounding,g=f.precision;if(!n.d||!n.d[0]||n.e>17)return new f(n.d?n.d[0]?n.s<0?0:1/0:1:n.s?n.s<0?0:n:0/0);for(t==null?(C=!1,u=g):u=t,a=new f(.03125);n.e>-2;)n=n.times(a),l+=5;for(r=Math.log(H(2,l))/Math.LN10*2+5|0,u+=r,e=o=s=new f(1),f.precision=u;;){if(o=x(o.times(n),u,1),e=e.times(++m),a=s.plus(O(o,e,u,1)),j(a.d).slice(0,u)===j(s.d).slice(0,u)){for(i=l;i--;)s=x(s.times(s),u,1);if(t==null)if(c<3&&Le(s.d,u-r,p,c))f.precision=u+=10,e=o=a=new f(1),m=0,c++;else return x(s,f.precision=g,p,C=!0);else return f.precision=g,s}s=a}}function ge(n,t){var e,r,i,o,s,a,u,c,m,l,f,p=1,g=10,d=n,T=d.d,P=d.constructor,y=P.rounding,h=P.precision;if(d.s<0||!T||!T[0]||!d.e&&T[0]==1&&T.length==1)return new P(T&&!T[0]?-1/0:d.s!=1?NaN:T?0:d);if(t==null?(C=!1,m=h):m=t,P.precision=m+=g,e=j(T),r=e.charAt(0),Math.abs(o=d.e)<15e14){for(;r<7&&r!=1||r==1&&e.charAt(1)>3;)d=d.times(n),e=j(d.d),r=e.charAt(0),p++;o=d.e,r>1?(d=new P("0."+e),o++):d=new P(r+"."+e.slice(1))}else return c=Je(P,m+2,h).times(o+""),d=ge(new P(r+"."+e.slice(1)),m-g).plus(c),P.precision=h,t==null?x(d,h,y,C=!0):d;for(l=d,u=s=d=O(d.minus(1),d.plus(1),m,1),f=x(d.times(d),m,1),i=3;;){if(s=x(s.times(f),m,1),c=u.plus(O(s,new P(i),m,1)),j(c.d).slice(0,m)===j(u.d).slice(0,m))if(u=u.times(2),o!==0&&(u=u.plus(Je(P,m+2,h).times(o+""))),u=O(u,new P(p),m,1),t==null)if(Le(u.d,m-g,y,a))P.precision=m+=g,c=s=d=O(l.minus(1),l.plus(1),m,1),f=x(d.times(d),m,1),i=a=1;else return x(u,P.precision=h,y,C=!0);else return P.precision=h,u;u=c,i+=2}}function fn(n){return String(n.s*n.s/0)}function Tt(n,t){var e,r,i;for((e=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(e<0&&(e=r),e+=+t.slice(r+1),t=t.substring(0,r)):e<0&&(e=t.length),r=0;t.charCodeAt(r)===48;r++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(r,i),t){if(i-=r,n.e=e=e-r-1,n.d=[],r=(e+1)%k,e<0&&(r+=k),r<i){for(r&&n.d.push(+t.slice(0,r)),i-=k;r<i;)n.d.push(+t.slice(r,r+=k));t=t.slice(r),r=k-t.length}else r-=i;for(;r--;)t+="0";n.d.push(+t),C&&(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 cr(n,t){var e,r,i,o,s,a,u,c,m;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),un.test(t))return Tt(n,t)}else if(t==="Infinity"||t==="NaN")return+t||(n.s=NaN),n.e=NaN,n.d=null,n;if(ir.test(t))e=16,t=t.toLowerCase();else if(rr.test(t))e=2;else if(or.test(t))e=8;else throw Error(he+t);for(o=t.search(/p/i),o>0?(u=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,r=n.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=ln(r,new r(e),o,o*2)),c=je(t,e,re),m=c.length-1,o=m;c[o]===0;--o)c.pop();return o<0?new r(n.s*0):(n.e=Qe(c,m),n.d=c,C=!1,s&&(n=O(n,i,a*4)),u&&(n=n.times(Math.abs(u)<54?H(2,u):Me.pow(2,u))),C=!0,n)}function lr(n,t){var e,r=t.d.length;if(r<3)return t.isZero()?t:Be(n,2,t,t);e=1.4*Math.sqrt(r),e=e>16?16:e|0,t=t.times(1/$e(5,e)),t=Be(n,2,t,t);for(var i,o=new n(5),s=new n(16),a=new n(20);e--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function Be(n,t,e,r,i){var o,s,a,u,c=1,m=n.precision,l=Math.ceil(m/k);for(C=!1,u=e.times(e),a=new n(r);;){if(s=O(a.times(u),new n(t++*t++),m,1),a=i?r.plus(s):r.minus(s),r=O(s.times(u),new n(t++*t++),m,1),s=a.plus(r),s.d[l]!==void 0){for(o=l;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=r,r=s,s=o,c++}return C=!0,s.d.length=l+1,s}function $e(n,t){for(var e=n;--t;)e*=n;return e}function pn(n,t){var e,r=t.s<0,i=ne(n,n.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return le=r?4:1,t;if(e=t.divToInt(i),e.isZero())le=r?3:2;else{if(t=t.minus(e.times(i)),t.lte(o))return le=en(e)?r?2:3:r?4:1,t;le=en(e)?r?1:4:r?3:2}return t.minus(i).abs()}function At(n,t,e,r){var i,o,s,a,u,c,m,l,f,p=n.constructor,g=e!==void 0;if(g?($(e,1,be),r===void 0?r=p.rounding:$(r,0,8)):(e=p.precision,r=p.rounding),!n.isFinite())m=fn(n);else{for(m=oe(n),s=m.indexOf("."),g?(i=2,t==16?e=e*4-3:t==8&&(e=e*3-2)):i=t,s>=0&&(m=m.replace(".",""),f=new p(1),f.e=m.length-s,f.d=je(oe(f),10,i),f.e=f.d.length),l=je(m,10,i),o=u=l.length;l[--u]==0;)l.pop();if(!l[0])m=g?"0p+0":"0";else{if(s<0?o--:(n=new p(n),n.d=l,n.e=o,n=O(n,f,e,r,0,i),l=n.d,o=n.e,c=rn),s=l[e],a=i/2,c=c||l[e+1]!==void 0,c=r<4?(s!==void 0||c)&&(r===0||r===(n.s<0?3:2)):s>a||s===a&&(r===4||c||r===6&&l[e-1]&1||r===(n.s<0?8:7)),l.length=e,c)for(;++l[--e]>i-1;)l[e]=0,e||(++o,l.unshift(1));for(u=l.length;!l[u-1];--u);for(s=0,m="";s<u;s++)m+=bt.charAt(l[s]);if(g){if(u>1)if(t==16||t==8){for(s=t==16?4:3,--u;u%s;u++)m+="0";for(l=je(m,i,t),u=l.length;!l[u-1];--u);for(s=1,m="1.";s<u;s++)m+=bt.charAt(l[s])}else m=m.charAt(0)+"."+m.slice(1);m=m+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)m="0"+m;m="0."+m}else if(++o>u)for(o-=u;o--;)m+="0";else o<u&&(m=m.slice(0,o)+"."+m.slice(o))}m=(t==16?"0x":t==2?"0b":t==8?"0o":"")+m}return n.s<0?"-"+m:m}function tn(n,t){if(n.length>t)return n.length=t,!0}function mr(n){return new this(n).abs()}function fr(n){return new this(n).acos()}function pr(n){return new this(n).acosh()}function dr(n,t){return new this(n).plus(t)}function gr(n){return new this(n).asin()}function hr(n){return new this(n).asinh()}function br(n){return new this(n).atan()}function yr(n){return new this(n).atanh()}function wr(n,t){n=new this(n),t=new this(t);var e,r=this.precision,i=this.rounding,o=r+4;return!n.s||!t.s?e=new this(NaN):!n.d&&!t.d?(e=ne(this,o,1).times(t.s>0?.25:.75),e.s=n.s):!t.d||n.isZero()?(e=t.s<0?ne(this,r,i):new this(0),e.s=n.s):!n.d||t.isZero()?(e=ne(this,o,1).times(.5),e.s=n.s):t.s<0?(this.precision=o,this.rounding=1,e=this.atan(O(n,t,o,1)),t=ne(this,o,1),this.precision=r,this.rounding=i,e=n.s<0?e.minus(t):e.plus(t)):e=this.atan(O(n,t,o,1)),e}function Pr(n){return new this(n).cbrt()}function Tr(n){return x(n=new this(n),n.e+1,2)}function Ar(n,t,e){return new this(n).clamp(t,e)}function xr(n){if(!n||typeof n!="object")throw Error(Xe+"Object expected");var t,e,r,i=n.defaults===!0,o=["precision",1,be,"rounding",0,8,"toExpNeg",-xe,0,"toExpPos",0,xe,"maxE",0,xe,"minE",-xe,0,"modulo",0,9];for(t=0;t<o.length;t+=3)if(e=o[t],i&&(this[e]=yt[e]),(r=n[e])!==void 0)if(Z(r)===r&&r>=o[t+1]&&r<=o[t+2])this[e]=r;else throw Error(he+e+": "+r);if(e="crypto",i&&(this[e]=yt[e]),(r=n[e])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[e]=!0;else throw Error(sn);else this[e]=!1;else throw Error(he+e+": "+r);return this}function Br(n){return new this(n).cos()}function kr(n){return new this(n).cosh()}function dn(n){var t,e,r;function i(o){var s,a,u,c=this;if(!(c instanceof i))return new i(o);if(c.constructor=i,nn(o)){c.s=o.s,C?!o.d||o.e>i.maxE?(c.e=NaN,c.d=null):o.e<i.minE?(c.e=0,c.d=[0]):(c.e=o.e,c.d=o.d.slice()):(c.e=o.e,c.d=o.d?o.d.slice():o.d);return}if(u=typeof o,u==="number"){if(o===0){c.s=1/o<0?-1:1,c.e=0,c.d=[0];return}if(o<0?(o=-o,c.s=-1):c.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;C?s>i.maxE?(c.e=NaN,c.d=null):s<i.minE?(c.e=0,c.d=[0]):(c.e=s,c.d=[o]):(c.e=s,c.d=[o]);return}else if(o*0!==0){o||(c.s=NaN),c.e=NaN,c.d=null;return}return Tt(c,o.toString())}else if(u!=="string")throw Error(he+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),c.s=-1):(a===43&&(o=o.slice(1)),c.s=1),un.test(o)?Tt(c,o):cr(c,o)}if(i.prototype=b,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=xr,i.clone=dn,i.isDecimal=nn,i.abs=mr,i.acos=fr,i.acosh=pr,i.add=dr,i.asin=gr,i.asinh=hr,i.atan=br,i.atanh=yr,i.atan2=wr,i.cbrt=Pr,i.ceil=Tr,i.clamp=Ar,i.cos=Br,i.cosh=kr,i.div=Sr,i.exp=Cr,i.floor=Ir,i.hypot=Nr,i.ln=Lr,i.log=Mr,i.log10=Er,i.log2=Rr,i.max=Dr,i.min=Kr,i.mod=vr,i.mul=Fr,i.pow=Or,i.random=_r,i.round=Wr,i.sign=Vr,i.sin=qr,i.sinh=Ur,i.sqrt=Gr,i.sub=Hr,i.sum=zr,i.tan=jr,i.tanh=Zr,i.trunc=Yr,n===void 0&&(n={}),n&&n.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<r.length;)n.hasOwnProperty(e=r[t++])||(n[e]=this[e]);return i.config(n),i}function Sr(n,t){return new this(n).div(t)}function Cr(n){return new this(n).exp()}function Ir(n){return x(n=new this(n),n.e+1,3)}function Nr(){var n,t,e=new this(0);for(C=!1,n=0;n<arguments.length;)if(t=new this(arguments[n++]),t.d)e.d&&(e=e.plus(t.times(t)));else{if(t.s)return C=!0,new this(1/0);e=t}return C=!0,e.sqrt()}function nn(n){return n instanceof Me||n&&n.toStringTag===an||!1}function Lr(n){return new this(n).ln()}function Mr(n,t){return new this(n).log(t)}function Rr(n){return new this(n).log(2)}function Er(n){return new this(n).log(10)}function Dr(){return mn(this,arguments,"lt")}function Kr(){return mn(this,arguments,"gt")}function vr(n,t){return new this(n).mod(t)}function Fr(n,t){return new this(n).mul(t)}function Or(n,t){return new this(n).pow(t)}function _r(n){var t,e,r,i,o=0,s=new this(1),a=[];if(n===void 0?n=this.precision:$(n,1,be),r=Math.ceil(n/k),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(r));o<r;)i=t[o],i>=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(r*=4);o<r;)i=t[o]+(t[o+1]<<8)+(t[o+2]<<16)+((t[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=r/4}else throw Error(sn);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],n%=k,r&&n&&(i=H(10,k-n),a[o]=(r/i|0)*i);a[o]===0;o--)a.pop();if(o<0)e=0,a=[0];else{for(e=-1;a[0]===0;e-=k)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<k&&(e-=k-r)}return s.e=e,s.d=a,s}function Wr(n){return x(n=new this(n),n.e+1,this.rounding)}function Vr(n){return n=new this(n),n.d?n.d[0]?n.s:0*n.s:n.s||NaN}function qr(n){return new this(n).sin()}function Ur(n){return new this(n).sinh()}function Gr(n){return new this(n).sqrt()}function Hr(n,t){return new this(n).sub(t)}function zr(){var n=0,t=arguments,e=new this(t[n]);for(C=!1;e.s&&++n<t.length;)e=e.plus(t[n]);return C=!0,x(e,this.precision,this.rounding)}function jr(n){return new this(n).tan()}function Zr(n){return new this(n).tanh()}function Yr(n){return x(n=new this(n),n.e+1,1)}b[Symbol.for("nodejs.util.inspect.custom")]=b.toString;b[Symbol.toStringTag]="Decimal";var Me=b.constructor=dn(yt);Ze=new Me(Ze);Ye=new Me(Ye);var ee=Me;import{PublicKey as St}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Jr}from"@solana/spl-token";import{PublicKey as q,SystemProgram as gn,SYSVAR_RENT_PUBKEY as Xr}from"@solana/web3.js";function xt({pubkey:n,isSigner:t=!1,isWritable:e=!0}){return{pubkey:n,isWritable:e,isSigner:t}}var ro=[xt({pubkey:Jr,isWritable:!1}),xt({pubkey:gn.programId,isWritable:!1}),xt({pubkey:Xr,isWritable:!1})];function Bt({publicKey:n,transformSol:t}){let e=hn(n.toString());if(e instanceof q)return t&&e.equals(Re)?me:e;if(t&&e.toString()===Re.toBase58())return me;if(typeof e=="string"){if(e===q.default.toBase58())return q.default;try{return new q(e)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function hn(n){try{return new q(n)}catch{return n}}var io=new q("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),bn=new q("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),yn=new q("SysvarRent111111111111111111111111111111111"),oo=new q("SysvarC1ock11111111111111111111111111111111"),so=new q("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ao=new q("Sysvar1nstructions1111111111111111111111111"),wn=gn.programId,uo=new q("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),co=new q("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),lo=new q("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),mo=new q("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),fo=new q("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),po=new q("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),go=new q("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ho=new q("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),bo=new q("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),yo=new q("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),wo=new q("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),me=new q("So11111111111111111111111111111111111111112"),Re=q.default;function et(n){return Bt({publicKey:n,transformSol:!0})}import{PublicKey as Qr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Pn}from"@solana/spl-token";var kt={chainId:101,address:Qr.default.toBase58(),programId:Pn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ye={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Pn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};var Ct=class{constructor({mint:t,decimals:e,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(t===Re.toBase58()||t instanceof St&&Re.equals(t)){this.decimals=ye.decimals,this.symbol=ye.symbol,this.name=ye.name,this.mint=new St(ye.address),this.isToken2022=!1;return}this.decimals=e,this.symbol=r||t.toString().substring(0,6),this.name=i||t.toString().substring(0,6),this.mint=o?St.default:Bt({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},Pe=Ct;Pe.WSOL=new Ct(G(K({},ye),{mint:ye.address}));import{get as Tn,set as $r}from"lodash";var It=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let e=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(e)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},An={},ei={};function Y(n){let t=Tn(An,n);if(!t){let e=Tn(ei,n);t=new It({name:n,logLevel:e}),$r(An,n,t)}return t}import nt from"big.js";import ri from"bn.js";import ii from"decimal.js-light";import ti from"toformat";var ni=ti,Ee=ni;var tt=Y("module/fraction"),Nt=Ee(nt),De=Ee(ii),oi={[0]:De.ROUND_DOWN,[1]:De.ROUND_HALF_UP,[2]:De.ROUND_UP},si={[0]:nt.roundDown,[1]:nt.roundHalfUp,[2]:nt.roundUp},W=class{constructor(t,e=new ri(1)){this.numerator=we(t),this.denominator=we(e)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new W(this.denominator,this.numerator)}add(t){let e=t instanceof W?t:new W(we(t));return this.denominator.eq(e.denominator)?new W(this.numerator.add(e.numerator),this.denominator):new W(this.numerator.mul(e.denominator).add(e.numerator.mul(this.denominator)),this.denominator.mul(e.denominator))}sub(t){let e=t instanceof W?t:new W(we(t));return this.denominator.eq(e.denominator)?new W(this.numerator.sub(e.numerator),this.denominator):new W(this.numerator.mul(e.denominator).sub(e.numerator.mul(this.denominator)),this.denominator.mul(e.denominator))}mul(t){let e=t instanceof W?t:new W(we(t));return new W(this.numerator.mul(e.numerator),this.denominator.mul(e.denominator))}div(t){let e=t instanceof W?t:new W(we(t));return new W(this.numerator.mul(e.denominator),this.denominator.mul(e.numerator))}toSignificant(t,e={groupSeparator:""},r=1){Number.isInteger(t)||tt.logWithError(`${t} is not an integer.`),t<=0&&tt.logWithError(`${t} is not positive.`),De.set({precision:t+1,rounding:oi[r]});let i=new De(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return i.toFormat(i.decimalPlaces(),e)}toFixed(t,e={groupSeparator:""},r=1){return Number.isInteger(t)||tt.logWithError(`${t} is not an integer.`),t<0&&tt.logWithError(`${t} is negative.`),Nt.DP=t,Nt.RM=si[r]||1,new Nt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,e)}isZero(){return this.numerator.isZero()}};var jo=Y("Raydium_price");var Lt=class{constructor({decimals:t,symbol:e="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=e,this.name=r}equals(t){return this===t}},rt=Lt;rt.SOL=new Lt(kt);import ui from"bn.js";var xn=new W(new ui(100)),se=class extends W{toSignificant(t=5,e,r){return this.mul(xn).toSignificant(t,e,r)}toFixed(t=2,e,r){return this.mul(xn).toFixed(t,e,r)}};import{PublicKey as us}from"@solana/web3.js";import ls from"bn.js";var Mt=new te(0),Cs=new te(1),Is=new te(2),Ns=new te(3),Ls=new te(5),ci=new te(10),Ms=new te(100),Rs=new te(1e3),Es=new te(1e4),kn=9007199254740991;function we(n){let t=Y("Raydium_parseBigNumberish");if(n instanceof te)return n;if(typeof n=="string"){if(n.match(/^-?[0-9]+$/))return new te(n);t.logWithError(`invalid BigNumberish string: ${n}`)}return typeof n=="number"?(n%1&&t.logWithError(`BigNumberish number underflow: ${n}`),(n>=kn||n<=-kn)&&t.logWithError(`BigNumberish number overflow: ${n}`),new te(String(n))):typeof n=="bigint"?new te(n.toString()):(t.error(`invalid BigNumberish value: ${n}`),new te(0))}var zs=Y("Raydium_amount"),js=Ee(li);import{PublicKey as hi}from"@solana/web3.js";import{PublicKey as mi,ComputeBudgetProgram as Sn,Transaction as In,TransactionMessage as fi,Keypair as Nn,VersionedTransaction as Ln}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as pi}from"@solana/spl-token";var fe={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut"};var Cn=Y("Raydium_txUtil"),Mn=1644;function it(n){let t=[],e=[];return n.microLamports&&(t.push(Sn.setComputeUnitPrice({microLamports:n.microLamports})),e.push(fe.SetComputeUnitPrice)),n.units&&(t.push(Sn.setComputeUnitLimit({units:n.units})),e.push(fe.SetComputeUnitLimit)),{instructions:t,instructionTypes:e}}async function ke(n,t){var r,i;let e=t!=null?t:"confirmed";try{return((i=await((r=n.getLatestBlockhash)==null?void 0:r.call(n,{commitment:e})))==null?void 0:i.blockhash)||(await n.getRecentBlockhash(e)).blockhash}catch{return(await n.getRecentBlockhash(e)).blockhash}}function di(n,t){n.length<1&&Cn.logWithError(`no instructions provided: ${n.toString()}`),t.length<1&&Cn.logWithError(`no signers provided:, ${t.toString()}`);let e=new In;e.recentBlockhash="11111111111111111111111111111111",e.feePayer=t[0],e.add(...n);try{return Buffer.from(e.serialize({verifySignatures:!1})).toString("base64").length<Mn}catch{return!1}}function pe(n,t){let[e,r]=mi.findProgramAddressSync(n,t);return{publicKey:e,nonce:r}}function Ke({instructions:n,payer:t,signers:e}){return di(n,[t,...e])}function ve({instructions:n,payer:t,lookupTableAddressAccount:e,recentBlockhash:r=Nn.generate().publicKey.toString()}){let o=new fi({payerKey:t,recentBlockhash:r,instructions:n}).compileToV0Message(Object.values(e!=null?e:{}));try{return Buffer.from(new Ln(o).serialize()).toString("base64").length<Mn}catch{return!1}}var gi=n=>Buffer.isBuffer(n)?n:n instanceof Uint8Array?Buffer.from(n.buffer,n.byteOffset,n.byteLength):Buffer.from(n);function Te(n){let t=[];return n.forEach(e=>{e instanceof In&&(e.recentBlockhash||(e.recentBlockhash=pi.toBase58()),e.feePayer||(e.feePayer=Nn.generate().publicKey));let r=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof Ln&&(r=gi(r));let i=r.toString("base64");t.push(i)}),console.log("simulate tx string:",t),t}import{TOKEN_PROGRAM_ID as bi}from"@solana/spl-token";function Rn(n,t,e){return pe([n.toBuffer(),(e!=null?e:bi).toBuffer(),t.toBuffer()],new hi("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import Dn from"bn.js";var Et=new Dn(1e6);function yi(n,t,e){return n.mul(t).add(e).sub(new Dn(1)).div(e)}function En(n,t,e){return n.mul(t).div(e)}var ot=class{static tradingFee(t,e){return yi(t,e,Et)}static protocolFee(t,e){return En(t,e,Et)}static fundFee(t,e){return En(t,e,Et)}};import Fe from"bn.js";function st(n,t){if(t.isZero())throw Error("divisor is zero");return n.mod(t)}function wi(n,t){if(t.isZero())throw Error("rhs is zero");let e=n.div(t);if(e.isZero())throw Error("quotient is zero");let r=st(n,t);if(r.gt(Se)){e=e.add(new Fe(1));let i=n.div(e);r=st(n,e),r.gt(Se)&&(i=i.add(new Fe(1)))}return[e,t]}var Se=new Fe(0),at=class{static swapWithoutFees(t,e,r){let i=e.mul(r),o=e.add(t),[s,a]=wi(i,o),u=a.sub(e),c=r.sub(s);if(c.isZero())throw Error("destinationAmountSwapped is zero");return{sourceAmountSwapped:u,destinationAmountSwapped:c}}static lpTokensToTradingTokens(t,e,r,i,o){let s=t.mul(r).div(e),a=t.mul(i).div(e);if(o===0)return{tokenAmount0:s,tokenAmount1:a};if(o===1)return st(t.mul(r),e).gt(Se)&&s.gt(Se)&&(s=s.add(new Fe(1))),st(t.mul(i),e).gt(Se)&&a.gt(Se)&&(a=a.add(new Fe(1))),{tokenAmount0:s,tokenAmount1:a};throw Error("roundDirection value error")}};var ut=class{static validate_supply(t,e){if(t.isZero())throw Error("tokenAmount0 is zero");if(e.isZero())throw Error("tokenAmount1 is zero")}static swap(t,e,r,i){let o=ot.tradingFee(t,i),s=t.sub(o),{sourceAmountSwapped:a,destinationAmountSwapped:u}=at.swapWithoutFees(s,e,r),c=a.add(o);return{newSwapSourceAmount:e.add(c),newSwapDestinationAmount:r.sub(u),sourceAmountSwapped:c,destinationAmountSwapped:u,tradeFee:o}}};import{PublicKey as We,sendAndConfirmTransaction as _t,Transaction as Ve,TransactionMessage as qe,VersionedTransaction as Ue}from"@solana/web3.js";import Ci from"axios";import{PublicKey as Fn,AddressLookupTableAccount as ct}from"@solana/web3.js";import{PublicKey as Kn}from"@solana/web3.js";import{MINT_SIZE as xi,TOKEN_PROGRAM_ID as Bi,getTransferFeeConfig as ki,unpackMint as Si}from"@solana/spl-token";function Dt(n,t=1,e=[]){let r=[...n];if(t<=0)return e;for(;r.length;)e.push(r.splice(0,t));return e}import{PublicKey as D}from"@solana/web3.js";var Ea=new D("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Da=new D("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ka=new D("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),va=new D("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Fa=new D("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Oa=new D("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),_a=new D("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Wa=new D("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Va=new D("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),qa=new D("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ua=new D("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ga=new D("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ha=new D("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),za=new D("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),ja=new D("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Za=new D("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Ya=new D("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ja=new D("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Xa=new D("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Pi=new D("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),Ti=new D("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Ai=new D("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2");var Qa={SERUM_MARKET:D.default,OPENBOOK_MARKET:new D("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:D.default,FarmV3:new D("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new D("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new D("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new D("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new D("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new D("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),Router:new D("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:Pi,CREATE_CPMM_POOL_AUTH:Ti,CREATE_CPMM_POOL_FEE_ACC:Ai,FEE_DESTINATION_ID:new D("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR")};import ie from"bn.js";var Oe=1e4;function Ce(n,t,e,r){if(t===void 0)return{amount:n,fee:void 0,expirationTime:void 0};let i=G(K({},t),{olderTransferFee:{epoch:BigInt(t.olderTransferFee.epoch),maximumFee:BigInt(t.olderTransferFee.maximumFee),transferFeeBasisPoints:t.olderTransferFee.transferFeeBasisPoints},newerTransferFee:{epoch:BigInt(t.newerTransferFee.epoch),maximumFee:BigInt(t.newerTransferFee.maximumFee),transferFeeBasisPoints:t.newerTransferFee.transferFeeBasisPoints}}),o=e.epoch<i.newerTransferFee.epoch?i.olderTransferFee:i.newerTransferFee,s=new ie(o.maximumFee.toString()),a=e.epoch<i.newerTransferFee.epoch?(Number(i.newerTransferFee.epoch)*e.slotsInEpoch-e.absoluteSlot)*400/1e3:void 0;if(r)if(o.transferFeeBasisPoints===Oe){let u=new ie(o.maximumFee.toString());return{amount:n.add(u),fee:u,expirationTime:a}}else{let u=Kt(n.mul(new ie(Oe)),new ie(Oe-o.transferFeeBasisPoints)),c=new ie(o.maximumFee.toString()),m=u.sub(n).gt(c)?n.add(c):u,l=Kt(m.mul(new ie(o.transferFeeBasisPoints)),new ie(Oe)),f=l.gt(s)?s:l;return{amount:m,fee:f,expirationTime:a}}else{let u=Kt(n.mul(new ie(o.transferFeeBasisPoints)),new ie(Oe)),c=u.gt(s)?s:u;return{amount:n,fee:c,expirationTime:a}}}function Kt(n,t){let{div:e,mod:r}=n.divmod(t);return r.gt(new ie(0))?e.add(new ie(1)):e}var vt=Y("Raydium_accountInfo_util");async function Ft(n,t,e){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}=K({batchRequest:!1},e),s=Dt(t,o),a=new Array(s.length).fill([]);if(r){let u=s.map(l=>{let f=n._buildArgs([l.map(p=>p.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:f}}),c=Dt(u,10);a=(await(await Promise.all(c.map(async l=>await n._rpcBatchRequest(l)))).flat()).map(l=>(l.error&&vt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.error.message}`),l.result.value.map(f=>{if(f){let{data:p,executable:g,lamports:d,owner:T,rentEpoch:P}=f;return p.length!==2&&p[1]!=="base64"&&vt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:g,lamports:d,owner:new Kn(T),rentEpoch:P}}return null})))}else try{a=await Promise.all(s.map(u=>n.getMultipleAccountsInfo(u,i)))}catch(u){u instanceof Error&&vt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${u.message}`)}return a.flat()}async function _e(n,t,e){let r=await Ft(n,t.map(i=>i.pubkey),e);return t.map((i,o)=>G(K({},i),{accountInfo:r[o]}))}async function vn({connection:n,mints:t,config:e}){var o,s,a;if(t.length===0)return{};let r=await _e(n,t.map(u=>({pubkey:et(u)})),e),i={};for(let u of r){if(!u.accountInfo||u.accountInfo.data.length<xi){console.log("invalid mint account",u.pubkey.toBase58());continue}let c=Si(u.pubkey,u.accountInfo,(o=u.accountInfo)==null?void 0:o.owner);i[u.pubkey.toString()]=G(K({},c),{programId:((s=u.accountInfo)==null?void 0:s.owner)||Bi,feeConfig:(a=ki(c))!=null?a:void 0})}return i[Kn.default.toBase58()]=i[me.toBase58()],i}async function Ot({connection:n,address:t}){let e=await Ft(n,[...new Set(t.map(i=>i.toString()))].map(i=>new Fn(i))),r={};for(let i=0;i<t.length;i++){let o=e[i],s=t[i];if(!o)continue;let a=new ct({key:s,state:ct.deserialize(o.data)});r[s.toString()]=a,lt[s.toString()]=a}return r}var lt={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new ct({key:new Fn("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:ct.deserialize(Buffer.from("AQAAAP//////////d49+DAAAAAAAAQZMWvw7GUNJdaccNBVnb57OKakxL2BHLYvhRwVILRsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkG3fbh7nWP3hhCXbzkbM3athr8TYO5DSf+vfko2KGL/AVKU1D4XciC1hSlVnJ4iilt3x6rq9CmBniISTL07vagBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvDQdRqCgtphMF/imcN7mY5YRx2xE1A3MQ+L4QRaYK9u4GRfZP3LsAd00a+IkCpA22UNQMKdq5BFbJuwuOLqc8zxCTDlqxBG8J0HcxtfogQHDK06ukzfaXiNDKAob1MqBHS9lJxDYCwz8gd5DtFqNSTKG5l1zxIaKpDP/sffi2is1H9aKveyXSu5StXElYRl9SD5As0DHE4N0GLnf84/siiKXVyp4Ez121kLcUui/jLLFZEz/BwZK3Ilf9B9OcsEAeDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu9N9LMnrw/JNO0hqMVB4rk/2ou4AB1loQ7FZoPwut2o4KZB+0p9xnbrQKw038qjpHar+PyDwvxBRcu5hpHw3dguezeWv+IwvgW5icu8EGkhGa9AkFPPJT7VMSFb8xowveU=","base64"))})};var mt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.api=t.api}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let t=(await Ci.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:e}=(r=t==null?void 0:t[15])!=null?r:{};if(!!e)return{units:6e5,microLamports:Math.min(Math.ceil(e*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:e,instructionTypes:r}=it(t);return this.instructions.unshift(...e),this.instructionTypes.unshift(...r),!0}return!1}async calComputeBudget({config:t,defaultIns:e}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;e&&this.instructions.unshift(...e)}catch{e&&this.instructions.unshift(...e)}}addInstruction({instructions:t=[],endInstructions:e=[],signers:r=[],instructionTypes:i=[],endInstructionTypes:o=[],lookupTableAddress:s=[]}){return this.instructions.push(...t),this.endInstructions.push(...e),this.signers.push(...r),this.instructionTypes.push(...i),this.endInstructionTypes.push(...o),this.lookupTableAddress.push(...s.filter(a=>a!==We.default.toString())),this}async versionBuild({txVersion:t,extInfo:e}){return t===0?await this.buildV0(K({},e||{})):this.build(e)}build(t){var r;let e=new Ve;return this.allInstructions.length&&e.add(...this.allInstructions),e.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(i=>i.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:e,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async i=>{var c;let{recentBlockHash:o,skipPreflight:s=!0,sendAndConfirm:a}=i||{},u=o!=null?o:await ke(this.connection,this.blockhashCommitment);if(e.recentBlockhash=u,this.signers.length&&e.sign(...this.signers),Te([e]),(c=this.owner)!=null&&c.isKeyPair)return{txId:a?await _t(this.connection,e,this.signers.find(l=>l.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):await this.connection.sendRawTransaction(e.serialize(),{skipPreflight:s}),signedTx:e};if(this.signAllTransactions){let m=await this.signAllTransactions([e]);return{txId: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:t||{}}}buildMultiTx(t){var c;let{extraPreBuildData:e=[],extInfo:r}=t,{transaction:i}=this.build(r),o=e.filter(m=>m.transaction.instructions.length>0),s=[i,...o.map(m=>m.transaction)],a=[this.signers,...o.map(m=>m.signers)],u=[...this.instructionTypes,...o.map(m=>m.instructionTypes).flat()];return(c=this.owner)!=null&&c.signer&&a.forEach(m=>{m.some(l=>l.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:a,instructionTypes:u,execute:async m=>{var T;let{sequentially:l,onTxUpdate:f,recentBlockHash:p,skipPreflight:g=!0}=m||{},d=p!=null?p:await ke(this.connection,this.blockhashCommitment);if((T=this.owner)!=null&&T.isKeyPair){if(l){let P=[];for(let y of s){let h=await _t(this.connection,y,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});P.push(h)}return{txIds:P,signedTxs:s}}return{txIds:await await Promise.all(s.map(async P=>(P.recentBlockhash=d,await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:g})))),signedTxs:s}}if(this.signAllTransactions){let P=s.map((h,w)=>(h.recentBlockhash=d,a[w].length&&h.sign(...a[w]),h));Te(P);let y=await this.signAllTransactions(P);if(l){let h=0,w=[],B=async()=>{if(!y[h])return;let A=await this.connection.sendRawTransaction(y[h].serialize(),{skipPreflight:g});w.push({txId:A,status:"sent",signedTx:y[h]}),f==null||f([...w]),h++,this.connection.onSignature(A,E=>{let I=w.findIndex(R=>R.txId===A);I>-1&&(w[I].status=E.err?"error":"success"),f==null||f([...w]),E.err||B()},"processed"),this.connection.getSignatureStatus(A)};return await B(),{txIds:w.map(A=>A.txId),signedTxs:y}}else{let h=[];for(let w=0;w<y.length;w+=1){let B=await this.connection.sendRawTransaction(y[w].serialize(),{skipPreflight:g});h.push(B)}return{txIds:h,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:e,extInfo:r}){return e===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var p;let f=t||{},{lookupTableCache:e={},lookupTableAddress:r=[],forerunCreate:i}=f,o=ce(f,["lookupTableCache","lookupTableAddress","forerunCreate"]),s=K(K({},this.cluster==="devnet"?{}:lt),e),a=Array.from(new Set([...r,...this.lookupTableAddress])),u=[];for(let g of a)s[g]===void 0&&u.push(new We(g));let c=await Ot({connection:this.connection,address:u});for(let[g,d]of Object.entries(c))s[g]=d;let m=new qe({payerKey:this.feePayer,recentBlockhash:i?We.default.toBase58():await ke(this.connection,this.blockhashCommitment),instructions:[...this.allInstructions]}).compileToV0Message(Object.values(s));((p=this.owner)==null?void 0:p.signer)&&!this.signers.some(g=>g.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let l=new Ue(m);return l.sign(this.signers),{builder:this,transaction:l,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async g=>{var y;let{recentBlockHash:d,skipPreflight:T=!0,sendAndConfirm:P}=g||{};if(d&&(l.message.recentBlockhash=d),Te([l]),(y=this.owner)!=null&&y.isKeyPair){let h=await this.connection.sendTransaction(l,{skipPreflight:T});if(P){let{lastValidBlockHeight:w,blockhash:B}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:B,lastValidBlockHeight:w,signature:h},"confirmed")}return{txId:h,signedTx:l}}if(this.signAllTransactions){let h=await this.signAllTransactions([l]);return{txId:await this.connection.sendTransaction(h[0],{skipPreflight:T}),signedTx:h[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async buildV0MultiTx(t){var c;let{extraPreBuildData:e=[],buildProps:r}=t,{transaction:i}=await this.buildV0(r),o=e.filter(m=>m.builder.instructions.length>0),s=[i,...o.map(m=>m.transaction)],a=[this.signers,...o.map(m=>m.signers)],u=[...this.instructionTypes,...o.map(m=>m.instructionTypes).flat()];return(c=this.owner)!=null&&c.signer&&a.forEach(m=>{m.some(l=>l.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach(async(m,l)=>{m.sign(a[l])}),{builder:this,transactions:s,signers:a,instructionTypes:u,buildProps:r,execute:async m=>{var d;let{sequentially:l,onTxUpdate:f,recentBlockHash:p,skipPreflight:g=!0}=m||{};if(p&&s.forEach(T=>T.message.recentBlockhash=p),Te(s),(d=this.owner)!=null&&d.isKeyPair){if(l){let T=[];for(let P of s){let y=await this.connection.sendTransaction(P,{skipPreflight:g}),{lastValidBlockHeight:h,blockhash:w}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:w,lastValidBlockHeight:h,signature:y},"confirmed"),T.push(y)}return{txIds:T,signedTxs:s}}return{txIds:await Promise.all(s.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:g}))),signedTxs:s}}if(this.signAllTransactions){let T=await this.signAllTransactions(s);if(l){let P=0,y=[],h=async()=>{if(!T[P])return;let w=await this.connection.sendTransaction(T[P],{skipPreflight:g});y.push({txId:w,status:"sent",signedTx:T[P]}),f==null||f([...y]),P++,this.connection.onSignature(w,B=>{let A=y.findIndex(E=>E.txId===w);A>-1&&(y[A].status=B.err?"error":"success"),f==null||f([...y]),B.err||h()},"processed"),this.connection.getSignatureStatus(w)};return h(),{txIds:[],signedTxs:T}}else{let P=[];for(let y=0;y<T.length;y+=1){let h=await this.connection.sendTransaction(T[y],{skipPreflight:g});P.push(h)}return{txIds:P,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var m;let c=t||{},{computeBudgetConfig:e}=c,r=ce(c,["computeBudgetConfig"]),i=e?it(e):{instructions:[],instructionTypes:[]},o=this.signers.reduce((l,f)=>G(K({},l),{[f.publicKey.toBase58()]:f}),{}),s=[],a=[],u=[];if(this.allInstructions.forEach(l=>{let f=[...u,l],p=e?[...i.instructions,...f]:f,d=[...new Set(f.map(T=>T.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(T=>new We(T));if(u.length<12&&Ke({instructions:p,payer:this.feePayer,signers:d})||Ke({instructions:f,payer:this.feePayer,signers:d}))u.push(l);else{if(u.length===0)throw Error("item ins too big");Ke({instructions:e?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:d})?s.push(new Ve().add(...i.instructions,...u)):s.push(new Ve().add(...u)),a.push(Array.from(new Set(u.map(T=>T.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat())).map(T=>o[T]).filter(T=>T!==void 0)),u=[l]}}),u.length>0){let f=[...new Set(u.map(p=>p.keys.filter(g=>g.isSigner).map(g=>g.pubkey.toString())).flat()).values()].map(p=>o[p]).filter(p=>p!==void 0);Ke({instructions:e?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:f.map(p=>p.publicKey)})?s.push(new Ve().add(...i.instructions,...u)):s.push(new Ve().add(...u)),a.push(f)}return s.forEach(l=>l.feePayer=this.feePayer),(m=this.owner)!=null&&m.signer&&a.forEach(l=>{l.some(f=>f.publicKey.equals(this.owner.publicKey))||l.push(this.owner.signer)}),{builder:this,transactions:s,signers:a,instructionTypes:this.instructionTypes,execute:async l=>{var P;let{sequentially:f,onTxUpdate:p,recentBlockHash:g,skipPreflight:d=!0}=l||{},T=g!=null?g:await ke(this.connection,this.blockhashCommitment);if(s.forEach(async(y,h)=>{y.recentBlockhash=T,a[h].length&&y.sign(...a[h])}),Te(s),(P=this.owner)!=null&&P.isKeyPair){if(f){let y=[];for(let h of s){let w=await _t(this.connection,h,this.signers.find(B=>B.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:d});y.push(w)}return{txIds:y,signedTxs:s}}return{txIds:await Promise.all(s.map(async y=>await this.connection.sendRawTransaction(y.serialize(),{skipPreflight:d}))),signedTxs:s}}if(this.signAllTransactions){let y=await this.signAllTransactions(s);if(f){let h=0,w=[],B=async()=>{if(!y[h])return;let A=await this.connection.sendRawTransaction(y[h].serialize(),{skipPreflight:d});w.push({txId:A,status:"sent",signedTx:y[h]}),p==null||p([...w]),h++,this.connection.onSignature(A,E=>{let I=w.findIndex(R=>R.txId===A);I>-1&&(w[I].status=E.err?"error":"success"),p==null||p([...w]),E.err||B()},"processed"),this.connection.getSignatureStatus(A)};return await B(),{txIds:w.map(A=>A.txId),signedTxs:y}}else{let h=[];for(let w=0;w<y.length;w+=1){let B=await this.connection.sendRawTransaction(y[w].serialize(),{skipPreflight:d});h.push(B)}return{txIds:h,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(t){var P;let T=t||{},{computeBudgetConfig:e,lookupTableCache:r={},lookupTableAddress:i=[]}=T,o=ce(T,["computeBudgetConfig","lookupTableCache","lookupTableAddress"]),s=K(K({},this.cluster==="devnet"?{}:lt),r),a=Array.from(new Set([...this.lookupTableAddress,...i])),u=[];for(let y of a)s[y]===void 0&&u.push(new We(y));let c=await Ot({connection:this.connection,address:u});for(let[y,h]of Object.entries(c))s[y]=h;let m=e?it(e):{instructions:[],instructionTypes:[]},l=await ke(this.connection,this.blockhashCommitment),f=this.signers.reduce((y,h)=>G(K({},y),{[h.publicKey.toBase58()]:h}),{}),p=[],g=[],d=[];if(this.allInstructions.forEach(y=>{let h=[...d,y],w=e?[...m.instructions,...h]:h;if(d.length<12&&ve({instructions:w,payer:this.feePayer,lookupTableAddressAccount:s})||ve({instructions:h,payer:this.feePayer,lookupTableAddressAccount:s}))d.push(y);else{if(d.length===0)throw Error("item ins too big");let B={};for(let A of[...new Set(a)])s[A]!==void 0&&(B[A]=s[A]);if(e&&ve({instructions:[...m.instructions,...d],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let A=new qe({payerKey:this.feePayer,recentBlockhash:l,instructions:[...m.instructions,...d]}).compileToV0Message(Object.values(s));p.push(new Ue(A))}else{let A=new qe({payerKey:this.feePayer,recentBlockhash:l,instructions:[...d]}).compileToV0Message(Object.values(s));p.push(new Ue(A))}g.push(Array.from(new Set(d.map(A=>A.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(A=>f[A]).filter(A=>A!==void 0)),d=[y]}}),d.length>0){let h=[...new Set(d.map(w=>w.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat()).values()].map(w=>f[w]).filter(w=>w!==void 0);if(e&&ve({instructions:[...m.instructions,...d],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let w=new qe({payerKey:this.feePayer,recentBlockhash:l,instructions:[...m.instructions,...d]}).compileToV0Message(Object.values(s));p.push(new Ue(w))}else{let w=new qe({payerKey:this.feePayer,recentBlockhash:l,instructions:[...d]}).compileToV0Message(Object.values(s));p.push(new Ue(w))}g.push(h)}return(P=this.owner)!=null&&P.signer&&g.forEach(y=>{y.some(h=>h.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),{builder:this,transactions:p,buildProps:t,signers:g,instructionTypes:this.instructionTypes,execute:async y=>{var E;let{sequentially:h,onTxUpdate:w,recentBlockHash:B,skipPreflight:A=!0}=y||{};if(p.map(async(I,R)=>{g[R].length&&I.sign(g[R]),B&&(I.message.recentBlockhash=B)}),Te(p),(E=this.owner)!=null&&E.isKeyPair){if(h){let I=[];for(let R of p){let v=await this.connection.sendTransaction(R,{skipPreflight:A}),{lastValidBlockHeight:M,blockhash:U}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:U,lastValidBlockHeight:M,signature:v},"confirmed"),I.push(v)}return{txIds:I,signedTxs:p}}return{txIds:await Promise.all(p.map(async I=>await this.connection.sendTransaction(I,{skipPreflight:A}))),signedTxs:p}}if(this.signAllTransactions){let I=await this.signAllTransactions(p);if(h){let R=0,v=[],M=async()=>{if(!I[R])return;let U=await this.connection.sendTransaction(I[R],{skipPreflight:A});v.push({txId:U,status:"sent",signedTx:I[R]}),w==null||w([...v]),R++,this.connection.onSignature(U,X=>{let Q=v.findIndex(V=>V.txId===U);Q>-1&&(v[Q].status=X.err?"error":"success"),w==null||w([...v]),X.err||M()},"processed"),this.connection.getSignatureStatus(U)};return M(),{txIds:[],signedTxs:I}}else{let R=[];for(let v=0;v<I.length;v+=1){let M=await this.connection.sendTransaction(I[v],{skipPreflight:A});R.push(M)}return{txIds:R,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}};var Wt=(...n)=>n.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),Ge=class{constructor({scope:t,moduleName:e}){this.disabled=!1;this.scope=t,this.logger=Y(e)}createTxBuilder(t){return this.scope.checkOwner(),new mt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(Wt(t))}logInfo(...t){this.logger.info(Wt(t))}logAndCreateError(...t){let e=Wt(t);throw new Error(e)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var Ii=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Ni=Buffer.from("amm_config","utf8"),Li=Buffer.from("pool","utf8"),Mi=Buffer.from("pool_lp_mint","utf8"),Ri=Buffer.from("pool_vault","utf8"),Ei=Buffer.from("observation","utf8");function ft(n){return pe([Ii],n)}function Di(n,t){return pe([Ni,Fi(t)],n)}function Ki(n,t,e,r){return pe([Li,t.toBuffer(),e.toBuffer(),r.toBuffer()],n)}function vi(n,t){return pe([Mi,t.toBuffer()],n)}function On(n,t,e){return pe([Ri,t.toBuffer(),e.toBuffer()],n)}function Vt(n,t){return pe([Ei,t.toBuffer()],n)}function Fi(n){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,n,!1),new Uint8Array(t)}function _n({programId:n,mintA:t,mintB:e}){let r=Di(n,0).publicKey,i=ft(n).publicKey,o=Ki(n,r,t,e).publicKey,s=vi(n,o).publicKey,a=On(n,o,t).publicKey,u=On(n,o,e).publicKey,c=Vt(n,o).publicKey;return{poolId:o,configId:r,authority:i,lpMint:s,vaultA:a,vaultB:u,observationId:c}}import{TransactionInstruction as dt}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Zt,TOKEN_2022_PROGRAM_ID as jn,ASSOCIATED_TOKEN_PROGRAM_ID as Zi}from"@solana/spl-token";import{PublicKey as Hi}from"@solana/web3.js";import Gn,{isBN as Hn}from"bn.js";import{bits as Ju,BitStructure as Xu,blob as Oi,Blob as Qu,cstr as $u,f32 as ec,f32be as tc,f64 as nc,f64be as rc,greedy as ic,Layout as _i,ns64 as oc,ns64be as sc,nu64 as ac,nu64be as uc,offset as cc,s16 as lc,s16be as mc,s24 as fc,s24be as pc,s32 as dc,s32be as gc,s40 as hc,s40be as bc,s48 as yc,s48be as wc,s8 as Pc,seq as Wi,struct as Tc,Structure as Vi,u16 as qi,u16be as Ac,u24 as xc,u24be as Bc,u32 as kc,u32be as Sc,u40 as Cc,u40be as Ic,u48 as Nc,u48be as Lc,u8 as Ui,UInt as Gi,union as Mc,Union as Rc,unionLayoutDiscriminator as Ec,utf8 as Dc}from"@solana/buffer-layout";var qt=_i,Wn=Vi;var Ut=Gi;var Vn=Ui,qn=qi;var Un=Wi;var Ie=Oi;var Gt=class extends qt{constructor(e,r,i){super(e,i);this.blob=Ie(e),this.signed=r}decode(e,r=0){let i=new Gn(this.blob.decode(e,r),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(e,r,i=0){return typeof e=="number"&&(e=new Gn(e)),this.signed&&(e=e.toTwos(this.span*8)),this.blob.encode(e.toArrayLike(Buffer,"le",this.span),r,i)}};function ae(n){return new Ut(1,n)}function zt(n){return new Ut(4,n)}function _(n){return new Gt(8,!1,n)}var pt=class extends qt{constructor(e,r,i,o){super(e.span,o);this.layout=e,this.decoder=r,this.encoder=i}decode(e,r){return this.decoder(this.layout.decode(e,r))}encode(e,r,i){return this.layout.encode(this.encoder(e),r,i)}getSpan(e,r){return this.layout.getSpan(e,r)}};function J(n){return new pt(Ie(32),t=>new Hi(t),t=>t.toBuffer(),n)}function zn(n){return new pt(Vn(),zi,ji,n)}function zi(n){if(n===0)return!1;if(n===1)return!0;throw new Error("Invalid bool: "+n)}function ji(n){return n?1:0}var Ht=class extends Wn{decode(t,e){return super.decode(t,e)}};function ue(n,t,e){return new Ht(n,t,e)}function jt(n,t,e){let r,i=typeof t=="number"?t:Hn(t)?t.toNumber():new Proxy(t,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=Hn(a)?a.toNumber():a,Reflect.set(o,"count",r)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(r=a),Reflect.set(o,s,a)}});return Un(n,i,e)}var Yi=Y("Raydium_cpmm"),gt={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]};function Zn(n,t,e,r,i,o,s,a,u,c,m,l,f,p,g,d,T,P,y,h){let w=ue([_("amountMaxA"),_("amountMaxB"),_("openTime")]),B=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:T,isSigner:!1,isWritable:!0},{pubkey:Zt,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:Zi,isSigner:!1,isWritable:!1},{pubkey:wn,isSigner:!1,isWritable:!1},{pubkey:yn,isSigner:!1,isWritable:!1}],A=Buffer.alloc(w.span);return w.encode({amountMaxA:P,amountMaxB:y,openTime:h},A),new dt({keys:B,programId:n,data:Buffer.from([...gt.initialize,...A])})}function Yn(n,t,e,r,i,o,s,a,u,c,m,l,f,p,g){let d=ue([_("lpAmount"),_("amountMaxA"),_("amountMaxB")]),T=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:Zt,isSigner:!1,isWritable:!1},{pubkey:jn,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0}],P=Buffer.alloc(d.span);return Yi.debug("cpmm deposit data",{lpAmount:f.toString(),amountMaxA:p.toString(),amountMaxB:g.toString()}),d.encode({lpAmount:f,amountMaxA:p,amountMaxB:g},P),new dt({keys:T,programId:n,data:Buffer.from([...gt.deposit,...P])})}function Jn(n,t,e,r,i,o,s,a,u,c,m,l,f,p,g){let d=ue([_("lpAmount"),_("amountMinA"),_("amountMinB")]),T=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:Zt,isSigner:!1,isWritable:!1},{pubkey:jn,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:bn,isSigner:!1,isWritable:!1}],P=Buffer.alloc(d.span);return d.encode({lpAmount:f,amountMinA:p,amountMinB:g},P),new dt({keys:T,programId:n,data:Buffer.from([...gt.withdraw,...P])})}function Xn(n,t,e,r,i,o,s,a,u,c,m,l,f,p,g,d){let T=ue([_("amountIn"),_("amounOutMin")]),P=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0}],y=Buffer.alloc(T.span);return T.encode({amountIn:g,amounOutMin:d},y),new dt({keys:P,programId:n,data:Buffer.from([...gt.swapBaseInput,...y])})}import z from"bn.js";var Qn=ue([Ie(8),ae("bump"),zn("disableCreatePool"),qn("index"),_("tradeFeeRate"),_("protocolFeeRate"),_("fundFeeRate"),_("createPoolFee"),J("protocolOwner"),J("fundOwner"),jt(_(),16)]),$n=ue([Ie(8),J("configId"),J("poolCreator"),J("vaultA"),J("vaultB"),J("mintLp"),J("mintA"),J("mintB"),J("mintProgramA"),J("mintProgramB"),J("observationId"),ae("bump"),ae("status"),ae("lpDecimals"),ae("mintDecimalA"),ae("mintDecimalB"),_("lpAmount"),_("protocolFeesMintA"),_("protocolFeesMintB"),_("fundFeesMintA"),_("fundFeesMintB"),_("openTime"),jt(_(),32)]);var rl=ue([zt("mintAuthorityOption"),J("mintAuthority"),_("supply"),ae("decimals"),ae("isInitialized"),zt("freezeAuthorityOption"),J("freezeAuthority")]);import{PublicKey as al}from"@solana/web3.js";import{MintLayout as cl,TOKEN_PROGRAM_ID as ml}from"@solana/spl-token";var Ne=i=>{var o=i,{address:n,programId:t,decimals:e}=o,r=ce(o,["address","programId","decimals"]);return K({chainId:101,address:et(n).toBase58(),programId:t,logoURI:"",symbol:"",name:"",decimals:e,tags:[],extensions:r.extensions||{}},r)},He=n=>n?G(K({},n),{transferFeeConfigAuthority:n.transferFeeConfigAuthority.toBase58(),withdrawWithheldAuthority:n.withdrawWithheldAuthority.toBase58(),withheldAmount:n.withheldAmount.toString(),olderTransferFee:G(K({},n.olderTransferFee),{epoch:n.olderTransferFee.epoch.toString(),maximumFee:n.olderTransferFee.maximumFee.toString()}),newerTransferFee:G(K({},n.newerTransferFee),{epoch:n.newerTransferFee.epoch.toString(),maximumFee:n.newerTransferFee.maximumFee.toString()})}):void 0;var Yt=class extends Ge{constructor(t){super(t)}async load(){this.checkDisabled()}async getCpmmPoolKeys(t){return(await this.scope.api.fetchPoolKeysById({idList:[t]}))[0]}async getRpcPoolInfo(t,e){return(await this.getRpcPoolInfos([t],e))[t]}async getRpcPoolInfos(t,e){let r=await _e(this.scope.connection,t.map(l=>({pubkey:new S(l)}))),i={},o=new Set,s=[];for(let l=0;l<t.length;l++){let f=r[l];if(f.accountInfo===null)throw Error("fetch pool info error: "+String(t[l]));let p=$n.decode(f.accountInfo.data);i[String(t[l])]=G(K({},p),{programId:f.accountInfo.owner}),o.add(String(p.configId)),s.push(p.vaultA,p.vaultB)}let a={};if(e){let l=[...o],f=await _e(this.scope.connection,l.map(p=>({pubkey:new S(p)})));for(let p=0;p<l.length;p++){let g=f[p].accountInfo;if(g===null)throw Error("fetch pool config error: "+l[p]);a[l[p]]=Qn.decode(g.data)}}let u={},c=await _e(this.scope.connection,s.map(l=>({pubkey:new S(l)})));for(let l=0;l<s.length;l++){let f=c[l].accountInfo;if(f===null)throw Error("fetch vault info error: "+s[l]);u[String(s[l])]=new z(Ji.decode(f.data).amount.toString())}let m={};for(let[l,f]of Object.entries(i)){let p=u[f.vaultA.toString()].sub(f.protocolFeesMintA).sub(f.fundFeesMintA),g=u[f.vaultB.toString()].sub(f.protocolFeesMintB).sub(f.fundFeesMintB);m[l]=G(K({},f),{baseReserve:p,quoteReserve:g,vaultAAmount:u[f.vaultA.toString()],vaultBAmount:u[f.vaultB.toString()],configInfo:a[f.configId.toString()],poolPrice:new ee(g.toString()).div(new ee(10).pow(f.mintDecimalB)).div(new ee(p.toString()).div(new ee(10).pow(f.mintDecimalA)))})}return m}toComputePoolInfos({pools:t,mintInfos:e}){return Object.keys(t).reduce((r,i)=>{var u,c,m,l;let o=t[i],[s,a]=[o.mintA.toBase58(),o.mintB.toBase58()];return G(K({},r),{[i]:G(K({},o),{id:new S(i),configInfo:o.configInfo,version:7,authority:ft(o.programId).publicKey,mintA:Ne({address:s,decimals:o.mintDecimalA,programId:o.mintProgramA.toBase58(),extensions:{feeConfig:(u=e[s])!=null&&u.feeConfig?He((c=e[s])==null?void 0:c.feeConfig):void 0}}),mintB:Ne({address:a,decimals:o.mintDecimalB,programId:o.mintProgramB.toBase58(),extensions:{feeConfig:(m=e[a])!=null&&m.feeConfig?He((l=e[a])==null?void 0:l.feeConfig):void 0}})})})},{})}async getPoolInfoFromRpc(t){let e=await this.getRpcPoolInfo(t,!0),r=await vn({connection:this.scope.connection,mints:[e.mintA,e.mintB]}),i=Ne({address:e.mintA.toBase58(),decimals:e.mintDecimalA,programId:e.mintProgramA.toBase58(),extensions:{feeConfig:r[e.mintA.toBase58()].feeConfig?He(r[e.mintA.toBase58()].feeConfig):void 0}}),o=Ne({address:e.mintB.toBase58(),decimals:e.mintDecimalB,programId:e.mintProgramB.toBase58(),extensions:{feeConfig:r[e.mintB.toBase58()].feeConfig?He(r[e.mintB.toBase58()].feeConfig):void 0}}),s=Ne({address:e.mintLp.toBase58(),decimals:e.lpDecimals,programId:Ae.toBase58()}),a={id:e.configId.toBase58(),index:e.configInfo.index,protocolFeeRate:e.configInfo.protocolFeeRate.toNumber(),tradeFeeRate:e.configInfo.tradeFeeRate.toNumber(),fundFeeRate:e.configInfo.fundFeeRate.toNumber(),createPoolFee:e.configInfo.createPoolFee.toString()},u={volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[]};return{poolInfo:{programId:e.programId.toBase58(),id:t,type:"Standard",lpMint:s,lpPrice:0,lpAmount:e.lpAmount.toNumber(),config:a,mintA:i,mintB:o,rewardDefaultInfos:[],rewardDefaultPoolInfos:"Ecosystem",price:e.poolPrice.toNumber(),mintAmountA:new ee(e.vaultAAmount.toString()).div(10**i.decimals).toNumber(),mintAmountB:new ee(e.vaultBAmount.toString()).div(10**o.decimals).toNumber(),feeRate:e.configInfo.tradeFeeRate.toNumber(),openTime:e.openTime.toString(),tvl:0,day:u,week:u,month:u,pooltype:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0},poolKeys:{programId:e.programId.toBase58(),id:t,mintA:i,mintB:o,openTime:e.openTime.toString(),vault:{A:e.vaultA.toBase58(),B:e.vaultB.toBase58()},authority:ft(e.programId).publicKey.toBase58(),mintLp:s,config:a},rpcData:e}}async createPool(m){var l=m,{programId:t,poolFeeAccount:e,startTime:r,ownerInfo:i,associatedOnly:o=!1,checkCreateATAOwner:s=!1,txVersion:a,computeBudgetConfig:u}=l,c=ce(l,["programId","poolFeeAccount","startTime","ownerInfo","associatedOnly","checkCreateATAOwner","txVersion","computeBudgetConfig"]);var U,X,Q;let f=i.feePayer||((U=this.scope.owner)==null?void 0:U.publicKey),p=new z(new S(c.mintA.address).toBuffer()).lte(new z(new S(c.mintB.address).toBuffer())),[g,d]=p?[c.mintA,c.mintB]:[c.mintB,c.mintA],[T,P]=p?[c.mintAAmount,c.mintBAmount]:[c.mintBAmount,c.mintAAmount],y=i.useSOLBalance&&g.address===ht.toBase58(),h=i.useSOLBalance&&d.address===ht.toBase58(),[w,B]=[new S(g.address),new S(d.address)],A=this.createTxBuilder(),{account:E,instructionParams:I}=await this.scope.account.getOrCreateTokenAccount({mint:w,tokenProgram:g.programId,owner:this.scope.ownerPubKey,createInfo:y?{payer:f,amount:T}:void 0,notUseTokenAccount:y,skipCloseAccount:!y,associatedOnly:y?!1:o,checkCreateATAOwner:s});A.addInstruction(I||{});let{account:R,instructionParams:v}=await this.scope.account.getOrCreateTokenAccount({mint:new S(d.address),tokenProgram:d.programId,owner:this.scope.ownerPubKey,createInfo:h?{payer:f,amount:P}:void 0,notUseTokenAccount:h,skipCloseAccount:!h,associatedOnly:h?!1:o,checkCreateATAOwner:s});if(A.addInstruction(v||{}),E===void 0||R===void 0)throw Error("you don't has some token account");let M=_n({programId:t,mintA:w,mintB:B});return A.addInstruction({instructions:[Zn(t,this.scope.ownerPubKey,M.configId,M.authority,M.poolId,w,B,M.lpMint,E,R,Rn(this.scope.ownerPubKey,M.lpMint).publicKey,M.vaultA,M.vaultB,e,new S((X=g.programId)!=null?X:Ae),new S((Q=d.programId)!=null?Q:Ae),M.observationId,T,P,r)],instructionTypes:[fe.CpmmCreatePool]}),A.addCustomComputeBudget(u),A.versionBuild({txVersion:a,extInfo:{address:G(K({},M),{mintA:g,mintB:d,programId:t,poolFeeAccount:e})}})}async addLiquidity(t){let{poolInfo:e,poolKeys:r,inputAmount:i,baseIn:o,slippage:s,computeResult:a,computeBudgetConfig:u,config:c,txVersion:m}=t;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region"),i.isZero()&&this.logAndCreateError("amounts must greater than zero","amountInA",{amountInA:i.toString()});let{account:l}=this.scope,{bypassAssociatedCheck:f,checkCreateATAOwner:p}=K({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},c),g=a?void 0:await this.getRpcPoolInfo(e.id),{liquidity:d,inputAmountFee:T,anotherAmount:P}=a||this.computePairAmount({poolInfo:G(K({},e),{lpAmount:new ee(g.lpAmount.toString()).div(10**e.lpMint.decimals).toNumber()}),baseReserve:g.baseReserve,quoteReserve:g.quoteReserve,slippage:new se(0),baseIn:o,epochInfo:await this.scope.fetchEpochInfo(),amount:new ee(i.toString()).div(10**(o?e.mintA.decimals:e.mintB.decimals))}),y=P.amount,h=e.mintA.address===ht.toString(),w=e.mintB.address===ht.toString(),B=this.createTxBuilder(),[A,E]=[new S(e.mintA.address),new S(e.mintB.address)],{account:I,instructionParams:R}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintA.programId,mint:new S(e.mintA.address),owner:this.scope.ownerPubKey,createInfo:h||(o?i:y).isZero()?{payer:this.scope.ownerPubKey,amount:o?i:y}:void 0,skipCloseAccount:!h,notUseTokenAccount:h,associatedOnly:!1,checkCreateATAOwner:p});B.addInstruction(R||{});let{account:v,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintB.programId,mint:new S(e.mintB.address),owner:this.scope.ownerPubKey,createInfo:w||(o?y:i).isZero()?{payer:this.scope.ownerPubKey,amount:o?y:i}:void 0,skipCloseAccount:!w,notUseTokenAccount:w,associatedOnly:!1,checkCreateATAOwner:p});B.addInstruction(M||{}),!I&&!v&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",l.tokenAccounts);let U=await l.getCreatedTokenAccount({mint:new S(e.lpMint.address)}),Jt=await l.handleTokenAccount({side:"out",amount:0,mint:new S(e.lpMint.address),tokenAccount:U,bypassAssociatedCheck:f,checkCreateATAOwner:p}),{tokenAccount:X}=Jt,Q=ce(Jt,["tokenAccount"]);B.addInstruction(Q);let V=r!=null?r:await this.getCpmmPoolKeys(e.id),F=new se(new z(1)).sub(s);return B.addInstruction({instructions:[Yn(new S(e.programId),this.scope.ownerPubKey,new S(V.authority),new S(e.id),X,I,v,new S(V.vault.A),new S(V.vault.B),A,E,new S(e.lpMint.address),a?a==null?void 0:a.liquidity:F.mul(d).quotient,o?T.amount:y,o?y:T.amount)],instructionTypes:[fe.CpmmAddLiquidity],lookupTableAddress:V.lookupTableAccount?[V.lookupTableAccount]:[]}),B.addCustomComputeBudget(u),B.versionBuild({txVersion:m})}async withdrawLiquidity(t){var X,Q;let{poolInfo:e,poolKeys:r,lpAmount:i,slippage:o,computeBudgetConfig:s,txVersion:a}=t;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region");let u=new se(new z(1)).sub(o),c=await this.getRpcPoolInfo(e.id),[m,l]=[u.mul(i.mul(c.baseReserve).div(c.lpAmount)).quotient,u.mul(i.mul(c.quoteReserve).div(c.lpAmount)).quotient],f=await this.scope.fetchEpochInfo(),[p,g]=[Ce(m,e.mintA.extensions.feeConfig,f,!1),Ce(l,e.mintB.extensions.feeConfig,f,!1)],{account:d}=this.scope,T=this.createTxBuilder(),[P,y]=[new S(e.mintA.address),new S(e.mintB.address)],h=P.equals(me),w=y.equals(me),B,A,{account:E,instructionParams:I}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintA.programId,mint:new S(e.mintA.address),notUseTokenAccount:h,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!h,associatedOnly:!h,checkCreateATAOwner:!1});B=E,I&&T.addInstruction(I);let{account:R,instructionParams:v}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintB.programId,mint:new S(e.mintB.address),notUseTokenAccount:w,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!w,associatedOnly:!w,checkCreateATAOwner:!1});A=R,v&&T.addInstruction(v),(!B||!A)&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",d.tokenAccounts);let M=await d.getCreatedTokenAccount({mint:new S(e.lpMint.address)});M||this.logAndCreateError("cannot found lp token account","tokenAccounts",d.tokenAccounts);let U=r!=null?r:await this.getCpmmPoolKeys(e.id);return T.addInstruction({instructions:[Jn(new S(e.programId),this.scope.ownerPubKey,new S(U.authority),new S(e.id),M,B,A,new S(U.vault.A),new S(U.vault.B),P,y,new S(e.lpMint.address),i,m.sub((X=p.fee)!=null?X:new z(0)),l.sub((Q=g.fee)!=null?Q:new z(0)))],instructionTypes:[fe.CpmmWithdrawLiquidity],lookupTableAddress:U.lookupTableAccount?[U.lookupTableAccount]:[]}),T.addCustomComputeBudget(s),T.versionBuild({txVersion:a})}async swap(t){var I,R,v,M;let{poolInfo:e,poolKeys:r,baseIn:i,inputAmount:o,swapResult:s,slippage:a=0,config:u,computeBudgetConfig:c,txVersion:m}=t,{bypassAssociatedCheck:l,checkCreateATAOwner:f,associatedOnly:p}=K({bypassAssociatedCheck:!1,checkCreateATAOwner:!1,associatedOnly:!0},u),g=this.createTxBuilder(),[d,T]=[new S(e.mintA.address),new S(e.mintB.address)];s.destinationAmountSwapped=s.destinationAmountSwapped.mul(new z((1-a)*1e4)).div(new z(1e4));let P=e.mintA.address===me.toBase58(),y=e.mintB.address===me.toBase58(),{account:h,instructionParams:w}=await this.scope.account.getOrCreateTokenAccount({mint:d,tokenProgram:new S((I=e.mintA.programId)!=null?I:Ae),owner:this.scope.ownerPubKey,createInfo:P||!i?{payer:this.scope.ownerPubKey,amount:i?s.sourceAmountSwapped:0}:void 0,notUseTokenAccount:P,skipCloseAccount:!P,associatedOnly:P?!1:p,checkCreateATAOwner:f});w&&g.addInstruction(w);let{account:B,instructionParams:A}=await this.scope.account.getOrCreateTokenAccount({mint:T,tokenProgram:new S((R=e.mintB.programId)!=null?R:Ae),owner:this.scope.ownerPubKey,createInfo:y||i?{payer:this.scope.ownerPubKey,amount:i?0:s.sourceAmountSwapped}:void 0,notUseTokenAccount:y,skipCloseAccount:!y,associatedOnly:y?!1:p,checkCreateATAOwner:f});A&&g.addInstruction(A),(!h||!B)&&this.logAndCreateError("user do not have token account",{mintA:e.mintA.symbol||e.mintA.address,mintB:e.mintB.symbol||e.mintB.address,mintATokenAcc:h,mintBTokenAcc:B,mintAUseSOLBalance:P,mintBUseSOLBalance:y,associatedOnly:p});let E=r!=null?r:await this.getCpmmPoolKeys(e.id);return g.addInstruction({instructions:[Xn(new S(e.programId),this.scope.ownerPubKey,new S(E.authority),new S(E.config.id),new S(e.id),i?h:B,i?B:h,new S(E.vault[i?"A":"B"]),new S(E.vault[i?"B":"A"]),new S((v=e[i?"mintA":"mintB"].programId)!=null?v:Ae),new S((M=e[i?"mintB":"mintA"].programId)!=null?M:Ae),i?d:T,i?T:d,Vt(new S(e.programId),new S(e.id)).publicKey,o,s.destinationAmountSwapped)],instructionTypes:[i?fe.CpmmSwapBaseIn:fe.CpmmSwapBaseOut]}),g.addCustomComputeBudget(c),g.versionBuild({txVersion:m})}computeSwapAmount({pool:t,amountIn:e,outputMint:r,slippage:i}){let o=r.toString()===t.mintB.address,s=ut.swap(e,o?t.baseReserve:t.quoteReserve,o?t.quoteReserve:t.baseReserve,t.configInfo.tradeFeeRate),a=new ee(s.destinationAmountSwapped.toString()).div(s.sourceAmountSwapped.toString()),u=s.destinationAmountSwapped.mul(new z((1-i)*1e4)).div(new z(1e4));return{allTrade:s.sourceAmountSwapped.eq(e),amountIn:e,amountOut:s.destinationAmountSwapped,minAmountOut:u,executionPrice:a,fee:s.tradeFee,priceImpact:t.poolPrice.sub(a).div(t.poolPrice)}}computePairAmount({poolInfo:t,baseReserve:e,quoteReserve:r,amount:i,slippage:o,epochInfo:s,baseIn:a}){var y,h,w,B,A,E,I,R;let u=1-Number(o.toSignificant())/100,c=new z(new ee(i).mul(10**t[a?"mintA":"mintB"].decimals).mul(u).toFixed(0)),m=Ce(c,t[a?"mintA":"mintB"].extensions.feeConfig,s,!1),l=c.sub((y=m.fee)!=null?y:new z(0)),f=new z(new ee(t.lpAmount).mul(10**t.lpMint.decimals).toFixed(0,ee.ROUND_DOWN));this.logDebug("baseReserve:",e.toString(),"quoteReserve:",r.toString()),this.logDebug("tokenIn:",a?t.mintA.symbol:t.mintB.symbol,"amountIn:",c.toString(),"amountInFee:",(w=(h=m.fee)==null?void 0:h.toString())!=null?w:0,"anotherToken:",a?t.mintB.symbol:t.mintA.symbol,"slippage:",`${o.toSignificant()}%`);let p=a?"base":"quote";this.logDebug("input side:",p);let g=l.mul(f).div(p==="base"?e:r),d={amount:Mt,fee:void 0,expirationTime:void 0};if(!l.isZero()){let v=Xi(g,e,r,f);this.logDebug("lpAmountData:",{amountA:v.amountA.toString(),amountB:v.amountB.toString()}),d=Ce(v[a?"amountB":"amountA"],t[a?"mintB":"mintA"].extensions.feeConfig,s,!0)}let T=new se(new z(1)).add(o),P=Ce(T.mul(d.amount.sub((B=d.fee)!=null?B:new z(0))).quotient,t[a?"mintB":"mintA"].extensions.feeConfig,s,!0);return this.logDebug("anotherAmount:",d.amount.toString(),"anotherAmountFee:",(E=(A=d.fee)==null?void 0:A.toString())!=null?E:0,"maxAnotherAmount:",P.amount.toString(),"maxAnotherAmountFee:",(R=(I=P.fee)==null?void 0:I.toString())!=null?R:0),{inputAmountFee:m,anotherAmount:d,maxAnotherAmount:P,liquidity:g}}};function Xi(n,t,e,r){let i=n.mul(t).div(r);!i.isZero()&&!n.mul(t).mod(r).isZero()&&(i=i.add(new z(1)));let o=n.mul(e).div(r);return!o.isZero()&&!n.mul(e).mod(r).isZero()&&(o=o.add(new z(1))),{amountA:i,amountB:o}}export{Yt as default};
2
2
  //# sourceMappingURL=cpmm.mjs.map