UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 77.3 kB
var In=Object.defineProperty,Bn=Object.defineProperties;var Ln=Object.getOwnPropertyDescriptors;var Ve=Object.getOwnPropertySymbols;var Vt=Object.prototype.hasOwnProperty,Wt=Object.prototype.propertyIsEnumerable;var Kt=(e,t,n)=>t in e?In(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,G=(e,t)=>{for(var n in t||(t={}))Vt.call(t,n)&&Kt(e,n,t[n]);if(Ve)for(var n of Ve(t))Wt.call(t,n)&&Kt(e,n,t[n]);return e},J=(e,t)=>Bn(e,Ln(t));var We=(e,t)=>{var n={};for(var r in e)Vt.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Ve)for(var r of Ve(e))t.indexOf(r)<0&&Wt.call(e,r)&&(n[r]=e[r]);return n};import{PublicKey as Fe}from"@solana/web3.js";import An from"bn.js";import{PublicKey as k}from"@solana/web3.js";var ci=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),li=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),fi=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),mi=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),pi=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),di=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),gi=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),hi=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),bi=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),yi=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),wi=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ti=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),xi=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Pi=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Si=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ai=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Cn=new k("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Nn=new k("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Rn=new k("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Mn=new k("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),ki=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ii=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Bi=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Li=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ci=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ni=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Ri=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Mi=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Di=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),_i=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Ei=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),Ae={IDO_PROGRAM_ID_V1:Cn,IDO_PROGRAM_ID_V2:Nn,IDO_PROGRAM_ID_V3:Rn,IDO_PROGRAM_ID_V4:Mn};var vi={OPEN_BOOK_PROGRAM:new k("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new k("Ray1111111111111111111111111111111111111111"),AMM_V4:new k("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new k("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new k("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new k("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new k("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new k("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new k("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new k("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:k.default,Router:new k("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new k("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new k("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new k("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new k("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new k("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new k("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new k("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new k("Ray1111111111111111111111111111111111111111")};import{PublicKey as U,SystemProgram as Ut,SYSVAR_RENT_PUBKEY as Dn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as _n}from"@solana/spl-token";function at({pubkey:e,isSigner:t=!1,isWritable:n=!0}){return{pubkey:e,isWritable:n,isSigner:t}}var Wi=[at({pubkey:_n,isWritable:!1}),at({pubkey:Ut.programId,isWritable:!1}),at({pubkey:Dn,isWritable:!1})];function qt({publicKey:e,transformSol:t}){let n=ut(e.toString());if(n instanceof U)return t&&n.equals(ke)?ge:n;if(t&&n.toString()===ke.toBase58())return ge;if(typeof n=="string"){if(n===U.default.toBase58())return U.default;try{return new U(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function ut(e){try{return new U(e)}catch{return e}}var Ui=new U("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),qi=new U("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Gt=new U("SysvarRent111111111111111111111111111111111"),ct=new U("SysvarC1ock11111111111111111111111111111111"),Gi=new U("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Hi=new U("Sysvar1nstructions1111111111111111111111111"),Ht=Ut.programId,ji=new U("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Zi=new U("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),zi=new U("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Yi=new U("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ji=new U("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Xi=new U("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Qi=new U("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),$i=new U("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),eo=new U("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),to=new U("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),no=new U("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ge=new U("So11111111111111111111111111111111111111112"),ke=U.default;import{PublicKey as $r}from"@solana/web3.js";import ei from"bn.js";import Jr from"big.js";import rt from"bn.js";import ie from"bn.js";var he=9e15,ue=1e9,lt="0123456789abcdef",qe="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Ge="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",ft={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-he,maxE:he,crypto:!1},Yt,te,L=!0,je="[DecimalError] ",ae=je+"Invalid argument: ",Jt=je+"Precision limit exceeded",Xt=je+"crypto unavailable",Qt="[object Decimal]",j=Math.floor,q=Math.pow,En=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,vn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,On=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,$t=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Q=1e7,I=7,Fn=9007199254740991,Kn=qe.length-1,mt=Ge.length-1,p={toStringTag:Qt};p.absoluteValue=p.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),A(e)};p.ceil=function(){return A(new this.constructor(this),this.e+1,2)};p.clampedTo=p.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(ae+t);return n=r.cmp(e),n<0?e:r.cmp(t)>0?t:new i(r)};p.comparedTo=p.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};p.cosine=p.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())+I,r.rounding=1,n=Vn(r,on(r,n)),r.precision=e,r.rounding=t,A(te==2||te==3?n.neg():n,e,t,!0)):new r(1):new r(NaN)};p.cubeRoot=p.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(L=!1,o=l.s*q(l.s*l,1/3),!o||Math.abs(o)==1/0?(n=H(l.d),e=l.e,(o=(e-n.length+1)%3)&&(n+=o==1||o==-2?"0":"00"),o=q(n,1/3),e=j((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),H(a.d).slice(0,s)===(n=H(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 L=!0,A(r,e,f.rounding,t)};p.decimalPlaces=p.dp=function(){var e,t=this.d,n=NaN;if(t){if(e=t.length-1,n=(e-j(this.e/I))*I,e=t[e],e)for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n};p.dividedBy=p.div=function(e){return V(this,new this.constructor(e))};p.dividedToIntegerBy=p.divToInt=function(e){var t=this,n=t.constructor;return A(V(t,new n(e),0,1,1),n.precision,n.rounding)};p.equals=p.eq=function(e){return this.cmp(e)===0};p.floor=function(){return A(new this.constructor(this),this.e+1,3)};p.greaterThan=p.gt=function(e){return this.cmp(e)>0};p.greaterThanOrEqualTo=p.gte=function(e){var t=this.cmp(e);return t==1||t===0};p.hyperbolicCosine=p.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/ze(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=be(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)};p.hyperbolicSine=p.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=be(o,2,i,i,!0);else{e=1.4*Math.sqrt(r),e=e>16?16:e|0,i=i.times(1/ze(5,e)),i=be(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)};p.hyperbolicTangent=p.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)};p.inverseCosine=p.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()?X(n,i,o):new n(0):new n(NaN):t.isZero()?X(n,i+4,o).times(.5):(n.precision=i+6,n.rounding=1,t=t.asin(),e=X(n,i+4,o).times(.5),n.precision=i,n.rounding=o,e.minus(t))};p.inverseHyperbolicCosine=p.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,L=!1,n=n.times(n).minus(1).sqrt().plus(n),L=!0,r.precision=e,r.rounding=t,n.ln()):new r(n)};p.inverseHyperbolicSine=p.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,L=!1,n=n.times(n).plus(1).sqrt().plus(n),L=!0,r.precision=e,r.rounding=t,n.ln())};p.inverseHyperbolicTangent=p.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)};p.inverseSine=p.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=X(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)))};p.inverseTangent=p.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<=mt)return s=X(l,f+4,m).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(f+4<=mt)return s=X(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/I+2|0),e=n;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(L=!1,t=Math.ceil(a/I),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)),L=!0,A(s,l.precision=f,l.rounding=m,!0)};p.isFinite=function(){return!!this.d};p.isInteger=p.isInt=function(){return!!this.d&&j(this.e/I)>this.d.length-2};p.isNaN=function(){return!this.s};p.isNegative=p.isNeg=function(){return this.s<0};p.isPositive=p.isPos=function(){return this.s>0};p.isZero=function(){return!!this.d&&this.d[0]===0};p.lessThan=p.lt=function(e){return this.cmp(e)<0};p.lessThanOrEqualTo=p.lte=function(e){return this.cmp(e)<1};p.logarithm=p.log=function(e){var t,n,r,i,o,s,a,c,u=this,l=u.constructor,f=l.precision,m=l.rounding,d=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(L=!1,a=f+d,s=se(u,a),r=t?He(l,a+10):se(e,a),c=V(s,r,a,1),Ie(c.d,i=f,m))do if(a+=10,s=se(u,a),r=t?He(l,a+10):se(e,a),c=V(s,r,a,1),!o){+H(c.d).slice(i+1,i+15)+1==1e14&&(c=A(c,f+1,0));break}while(Ie(c.d,i+=10,m));return L=!0,A(c,f,m)};p.minus=p.sub=function(e){var t,n,r,i,o,s,a,c,u,l,f,m,d=this,h=d.constructor;if(e=new h(e),!d.d||!e.d)return!d.s||!e.s?e=new h(NaN):d.d?e.s=-e.s:e=new h(e.d||d.s!==e.s?d:NaN),e;if(d.s!=e.s)return e.s=-e.s,d.plus(e);if(u=d.d,m=e.d,a=h.precision,c=h.rounding,!u[0]||!m[0]){if(m[0])e.s=-e.s;else if(u[0])e=new h(d);else return new h(c===3?-0:0);return L?A(e,a,c):e}if(n=j(e.e/I),l=j(d.e/I),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/I),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]=Q-1;--u[i],u[r]+=Q}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=Ze(u,n),L?A(e,a,c):e):new h(c===3?-0:0)};p.modulo=p.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):(L=!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),L=!0,n.minus(t))};p.naturalExponential=p.exp=function(){return pt(this)};p.naturalLogarithm=p.ln=function(){return se(this)};p.negated=p.neg=function(){var e=new this.constructor(this);return e.s=-e.s,A(e)};p.plus=p.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)),L?A(e,a,c):e;if(o=j(f.e/I),r=j(e.e/I),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/I),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)/Q|0,u[i]%=Q;for(t&&(u.unshift(t),++r),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=Ze(u,r),L?A(e,a,c):e};p.precision=p.sd=function(e){var t,n=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(ae+e);return n.d?(t=en(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t};p.round=function(){var e=this,t=e.constructor;return A(new t(e),e.e+1,t.rounding)};p.sine=p.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())+I,r.rounding=1,n=Un(r,on(r,n)),r.precision=e,r.rounding=t,A(te>2?n.neg():n,e,t,!0)):new r(NaN)};p.squareRoot=p.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(L=!1,u=Math.sqrt(+s),u==0||u==1/0?(t=H(a),(t.length+c)%2==0&&(t+="0"),u=Math.sqrt(t),c=j((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),H(o.d).slice(0,n)===(t=H(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 L=!0,A(r,c,l.rounding,e)};p.tangent=p.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(te==2||te==4?n.neg():n,e,t,!0)):new r(NaN)};p.times=p.mul=function(e){var t,n,r,i,o,s,a,c,u,l=this,f=l.constructor,m=l.d,d=(e=new f(e)).d;if(e.s*=l.s,!m||!m[0]||!d||!d[0])return new f(!e.s||m&&!m[0]&&!d||d&&!d[0]&&!m?NaN:!m||!d?e.s/0:e.s*0);for(n=j(l.e/I)+j(e.e/I),c=m.length,u=d.length,c<u&&(o=m,m=d,d=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]+d[r]*m[i-r-1]+t,o[i--]=a%Q|0,t=a/Q|0;o[i]=(o[i]+t)%Q|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=Ze(o,n),L?A(e,f.precision,f.rounding):e};p.toBinary=function(e,t){return gt(this,2,e,t)};p.toDecimalPlaces=p.toDP=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(z(e,0,ue),t===void 0?t=r.rounding:z(t,0,8),A(n,e+n.e+1,t))};p.toExponential=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=$(r,!0):(z(e,0,ue),t===void 0?t=i.rounding:z(t,0,8),r=A(new i(r),e+1,t),n=$(r,!0,e+1)),r.isNeg()&&!r.isZero()?"-"+n:n};p.toFixed=function(e,t){var n,r,i=this,o=i.constructor;return e===void 0?n=$(i):(z(e,0,ue),t===void 0?t=o.rounding:z(t,0,8),r=A(new o(i),e+i.e+1,t),n=$(r,!1,e+r.e+1)),i.isNeg()&&!i.isZero()?"-"+n:n};p.toFraction=function(e){var t,n,r,i,o,s,a,c,u,l,f,m,d=this,h=d.d,g=d.constructor;if(!h)return new g(d);if(u=n=new g(1),r=c=new g(0),t=new g(r),o=t.e=en(h)-d.e-1,s=o%I,t.d[0]=q(10,s<0?I+s:s),e==null)e=o>0?t:u;else{if(a=new g(e),!a.isInt()||a.lt(u))throw Error(ae+a);e=a.gt(t)?o>0?t:u:a}for(L=!1,a=new g(H(h)),l=g.precision,g.precision=o=h.length*I*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=d.s,m=V(u,r,o,1).minus(d).abs().cmp(V(c,n,o,1).minus(d).abs())<1?[u,r]:[c,n],g.precision=l,L=!0,m};p.toHexadecimal=p.toHex=function(e,t){return gt(this,16,e,t)};p.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:z(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]?(L=!1,n=V(n,e,0,t,1).times(e),L=!0,A(n)):(e.s=n.s,n=e),n};p.toNumber=function(){return+this};p.toOctal=function(e,t){return gt(this,8,e,t)};p.toPower=p.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=j(e.e/I),t>=e.d.length-1&&(n=u<0?-u:u)<=Fn)return i=tn(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)?j(u*(Math.log("0."+H(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):(L=!1,c.rounding=a.s=1,n=Math.min(12,(t+"").length),i=pt(e.times(se(a,r+n)),r),i.d&&(i=A(i,r+5,1),Ie(i.d,r,o)&&(t=r+10,i=A(pt(e.times(se(a,t+n)),t),t+5,1),+H(i.d).slice(r+1,r+15)+1==1e14&&(i=A(i,r+1,0)))),i.s=s,L=!0,c.rounding=o,A(i,r,o))};p.toPrecision=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=$(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(z(e,1,ue),t===void 0?t=i.rounding:z(t,0,8),r=A(new i(r),e,t),n=$(r,e<=r.e||r.e<=i.toExpNeg,e)),r.isNeg()&&!r.isZero()?"-"+n:n};p.toSignificantDigits=p.toSD=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(z(e,1,ue),t===void 0?t=r.rounding:z(t,0,8)),A(new r(n),e,t)};p.toString=function(){var e=this,t=e.constructor,n=$(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n};p.truncated=p.trunc=function(){return A(new this.constructor(this),this.e+1,1)};p.valueOf=p.toJSON=function(){var e=this,t=e.constructor,n=$(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n};function H(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=I-r.length,n&&(o+=oe(n)),o+=r;s=e[t],r=s+"",n=I-r.length,n&&(o+=oe(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function z(e,t,n){if(e!==~~e||e<t||e>n)throw Error(ae+e)}function Ie(e,t,n,r){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=I,i=0):(i=Math.ceil((t+1)/I),t%=I),o=q(10,I-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 Ue(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]+=lt.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 Vn(e,t){var n,r,i;if(t.isZero())return t;r=t.d.length,r<32?(n=Math.ceil(r/3),i=(1/ze(4,n)).toString()):(n=16,i="2.3283064365386962890625e-10"),e.precision+=n,t=be(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,d,h,g,b,x,P,S,y,w,T,N,B,R,O,E,_,v=r.constructor,W=r.s==i.s?1:-1,K=r.d,C=i.d;if(!K||!K[0]||!C||!C[0])return new v(!r.s||!i.s||(K?C&&K[0]==C[0]:!C)?NaN:K&&K[0]==0||!C?W*0:W/0);for(c?(d=1,l=r.e-i.e):(c=Q,d=I,l=j(r.e/d)-j(i.e/d)),E=C.length,R=K.length,x=new v(W),P=x.d=[],f=0;C[f]==(K[f]||0);f++);if(C[f]>(K[f]||0)&&l--,o==null?(T=o=v.precision,s=v.rounding):a?T=o+(r.e-i.e)+1:T=o,T<0)P.push(1),h=!0;else{if(T=T/d+2|0,f=0,E==1){for(m=0,C=C[0],T++;(f<R||m)&&T--;f++)N=m*c+(K[f]||0),P[f]=N/C|0,m=N%C|0;h=m||f<R}else{for(m=c/(C[0]+1)|0,m>1&&(C=e(C,m,c),K=e(K,m,c),E=C.length,R=K.length),B=E,S=K.slice(0,E),y=S.length;y<E;)S[y++]=0;_=C.slice(),_.unshift(0),O=C[0],C[1]>=c/2&&++O;do m=0,u=t(C,S,E,y),u<0?(w=S[0],E!=y&&(w=w*c+(S[1]||0)),m=w/O|0,m>1?(m>=c&&(m=c-1),g=e(C,m,c),b=g.length,y=S.length,u=t(g,S,b,y),u==1&&(m--,n(g,E<b?_:C,b,c))):(m==0&&(u=m=1),g=C.slice()),b=g.length,b<y&&g.unshift(0),n(S,g,y,c),u==-1&&(y=S.length,u=t(C,S,E,y),u<1&&(m++,n(S,E<y?_:C,y,c))),y=S.length):u===0&&(m++,S=[0]),P[f++]=m,u&&S[0]?S[y++]=K[B]||0:(S=[K[B]],y=1);while((B++<R||S[0]!==void 0)&&T--);h=S[0]!==void 0}P[0]||P.shift()}if(d==1)x.e=l,Yt=h;else{for(f=1,m=P[0];m>=10;m/=10)f++;x.e=f+l*d-1,A(x,a?o+x.e+1:o,s,h)}return x}}();function A(e,t,n,r){var i,o,s,a,c,u,l,f,m,d=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+=I,s=t,l=f[m=0],c=l/q(10,i-s-1)%10|0;else if(m=Math.ceil((o+1)/I),a=f.length,m>=a)if(r){for(;a++<=m;)f.push(0);l=c=0,i=1,o%=I,s=o-I+1}else break e;else{for(l=a=f[m],i=1;a>=10;a/=10)i++;o%=I,s=o-I+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,(I-t%I)%I),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,I-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]==Q&&(f[0]=1));break}else{if(f[m]+=a,f[m]!=Q)break;f[m--]=0,a=1}for(o=f.length;f[--o]===0;)f.pop()}return L&&(e.e>d.maxE?(e.d=null,e.e=NaN):e.e<d.minE&&(e.e=0,e.d=[0])),e}function $(e,t,n){if(!e.isFinite())return rn(e);var r,i=e.e,o=H(e.d),s=o.length;return t?(n&&(r=n-s)>0?o=o.charAt(0)+"."+o.slice(1)+oe(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+oe(-i-1)+o,n&&(r=n-s)>0&&(o+=oe(r))):i>=s?(o+=oe(i+1-s),n&&(r=n-i-1)>0&&(o=o+"."+oe(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-s)>0&&(i+1===s&&(o+="."),o+=oe(r))),o}function Ze(e,t){var n=e[0];for(t*=I;n>=10;n/=10)t++;return t}function He(e,t,n){if(t>Kn)throw L=!0,n&&(e.precision=n),Error(Jt);return A(new e(qe),t,1,!0)}function X(e,t,n){if(t>mt)throw Error(Jt);return A(new e(Ge),t,n,!0)}function en(e){var t=e.length-1,n=t*I+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 oe(e){for(var t="";e--;)t+="0";return t}function tn(e,t,n,r){var i,o=new e(1),s=Math.ceil(r/I+4);for(L=!1;;){if(n%2&&(o=o.times(t),Zt(o.d,s)&&(i=!0)),n=j(n/2),n===0){n=o.d.length-1,i&&o.d[n]===0&&++o.d[n];break}t=t.times(t),Zt(t.d,s)}return L=!0,o}function jt(e){return e.d[e.d.length-1]&1}function nn(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 pt(e,t){var n,r,i,o,s,a,c,u=0,l=0,f=0,m=e.constructor,d=m.rounding,h=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?(L=!1,c=h):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)),H(a.d).slice(0,c)===H(s.d).slice(0,c)){for(i=f;i--;)s=A(s.times(s),c,1);if(t==null)if(u<3&&Ie(s.d,c-r,d,u))m.precision=c+=10,n=o=a=new m(1),l=0,u++;else return A(s,m.precision=h,d,L=!0);else return m.precision=h,s}s=a}}function se(e,t){var n,r,i,o,s,a,c,u,l,f,m,d=1,h=10,g=e,b=g.d,x=g.constructor,P=x.rounding,S=x.precision;if(g.s<0||!b||!b[0]||!g.e&&b[0]==1&&b.length==1)return new x(b&&!b[0]?-1/0:g.s!=1?NaN:b?0:g);if(t==null?(L=!1,l=S):l=t,x.precision=l+=h,n=H(b),r=n.charAt(0),Math.abs(o=g.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)g=g.times(e),n=H(g.d),r=n.charAt(0),d++;o=g.e,r>1?(g=new x("0."+n),o++):g=new x(r+"."+n.slice(1))}else return u=He(x,l+2,S).times(o+""),g=se(new x(r+"."+n.slice(1)),l-h).plus(u),x.precision=S,t==null?A(g,S,P,L=!0):g;for(f=g,c=s=g=V(g.minus(1),g.plus(1),l,1),m=A(g.times(g),l,1),i=3;;){if(s=A(s.times(m),l,1),u=c.plus(V(s,new x(i),l,1)),H(u.d).slice(0,l)===H(c.d).slice(0,l))if(c=c.times(2),o!==0&&(c=c.plus(He(x,l+2,S).times(o+""))),c=V(c,new x(d),l,1),t==null)if(Ie(c.d,l-h,P,a))x.precision=l+=h,u=s=g=V(f.minus(1),f.plus(1),l,1),m=A(g.times(g),l,1),i=a=1;else return A(c,x.precision=S,P,L=!0);else return x.precision=S,c;c=u,i+=2}}function rn(e){return String(e.s*e.s/0)}function dt(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)%I,n<0&&(r+=I),r<i){for(r&&e.d.push(+t.slice(0,r)),i-=I;r<i;)e.d.push(+t.slice(r,r+=I));t=t.slice(r),r=I-t.length}else r-=i;for(;r--;)t+="0";e.d.push(+t),L&&(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 Wn(e,t){var n,r,i,o,s,a,c,u,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),$t.test(t))return dt(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(vn.test(t))n=16,t=t.toLowerCase();else if(En.test(t))n=2;else if(On.test(t))n=8;else throw Error(ae+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=tn(r,new r(n),o,o*2)),u=Ue(t,n,Q),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new r(e.s*0):(e.e=Ze(u,l),e.d=u,L=!1,s&&(e=V(e,i,a*4)),c&&(e=e.times(Math.abs(c)<54?q(2,c):Ye.pow(2,c))),L=!0,e)}function Un(e,t){var n,r=t.d.length;if(r<3)return t.isZero()?t:be(e,2,t,t);n=1.4*Math.sqrt(r),n=n>16?16:n|0,t=t.times(1/ze(5,n)),t=be(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 be(e,t,n,r,i){var o,s,a,c,u=1,l=e.precision,f=Math.ceil(l/I);for(L=!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 L=!0,s.d.length=f+1,s}function ze(e,t){for(var n=e;--t;)n*=e;return n}function on(e,t){var n,r=t.s<0,i=X(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return te=r?4:1,t;if(n=t.divToInt(i),n.isZero())te=r?3:2;else{if(t=t.minus(n.times(i)),t.lte(o))return te=jt(n)?r?2:3:r?4:1,t;te=jt(n)?r?1:4:r?3:2}return t.minus(i).abs()}function gt(e,t,n,r){var i,o,s,a,c,u,l,f,m,d=e.constructor,h=n!==void 0;if(h?(z(n,1,ue),r===void 0?r=d.rounding:z(r,0,8)):(n=d.precision,r=d.rounding),!e.isFinite())l=rn(e);else{for(l=$(e),s=l.indexOf("."),h?(i=2,t==16?n=n*4-3:t==8&&(n=n*3-2)):i=t,s>=0&&(l=l.replace(".",""),m=new d(1),m.e=l.length-s,m.d=Ue($(m),10,i),m.e=m.d.length),f=Ue(l,10,i),o=c=f.length;f[--c]==0;)f.pop();if(!f[0])l=h?"0p+0":"0";else{if(s<0?o--:(e=new d(e),e.d=f,e.e=o,e=V(e,m,n,r,0,i),f=e.d,o=e.e,u=Yt),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+=lt.charAt(f[s]);if(h){if(c>1)if(t==16||t==8){for(s=t==16?4:3,--c;c%s;c++)l+="0";for(f=Ue(l,i,t),c=f.length;!f[c-1];--c);for(s=1,l="1.";s<c;s++)l+=lt.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 Zt(e,t){if(e.length>t)return e.length=t,!0}function qn(e){return new this(e).abs()}function Gn(e){return new this(e).acos()}function Hn(e){return new this(e).acosh()}function jn(e,t){return new this(e).plus(t)}function Zn(e){return new this(e).asin()}function zn(e){return new this(e).asinh()}function Yn(e){return new this(e).atan()}function Jn(e){return new this(e).atanh()}function Xn(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=X(this,o,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?X(this,r,i):new this(0),n.s=e.s):!e.d||t.isZero()?(n=X(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=X(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 Qn(e){return new this(e).cbrt()}function $n(e){return A(e=new this(e),e.e+1,2)}function er(e,t,n){return new this(e).clamp(t,n)}function tr(e){if(!e||typeof e!="object")throw Error(je+"Object expected");var t,n,r,i=e.defaults===!0,o=["precision",1,ue,"rounding",0,8,"toExpNeg",-he,0,"toExpPos",0,he,"maxE",0,he,"minE",-he,0,"modulo",0,9];for(t=0;t<o.length;t+=3)if(n=o[t],i&&(this[n]=ft[n]),(r=e[n])!==void 0)if(j(r)===r&&r>=o[t+1]&&r<=o[t+2])this[n]=r;else throw Error(ae+n+": "+r);if(n="crypto",i&&(this[n]=ft[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(Xt);else this[n]=!1;else throw Error(ae+n+": "+r);return this}function nr(e){return new this(e).cos()}function rr(e){return new this(e).cosh()}function sn(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,zt(o)){u.s=o.s,L?!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++;L?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 dt(u,o.toString())}else if(c!=="string")throw Error(ae+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),$t.test(o)?dt(u,o):Wn(u,o)}if(i.prototype=p,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=tr,i.clone=sn,i.isDecimal=zt,i.abs=qn,i.acos=Gn,i.acosh=Hn,i.add=jn,i.asin=Zn,i.asinh=zn,i.atan=Yn,i.atanh=Jn,i.atan2=Xn,i.cbrt=Qn,i.ceil=$n,i.clamp=er,i.cos=nr,i.cosh=rr,i.div=ir,i.exp=or,i.floor=sr,i.hypot=ar,i.ln=ur,i.log=cr,i.log10=fr,i.log2=lr,i.max=mr,i.min=pr,i.mod=dr,i.mul=gr,i.pow=hr,i.random=br,i.round=yr,i.sign=wr,i.sin=Tr,i.sinh=xr,i.sqrt=Pr,i.sub=Sr,i.sum=Ar,i.tan=kr,i.tanh=Ir,i.trunc=Br,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 ir(e,t){return new this(e).div(t)}function or(e){return new this(e).exp()}function sr(e){return A(e=new this(e),e.e+1,3)}function ar(){var e,t,n=new this(0);for(L=!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 L=!0,new this(1/0);n=t}return L=!0,n.sqrt()}function zt(e){return e instanceof Ye||e&&e.toStringTag===Qt||!1}function ur(e){return new this(e).ln()}function cr(e,t){return new this(e).log(t)}function lr(e){return new this(e).log(2)}function fr(e){return new this(e).log(10)}function mr(){return nn(this,arguments,"lt")}function pr(){return nn(this,arguments,"gt")}function dr(e,t){return new this(e).mod(t)}function gr(e,t){return new this(e).mul(t)}function hr(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:z(e,1,ue),r=Math.ceil(e/I),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(Xt);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],e%=I,r&&e&&(i=q(10,I-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-=I)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<I&&(n-=I-r)}return s.e=n,s.d=a,s}function yr(e){return A(e=new this(e),e.e+1,this.rounding)}function wr(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function Tr(e){return new this(e).sin()}function xr(e){return new this(e).sinh()}function Pr(e){return new this(e).sqrt()}function Sr(e,t){return new this(e).sub(t)}function Ar(){var e=0,t=arguments,n=new this(t[e]);for(L=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return L=!0,A(n,this.precision,this.rounding)}function kr(e){return new this(e).tan()}function Ir(e){return new this(e).tanh()}function Br(e){return A(e=new this(e),e.e+1,1)}p[Symbol.for("nodejs.util.inspect.custom")]=p.toString;p[Symbol.toStringTag]="Decimal";var Ye=p.constructor=sn(ft);qe=new Ye(qe);Ge=new Ye(Ge);import{PublicKey as Lr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as an}from"@solana/spl-token";var un={chainId:101,address:Lr.default.toBase58(),programId:an.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},fe={chainId:101,address:"So11111111111111111111111111111111111111112",programId:an.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as ht}from"@solana/web3.js";var bt=class{constructor({mint:t,decimals:n,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(t===ke.toBase58()||t instanceof ht&&ke.equals(t)){this.decimals=fe.decimals,this.symbol=fe.symbol,this.name=fe.name,this.mint=new ht(fe.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?ht.default:qt({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},me=bt;me.WSOL=new bt(J(G({},fe),{mint:fe.address}));var yt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},Je=yt;Je.SOL=new yt(un);import Qe from"big.js";import _r from"bn.js";import Er from"decimal.js-light";import{get as cn,set as Cr}from"lodash";var wt=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let 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}},ln={},Nr={};function Z(e){let t=cn(ln,e);if(!t){let n=cn(Nr,e);t=new wt({name:e,logLevel:n}),Cr(ln,e,t)}return t}import Be from"bn.js";var fn=9007199254740991;function Y(e){let t=Z("Raydium_parseBigNumberish");if(e instanceof Be)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new Be(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=fn||e<=-fn)&&t.logWithError(`BigNumberish number overflow: ${e}`),new Be(String(e))):typeof e=="bigint"?new Be(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new Be(0))}import Rr from"toformat";var Mr=Rr,Le=Mr;var Xe=Z("module/fraction"),Tt=Le(Qe),Ce=Le(Er),vr={[0]:Ce.ROUND_DOWN,[1]:Ce.ROUND_HALF_UP,[2]:Ce.ROUND_UP},Or={[0]:Qe.roundDown,[1]:Qe.roundHalfUp,[2]:Qe.roundUp},F=class{constructor(t,n=new _r(1)){this.numerator=Y(t),this.denominator=Y(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new F(this.denominator,this.numerator)}add(t){let n=t instanceof F?t:new F(Y(t));return this.denominator.eq(n.denominator)?new F(this.numerator.add(n.numerator),this.denominator):new F(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof F?t:new F(Y(t));return this.denominator.eq(n.denominator)?new F(this.numerator.sub(n.numerator),this.denominator):new F(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof F?t:new F(Y(t));return new F(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof F?t:new F(Y(t));return new F(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||Xe.logWithError(`${t} is not an integer.`),t<=0&&Xe.logWithError(`${t} is not positive.`),Ce.set({precision:t+1,rounding:vr[r]});let i=new Ce(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)||Xe.logWithError(`${t} is not an integer.`),t<0&&Xe.logWithError(`${t} is negative.`),Tt.DP=t,Tt.RM=Or[r]||1,new Tt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import Fr from"bn.js";var mn=new F(new Fr(100)),ye=class extends F{toSignificant(t=5,n,r){return this.mul(mn).toSignificant(t,n,r)}toFixed(t=2,n,r){return this.mul(mn).toFixed(t,n,r)}};var Kr=Z("Raydium_price"),ne=class extends F{constructor(n){let{baseToken:r,quoteToken:i,numerator:o,denominator:s}=n;super(o,s);this.baseToken=r,this.quoteToken=i,this.scalar=new F(xt(r.decimals),xt(i.decimals))}get raw(){return new F(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new ne({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(n){this.quoteToken!==n.baseToken&&Kr.logWithError("mul token not equals");let r=super.mul(n);return new ne({baseToken:this.baseToken,quoteToken:n.quoteToken,denominator:r.denominator,numerator:r.numerator})}toSignificant(n=this.quoteToken.decimals,r,i){return this.adjusted.toSignificant(n,r,i)}toFixed(n=this.quoteToken.decimals,r,i){return this.adjusted.toFixed(n,r,i)}};var Vr=new ie(0),rs=new ie(1),is=new ie(2),os=new ie(3),ss=new ie(5),Pt=new ie(10),as=new ie(100),us=new ie(1e3),cs=new ie(1e4);function xt(e){return Pt.pow(Y(e))}import{PublicKey as Wr}from"@solana/web3.js";import{MINT_SIZE as Ts,TOKEN_PROGRAM_ID as xs,getTransferFeeConfig as Ps,unpackMint as Ss}from"@solana/spl-token";var St=Z("Raydium_accountInfo_util");async function pn(e,t,n){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}=G({batchRequest:!1},n),s=At(t,o),a=new Array(s.length).fill([]);if(r){let c=s.map(f=>{let m=e._buildArgs([f.map(d=>d.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:m}}),u=At(c,10);a=(await(await Promise.all(u.map(async f=>await e._rpcBatchRequest(f)))).flat()).map(f=>(f.error&&St.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${f.error.message}`),f.result.value.map(m=>{if(m){let{data:d,executable:h,lamports:g,owner:b,rentEpoch:x}=m;return d.length!==2&&d[1]!=="base64"&&St.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(d[0],"base64"),executable:h,lamports:g,owner:new Wr(b),rentEpoch:x}}return null})))}else try{a=await Promise.all(s.map(c=>e.getMultipleAccountsInfo(c,i)))}catch(c){c instanceof Error&&St.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}function At(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 Us}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Gs}from"@solana/spl-token";import{ComputeBudgetProgram as dn,Keypair as hn,PublicKey as Ds,Transaction as bn,TransactionMessage as Ur,VersionedTransaction as yn}from"@solana/web3.js";var Ne={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as qr}from"@solana/spl-token";var gn=Z("Raydium_txUtil"),wn=1644;function $e(e){let t=[],n=[];return e.microLamports&&(t.push(dn.setComputeUnitPrice({microLamports:e.microLamports})),n.push(Ne.SetComputeUnitPrice)),e.units&&(t.push(dn.setComputeUnitLimit({units:e.units})),n.push(Ne.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function we(e,t){var r,i;let n=t!=null?t:"confirmed";return(i=await((r=e.getLatestBlockhash)==null?void 0:r.call(e,{commitment:n})))==null?void 0:i.blockhash}async function et(e,t){return e.getSignatureStatuses([t]),new Promise((n,r)=>{let i=setTimeout(r,6e4);e.onSignature(t,o=>{if(clearTimeout(i),!o.err){n("");return}r(Object.assign(o.err,{txId:t}))},"confirmed")})}function Gr(e,t){e.length<1&&gn.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&gn.logWithError(`no signers provided:, ${t.toString()}`);let n=new bn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...e);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<wn}catch{return!1}}function Re({instructions:e,payer:t,signers:n}){return Gr(e,[t,...n])}function Me({instructions:e,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=hn.generate().publicKey.toString()}){let o=new Ur({payerKey:t,recentBlockhash:r,instructions:e}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new yn(o).serialize()).toString("base64").length<wn}catch{return!1}}var Hr=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e),jr=e=>{let t=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof yn&&(t=Hr(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function pe(e){let t=[];return e.forEach(n=>{n instanceof bn&&(n.recentBlockhash||(n.recentBlockhash=qr.toBase58()),n.feePayer||(n.feePayer=hn.generate().publicKey)),t.push(jr(n))}),console.log("simulate tx string:",t),t}import zs from"bn.js";import{PublicKey as kt,AddressLookupTableAccount as Pe}from"@solana/web3.js";async function It({connection:e,address:t,cluster:n="mainnet"}){let r=await pn(e,[...new Set(t.map(o=>o.toString()))].map(o=>new kt(o))),i={};for(let o=0;o<t.length;o++){let s=r[o],a=t[o];if(!s)continue;let c=new Pe({key:a,state:Pe.deserialize(s.data)});i[a.toString()]=c,n==="devnet"?xe[a.toString()]=c:Te[a.toString()]=c}return i}var Te={},Bt=async e=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Te[t])return Te;let n=new kt(t),r=await e.getAccountInfo(n);return r&&(Te[t]=new Pe({key:n,state:Pe.deserialize(r.data)})),Te},xe={},Lt=async e=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(xe[t])return xe;let n=new kt(t),r=await e.getAccountInfo(n);return r&&(xe[t]=new Pe({key:n,state:Pe.deserialize(r.data)})),xe};import{PublicKey as Se,sendAndConfirmTransaction as Ct,SystemProgram as Zr,Transaction as De,TransactionMessage as _e,VersionedTransaction as Ee}from"@solana/web3.js";import zr from"axios";var tt=2e3,nt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let t=(await zr.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}=$e(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Zr.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Se(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Ne.TransferTip),!0):!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!==Se.default.toString())),this}async versionBuild({txVersion:t,extInfo:n}){return t===0?await this.buildV0(G({},n||{})):this.build(n)}build(t){var r;let n=new De;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(i=>i.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async i=>{var l;let{recentBlockHash:o,skipPreflight:s=!0,sendAndConfirm:a,notSendToRpc:c}=i||{},u=o!=null?o:await we(this.connection,this.blockhashCommitment);if(n.recentBlockhash=u,this.signers.length&&n.sign(...this.signers),pe([n]),(l=this.owner)!=null&&l.isKeyPair)return{txId:a?await Ct(this.connection,n,this.signers.find(m=>m.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:s}),signedTx:n};if(this.signAllTransactions){let f=await this.signAllTransactions([n]);if(this.signers.length)for(let m of f)try{m.sign(...this.signers)}catch{}return{txId:c?"":await this.connection.sendRawTransaction(f[0].serialize(),{skipPreflight:s}),signedTx:f[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var u;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:i}=this.build(r),o=n.filter(l=>l.transaction.instructions.length>0),s=[i,...o.map(l=>l.transaction)],a=[this.signers,...o.map(l=>l.signers)],c=[...this.instructionTypes,...o.map(l=>l.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&a.forEach(l=>{l.some(f=>f.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:a,instructionTypes:c,execute:async l=>{var x;let{sequentially:f,onTxUpdate:m,skipTxCount:d=0,recentBlockHash:h,skipPreflight:g=!0}=l||{},b=h!=null?h:await we(this.connection,this.blockhashCommitment);if((x=this.owner)!=null&&x.isKeyPair){if(f){let P=[],S=0;for(let y of s){if(++S,S<=d)continue;let w=await Ct(this.connection,y,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});P.push(w)}return{txIds:P,signedTxs:s}}return{txIds:await await Promise.all(s.map(async P=>(P.recentBlockhash=b,await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:g})))),signedTxs:s}}if(this.signAllTransactions){let P=s.map((y,w)=>(y.recentBlockhash=b,a[w].length&&y.sign(...a[w]),y));pe(P);let S=await this.signAllTransactions(P);if(f){let y=0,w=[],T=async()=>{if(!S[y])return;let N=await this.connection.sendRawTransaction(S[y].serialize(),{skipPreflight:g});w.push({txId:N,status:"sent",signedTx:S[y]}),m==null||m([...w]),y++;let B=!1,R=null,O=null,E=_=>{R!==null&&clearInterval(R),O!==null&&this.connection.removeSignatureListener(O);let v=w.findIndex(W=>W.txId===N);if(v>-1){if(w[v].status==="error"||w[v].status==="success")return;w[v].status=_.err?"error":"success"}m==null||m([...w]),_.err||T()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var _;if(B){clearInterval(R);return}try{let v=await this.connection.getTransaction(N,{commitment:"confirmed",maxSupportedTransactionVersion:0});v&&(B=!0,clearInterval(R),E({err:((_=v.meta)==null?void 0:_.err)||null}),console.log("tx status from getTransaction:",N))}catch(v){B=!0,clearInterval(R),console.error("getTransaction timeout:",v,N)}},tt)),O=this.connection.onSignature(N,_=>{if(B){this.connection.removeSignatureListener(O);return}B=!0,E(_)},"confirmed"),this.connection.getSignatureStatus(N)};return await T(),{txIds:w.map(N=>N.txId),signedTxs:S}}else{let y=[];for(let w=0;w<S.length;w+=1){let T=await this.connection.sendRawTransaction(S[w].serialize(),{skipPreflight:g});y.push(T)}return{txIds:y,signedTxs:S}}}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){var g;let h=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:i,recentBlockhash:o}=h,s=We(h,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=G(G({},this.cluster==="devnet"?await Lt(this.connection):await Bt(this.connection)),n),c=Array.from(new Set([...r,...this.lookupTableAddress])),u=[];for(let b of c)a[b]===void 0&&u.push(new Se(b));let l=await It({connection:this.connection,address:u});for(let[b,x]of Object.entries(l))a[b]=x;let f=i?Se.default.toBase58():o!=null?o:await we(this.connection,this.blockhashCommitment),m=new _e({payerKey:this.feePayer,recentBlockhash:f,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(a));((g=this.owner)==null?void 0:g.signer)&&!this.signers.some(b=>b.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let d=new Ee(m);return d.sign(this.signers),{builder:this,transaction:d,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async b=>{var y;let{skipPreflight:x=!0,sendAndConfirm:P,notSendToRpc:S}=b||{};if(pe([d]),(y=this.owner)!=null&&y.isKeyPair){let w=await this.connection.sendTransaction(d,{skipPreflight:x});return P&&await et(this.connection,w),{txId:w,signedTx:d}}if(this.signAllTransactions){let w=await this.signAllTransactions([d]);if(this.signers.length)for(let T of w)try{T.sign(this.signers)}catch{}return{txId:S?"":await this.connection.sendTransaction(w[0],{skipPreflight:x}),signedTx:w[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}async buildV0MultiTx(t){var u;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:i}=await this.buildV0(r),o=n.filter(l=>l.builder.instructions.length>0),s=[i,...o.map(l=>l.transaction)],a=[this.signers,...o.map(l=>l.signers)],c=[...this.instructionTypes,...o.map(l=>l.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&a.forEach(l=>{l.some(f=>f.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach(async(l,f)=>{l.sign(a[f])}),{builder:this,transactions:s,signers:a,instructionTypes:c,buildProps:r,execute:async l=>{var g;let{sequentially:f,onTxUpdate:m,recentBlockHash:d,skipPreflight:h=!0}=l||{};if(d&&s.forEach(b=>b.message.recentBlockhash=d),pe(s),(g=this.owner)!=null&&g.isKeyPair){if(f){let b=[];for(let x of s){let P=await this.connection.sendTransaction(x,{skipPreflight:h});await et(this.connection,P),b.push(P)}return{txIds:b,signedTxs:s}}return{txIds:await Promise.all(s.map(async b=>await this.connection.sendTransaction(b,{skipPreflight:h}))),signedTxs:s}}if(this.signAllTransactions){let b=await this.signAllTransactions(s);if(f){let x=0,P=[],S=async()=>{if(!b[x])return;let y=await this.connection.sendTransaction(b[x],{skipPreflight:h});P.push({txId:y,status:"sent",signedTx:b[x]}),m==null||m([...P]),x++;let w=!1,T=null,N=null,B=R=>{T!==null&&clearInterval(T),N!==null&&this.connection.removeSignatureListener(N);let O=P.findIndex(E=>E.txId===y);if(O>-1){if(P[O].status==="error"||P[O].status==="success")return;P[O].status=R.err?"error":"success"}m==null||m([...P]),R.err||S()};this.loopMultiTxStatus&&(T=setInterval(async()=>{var R;if(w){clearInterval(T);return}try{let O=await this.connection.getTransaction(y,{commitment:"confirmed",maxSupportedTransactionVersion:0});O&&(w=!0,clearInterval(T),B({err:((R=O.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",y))}catch(O){w=!0,clearInterval(T),console.error("getTransaction timeout:",O,y)}},tt)),N=this.connection.onSignature(y,R=>{if(w){this.connection.removeSignatureListener(N);return}w=!0,B(R)},"confirmed"),this.connection.getSignatureStatus(y)};return S(),{txIds:[],signedTxs:b}}else{let x=[];for(let P=0;P<b.length;P+=1){let S=await this.connection.sendTransaction(b[P],{skipPreflight:h});x.push(S)}return{txIds:x,signedTxs:b}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var m;let f=t||{},{splitIns:n=[],computeBudgetConfig:r}=f,i=We(f,["splitIns","computeBudgetConfig"]),o=r?$e(r):{instructions:[],instructionTypes:[]},s=this.signers.reduce((d,h)=>J(G({},d),{[h.publicKey.toBase58()]:h}),{}),a=[],c=[],u=[],l=0;if(this.allInstructions.forEach(d=>{let h=[...u,d],g=r?[...o.instructions,...h]:h,x=[...new Set(h.map(P=>P.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat()).values()].map(P=>new Se(P));if(d!==n[l]&&u.length<12&&(Re({instructions:g,payer:this.feePayer,signers:x})||Re({instructions:h,payer:this.feePayer,signers:x})))u.push(d);else{if(u.length===0)throw Error("item ins too big");l+=d===n[l]?1:0,Re({instructions:r?[...o.instructions,...u]:[...u],payer:this.feePayer,signers:x})?a.push(new De().add(...o.instructions,...u)):a.push(new De().add(...u)),c.push(Array.from(new Set(u.map(P=>P.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat())).map(P=>s[P]).filter(P=>P!==void 0)),u=[d]}}),u.length>0){let h=[...new Set(u.map(g=>g.keys.filter(b=>b.isSigner).map(b=>b.pubkey.toString())).flat()).values()].map(g=>s[g]).filter(g=>g!==void 0);Re({instructions:r?[...o.instructions,...u]:[...u],payer:this.feePayer,signers:h.map(g=>g.publicKey)})?a.push(new De().add(...o.instructions,...u)):a.push(new De().add(...u)),c.push(h)}return a.forEach(d=>d.feePayer=this.feePayer),(m=this.owner)!=null&&m.signer&&c.forEach(d=>{d.some(h=>h.publicKey.equals(this.owner.publicKey))||d.push(this.owner.signer)}),{builder:this,transactions:a,signers:c,instructionTypes:this.instructionTypes,execute:async d=>{var y;let{sequentially:h,onTxUpdate:g,skipTxCount:b=0,recentBlockHash:x,skipPreflight:P=!0}=d||{},S=x!=null?x:await we(this.connection,this.blockhashCommitment);if(a.forEach(async(w,T)=>{w.recentBlockhash=S,c[T].length&&w.sign(...c[T])}),pe(a),(y=this.owner)!=null&&y.isKeyPair){if(h){let w=0,T=[];for(let N of a){if(++w,w<=b){T.push("tx skipped");continue}let B=await Ct(this.connection,N,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});T.push(B)}return{txIds:T,signedTxs:a}}return{txIds:await Promise.all(a.map(async w=>await this.connection.sendRawTransaction(w.serialize(),{skipPreflight:P}))),signedTxs:a}}if(this.signAllTransactions){let w=await this.signAllTransactions(a.slice(b,a.length)),T=[...a.slice(0,b),...w];if(h){let N=0,B=[],R=async()=>{if(!T[N])return;N<b&&(B.push({txId:"",status:"success",signedTx:T[N]}),g==null||g([...B]),N++,R());let O=await this.connection.sendRawTransaction(T[N].serialize(),{skipPreflight:P});B.push({txId:O,status:"sent",signedTx:T[N]}),g==null||g([...B]),N++;let E=!1,_=null,v=null,W=K=>{_!==null&&clearInterval(_),v!==null&&this.connection.removeSignatureListener(v);let C=B.findIndex(ce=>ce.txId===O);if(C>-1){if(B[C].status==="error"||B[C].status==="success")return;B[C].status=K.err?"error":"success"}g==null||g([...B]),K.err||R()};this.loopMultiTxStatus&&(_=setInterval(async()=>{var K;if(E){clearInterval(_);return}try{let C=await this.connection.getTransaction(O,{commitment:"confirmed",maxSupportedTransactionVersion:0});C&&(E=!0,clearInterval(_),W({err:((K=C.meta)==null?void 0:K.err)||null}),console.log("tx status from getTransaction:",O))}catch(C){E=!0,clearInterval(_),console.error("getTransaction timeout:",C,O)}},tt)),v=this.connection.onSignature(O,K=>{if(E){this.connection.removeSignatureListener(v);return}E=!0,W(K)},"confirmed"),this.connection.getSignatureStatus(O)};return await R(),{txIds:B.map(O=>O.txId),signedTxs:T}}else{let N=[];for(let B=0;B<T.length;B+=1){let R=await this.connection.sendRawTransaction(T[B].serialize(),{skipPreflight:P});N.push(R)}return{txIds:N,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuildV0(t){var S;let P=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:i={},lookupTableAddress:o=[]}=P,s=We(P,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress"]),a=G(G({},this.cluster==="devnet"?await Lt(this.connection):await Bt(this.connection)),i),c=Array.from(new Set([...this.lookupTableAddress,...o])),u=[];for(let y of c)a[y]===void 0&&u.push(new Se(y));let l=await It({connection:this.connection,address:u});for(let[y,w]of Object.entries(l))a[y]=w;let f=n?$e(n):{instructions:[],instructionTypes:[]},m=await we(this.connection,this.blockhashCommitment),d=this.signers.reduce((y,w)=>J(G({},y),{[w.publicKey.toBase58()]:w}),{}),h=[],g=[],b=[],x=0;if(this.allInstructions.forEach(y=>{let w=[...b,y],T=n?[...f.instructions,...w]:w;if(y!==r[x]&&b.length<12&&(Me({instructions:T,payer:this.feePayer,lookupTableAddressAccount:a})||Me({instructions:w,payer:this.feePayer,lookupTableAddressAccount:a})))b.push(y);else{if(b.length===0)throw Error("item ins too big");x+=y===r[x]?1:0;let N={};for(let B of[...new Set(c)])a[B]!==void 0&&(N[B]=a[B]);if(n&&Me({instructions:[...f.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:m})){let B=new _e({payerKey:this.feePayer,recentBlockhash:m,instructions:[...f.instructions,...b]}).compileToV0Message(Object.values(a));h.push(new Ee(B))}else{let B=new _e({payerKey:this.feePayer,recentBlockhash:m,instructions:[...b]}).compileToV0Message(Object.values(a));h.push(new Ee(B))}g.push(Array.from(new Set(b.map(B=>B.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat())).map(B=>d[B]).filter(B=>B!==void 0)),b=[y]}}),b.length>0){let w=[...new Set(b.map(T=>T.keys.filter(N=>N.isSigner).map(N=>N.pubkey.toString())).flat()).values()].map(T=>d[T]).filter(T=>T!==void 0);if(n&&Me({instructions:[...f.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:m})){let T=new _e({payerKey:this.feePayer,recentBlockhash:m,instructions:[...f.instructions,...b]}).compileToV0Message(Object.values(a));h.push(new Ee(T))}else{let T=new _e({payerKey:this.feePayer,recentBlockhash:m,instructions:[...b]}).compileToV0Message(Object.values(a));h.push(new Ee(T))}g.push(w)}return(S=this.owner)!=null&&S.signer&&g.forEach(y=>{y.some(w=>w.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),h.forEach((y,w)=>{y.sign(g[w])}),{builder:this,transactions:h,buildProps:t,signers:g,instructionTypes:this.instructionTypes,execute:async y=>{var O;let{sequentially:w,onTxUpdate:T,skipTxCount:N=0,recentBlockHash:B,skipPreflight:R=!0}=y||{};if(h.map(async(E,_)=>{g[_].length&&E.sign(g[_]),B&&(E.message.recentBlockhash=B)}),pe(h),(O=this.owner)!=null&&O.isKeyPair){if(w){let E=0,_=[];for(let v of h){if(++E,E<=N){console.log("skip tx: ",E),_.push("tx skipped");continue}let W=await this.connection.sendTransaction(v,{skipPreflight:R});await et(this.connection,W),_.push(W)}return{txIds:_,signedTxs:h}}return{txIds:await Promise.all(h.map(async E=>await this.connection.sendTransaction(E,{skipPreflight:R}))),signedTxs:h}}if(this.signAllTransactions){let E=await this.signAllTransactions(h.slice(N,h.length)),_=[...h.slice(0,N),...E];if(w){let v=0,W=[],K=async()=>{if(!_[v])return;if(v<N){W.push({txId:"",status:"success",signedTx:_[v]}),T==null||T([...W]),v++,K();return}let C=await this.connection.sendTransaction(_[v],{skipPreflight:R});W.push({txId:C,status:"sent",signedTx:_[v]}),T==null||T([...W]),v++;let ce=!1,de=null,Ke=null,Ft=le=>{de!==null&&clearInterval(de),Ke!==null&&this.connection.removeSignatureListener(Ke);let ee=W.findIndex(kn=>kn.txId===C);if(ee>-1){if(W[ee].status==="error"||W[ee].status==="success")return;W[ee].status=le.err?"error":"success"}T==null||T([...W]),le.err||K()};this.loopMultiTxStatus&&(de=setInterval(async()=>{var le;if(ce){clearInterval(de);return}try{let ee=await this.connection.getTransaction(C,{commitment:"confirmed",maxSupportedTransactionVersion:0});ee&&(ce=!0,clearInterval(de),Ft({err:((le=ee.meta)==null?void 0:le.err)||null}),console.log("tx status from getTransaction:",C))}catch(ee){ce=!0,clearInterval(de),console.error("getTransaction timeout:",ee,C)}},tt)),Ke=this.connection.onSignature(C,le=>{if(ce){this.connection.removeSignatureListener(Ke);return}ce=!0,Ft(le)},"confirmed"),this.connection.getSignatureStatus(C)};return K(),{txIds:[],signedTxs:_}}else{let v=[];for(let W=0;W<_.length;W+=1){let K=await this.connection.sendTransaction(_[W],{skipPreflight:R});v.push(K)}return{txIds:v,signedTxs:_}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}};import Yr from"bn.js";var da=new Yr(1e6);var Xr=Z("Raydium_amount"),Tn=Le(Jr);function Qr(e,t){let n="0",r="0";if(e.includes(".")){let i=e.split(".");i.length===2?([n,r]=i,r=r.padEnd(t,"0")):Xr.logWithError(`invalid number string, num: ${e}`)}else n=e;return[n,r.slice(0,t)||r]}var re=class extends F{constructor(n,r,i=!0,o){let s=new rt(0),a=Pt.pow(new rt(n.decimals));if(i)s=Y(r);else{let c=new rt(0),u=new rt(0);if(typeof r=="string"||typeof r=="number"||typeof r=="bigint"){let[l,f]=Qr(r.toString(),n.decimals);c=Y(l),u=Y(f)}c=c.mul(a),s=c.add(u)}super(s,a);this.logger=Z(o||"TokenAmount"),this.token=n}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(n){return this.token.equals(n.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(n.raw)}lt(n){return this.token.equals(n.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(n.raw)}add(n){return this.token.equals(n.token)||this.logger.logWithError("add token not equals"),new re(this.token,this.raw.add(n.raw))}subtract(n){return this.token.equals(n.token)||this.logger.logWithError("sub token not equals"),new re(this.token,this.raw.sub(n.raw))}toSignificant(n=this.token.decimals,r,i=0){return super.toSignificant(n,r,i)}toFixed(n=this.token.decimals,r,i=0){return n>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(n,r,i)}toExact(n={groupSeparator:""}){return Tn.DP=this.token.decimals,new Tn(this.numerator.toString()).div(this.denominator.toString()).toFormat(n)}};function ti(e){return typeof e=="object"&&e!==null&&![me,re,$r,F,ei,ne,ye].some(t=>typeof t=="object"&&e instanceof t)}function it(e){return typeof e=="string"?ut(e):Array.isArray(e)?e.map(t=>it(t)):ti(e)?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,it(n)])):e}var Nt=(...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 nt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(Nt(t))}logInfo(...t){this.logger.info(Nt(t))}logAndCreateError(...t){let n=Nt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{SYSVAR_CLOCK_PUBKEY as oi,TransactionInstruction as Et}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as vt}from"@solana/spl-token";import{PublicKey as fc}from"@solana/web3.js";import pc,{isBN as dc}from"bn.js";import{bits as lu,BitStructure as fu,blob as mu,Blob as pu,cstr as du,f32 as gu,f32be as hu,f64 as bu,f64be as yu,greedy as wu,Layout as Tu,ns64 as xu,ns64be as Pu,nu64 as ni,nu64be as Su,offset as Au,s16 as ku,s16be as Iu,s24 as Bu,s24be as Lu,s32 as Cu,s32be as Nu,s40 as Ru,s40be as Mu,s48 as Du,s48be as _u,s8 as Eu,seq as vu,struct as Ou,Structure as ri,u16 as Fu,u16be as Ku,u24 as Vu,u24be as Wu,u32 as Uu,u32be as qu,u40 as Gu,u40be as Hu,u48 as ju,u48be as Zu,u8 as zu,UInt as ii,union as Yu,Union as Ju,unionLayoutDiscriminator as Xu,utf8 as Qu}from"@solana/buffer-layout";var xn=ri;var Pn=ii;var Sn=ni;function Mt(e){return new Pn(1,e)}var Rt=class extends xn{decode(t,n){return super.decode(t,n)}};function Dt(e,t,n){return new Rt(e,t,n)}var _t=Dt([Mt("instruction"),Sn("amount")]),Oe=Dt([Mt("instruction")]);function kc({programId:e,amount:t,instructionKeys:n}){let r=[{pubkey:Ht,isSigner:!1,isWritable:!1},{pubkey:vt,isSigner:!1,isWritable:!1},{pubkey:Gt,isSigner:!1,isWritable:!1},{pubkey:ct,isSigner:!1,isWritable:!1},...Object.entries(n).map(([o,s])=>({pubkey:s,isSigner:o==="userOwner",isWritable:!["authority","userOwner","userIdoCheck","userStakeInfo"].includes(o)}))],i=Buffer.alloc(_t.span);return _t.encode({instruction:1,amount:Number(t)},i),new Et({keys:r,programId:e,data:i})}function ot({programId:e},t){let n=[{pubkey:vt,isSigner:!1,isWritable:!1},{pubkey:ct,isSigner:!1,isWritable:!1},...Object.entries(t).map(([i,o])=>({pubkey:o,isSigner:i==="userOwner",isWritable:!["authority","userOwner"].includes(i)}))],r=Buffer.alloc(Oe.span);return Oe.encode({instruction:2},r),new Et({keys:n,programId:e,data:r})}function Ot(e){let{poolConfig:t,userKeys:n,side:r}=e,i=r==="base"?n.baseTokenAccount:n.quoteTokenAccount,o=r==="base"?t.baseVault:t.quoteVault,s=Buffer.alloc(Oe.span);Oe.encode({instruction:2},s);let a=[{pubkey:vt,isWritable:!1,isSigner:!1},{pubkey:oi,isWritable:!1,isSigner:!1},{pubkey:t.id,isWritable:!0,isSigner:!1},{pubkey:t.authority,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!0,isSigner:!1},{pubkey:i,isWritable:!0,isSigner:!1},{pubkey:n.ledgerAccount,isWritable:!0,isSigner:!1},{pubkey:n.owner,isWritable:!1,isSigner:!0}];return new Et({programId:t.programId,keys:a,data:s})}var si={[Ae.IDO_PROGRAM_ID_V1.toString()]:1,[Ae.IDO_PROGRAM_ID_V2.toString()]:2,[Ae.IDO_PROGRAM_ID_V3.toString()]:3,[Ae.IDO_PROGRAM_ID_V4.toString()]:4},st=class extends ve{async claim({ownerInfo:t,idoKeys:n,associatedOnly:r=!0,checkCreateATAOwner:i=!1,txVersion:o,feePayer:s}){let a=this.createTxBuilder(s),c=si[n.programId];c||this.logAndCreateError("invalid version",c);let u=it(n),[l,f]=[!new An(t.coin).isZero(),!new An(t.pc).isZero()],m=u.projectInfo.mint.address.equals(ge),{account:d,instructionParams:h}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:u.projectInfo.mint.programId,mint:u.projectInfo.mint.address,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!m,notUseTokenAccount:m,associatedOnly:m?!1:r,checkCreateATAOwner:i});!d&&l&&this.logAndCreateError("target token accounts not found","mint",n.projectInfo.mint.address),l&&h&&a.addInstruction(h);let g=u.buyInfo.mint.address.equals(ge),{account:b,instructionParams:x}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:u.buyInfo.mint.programId,mint:u.buyInfo.mint.address,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!g,notUseTokenAccount:g,associatedOnly:g?!1:r,checkCreateATAOwner:i});if(!d&&f&&this.logAndCreateError("target token accounts not found","mint",n.projectInfo.mint.address),f&&x&&a.addInstruction(x),(!d||!b)&&this.logAndCreateError("target token accounts not found","mint",n.projectInfo.mint.address,n.buyInfo.mint.address),c===3)return a.addInstruction({instructions:[...l?[ot({programId:u.programId},{idoId:u.id,authority:u.authority,poolTokenAccount:u.projectInfo.vault,userTokenAccount:d,userIdoInfo:new Fe(t.userIdoInfo),userOwner:this.scope.ownerPubKey})]:[],...f?[ot({programId:new Fe(n.programId)},{idoId:u.id,authority:u.authority,poolTokenAccount:u.buyInfo.vault,userTokenAccount:b,userIdoInfo:new Fe(t.userIdoInfo),userOwner:this.scope.ownerPubKey})]:[]]}).versionBuild({txVersion:o});if(c<3)return!l&&!f&&this.logAndCreateError("no claimable rewards"),a.addInstruction({instructions:[ot({programId:u.programId},{idoId:u.id,authority:u.authority,poolQuoteTokenAccount:u.buyInfo.vault,poolBaseTokenAccount:u.projectInfo.vault,userQuoteTokenAccount:b,userBaseTokenAccount:d,userIdoInfo:new Fe(t.userIdoInfo),userOwner:this.scope.ownerPubKey})]}).versionBuild({txVersion:o});let P={poolConfig:{id:u.id,programId:u.programId,authority:u.authority,baseVault:u.projectInfo.vault,quoteVault:u.buyInfo.vault,baseToken:n.projectInfo.mint,quoteToken:n.buyInfo.mint},userKeys:{baseTokenAccount:d,quoteTokenAccount:b,ledgerAccount:new Fe(t.userIdoInfo),owner:this.scope.ownerPubKey}};return a.addInstruction({instructions:[...l?[Ot(J(G({},P),{side:"base"}))]:[],...f?[Ot(J(G({},P),{side:"quote"}))]:[]]}).versionBuild({txVersion:o})}};export{Oe as claimLayout,st as default,ot as makeClaimInstruction,Ot as makeClaimInstructionV4,kc as makePurchaseInstruction,_t as purchaseLayout};
//# sourceMappingURL=index.mjs.map