@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 76.7 kB
JavaScript
var Sn=Object.defineProperty,An=Object.defineProperties;var kn=Object.getOwnPropertyDescriptors;var Ke=Object.getOwnPropertySymbols;var vt=Object.prototype.hasOwnProperty,Ot=Object.prototype.propertyIsEnumerable;var Et=(e,t,n)=>t in e?Sn(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)&&Et(e,n,t[n]);if(Ke)for(var n of Ke(t))Ot.call(t,n)&&Et(e,n,t[n]);return e},J=(e,t)=>An(e,kn(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&&Ke)for(var r of Ke(e))t.indexOf(r)<0&&Ot.call(e,r)&&(n[r]=e[r]);return n};import{PublicKey as Fe}from"@solana/web3.js";import xn 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"),In=new k("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Bn=new k("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ln=new k("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Cn=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:In,IDO_PROGRAM_ID_V2:Bn,IDO_PROGRAM_ID_V3:Ln,IDO_PROGRAM_ID_V4:Cn};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 Ft,SYSVAR_RENT_PUBKEY as Nn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Rn}from"@solana/spl-token";function st({pubkey:e,isSigner:t=!1,isWritable:n=!0}){return{pubkey:e,isWritable:n,isSigner:t}}var Wi=[st({pubkey:Rn,isWritable:!1}),st({pubkey:Ft.programId,isWritable:!1}),st({pubkey:Nn,isWritable:!1})];function Vt({publicKey:e,transformSol:t}){let n=at(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 at(e){try{return new U(e)}catch{return e}}var Ui=new U("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),qi=new U("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Mn=new U("SysvarRent111111111111111111111111111111111"),Kt=new U("SysvarC1ock11111111111111111111111111111111"),Gi=new U("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Hi=new U("Sysvar1nstructions1111111111111111111111111"),Dn=Ft.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 Qr}from"@solana/web3.js";import $r from"bn.js";import Yr from"big.js";import rt from"bn.js";import ie from"bn.js";var he=9e15,ue=1e9,ut="0123456789abcdef",qe="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Ge="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",ct={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-he,maxE:he,crypto:!1},Gt,te,L=!0,je="[DecimalError] ",ae=je+"Invalid argument: ",Ht=je+"Precision limit exceeded",jt=je+"crypto unavailable",Zt="[object Decimal]",j=Math.floor,q=Math.pow,_n=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,En=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,vn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,zt=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Q=1e7,I=7,On=9007199254740991,Fn=qe.length-1,lt=Ge.length-1,p={toStringTag:Zt};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,$t(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=K(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 K(this,new this.constructor(e))};p.dividedToIntegerBy=p.divToInt=function(e){var t=this,n=t.constructor;return A(K(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,K(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=K(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<=lt)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<=lt)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=K(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=K(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=K(n,e.abs(),0,3,1),t.s*=e.s):t=K(n,e,0,r.modulo,1),t=t.times(e),L=!0,n.minus(t))};p.naturalExponential=p.exp=function(){return ft(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=Yt(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=Wn(r,$t(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(K(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=K(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 pt(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=Yt(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=K(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=K(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=K(u,r,o,1).minus(d).abs().cmp(K(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 pt(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=K(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 pt(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)<=On)return i=Jt(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=ft(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(ft(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]+=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 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 K=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,M,v=r.constructor,W=r.s==i.s?1:-1,V=r.d,C=i.d;if(!V||!V[0]||!C||!C[0])return new v(!r.s||!i.s||(V?C&&V[0]==C[0]:!C)?NaN:V&&V[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=V.length,x=new v(W),P=x.d=[],f=0;C[f]==(V[f]||0);f++);if(C[f]>(V[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+(V[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),V=e(V,m,c),E=C.length,R=V.length),B=E,S=V.slice(0,E),y=S.length;y<E;)S[y++]=0;M=C.slice(),M.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?M: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?M:C,y,c))),y=S.length):u===0&&(m++,S=[0]),P[f++]=m,u&&S[0]?S[y++]=V[B]||0:(S=[V[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,Gt=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 Qt(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>Fn)throw L=!0,n&&(e.precision=n),Error(Ht);return A(new e(qe),t,1,!0)}function X(e,t,n){if(t>lt)throw Error(Ht);return A(new e(Ge),t,n,!0)}function Yt(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 Jt(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),Ut(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),Ut(t.d,s)}return L=!0,o}function Wt(e){return e.d[e.d.length-1]&1}function Xt(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,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(K(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=K(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(K(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=K(c,new x(d),l,1),t==null)if(Ie(c.d,l-h,P,a))x.precision=l+=h,u=s=g=K(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 Qt(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)%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 Kn(e,t){var n,r,i,o,s,a,c,u,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),zt.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(En.test(t))n=16,t=t.toLowerCase();else if(_n.test(t))n=2;else if(vn.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=Jt(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=K(e,i,a*4)),c&&(e=e.times(Math.abs(c)<54?q(2,c):Ye.pow(2,c))),L=!0,e)}function Wn(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=K(a.times(c),new e(t++*t++),l,1),a=i?r.plus(s):r.minus(s),r=K(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 $t(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=Wt(n)?r?2:3:r?4:1,t;te=Wt(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,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=Qt(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=K(e,m,n,r,0,i),f=e.d,o=e.e,u=Gt),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(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+=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 Ut(e,t){if(e.length>t)return e.length=t,!0}function Un(e){return new this(e).abs()}function qn(e){return new this(e).acos()}function Gn(e){return new this(e).acosh()}function Hn(e,t){return new this(e).plus(t)}function jn(e){return new this(e).asin()}function Zn(e){return new this(e).asinh()}function zn(e){return new this(e).atan()}function Yn(e){return new this(e).atanh()}function Jn(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(K(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(K(e,t,o,1)),n}function Xn(e){return new this(e).cbrt()}function Qn(e){return A(e=new this(e),e.e+1,2)}function $n(e,t,n){return new this(e).clamp(t,n)}function er(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]=ct[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]=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(jt);else this[n]=!1;else throw Error(ae+n+": "+r);return this}function tr(e){return new this(e).cos()}function nr(e){return new this(e).cosh()}function en(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,qt(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 mt(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),zt.test(o)?mt(u,o):Kn(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=er,i.clone=en,i.isDecimal=qt,i.abs=Un,i.acos=qn,i.acosh=Gn,i.add=Hn,i.asin=jn,i.asinh=Zn,i.atan=zn,i.atanh=Yn,i.atan2=Jn,i.cbrt=Xn,i.ceil=Qn,i.clamp=$n,i.cos=tr,i.cosh=nr,i.div=rr,i.exp=ir,i.floor=or,i.hypot=sr,i.ln=ar,i.log=ur,i.log10=lr,i.log2=cr,i.max=fr,i.min=mr,i.mod=pr,i.mul=dr,i.pow=gr,i.random=hr,i.round=br,i.sign=yr,i.sin=wr,i.sinh=Tr,i.sqrt=xr,i.sub=Pr,i.sum=Sr,i.tan=Ar,i.tanh=kr,i.trunc=Ir,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 rr(e,t){return new this(e).div(t)}function ir(e){return new this(e).exp()}function or(e){return A(e=new this(e),e.e+1,3)}function sr(){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 qt(e){return e instanceof Ye||e&&e.toStringTag===Zt||!1}function ar(e){return new this(e).ln()}function ur(e,t){return new this(e).log(t)}function cr(e){return new this(e).log(2)}function lr(e){return new this(e).log(10)}function fr(){return Xt(this,arguments,"lt")}function mr(){return Xt(this,arguments,"gt")}function pr(e,t){return new this(e).mod(t)}function dr(e,t){return new this(e).mul(t)}function gr(e,t){return new this(e).pow(t)}function hr(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(jt);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 br(e){return A(e=new this(e),e.e+1,this.rounding)}function yr(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function wr(e){return new this(e).sin()}function Tr(e){return new this(e).sinh()}function xr(e){return new this(e).sqrt()}function Pr(e,t){return new this(e).sub(t)}function Sr(){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 Ar(e){return new this(e).tan()}function kr(e){return new this(e).tanh()}function Ir(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=en(ct);qe=new Ye(qe);Ge=new Ye(Ge);import{PublicKey as Br}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as tn}from"@solana/spl-token";var nn={chainId:101,address:Br.default.toBase58(),programId:tn.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:tn.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 dt}from"@solana/web3.js";var gt=class{constructor({mint:t,decimals:n,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(t===ke.toBase58()||t instanceof dt&&ke.equals(t)){this.decimals=fe.decimals,this.symbol=fe.symbol,this.name=fe.name,this.mint=new dt(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?dt.default:Vt({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},me=gt;me.WSOL=new gt(J(G({},fe),{mint:fe.address}));var ht=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=ht;Je.SOL=new ht(nn);import Qe from"big.js";import Dr from"bn.js";import _r from"decimal.js-light";import{get as rn,set as Lr}from"lodash";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 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}},on={},Cr={};function Z(e){let t=rn(on,e);if(!t){let n=rn(Cr,e);t=new bt({name:e,logLevel:n}),Lr(on,e,t)}return t}import Be from"bn.js";var sn=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>=sn||e<=-sn)&&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 Nr from"toformat";var Rr=Nr,Le=Rr;var Xe=Z("module/fraction"),yt=Le(Qe),Ce=Le(_r),Er={[0]:Ce.ROUND_DOWN,[1]:Ce.ROUND_HALF_UP,[2]:Ce.ROUND_UP},vr={[0]:Qe.roundDown,[1]:Qe.roundHalfUp,[2]:Qe.roundUp},F=class{constructor(t,n=new Dr(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:Er[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.`),yt.DP=t,yt.RM=vr[r]||1,new yt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import Or from"bn.js";var an=new F(new Or(100)),ye=class extends F{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)}};var Fr=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(wt(r.decimals),wt(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&&Fr.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),Tt=new ie(10),as=new ie(100),us=new ie(1e3),cs=new ie(1e4);function wt(e){return Tt.pow(Y(e))}import{PublicKey as Kr}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 xt=Z("Raydium_accountInfo_util");async function un(e,t,n){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}=G({batchRequest:!1},n),s=Pt(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=Pt(c,10);a=(await(await Promise.all(u.map(async f=>await e._rpcBatchRequest(f)))).flat()).map(f=>(f.error&&xt.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"&&xt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(d[0],"base64"),executable:h,lamports:g,owner:new Kr(b),rentEpoch:x}}return null})))}else try{a=await Promise.all(s.map(c=>e.getMultipleAccountsInfo(c,i)))}catch(c){c instanceof Error&&xt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}function Pt(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 cn,Keypair as fn,PublicKey as Ds,Transaction as mn,TransactionMessage as Wr,VersionedTransaction as pn}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 Ur}from"@solana/spl-token";var ln=Z("Raydium_txUtil"),dn=1644;function $e(e){let t=[],n=[];return e.microLamports&&(t.push(cn.setComputeUnitPrice({microLamports:e.microLamports})),n.push(Ne.SetComputeUnitPrice)),e.units&&(t.push(cn.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 qr(e,t){e.length<1&&ln.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&ln.logWithError(`no signers provided:, ${t.toString()}`);let n=new mn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...e);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<dn}catch{return!1}}function Re({instructions:e,payer:t,signers:n}){return qr(e,[t,...n])}function Me({instructions:e,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=fn.generate().publicKey.toString()}){let o=new Wr({payerKey:t,recentBlockhash:r,instructions:e}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new pn(o).serialize()).toString("base64").length<dn}catch{return!1}}var Gr=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e),Hr=e=>{let t=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof pn&&(t=Gr(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 mn&&(n.recentBlockhash||(n.recentBlockhash=Ur.toBase58()),n.feePayer||(n.feePayer=fn.generate().publicKey)),t.push(Hr(n))}),console.log("simulate tx string:",t),t}import zs from"bn.js";import{PublicKey as St,AddressLookupTableAccount as Pe}from"@solana/web3.js";async function At({connection:e,address:t,cluster:n="mainnet"}){let r=await un(e,[...new Set(t.map(o=>o.toString()))].map(o=>new St(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={},kt=async e=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Te[t])return Te;let n=new St(t),r=await e.getAccountInfo(n);return r&&(Te[t]=new Pe({key:n,state:Pe.deserialize(r.data)})),Te},xe={},It=async e=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(xe[t])return xe;let n=new St(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 Bt,SystemProgram as jr,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(jr.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 Bt(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 Bt(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=M=>{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=M.err?"error":"success"}m==null||m([...w]),M.err||T()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var M;if(B){clearInterval(R);return}try{let v=await this.connection.getTransaction(N,{commitment:"confirmed",maxSupportedTransactionVersion:0});v&&(B=!0,clearInterval(R),E({err:((M=v.meta)==null?void 0:M.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,M=>{if(B){this.connection.removeSignatureListener(O);return}B=!0,E(M)},"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 It(this.connection):await kt(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 At({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 Bt(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,M=null,v=null,W=V=>{M!==null&&clearInterval(M),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=V.err?"error":"success"}g==null||g([...B]),V.err||R()};this.loopMultiTxStatus&&(M=setInterval(async()=>{var V;if(E){clearInterval(M);return}try{let C=await this.connection.getTransaction(O,{commitment:"confirmed",maxSupportedTransactionVersion:0});C&&(E=!0,clearInterval(M),W({err:((V=C.meta)==null?void 0:V.err)||null}),console.log("tx status from getTransaction:",O))}catch(C){E=!0,clearInterval(M),console.error("getTransaction timeout:",C,O)}},tt)),v=this.connection.onSignature(O,V=>{if(E){this.connection.removeSignatureListener(v);return}E=!0,W(V)},"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 It(this.connection):await kt(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 At({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,M)=>{g[M].length&&E.sign(g[M]),B&&(E.message.recentBlockhash=B)}),pe(h),(O=this.owner)!=null&&O.isKeyPair){if(w){let E=0,M=[];for(let v of h){if(++E,E<=N){console.log("skip tx: ",E),M.push("tx skipped");continue}let W=await this.connection.sendTransaction(v,{skipPreflight:R});await et(this.connection,W),M.push(W)}return{txIds:M,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)),M=[...h.slice(0,N),...E];if(w){let v=0,W=[],V=async()=>{if(!M[v])return;if(v<N){W.push({txId:"",status:"success",signedTx:M[v]}),T==null||T([...W]),v++,V();return}let C=await this.connection.sendTransaction(M[v],{skipPreflight:R});W.push({txId:C,status:"sent",signedTx:M[v]}),T==null||T([...W]),v++;let ce=!1,de=null,Ve=null,_t=le=>{de!==null&&clearInterval(de),Ve!==null&&this.connection.removeSignatureListener(Ve);let ee=W.findIndex(Pn=>Pn.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||V()};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),_t({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)),Ve=this.connection.onSignature(C,le=>{if(ce){this.connection.removeSignatureListener(Ve);return}ce=!0,_t(le)},"confirmed"),this.connection.getSignatureStatus(C)};return V(),{txIds:[],signedTxs:M}}else{let v=[];for(let W=0;W<M.length;W+=1){let V=await this.connection.sendTransaction(M[W],{skipPreflight:R});v.push(V)}return{txIds:v,signedTxs:M}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}};import zr from"bn.js";var da=new zr(1e6);var Jr=Z("Raydium_amount"),gn=Le(Yr);function Xr(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")):Jr.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=Tt.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]=Xr(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 gn.DP=this.token.decimals,new gn(this.numerator.toString()).div(this.denominator.toString()).toFormat(n)}};function ei(e){return typeof e=="object"&&e!==null&&![me,re,Qr,F,$r,ne,ye].some(t=>typeof t=="object"&&e instanceof t)}function it(e){return typeof e=="string"?at(e):Array.isArray(e)?e.map(t=>it(t)):ei(e)?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,it(n)])):e}var Lt=(...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(Lt(t))}logInfo(...t){this.logger.info(Lt(t))}logAndCreateError(...t){let n=Lt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{SYSVAR_CLOCK_PUBKEY as oi,TransactionInstruction as wn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Tn}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 ti,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 ni,u16 as Fu,u16be as Vu,u24 as Ku,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 ri,union as Yu,Union as Ju,unionLayoutDiscriminator as Xu,utf8 as Qu}from"@solana/buffer-layout";var hn=ni;var bn=ri;var yn=ti;function Nt(e){return new bn(1,e)}var Ct=class extends hn{decode(t,n){return super.decode(t,n)}};function Rt(e,t,n){return new Ct(e,t,n)}var ii=Rt([Nt("instruction"),yn("amount")]),Oe=Rt([Nt("instruction")]);function ot({programId:e},t){let n=[{pubkey:Tn,isSigner:!1,isWritable:!1},{pubkey:Kt,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 wn({keys:n,programId:e,data:r})}function Mt(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:Tn,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 wn({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},Dt=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 xn(t.coin).isZero(),!new xn(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?[Mt(J(G({},P),{side:"base"}))]:[],...f?[Mt(J(G({},P),{side:"quote"}))]:[]]}).versionBuild({txVersion:o})}};export{Dt as default};
//# sourceMappingURL=ido.mjs.map