@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 76.8 kB
JavaScript
var Sn=Object.defineProperty,kn=Object.defineProperties;var In=Object.getOwnPropertyDescriptors;var Oe=Object.getOwnPropertySymbols;var vt=Object.prototype.hasOwnProperty,Ot=Object.prototype.propertyIsEnumerable;var _t=(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)&&_t(e,n,t[n]);if(Oe)for(var n of Oe(t))Ot.call(t,n)&&_t(e,n,t[n]);return e},Q=(e,t)=>kn(e,In(t));var Ke=(e,t)=>{var n={};for(var r in e)vt.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Oe)for(var r of Oe(e))t.indexOf(r)<0&&Ot.call(e,r)&&(n[r]=e[r]);return n};import{PublicKey as _e}from"@solana/web3.js";import Pn from"bn.js";import{PublicKey as N}from"@solana/web3.js";var li=new N("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),fi=new N("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),mi=new N("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),pi=new N("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),di=new N("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),gi=new N("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),hi=new N("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),bi=new N("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),yi=new N("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),wi=new N("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ti=new N("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),xi=new N("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Pi=new N("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Ai=new N("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Si=new N("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Bn=new N("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Cn=new N("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ln=new N("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Nn=new N("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),ki=new N("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ii=new N("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Bi=new N("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Mn=new N("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),En=new N("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Rn=new N("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),Ci=new N("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Dn=new N("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),Li=new N("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),_n=new N("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix"),xe={IDO_PROGRAM_ID_V1:Bn,IDO_PROGRAM_ID_V2:Cn,IDO_PROGRAM_ID_V3:Ln,IDO_PROGRAM_ID_V4:Nn};var Ni={SERUM_MARKET:N.default,OPENBOOK_MARKET:new N("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:N.default,FarmV3:new N("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new N("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new N("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new N("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new N("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new N("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),CLMM_LOCK_PROGRAM_ID:new N("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),CLMM_LOCK_AUTH_ID:new N("8qmHNvu2Kr2C7U8mJL4Vz1vTDxMhVuXKREwU7TNoaVEo"),Router:new N("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:Mn,CREATE_CPMM_POOL_AUTH:En,CREATE_CPMM_POOL_FEE_ACC:Rn,FEE_DESTINATION_ID:new N("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR"),LOCK_CPMM_PROGRAM:Dn,LCOK_CPMM_AUTH:_n};import{PublicKey as q,SystemProgram as Kt,SYSVAR_RENT_PUBKEY as vn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as On}from"@solana/spl-token";function st({pubkey:e,isSigner:t=!1,isWritable:n=!0}){return{pubkey:e,isWritable:n,isSigner:t}}var _i=[st({pubkey:On,isWritable:!1}),st({pubkey:Kt.programId,isWritable:!1}),st({pubkey:vn,isWritable:!1})];function Ft({publicKey:e,transformSol:t}){let n=at(e.toString());if(n instanceof q)return t&&n.equals(Pe)?ge:n;if(t&&n.toString()===Pe.toBase58())return ge;if(typeof n=="string"){if(n===q.default.toBase58())return q.default;try{return new q(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function at(e){try{return new q(e)}catch{return e}}var vi=new q("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Oi=new q("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Vt=new q("SysvarRent111111111111111111111111111111111"),ut=new q("SysvarC1ock11111111111111111111111111111111"),Ki=new q("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Fi=new q("Sysvar1nstructions1111111111111111111111111"),Wt=Kt.programId,Vi=new q("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Wi=new q("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),qi=new q("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ui=new q("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Gi=new q("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Hi=new q("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ji=new q("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),zi=new q("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Zi=new q("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Yi=new q("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Qi=new q("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ge=new q("So11111111111111111111111111111111111111112"),Pe=q.default;import{PublicKey as ti}from"@solana/web3.js";import ni from"bn.js";import Xr from"big.js";import nt from"bn.js";import ie from"bn.js";var he=9e15,ue=1e9,ct="0123456789abcdef",Ve="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",We="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",lt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-he,maxE:he,crypto:!1},Ht,te,B=!0,Ue="[DecimalError] ",ae=Ue+"Invalid argument: ",jt=Ue+"Precision limit exceeded",zt=Ue+"crypto unavailable",Zt="[object Decimal]",j=Math.floor,U=Math.pow,Kn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Fn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Vn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Yt=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,X=1e7,k=7,Wn=9007199254740991,qn=Ve.length-1,ft=We.length-1,p={toStringTag:Zt};p.absoluteValue=p.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),P(e)};p.ceil=function(){return P(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())+k,r.rounding=1,n=Un(r,en(r,n)),r.precision=e,r.rounding=t,P(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(B=!1,o=l.s*U(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=U(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&&(P(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")&&(P(r,e+1,1),t=!r.times(r).times(r).eq(l));break}return B=!0,P(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/k))*k,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 P(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 P(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/He(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 P(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/He(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,P(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()?J(n,i,o):new n(0):new n(NaN):t.isZero()?J(n,i+4,o).times(.5):(n.precision=i+6,n.rounding=1,t=t.asin(),e=J(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,B=!1,n=n.times(n).minus(1).sqrt().plus(n),B=!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,B=!1,n=n.times(n).plus(1).sqrt().plus(n),B=!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?P(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=J(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<=ft)return s=J(l,f+4,m).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(f+4<=ft)return s=J(l,f+4,m).times(.5),s.s=u.s,s}for(l.precision=a=f+10,l.rounding=1,n=Math.min(28,a/k+2|0),e=n;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(B=!1,t=Math.ceil(a/k),r=1,c=u.times(u),s=new l(u),i=u;e!==-1;)if(i=i.times(c),o=s.minus(i.div(r+=2)),i=i.times(c),s=o.plus(i.div(r+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return n&&(s=s.times(2<<n-1)),B=!0,P(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/k)>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(B=!1,a=f+d,s=se(u,a),r=t?qe(l,a+10):se(e,a),c=V(s,r,a,1),Ae(c.d,i=f,m))do if(a+=10,s=se(u,a),r=t?qe(l,a+10):se(e,a),c=V(s,r,a,1),!o){+H(c.d).slice(i+1,i+15)+1==1e14&&(c=P(c,f+1,0));break}while(Ae(c.d,i+=10,m));return B=!0,P(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 B?P(e,a,c):e}if(n=j(e.e/k),l=j(d.e/k),u=u.slice(),o=l-n,o){for(f=o<0,f?(t=u,o=-o,s=m.length):(t=m,n=l,s=u.length),r=Math.max(Math.ceil(a/k),s)+2,o>r&&(o=r,t.length=1),t.reverse(),r=o;r--;)t.push(0);t.reverse()}else{for(r=u.length,s=m.length,f=r<s,f&&(s=r),r=0;r<s;r++)if(u[r]!=m[r]){f=u[r]<m[r];break}o=0}for(f&&(t=u,u=m,m=t,e.s=-e.s),s=u.length,r=m.length-s;r>0;--r)u[s++]=0;for(r=m.length;r>o;){if(u[--r]<m[r]){for(i=r;i&&u[--i]===0;)u[i]=X-1;--u[i],u[r]+=X}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=Ge(u,n),B?P(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]?P(new r(n),r.precision,r.rounding):(B=!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),B=!0,n.minus(t))};p.naturalExponential=p.exp=function(){return mt(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,P(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)),B?P(e,a,c):e;if(o=j(f.e/k),r=j(e.e/k),u=u.slice(),i=o-r,i){for(i<0?(n=u,i=-i,s=l.length):(n=l,r=o,s=u.length),o=Math.ceil(a/k),s=o>s?o+1:s+1,i>s&&(i=s,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for(s=u.length,i=l.length,s-i<0&&(i=s,n=l,l=u,u=n),t=0;i;)t=(u[--i]=u[i]+l[i]+t)/X|0,u[i]%=X;for(t&&(u.unshift(t),++r),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=Ge(u,r),B?P(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=Qt(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t};p.round=function(){var e=this,t=e.constructor;return P(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())+k,r.rounding=1,n=Hn(r,en(r,n)),r.precision=e,r.rounding=t,P(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(B=!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&&(P(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")&&(P(r,c+1,1),e=!r.times(r).eq(s));break}return B=!0,P(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,P(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/k)+j(e.e/k),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%X|0,t=a/X|0;o[i]=(o[i]+t)%X|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=Ge(o,n),B?P(e,f.precision,f.rounding):e};p.toBinary=function(e,t){return dt(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),P(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=P(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=P(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=Qt(h)-d.e-1,s=o%k,t.d[0]=U(10,s<0?k+s:s),e==null)e=o>0?t:u;else{if(a=new g(e),!a.isInt()||a.lt(u))throw Error(ae+a);e=a.gt(t)?o>0?t:u:a}for(B=!1,a=new g(H(h)),l=g.precision,g.precision=o=h.length*k*2;f=V(a,t,0,1,1),i=n.plus(f.times(r)),i.cmp(e)!=1;)n=r,r=i,i=u,u=c.plus(f.times(i)),c=i,i=t,t=a.minus(f.times(i)),a=i;return i=V(e.minus(n),r,0,1,1),c=c.plus(i.times(u)),n=n.plus(i.times(r)),c.s=u.s=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,B=!0,m};p.toHexadecimal=p.toHex=function(e,t){return dt(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]?(B=!1,n=V(n,e,0,t,1).times(e),B=!0,P(n)):(e.s=n.s,n=e),n};p.toNumber=function(){return+this};p.toOctal=function(e,t){return dt(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(U(+a,u));if(a=new c(a),a.eq(1))return a;if(r=c.precision,o=c.rounding,e.eq(1))return P(a,r,o);if(t=j(e.e/k),t>=e.d.length-1&&(n=u<0?-u:u)<=Wn)return i=Jt(c,a,n,r),e.s<0?new c(1).div(i):P(i,r,o);if(s=a.s,s<0){if(t<e.d.length-1)return new c(NaN);if((e.d[t]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return n=U(+a,u),t=n==0||!isFinite(n)?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):(B=!1,c.rounding=a.s=1,n=Math.min(12,(t+"").length),i=mt(e.times(se(a,r+n)),r),i.d&&(i=P(i,r+5,1),Ae(i.d,r,o)&&(t=r+10,i=P(mt(e.times(se(a,t+n)),t),t+5,1),+H(i.d).slice(r+1,r+15)+1==1e14&&(i=P(i,r+1,0)))),i.s=s,B=!0,c.rounding=o,P(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=P(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)),P(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 P(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=k-r.length,n&&(o+=oe(n)),o+=r;s=e[t],r=s+"",n=k-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 Ae(e,t,n,r){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=k,i=0):(i=Math.ceil((t+1)/k),t%=k),o=U(10,k-t),a=e[i]%o|0,r==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=n<4&&a==99999||n>3&&a==49999||a==5e4||a==0):s=(n<4&&a+1==o||n>3&&a+1==o/2)&&(e[i+1]/o/100|0)==U(10,t-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(r||n<4)&&a==9999||!r&&n>3&&a==4999):s=((r||n<4)&&a+1==o||!r&&n>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==U(10,t-3)-1,s}function Fe(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]+=ct.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 Un(e,t){var n,r,i;if(t.isZero())return t;r=t.d.length,r<32?(n=Math.ceil(r/3),i=(1/He(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,A,T,y,S,w,L,I,M,O,_,E,v=r.constructor,W=r.s==i.s?1:-1,F=r.d,C=i.d;if(!F||!F[0]||!C||!C[0])return new v(!r.s||!i.s||(F?C&&F[0]==C[0]:!C)?NaN:F&&F[0]==0||!C?W*0:W/0);for(c?(d=1,l=r.e-i.e):(c=X,d=k,l=j(r.e/d)-j(i.e/d)),_=C.length,M=F.length,x=new v(W),A=x.d=[],f=0;C[f]==(F[f]||0);f++);if(C[f]>(F[f]||0)&&l--,o==null?(w=o=v.precision,s=v.rounding):a?w=o+(r.e-i.e)+1:w=o,w<0)A.push(1),h=!0;else{if(w=w/d+2|0,f=0,_==1){for(m=0,C=C[0],w++;(f<M||m)&&w--;f++)L=m*c+(F[f]||0),A[f]=L/C|0,m=L%C|0;h=m||f<M}else{for(m=c/(C[0]+1)|0,m>1&&(C=e(C,m,c),F=e(F,m,c),_=C.length,M=F.length),I=_,T=F.slice(0,_),y=T.length;y<_;)T[y++]=0;E=C.slice(),E.unshift(0),O=C[0],C[1]>=c/2&&++O;do m=0,u=t(C,T,_,y),u<0?(S=T[0],_!=y&&(S=S*c+(T[1]||0)),m=S/O|0,m>1?(m>=c&&(m=c-1),g=e(C,m,c),b=g.length,y=T.length,u=t(g,T,b,y),u==1&&(m--,n(g,_<b?E:C,b,c))):(m==0&&(u=m=1),g=C.slice()),b=g.length,b<y&&g.unshift(0),n(T,g,y,c),u==-1&&(y=T.length,u=t(C,T,_,y),u<1&&(m++,n(T,_<y?E:C,y,c))),y=T.length):u===0&&(m++,T=[0]),A[f++]=m,u&&T[0]?T[y++]=F[I]||0:(T=[F[I]],y=1);while((I++<M||T[0]!==void 0)&&w--);h=T[0]!==void 0}A[0]||A.shift()}if(d==1)x.e=l,Ht=h;else{for(f=1,m=A[0];m>=10;m/=10)f++;x.e=f+l*d-1,P(x,a?o+x.e+1:o,s,h)}return x}}();function P(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+=k,s=t,l=f[m=0],c=l/U(10,i-s-1)%10|0;else if(m=Math.ceil((o+1)/k),a=f.length,m>=a)if(r){for(;a++<=m;)f.push(0);l=c=0,i=1,o%=k,s=o-k+1}else break e;else{for(l=a=f[m],i=1;a>=10;a/=10)i++;o%=k,s=o-k+i,c=s<0?0:l/U(10,i-s-1)%10|0}if(r=r||t<0||f[m+1]!==void 0||(s<0?l:l%U(10,i-s-1)),u=n<4?(c||r)&&(n==0||n==(e.s<0?3:2)):c>5||c==5&&(n==4||r||n==6&&(o>0?s>0?l/U(10,i-s):0:f[m-1])%10&1||n==(e.s<0?8:7)),t<1||!f[0])return f.length=0,u?(t-=e.e+1,f[0]=U(10,(k-t%k)%k),e.e=-t||0):f[0]=e.e=0,e;if(o==0?(f.length=m,a=1,m--):(f.length=m+1,a=U(10,k-o),f[m]=s>0?(l/U(10,i-s)%U(10,s)|0)*a:0),u)for(;;)if(m==0){for(o=1,s=f[0];s>=10;s/=10)o++;for(s=f[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,f[0]==X&&(f[0]=1));break}else{if(f[m]+=a,f[m]!=X)break;f[m--]=0,a=1}for(o=f.length;f[--o]===0;)f.pop()}return B&&(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 $t(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 Ge(e,t){var n=e[0];for(t*=k;n>=10;n/=10)t++;return t}function qe(e,t,n){if(t>qn)throw B=!0,n&&(e.precision=n),Error(jt);return P(new e(Ve),t,1,!0)}function J(e,t,n){if(t>ft)throw Error(jt);return P(new e(We),t,n,!0)}function Qt(e){var t=e.length-1,n=t*k+1;if(t=e[t],t){for(;t%10==0;t/=10)n--;for(t=e[0];t>=10;t/=10)n++}return n}function 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/k+4);for(B=!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 B=!0,o}function qt(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 mt(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?(B=!1,c=h):c=t,a=new m(.03125);e.e>-2;)e=e.times(a),f+=5;for(r=Math.log(U(2,f))/Math.LN10*2+5|0,c+=r,n=o=s=new m(1),m.precision=c;;){if(o=P(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=P(s.times(s),c,1);if(t==null)if(u<3&&Ae(s.d,c-r,d,u))m.precision=c+=10,n=o=a=new m(1),l=0,u++;else return P(s,m.precision=h,d,B=!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,A=x.rounding,T=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?(B=!1,l=T):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=qe(x,l+2,T).times(o+""),g=se(new x(r+"."+n.slice(1)),l-h).plus(u),x.precision=T,t==null?P(g,T,A,B=!0):g;for(f=g,c=s=g=V(g.minus(1),g.plus(1),l,1),m=P(g.times(g),l,1),i=3;;){if(s=P(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(qe(x,l+2,T).times(o+""))),c=V(c,new x(d),l,1),t==null)if(Ae(c.d,l-h,A,a))x.precision=l+=h,u=s=g=V(f.minus(1),f.plus(1),l,1),m=P(g.times(g),l,1),i=a=1;else return P(c,x.precision=T,A,B=!0);else return x.precision=T,c;c=u,i+=2}}function $t(e){return String(e.s*e.s/0)}function pt(e,t){var n,r,i;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;r++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(r,i),t){if(i-=r,e.e=n=n-r-1,e.d=[],r=(n+1)%k,n<0&&(r+=k),r<i){for(r&&e.d.push(+t.slice(0,r)),i-=k;r<i;)e.d.push(+t.slice(r,r+=k));t=t.slice(r),r=k-t.length}else r-=i;for(;r--;)t+="0";e.d.push(+t),B&&(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 Gn(e,t){var n,r,i,o,s,a,c,u,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),Yt.test(t))return pt(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Fn.test(t))n=16,t=t.toLowerCase();else if(Kn.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=Fe(t,n,X),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new r(e.s*0):(e.e=Ge(u,l),e.d=u,B=!1,s&&(e=V(e,i,a*4)),c&&(e=e.times(Math.abs(c)<54?U(2,c):je.pow(2,c))),B=!0,e)}function Hn(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/He(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/k);for(B=!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 B=!0,s.d.length=f+1,s}function He(e,t){for(var n=e;--t;)n*=e;return n}function en(e,t){var n,r=t.s<0,i=J(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=qt(n)?r?2:3:r?4:1,t;te=qt(n)?r?1:4:r?3:2}return t.minus(i).abs()}function dt(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=$t(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=Fe($(m),10,i),m.e=m.d.length),f=Fe(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=Ht),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+=ct.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=Fe(l,i,t),c=f.length;!f[c-1];--c);for(s=1,l="1.";s<c;s++)l+=ct.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 jn(e){return new this(e).abs()}function zn(e){return new this(e).acos()}function Zn(e){return new this(e).acosh()}function Yn(e,t){return new this(e).plus(t)}function Qn(e){return new this(e).asin()}function Jn(e){return new this(e).asinh()}function Xn(e){return new this(e).atan()}function $n(e){return new this(e).atanh()}function er(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=J(this,o,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?J(this,r,i):new this(0),n.s=e.s):!e.d||t.isZero()?(n=J(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=J(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 tr(e){return new this(e).cbrt()}function nr(e){return P(e=new this(e),e.e+1,2)}function rr(e,t,n){return new this(e).clamp(t,n)}function ir(e){if(!e||typeof e!="object")throw Error(Ue+"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]=lt[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]=lt[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(zt);else this[n]=!1;else throw Error(ae+n+": "+r);return this}function or(e){return new this(e).cos()}function sr(e){return new this(e).cosh()}function tn(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,Gt(o)){u.s=o.s,B?!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++;B?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 pt(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),Yt.test(o)?pt(u,o):Gn(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=ir,i.clone=tn,i.isDecimal=Gt,i.abs=jn,i.acos=zn,i.acosh=Zn,i.add=Yn,i.asin=Qn,i.asinh=Jn,i.atan=Xn,i.atanh=$n,i.atan2=er,i.cbrt=tr,i.ceil=nr,i.clamp=rr,i.cos=or,i.cosh=sr,i.div=ar,i.exp=ur,i.floor=cr,i.hypot=lr,i.ln=fr,i.log=mr,i.log10=dr,i.log2=pr,i.max=gr,i.min=hr,i.mod=br,i.mul=yr,i.pow=wr,i.random=Tr,i.round=xr,i.sign=Pr,i.sin=Ar,i.sinh=Sr,i.sqrt=kr,i.sub=Ir,i.sum=Br,i.tan=Cr,i.tanh=Lr,i.trunc=Nr,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 ar(e,t){return new this(e).div(t)}function ur(e){return new this(e).exp()}function cr(e){return P(e=new this(e),e.e+1,3)}function lr(){var e,t,n=new this(0);for(B=!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 B=!0,new this(1/0);n=t}return B=!0,n.sqrt()}function Gt(e){return e instanceof je||e&&e.toStringTag===Zt||!1}function fr(e){return new this(e).ln()}function mr(e,t){return new this(e).log(t)}function pr(e){return new this(e).log(2)}function dr(e){return new this(e).log(10)}function gr(){return Xt(this,arguments,"lt")}function hr(){return Xt(this,arguments,"gt")}function br(e,t){return new this(e).mod(t)}function yr(e,t){return new this(e).mul(t)}function wr(e,t){return new this(e).pow(t)}function Tr(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/k),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(r));o<r;)i=t[o],i>=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(r*=4);o<r;)i=t[o]+(t[o+1]<<8)+(t[o+2]<<16)+((t[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=r/4}else throw Error(zt);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],e%=k,r&&e&&(i=U(10,k-e),a[o]=(r/i|0)*i);a[o]===0;o--)a.pop();if(o<0)n=0,a=[0];else{for(n=-1;a[0]===0;n-=k)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<k&&(n-=k-r)}return s.e=n,s.d=a,s}function xr(e){return P(e=new this(e),e.e+1,this.rounding)}function Pr(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function Ar(e){return new this(e).sin()}function Sr(e){return new this(e).sinh()}function kr(e){return new this(e).sqrt()}function Ir(e,t){return new this(e).sub(t)}function Br(){var e=0,t=arguments,n=new this(t[e]);for(B=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return B=!0,P(n,this.precision,this.rounding)}function Cr(e){return new this(e).tan()}function Lr(e){return new this(e).tanh()}function Nr(e){return P(e=new this(e),e.e+1,1)}p[Symbol.for("nodejs.util.inspect.custom")]=p.toString;p[Symbol.toStringTag]="Decimal";var je=p.constructor=tn(lt);Ve=new je(Ve);We=new je(We);import{PublicKey as Mr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as nn}from"@solana/spl-token";var rn={chainId:101,address:Mr.default.toBase58(),programId:nn.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:nn.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 gt}from"@solana/web3.js";var ht=class{constructor({mint:t,decimals:n,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(t===Pe.toBase58()||t instanceof gt&&Pe.equals(t)){this.decimals=fe.decimals,this.symbol=fe.symbol,this.name=fe.name,this.mint=new gt(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?gt.default:Ft({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},me=ht;me.WSOL=new ht(Q(G({},fe),{mint:fe.address}));var bt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},ze=bt;ze.SOL=new bt(rn);import Ye from"big.js";import Or from"bn.js";import Kr from"decimal.js-light";import{get as on,set as Er}from"lodash";var yt=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}},sn={},Rr={};function z(e){let t=on(sn,e);if(!t){let n=on(Rr,e);t=new yt({name:e,logLevel:n}),Er(sn,e,t)}return t}import Se from"bn.js";var an=9007199254740991;function Y(e){let t=z("Raydium_parseBigNumberish");if(e instanceof Se)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new Se(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=an||e<=-an)&&t.logWithError(`BigNumberish number overflow: ${e}`),new Se(String(e))):typeof e=="bigint"?new Se(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new Se(0))}import Dr from"toformat";var _r=Dr,ke=_r;var Ze=z("module/fraction"),wt=ke(Ye),Ie=ke(Kr),Fr={[0]:Ie.ROUND_DOWN,[1]:Ie.ROUND_HALF_UP,[2]:Ie.ROUND_UP},Vr={[0]:Ye.roundDown,[1]:Ye.roundHalfUp,[2]:Ye.roundUp},K=class{constructor(t,n=new Or(1)){this.numerator=Y(t),this.denominator=Y(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new K(this.denominator,this.numerator)}add(t){let n=t instanceof K?t:new K(Y(t));return this.denominator.eq(n.denominator)?new K(this.numerator.add(n.numerator),this.denominator):new K(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof K?t:new K(Y(t));return this.denominator.eq(n.denominator)?new K(this.numerator.sub(n.numerator),this.denominator):new K(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof K?t:new K(Y(t));return new K(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof K?t:new K(Y(t));return new K(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||Ze.logWithError(`${t} is not an integer.`),t<=0&&Ze.logWithError(`${t} is not positive.`),Ie.set({precision:t+1,rounding:Fr[r]});let i=new Ie(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)||Ze.logWithError(`${t} is not an integer.`),t<0&&Ze.logWithError(`${t} is negative.`),wt.DP=t,wt.RM=Vr[r]||1,new wt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import Wr from"bn.js";var un=new K(new Wr(100)),ye=class extends K{toSignificant(t=5,n,r){return this.mul(un).toSignificant(t,n,r)}toFixed(t=2,n,r){return this.mul(un).toFixed(t,n,r)}};var qr=z("Raydium_price"),ne=class extends K{constructor(n){let{baseToken:r,quoteToken:i,numerator:o,denominator:s}=n;super(o,s);this.baseToken=r,this.quoteToken=i,this.scalar=new K(Tt(r.decimals),Tt(i.decimals))}get raw(){return new K(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&&qr.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 Ur=new ie(0),Xo=new ie(1),$o=new ie(2),es=new ie(3),ts=new ie(5),xt=new ie(10),ns=new ie(100),rs=new ie(1e3),is=new ie(1e4);function Tt(e){return xt.pow(Y(e))}import{PublicKey as Gr}from"@solana/web3.js";import{MINT_SIZE as gs,TOKEN_PROGRAM_ID as hs,getTransferFeeConfig as bs,unpackMint as ys}from"@solana/spl-token";var Pt=z("Raydium_accountInfo_util");async function ln(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&&Pt.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"&&Pt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(d[0],"base64"),executable:h,lamports:g,owner:new Gr(b),rentEpoch:x}}return null})))}else try{a=await Promise.all(s.map(c=>e.getMultipleAccountsInfo(c,i)))}catch(c){c instanceof Error&&Pt.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 Os}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Fs}from"@solana/spl-token";import{ComputeBudgetProgram as fn,Keypair as pn,PublicKey as Cs,Transaction as dn,TransactionMessage as Hr,VersionedTransaction as gn}from"@solana/web3.js";var Be={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 jr}from"@solana/spl-token";var mn=z("Raydium_txUtil"),hn=1644;function Qe(e){let t=[],n=[];return e.microLamports&&(t.push(fn.setComputeUnitPrice({microLamports:e.microLamports})),n.push(Be.SetComputeUnitPrice)),e.units&&(t.push(fn.setComputeUnitLimit({units:e.units})),n.push(Be.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 Je(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 zr(e,t){e.length<1&&mn.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&mn.logWithError(`no signers provided:, ${t.toString()}`);let n=new dn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...e);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<hn}catch{return!1}}function Ce({instructions:e,payer:t,signers:n}){return zr(e,[t,...n])}function Le({instructions:e,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=pn.generate().publicKey.toString()}){let o=new Hr({payerKey:t,recentBlockhash:r,instructions:e}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new gn(o).serialize()).toString("base64").length<hn}catch{return!1}}var Zr=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e),Yr=e=>{let t=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof gn&&(t=Zr(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 dn&&(n.recentBlockhash||(n.recentBlockhash=jr.toBase58()),n.feePayer||(n.feePayer=pn.generate().publicKey)),t.push(Yr(n))}),console.log("simulate tx string:",t),t}import Us from"bn.js";import{PublicKey as bn,AddressLookupTableAccount as Xe}from"@solana/web3.js";async function St({connection:e,address:t}){let n=await ln(e,[...new Set(t.map(i=>i.toString()))].map(i=>new bn(i))),r={};for(let i=0;i<t.length;i++){let o=n[i],s=t[i];if(!o)continue;let a=new Xe({key:s,state:Xe.deserialize(o.data)});r[s.toString()]=a,$e[s.toString()]=a}return r}var $e={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new Xe({key:new bn("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:Xe.deserialize(Buffer.from("AQAAAP//////////d49+DAAAAAAAAQZMWvw7GUNJdaccNBVnb57OKakxL2BHLYvhRwVILRsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkG3fbh7nWP3hhCXbzkbM3athr8TYO5DSf+vfko2KGL/AVKU1D4XciC1hSlVnJ4iilt3x6rq9CmBniISTL07vagBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvDQdRqCgtphMF/imcN7mY5YRx2xE1A3MQ+L4QRaYK9u4GRfZP3LsAd00a+IkCpA22UNQMKdq5BFbJuwuOLqc8zxCTDlqxBG8J0HcxtfogQHDK06ukzfaXiNDKAob1MqBHS9lJxDYCwz8gd5DtFqNSTKG5l1zxIaKpDP/sffi2is1H9aKveyXSu5StXElYRl9SD5As0DHE4N0GLnf84/siiKXVyp4Ez121kLcUui/jLLFZEz/BwZK3Ilf9B9OcsEAeDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu9N9LMnrw/JNO0hqMVB4rk/2ou4AB1loQ7FZoPwut2o4KZB+0p9xnbrQKw038qjpHar+PyDwvxBRcu5hpHw3dguezeWv+IwvgW5icu8EGkhGa9AkFPPJT7VMSFb8xowveU=","base64"))})};import{PublicKey as Te,sendAndConfirmTransaction as kt,SystemProgram as Qr,Transaction as Ne,TransactionMessage as Me,VersionedTransaction as Ee}from"@solana/web3.js";import Jr from"axios";var et=2e3,tt=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 Jr.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}=Qe(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){return t?(this.endInstructions.push(Qr.transfer({fromPubkey:this.owner.publicKey,toPubkey:new Te(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Be.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!==Te.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 Ne;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 u;let{recentBlockHash:o,skipPreflight:s=!0,sendAndConfirm:a}=i||{},c=o!=null?o:await we(this.connection,this.blockhashCommitment);if(n.recentBlockhash=c,this.signers.length&&n.sign(...this.signers),pe([n]),(u=this.owner)!=null&&u.isKeyPair)return{txId:a?await kt(this.connection,n,this.signers.find(f=>f.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 l=await this.signAllTransactions([n]);return{txId:await this.connection.sendRawTransaction(l[0].serialize(),{skipPreflight:s}),signedTx:l[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 A=[],T=0;for(let y of s){if(++T,T<=d)continue;let S=await kt(this.connection,y,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});A.push(S)}return{txIds:A,signedTxs:s}}return{txIds:await await Promise.all(s.map(async A=>(A.recentBlockhash=b,await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:g})))),signedTxs:s}}if(this.signAllTransactions){let A=s.map((y,S)=>(y.recentBlockhash=b,a[S].length&&y.sign(...a[S]),y));pe(A);let T=await this.signAllTransactions(A);if(f){let y=0,S=[],w=async()=>{if(!T[y])return;let L=await this.connection.sendRawTransaction(T[y].serialize(),{skipPreflight:g});S.push({txId:L,status:"sent",signedTx:T[y]}),m==null||m([...S]),y++;let I=!1,M=null,O=null,_=E=>{M!==null&&clearInterval(M),O!==null&&this.connection.removeSignatureListener(O);let v=S.findIndex(W=>W.txId===L);if(v>-1){if(S[v].status==="error"||S[v].status==="success")return;S[v].status=E.err?"error":"success"}m==null||m([...S]),E.err||w()};this.loopMultiTxStatus&&(M=setInterval(async()=>{var E;if(I){clearInterval(M);return}try{let v=await this.connection.getTransaction(L,{commitment:"confirmed",maxSupportedTransactionVersion:0});v&&(I=!0,clearInterval(M),_({err:((E=v.meta)==null?void 0:E.err)||null}),console.log("tx status from getTransaction:",L))}catch(v){I=!0,clearInterval(M),console.error("getTransaction timeout:",v,L)}},et)),O=this.connection.onSignature(L,E=>{if(I){this.connection.removeSignatureListener(O);return}I=!0,_(E)},"confirmed"),this.connection.getSignatureStatus(L)};return await w(),{txIds:S.map(L=>L.txId),signedTxs:T}}else{let y=[];for(let S=0;S<T.length;S+=1){let w=await this.connection.sendRawTransaction(T[S].serialize(),{skipPreflight:g});y.push(w)}return{txIds:y,signedTxs:T}}}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=Ke(h,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=G(G({},this.cluster==="devnet"?{}:$e),n),c=Array.from(new Set([...r,...this.lookupTableAddress])),u=[];for(let b of c)a[b]===void 0&&u.push(new Te(b));let l=await St({connection:this.connection,address:u});for(let[b,x]of Object.entries(l))a[b]=x;let f=i?Te.default.toBase58():o!=null?o:await we(this.connection,this.blockhashCommitment),m=new Me({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 T;let{skipPreflight:x=!0,sendAndConfirm:A}=b||{};if(pe([d]),(T=this.owner)!=null&&T.isKeyPair){let y=await this.connection.sendTransaction(d,{skipPreflight:x});return A&&await Je(this.connection,y),{txId:y,signedTx:d}}if(this.signAllTransactions){let y=await this.signAllTransactions([d]);return{txId:await this.connection.sendTransaction(y[0],{skipPreflight:x}),signedTx:y[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 A=await this.connection.sendTransaction(x,{skipPreflight:h});await Je(this.connection,A),b.push(A)}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,A=[],T=async()=>{if(!b[x])return;let y=await this.connection.sendTransaction(b[x],{skipPreflight:h});A.push({txId:y,status:"sent",signedTx:b[x]}),m==null||m([...A]),x++;let S=!1,w=null,L=null,I=M=>{w!==null&&clearInterval(w),L!==null&&this.connection.removeSignatureListener(L);let O=A.findIndex(_=>_.txId===y);if(O>-1){if(A[O].status==="error"||A[O].status==="success")return;A[O].status=M.err?"error":"success"}m==null||m([...A]),M.err||T()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var M;if(S){clearInterval(w);return}try{let O=await this.connection.getTransaction(y,{commitment:"confirmed",maxSupportedTransactionVersion:0});O&&(S=!0,clearInterval(w),I({err:((M=O.meta)==null?void 0:M.err)||null}),console.log("tx status from getTransaction:",y))}catch(O){S=!0,clearInterval(w),console.error("getTransaction timeout:",O,y)}},et)),L=this.connection.onSignature(y,M=>{if(S){this.connection.removeSignatureListener(L);return}S=!0,I(M)},"confirmed"),this.connection.getSignatureStatus(y)};return T(),{txIds:[],signedTxs:b}}else{let x=[];for(let A=0;A<b.length;A+=1){let T=await this.connection.sendTransaction(b[A],{skipPreflight:h});x.push(T)}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=Ke(f,["splitIns","computeBudgetConfig"]),o=r?Qe(r):{instructions:[],instructionTypes:[]},s=this.signers.reduce((d,h)=>Q(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(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(A=>new Te(A));if(d!==n[l]&&u.length<12&&(Ce({instructions:g,payer:this.feePayer,signers:x})||Ce({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,Ce({instructions:r?[...o.instructions,...u]:[...u],payer:this.feePayer,signers:x})?a.push(new Ne().add(...o.instructions,...u)):a.push(new Ne().add(...u)),c.push(Array.from(new Set(u.map(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat())).map(A=>s[A]).filter(A=>A!==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);Ce({instructions:r?[...o.instructions,...u]:[...u],payer:this.feePayer,signers:h.map(g=>g.publicKey)})?a.push(new Ne().add(...o.instructions,...u)):a.push(new Ne().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:A=!0}=d||{},T=x!=null?x:await we(this.connection,this.blockhashCommitment);if(a.forEach(async(S,w)=>{S.recentBlockhash=T,c[w].length&&S.sign(...c[w])}),pe(a),(y=this.owner)!=null&&y.isKeyPair){if(h){let S=0,w=[];for(let L of a){if(++S,S<=b){w.push("tx skipped");continue}let I=await kt(this.connection,L,this.signers.find(M=>M.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});w.push(I)}return{txIds:w,signedTxs:a}}return{txIds:await Promise.all(a.map(async S=>await this.connection.sendRawTransaction(S.serialize(),{skipPreflight:A}))),signedTxs:a}}if(this.signAllTransactions){let S=await this.signAllTransactions(a.slice(b,a.length)),w=[...a.slice(0,b),...S];if(h){let L=0,I=[],M=async()=>{if(!w[L])return;L<b&&(I.push({txId:"",status:"success",signedTx:w[L]}),g==null||g([...I]),L++,M());let O=await this.connection.sendRawTransaction(w[L].serialize(),{skipPreflight:A});I.push({txId:O,status:"sent",signedTx:w[L]}),g==null||g([...I]),L++;let _=!1,E=null,v=null,W=F=>{E!==null&&clearInterval(E),v!==null&&this.connection.removeSignatureListener(v);let C=I.findIndex(ce=>ce.txId===O);if(C>-1){if(I[C].status==="error"||I[C].status==="success")return;I[C].status=F.err?"error":"success"}g==null||g([...I]),F.err||M()};this.loopMultiTxStatus&&(E=setInterval(async()=>{var F;if(_){clearInterval(E);return}try{let C=await this.connection.getTransaction(O,{commitment:"confirmed",maxSupportedTransactionVersion:0});C&&(_=!0,clearInterval(E),W({err:((F=C.meta)==null?void 0:F.err)||null}),console.log("tx status from getTransaction:",O))}catch(C){_=!0,clearInterval(E),console.error("getTransaction timeout:",C,O)}},et)),v=this.connection.onSignature(O,F=>{if(_){this.connection.removeSignatureListener(v);return}_=!0,W(F)},"confirmed"),this.connection.getSignatureStatus(O)};return await M(),{txIds:I.map(O=>O.txId),signedTxs:w}}else{let L=[];for(let I=0;I<w.length;I+=1){let M=await this.connection.sendRawTransaction(w[I].serialize(),{skipPreflight:A});L.push(M)}return{txIds:L,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuildV0(t){var T;let A=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:i={},lookupTableAddress:o=[]}=A,s=Ke(A,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress"]),a=G(G({},this.cluster==="devnet"?{}:$e),i),c=Array.from(new Set([...this.lookupTableAddress,...o])),u=[];for(let y of c)a[y]===void 0&&u.push(new Te(y));let l=await St({connection:this.connection,address:u});for(let[y,S]of Object.entries(l))a[y]=S;let f=n?Qe(n):{instructions:[],instructionTypes:[]},m=await we(this.connection,this.blockhashCommitment),d=this.signers.reduce((y,S)=>Q(G({},y),{[S.publicKey.toBase58()]:S}),{}),h=[],g=[],b=[],x=0;if(this.allInstructions.forEach(y=>{let S=[...b,y],w=n?[...f.instructions,...S]:S;if(y!==r[x]&&b.length<12&&(Le({instructions:w,payer:this.feePayer,lookupTableAddressAccount:a})||Le({instructions:S,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 L={};for(let I of[...new Set(c)])a[I]!==void 0&&(L[I]=a[I]);if(n&&Le({instructions:[...f.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:m})){let I=new Me({payerKey:this.feePayer,recentBlockhash:m,instructions:[...f.instructions,...b]}).compileToV0Message(Object.values(a));h.push(new Ee(I))}else{let I=new Me({payerKey:this.feePayer,recentBlockhash:m,instructions:[...b]}).compileToV0Message(Object.values(a));h.push(new Ee(I))}g.push(Array.from(new Set(b.map(I=>I.keys.filter(M=>M.isSigner).map(M=>M.pubkey.toString())).flat())).map(I=>d[I]).filter(I=>I!==void 0)),b=[y]}}),b.length>0){let S=[...new Set(b.map(w=>w.keys.filter(L=>L.isSigner).map(L=>L.pubkey.toString())).flat()).values()].map(w=>d[w]).filter(w=>w!==void 0);if(n&&Le({instructions:[...f.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:m})){let w=new Me({payerKey:this.feePayer,recentBlockhash:m,instructions:[...f.instructions,...b]}).compileToV0Message(Object.values(a));h.push(new Ee(w))}else{let w=new Me({payerKey:this.feePayer,recentBlockhash:m,instructions:[...b]}).compileToV0Message(Object.values(a));h.push(new Ee(w))}g.push(S)}return(T=this.owner)!=null&&T.signer&&g.forEach(y=>{y.some(S=>S.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),{builder:this,transactions:h,buildProps:t,signers:g,instructionTypes:this.instructionTypes,execute:async y=>{var O;let{sequentially:S,onTxUpdate:w,skipTxCount:L=0,recentBlockHash:I,skipPreflight:M=!0}=y||{};if(h.map(async(_,E)=>{g[E].length&&_.sign(g[E]),I&&(_.message.recentBlockhash=I)}),pe(h),(O=this.owner)!=null&&O.isKeyPair){if(S){let _=0,E=[];for(let v of h){if(++_,_<=L){console.log("skip tx: ",_),E.push("tx skipped");continue}let W=await this.connection.sendTransaction(v,{skipPreflight:M});await Je(this.connection,W),E.push(W)}return{txIds:E,signedTxs:h}}return{txIds:await Promise.all(h.map(async _=>await this.connection.sendTransaction(_,{skipPreflight:M}))),signedTxs:h}}if(this.signAllTransactions){let _=await this.signAllTransactions(h.slice(L,h.length)),E=[...h.slice(0,L),..._];if(S){let v=0,W=[],F=async()=>{if(!E[v])return;if(v<L){W.push({txId:"",status:"success",signedTx:E[v]}),w==null||w([...W]),v++,F();return}let C=await this.connection.sendTransaction(E[v],{skipPreflight:M});W.push({txId:C,status:"sent",signedTx:E[v]}),w==null||w([...W]),v++;let ce=!1,de=null,ve=null,Dt=le=>{de!==null&&clearInterval(de),ve!==null&&this.connection.removeSignatureListener(ve);let ee=W.findIndex(An=>An.txId===C);if(ee>-1){if(W[ee].status==="error"||W[ee].status==="success")return;W[ee].status=le.err?"error":"success"}w==null||w([...W]),le.err||F()};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),Dt({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)}},et)),ve=this.connection.onSignature(C,le=>{if(ce){this.connection.removeSignatureListener(ve);return}ce=!0,Dt(le)},"confirmed"),this.connection.getSignatureStatus(C)};return F(),{txIds:[],signedTxs:E}}else{let v=[];for(let W=0;W<E.length;W+=1){let F=await this.connection.sendTransaction(E[W],{skipPreflight:M});v.push(F)}return{txIds:v,signedTxs:E}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}};var $r=z("Raydium_amount"),yn=ke(Xr);function ei(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")):$r.logWithError(`invalid number string, num: ${e}`)}else n=e;return[n,r.slice(0,t)||r]}var re=class extends K{constructor(n,r,i=!0,o){let s=new nt(0),a=xt.pow(new nt(n.decimals));if(i)s=Y(r);else{let c=new nt(0),u=new nt(0);if(typeof r=="string"||typeof r=="number"||typeof r=="bigint"){let[l,f]=ei(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 yn.DP=this.token.decimals,new yn(this.numerator.toString()).div(this.denominator.toString()).toFormat(n)}};function cn(e){return typeof e=="object"&&e!==null&&![me,re,ti,K,ni,ne,ye].some(t=>typeof t=="object"&&e instanceof t)}function rt(e){return typeof e=="string"?at(e):Array.isArray(e)?e.map(t=>rt(t)):cn(e)?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,rt(n)])):e}var It=(...e)=>e.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),Re=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=z(n)}createTxBuilder(t){return this.scope.checkOwner(),new tt({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(It(t))}logInfo(...t){this.logger.info(It(t))}logAndCreateError(...t){let n=It(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{SYSVAR_CLOCK_PUBKEY as si,TransactionInstruction as Mt}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Et}from"@solana/spl-token";import{PublicKey as nc}from"@solana/web3.js";import ic,{isBN as oc}from"bn.js";import{bits as tu,BitStructure as nu,blob as ru,Blob as iu,cstr as ou,f32 as su,f32be as au,f64 as uu,f64be as cu,greedy as lu,Layout as fu,ns64 as mu,ns64be as pu,nu64 as ri,nu64be as du,offset as gu,s16 as hu,s16be as bu,s24 as yu,s24be as wu,s32 as Tu,s32be as xu,s40 as Pu,s40be as Au,s48 as Su,s48be as ku,s8 as Iu,seq as Bu,struct as Cu,Structure as ii,u16 as Lu,u16be as Nu,u24 as Mu,u24be as Eu,u32 as Ru,u32be as Du,u40 as _u,u40be as vu,u48 as Ou,u48be as Ku,u8 as Fu,UInt as oi,union as Vu,Union as Wu,unionLayoutDiscriminator as qu,utf8 as Uu}from"@solana/buffer-layout";var wn=ii;var Tn=oi;var xn=ri;function Ct(e){return new Tn(1,e)}var Bt=class extends wn{decode(t,n){return super.decode(t,n)}};function Lt(e,t,n){return new Bt(e,t,n)}var Nt=Lt([Ct("instruction"),xn("amount")]),De=Lt([Ct("instruction")]);function hc({programId:e,amount:t,instructionKeys:n}){let r=[{pubkey:Wt,isSigner:!1,isWritable:!1},{pubkey:Et,isSigner:!1,isWritable:!1},{pubkey:Vt,isSigner:!1,isWritable:!1},{pubkey:ut,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(Nt.span);return Nt.encode({instruction:1,amount:Number(t)},i),new Mt({keys:r,programId:e,data:i})}function it({programId:e},t){let n=[{pubkey:Et,isSigner:!1,isWritable:!1},{pubkey:ut,isSigner:!1,isWritable:!1},...Object.entries(t).map(([i,o])=>({pubkey:o,isSigner:i==="userOwner",isWritable:!["authority","userOwner"].includes(i)}))],r=Buffer.alloc(De.span);return De.encode({instruction:2},r),new Mt({keys:n,programId:e,data:r})}function Rt(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(De.span);De.encode({instruction:2},s);let a=[{pubkey:Et,isWritable:!1,isSigner:!1},{pubkey:si,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 Mt({programId:t.programId,keys:a,data:s})}var ai={[xe.IDO_PROGRAM_ID_V1.toString()]:1,[xe.IDO_PROGRAM_ID_V2.toString()]:2,[xe.IDO_PROGRAM_ID_V3.toString()]:3,[xe.IDO_PROGRAM_ID_V4.toString()]:4},ot=class extends Re{async claim({ownerInfo:t,idoKeys:n,associatedOnly:r=!0,checkCreateATAOwner:i=!1,txVersion:o}){let s=this.createTxBuilder(),a=ai[n.programId];a||this.logAndCreateError("invalid version",a);let c=rt(n),[u,l]=[!new Pn(t.coin).isZero(),!new Pn(t.pc).isZero()],f=c.projectInfo.mint.address.equals(ge),{account:m,instructionParams:d}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:c.projectInfo.mint.programId,mint:c.projectInfo.mint.address,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!f,notUseTokenAccount:f,associatedOnly:f?!1:r,checkCreateATAOwner:i});!m&&u&&this.logAndCreateError("target token accounts not found","mint",n.projectInfo.mint.address),u&&d&&s.addInstruction(d);let h=c.buyInfo.mint.address.equals(ge),{account:g,instructionParams:b}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:c.buyInfo.mint.programId,mint:c.buyInfo.mint.address,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!h,notUseTokenAccount:h,associatedOnly:h?!1:r,checkCreateATAOwner:i});if(!m&&l&&this.logAndCreateError("target token accounts not found","mint",n.projectInfo.mint.address),l&&b&&s.addInstruction(b),(!m||!g)&&this.logAndCreateError("target token accounts not found","mint",n.projectInfo.mint.address,n.buyInfo.mint.address),a===3)return s.addInstruction({instructions:[...u?[it({programId:c.programId},{idoId:c.id,authority:c.authority,poolTokenAccount:c.projectInfo.vault,userTokenAccount:m,userIdoInfo:new _e(t.userIdoInfo),userOwner:this.scope.ownerPubKey})]:[],...l?[it({programId:new _e(n.programId)},{idoId:c.id,authority:c.authority,poolTokenAccount:c.buyInfo.vault,userTokenAccount:g,userIdoInfo:new _e(t.userIdoInfo),userOwner:this.scope.ownerPubKey})]:[]]}).versionBuild({txVersion:o});if(a<3)return!u&&!l&&this.logAndCreateError("no claimable rewards"),s.addInstruction({instructions:[it({programId:c.programId},{idoId:c.id,authority:c.authority,poolQuoteTokenAccount:c.buyInfo.vault,poolBaseTokenAccount:c.projectInfo.vault,userQuoteTokenAccount:g,userBaseTokenAccount:m,userIdoInfo:new _e(t.userIdoInfo),userOwner:this.scope.ownerPubKey})]}).versionBuild({txVersion:o});let x={poolConfig:{id:c.id,programId:c.programId,authority:c.authority,baseVault:c.projectInfo.vault,quoteVault:c.buyInfo.vault,baseToken:n.projectInfo.mint,quoteToken:n.buyInfo.mint},userKeys:{baseTokenAccount:m,quoteTokenAccount:g,ledgerAccount:new _e(t.userIdoInfo),owner:this.scope.ownerPubKey}};return s.addInstruction({instructions:[...u?[Rt(Q(G({},x),{side:"base"}))]:[],...l?[Rt(Q(G({},x),{side:"quote"}))]:[]]}).versionBuild({txVersion:o})}};export{De as claimLayout,ot as default,it as makeClaimInstruction,Rt as makeClaimInstructionV4,hc as makePurchaseInstruction,Nt as purchaseLayout};
//# sourceMappingURL=index.mjs.map