@raydium-io/raydium-sdk-v2 0.1.3-alpha → 0.1.4-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 (90) 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 +5 -5
  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/type.d.ts +1 -1
  45. package/lib/raydium/farm/config.d.ts +1 -1
  46. package/lib/raydium/farm/farm.d.ts +3 -3
  47. package/lib/raydium/farm/index.d.ts +1 -1
  48. package/lib/raydium/farm/instruction.d.ts +1 -1
  49. package/lib/raydium/farm/layout.d.ts +1 -1
  50. package/lib/raydium/farm/type.d.ts +1 -1
  51. package/lib/raydium/farm/util.d.ts +1 -1
  52. package/lib/raydium/ido/ido.d.ts +3 -3
  53. package/lib/raydium/ido/index.d.ts +3 -3
  54. package/lib/raydium/ido/instruction.d.ts +1 -1
  55. package/lib/raydium/ido/type.d.ts +1 -1
  56. package/lib/raydium/index.d.ts +3 -3
  57. package/lib/raydium/index.js +1 -1
  58. package/lib/raydium/index.js.map +1 -1
  59. package/lib/raydium/index.mjs +1 -1
  60. package/lib/raydium/index.mjs.map +1 -1
  61. package/lib/raydium/liquidity/index.d.ts +1 -1
  62. package/lib/raydium/liquidity/instruction.d.ts +1 -1
  63. package/lib/raydium/liquidity/liquidity.d.ts +3 -3
  64. package/lib/raydium/liquidity/type.d.ts +1 -1
  65. package/lib/raydium/liquidity/utils.d.ts +1 -1
  66. package/lib/raydium/marketV2/createMarket.d.ts +3 -3
  67. package/lib/raydium/marketV2/index.d.ts +3 -3
  68. package/lib/raydium/moduleBase.d.ts +3 -3
  69. package/lib/raydium/raydium.d.ts +3 -3
  70. package/lib/raydium/raydium.js +1 -1
  71. package/lib/raydium/raydium.js.map +1 -1
  72. package/lib/raydium/raydium.mjs +1 -1
  73. package/lib/raydium/raydium.mjs.map +1 -1
  74. package/lib/raydium/token/constant.d.ts +1 -1
  75. package/lib/raydium/token/index.d.ts +1 -1
  76. package/lib/raydium/token/token.d.ts +3 -3
  77. package/lib/raydium/token/type.d.ts +1 -1
  78. package/lib/raydium/token/utils.d.ts +1 -1
  79. package/lib/raydium/tradeV2/index.d.ts +2 -2
  80. package/lib/raydium/tradeV2/instrument.d.ts +2 -2
  81. package/lib/raydium/tradeV2/trade.d.ts +3 -3
  82. package/lib/raydium/tradeV2/type.d.ts +2 -2
  83. package/lib/raydium/type.d.ts +1 -1
  84. package/lib/raydium/utils1216/index.d.ts +3 -3
  85. package/lib/raydium/utils1216/utils1216.d.ts +3 -3
  86. package/lib/{raydium-506bacbc.d.ts → raydium-6435918d.d.ts} +2 -2
  87. package/lib/{type-389634c9.d.ts → type-291f7eb1.d.ts} +1 -1
  88. package/lib/{type-9fe71e3c.d.ts → type-515cebdd.d.ts} +3 -3
  89. package/package.json +1 -1
  90. package/src/raydium/cpmm/cpmm.ts +5 -3
@@ -1,2 +1,2 @@
1
- var Fn=Object.defineProperty,Wn=Object.defineProperties;var Vn=Object.getOwnPropertyDescriptors;var Ge=Object.getOwnPropertySymbols;var Kt=Object.prototype.hasOwnProperty,Dt=Object.prototype.propertyIsEnumerable;var Et=(e,t,n)=>t in e?Fn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,V=(e,t)=>{for(var n in t||(t={}))Kt.call(t,n)&&Et(e,n,t[n]);if(Ge)for(var n of Ge(t))Dt.call(t,n)&&Et(e,n,t[n]);return e},$=(e,t)=>Wn(e,Vn(t));var se=(e,t)=>{var n={};for(var r in e)Kt.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Ge)for(var r of Ge(e))t.indexOf(r)<0&&Dt.call(e,r)&&(n[r]=e[r]);return n};import{PublicKey as B}from"@solana/web3.js";import{NATIVE_MINT as at,TOKEN_PROGRAM_ID as be,AccountLayout as On}from"@solana/spl-token";import Jr from"big.js";import Ts from"bn.js";import Q from"bn.js";var Te=9e15,de=1e9,ut="0123456789abcdef",je="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Ze="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",ct={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Te,maxE:Te,crypto:!1},Ot,ae,S=!0,Ye="[DecimalError] ",pe=Ye+"Invalid argument: ",Ft=Ye+"Precision limit exceeded",Wt=Ye+"crypto unavailable",Vt="[object Decimal]",Z=Math.floor,U=Math.pow,qn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Un=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Gn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,qt=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ne=1e7,k=7,Hn=9007199254740991,jn=je.length-1,lt=Ze.length-1,b={toStringTag:Vt};b.absoluteValue=b.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),A(e)};b.ceil=function(){return A(new this.constructor(this),this.e+1,2)};b.clampedTo=b.clamp=function(e,t){var n,r=this,i=r.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(pe+t);return n=r.cmp(e),n<0?e:r.cmp(t)>0?t:new i(r)};b.comparedTo=b.cmp=function(e){var t,n,r,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,c=o.s,u=e.s;if(!s||!a)return!c||!u?NaN:c!==u?c:s===a?0:!s^c<0?1:-1;if(!s[0]||!a[0])return s[0]?c:a[0]?-u:0;if(c!==u)return c;if(o.e!==e.e)return o.e>e.e^c<0?1:-1;for(r=s.length,i=a.length,t=0,n=r<i?r:i;t<n;++t)if(s[t]!==a[t])return s[t]>a[t]^c<0?1:-1;return r===i?0:r>i^c<0?1:-1};b.cosine=b.cos=function(){var e,t,n=this,r=n.constructor;return n.d?n.d[0]?(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+k,r.rounding=1,n=Zn(r,Zt(r,n)),r.precision=e,r.rounding=t,A(ae==2||ae==3?n.neg():n,e,t,!0)):new r(1):new r(NaN)};b.cubeRoot=b.cbrt=function(){var e,t,n,r,i,o,s,a,c,u,l=this,f=l.constructor;if(!l.isFinite()||l.isZero())return new f(l);for(S=!1,o=l.s*U(l.s*l,1/3),!o||Math.abs(o)==1/0?(n=j(l.d),e=l.e,(o=(e-n.length+1)%3)&&(n+=o==1||o==-2?"0":"00"),o=U(n,1/3),e=Z((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?n="5e"+e:(n=o.toExponential(),n=n.slice(0,n.indexOf("e")+1)+e),r=new f(n),r.s=l.s):r=new f(o.toString()),s=(e=f.precision)+3;;)if(a=r,c=a.times(a).times(a),u=c.plus(l),r=R(u.plus(l).times(a),u.plus(c),s+2,1),j(a.d).slice(0,s)===(n=j(r.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!i&&n=="4999"){if(!i&&(A(a,e+1,0),a.times(a).times(a).eq(l))){r=a;break}s+=4,i=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(A(r,e+1,1),t=!r.times(r).times(r).eq(l));break}return S=!0,A(r,e,f.rounding,t)};b.decimalPlaces=b.dp=function(){var e,t=this.d,n=NaN;if(t){if(e=t.length-1,n=(e-Z(this.e/k))*k,e=t[e],e)for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n};b.dividedBy=b.div=function(e){return R(this,new this.constructor(e))};b.dividedToIntegerBy=b.divToInt=function(e){var t=this,n=t.constructor;return A(R(t,new n(e),0,1,1),n.precision,n.rounding)};b.equals=b.eq=function(e){return this.cmp(e)===0};b.floor=function(){return A(new this.constructor(this),this.e+1,3)};b.greaterThan=b.gt=function(e){return this.cmp(e)>0};b.greaterThanOrEqualTo=b.gte=function(e){var t=this.cmp(e);return t==1||t===0};b.hyperbolicCosine=b.cosh=function(){var e,t,n,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;n=s.precision,r=s.rounding,s.precision=n+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),t=(1/Xe(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=xe(s,1,o.times(t),new s(1),!0);for(var c,u=e,l=new s(8);u--;)c=o.times(o),o=a.minus(c.times(l.minus(c.times(l))));return A(o,s.precision=n,s.rounding=r,!0)};b.hyperbolicSine=b.sinh=function(){var e,t,n,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,n=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=xe(o,2,i,i,!0);else{e=1.4*Math.sqrt(r),e=e>16?16:e|0,i=i.times(1/Xe(5,e)),i=xe(o,2,i,i,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=t,o.rounding=n,A(i,t,n,!0)};b.hyperbolicTangent=b.tanh=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+7,r.rounding=1,R(n.sinh(),n.cosh(),r.precision=e,r.rounding=t)):new r(n.s)};b.inverseCosine=b.acos=function(){var e,t=this,n=t.constructor,r=t.abs().cmp(1),i=n.precision,o=n.rounding;return r!==-1?r===0?t.isNeg()?te(n,i,o):new n(0):new n(NaN):t.isZero()?te(n,i+4,o).times(.5):(n.precision=i+6,n.rounding=1,t=t.asin(),e=te(n,i+4,o).times(.5),n.precision=i,n.rounding=o,e.minus(t))};b.inverseHyperbolicCosine=b.acosh=function(){var e,t,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(e=r.precision,t=r.rounding,r.precision=e+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,S=!1,n=n.times(n).minus(1).sqrt().plus(n),S=!0,r.precision=e,r.rounding=t,n.ln()):new r(n)};b.inverseHyperbolicSine=b.asinh=function(){var e,t,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,S=!1,n=n.times(n).plus(1).sqrt().plus(n),S=!0,r.precision=e,r.rounding=t,n.ln())};b.inverseHyperbolicTangent=b.atanh=function(){var e,t,n,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):(e=o.precision,t=o.rounding,r=i.sd(),Math.max(r,e)<2*-i.e-1?A(new o(i),e,t,!0):(o.precision=n=r-i.e,i=R(i.plus(1),new o(1).minus(i),n+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)};b.inverseSine=b.asin=function(){var e,t,n,r,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),n=o.precision,r=o.rounding,t!==-1?t===0?(e=te(o,n+4,r).times(.5),e.s=i.s,e):new o(NaN):(o.precision=n+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=n,o.rounding=r,i.times(2)))};b.inverseTangent=b.atan=function(){var e,t,n,r,i,o,s,a,c,u=this,l=u.constructor,f=l.precision,m=l.rounding;if(u.isFinite()){if(u.isZero())return new l(u);if(u.abs().eq(1)&&f+4<=lt)return s=te(l,f+4,m).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(f+4<=lt)return s=te(l,f+4,m).times(.5),s.s=u.s,s}for(l.precision=a=f+10,l.rounding=1,n=Math.min(28,a/k+2|0),e=n;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(S=!1,t=Math.ceil(a/k),r=1,c=u.times(u),s=new l(u),i=u;e!==-1;)if(i=i.times(c),o=s.minus(i.div(r+=2)),i=i.times(c),s=o.plus(i.div(r+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return n&&(s=s.times(2<<n-1)),S=!0,A(s,l.precision=f,l.rounding=m,!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(e){return this.cmp(e)<0};b.lessThanOrEqualTo=b.lte=function(e){return this.cmp(e)<1};b.logarithm=b.log=function(e){var t,n,r,i,o,s,a,c,u=this,l=u.constructor,f=l.precision,m=l.rounding,g=5;if(e==null)e=new l(10),t=!0;else{if(e=new l(e),n=e.d,e.s<0||!n||!n[0]||e.eq(1))return new l(NaN);t=e.eq(10)}if(n=u.d,u.s<0||!n||!n[0]||u.eq(1))return new l(n&&!n[0]?-1/0:u.s!=1?NaN:n?0:1/0);if(t)if(n.length>1)o=!0;else{for(i=n[0];i%10===0;)i/=10;o=i!==1}if(S=!1,a=f+g,s=me(u,a),r=t?ze(l,a+10):me(e,a),c=R(s,r,a,1),Ce(c.d,i=f,m))do if(a+=10,s=me(u,a),r=t?ze(l,a+10):me(e,a),c=R(s,r,a,1),!o){+j(c.d).slice(i+1,i+15)+1==1e14&&(c=A(c,f+1,0));break}while(Ce(c.d,i+=10,m));return S=!0,A(c,f,m)};b.minus=b.sub=function(e){var t,n,r,i,o,s,a,c,u,l,f,m,g=this,w=g.constructor;if(e=new w(e),!g.d||!e.d)return!g.s||!e.s?e=new w(NaN):g.d?e.s=-e.s:e=new w(e.d||g.s!==e.s?g:NaN),e;if(g.s!=e.s)return e.s=-e.s,g.plus(e);if(u=g.d,m=e.d,a=w.precision,c=w.rounding,!u[0]||!m[0]){if(m[0])e.s=-e.s;else if(u[0])e=new w(g);else return new w(c===3?-0:0);return S?A(e,a,c):e}if(n=Z(e.e/k),l=Z(g.e/k),u=u.slice(),o=l-n,o){for(f=o<0,f?(t=u,o=-o,s=m.length):(t=m,n=l,s=u.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=u.length,s=m.length,f=r<s,f&&(s=r),r=0;r<s;r++)if(u[r]!=m[r]){f=u[r]<m[r];break}o=0}for(f&&(t=u,u=m,m=t,e.s=-e.s),s=u.length,r=m.length-s;r>0;--r)u[s++]=0;for(r=m.length;r>o;){if(u[--r]<m[r]){for(i=r;i&&u[--i]===0;)u[i]=ne-1;--u[i],u[r]+=ne}u[r]-=m[r]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--n;return u[0]?(e.d=u,e.e=Je(u,n),S?A(e,a,c):e):new w(c===3?-0:0)};b.modulo=b.mod=function(e){var t,n=this,r=n.constructor;return e=new r(e),!n.d||!e.s||e.d&&!e.d[0]?new r(NaN):!e.d||n.d&&!n.d[0]?A(new r(n),r.precision,r.rounding):(S=!1,r.modulo==9?(t=R(n,e.abs(),0,3,1),t.s*=e.s):t=R(n,e,0,r.modulo,1),t=t.times(e),S=!0,n.minus(t))};b.naturalExponential=b.exp=function(){return ft(this)};b.naturalLogarithm=b.ln=function(){return me(this)};b.negated=b.neg=function(){var e=new this.constructor(this);return e.s=-e.s,A(e)};b.plus=b.add=function(e){var t,n,r,i,o,s,a,c,u,l,f=this,m=f.constructor;if(e=new m(e),!f.d||!e.d)return!f.s||!e.s?e=new m(NaN):f.d||(e=new m(e.d||f.s===e.s?f:NaN)),e;if(f.s!=e.s)return e.s=-e.s,f.minus(e);if(u=f.d,l=e.d,a=m.precision,c=m.rounding,!u[0]||!l[0])return l[0]||(e=new m(f)),S?A(e,a,c):e;if(o=Z(f.e/k),r=Z(e.e/k),u=u.slice(),i=o-r,i){for(i<0?(n=u,i=-i,s=l.length):(n=l,r=o,s=u.length),o=Math.ceil(a/k),s=o>s?o+1:s+1,i>s&&(i=s,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for(s=u.length,i=l.length,s-i<0&&(i=s,n=l,l=u,u=n),t=0;i;)t=(u[--i]=u[i]+l[i]+t)/ne|0,u[i]%=ne;for(t&&(u.unshift(t),++r),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=Je(u,r),S?A(e,a,c):e};b.precision=b.sd=function(e){var t,n=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(pe+e);return n.d?(t=Ut(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t};b.round=function(){var e=this,t=e.constructor;return A(new t(e),e.e+1,t.rounding)};b.sine=b.sin=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+k,r.rounding=1,n=Yn(r,Zt(r,n)),r.precision=e,r.rounding=t,A(ae>2?n.neg():n,e,t,!0)):new r(NaN)};b.squareRoot=b.sqrt=function(){var e,t,n,r,i,o,s=this,a=s.d,c=s.e,u=s.s,l=s.constructor;if(u!==1||!a||!a[0])return new l(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(S=!1,u=Math.sqrt(+s),u==0||u==1/0?(t=j(a),(t.length+c)%2==0&&(t+="0"),u=Math.sqrt(t),c=Z((c+1)/2)-(c<0||c%2),u==1/0?t="5e"+c:(t=u.toExponential(),t=t.slice(0,t.indexOf("e")+1)+c),r=new l(t)):r=new l(u.toString()),n=(c=l.precision)+3;;)if(o=r,r=o.plus(R(s,o,n+2,1)).times(.5),j(o.d).slice(0,n)===(t=j(r.d)).slice(0,n))if(t=t.slice(n-3,n+1),t=="9999"||!i&&t=="4999"){if(!i&&(A(o,c+1,0),o.times(o).eq(s))){r=o;break}n+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(A(r,c+1,1),e=!r.times(r).eq(s));break}return S=!0,A(r,c,l.rounding,e)};b.tangent=b.tan=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+10,r.rounding=1,n=n.sin(),n.s=1,n=R(n,new r(1).minus(n.times(n)).sqrt(),e+10,0),r.precision=e,r.rounding=t,A(ae==2||ae==4?n.neg():n,e,t,!0)):new r(NaN)};b.times=b.mul=function(e){var t,n,r,i,o,s,a,c,u,l=this,f=l.constructor,m=l.d,g=(e=new f(e)).d;if(e.s*=l.s,!m||!m[0]||!g||!g[0])return new f(!e.s||m&&!m[0]&&!g||g&&!g[0]&&!m?NaN:!m||!g?e.s/0:e.s*0);for(n=Z(l.e/k)+Z(e.e/k),c=m.length,u=g.length,c<u&&(o=m,m=g,g=o,s=c,c=u,u=s),o=[],s=c+u,r=s;r--;)o.push(0);for(r=u;--r>=0;){for(t=0,i=c+r;i>r;)a=o[i]+g[r]*m[i-r-1]+t,o[i--]=a%ne|0,t=a/ne|0;o[i]=(o[i]+t)%ne|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=Je(o,n),S?A(e,f.precision,f.rounding):e};b.toBinary=function(e,t){return pt(this,2,e,t)};b.toDecimalPlaces=b.toDP=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(X(e,0,de),t===void 0?t=r.rounding:X(t,0,8),A(n,e+n.e+1,t))};b.toExponential=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=oe(r,!0):(X(e,0,de),t===void 0?t=i.rounding:X(t,0,8),r=A(new i(r),e+1,t),n=oe(r,!0,e+1)),r.isNeg()&&!r.isZero()?"-"+n:n};b.toFixed=function(e,t){var n,r,i=this,o=i.constructor;return e===void 0?n=oe(i):(X(e,0,de),t===void 0?t=o.rounding:X(t,0,8),r=A(new o(i),e+i.e+1,t),n=oe(r,!1,e+r.e+1)),i.isNeg()&&!i.isZero()?"-"+n:n};b.toFraction=function(e){var t,n,r,i,o,s,a,c,u,l,f,m,g=this,w=g.d,p=g.constructor;if(!w)return new p(g);if(u=n=new p(1),r=c=new p(0),t=new p(r),o=t.e=Ut(w)-g.e-1,s=o%k,t.d[0]=U(10,s<0?k+s:s),e==null)e=o>0?t:u;else{if(a=new p(e),!a.isInt()||a.lt(u))throw Error(pe+a);e=a.gt(t)?o>0?t:u:a}for(S=!1,a=new p(j(w)),l=p.precision,p.precision=o=w.length*k*2;f=R(a,t,0,1,1),i=n.plus(f.times(r)),i.cmp(e)!=1;)n=r,r=i,i=u,u=c.plus(f.times(i)),c=i,i=t,t=a.minus(f.times(i)),a=i;return i=R(e.minus(n),r,0,1,1),c=c.plus(i.times(u)),n=n.plus(i.times(r)),c.s=u.s=g.s,m=R(u,r,o,1).minus(g).abs().cmp(R(c,n,o,1).minus(g).abs())<1?[u,r]:[c,n],p.precision=l,S=!0,m};b.toHexadecimal=b.toHex=function(e,t){return pt(this,16,e,t)};b.toNearest=function(e,t){var n=this,r=n.constructor;if(n=new r(n),e==null){if(!n.d)return n;e=new r(1),t=r.rounding}else{if(e=new r(e),t===void 0?t=r.rounding:X(t,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&(e.s=n.s),e}return e.d[0]?(S=!1,n=R(n,e,0,t,1).times(e),S=!0,A(n)):(e.s=n.s,n=e),n};b.toNumber=function(){return+this};b.toOctal=function(e,t){return pt(this,8,e,t)};b.toPower=b.pow=function(e){var t,n,r,i,o,s,a=this,c=a.constructor,u=+(e=new c(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new c(U(+a,u));if(a=new c(a),a.eq(1))return a;if(r=c.precision,o=c.rounding,e.eq(1))return A(a,r,o);if(t=Z(e.e/k),t>=e.d.length-1&&(n=u<0?-u:u)<=Hn)return i=Gt(c,a,n,r),e.s<0?new c(1).div(i):A(i,r,o);if(s=a.s,s<0){if(t<e.d.length-1)return new c(NaN);if((e.d[t]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return n=U(+a,u),t=n==0||!isFinite(n)?Z(u*(Math.log("0."+j(a.d))/Math.LN10+a.e+1)):new c(n+"").e,t>c.maxE+1||t<c.minE-1?new c(t>0?s/0:0):(S=!1,c.rounding=a.s=1,n=Math.min(12,(t+"").length),i=ft(e.times(me(a,r+n)),r),i.d&&(i=A(i,r+5,1),Ce(i.d,r,o)&&(t=r+10,i=A(ft(e.times(me(a,t+n)),t),t+5,1),+j(i.d).slice(r+1,r+15)+1==1e14&&(i=A(i,r+1,0)))),i.s=s,S=!0,c.rounding=o,A(i,r,o))};b.toPrecision=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=oe(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(X(e,1,de),t===void 0?t=i.rounding:X(t,0,8),r=A(new i(r),e,t),n=oe(r,e<=r.e||r.e<=i.toExpNeg,e)),r.isNeg()&&!r.isZero()?"-"+n:n};b.toSignificantDigits=b.toSD=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(X(e,1,de),t===void 0?t=r.rounding:X(t,0,8)),A(new r(n),e,t)};b.toString=function(){var e=this,t=e.constructor,n=oe(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n};b.truncated=b.trunc=function(){return A(new this.constructor(this),this.e+1,1)};b.valueOf=b.toJSON=function(){var e=this,t=e.constructor,n=oe(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n};function j(e){var t,n,r,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;t<i;t++)r=e[t]+"",n=k-r.length,n&&(o+=fe(n)),o+=r;s=e[t],r=s+"",n=k-r.length,n&&(o+=fe(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function X(e,t,n){if(e!==~~e||e<t||e>n)throw Error(pe+e)}function Ce(e,t,n,r){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=k,i=0):(i=Math.ceil((t+1)/k),t%=k),o=U(10,k-t),a=e[i]%o|0,r==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=n<4&&a==99999||n>3&&a==49999||a==5e4||a==0):s=(n<4&&a+1==o||n>3&&a+1==o/2)&&(e[i+1]/o/100|0)==U(10,t-2)-1||(a==o/2||a==0)&&(e[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||n<4)&&a==9999||!r&&n>3&&a==4999):s=((r||n<4)&&a+1==o||!r&&n>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==U(10,t-3)-1,s}function He(e,t,n){for(var r,i=[0],o,s=0,a=e.length;s<a;){for(o=i.length;o--;)i[o]*=t;for(i[0]+=ut.indexOf(e.charAt(s++)),r=0;r<i.length;r++)i[r]>n-1&&(i[r+1]===void 0&&(i[r+1]=0),i[r+1]+=i[r]/n|0,i[r]%=n)}return i.reverse()}function Zn(e,t){var n,r,i;if(t.isZero())return t;r=t.d.length,r<32?(n=Math.ceil(r/3),i=(1/Xe(4,n)).toString()):(n=16,i="2.3283064365386962890625e-10"),e.precision+=n,t=xe(e,1,t.times(i),new e(1));for(var o=n;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=n,t}var R=function(){function e(r,i,o){var s,a=0,c=r.length;for(r=r.slice();c--;)s=r[c]*i+a,r[c]=s%o|0,a=s/o|0;return a&&r.unshift(a),r}function t(r,i,o,s){var a,c;if(o!=s)c=o>s?1:-1;else for(a=c=0;a<o;a++)if(r[a]!=i[a]){c=r[a]>i[a]?1:-1;break}return c}function n(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,c){var u,l,f,m,g,w,p,P,d,y,h,T,x,C,L,M,N,F,I,G,H=r.constructor,J=r.s==i.s?1:-1,q=r.d,_=i.d;if(!q||!q[0]||!_||!_[0])return new H(!r.s||!i.s||(q?_&&q[0]==_[0]:!_)?NaN:q&&q[0]==0||!_?J*0:J/0);for(c?(g=1,l=r.e-i.e):(c=ne,g=k,l=Z(r.e/g)-Z(i.e/g)),I=_.length,N=q.length,d=new H(J),y=d.d=[],f=0;_[f]==(q[f]||0);f++);if(_[f]>(q[f]||0)&&l--,o==null?(C=o=H.precision,s=H.rounding):a?C=o+(r.e-i.e)+1:C=o,C<0)y.push(1),w=!0;else{if(C=C/g+2|0,f=0,I==1){for(m=0,_=_[0],C++;(f<N||m)&&C--;f++)L=m*c+(q[f]||0),y[f]=L/_|0,m=L%_|0;w=m||f<N}else{for(m=c/(_[0]+1)|0,m>1&&(_=e(_,m,c),q=e(q,m,c),I=_.length,N=q.length),M=I,h=q.slice(0,I),T=h.length;T<I;)h[T++]=0;G=_.slice(),G.unshift(0),F=_[0],_[1]>=c/2&&++F;do m=0,u=t(_,h,I,T),u<0?(x=h[0],I!=T&&(x=x*c+(h[1]||0)),m=x/F|0,m>1?(m>=c&&(m=c-1),p=e(_,m,c),P=p.length,T=h.length,u=t(p,h,P,T),u==1&&(m--,n(p,I<P?G:_,P,c))):(m==0&&(u=m=1),p=_.slice()),P=p.length,P<T&&p.unshift(0),n(h,p,T,c),u==-1&&(T=h.length,u=t(_,h,I,T),u<1&&(m++,n(h,I<T?G:_,T,c))),T=h.length):u===0&&(m++,h=[0]),y[f++]=m,u&&h[0]?h[T++]=q[M]||0:(h=[q[M]],T=1);while((M++<N||h[0]!==void 0)&&C--);w=h[0]!==void 0}y[0]||y.shift()}if(g==1)d.e=l,Ot=w;else{for(f=1,m=y[0];m>=10;m/=10)f++;d.e=f+l*g-1,A(d,a?o+d.e+1:o,s,w)}return d}}();function A(e,t,n,r){var i,o,s,a,c,u,l,f,m,g=e.constructor;e:if(t!=null){if(f=e.d,!f)return e;for(i=1,a=f[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=k,s=t,l=f[m=0],c=l/U(10,i-s-1)%10|0;else if(m=Math.ceil((o+1)/k),a=f.length,m>=a)if(r){for(;a++<=m;)f.push(0);l=c=0,i=1,o%=k,s=o-k+1}else break e;else{for(l=a=f[m],i=1;a>=10;a/=10)i++;o%=k,s=o-k+i,c=s<0?0:l/U(10,i-s-1)%10|0}if(r=r||t<0||f[m+1]!==void 0||(s<0?l:l%U(10,i-s-1)),u=n<4?(c||r)&&(n==0||n==(e.s<0?3:2)):c>5||c==5&&(n==4||r||n==6&&(o>0?s>0?l/U(10,i-s):0:f[m-1])%10&1||n==(e.s<0?8:7)),t<1||!f[0])return f.length=0,u?(t-=e.e+1,f[0]=U(10,(k-t%k)%k),e.e=-t||0):f[0]=e.e=0,e;if(o==0?(f.length=m,a=1,m--):(f.length=m+1,a=U(10,k-o),f[m]=s>0?(l/U(10,i-s)%U(10,s)|0)*a:0),u)for(;;)if(m==0){for(o=1,s=f[0];s>=10;s/=10)o++;for(s=f[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,f[0]==ne&&(f[0]=1));break}else{if(f[m]+=a,f[m]!=ne)break;f[m--]=0,a=1}for(o=f.length;f[--o]===0;)f.pop()}return S&&(e.e>g.maxE?(e.d=null,e.e=NaN):e.e<g.minE&&(e.e=0,e.d=[0])),e}function oe(e,t,n){if(!e.isFinite())return jt(e);var r,i=e.e,o=j(e.d),s=o.length;return t?(n&&(r=n-s)>0?o=o.charAt(0)+"."+o.slice(1)+fe(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+fe(-i-1)+o,n&&(r=n-s)>0&&(o+=fe(r))):i>=s?(o+=fe(i+1-s),n&&(r=n-i-1)>0&&(o=o+"."+fe(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-s)>0&&(i+1===s&&(o+="."),o+=fe(r))),o}function Je(e,t){var n=e[0];for(t*=k;n>=10;n/=10)t++;return t}function ze(e,t,n){if(t>jn)throw S=!0,n&&(e.precision=n),Error(Ft);return A(new e(je),t,1,!0)}function te(e,t,n){if(t>lt)throw Error(Ft);return A(new e(Ze),t,n,!0)}function Ut(e){var t=e.length-1,n=t*k+1;if(t=e[t],t){for(;t%10==0;t/=10)n--;for(t=e[0];t>=10;t/=10)n++}return n}function fe(e){for(var t="";e--;)t+="0";return t}function Gt(e,t,n,r){var i,o=new e(1),s=Math.ceil(r/k+4);for(S=!1;;){if(n%2&&(o=o.times(t),vt(o.d,s)&&(i=!0)),n=Z(n/2),n===0){n=o.d.length-1,i&&o.d[n]===0&&++o.d[n];break}t=t.times(t),vt(t.d,s)}return S=!0,o}function Rt(e){return e.d[e.d.length-1]&1}function Ht(e,t,n){for(var r,i=new e(t[0]),o=0;++o<t.length;)if(r=new e(t[o]),r.s)i[n](r)&&(i=r);else{i=r;break}return i}function ft(e,t){var n,r,i,o,s,a,c,u=0,l=0,f=0,m=e.constructor,g=m.rounding,w=m.precision;if(!e.d||!e.d[0]||e.e>17)return new m(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:0/0);for(t==null?(S=!1,c=w):c=t,a=new m(.03125);e.e>-2;)e=e.times(a),f+=5;for(r=Math.log(U(2,f))/Math.LN10*2+5|0,c+=r,n=o=s=new m(1),m.precision=c;;){if(o=A(o.times(e),c,1),n=n.times(++l),a=s.plus(R(o,n,c,1)),j(a.d).slice(0,c)===j(s.d).slice(0,c)){for(i=f;i--;)s=A(s.times(s),c,1);if(t==null)if(u<3&&Ce(s.d,c-r,g,u))m.precision=c+=10,n=o=a=new m(1),l=0,u++;else return A(s,m.precision=w,g,S=!0);else return m.precision=w,s}s=a}}function me(e,t){var n,r,i,o,s,a,c,u,l,f,m,g=1,w=10,p=e,P=p.d,d=p.constructor,y=d.rounding,h=d.precision;if(p.s<0||!P||!P[0]||!p.e&&P[0]==1&&P.length==1)return new d(P&&!P[0]?-1/0:p.s!=1?NaN:P?0:p);if(t==null?(S=!1,l=h):l=t,d.precision=l+=w,n=j(P),r=n.charAt(0),Math.abs(o=p.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)p=p.times(e),n=j(p.d),r=n.charAt(0),g++;o=p.e,r>1?(p=new d("0."+n),o++):p=new d(r+"."+n.slice(1))}else return u=ze(d,l+2,h).times(o+""),p=me(new d(r+"."+n.slice(1)),l-w).plus(u),d.precision=h,t==null?A(p,h,y,S=!0):p;for(f=p,c=s=p=R(p.minus(1),p.plus(1),l,1),m=A(p.times(p),l,1),i=3;;){if(s=A(s.times(m),l,1),u=c.plus(R(s,new d(i),l,1)),j(u.d).slice(0,l)===j(c.d).slice(0,l))if(c=c.times(2),o!==0&&(c=c.plus(ze(d,l+2,h).times(o+""))),c=R(c,new d(g),l,1),t==null)if(Ce(c.d,l-w,y,a))d.precision=l+=w,u=s=p=R(f.minus(1),f.plus(1),l,1),m=A(p.times(p),l,1),i=a=1;else return A(c,d.precision=h,y,S=!0);else return d.precision=h,c;c=u,i+=2}}function jt(e){return String(e.s*e.s/0)}function mt(e,t){var n,r,i;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;r++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(r,i),t){if(i-=r,e.e=n=n-r-1,e.d=[],r=(n+1)%k,n<0&&(r+=k),r<i){for(r&&e.d.push(+t.slice(0,r)),i-=k;r<i;)e.d.push(+t.slice(r,r+=k));t=t.slice(r),r=k-t.length}else r-=i;for(;r--;)t+="0";e.d.push(+t),S&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function zn(e,t){var n,r,i,o,s,a,c,u,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),qt.test(t))return mt(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Un.test(t))n=16,t=t.toLowerCase();else if(qn.test(t))n=2;else if(Gn.test(t))n=8;else throw Error(pe+t);for(o=t.search(/p/i),o>0?(c=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,r=e.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=Gt(r,new r(n),o,o*2)),u=He(t,n,ne),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new r(e.s*0):(e.e=Je(u,l),e.d=u,S=!1,s&&(e=R(e,i,a*4)),c&&(e=e.times(Math.abs(c)<54?U(2,c):Ie.pow(2,c))),S=!0,e)}function Yn(e,t){var n,r=t.d.length;if(r<3)return t.isZero()?t:xe(e,2,t,t);n=1.4*Math.sqrt(r),n=n>16?16:n|0,t=t.times(1/Xe(5,n)),t=xe(e,2,t,t);for(var i,o=new e(5),s=new e(16),a=new e(20);n--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function xe(e,t,n,r,i){var o,s,a,c,u=1,l=e.precision,f=Math.ceil(l/k);for(S=!1,c=n.times(n),a=new e(r);;){if(s=R(a.times(c),new e(t++*t++),l,1),a=i?r.plus(s):r.minus(s),r=R(s.times(c),new e(t++*t++),l,1),s=a.plus(r),s.d[f]!==void 0){for(o=f;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=r,r=s,s=o,u++}return S=!0,s.d.length=f+1,s}function Xe(e,t){for(var n=e;--t;)n*=e;return n}function Zt(e,t){var n,r=t.s<0,i=te(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return ae=r?4:1,t;if(n=t.divToInt(i),n.isZero())ae=r?3:2;else{if(t=t.minus(n.times(i)),t.lte(o))return ae=Rt(n)?r?2:3:r?4:1,t;ae=Rt(n)?r?1:4:r?3:2}return t.minus(i).abs()}function pt(e,t,n,r){var i,o,s,a,c,u,l,f,m,g=e.constructor,w=n!==void 0;if(w?(X(n,1,de),r===void 0?r=g.rounding:X(r,0,8)):(n=g.precision,r=g.rounding),!e.isFinite())l=jt(e);else{for(l=oe(e),s=l.indexOf("."),w?(i=2,t==16?n=n*4-3:t==8&&(n=n*3-2)):i=t,s>=0&&(l=l.replace(".",""),m=new g(1),m.e=l.length-s,m.d=He(oe(m),10,i),m.e=m.d.length),f=He(l,10,i),o=c=f.length;f[--c]==0;)f.pop();if(!f[0])l=w?"0p+0":"0";else{if(s<0?o--:(e=new g(e),e.d=f,e.e=o,e=R(e,m,n,r,0,i),f=e.d,o=e.e,u=Ot),s=f[n],a=i/2,u=u||f[n+1]!==void 0,u=r<4?(s!==void 0||u)&&(r===0||r===(e.s<0?3:2)):s>a||s===a&&(r===4||u||r===6&&f[n-1]&1||r===(e.s<0?8:7)),f.length=n,u)for(;++f[--n]>i-1;)f[n]=0,n||(++o,f.unshift(1));for(c=f.length;!f[c-1];--c);for(s=0,l="";s<c;s++)l+=ut.charAt(f[s]);if(w){if(c>1)if(t==16||t==8){for(s=t==16?4:3,--c;c%s;c++)l+="0";for(f=He(l,i,t),c=f.length;!f[c-1];--c);for(s=1,l="1.";s<c;s++)l+=ut.charAt(f[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)l="0"+l;l="0."+l}else if(++o>c)for(o-=c;o--;)l+="0";else o<c&&(l=l.slice(0,o)+"."+l.slice(o))}l=(t==16?"0x":t==2?"0b":t==8?"0o":"")+l}return e.s<0?"-"+l:l}function vt(e,t){if(e.length>t)return e.length=t,!0}function Jn(e){return new this(e).abs()}function Xn(e){return new this(e).acos()}function Qn(e){return new this(e).acosh()}function $n(e,t){return new this(e).plus(t)}function er(e){return new this(e).asin()}function tr(e){return new this(e).asinh()}function nr(e){return new this(e).atan()}function rr(e){return new this(e).atanh()}function ir(e,t){e=new this(e),t=new this(t);var n,r=this.precision,i=this.rounding,o=r+4;return!e.s||!t.s?n=new this(NaN):!e.d&&!t.d?(n=te(this,o,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?te(this,r,i):new this(0),n.s=e.s):!e.d||t.isZero()?(n=te(this,o,1).times(.5),n.s=e.s):t.s<0?(this.precision=o,this.rounding=1,n=this.atan(R(e,t,o,1)),t=te(this,o,1),this.precision=r,this.rounding=i,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(R(e,t,o,1)),n}function or(e){return new this(e).cbrt()}function sr(e){return A(e=new this(e),e.e+1,2)}function ar(e,t,n){return new this(e).clamp(t,n)}function ur(e){if(!e||typeof e!="object")throw Error(Ye+"Object expected");var t,n,r,i=e.defaults===!0,o=["precision",1,de,"rounding",0,8,"toExpNeg",-Te,0,"toExpPos",0,Te,"maxE",0,Te,"minE",-Te,0,"modulo",0,9];for(t=0;t<o.length;t+=3)if(n=o[t],i&&(this[n]=ct[n]),(r=e[n])!==void 0)if(Z(r)===r&&r>=o[t+1]&&r<=o[t+2])this[n]=r;else throw Error(pe+n+": "+r);if(n="crypto",i&&(this[n]=ct[n]),(r=e[n])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[n]=!0;else throw Error(Wt);else this[n]=!1;else throw Error(pe+n+": "+r);return this}function cr(e){return new this(e).cos()}function lr(e){return new this(e).cosh()}function zt(e){var t,n,r;function i(o){var s,a,c,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,_t(o)){u.s=o.s,S?!o.d||o.e>i.maxE?(u.e=NaN,u.d=null):o.e<i.minE?(u.e=0,u.d=[0]):(u.e=o.e,u.d=o.d.slice()):(u.e=o.e,u.d=o.d?o.d.slice():o.d);return}if(c=typeof o,c==="number"){if(o===0){u.s=1/o<0?-1:1,u.e=0,u.d=[0];return}if(o<0?(o=-o,u.s=-1):u.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;S?s>i.maxE?(u.e=NaN,u.d=null):s<i.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[o]):(u.e=s,u.d=[o]);return}else if(o*0!==0){o||(u.s=NaN),u.e=NaN,u.d=null;return}return mt(u,o.toString())}else if(c!=="string")throw Error(pe+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),qt.test(o)?mt(u,o):zn(u,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=ur,i.clone=zt,i.isDecimal=_t,i.abs=Jn,i.acos=Xn,i.acosh=Qn,i.add=$n,i.asin=er,i.asinh=tr,i.atan=nr,i.atanh=rr,i.atan2=ir,i.cbrt=or,i.ceil=sr,i.clamp=ar,i.cos=cr,i.cosh=lr,i.div=fr,i.exp=mr,i.floor=pr,i.hypot=dr,i.ln=gr,i.log=hr,i.log10=yr,i.log2=br,i.max=wr,i.min=Pr,i.mod=Tr,i.mul=xr,i.pow=Ar,i.random=Br,i.round=kr,i.sign=Sr,i.sin=Cr,i.sinh=Ir,i.sqrt=Lr,i.sub=Nr,i.sum=Mr,i.tan=Er,i.tanh=Kr,i.trunc=Dr,e===void 0&&(e={}),e&&e.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<r.length;)e.hasOwnProperty(n=r[t++])||(e[n]=this[n]);return i.config(e),i}function fr(e,t){return new this(e).div(t)}function mr(e){return new this(e).exp()}function pr(e){return A(e=new this(e),e.e+1,3)}function dr(){var e,t,n=new this(0);for(S=!1,e=0;e<arguments.length;)if(t=new this(arguments[e++]),t.d)n.d&&(n=n.plus(t.times(t)));else{if(t.s)return S=!0,new this(1/0);n=t}return S=!0,n.sqrt()}function _t(e){return e instanceof Ie||e&&e.toStringTag===Vt||!1}function gr(e){return new this(e).ln()}function hr(e,t){return new this(e).log(t)}function br(e){return new this(e).log(2)}function yr(e){return new this(e).log(10)}function wr(){return Ht(this,arguments,"lt")}function Pr(){return Ht(this,arguments,"gt")}function Tr(e,t){return new this(e).mod(t)}function xr(e,t){return new this(e).mul(t)}function Ar(e,t){return new this(e).pow(t)}function Br(e){var t,n,r,i,o=0,s=new this(1),a=[];if(e===void 0?e=this.precision:X(e,1,de),r=Math.ceil(e/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(Wt);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],e%=k,r&&e&&(i=U(10,k-e),a[o]=(r/i|0)*i);a[o]===0;o--)a.pop();if(o<0)n=0,a=[0];else{for(n=-1;a[0]===0;n-=k)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<k&&(n-=k-r)}return s.e=n,s.d=a,s}function kr(e){return A(e=new this(e),e.e+1,this.rounding)}function Sr(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function Cr(e){return new this(e).sin()}function Ir(e){return new this(e).sinh()}function Lr(e){return new this(e).sqrt()}function Nr(e,t){return new this(e).sub(t)}function Mr(){var e=0,t=arguments,n=new this(t[e]);for(S=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return S=!0,A(n,this.precision,this.rounding)}function Er(e){return new this(e).tan()}function Kr(e){return new this(e).tanh()}function Dr(e){return A(e=new this(e),e.e+1,1)}b[Symbol.for("nodejs.util.inspect.custom")]=b.toString;b[Symbol.toStringTag]="Decimal";var Ie=b.constructor=zt(ct);je=new Ie(je);Ze=new Ie(Ze);var re=Ie;import{PublicKey as gt}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Rr}from"@solana/spl-token";import{PublicKey as W,SystemProgram as Yt,SYSVAR_RENT_PUBKEY as vr}from"@solana/web3.js";function dt({pubkey:e,isSigner:t=!1,isWritable:n=!0}){return{pubkey:e,isWritable:n,isSigner:t}}var Oi=[dt({pubkey:Rr,isWritable:!1}),dt({pubkey:Yt.programId,isWritable:!1}),dt({pubkey:vr,isWritable:!1})];function Jt({publicKey:e,transformSol:t}){let n=Xt(e.toString());if(n instanceof W)return t&&n.equals(Ne)?Le:n;if(t&&n.toString()===Ne.toBase58())return Le;if(typeof n=="string"){if(n===W.default.toBase58())return W.default;try{return new W(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Xt(e){try{return new W(e)}catch{return e}}var Fi=new W("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Qt=new W("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),$t=new W("SysvarRent111111111111111111111111111111111"),Wi=new W("SysvarC1ock11111111111111111111111111111111"),Vi=new W("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),qi=new W("Sysvar1nstructions1111111111111111111111111"),en=Yt.programId,Ui=new W("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Gi=new W("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Hi=new W("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ji=new W("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Zi=new W("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),zi=new W("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Yi=new W("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ji=new W("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Xi=new W("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Qi=new W("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),$i=new W("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Le=new W("So11111111111111111111111111111111111111112"),Ne=W.default;import{PublicKey as _r}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as tn}from"@solana/spl-token";var nn={chainId:101,address:_r.default.toBase58(),programId:tn.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:tn.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 ht=class{constructor({mint:t,decimals:n,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(t===Ne.toBase58()||t instanceof gt&&Ne.equals(t)){this.decimals=ye.decimals,this.symbol=ye.symbol,this.name=ye.name,this.mint=new gt(ye.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=i||t.toString().substring(0,6),this.mint=o?gt.default:Jt({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},Ae=ht;Ae.WSOL=new ht($(V({},ye),{mint:ye.address}));import{get as rn,set as Or}from"lodash";import sn from"dayjs";import Fr from"dayjs/plugin/utc";sn.extend(Fr);var bt=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 sn().utc().format("YYYY/MM/DD HH:mm:ss UTC")}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},on={},Wr={};function z(e){let t=rn(on,e);if(!t){let n=rn(Wr,e);t=new bt({name:e,logLevel:n}),Or(on,e,t)}return t}import $e from"big.js";import Ur from"bn.js";import Gr from"decimal.js-light";import Vr from"toformat";var qr=Vr,Me=qr;var Qe=z("module/fraction"),yt=Me($e),Ee=Me(Gr),Hr={[0]:Ee.ROUND_DOWN,[1]:Ee.ROUND_HALF_UP,[2]:Ee.ROUND_UP},jr={[0]:$e.roundDown,[1]:$e.roundHalfUp,[2]:$e.roundUp},O=class{constructor(t,n=new Ur(1)){this.numerator=ge(t),this.denominator=ge(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new O(this.denominator,this.numerator)}add(t){let n=t instanceof O?t:new O(ge(t));return this.denominator.eq(n.denominator)?new O(this.numerator.add(n.numerator),this.denominator):new O(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof O?t:new O(ge(t));return this.denominator.eq(n.denominator)?new O(this.numerator.sub(n.numerator),this.denominator):new O(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof O?t:new O(ge(t));return new O(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof O?t:new O(ge(t));return new O(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||Qe.logWithError(`${t} is not an integer.`),t<=0&&Qe.logWithError(`${t} is not positive.`),Ee.set({precision:t+1,rounding:Hr[r]});let i=new Ee(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return i.toFormat(i.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||Qe.logWithError(`${t} is not an integer.`),t<0&&Qe.logWithError(`${t} is negative.`),yt.DP=t,yt.RM=jr[r]||1,new yt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var No=z("Raydium_price");var wt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},et=wt;et.SOL=new wt(nn);import zr from"bn.js";var an=new O(new zr(100)),he=class extends O{toSignificant(t=5,n,r){return this.mul(an).toSignificant(t,n,r)}toFixed(t=2,n,r){return this.mul(an).toFixed(t,n,r)}};import{PublicKey as Ho}from"@solana/web3.js";import Zo from"bn.js";var Pt=new Q(0),ls=new Q(1),fs=new Q(2),ms=new Q(3),ps=new Q(5),Yr=new Q(10),ds=new Q(100),gs=new Q(1e3),hs=new Q(1e4),ln=9007199254740991;function ge(e){let t=z("Raydium_parseBigNumberish");if(e instanceof Q)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new Q(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=ln||e<=-ln)&&t.logWithError(`BigNumberish number overflow: ${e}`),new Q(String(e))):typeof e=="bigint"?new Q(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new Q(0))}var Ls=z("Raydium_amount"),Ns=Me(Jr);import{PublicKey as ni}from"@solana/web3.js";import{PublicKey as Xr,ComputeBudgetProgram as fn,Transaction as pn,TransactionMessage as Qr,Keypair as dn,VersionedTransaction as gn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as $r}from"@solana/spl-token";var ue={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",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 mn=z("Raydium_txUtil"),hn=1644;function tt(e){let t=[],n=[];return e.microLamports&&(t.push(fn.setComputeUnitPrice({microLamports:e.microLamports})),n.push(ue.SetComputeUnitPrice)),e.units&&(t.push(fn.setComputeUnitLimit({units:e.units})),n.push(ue.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Be(e){var t,n;try{return((n=await((t=e.getLatestBlockhash)==null?void 0:t.call(e)))==null?void 0:n.blockhash)||(await e.getRecentBlockhash()).blockhash}catch{return(await e.getRecentBlockhash()).blockhash}}function ei(e,t){e.length<1&&mn.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&mn.logWithError(`no signers provided:, ${t.toString()}`);let n=new pn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...e);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<hn}catch{return!1}}function ce(e,t){let[n,r]=Xr.findProgramAddressSync(e,t);return{publicKey:n,nonce:r}}function Ke({instructions:e,payer:t,signers:n}){return ei(e,[t,...n])}function De({instructions:e,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=dn.generate().publicKey.toString()}){let o=new Qr({payerKey:t,recentBlockhash:r,instructions:e}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new gn(o).serialize()).toString("base64").length<hn}catch{return!1}}var ti=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e);function we(e){let t=[];return e.forEach(n=>{n instanceof pn&&(n.recentBlockhash||(n.recentBlockhash=$r.toBase58()),n.feePayer||(n.feePayer=dn.generate().publicKey));let r=n.serialize({requireAllSignatures:!1,verifySignatures:!1});n instanceof gn&&(r=ti(r));let i=r.toString("base64");t.push(i)}),console.log("simulate tx string:",t),t}import{TOKEN_PROGRAM_ID as ri}from"@solana/spl-token";function bn(e,t,n){return ce([e.toBuffer(),(n!=null?n:ri).toBuffer(),t.toBuffer()],new ni("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as ve,sendAndConfirmTransaction as _e,Transaction as Oe,TransactionMessage as Fe,VersionedTransaction as We}from"@solana/web3.js";import ui from"axios";import{PublicKey as wn,AddressLookupTableAccount as nt}from"@solana/web3.js";import{PublicKey as ai}from"@solana/web3.js";import{getTransferFeeConfig as za,unpackMint as Ya}from"@solana/spl-token";function Tt(e,t=1,n=[]){let r=[...e];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}import{PublicKey as D}from"@solana/web3.js";var ia=new D("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),oa=new D("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),sa=new D("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),aa=new D("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ua=new D("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),ca=new D("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),la=new D("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),fa=new D("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ma=new D("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),pa=new D("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),da=new D("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ga=new D("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),ha=new D("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),ba=new D("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),ya=new D("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),wa=new D("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Pa=new D("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Ta=new D("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ii=new D("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),oi=new D("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),si=new D("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2");var xa={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:ii,CREATE_CPMM_POOL_AUTH:oi,CREATE_CPMM_POOL_FEE_ACC:si,FEE_DESTINATION_ID:new D("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR")};import ie from"bn.js";var Re=1e4;function ke(e,t,n,r){if(t===void 0)return{amount:e,fee:void 0,expirationTime:void 0};let i=$(V({},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=n.epoch<i.newerTransferFee.epoch?i.olderTransferFee:i.newerTransferFee,s=new ie(o.maximumFee.toString()),a=n.epoch<i.newerTransferFee.epoch?(Number(i.newerTransferFee.epoch)*n.slotsInEpoch-n.absoluteSlot)*400/1e3:void 0;if(r)if(o.transferFeeBasisPoints===Re){let c=new ie(o.maximumFee.toString());return{amount:e.add(c),fee:c,expirationTime:a}}else{let c=xt(e.mul(new ie(Re)),new ie(Re-o.transferFeeBasisPoints)),u=new ie(o.maximumFee.toString()),l=c.sub(e).gt(u)?e.add(u):c,f=xt(l.mul(new ie(o.transferFeeBasisPoints)),new ie(Re)),m=f.gt(s)?s:f;return{amount:l,fee:m,expirationTime:a}}else{let c=xt(e.mul(new ie(o.transferFeeBasisPoints)),new ie(Re)),u=c.gt(s)?s:c;return{amount:e,fee:u,expirationTime:a}}}function xt(e,t){let{div:n,mod:r}=e.divmod(t);return r.gt(new ie(0))?n.add(new ie(1)):n}var At=z("Raydium_accountInfo_util");async function yn(e,t,n){let{batchRequest:r,commitment:i="confirmed"}=V({batchRequest:!1},n),o=Tt(t,100),s=new Array(o.length).fill([]);if(r){let a=o.map(l=>{let f=e._buildArgs([l.map(m=>m.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:f}}),c=Tt(a,10);s=(await(await Promise.all(c.map(async l=>await e._rpcBatchRequest(l)))).flat()).map(l=>(l.error&&At.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.error.message}`),l.result.value.map(f=>{if(f){let{data:m,executable:g,lamports:w,owner:p,rentEpoch:P}=f;return m.length!==2&&m[1]!=="base64"&&At.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(m[0],"base64"),executable:g,lamports:w,owner:new ai(p),rentEpoch:P}}return null})))}else try{s=await Promise.all(o.map(a=>e.getMultipleAccountsInfo(a,i)))}catch(a){a instanceof Error&&At.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${a.message}`)}return s.flat()}async function Bt({connection:e,address:t}){let n=await yn(e,[...new Set(t.map(i=>i.toString()))].map(i=>new wn(i))),r={};for(let i=0;i<t.length;i++){let o=n[i],s=t[i];if(!o)continue;let a=new nt({key:s,state:nt.deserialize(o.data)});r[s.toString()]=a,rt[s.toString()]=a}return r}var rt={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new nt({key:new wn("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:nt.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 it=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}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 ui.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=tt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:i=[],endInstructionTypes:o=[],lookupTableAddress:s=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...i),this.endInstructionTypes.push(...o),this.lookupTableAddress.push(...s.filter(a=>a!==ve.default.toString())),this}async versionBuild({txVersion:t,extInfo:n}){return t===0?await this.buildV0(V({},n||{})):this.build(n)}build(t){let n=new Oe;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async r=>{var a;let{recentBlockHash:i,skipPreflight:o=!0}=r||{},s=i!=null?i:await Be(this.connection);if(n.recentBlockhash=s,this.signers.length&&n.sign(...this.signers),we([n]),(a=this.owner)!=null&&a.isKeyPair)return{txId:await _e(this.connection,n,this.signers.find(c=>c.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:o}),signedTx:n};if(this.signAllTransactions){let c=await this.signAllTransactions([n]);return{txId:await this.connection.sendRawTransaction(c[0].serialize(),{skipPreflight:o}),signedTx:c[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:i}=this.build(r),o=n.filter(u=>u.transaction.instructions.length>0),s=[i,...o.map(u=>u.transaction)],a=[this.signers,...o.map(u=>u.signers)],c=[...this.instructionTypes,...o.map(u=>u.instructionTypes).flat()];return{builder:this,transactions:s,signers:a,instructionTypes:c,execute:async u=>{var p;let{sequentially:l,onTxUpdate:f,recentBlockHash:m,skipPreflight:g=!0}=u||{},w=m!=null?m:await Be(this.connection);if((p=this.owner)!=null&&p.isKeyPair){if(l){let P=[];for(let d of s){let y=await _e(this.connection,d,this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});P.push(y)}return{txIds:P,signedTxs:s}}return{txIds:await await Promise.all(s.map(async(P,d)=>(P.recentBlockhash=w,await _e(this.connection,P,a[d].find(y=>y.publicKey.equals(this.owner.publicKey))?a[d]:[...a[d],this.owner.signer],{skipPreflight:g})))),signedTxs:s}}if(this.signAllTransactions){let P=s.map((y,h)=>(y.recentBlockhash=w,a[h].length&&y.sign(...a[h]),y));we(P);let d=await this.signAllTransactions(P);if(l){let y=0,h=[],T=async()=>{if(!d[y])return;let x=await this.connection.sendRawTransaction(d[y].serialize(),{skipPreflight:g});h.push({txId:x,status:"sent",signedTx:d[y]}),f==null||f([...h]),y++,this.connection.onSignature(x,C=>{let L=h.findIndex(M=>M.txId===x);L>-1&&(h[L].status=C.err?"error":"success"),f==null||f([...h]),C.err||T()},"processed"),this.connection.getSignatureStatus(x)};return await T(),{txIds:h.map(x=>x.txId),signedTxs:d}}else{let y=[];for(let h=0;h<d.length;h+=1){let T=await this.connection.sendRawTransaction(d[h].serialize(),{skipPreflight:g});y.push(T)}return{txIds:y,signedTxs:d}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){let m=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:i}=m,o=se(m,["lookupTableCache","lookupTableAddress","forerunCreate"]),s=V(V({},this.cluster==="devnet"?{}:rt),n),a=Array.from(new Set([...r,...this.lookupTableAddress])),c=[];for(let g of a)s[g]===void 0&&c.push(new ve(g));let u=await Bt({connection:this.connection,address:c});for(let[g,w]of Object.entries(u))s[g]=w;let l=new Fe({payerKey:this.feePayer,recentBlockhash:i?ve.default.toBase58():await Be(this.connection),instructions:[...this.allInstructions]}).compileToV0Message(Object.values(s)),f=new We(l);return f.sign(this.signers),{builder:this,transaction:f,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async g=>{var P;let{recentBlockHash:w,skipPreflight:p=!0}=g||{};if(w&&(f.message.recentBlockhash=w),we([f]),(P=this.owner)!=null&&P.isKeyPair){this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))||f.sign([this.owner.signer]);let d=await this.connection.sendTransaction(f,{skipPreflight:p}),{lastValidBlockHeight:y,blockhash:h}=await this.connection.getLatestBlockhash();return await this.connection.confirmTransaction({blockhash:h,lastValidBlockHeight:y,signature:d},"confirmed"),{txId:d,signedTx:f}}if(this.signAllTransactions){let d=await this.signAllTransactions([f]);return{txId:await this.connection.sendTransaction(d[0],{skipPreflight:p}),signedTx:d[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async buildV0MultiTx(t){let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:i}=await this.buildV0(r),o=n.filter(u=>u.builder.instructions.length>0),s=[i,...o.map(u=>u.transaction)],a=[this.signers,...o.map(u=>u.signers)],c=[...this.instructionTypes,...o.map(u=>u.instructionTypes).flat()];return s.forEach(async(u,l)=>{u.sign(a[l])}),{builder:this,transactions:s,signers:a,instructionTypes:c,buildProps:r,execute:async u=>{var w;let{sequentially:l,onTxUpdate:f,recentBlockHash:m,skipPreflight:g=!0}=u||{};if(m&&s.forEach(p=>p.message.recentBlockhash=m),we(s),(w=this.owner)!=null&&w.isKeyPair){let{lastValidBlockHeight:p,blockhash:P}=await this.connection.getLatestBlockhash();if(s.forEach((d,y)=>{a[y].find(h=>h.publicKey.equals(this.owner.publicKey))||d.sign([this.owner.signer])}),l){let d=[];for(let y of s){let h=await this.connection.sendTransaction(y,{skipPreflight:g}),{lastValidBlockHeight:T,blockhash:x}=await this.connection.getLatestBlockhash();await this.connection.confirmTransaction({blockhash:x,lastValidBlockHeight:T,signature:h},"confirmed"),d.push(h)}return{txIds:d,signedTxs:s}}return{txIds:await Promise.all(s.map(async d=>{let y=await this.connection.sendTransaction(d,{skipPreflight:g});return await this.connection.confirmTransaction({blockhash:P,lastValidBlockHeight:p,signature:y},"confirmed"),y})),signedTxs:s}}if(this.signAllTransactions){let p=await this.signAllTransactions(s);if(l){let P=0,d=[],y=async()=>{if(!p[P])return;let h=await this.connection.sendTransaction(p[P],{skipPreflight:g});d.push({txId:h,status:"sent",signedTx:p[P]}),f==null||f([...d]),P++,this.connection.onSignature(h,T=>{let x=d.findIndex(C=>C.txId===h);x>-1&&(d[x].status=T.err?"error":"success"),f==null||f([...d]),T.err||y()},"processed"),this.connection.getSignatureStatus(h)};return y(),{txIds:[],signedTxs:p}}else{let P=[];for(let d=0;d<p.length;d+=1){let y=await this.connection.sendTransaction(p[d],{skipPreflight:g});P.push(y)}return{txIds:P,signedTxs:p}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){let u=t||{},{computeBudgetConfig:n}=u,r=se(u,["computeBudgetConfig"]),i=n?tt(n):{instructions:[],instructionTypes:[]},o=this.signers.reduce((l,f)=>$(V({},l),{[f.publicKey.toBase58()]:f}),{}),s=[],a=[],c=[];if(this.allInstructions.forEach(l=>{let f=[...c,l],m=n?[...i.instructions,...f]:f,w=[...new Set(f.map(p=>p.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(p=>new ve(p));if(c.length<12&&Ke({instructions:m,payer:this.feePayer,signers:w})||Ke({instructions:f,payer:this.feePayer,signers:w}))c.push(l);else{if(c.length===0)throw Error("item ins too big");Ke({instructions:n?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:w})?s.push(new Oe().add(...i.instructions,...c)):s.push(new Oe().add(...c)),a.push(Array.from(new Set(c.map(p=>p.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat())).map(p=>o[p]).filter(p=>p!==void 0)),c=[l]}}),c.length>0){let f=[...new Set(c.map(m=>m.keys.filter(g=>g.isSigner).map(g=>g.pubkey.toString())).flat()).values()].map(m=>o[m]).filter(m=>m!==void 0);Ke({instructions:n?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:f.map(m=>m.publicKey)})?s.push(new Oe().add(...i.instructions,...c)):s.push(new Oe().add(...c)),a.push(f)}return s.forEach(l=>l.feePayer=this.feePayer),{builder:this,transactions:s,signers:a,instructionTypes:this.instructionTypes,execute:async l=>{var P;let{sequentially:f,onTxUpdate:m,recentBlockHash:g,skipPreflight:w=!0}=l||{},p=g!=null?g:await Be(this.connection);if(s.forEach(async(d,y)=>{d.recentBlockhash=p,a[y].length&&d.sign(...a[y])}),we(s),(P=this.owner)!=null&&P.isKeyPair){if(f){let d=[];for(let y of s){let h=await _e(this.connection,y,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});d.push(h)}return{txIds:d,signedTxs:s}}return{txIds:await Promise.all(s.map(async(d,y)=>await _e(this.connection,d,a[y].find(h=>h.publicKey.equals(this.owner.publicKey))?a[y]:[...a[y],this.owner.signer],{skipPreflight:w}))),signedTxs:s}}if(this.signAllTransactions){let d=await this.signAllTransactions(s);if(f){let y=0,h=[],T=async()=>{if(!d[y])return;let x=await this.connection.sendRawTransaction(d[y].serialize(),{skipPreflight:w});h.push({txId:x,status:"sent",signedTx:d[y]}),m==null||m([...h]),y++,this.connection.onSignature(x,C=>{let L=h.findIndex(M=>M.txId===x);L>-1&&(h[L].status=C.err?"error":"success"),m==null||m([...h]),C.err||T()},"processed"),this.connection.getSignatureStatus(x)};return await T(),{txIds:h.map(x=>x.txId),signedTxs:d}}else{let y=[];for(let h=0;h<d.length;h+=1){let T=await this.connection.sendRawTransaction(d[h].serialize(),{skipPreflight:w});y.push(T)}return{txIds:y,signedTxs:d}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(t){let P=t||{},{computeBudgetConfig:n,lookupTableCache:r={},lookupTableAddress:i=[]}=P,o=se(P,["computeBudgetConfig","lookupTableCache","lookupTableAddress"]),s=V(V({},this.cluster==="devnet"?{}:rt),r),a=Array.from(new Set([...this.lookupTableAddress,...i])),c=[];for(let d of a)s[d]===void 0&&c.push(new ve(d));let u=await Bt({connection:this.connection,address:c});for(let[d,y]of Object.entries(u))s[d]=y;let l=n?tt(n):{instructions:[],instructionTypes:[]},f=await Be(this.connection),m=this.signers.reduce((d,y)=>$(V({},d),{[y.publicKey.toBase58()]:y}),{}),g=[],w=[],p=[];if(this.allInstructions.forEach(d=>{let y=[...p,d],h=n?[...l.instructions,...y]:y;if(p.length<12&&De({instructions:h,payer:this.feePayer,lookupTableAddressAccount:s})||De({instructions:y,payer:this.feePayer,lookupTableAddressAccount:s}))p.push(d);else{if(p.length===0)throw Error("item ins too big");let T={};for(let x of[...new Set(a)])s[x]!==void 0&&(T[x]=s[x]);if(n&&De({instructions:[...l.instructions,...p],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:f})){let x=new Fe({payerKey:this.feePayer,recentBlockhash:f,instructions:[...l.instructions,...p]}).compileToV0Message(Object.values(s));g.push(new We(x))}else{let x=new Fe({payerKey:this.feePayer,recentBlockhash:f,instructions:[...p]}).compileToV0Message(Object.values(s));g.push(new We(x))}w.push(Array.from(new Set(p.map(x=>x.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat())).map(x=>m[x]).filter(x=>x!==void 0)),p=[d]}}),p.length>0){let y=[...new Set(p.map(h=>h.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(h=>m[h]).filter(h=>h!==void 0);if(n&&De({instructions:[...l.instructions,...p],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:f})){let h=new Fe({payerKey:this.feePayer,recentBlockhash:f,instructions:[...l.instructions,...p]}).compileToV0Message(Object.values(s));g.push(new We(h))}else{let h=new Fe({payerKey:this.feePayer,recentBlockhash:f,instructions:[...p]}).compileToV0Message(Object.values(s));g.push(new We(h))}w.push(y)}return{builder:this,transactions:g,buildProps:t,signers:w,instructionTypes:this.instructionTypes,execute:async d=>{var C;let{sequentially:y,onTxUpdate:h,recentBlockHash:T,skipPreflight:x=!0}=d||{};if(g.map(async(L,M)=>{w[M].length&&L.sign(w[M]),T&&(L.message.recentBlockhash=T)}),we(g),(C=this.owner)!=null&&C.isKeyPair){let{lastValidBlockHeight:L,blockhash:M}=await this.connection.getLatestBlockhash();if(g.forEach((N,F)=>{w[F].find(I=>I.publicKey.equals(this.owner.publicKey))||N.sign([this.owner.signer])}),y){let N=[];for(let F of g){let I=await this.connection.sendTransaction(F,{skipPreflight:x}),{lastValidBlockHeight:G,blockhash:H}=await this.connection.getLatestBlockhash();await this.connection.confirmTransaction({blockhash:H,lastValidBlockHeight:G,signature:I},"confirmed"),N.push(I)}return{txIds:N,signedTxs:g}}return{txIds:await Promise.all(g.map(async N=>{let F=await this.connection.sendTransaction(N,{skipPreflight:x});return await this.connection.confirmTransaction({blockhash:M,lastValidBlockHeight:L,signature:F},"confirmed"),F})),signedTxs:g}}if(this.signAllTransactions){let L=await this.signAllTransactions(g);if(y){let M=0,N=[],F=async()=>{if(!L[M])return;let I=await this.connection.sendTransaction(L[M],{skipPreflight:x});N.push({txId:I,status:"sent",signedTx:L[M]}),h==null||h([...N]),M++,this.connection.onSignature(I,G=>{let H=N.findIndex(J=>J.txId===I);H>-1&&(N[H].status=G.err?"error":"success"),h==null||h([...N]),G.err||F()},"processed"),this.connection.getSignatureStatus(I)};return F(),{txIds:[],signedTxs:L}}else{let M=[];for(let N=0;N<L.length;N+=1){let F=await this.connection.sendTransaction(L[N],{skipPreflight:x});M.push(F)}return{txIds:M,signedTxs:L}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}};var kt=(...e)=>e.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),Ve=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=z(n)}createTxBuilder(t){return this.scope.checkOwner(),new it({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(kt(t))}logInfo(...t){this.logger.info(kt(t))}logAndCreateError(...t){let n=kt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var ci=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),li=Buffer.from("amm_config","utf8"),fi=Buffer.from("pool","utf8"),mi=Buffer.from("pool_lp_mint","utf8"),pi=Buffer.from("pool_vault","utf8"),di=Buffer.from("observation","utf8");function gi(e){return ce([ci],e)}function hi(e,t){return ce([li,wi(t)],e)}function bi(e,t,n,r){return ce([fi,t.toBuffer(),n.toBuffer(),r.toBuffer()],e)}function yi(e,t){return ce([mi,t.toBuffer()],e)}function Pn(e,t,n){return ce([pi,t.toBuffer(),n.toBuffer()],e)}function ot(e,t){return ce([di,t.toBuffer()],e)}function wi(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e,!1),new Uint8Array(t)}function Tn({programId:e,mintA:t,mintB:n}){let r=hi(e,0).publicKey,i=gi(e).publicKey,o=bi(e,r,t,n).publicKey,s=yi(e,o).publicKey,a=Pn(e,o,t).publicKey,c=Pn(e,o,n).publicKey,u=ot(e,o).publicKey;return{poolId:o,configId:r,authority:i,lpMint:s,vaultA:a,vaultB:c,observationId:u}}import{TransactionInstruction as qe}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Nt,TOKEN_2022_PROGRAM_ID as Nn,ASSOCIATED_TOKEN_PROGRAM_ID as Ni}from"@solana/spl-token";import{PublicKey as Ci}from"@solana/web3.js";import Cn,{isBN as In}from"bn.js";import{bits as Tu,BitStructure as xu,blob as Pi,Blob as Au,cstr as Bu,f32 as ku,f32be as Su,f64 as Cu,f64be as Iu,greedy as Lu,Layout as Ti,ns64 as Nu,ns64be as Mu,nu64 as Eu,nu64be as Ku,offset as Du,s16 as Ru,s16be as vu,s24 as _u,s24be as Ou,s32 as Fu,s32be as Wu,s40 as Vu,s40be as qu,s48 as Uu,s48be as Gu,s8 as Hu,seq as xi,struct as ju,Structure as Ai,u16 as Bi,u16be as Zu,u24 as zu,u24be as Yu,u32 as Ju,u32be as Xu,u40 as Qu,u40be as $u,u48 as ec,u48be as tc,u8 as ki,UInt as Si,union as nc,Union as rc,unionLayoutDiscriminator as ic,utf8 as oc}from"@solana/buffer-layout";var St=Ti,xn=Ai;var An=Si;var Bn=ki,kn=Bi;var Sn=xi;var Se=Pi;var Ct=class extends St{constructor(n,r,i){super(n,i);this.blob=Se(n),this.signed=r}decode(n,r=0){let i=new Cn(this.blob.decode(n,r),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(n,r,i=0){return typeof n=="number"&&(n=new Cn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,i)}};function Pe(e){return new An(1,e)}function v(e){return new Ct(8,!1,e)}var st=class extends St{constructor(n,r,i,o){super(n.span,o);this.layout=n,this.decoder=r,this.encoder=i}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,i){return this.layout.encode(this.encoder(n),r,i)}getSpan(n,r){return this.layout.getSpan(n,r)}};function ee(e){return new st(Se(32),t=>new Ci(t),t=>t.toBuffer(),e)}function Ln(e){return new st(Bn(),Ii,Li,e)}function Ii(e){if(e===0)return!1;if(e===1)return!0;throw new Error("Invalid bool: "+e)}function Li(e){return e?1:0}var It=class extends xn{decode(t,n){return super.decode(t,n)}};function le(e,t,n){return new It(e,t,n)}function Lt(e,t,n){let r,i=typeof t=="number"?t:In(t)?t.toNumber():new Proxy(t,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=In(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 Sn(e,i,n)}var Mi=z("Raydium_cpmm"),Ue={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 Mn(e,t,n,r,i,o,s,a,c,u,l,f,m,g,w,p,P,d,y,h){let T=le([v("amountMaxA"),v("amountMaxB"),v("openTime")]),x=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,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:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:P,isSigner:!1,isWritable:!0},{pubkey:Nt,isSigner:!1,isWritable:!1},{pubkey:w,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:Ni,isSigner:!1,isWritable:!1},{pubkey:en,isSigner:!1,isWritable:!1},{pubkey:$t,isSigner:!1,isWritable:!1}],C=Buffer.alloc(T.span);return T.encode({amountMaxA:d,amountMaxB:y,openTime:h},C),new qe({keys:x,programId:e,data:Buffer.from([...Ue.initialize,...C])})}function En(e,t,n,r,i,o,s,a,c,u,l,f,m,g,w){let p=le([v("lpAmount"),v("amountMaxA"),v("amountMaxB")]),P=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,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:c,isSigner:!1,isWritable:!0},{pubkey:Nt,isSigner:!1,isWritable:!1},{pubkey:Nn,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!0}],d=Buffer.alloc(p.span);return Mi.debug("cpmm deposit data",{lpAmount:m.toString(),amountMaxA:g.toString(),amountMaxB:w.toString()}),p.encode({lpAmount:m,amountMaxA:g,amountMaxB:w},d),new qe({keys:P,programId:e,data:Buffer.from([...Ue.deposit,...d])})}function Kn(e,t,n,r,i,o,s,a,c,u,l,f,m,g,w){let p=le([v("lpAmount"),v("amountMinA"),v("amountMinB")]),P=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,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:c,isSigner:!1,isWritable:!0},{pubkey:Nt,isSigner:!1,isWritable:!1},{pubkey:Nn,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:Qt,isSigner:!1,isWritable:!1}],d=Buffer.alloc(p.span);return p.encode({lpAmount:m,amountMinA:g,amountMinB:w},d),new qe({keys:P,programId:e,data:Buffer.from([...Ue.withdraw,...d])})}function Dn(e,t,n,r,i,o,s,a,c,u,l,f,m,g,w,p){let P=le([v("amountIn"),v("amounOutMin")]),d=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,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:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!0}],y=Buffer.alloc(P.span);return P.encode({amountIn:w,amounOutMin:p},y),new qe({keys:d,programId:e,data:Buffer.from([...Ue.swapBaseInput,...y])})}function Rn(e,t,n,r,i,o,s,a,c,u,l,f,m,g,w,p){let P=le([v("amountInMax"),v("amountOut")]),d=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,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:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!0}],y=Buffer.alloc(P.span);return P.encode({amountInMax:w,amountOut:p},y),new qe({keys:d,programId:e,data:Buffer.from([...Ue.swapBaseOutput,...y])})}import Y from"bn.js";var vn=le([Se(8),Pe("bump"),Ln("disableCreatePool"),kn("index"),v("tradeFeeRate"),v("protocolFeeRate"),v("fundFeeRate"),v("createPoolFee"),ee("protocolOwner"),ee("fundOwner"),Lt(v(),16)]),_n=le([Se(8),ee("configId"),ee("poolCreator"),ee("vaultA"),ee("vaultB"),ee("mintLp"),ee("mintA"),ee("mintB"),ee("mintProgramA"),ee("mintProgramB"),ee("observationId"),Pe("bump"),Pe("status"),Pe("lpDecimals"),Pe("mintDecimalA"),Pe("mintDecimalB"),v("lpAmount"),v("protocolFeesMintA"),v("protocolFeesMintB"),v("fundFeesMintA"),v("fundFeesMintB"),v("openTime"),Lt(v(),32)]);var Mt=class extends Ve{constructor(t){super(t)}async load(){this.checkDisabled()}async getCpmmPoolKeys(t){return(await this.scope.api.fetchPoolKeysById({idList:[t]}))[0]}async getRpcPoolInfo(t,n){let r=await this.scope.connection.getAccountInfo(new B(t));if(!r)throw new Error(`pool not found: ${t}`);let i=_n.decode(r.data),[o,s]=await this.scope.connection.getMultipleAccountsInfo([i.vaultA,i.vaultB]);if(!o)throw new Error(`pool vaultA info not found: ${i.vaultA.toBase58()}`);if(!s)throw new Error(`pool vaultB info not found: ${i.vaultB.toBase58()}`);let a;if(n){let c=await this.scope.connection.getAccountInfo(i.configId);c&&(a=vn.decode(c.data))}return $(V({},i),{baseReserve:new Y(On.decode(o.data).amount.toString()).sub(i.protocolFeesMintA).sub(i.fundFeesMintA),quoteReserve:new Y(On.decode(s.data).amount.toString()).sub(i.protocolFeesMintB).sub(i.fundFeesMintB),configInfo:a})}async createPool(l){var f=l,{programId:t,poolFeeAccount:n,startTime:r,ownerInfo:i,associatedOnly:o=!1,checkCreateATAOwner:s=!1,txVersion:a,computeBudgetConfig:c}=f,u=se(f,["programId","poolFeeAccount","startTime","ownerInfo","associatedOnly","checkCreateATAOwner","txVersion","computeBudgetConfig"]);var G,H,J;let m=i.feePayer||((G=this.scope.owner)==null?void 0:G.publicKey),g=new Y(new B(u.mintA.address).toBuffer()).lte(new Y(new B(u.mintB.address).toBuffer())),[w,p]=g?[u.mintA,u.mintB]:[u.mintB,u.mintA],[P,d]=g?[u.mintAAmount,u.mintBAmount]:[u.mintBAmount,u.mintAAmount],y=i.useSOLBalance&&w.address===at.toBase58(),h=i.useSOLBalance&&p.address===at.toBase58(),[T,x]=[new B(w.address),new B(p.address)],C=this.createTxBuilder(),{account:L,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({mint:T,tokenProgram:w.programId,owner:this.scope.ownerPubKey,createInfo:y?{payer:m,amount:P}:void 0,notUseTokenAccount:y,skipCloseAccount:!y,associatedOnly:y?!1:o,checkCreateATAOwner:s});C.addInstruction(M||{});let{account:N,instructionParams:F}=await this.scope.account.getOrCreateTokenAccount({mint:new B(p.address),tokenProgram:p.programId,owner:this.scope.ownerPubKey,createInfo:h?{payer:m,amount:d}:void 0,notUseTokenAccount:h,skipCloseAccount:!h,associatedOnly:h?!1:o,checkCreateATAOwner:s});if(C.addInstruction(F||{}),L===void 0||N===void 0)throw Error("you don't has some token account");let I=Tn({programId:t,mintA:T,mintB:x});return C.addInstruction({instructions:[Mn(t,this.scope.ownerPubKey,I.configId,I.authority,I.poolId,T,x,I.lpMint,L,N,bn(this.scope.ownerPubKey,I.lpMint).publicKey,I.vaultA,I.vaultB,n,new B((H=w.programId)!=null?H:be),new B((J=p.programId)!=null?J:be),I.observationId,P,d,r)],instructionTypes:[ue.CpmmCreatePool]}),C.addCustomComputeBudget(c),C.versionBuild({txVersion:a,extInfo:{address:$(V({},I),{mintA:w,mintB:p,programId:t,poolFeeAccount:n})}})}async addLiquidity(t){let{poolInfo:n,inputAmount:r,baseIn:i,slippage:o,computeResult:s,computeBudgetConfig:a,config:c,txVersion:u}=t;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region"),r.isZero()&&this.logAndCreateError("amounts must greater than zero","amountInA",{amountInA:r.toString()});let{account:l}=this.scope,{bypassAssociatedCheck:f,checkCreateATAOwner:m}=V({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},c),g=await this.getRpcPoolInfo(n.id),{liquidity:w,inputAmountFee:p,maxAnotherAmount:P}=s||this.computePairAmount({poolInfo:$(V({},n),{mintAmountA:new re(g.baseReserve.toString()).div(10**n.mintA.decimals).toNumber(),mintAmountB:new re(g.quoteReserve.toString()).div(10**n.mintB.decimals).toNumber(),lpAmount:new re(g.lpAmount.toString()).div(10**n.lpMint.decimals).toNumber()}),slippage:o,baseIn:i,epochInfo:await this.scope.fetchEpochInfo(),amount:new re(r.toString()).div(10**(i?n.mintA.decimals:n.mintB.decimals))}),d=P.amount,y=n.mintA.address===at.toString(),h=n.mintB.address===at.toString(),T=this.createTxBuilder(),[x,C]=[new B(n.mintA.address),new B(n.mintB.address)],{account:L,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:n.mintA.programId,mint:new B(n.mintA.address),owner:this.scope.ownerPubKey,createInfo:y||(i?r:d).isZero()?{payer:this.scope.ownerPubKey,amount:i?r:d}:void 0,skipCloseAccount:!y,notUseTokenAccount:y,associatedOnly:!1,checkCreateATAOwner:m});T.addInstruction(M||{});let{account:N,instructionParams:F}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:n.mintB.programId,mint:new B(n.mintB.address),owner:this.scope.ownerPubKey,createInfo:h||(i?d:r).isZero()?{payer:this.scope.ownerPubKey,amount:i?d:r}:void 0,skipCloseAccount:!h,notUseTokenAccount:h,associatedOnly:!1,checkCreateATAOwner:m});T.addInstruction(F||{}),!L&&!N&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",l.tokenAccounts);let I=await l.getCreatedTokenAccount({mint:new B(n.lpMint.address)}),q=await l.handleTokenAccount({side:"out",amount:0,mint:new B(n.lpMint.address),tokenAccount:I,bypassAssociatedCheck:f,checkCreateATAOwner:m}),{tokenAccount:G}=q,H=se(q,["tokenAccount"]);T.addInstruction(H);let J=await this.getCpmmPoolKeys(n.id);return T.addInstruction({instructions:[En(new B(n.programId),this.scope.ownerPubKey,new B(J.authority),new B(n.id),G,L,N,new B(J.vault.A),new B(J.vault.B),x,C,new B(n.lpMint.address),w,i?p.amount:d,i?d:p.amount)],instructionTypes:[ue.CpmmAddLiquidity],lookupTableAddress:J.lookupTableAccount?[J.lookupTableAccount]:[]}),T.addCustomComputeBudget(a),T.versionBuild({txVersion:u})}async withdrawLiquidity(t){var G,H;let{poolInfo:n,lpAmount:r,slippage:i,computeBudgetConfig:o,txVersion:s}=t;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region");let a=new he(new Y(1)).sub(i),c=await this.getRpcPoolInfo(n.id),[u,l]=[a.mul(r.mul(c.baseReserve).div(c.lpAmount)).quotient,a.mul(r.mul(c.quoteReserve).div(c.lpAmount)).quotient],f=await this.scope.fetchEpochInfo(),[m,g]=[ke(u,n.mintA.extensions.feeConfig,f,!0),ke(l,n.mintB.extensions.feeConfig,f,!0)],{account:w}=this.scope,p=this.createTxBuilder(),[P,d]=[new B(n.mintA.address),new B(n.mintB.address)],y=P.equals(Le),h=d.equals(Le),T,x,{account:C,instructionParams:L}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:n.mintA.programId,mint:new B(n.mintA.address),notUseTokenAccount:y,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!y,associatedOnly:!y,checkCreateATAOwner:!1});T=C,L&&p.addInstruction(L);let{account:M,instructionParams:N}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:n.mintB.programId,mint:new B(n.mintB.address),notUseTokenAccount:h,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!h,associatedOnly:!h,checkCreateATAOwner:!1});x=M,N&&p.addInstruction(N),(!T||!x)&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",w.tokenAccounts);let F=await w.getCreatedTokenAccount({mint:new B(n.lpMint.address)});F||this.logAndCreateError("cannot found lp token account","tokenAccounts",w.tokenAccounts);let I=await this.getCpmmPoolKeys(n.id);return p.addInstruction({instructions:[Kn(new B(n.programId),this.scope.ownerPubKey,new B(I.authority),new B(n.id),F,T,x,new B(I.vault.A),new B(I.vault.B),P,d,new B(n.lpMint.address),r,u.sub((G=m.fee)!=null?G:new Y(0)),l.sub((H=g.fee)!=null?H:new Y(0)))],instructionTypes:[ue.CpmmWithdrawLiquidity],lookupTableAddress:I.lookupTableAccount?[I.lookupTableAccount]:[]}),p.addCustomComputeBudget(o),p.versionBuild({txVersion:s})}async swap(t){var T,x,M,N,F,I;let{poolInfo:n,baseIn:r,swapResult:i,config:o,computeBudgetConfig:s,txVersion:a}=t,{bypassAssociatedCheck:c,checkCreateATAOwner:u}=V({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},o),l=this.createTxBuilder(),[f,m]=[new B(n.mintA.address),new B(n.mintB.address)],g=await this.scope.account.getCreatedTokenAccount({programId:new B((T=n.mintA.programId)!=null?T:be),mint:f,associatedOnly:!1}),w=await this.scope.account.getCreatedTokenAccount({programId:new B((x=n.mintB.programId)!=null?x:be),mint:m,associatedOnly:!1}),C=await this.scope.account.handleTokenAccount({side:r?"in":"out",amount:r?i.sourceAmountSwapped:i.destinationAmountSwapped,mint:f,tokenAccount:g,bypassAssociatedCheck:c,checkCreateATAOwner:u}),{tokenAccount:p}=C,P=se(C,["tokenAccount"]);l.addInstruction(P);let L=await this.scope.account.handleTokenAccount({side:r?"out":"in",amount:r?i.destinationAmountSwapped:i.sourceAmountSwapped,mint:m,tokenAccount:w,bypassAssociatedCheck:c,checkCreateATAOwner:u}),{tokenAccount:d}=L,y=se(L,["tokenAccount"]);l.addInstruction(y),!p&&!d&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",this.scope.account.tokenAccounts);let h=await this.getCpmmPoolKeys(n.id);return l.addInstruction({instructions:[r?Dn(new B(n.programId),this.scope.ownerPubKey,new B(h.authority),new B(h.config.id),new B(n.id),p,d,new B(h.vault.A),new B(h.vault.B),new B((M=n.mintA.programId)!=null?M:be),new B((N=n.mintB.programId)!=null?N:be),f,m,ot(new B(n.programId),new B(n.id)).publicKey,i.sourceAmountSwapped,i.destinationAmountSwapped):Rn(new B(n.programId),this.scope.ownerPubKey,new B(h.authority),new B(h.config.id),new B(n.id),d,p,new B(h.vault.B),new B(h.vault.A),new B((F=n.mintB.programId)!=null?F:be),new B((I=n.mintA.programId)!=null?I:be),m,f,ot(new B(n.programId),new B(n.id)).publicKey,i.sourceAmountSwapped,i.destinationAmountSwapped)],instructionTypes:[r?ue.CpmmSwapBaseIn:ue.CpmmSwapBaseOut]}),l.addCustomComputeBudget(s),l.versionBuild({txVersion:a})}computePairAmount({poolInfo:t,amount:n,slippage:r,epochInfo:i,baseIn:o}){var y,h,T,x,C,L,M,N;let s=1-Number(r.toSignificant())/100,a=new Y(new re(n).mul(10**t[o?"mintA":"mintB"].decimals).mul(s).toFixed(0)),c=ke(a,t[o?"mintA":"mintB"].extensions.feeConfig,i,!1),u=a.sub((y=c.fee)!=null?y:new Y(0)),[l,f]=[new Y(new re(t.mintAmountA).mul(10**t.mintA.decimals).toString()),new Y(new re(t.mintAmountB).mul(10**t.mintB.decimals).toString())],m=new Y(new re(t.lpAmount).mul(10**t.lpMint.decimals).toFixed(0,re.ROUND_DOWN));this.logDebug("baseReserve:",l.toString(),"quoteReserve:",f.toString()),this.logDebug("tokenIn:",o?t.mintA.symbol:t.mintB.symbol,"amountIn:",a.toString(),"amountInFee:",(T=(h=c.fee)==null?void 0:h.toString())!=null?T:0,"anotherToken:",o?t.mintB.symbol:t.mintA.symbol,"slippage:",`${r.toSignificant()}%`);let g=o?"base":"quote";this.logDebug("input side:",g);let w=u.mul(m).div(g==="base"?l:f),p={amount:Pt,fee:void 0,expirationTime:void 0};u.isZero()||(p=ke(Ei(w,l,f,m)[o?"amountB":"amountA"],t[o?"mintB":"mintA"].extensions.feeConfig,i,!0));let P=new he(new Y(1)).add(r),d=ke(P.mul(p.amount.sub((x=p.fee)!=null?x:new Y(0))).quotient,t[o?"mintB":"mintA"].extensions.feeConfig,i,!0);return this.logDebug("anotherAmount:",p.amount.toString(),"anotherAmountFee:",(L=(C=p.fee)==null?void 0:C.toString())!=null?L:0,"maxAnotherAmount:",d.amount.toString(),"maxAnotherAmountFee:",(N=(M=d.fee)==null?void 0:M.toString())!=null?N:0),{inputAmountFee:c,anotherAmount:p,maxAnotherAmount:d,liquidity:w}}};function Ei(e,t,n,r){let i=e.mul(t).div(r);!i.isZero()&&!e.mul(t).mod(r).isZero()&&(i=i.add(new Y(1)));let o=e.mul(n).div(r);return!o.isZero()&&!e.mul(n).mod(r).isZero()&&(o=o.add(new Y(1))),{amountA:i,amountB:o}}export{Mt as default};
1
+ var Fn=Object.defineProperty,Wn=Object.defineProperties;var Vn=Object.getOwnPropertyDescriptors;var Ge=Object.getOwnPropertySymbols;var Kt=Object.prototype.hasOwnProperty,Dt=Object.prototype.propertyIsEnumerable;var Et=(e,t,n)=>t in e?Fn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,V=(e,t)=>{for(var n in t||(t={}))Kt.call(t,n)&&Et(e,n,t[n]);if(Ge)for(var n of Ge(t))Dt.call(t,n)&&Et(e,n,t[n]);return e},$=(e,t)=>Wn(e,Vn(t));var ae=(e,t)=>{var n={};for(var r in e)Kt.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Ge)for(var r of Ge(e))t.indexOf(r)<0&&Dt.call(e,r)&&(n[r]=e[r]);return n};import{PublicKey as B}from"@solana/web3.js";import{NATIVE_MINT as at,TOKEN_PROGRAM_ID as be,AccountLayout as On}from"@solana/spl-token";import Jr from"big.js";import Ts from"bn.js";import Q from"bn.js";var Te=9e15,ge=1e9,ut="0123456789abcdef",je="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Ze="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",ct={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Te,maxE:Te,crypto:!1},Ot,ue,S=!0,Ye="[DecimalError] ",de=Ye+"Invalid argument: ",Ft=Ye+"Precision limit exceeded",Wt=Ye+"crypto unavailable",Vt="[object Decimal]",z=Math.floor,q=Math.pow,qn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Un=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Gn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,qt=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ne=1e7,k=7,Hn=9007199254740991,jn=je.length-1,lt=Ze.length-1,b={toStringTag:Vt};b.absoluteValue=b.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),A(e)};b.ceil=function(){return A(new this.constructor(this),this.e+1,2)};b.clampedTo=b.clamp=function(e,t){var n,r=this,i=r.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(de+t);return n=r.cmp(e),n<0?e:r.cmp(t)>0?t:new i(r)};b.comparedTo=b.cmp=function(e){var t,n,r,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,c=o.s,u=e.s;if(!s||!a)return!c||!u?NaN:c!==u?c:s===a?0:!s^c<0?1:-1;if(!s[0]||!a[0])return s[0]?c:a[0]?-u:0;if(c!==u)return c;if(o.e!==e.e)return o.e>e.e^c<0?1:-1;for(r=s.length,i=a.length,t=0,n=r<i?r:i;t<n;++t)if(s[t]!==a[t])return s[t]>a[t]^c<0?1:-1;return r===i?0:r>i^c<0?1:-1};b.cosine=b.cos=function(){var e,t,n=this,r=n.constructor;return n.d?n.d[0]?(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+k,r.rounding=1,n=Zn(r,Zt(r,n)),r.precision=e,r.rounding=t,A(ue==2||ue==3?n.neg():n,e,t,!0)):new r(1):new r(NaN)};b.cubeRoot=b.cbrt=function(){var e,t,n,r,i,o,s,a,c,u,l=this,f=l.constructor;if(!l.isFinite()||l.isZero())return new f(l);for(S=!1,o=l.s*q(l.s*l,1/3),!o||Math.abs(o)==1/0?(n=j(l.d),e=l.e,(o=(e-n.length+1)%3)&&(n+=o==1||o==-2?"0":"00"),o=q(n,1/3),e=z((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?n="5e"+e:(n=o.toExponential(),n=n.slice(0,n.indexOf("e")+1)+e),r=new f(n),r.s=l.s):r=new f(o.toString()),s=(e=f.precision)+3;;)if(a=r,c=a.times(a).times(a),u=c.plus(l),r=v(u.plus(l).times(a),u.plus(c),s+2,1),j(a.d).slice(0,s)===(n=j(r.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!i&&n=="4999"){if(!i&&(A(a,e+1,0),a.times(a).times(a).eq(l))){r=a;break}s+=4,i=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(A(r,e+1,1),t=!r.times(r).times(r).eq(l));break}return S=!0,A(r,e,f.rounding,t)};b.decimalPlaces=b.dp=function(){var e,t=this.d,n=NaN;if(t){if(e=t.length-1,n=(e-z(this.e/k))*k,e=t[e],e)for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n};b.dividedBy=b.div=function(e){return v(this,new this.constructor(e))};b.dividedToIntegerBy=b.divToInt=function(e){var t=this,n=t.constructor;return A(v(t,new n(e),0,1,1),n.precision,n.rounding)};b.equals=b.eq=function(e){return this.cmp(e)===0};b.floor=function(){return A(new this.constructor(this),this.e+1,3)};b.greaterThan=b.gt=function(e){return this.cmp(e)>0};b.greaterThanOrEqualTo=b.gte=function(e){var t=this.cmp(e);return t==1||t===0};b.hyperbolicCosine=b.cosh=function(){var e,t,n,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;n=s.precision,r=s.rounding,s.precision=n+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),t=(1/Xe(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=xe(s,1,o.times(t),new s(1),!0);for(var c,u=e,l=new s(8);u--;)c=o.times(o),o=a.minus(c.times(l.minus(c.times(l))));return A(o,s.precision=n,s.rounding=r,!0)};b.hyperbolicSine=b.sinh=function(){var e,t,n,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,n=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=xe(o,2,i,i,!0);else{e=1.4*Math.sqrt(r),e=e>16?16:e|0,i=i.times(1/Xe(5,e)),i=xe(o,2,i,i,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=t,o.rounding=n,A(i,t,n,!0)};b.hyperbolicTangent=b.tanh=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+7,r.rounding=1,v(n.sinh(),n.cosh(),r.precision=e,r.rounding=t)):new r(n.s)};b.inverseCosine=b.acos=function(){var e,t=this,n=t.constructor,r=t.abs().cmp(1),i=n.precision,o=n.rounding;return r!==-1?r===0?t.isNeg()?te(n,i,o):new n(0):new n(NaN):t.isZero()?te(n,i+4,o).times(.5):(n.precision=i+6,n.rounding=1,t=t.asin(),e=te(n,i+4,o).times(.5),n.precision=i,n.rounding=o,e.minus(t))};b.inverseHyperbolicCosine=b.acosh=function(){var e,t,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(e=r.precision,t=r.rounding,r.precision=e+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,S=!1,n=n.times(n).minus(1).sqrt().plus(n),S=!0,r.precision=e,r.rounding=t,n.ln()):new r(n)};b.inverseHyperbolicSine=b.asinh=function(){var e,t,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,S=!1,n=n.times(n).plus(1).sqrt().plus(n),S=!0,r.precision=e,r.rounding=t,n.ln())};b.inverseHyperbolicTangent=b.atanh=function(){var e,t,n,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):(e=o.precision,t=o.rounding,r=i.sd(),Math.max(r,e)<2*-i.e-1?A(new o(i),e,t,!0):(o.precision=n=r-i.e,i=v(i.plus(1),new o(1).minus(i),n+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)};b.inverseSine=b.asin=function(){var e,t,n,r,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),n=o.precision,r=o.rounding,t!==-1?t===0?(e=te(o,n+4,r).times(.5),e.s=i.s,e):new o(NaN):(o.precision=n+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=n,o.rounding=r,i.times(2)))};b.inverseTangent=b.atan=function(){var e,t,n,r,i,o,s,a,c,u=this,l=u.constructor,f=l.precision,m=l.rounding;if(u.isFinite()){if(u.isZero())return new l(u);if(u.abs().eq(1)&&f+4<=lt)return s=te(l,f+4,m).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(f+4<=lt)return s=te(l,f+4,m).times(.5),s.s=u.s,s}for(l.precision=a=f+10,l.rounding=1,n=Math.min(28,a/k+2|0),e=n;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(S=!1,t=Math.ceil(a/k),r=1,c=u.times(u),s=new l(u),i=u;e!==-1;)if(i=i.times(c),o=s.minus(i.div(r+=2)),i=i.times(c),s=o.plus(i.div(r+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return n&&(s=s.times(2<<n-1)),S=!0,A(s,l.precision=f,l.rounding=m,!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(e){return this.cmp(e)<0};b.lessThanOrEqualTo=b.lte=function(e){return this.cmp(e)<1};b.logarithm=b.log=function(e){var t,n,r,i,o,s,a,c,u=this,l=u.constructor,f=l.precision,m=l.rounding,g=5;if(e==null)e=new l(10),t=!0;else{if(e=new l(e),n=e.d,e.s<0||!n||!n[0]||e.eq(1))return new l(NaN);t=e.eq(10)}if(n=u.d,u.s<0||!n||!n[0]||u.eq(1))return new l(n&&!n[0]?-1/0:u.s!=1?NaN:n?0:1/0);if(t)if(n.length>1)o=!0;else{for(i=n[0];i%10===0;)i/=10;o=i!==1}if(S=!1,a=f+g,s=pe(u,a),r=t?ze(l,a+10):pe(e,a),c=v(s,r,a,1),Ce(c.d,i=f,m))do if(a+=10,s=pe(u,a),r=t?ze(l,a+10):pe(e,a),c=v(s,r,a,1),!o){+j(c.d).slice(i+1,i+15)+1==1e14&&(c=A(c,f+1,0));break}while(Ce(c.d,i+=10,m));return S=!0,A(c,f,m)};b.minus=b.sub=function(e){var t,n,r,i,o,s,a,c,u,l,f,m,g=this,w=g.constructor;if(e=new w(e),!g.d||!e.d)return!g.s||!e.s?e=new w(NaN):g.d?e.s=-e.s:e=new w(e.d||g.s!==e.s?g:NaN),e;if(g.s!=e.s)return e.s=-e.s,g.plus(e);if(u=g.d,m=e.d,a=w.precision,c=w.rounding,!u[0]||!m[0]){if(m[0])e.s=-e.s;else if(u[0])e=new w(g);else return new w(c===3?-0:0);return S?A(e,a,c):e}if(n=z(e.e/k),l=z(g.e/k),u=u.slice(),o=l-n,o){for(f=o<0,f?(t=u,o=-o,s=m.length):(t=m,n=l,s=u.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=u.length,s=m.length,f=r<s,f&&(s=r),r=0;r<s;r++)if(u[r]!=m[r]){f=u[r]<m[r];break}o=0}for(f&&(t=u,u=m,m=t,e.s=-e.s),s=u.length,r=m.length-s;r>0;--r)u[s++]=0;for(r=m.length;r>o;){if(u[--r]<m[r]){for(i=r;i&&u[--i]===0;)u[i]=ne-1;--u[i],u[r]+=ne}u[r]-=m[r]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--n;return u[0]?(e.d=u,e.e=Je(u,n),S?A(e,a,c):e):new w(c===3?-0:0)};b.modulo=b.mod=function(e){var t,n=this,r=n.constructor;return e=new r(e),!n.d||!e.s||e.d&&!e.d[0]?new r(NaN):!e.d||n.d&&!n.d[0]?A(new r(n),r.precision,r.rounding):(S=!1,r.modulo==9?(t=v(n,e.abs(),0,3,1),t.s*=e.s):t=v(n,e,0,r.modulo,1),t=t.times(e),S=!0,n.minus(t))};b.naturalExponential=b.exp=function(){return ft(this)};b.naturalLogarithm=b.ln=function(){return pe(this)};b.negated=b.neg=function(){var e=new this.constructor(this);return e.s=-e.s,A(e)};b.plus=b.add=function(e){var t,n,r,i,o,s,a,c,u,l,f=this,m=f.constructor;if(e=new m(e),!f.d||!e.d)return!f.s||!e.s?e=new m(NaN):f.d||(e=new m(e.d||f.s===e.s?f:NaN)),e;if(f.s!=e.s)return e.s=-e.s,f.minus(e);if(u=f.d,l=e.d,a=m.precision,c=m.rounding,!u[0]||!l[0])return l[0]||(e=new m(f)),S?A(e,a,c):e;if(o=z(f.e/k),r=z(e.e/k),u=u.slice(),i=o-r,i){for(i<0?(n=u,i=-i,s=l.length):(n=l,r=o,s=u.length),o=Math.ceil(a/k),s=o>s?o+1:s+1,i>s&&(i=s,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for(s=u.length,i=l.length,s-i<0&&(i=s,n=l,l=u,u=n),t=0;i;)t=(u[--i]=u[i]+l[i]+t)/ne|0,u[i]%=ne;for(t&&(u.unshift(t),++r),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=Je(u,r),S?A(e,a,c):e};b.precision=b.sd=function(e){var t,n=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(de+e);return n.d?(t=Ut(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t};b.round=function(){var e=this,t=e.constructor;return A(new t(e),e.e+1,t.rounding)};b.sine=b.sin=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+k,r.rounding=1,n=Yn(r,Zt(r,n)),r.precision=e,r.rounding=t,A(ue>2?n.neg():n,e,t,!0)):new r(NaN)};b.squareRoot=b.sqrt=function(){var e,t,n,r,i,o,s=this,a=s.d,c=s.e,u=s.s,l=s.constructor;if(u!==1||!a||!a[0])return new l(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(S=!1,u=Math.sqrt(+s),u==0||u==1/0?(t=j(a),(t.length+c)%2==0&&(t+="0"),u=Math.sqrt(t),c=z((c+1)/2)-(c<0||c%2),u==1/0?t="5e"+c:(t=u.toExponential(),t=t.slice(0,t.indexOf("e")+1)+c),r=new l(t)):r=new l(u.toString()),n=(c=l.precision)+3;;)if(o=r,r=o.plus(v(s,o,n+2,1)).times(.5),j(o.d).slice(0,n)===(t=j(r.d)).slice(0,n))if(t=t.slice(n-3,n+1),t=="9999"||!i&&t=="4999"){if(!i&&(A(o,c+1,0),o.times(o).eq(s))){r=o;break}n+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(A(r,c+1,1),e=!r.times(r).eq(s));break}return S=!0,A(r,c,l.rounding,e)};b.tangent=b.tan=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+10,r.rounding=1,n=n.sin(),n.s=1,n=v(n,new r(1).minus(n.times(n)).sqrt(),e+10,0),r.precision=e,r.rounding=t,A(ue==2||ue==4?n.neg():n,e,t,!0)):new r(NaN)};b.times=b.mul=function(e){var t,n,r,i,o,s,a,c,u,l=this,f=l.constructor,m=l.d,g=(e=new f(e)).d;if(e.s*=l.s,!m||!m[0]||!g||!g[0])return new f(!e.s||m&&!m[0]&&!g||g&&!g[0]&&!m?NaN:!m||!g?e.s/0:e.s*0);for(n=z(l.e/k)+z(e.e/k),c=m.length,u=g.length,c<u&&(o=m,m=g,g=o,s=c,c=u,u=s),o=[],s=c+u,r=s;r--;)o.push(0);for(r=u;--r>=0;){for(t=0,i=c+r;i>r;)a=o[i]+g[r]*m[i-r-1]+t,o[i--]=a%ne|0,t=a/ne|0;o[i]=(o[i]+t)%ne|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=Je(o,n),S?A(e,f.precision,f.rounding):e};b.toBinary=function(e,t){return pt(this,2,e,t)};b.toDecimalPlaces=b.toDP=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(X(e,0,ge),t===void 0?t=r.rounding:X(t,0,8),A(n,e+n.e+1,t))};b.toExponential=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=oe(r,!0):(X(e,0,ge),t===void 0?t=i.rounding:X(t,0,8),r=A(new i(r),e+1,t),n=oe(r,!0,e+1)),r.isNeg()&&!r.isZero()?"-"+n:n};b.toFixed=function(e,t){var n,r,i=this,o=i.constructor;return e===void 0?n=oe(i):(X(e,0,ge),t===void 0?t=o.rounding:X(t,0,8),r=A(new o(i),e+i.e+1,t),n=oe(r,!1,e+r.e+1)),i.isNeg()&&!i.isZero()?"-"+n:n};b.toFraction=function(e){var t,n,r,i,o,s,a,c,u,l,f,m,g=this,w=g.d,p=g.constructor;if(!w)return new p(g);if(u=n=new p(1),r=c=new p(0),t=new p(r),o=t.e=Ut(w)-g.e-1,s=o%k,t.d[0]=q(10,s<0?k+s:s),e==null)e=o>0?t:u;else{if(a=new p(e),!a.isInt()||a.lt(u))throw Error(de+a);e=a.gt(t)?o>0?t:u:a}for(S=!1,a=new p(j(w)),l=p.precision,p.precision=o=w.length*k*2;f=v(a,t,0,1,1),i=n.plus(f.times(r)),i.cmp(e)!=1;)n=r,r=i,i=u,u=c.plus(f.times(i)),c=i,i=t,t=a.minus(f.times(i)),a=i;return i=v(e.minus(n),r,0,1,1),c=c.plus(i.times(u)),n=n.plus(i.times(r)),c.s=u.s=g.s,m=v(u,r,o,1).minus(g).abs().cmp(v(c,n,o,1).minus(g).abs())<1?[u,r]:[c,n],p.precision=l,S=!0,m};b.toHexadecimal=b.toHex=function(e,t){return pt(this,16,e,t)};b.toNearest=function(e,t){var n=this,r=n.constructor;if(n=new r(n),e==null){if(!n.d)return n;e=new r(1),t=r.rounding}else{if(e=new r(e),t===void 0?t=r.rounding:X(t,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&(e.s=n.s),e}return e.d[0]?(S=!1,n=v(n,e,0,t,1).times(e),S=!0,A(n)):(e.s=n.s,n=e),n};b.toNumber=function(){return+this};b.toOctal=function(e,t){return pt(this,8,e,t)};b.toPower=b.pow=function(e){var t,n,r,i,o,s,a=this,c=a.constructor,u=+(e=new c(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new c(q(+a,u));if(a=new c(a),a.eq(1))return a;if(r=c.precision,o=c.rounding,e.eq(1))return A(a,r,o);if(t=z(e.e/k),t>=e.d.length-1&&(n=u<0?-u:u)<=Hn)return i=Gt(c,a,n,r),e.s<0?new c(1).div(i):A(i,r,o);if(s=a.s,s<0){if(t<e.d.length-1)return new c(NaN);if((e.d[t]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return n=q(+a,u),t=n==0||!isFinite(n)?z(u*(Math.log("0."+j(a.d))/Math.LN10+a.e+1)):new c(n+"").e,t>c.maxE+1||t<c.minE-1?new c(t>0?s/0:0):(S=!1,c.rounding=a.s=1,n=Math.min(12,(t+"").length),i=ft(e.times(pe(a,r+n)),r),i.d&&(i=A(i,r+5,1),Ce(i.d,r,o)&&(t=r+10,i=A(ft(e.times(pe(a,t+n)),t),t+5,1),+j(i.d).slice(r+1,r+15)+1==1e14&&(i=A(i,r+1,0)))),i.s=s,S=!0,c.rounding=o,A(i,r,o))};b.toPrecision=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=oe(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(X(e,1,ge),t===void 0?t=i.rounding:X(t,0,8),r=A(new i(r),e,t),n=oe(r,e<=r.e||r.e<=i.toExpNeg,e)),r.isNeg()&&!r.isZero()?"-"+n:n};b.toSignificantDigits=b.toSD=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(X(e,1,ge),t===void 0?t=r.rounding:X(t,0,8)),A(new r(n),e,t)};b.toString=function(){var e=this,t=e.constructor,n=oe(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n};b.truncated=b.trunc=function(){return A(new this.constructor(this),this.e+1,1)};b.valueOf=b.toJSON=function(){var e=this,t=e.constructor,n=oe(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n};function j(e){var t,n,r,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;t<i;t++)r=e[t]+"",n=k-r.length,n&&(o+=me(n)),o+=r;s=e[t],r=s+"",n=k-r.length,n&&(o+=me(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function X(e,t,n){if(e!==~~e||e<t||e>n)throw Error(de+e)}function Ce(e,t,n,r){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=k,i=0):(i=Math.ceil((t+1)/k),t%=k),o=q(10,k-t),a=e[i]%o|0,r==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=n<4&&a==99999||n>3&&a==49999||a==5e4||a==0):s=(n<4&&a+1==o||n>3&&a+1==o/2)&&(e[i+1]/o/100|0)==q(10,t-2)-1||(a==o/2||a==0)&&(e[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||n<4)&&a==9999||!r&&n>3&&a==4999):s=((r||n<4)&&a+1==o||!r&&n>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==q(10,t-3)-1,s}function He(e,t,n){for(var r,i=[0],o,s=0,a=e.length;s<a;){for(o=i.length;o--;)i[o]*=t;for(i[0]+=ut.indexOf(e.charAt(s++)),r=0;r<i.length;r++)i[r]>n-1&&(i[r+1]===void 0&&(i[r+1]=0),i[r+1]+=i[r]/n|0,i[r]%=n)}return i.reverse()}function Zn(e,t){var n,r,i;if(t.isZero())return t;r=t.d.length,r<32?(n=Math.ceil(r/3),i=(1/Xe(4,n)).toString()):(n=16,i="2.3283064365386962890625e-10"),e.precision+=n,t=xe(e,1,t.times(i),new e(1));for(var o=n;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=n,t}var v=function(){function e(r,i,o){var s,a=0,c=r.length;for(r=r.slice();c--;)s=r[c]*i+a,r[c]=s%o|0,a=s/o|0;return a&&r.unshift(a),r}function t(r,i,o,s){var a,c;if(o!=s)c=o>s?1:-1;else for(a=c=0;a<o;a++)if(r[a]!=i[a]){c=r[a]>i[a]?1:-1;break}return c}function n(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,c){var u,l,f,m,g,w,p,P,d,y,h,T,x,C,L,M,N,F,I,G,H=r.constructor,J=r.s==i.s?1:-1,U=r.d,R=i.d;if(!U||!U[0]||!R||!R[0])return new H(!r.s||!i.s||(U?R&&U[0]==R[0]:!R)?NaN:U&&U[0]==0||!R?J*0:J/0);for(c?(g=1,l=r.e-i.e):(c=ne,g=k,l=z(r.e/g)-z(i.e/g)),I=R.length,N=U.length,d=new H(J),y=d.d=[],f=0;R[f]==(U[f]||0);f++);if(R[f]>(U[f]||0)&&l--,o==null?(C=o=H.precision,s=H.rounding):a?C=o+(r.e-i.e)+1:C=o,C<0)y.push(1),w=!0;else{if(C=C/g+2|0,f=0,I==1){for(m=0,R=R[0],C++;(f<N||m)&&C--;f++)L=m*c+(U[f]||0),y[f]=L/R|0,m=L%R|0;w=m||f<N}else{for(m=c/(R[0]+1)|0,m>1&&(R=e(R,m,c),U=e(U,m,c),I=R.length,N=U.length),M=I,h=U.slice(0,I),T=h.length;T<I;)h[T++]=0;G=R.slice(),G.unshift(0),F=R[0],R[1]>=c/2&&++F;do m=0,u=t(R,h,I,T),u<0?(x=h[0],I!=T&&(x=x*c+(h[1]||0)),m=x/F|0,m>1?(m>=c&&(m=c-1),p=e(R,m,c),P=p.length,T=h.length,u=t(p,h,P,T),u==1&&(m--,n(p,I<P?G:R,P,c))):(m==0&&(u=m=1),p=R.slice()),P=p.length,P<T&&p.unshift(0),n(h,p,T,c),u==-1&&(T=h.length,u=t(R,h,I,T),u<1&&(m++,n(h,I<T?G:R,T,c))),T=h.length):u===0&&(m++,h=[0]),y[f++]=m,u&&h[0]?h[T++]=U[M]||0:(h=[U[M]],T=1);while((M++<N||h[0]!==void 0)&&C--);w=h[0]!==void 0}y[0]||y.shift()}if(g==1)d.e=l,Ot=w;else{for(f=1,m=y[0];m>=10;m/=10)f++;d.e=f+l*g-1,A(d,a?o+d.e+1:o,s,w)}return d}}();function A(e,t,n,r){var i,o,s,a,c,u,l,f,m,g=e.constructor;e:if(t!=null){if(f=e.d,!f)return e;for(i=1,a=f[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=k,s=t,l=f[m=0],c=l/q(10,i-s-1)%10|0;else if(m=Math.ceil((o+1)/k),a=f.length,m>=a)if(r){for(;a++<=m;)f.push(0);l=c=0,i=1,o%=k,s=o-k+1}else break e;else{for(l=a=f[m],i=1;a>=10;a/=10)i++;o%=k,s=o-k+i,c=s<0?0:l/q(10,i-s-1)%10|0}if(r=r||t<0||f[m+1]!==void 0||(s<0?l:l%q(10,i-s-1)),u=n<4?(c||r)&&(n==0||n==(e.s<0?3:2)):c>5||c==5&&(n==4||r||n==6&&(o>0?s>0?l/q(10,i-s):0:f[m-1])%10&1||n==(e.s<0?8:7)),t<1||!f[0])return f.length=0,u?(t-=e.e+1,f[0]=q(10,(k-t%k)%k),e.e=-t||0):f[0]=e.e=0,e;if(o==0?(f.length=m,a=1,m--):(f.length=m+1,a=q(10,k-o),f[m]=s>0?(l/q(10,i-s)%q(10,s)|0)*a:0),u)for(;;)if(m==0){for(o=1,s=f[0];s>=10;s/=10)o++;for(s=f[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,f[0]==ne&&(f[0]=1));break}else{if(f[m]+=a,f[m]!=ne)break;f[m--]=0,a=1}for(o=f.length;f[--o]===0;)f.pop()}return S&&(e.e>g.maxE?(e.d=null,e.e=NaN):e.e<g.minE&&(e.e=0,e.d=[0])),e}function oe(e,t,n){if(!e.isFinite())return jt(e);var r,i=e.e,o=j(e.d),s=o.length;return t?(n&&(r=n-s)>0?o=o.charAt(0)+"."+o.slice(1)+me(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+me(-i-1)+o,n&&(r=n-s)>0&&(o+=me(r))):i>=s?(o+=me(i+1-s),n&&(r=n-i-1)>0&&(o=o+"."+me(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-s)>0&&(i+1===s&&(o+="."),o+=me(r))),o}function Je(e,t){var n=e[0];for(t*=k;n>=10;n/=10)t++;return t}function ze(e,t,n){if(t>jn)throw S=!0,n&&(e.precision=n),Error(Ft);return A(new e(je),t,1,!0)}function te(e,t,n){if(t>lt)throw Error(Ft);return A(new e(Ze),t,n,!0)}function Ut(e){var t=e.length-1,n=t*k+1;if(t=e[t],t){for(;t%10==0;t/=10)n--;for(t=e[0];t>=10;t/=10)n++}return n}function me(e){for(var t="";e--;)t+="0";return t}function Gt(e,t,n,r){var i,o=new e(1),s=Math.ceil(r/k+4);for(S=!1;;){if(n%2&&(o=o.times(t),vt(o.d,s)&&(i=!0)),n=z(n/2),n===0){n=o.d.length-1,i&&o.d[n]===0&&++o.d[n];break}t=t.times(t),vt(t.d,s)}return S=!0,o}function Rt(e){return e.d[e.d.length-1]&1}function Ht(e,t,n){for(var r,i=new e(t[0]),o=0;++o<t.length;)if(r=new e(t[o]),r.s)i[n](r)&&(i=r);else{i=r;break}return i}function ft(e,t){var n,r,i,o,s,a,c,u=0,l=0,f=0,m=e.constructor,g=m.rounding,w=m.precision;if(!e.d||!e.d[0]||e.e>17)return new m(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:0/0);for(t==null?(S=!1,c=w):c=t,a=new m(.03125);e.e>-2;)e=e.times(a),f+=5;for(r=Math.log(q(2,f))/Math.LN10*2+5|0,c+=r,n=o=s=new m(1),m.precision=c;;){if(o=A(o.times(e),c,1),n=n.times(++l),a=s.plus(v(o,n,c,1)),j(a.d).slice(0,c)===j(s.d).slice(0,c)){for(i=f;i--;)s=A(s.times(s),c,1);if(t==null)if(u<3&&Ce(s.d,c-r,g,u))m.precision=c+=10,n=o=a=new m(1),l=0,u++;else return A(s,m.precision=w,g,S=!0);else return m.precision=w,s}s=a}}function pe(e,t){var n,r,i,o,s,a,c,u,l,f,m,g=1,w=10,p=e,P=p.d,d=p.constructor,y=d.rounding,h=d.precision;if(p.s<0||!P||!P[0]||!p.e&&P[0]==1&&P.length==1)return new d(P&&!P[0]?-1/0:p.s!=1?NaN:P?0:p);if(t==null?(S=!1,l=h):l=t,d.precision=l+=w,n=j(P),r=n.charAt(0),Math.abs(o=p.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)p=p.times(e),n=j(p.d),r=n.charAt(0),g++;o=p.e,r>1?(p=new d("0."+n),o++):p=new d(r+"."+n.slice(1))}else return u=ze(d,l+2,h).times(o+""),p=pe(new d(r+"."+n.slice(1)),l-w).plus(u),d.precision=h,t==null?A(p,h,y,S=!0):p;for(f=p,c=s=p=v(p.minus(1),p.plus(1),l,1),m=A(p.times(p),l,1),i=3;;){if(s=A(s.times(m),l,1),u=c.plus(v(s,new d(i),l,1)),j(u.d).slice(0,l)===j(c.d).slice(0,l))if(c=c.times(2),o!==0&&(c=c.plus(ze(d,l+2,h).times(o+""))),c=v(c,new d(g),l,1),t==null)if(Ce(c.d,l-w,y,a))d.precision=l+=w,u=s=p=v(f.minus(1),f.plus(1),l,1),m=A(p.times(p),l,1),i=a=1;else return A(c,d.precision=h,y,S=!0);else return d.precision=h,c;c=u,i+=2}}function jt(e){return String(e.s*e.s/0)}function mt(e,t){var n,r,i;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;r++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(r,i),t){if(i-=r,e.e=n=n-r-1,e.d=[],r=(n+1)%k,n<0&&(r+=k),r<i){for(r&&e.d.push(+t.slice(0,r)),i-=k;r<i;)e.d.push(+t.slice(r,r+=k));t=t.slice(r),r=k-t.length}else r-=i;for(;r--;)t+="0";e.d.push(+t),S&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function zn(e,t){var n,r,i,o,s,a,c,u,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),qt.test(t))return mt(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Un.test(t))n=16,t=t.toLowerCase();else if(qn.test(t))n=2;else if(Gn.test(t))n=8;else throw Error(de+t);for(o=t.search(/p/i),o>0?(c=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,r=e.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=Gt(r,new r(n),o,o*2)),u=He(t,n,ne),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new r(e.s*0):(e.e=Je(u,l),e.d=u,S=!1,s&&(e=v(e,i,a*4)),c&&(e=e.times(Math.abs(c)<54?q(2,c):Ie.pow(2,c))),S=!0,e)}function Yn(e,t){var n,r=t.d.length;if(r<3)return t.isZero()?t:xe(e,2,t,t);n=1.4*Math.sqrt(r),n=n>16?16:n|0,t=t.times(1/Xe(5,n)),t=xe(e,2,t,t);for(var i,o=new e(5),s=new e(16),a=new e(20);n--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function xe(e,t,n,r,i){var o,s,a,c,u=1,l=e.precision,f=Math.ceil(l/k);for(S=!1,c=n.times(n),a=new e(r);;){if(s=v(a.times(c),new e(t++*t++),l,1),a=i?r.plus(s):r.minus(s),r=v(s.times(c),new e(t++*t++),l,1),s=a.plus(r),s.d[f]!==void 0){for(o=f;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=r,r=s,s=o,u++}return S=!0,s.d.length=f+1,s}function Xe(e,t){for(var n=e;--t;)n*=e;return n}function Zt(e,t){var n,r=t.s<0,i=te(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return ue=r?4:1,t;if(n=t.divToInt(i),n.isZero())ue=r?3:2;else{if(t=t.minus(n.times(i)),t.lte(o))return ue=Rt(n)?r?2:3:r?4:1,t;ue=Rt(n)?r?1:4:r?3:2}return t.minus(i).abs()}function pt(e,t,n,r){var i,o,s,a,c,u,l,f,m,g=e.constructor,w=n!==void 0;if(w?(X(n,1,ge),r===void 0?r=g.rounding:X(r,0,8)):(n=g.precision,r=g.rounding),!e.isFinite())l=jt(e);else{for(l=oe(e),s=l.indexOf("."),w?(i=2,t==16?n=n*4-3:t==8&&(n=n*3-2)):i=t,s>=0&&(l=l.replace(".",""),m=new g(1),m.e=l.length-s,m.d=He(oe(m),10,i),m.e=m.d.length),f=He(l,10,i),o=c=f.length;f[--c]==0;)f.pop();if(!f[0])l=w?"0p+0":"0";else{if(s<0?o--:(e=new g(e),e.d=f,e.e=o,e=v(e,m,n,r,0,i),f=e.d,o=e.e,u=Ot),s=f[n],a=i/2,u=u||f[n+1]!==void 0,u=r<4?(s!==void 0||u)&&(r===0||r===(e.s<0?3:2)):s>a||s===a&&(r===4||u||r===6&&f[n-1]&1||r===(e.s<0?8:7)),f.length=n,u)for(;++f[--n]>i-1;)f[n]=0,n||(++o,f.unshift(1));for(c=f.length;!f[c-1];--c);for(s=0,l="";s<c;s++)l+=ut.charAt(f[s]);if(w){if(c>1)if(t==16||t==8){for(s=t==16?4:3,--c;c%s;c++)l+="0";for(f=He(l,i,t),c=f.length;!f[c-1];--c);for(s=1,l="1.";s<c;s++)l+=ut.charAt(f[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)l="0"+l;l="0."+l}else if(++o>c)for(o-=c;o--;)l+="0";else o<c&&(l=l.slice(0,o)+"."+l.slice(o))}l=(t==16?"0x":t==2?"0b":t==8?"0o":"")+l}return e.s<0?"-"+l:l}function vt(e,t){if(e.length>t)return e.length=t,!0}function Jn(e){return new this(e).abs()}function Xn(e){return new this(e).acos()}function Qn(e){return new this(e).acosh()}function $n(e,t){return new this(e).plus(t)}function er(e){return new this(e).asin()}function tr(e){return new this(e).asinh()}function nr(e){return new this(e).atan()}function rr(e){return new this(e).atanh()}function ir(e,t){e=new this(e),t=new this(t);var n,r=this.precision,i=this.rounding,o=r+4;return!e.s||!t.s?n=new this(NaN):!e.d&&!t.d?(n=te(this,o,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?te(this,r,i):new this(0),n.s=e.s):!e.d||t.isZero()?(n=te(this,o,1).times(.5),n.s=e.s):t.s<0?(this.precision=o,this.rounding=1,n=this.atan(v(e,t,o,1)),t=te(this,o,1),this.precision=r,this.rounding=i,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(v(e,t,o,1)),n}function or(e){return new this(e).cbrt()}function sr(e){return A(e=new this(e),e.e+1,2)}function ar(e,t,n){return new this(e).clamp(t,n)}function ur(e){if(!e||typeof e!="object")throw Error(Ye+"Object expected");var t,n,r,i=e.defaults===!0,o=["precision",1,ge,"rounding",0,8,"toExpNeg",-Te,0,"toExpPos",0,Te,"maxE",0,Te,"minE",-Te,0,"modulo",0,9];for(t=0;t<o.length;t+=3)if(n=o[t],i&&(this[n]=ct[n]),(r=e[n])!==void 0)if(z(r)===r&&r>=o[t+1]&&r<=o[t+2])this[n]=r;else throw Error(de+n+": "+r);if(n="crypto",i&&(this[n]=ct[n]),(r=e[n])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[n]=!0;else throw Error(Wt);else this[n]=!1;else throw Error(de+n+": "+r);return this}function cr(e){return new this(e).cos()}function lr(e){return new this(e).cosh()}function zt(e){var t,n,r;function i(o){var s,a,c,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,_t(o)){u.s=o.s,S?!o.d||o.e>i.maxE?(u.e=NaN,u.d=null):o.e<i.minE?(u.e=0,u.d=[0]):(u.e=o.e,u.d=o.d.slice()):(u.e=o.e,u.d=o.d?o.d.slice():o.d);return}if(c=typeof o,c==="number"){if(o===0){u.s=1/o<0?-1:1,u.e=0,u.d=[0];return}if(o<0?(o=-o,u.s=-1):u.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;S?s>i.maxE?(u.e=NaN,u.d=null):s<i.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[o]):(u.e=s,u.d=[o]);return}else if(o*0!==0){o||(u.s=NaN),u.e=NaN,u.d=null;return}return mt(u,o.toString())}else if(c!=="string")throw Error(de+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),qt.test(o)?mt(u,o):zn(u,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=ur,i.clone=zt,i.isDecimal=_t,i.abs=Jn,i.acos=Xn,i.acosh=Qn,i.add=$n,i.asin=er,i.asinh=tr,i.atan=nr,i.atanh=rr,i.atan2=ir,i.cbrt=or,i.ceil=sr,i.clamp=ar,i.cos=cr,i.cosh=lr,i.div=fr,i.exp=mr,i.floor=pr,i.hypot=dr,i.ln=gr,i.log=hr,i.log10=yr,i.log2=br,i.max=wr,i.min=Pr,i.mod=Tr,i.mul=xr,i.pow=Ar,i.random=Br,i.round=kr,i.sign=Sr,i.sin=Cr,i.sinh=Ir,i.sqrt=Lr,i.sub=Nr,i.sum=Mr,i.tan=Er,i.tanh=Kr,i.trunc=Dr,e===void 0&&(e={}),e&&e.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<r.length;)e.hasOwnProperty(n=r[t++])||(e[n]=this[n]);return i.config(e),i}function fr(e,t){return new this(e).div(t)}function mr(e){return new this(e).exp()}function pr(e){return A(e=new this(e),e.e+1,3)}function dr(){var e,t,n=new this(0);for(S=!1,e=0;e<arguments.length;)if(t=new this(arguments[e++]),t.d)n.d&&(n=n.plus(t.times(t)));else{if(t.s)return S=!0,new this(1/0);n=t}return S=!0,n.sqrt()}function _t(e){return e instanceof Ie||e&&e.toStringTag===Vt||!1}function gr(e){return new this(e).ln()}function hr(e,t){return new this(e).log(t)}function br(e){return new this(e).log(2)}function yr(e){return new this(e).log(10)}function wr(){return Ht(this,arguments,"lt")}function Pr(){return Ht(this,arguments,"gt")}function Tr(e,t){return new this(e).mod(t)}function xr(e,t){return new this(e).mul(t)}function Ar(e,t){return new this(e).pow(t)}function Br(e){var t,n,r,i,o=0,s=new this(1),a=[];if(e===void 0?e=this.precision:X(e,1,ge),r=Math.ceil(e/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(Wt);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],e%=k,r&&e&&(i=q(10,k-e),a[o]=(r/i|0)*i);a[o]===0;o--)a.pop();if(o<0)n=0,a=[0];else{for(n=-1;a[0]===0;n-=k)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<k&&(n-=k-r)}return s.e=n,s.d=a,s}function kr(e){return A(e=new this(e),e.e+1,this.rounding)}function Sr(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function Cr(e){return new this(e).sin()}function Ir(e){return new this(e).sinh()}function Lr(e){return new this(e).sqrt()}function Nr(e,t){return new this(e).sub(t)}function Mr(){var e=0,t=arguments,n=new this(t[e]);for(S=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return S=!0,A(n,this.precision,this.rounding)}function Er(e){return new this(e).tan()}function Kr(e){return new this(e).tanh()}function Dr(e){return A(e=new this(e),e.e+1,1)}b[Symbol.for("nodejs.util.inspect.custom")]=b.toString;b[Symbol.toStringTag]="Decimal";var Ie=b.constructor=zt(ct);je=new Ie(je);Ze=new Ie(Ze);var re=Ie;import{PublicKey as gt}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Rr}from"@solana/spl-token";import{PublicKey as W,SystemProgram as Yt,SYSVAR_RENT_PUBKEY as vr}from"@solana/web3.js";function dt({pubkey:e,isSigner:t=!1,isWritable:n=!0}){return{pubkey:e,isWritable:n,isSigner:t}}var Oi=[dt({pubkey:Rr,isWritable:!1}),dt({pubkey:Yt.programId,isWritable:!1}),dt({pubkey:vr,isWritable:!1})];function Jt({publicKey:e,transformSol:t}){let n=Xt(e.toString());if(n instanceof W)return t&&n.equals(Ne)?Le:n;if(t&&n.toString()===Ne.toBase58())return Le;if(typeof n=="string"){if(n===W.default.toBase58())return W.default;try{return new W(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Xt(e){try{return new W(e)}catch{return e}}var Fi=new W("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Qt=new W("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),$t=new W("SysvarRent111111111111111111111111111111111"),Wi=new W("SysvarC1ock11111111111111111111111111111111"),Vi=new W("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),qi=new W("Sysvar1nstructions1111111111111111111111111"),en=Yt.programId,Ui=new W("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Gi=new W("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Hi=new W("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ji=new W("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Zi=new W("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),zi=new W("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Yi=new W("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ji=new W("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Xi=new W("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Qi=new W("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),$i=new W("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Le=new W("So11111111111111111111111111111111111111112"),Ne=W.default;import{PublicKey as _r}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as tn}from"@solana/spl-token";var nn={chainId:101,address:_r.default.toBase58(),programId:tn.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:tn.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 ht=class{constructor({mint:t,decimals:n,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(t===Ne.toBase58()||t instanceof gt&&Ne.equals(t)){this.decimals=ye.decimals,this.symbol=ye.symbol,this.name=ye.name,this.mint=new gt(ye.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=i||t.toString().substring(0,6),this.mint=o?gt.default:Jt({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},Ae=ht;Ae.WSOL=new ht($(V({},ye),{mint:ye.address}));import{get as rn,set as Or}from"lodash";import sn from"dayjs";import Fr from"dayjs/plugin/utc";sn.extend(Fr);var bt=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 sn().utc().format("YYYY/MM/DD HH:mm:ss UTC")}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},on={},Wr={};function Y(e){let t=rn(on,e);if(!t){let n=rn(Wr,e);t=new bt({name:e,logLevel:n}),Or(on,e,t)}return t}import $e from"big.js";import Ur from"bn.js";import Gr from"decimal.js-light";import Vr from"toformat";var qr=Vr,Me=qr;var Qe=Y("module/fraction"),yt=Me($e),Ee=Me(Gr),Hr={[0]:Ee.ROUND_DOWN,[1]:Ee.ROUND_HALF_UP,[2]:Ee.ROUND_UP},jr={[0]:$e.roundDown,[1]:$e.roundHalfUp,[2]:$e.roundUp},O=class{constructor(t,n=new Ur(1)){this.numerator=he(t),this.denominator=he(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new O(this.denominator,this.numerator)}add(t){let n=t instanceof O?t:new O(he(t));return this.denominator.eq(n.denominator)?new O(this.numerator.add(n.numerator),this.denominator):new O(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof O?t:new O(he(t));return this.denominator.eq(n.denominator)?new O(this.numerator.sub(n.numerator),this.denominator):new O(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof O?t:new O(he(t));return new O(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof O?t:new O(he(t));return new O(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||Qe.logWithError(`${t} is not an integer.`),t<=0&&Qe.logWithError(`${t} is not positive.`),Ee.set({precision:t+1,rounding:Hr[r]});let i=new Ee(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return i.toFormat(i.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||Qe.logWithError(`${t} is not an integer.`),t<0&&Qe.logWithError(`${t} is negative.`),yt.DP=t,yt.RM=jr[r]||1,new yt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var No=Y("Raydium_price");var wt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},et=wt;et.SOL=new wt(nn);import zr from"bn.js";var an=new O(new zr(100)),se=class extends O{toSignificant(t=5,n,r){return this.mul(an).toSignificant(t,n,r)}toFixed(t=2,n,r){return this.mul(an).toFixed(t,n,r)}};import{PublicKey as Ho}from"@solana/web3.js";import Zo from"bn.js";var Pt=new Q(0),ls=new Q(1),fs=new Q(2),ms=new Q(3),ps=new Q(5),Yr=new Q(10),ds=new Q(100),gs=new Q(1e3),hs=new Q(1e4),ln=9007199254740991;function he(e){let t=Y("Raydium_parseBigNumberish");if(e instanceof Q)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new Q(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=ln||e<=-ln)&&t.logWithError(`BigNumberish number overflow: ${e}`),new Q(String(e))):typeof e=="bigint"?new Q(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new Q(0))}var Ls=Y("Raydium_amount"),Ns=Me(Jr);import{PublicKey as ni}from"@solana/web3.js";import{PublicKey as Xr,ComputeBudgetProgram as fn,Transaction as pn,TransactionMessage as Qr,Keypair as dn,VersionedTransaction as gn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as $r}from"@solana/spl-token";var ce={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 mn=Y("Raydium_txUtil"),hn=1644;function tt(e){let t=[],n=[];return e.microLamports&&(t.push(fn.setComputeUnitPrice({microLamports:e.microLamports})),n.push(ce.SetComputeUnitPrice)),e.units&&(t.push(fn.setComputeUnitLimit({units:e.units})),n.push(ce.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Be(e){var t,n;try{return((n=await((t=e.getLatestBlockhash)==null?void 0:t.call(e)))==null?void 0:n.blockhash)||(await e.getRecentBlockhash()).blockhash}catch{return(await e.getRecentBlockhash()).blockhash}}function ei(e,t){e.length<1&&mn.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&mn.logWithError(`no signers provided:, ${t.toString()}`);let n=new pn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...e);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<hn}catch{return!1}}function le(e,t){let[n,r]=Xr.findProgramAddressSync(e,t);return{publicKey:n,nonce:r}}function Ke({instructions:e,payer:t,signers:n}){return ei(e,[t,...n])}function De({instructions:e,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=dn.generate().publicKey.toString()}){let o=new Qr({payerKey:t,recentBlockhash:r,instructions:e}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new gn(o).serialize()).toString("base64").length<hn}catch{return!1}}var ti=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e);function we(e){let t=[];return e.forEach(n=>{n instanceof pn&&(n.recentBlockhash||(n.recentBlockhash=$r.toBase58()),n.feePayer||(n.feePayer=dn.generate().publicKey));let r=n.serialize({requireAllSignatures:!1,verifySignatures:!1});n instanceof gn&&(r=ti(r));let i=r.toString("base64");t.push(i)}),console.log("simulate tx string:",t),t}import{TOKEN_PROGRAM_ID as ri}from"@solana/spl-token";function bn(e,t,n){return le([e.toBuffer(),(n!=null?n:ri).toBuffer(),t.toBuffer()],new ni("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as ve,sendAndConfirmTransaction as _e,Transaction as Oe,TransactionMessage as Fe,VersionedTransaction as We}from"@solana/web3.js";import ui from"axios";import{PublicKey as wn,AddressLookupTableAccount as nt}from"@solana/web3.js";import{PublicKey as ai}from"@solana/web3.js";import{getTransferFeeConfig as za,unpackMint as Ya}from"@solana/spl-token";function Tt(e,t=1,n=[]){let r=[...e];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}import{PublicKey as D}from"@solana/web3.js";var ia=new D("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),oa=new D("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),sa=new D("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),aa=new D("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ua=new D("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),ca=new D("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),la=new D("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),fa=new D("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ma=new D("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),pa=new D("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),da=new D("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ga=new D("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),ha=new D("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),ba=new D("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),ya=new D("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),wa=new D("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Pa=new D("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Ta=new D("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ii=new D("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),oi=new D("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),si=new D("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2");var xa={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:ii,CREATE_CPMM_POOL_AUTH:oi,CREATE_CPMM_POOL_FEE_ACC:si,FEE_DESTINATION_ID:new D("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR")};import ie from"bn.js";var Re=1e4;function ke(e,t,n,r){if(t===void 0)return{amount:e,fee:void 0,expirationTime:void 0};let i=$(V({},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=n.epoch<i.newerTransferFee.epoch?i.olderTransferFee:i.newerTransferFee,s=new ie(o.maximumFee.toString()),a=n.epoch<i.newerTransferFee.epoch?(Number(i.newerTransferFee.epoch)*n.slotsInEpoch-n.absoluteSlot)*400/1e3:void 0;if(r)if(o.transferFeeBasisPoints===Re){let c=new ie(o.maximumFee.toString());return{amount:e.add(c),fee:c,expirationTime:a}}else{let c=xt(e.mul(new ie(Re)),new ie(Re-o.transferFeeBasisPoints)),u=new ie(o.maximumFee.toString()),l=c.sub(e).gt(u)?e.add(u):c,f=xt(l.mul(new ie(o.transferFeeBasisPoints)),new ie(Re)),m=f.gt(s)?s:f;return{amount:l,fee:m,expirationTime:a}}else{let c=xt(e.mul(new ie(o.transferFeeBasisPoints)),new ie(Re)),u=c.gt(s)?s:c;return{amount:e,fee:u,expirationTime:a}}}function xt(e,t){let{div:n,mod:r}=e.divmod(t);return r.gt(new ie(0))?n.add(new ie(1)):n}var At=Y("Raydium_accountInfo_util");async function yn(e,t,n){let{batchRequest:r,commitment:i="confirmed"}=V({batchRequest:!1},n),o=Tt(t,100),s=new Array(o.length).fill([]);if(r){let a=o.map(l=>{let f=e._buildArgs([l.map(m=>m.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:f}}),c=Tt(a,10);s=(await(await Promise.all(c.map(async l=>await e._rpcBatchRequest(l)))).flat()).map(l=>(l.error&&At.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.error.message}`),l.result.value.map(f=>{if(f){let{data:m,executable:g,lamports:w,owner:p,rentEpoch:P}=f;return m.length!==2&&m[1]!=="base64"&&At.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(m[0],"base64"),executable:g,lamports:w,owner:new ai(p),rentEpoch:P}}return null})))}else try{s=await Promise.all(o.map(a=>e.getMultipleAccountsInfo(a,i)))}catch(a){a instanceof Error&&At.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${a.message}`)}return s.flat()}async function Bt({connection:e,address:t}){let n=await yn(e,[...new Set(t.map(i=>i.toString()))].map(i=>new wn(i))),r={};for(let i=0;i<t.length;i++){let o=n[i],s=t[i];if(!o)continue;let a=new nt({key:s,state:nt.deserialize(o.data)});r[s.toString()]=a,rt[s.toString()]=a}return r}var rt={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new nt({key:new wn("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:nt.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 it=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}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 ui.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=tt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:i=[],endInstructionTypes:o=[],lookupTableAddress:s=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...i),this.endInstructionTypes.push(...o),this.lookupTableAddress.push(...s.filter(a=>a!==ve.default.toString())),this}async versionBuild({txVersion:t,extInfo:n}){return t===0?await this.buildV0(V({},n||{})):this.build(n)}build(t){let n=new Oe;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async r=>{var a;let{recentBlockHash:i,skipPreflight:o=!0}=r||{},s=i!=null?i:await Be(this.connection);if(n.recentBlockhash=s,this.signers.length&&n.sign(...this.signers),we([n]),(a=this.owner)!=null&&a.isKeyPair)return{txId:await _e(this.connection,n,this.signers.find(c=>c.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:o}),signedTx:n};if(this.signAllTransactions){let c=await this.signAllTransactions([n]);return{txId:await this.connection.sendRawTransaction(c[0].serialize(),{skipPreflight:o}),signedTx:c[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:i}=this.build(r),o=n.filter(u=>u.transaction.instructions.length>0),s=[i,...o.map(u=>u.transaction)],a=[this.signers,...o.map(u=>u.signers)],c=[...this.instructionTypes,...o.map(u=>u.instructionTypes).flat()];return{builder:this,transactions:s,signers:a,instructionTypes:c,execute:async u=>{var p;let{sequentially:l,onTxUpdate:f,recentBlockHash:m,skipPreflight:g=!0}=u||{},w=m!=null?m:await Be(this.connection);if((p=this.owner)!=null&&p.isKeyPair){if(l){let P=[];for(let d of s){let y=await _e(this.connection,d,this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});P.push(y)}return{txIds:P,signedTxs:s}}return{txIds:await await Promise.all(s.map(async(P,d)=>(P.recentBlockhash=w,await _e(this.connection,P,a[d].find(y=>y.publicKey.equals(this.owner.publicKey))?a[d]:[...a[d],this.owner.signer],{skipPreflight:g})))),signedTxs:s}}if(this.signAllTransactions){let P=s.map((y,h)=>(y.recentBlockhash=w,a[h].length&&y.sign(...a[h]),y));we(P);let d=await this.signAllTransactions(P);if(l){let y=0,h=[],T=async()=>{if(!d[y])return;let x=await this.connection.sendRawTransaction(d[y].serialize(),{skipPreflight:g});h.push({txId:x,status:"sent",signedTx:d[y]}),f==null||f([...h]),y++,this.connection.onSignature(x,C=>{let L=h.findIndex(M=>M.txId===x);L>-1&&(h[L].status=C.err?"error":"success"),f==null||f([...h]),C.err||T()},"processed"),this.connection.getSignatureStatus(x)};return await T(),{txIds:h.map(x=>x.txId),signedTxs:d}}else{let y=[];for(let h=0;h<d.length;h+=1){let T=await this.connection.sendRawTransaction(d[h].serialize(),{skipPreflight:g});y.push(T)}return{txIds:y,signedTxs:d}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){let m=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:i}=m,o=ae(m,["lookupTableCache","lookupTableAddress","forerunCreate"]),s=V(V({},this.cluster==="devnet"?{}:rt),n),a=Array.from(new Set([...r,...this.lookupTableAddress])),c=[];for(let g of a)s[g]===void 0&&c.push(new ve(g));let u=await Bt({connection:this.connection,address:c});for(let[g,w]of Object.entries(u))s[g]=w;let l=new Fe({payerKey:this.feePayer,recentBlockhash:i?ve.default.toBase58():await Be(this.connection),instructions:[...this.allInstructions]}).compileToV0Message(Object.values(s)),f=new We(l);return f.sign(this.signers),{builder:this,transaction:f,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async g=>{var P;let{recentBlockHash:w,skipPreflight:p=!0}=g||{};if(w&&(f.message.recentBlockhash=w),we([f]),(P=this.owner)!=null&&P.isKeyPair){this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))||f.sign([this.owner.signer]);let d=await this.connection.sendTransaction(f,{skipPreflight:p}),{lastValidBlockHeight:y,blockhash:h}=await this.connection.getLatestBlockhash();return await this.connection.confirmTransaction({blockhash:h,lastValidBlockHeight:y,signature:d},"confirmed"),{txId:d,signedTx:f}}if(this.signAllTransactions){let d=await this.signAllTransactions([f]);return{txId:await this.connection.sendTransaction(d[0],{skipPreflight:p}),signedTx:d[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async buildV0MultiTx(t){let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:i}=await this.buildV0(r),o=n.filter(u=>u.builder.instructions.length>0),s=[i,...o.map(u=>u.transaction)],a=[this.signers,...o.map(u=>u.signers)],c=[...this.instructionTypes,...o.map(u=>u.instructionTypes).flat()];return s.forEach(async(u,l)=>{u.sign(a[l])}),{builder:this,transactions:s,signers:a,instructionTypes:c,buildProps:r,execute:async u=>{var w;let{sequentially:l,onTxUpdate:f,recentBlockHash:m,skipPreflight:g=!0}=u||{};if(m&&s.forEach(p=>p.message.recentBlockhash=m),we(s),(w=this.owner)!=null&&w.isKeyPair){let{lastValidBlockHeight:p,blockhash:P}=await this.connection.getLatestBlockhash();if(s.forEach((d,y)=>{a[y].find(h=>h.publicKey.equals(this.owner.publicKey))||d.sign([this.owner.signer])}),l){let d=[];for(let y of s){let h=await this.connection.sendTransaction(y,{skipPreflight:g}),{lastValidBlockHeight:T,blockhash:x}=await this.connection.getLatestBlockhash();await this.connection.confirmTransaction({blockhash:x,lastValidBlockHeight:T,signature:h},"confirmed"),d.push(h)}return{txIds:d,signedTxs:s}}return{txIds:await Promise.all(s.map(async d=>{let y=await this.connection.sendTransaction(d,{skipPreflight:g});return await this.connection.confirmTransaction({blockhash:P,lastValidBlockHeight:p,signature:y},"confirmed"),y})),signedTxs:s}}if(this.signAllTransactions){let p=await this.signAllTransactions(s);if(l){let P=0,d=[],y=async()=>{if(!p[P])return;let h=await this.connection.sendTransaction(p[P],{skipPreflight:g});d.push({txId:h,status:"sent",signedTx:p[P]}),f==null||f([...d]),P++,this.connection.onSignature(h,T=>{let x=d.findIndex(C=>C.txId===h);x>-1&&(d[x].status=T.err?"error":"success"),f==null||f([...d]),T.err||y()},"processed"),this.connection.getSignatureStatus(h)};return y(),{txIds:[],signedTxs:p}}else{let P=[];for(let d=0;d<p.length;d+=1){let y=await this.connection.sendTransaction(p[d],{skipPreflight:g});P.push(y)}return{txIds:P,signedTxs:p}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){let u=t||{},{computeBudgetConfig:n}=u,r=ae(u,["computeBudgetConfig"]),i=n?tt(n):{instructions:[],instructionTypes:[]},o=this.signers.reduce((l,f)=>$(V({},l),{[f.publicKey.toBase58()]:f}),{}),s=[],a=[],c=[];if(this.allInstructions.forEach(l=>{let f=[...c,l],m=n?[...i.instructions,...f]:f,w=[...new Set(f.map(p=>p.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(p=>new ve(p));if(c.length<12&&Ke({instructions:m,payer:this.feePayer,signers:w})||Ke({instructions:f,payer:this.feePayer,signers:w}))c.push(l);else{if(c.length===0)throw Error("item ins too big");Ke({instructions:n?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:w})?s.push(new Oe().add(...i.instructions,...c)):s.push(new Oe().add(...c)),a.push(Array.from(new Set(c.map(p=>p.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat())).map(p=>o[p]).filter(p=>p!==void 0)),c=[l]}}),c.length>0){let f=[...new Set(c.map(m=>m.keys.filter(g=>g.isSigner).map(g=>g.pubkey.toString())).flat()).values()].map(m=>o[m]).filter(m=>m!==void 0);Ke({instructions:n?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:f.map(m=>m.publicKey)})?s.push(new Oe().add(...i.instructions,...c)):s.push(new Oe().add(...c)),a.push(f)}return s.forEach(l=>l.feePayer=this.feePayer),{builder:this,transactions:s,signers:a,instructionTypes:this.instructionTypes,execute:async l=>{var P;let{sequentially:f,onTxUpdate:m,recentBlockHash:g,skipPreflight:w=!0}=l||{},p=g!=null?g:await Be(this.connection);if(s.forEach(async(d,y)=>{d.recentBlockhash=p,a[y].length&&d.sign(...a[y])}),we(s),(P=this.owner)!=null&&P.isKeyPair){if(f){let d=[];for(let y of s){let h=await _e(this.connection,y,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});d.push(h)}return{txIds:d,signedTxs:s}}return{txIds:await Promise.all(s.map(async(d,y)=>await _e(this.connection,d,a[y].find(h=>h.publicKey.equals(this.owner.publicKey))?a[y]:[...a[y],this.owner.signer],{skipPreflight:w}))),signedTxs:s}}if(this.signAllTransactions){let d=await this.signAllTransactions(s);if(f){let y=0,h=[],T=async()=>{if(!d[y])return;let x=await this.connection.sendRawTransaction(d[y].serialize(),{skipPreflight:w});h.push({txId:x,status:"sent",signedTx:d[y]}),m==null||m([...h]),y++,this.connection.onSignature(x,C=>{let L=h.findIndex(M=>M.txId===x);L>-1&&(h[L].status=C.err?"error":"success"),m==null||m([...h]),C.err||T()},"processed"),this.connection.getSignatureStatus(x)};return await T(),{txIds:h.map(x=>x.txId),signedTxs:d}}else{let y=[];for(let h=0;h<d.length;h+=1){let T=await this.connection.sendRawTransaction(d[h].serialize(),{skipPreflight:w});y.push(T)}return{txIds:y,signedTxs:d}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(t){let P=t||{},{computeBudgetConfig:n,lookupTableCache:r={},lookupTableAddress:i=[]}=P,o=ae(P,["computeBudgetConfig","lookupTableCache","lookupTableAddress"]),s=V(V({},this.cluster==="devnet"?{}:rt),r),a=Array.from(new Set([...this.lookupTableAddress,...i])),c=[];for(let d of a)s[d]===void 0&&c.push(new ve(d));let u=await Bt({connection:this.connection,address:c});for(let[d,y]of Object.entries(u))s[d]=y;let l=n?tt(n):{instructions:[],instructionTypes:[]},f=await Be(this.connection),m=this.signers.reduce((d,y)=>$(V({},d),{[y.publicKey.toBase58()]:y}),{}),g=[],w=[],p=[];if(this.allInstructions.forEach(d=>{let y=[...p,d],h=n?[...l.instructions,...y]:y;if(p.length<12&&De({instructions:h,payer:this.feePayer,lookupTableAddressAccount:s})||De({instructions:y,payer:this.feePayer,lookupTableAddressAccount:s}))p.push(d);else{if(p.length===0)throw Error("item ins too big");let T={};for(let x of[...new Set(a)])s[x]!==void 0&&(T[x]=s[x]);if(n&&De({instructions:[...l.instructions,...p],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:f})){let x=new Fe({payerKey:this.feePayer,recentBlockhash:f,instructions:[...l.instructions,...p]}).compileToV0Message(Object.values(s));g.push(new We(x))}else{let x=new Fe({payerKey:this.feePayer,recentBlockhash:f,instructions:[...p]}).compileToV0Message(Object.values(s));g.push(new We(x))}w.push(Array.from(new Set(p.map(x=>x.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat())).map(x=>m[x]).filter(x=>x!==void 0)),p=[d]}}),p.length>0){let y=[...new Set(p.map(h=>h.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(h=>m[h]).filter(h=>h!==void 0);if(n&&De({instructions:[...l.instructions,...p],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:f})){let h=new Fe({payerKey:this.feePayer,recentBlockhash:f,instructions:[...l.instructions,...p]}).compileToV0Message(Object.values(s));g.push(new We(h))}else{let h=new Fe({payerKey:this.feePayer,recentBlockhash:f,instructions:[...p]}).compileToV0Message(Object.values(s));g.push(new We(h))}w.push(y)}return{builder:this,transactions:g,buildProps:t,signers:w,instructionTypes:this.instructionTypes,execute:async d=>{var C;let{sequentially:y,onTxUpdate:h,recentBlockHash:T,skipPreflight:x=!0}=d||{};if(g.map(async(L,M)=>{w[M].length&&L.sign(w[M]),T&&(L.message.recentBlockhash=T)}),we(g),(C=this.owner)!=null&&C.isKeyPair){let{lastValidBlockHeight:L,blockhash:M}=await this.connection.getLatestBlockhash();if(g.forEach((N,F)=>{w[F].find(I=>I.publicKey.equals(this.owner.publicKey))||N.sign([this.owner.signer])}),y){let N=[];for(let F of g){let I=await this.connection.sendTransaction(F,{skipPreflight:x}),{lastValidBlockHeight:G,blockhash:H}=await this.connection.getLatestBlockhash();await this.connection.confirmTransaction({blockhash:H,lastValidBlockHeight:G,signature:I},"confirmed"),N.push(I)}return{txIds:N,signedTxs:g}}return{txIds:await Promise.all(g.map(async N=>{let F=await this.connection.sendTransaction(N,{skipPreflight:x});return await this.connection.confirmTransaction({blockhash:M,lastValidBlockHeight:L,signature:F},"confirmed"),F})),signedTxs:g}}if(this.signAllTransactions){let L=await this.signAllTransactions(g);if(y){let M=0,N=[],F=async()=>{if(!L[M])return;let I=await this.connection.sendTransaction(L[M],{skipPreflight:x});N.push({txId:I,status:"sent",signedTx:L[M]}),h==null||h([...N]),M++,this.connection.onSignature(I,G=>{let H=N.findIndex(J=>J.txId===I);H>-1&&(N[H].status=G.err?"error":"success"),h==null||h([...N]),G.err||F()},"processed"),this.connection.getSignatureStatus(I)};return F(),{txIds:[],signedTxs:L}}else{let M=[];for(let N=0;N<L.length;N+=1){let F=await this.connection.sendTransaction(L[N],{skipPreflight:x});M.push(F)}return{txIds:M,signedTxs:L}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}};var kt=(...e)=>e.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),Ve=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=Y(n)}createTxBuilder(t){return this.scope.checkOwner(),new it({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(kt(t))}logInfo(...t){this.logger.info(kt(t))}logAndCreateError(...t){let n=kt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var ci=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),li=Buffer.from("amm_config","utf8"),fi=Buffer.from("pool","utf8"),mi=Buffer.from("pool_lp_mint","utf8"),pi=Buffer.from("pool_vault","utf8"),di=Buffer.from("observation","utf8");function gi(e){return le([ci],e)}function hi(e,t){return le([li,wi(t)],e)}function bi(e,t,n,r){return le([fi,t.toBuffer(),n.toBuffer(),r.toBuffer()],e)}function yi(e,t){return le([mi,t.toBuffer()],e)}function Pn(e,t,n){return le([pi,t.toBuffer(),n.toBuffer()],e)}function ot(e,t){return le([di,t.toBuffer()],e)}function wi(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e,!1),new Uint8Array(t)}function Tn({programId:e,mintA:t,mintB:n}){let r=hi(e,0).publicKey,i=gi(e).publicKey,o=bi(e,r,t,n).publicKey,s=yi(e,o).publicKey,a=Pn(e,o,t).publicKey,c=Pn(e,o,n).publicKey,u=ot(e,o).publicKey;return{poolId:o,configId:r,authority:i,lpMint:s,vaultA:a,vaultB:c,observationId:u}}import{TransactionInstruction as qe}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Nt,TOKEN_2022_PROGRAM_ID as Nn,ASSOCIATED_TOKEN_PROGRAM_ID as Ni}from"@solana/spl-token";import{PublicKey as Ci}from"@solana/web3.js";import Cn,{isBN as In}from"bn.js";import{bits as Tu,BitStructure as xu,blob as Pi,Blob as Au,cstr as Bu,f32 as ku,f32be as Su,f64 as Cu,f64be as Iu,greedy as Lu,Layout as Ti,ns64 as Nu,ns64be as Mu,nu64 as Eu,nu64be as Ku,offset as Du,s16 as Ru,s16be as vu,s24 as _u,s24be as Ou,s32 as Fu,s32be as Wu,s40 as Vu,s40be as qu,s48 as Uu,s48be as Gu,s8 as Hu,seq as xi,struct as ju,Structure as Ai,u16 as Bi,u16be as Zu,u24 as zu,u24be as Yu,u32 as Ju,u32be as Xu,u40 as Qu,u40be as $u,u48 as ec,u48be as tc,u8 as ki,UInt as Si,union as nc,Union as rc,unionLayoutDiscriminator as ic,utf8 as oc}from"@solana/buffer-layout";var St=Ti,xn=Ai;var An=Si;var Bn=ki,kn=Bi;var Sn=xi;var Se=Pi;var Ct=class extends St{constructor(n,r,i){super(n,i);this.blob=Se(n),this.signed=r}decode(n,r=0){let i=new Cn(this.blob.decode(n,r),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(n,r,i=0){return typeof n=="number"&&(n=new Cn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,i)}};function Pe(e){return new An(1,e)}function _(e){return new Ct(8,!1,e)}var st=class extends St{constructor(n,r,i,o){super(n.span,o);this.layout=n,this.decoder=r,this.encoder=i}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,i){return this.layout.encode(this.encoder(n),r,i)}getSpan(n,r){return this.layout.getSpan(n,r)}};function ee(e){return new st(Se(32),t=>new Ci(t),t=>t.toBuffer(),e)}function Ln(e){return new st(Bn(),Ii,Li,e)}function Ii(e){if(e===0)return!1;if(e===1)return!0;throw new Error("Invalid bool: "+e)}function Li(e){return e?1:0}var It=class extends xn{decode(t,n){return super.decode(t,n)}};function fe(e,t,n){return new It(e,t,n)}function Lt(e,t,n){let r,i=typeof t=="number"?t:In(t)?t.toNumber():new Proxy(t,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=In(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 Sn(e,i,n)}var Mi=Y("Raydium_cpmm"),Ue={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 Mn(e,t,n,r,i,o,s,a,c,u,l,f,m,g,w,p,P,d,y,h){let T=fe([_("amountMaxA"),_("amountMaxB"),_("openTime")]),x=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,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:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:P,isSigner:!1,isWritable:!0},{pubkey:Nt,isSigner:!1,isWritable:!1},{pubkey:w,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:Ni,isSigner:!1,isWritable:!1},{pubkey:en,isSigner:!1,isWritable:!1},{pubkey:$t,isSigner:!1,isWritable:!1}],C=Buffer.alloc(T.span);return T.encode({amountMaxA:d,amountMaxB:y,openTime:h},C),new qe({keys:x,programId:e,data:Buffer.from([...Ue.initialize,...C])})}function En(e,t,n,r,i,o,s,a,c,u,l,f,m,g,w){let p=fe([_("lpAmount"),_("amountMaxA"),_("amountMaxB")]),P=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,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:c,isSigner:!1,isWritable:!0},{pubkey:Nt,isSigner:!1,isWritable:!1},{pubkey:Nn,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!0}],d=Buffer.alloc(p.span);return Mi.debug("cpmm deposit data",{lpAmount:m.toString(),amountMaxA:g.toString(),amountMaxB:w.toString()}),p.encode({lpAmount:m,amountMaxA:g,amountMaxB:w},d),new qe({keys:P,programId:e,data:Buffer.from([...Ue.deposit,...d])})}function Kn(e,t,n,r,i,o,s,a,c,u,l,f,m,g,w){let p=fe([_("lpAmount"),_("amountMinA"),_("amountMinB")]),P=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,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:c,isSigner:!1,isWritable:!0},{pubkey:Nt,isSigner:!1,isWritable:!1},{pubkey:Nn,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:Qt,isSigner:!1,isWritable:!1}],d=Buffer.alloc(p.span);return p.encode({lpAmount:m,amountMinA:g,amountMinB:w},d),new qe({keys:P,programId:e,data:Buffer.from([...Ue.withdraw,...d])})}function Dn(e,t,n,r,i,o,s,a,c,u,l,f,m,g,w,p){let P=fe([_("amountIn"),_("amounOutMin")]),d=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,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:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!0}],y=Buffer.alloc(P.span);return P.encode({amountIn:w,amounOutMin:p},y),new qe({keys:d,programId:e,data:Buffer.from([...Ue.swapBaseInput,...y])})}function Rn(e,t,n,r,i,o,s,a,c,u,l,f,m,g,w,p){let P=fe([_("amountInMax"),_("amountOut")]),d=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,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:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!0}],y=Buffer.alloc(P.span);return P.encode({amountInMax:w,amountOut:p},y),new qe({keys:d,programId:e,data:Buffer.from([...Ue.swapBaseOutput,...y])})}import Z from"bn.js";var vn=fe([Se(8),Pe("bump"),Ln("disableCreatePool"),kn("index"),_("tradeFeeRate"),_("protocolFeeRate"),_("fundFeeRate"),_("createPoolFee"),ee("protocolOwner"),ee("fundOwner"),Lt(_(),16)]),_n=fe([Se(8),ee("configId"),ee("poolCreator"),ee("vaultA"),ee("vaultB"),ee("mintLp"),ee("mintA"),ee("mintB"),ee("mintProgramA"),ee("mintProgramB"),ee("observationId"),Pe("bump"),Pe("status"),Pe("lpDecimals"),Pe("mintDecimalA"),Pe("mintDecimalB"),_("lpAmount"),_("protocolFeesMintA"),_("protocolFeesMintB"),_("fundFeesMintA"),_("fundFeesMintB"),_("openTime"),Lt(_(),32)]);var Mt=class extends Ve{constructor(t){super(t)}async load(){this.checkDisabled()}async getCpmmPoolKeys(t){return(await this.scope.api.fetchPoolKeysById({idList:[t]}))[0]}async getRpcPoolInfo(t,n){let r=await this.scope.connection.getAccountInfo(new B(t));if(!r)throw new Error(`pool not found: ${t}`);let i=_n.decode(r.data),[o,s]=await this.scope.connection.getMultipleAccountsInfo([i.vaultA,i.vaultB]);if(!o)throw new Error(`pool vaultA info not found: ${i.vaultA.toBase58()}`);if(!s)throw new Error(`pool vaultB info not found: ${i.vaultB.toBase58()}`);let a;if(n){let c=await this.scope.connection.getAccountInfo(i.configId);c&&(a=vn.decode(c.data))}return $(V({},i),{baseReserve:new Z(On.decode(o.data).amount.toString()).sub(i.protocolFeesMintA).sub(i.fundFeesMintA),quoteReserve:new Z(On.decode(s.data).amount.toString()).sub(i.protocolFeesMintB).sub(i.fundFeesMintB),configInfo:a})}async createPool(l){var f=l,{programId:t,poolFeeAccount:n,startTime:r,ownerInfo:i,associatedOnly:o=!1,checkCreateATAOwner:s=!1,txVersion:a,computeBudgetConfig:c}=f,u=ae(f,["programId","poolFeeAccount","startTime","ownerInfo","associatedOnly","checkCreateATAOwner","txVersion","computeBudgetConfig"]);var G,H,J;let m=i.feePayer||((G=this.scope.owner)==null?void 0:G.publicKey),g=new Z(new B(u.mintA.address).toBuffer()).lte(new Z(new B(u.mintB.address).toBuffer())),[w,p]=g?[u.mintA,u.mintB]:[u.mintB,u.mintA],[P,d]=g?[u.mintAAmount,u.mintBAmount]:[u.mintBAmount,u.mintAAmount],y=i.useSOLBalance&&w.address===at.toBase58(),h=i.useSOLBalance&&p.address===at.toBase58(),[T,x]=[new B(w.address),new B(p.address)],C=this.createTxBuilder(),{account:L,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({mint:T,tokenProgram:w.programId,owner:this.scope.ownerPubKey,createInfo:y?{payer:m,amount:P}:void 0,notUseTokenAccount:y,skipCloseAccount:!y,associatedOnly:y?!1:o,checkCreateATAOwner:s});C.addInstruction(M||{});let{account:N,instructionParams:F}=await this.scope.account.getOrCreateTokenAccount({mint:new B(p.address),tokenProgram:p.programId,owner:this.scope.ownerPubKey,createInfo:h?{payer:m,amount:d}:void 0,notUseTokenAccount:h,skipCloseAccount:!h,associatedOnly:h?!1:o,checkCreateATAOwner:s});if(C.addInstruction(F||{}),L===void 0||N===void 0)throw Error("you don't has some token account");let I=Tn({programId:t,mintA:T,mintB:x});return C.addInstruction({instructions:[Mn(t,this.scope.ownerPubKey,I.configId,I.authority,I.poolId,T,x,I.lpMint,L,N,bn(this.scope.ownerPubKey,I.lpMint).publicKey,I.vaultA,I.vaultB,n,new B((H=w.programId)!=null?H:be),new B((J=p.programId)!=null?J:be),I.observationId,P,d,r)],instructionTypes:[ce.CpmmCreatePool]}),C.addCustomComputeBudget(c),C.versionBuild({txVersion:a,extInfo:{address:$(V({},I),{mintA:w,mintB:p,programId:t,poolFeeAccount:n})}})}async addLiquidity(t){let{poolInfo:n,inputAmount:r,baseIn:i,slippage:o,computeResult:s,computeBudgetConfig:a,config:c,txVersion:u}=t;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region"),r.isZero()&&this.logAndCreateError("amounts must greater than zero","amountInA",{amountInA:r.toString()});let{account:l}=this.scope,{bypassAssociatedCheck:f,checkCreateATAOwner:m}=V({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},c),g=await this.getRpcPoolInfo(n.id),{liquidity:w,inputAmountFee:p,anotherAmount:P}=s||this.computePairAmount({poolInfo:$(V({},n),{mintAmountA:new re(g.baseReserve.toString()).div(10**n.mintA.decimals).toNumber(),mintAmountB:new re(g.quoteReserve.toString()).div(10**n.mintB.decimals).toNumber(),lpAmount:new re(g.lpAmount.toString()).div(10**n.lpMint.decimals).toNumber()}),slippage:new se(0),baseIn:i,epochInfo:await this.scope.fetchEpochInfo(),amount:new re(r.toString()).div(10**(i?n.mintA.decimals:n.mintB.decimals))}),d=P.amount,y=n.mintA.address===at.toString(),h=n.mintB.address===at.toString(),T=this.createTxBuilder(),[x,C]=[new B(n.mintA.address),new B(n.mintB.address)],{account:L,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:n.mintA.programId,mint:new B(n.mintA.address),owner:this.scope.ownerPubKey,createInfo:y||(i?r:d).isZero()?{payer:this.scope.ownerPubKey,amount:i?r:d}:void 0,skipCloseAccount:!y,notUseTokenAccount:y,associatedOnly:!1,checkCreateATAOwner:m});T.addInstruction(M||{});let{account:N,instructionParams:F}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:n.mintB.programId,mint:new B(n.mintB.address),owner:this.scope.ownerPubKey,createInfo:h||(i?d:r).isZero()?{payer:this.scope.ownerPubKey,amount:i?d:r}:void 0,skipCloseAccount:!h,notUseTokenAccount:h,associatedOnly:!1,checkCreateATAOwner:m});T.addInstruction(F||{}),!L&&!N&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",l.tokenAccounts);let I=await l.getCreatedTokenAccount({mint:new B(n.lpMint.address)}),R=await l.handleTokenAccount({side:"out",amount:0,mint:new B(n.lpMint.address),tokenAccount:I,bypassAssociatedCheck:f,checkCreateATAOwner:m}),{tokenAccount:G}=R,H=ae(R,["tokenAccount"]);T.addInstruction(H);let J=await this.getCpmmPoolKeys(n.id),U=new se(new Z(1)).sub(o);return T.addInstruction({instructions:[En(new B(n.programId),this.scope.ownerPubKey,new B(J.authority),new B(n.id),G,L,N,new B(J.vault.A),new B(J.vault.B),x,C,new B(n.lpMint.address),s?s==null?void 0:s.liquidity:U.mul(w).quotient,i?p.amount:d,i?d:p.amount)],instructionTypes:[ce.CpmmAddLiquidity],lookupTableAddress:J.lookupTableAccount?[J.lookupTableAccount]:[]}),T.addCustomComputeBudget(a),T.versionBuild({txVersion:u})}async withdrawLiquidity(t){var G,H;let{poolInfo:n,lpAmount:r,slippage:i,computeBudgetConfig:o,txVersion:s}=t;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region");let a=new se(new Z(1)).sub(i),c=await this.getRpcPoolInfo(n.id),[u,l]=[a.mul(r.mul(c.baseReserve).div(c.lpAmount)).quotient,a.mul(r.mul(c.quoteReserve).div(c.lpAmount)).quotient],f=await this.scope.fetchEpochInfo(),[m,g]=[ke(u,n.mintA.extensions.feeConfig,f,!0),ke(l,n.mintB.extensions.feeConfig,f,!0)],{account:w}=this.scope,p=this.createTxBuilder(),[P,d]=[new B(n.mintA.address),new B(n.mintB.address)],y=P.equals(Le),h=d.equals(Le),T,x,{account:C,instructionParams:L}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:n.mintA.programId,mint:new B(n.mintA.address),notUseTokenAccount:y,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!y,associatedOnly:!y,checkCreateATAOwner:!1});T=C,L&&p.addInstruction(L);let{account:M,instructionParams:N}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:n.mintB.programId,mint:new B(n.mintB.address),notUseTokenAccount:h,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!h,associatedOnly:!h,checkCreateATAOwner:!1});x=M,N&&p.addInstruction(N),(!T||!x)&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",w.tokenAccounts);let F=await w.getCreatedTokenAccount({mint:new B(n.lpMint.address)});F||this.logAndCreateError("cannot found lp token account","tokenAccounts",w.tokenAccounts);let I=await this.getCpmmPoolKeys(n.id);return p.addInstruction({instructions:[Kn(new B(n.programId),this.scope.ownerPubKey,new B(I.authority),new B(n.id),F,T,x,new B(I.vault.A),new B(I.vault.B),P,d,new B(n.lpMint.address),r,u.sub((G=m.fee)!=null?G:new Z(0)),l.sub((H=g.fee)!=null?H:new Z(0)))],instructionTypes:[ce.CpmmWithdrawLiquidity],lookupTableAddress:I.lookupTableAccount?[I.lookupTableAccount]:[]}),p.addCustomComputeBudget(o),p.versionBuild({txVersion:s})}async swap(t){var T,x,M,N,F,I;let{poolInfo:n,baseIn:r,swapResult:i,config:o,computeBudgetConfig:s,txVersion:a}=t,{bypassAssociatedCheck:c,checkCreateATAOwner:u}=V({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},o),l=this.createTxBuilder(),[f,m]=[new B(n.mintA.address),new B(n.mintB.address)],g=await this.scope.account.getCreatedTokenAccount({programId:new B((T=n.mintA.programId)!=null?T:be),mint:f,associatedOnly:!1}),w=await this.scope.account.getCreatedTokenAccount({programId:new B((x=n.mintB.programId)!=null?x:be),mint:m,associatedOnly:!1}),C=await this.scope.account.handleTokenAccount({side:r?"in":"out",amount:r?i.sourceAmountSwapped:i.destinationAmountSwapped,mint:f,tokenAccount:g,bypassAssociatedCheck:c,checkCreateATAOwner:u}),{tokenAccount:p}=C,P=ae(C,["tokenAccount"]);l.addInstruction(P);let L=await this.scope.account.handleTokenAccount({side:r?"out":"in",amount:r?i.destinationAmountSwapped:i.sourceAmountSwapped,mint:m,tokenAccount:w,bypassAssociatedCheck:c,checkCreateATAOwner:u}),{tokenAccount:d}=L,y=ae(L,["tokenAccount"]);l.addInstruction(y),!p&&!d&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",this.scope.account.tokenAccounts);let h=await this.getCpmmPoolKeys(n.id);return l.addInstruction({instructions:[r?Dn(new B(n.programId),this.scope.ownerPubKey,new B(h.authority),new B(h.config.id),new B(n.id),p,d,new B(h.vault.A),new B(h.vault.B),new B((M=n.mintA.programId)!=null?M:be),new B((N=n.mintB.programId)!=null?N:be),f,m,ot(new B(n.programId),new B(n.id)).publicKey,i.sourceAmountSwapped,i.destinationAmountSwapped):Rn(new B(n.programId),this.scope.ownerPubKey,new B(h.authority),new B(h.config.id),new B(n.id),d,p,new B(h.vault.B),new B(h.vault.A),new B((F=n.mintB.programId)!=null?F:be),new B((I=n.mintA.programId)!=null?I:be),m,f,ot(new B(n.programId),new B(n.id)).publicKey,i.sourceAmountSwapped,i.destinationAmountSwapped)],instructionTypes:[r?ce.CpmmSwapBaseIn:ce.CpmmSwapBaseOut]}),l.addCustomComputeBudget(s),l.versionBuild({txVersion:a})}computePairAmount({poolInfo:t,amount:n,slippage:r,epochInfo:i,baseIn:o}){var y,h,T,x,C,L,M,N;let s=1-Number(r.toSignificant())/100,a=new Z(new re(n).mul(10**t[o?"mintA":"mintB"].decimals).mul(s).toFixed(0)),c=ke(a,t[o?"mintA":"mintB"].extensions.feeConfig,i,!1),u=a.sub((y=c.fee)!=null?y:new Z(0)),[l,f]=[new Z(new re(t.mintAmountA).mul(10**t.mintA.decimals).toString()),new Z(new re(t.mintAmountB).mul(10**t.mintB.decimals).toString())],m=new Z(new re(t.lpAmount).mul(10**t.lpMint.decimals).toFixed(0,re.ROUND_DOWN));this.logDebug("baseReserve:",l.toString(),"quoteReserve:",f.toString()),this.logDebug("tokenIn:",o?t.mintA.symbol:t.mintB.symbol,"amountIn:",a.toString(),"amountInFee:",(T=(h=c.fee)==null?void 0:h.toString())!=null?T:0,"anotherToken:",o?t.mintB.symbol:t.mintA.symbol,"slippage:",`${r.toSignificant()}%`);let g=o?"base":"quote";this.logDebug("input side:",g);let w=u.mul(m).div(g==="base"?l:f),p={amount:Pt,fee:void 0,expirationTime:void 0};u.isZero()||(p=ke(Ei(w,l,f,m)[o?"amountB":"amountA"],t[o?"mintB":"mintA"].extensions.feeConfig,i,!0));let P=new se(new Z(1)).add(r),d=ke(P.mul(p.amount.sub((x=p.fee)!=null?x:new Z(0))).quotient,t[o?"mintB":"mintA"].extensions.feeConfig,i,!0);return this.logDebug("anotherAmount:",p.amount.toString(),"anotherAmountFee:",(L=(C=p.fee)==null?void 0:C.toString())!=null?L:0,"maxAnotherAmount:",d.amount.toString(),"maxAnotherAmountFee:",(N=(M=d.fee)==null?void 0:M.toString())!=null?N:0),{inputAmountFee:c,anotherAmount:p,maxAnotherAmount:d,liquidity:w}}};function Ei(e,t,n,r){let i=e.mul(t).div(r);!i.isZero()&&!e.mul(t).mod(r).isZero()&&(i=i.add(new Z(1)));let o=e.mul(n).div(r);return!o.isZero()&&!e.mul(n).mod(r).isZero()&&(o=o.add(new Z(1))),{amountA:i,amountB:o}}export{Mt as default};
2
2
  //# sourceMappingURL=cpmm.mjs.map