UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 76.2 kB
var xn=Object.defineProperty,Pn=Object.defineProperties;var An=Object.getOwnPropertyDescriptors;var Oe=Object.getOwnPropertySymbols;var Et=Object.prototype.hasOwnProperty,Rt=Object.prototype.propertyIsEnumerable;var Mt=(e,t,n)=>t in e?xn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,G=(e,t)=>{for(var n in t||(t={}))Et.call(t,n)&&Mt(e,n,t[n]);if(Oe)for(var n of Oe(t))Rt.call(t,n)&&Mt(e,n,t[n]);return e},J=(e,t)=>Pn(e,An(t));var Fe=(e,t)=>{var n={};for(var r in e)Et.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&&Rt.call(e,r)&&(n[r]=e[r]);return n};import{PublicKey as _e}from"@solana/web3.js";import wn 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"),Sn=new N("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),kn=new N("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),In=new N("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Bn=new N("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),ki=new N("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ii=new N("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Bi=new N("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Cn=new N("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),Ln=new N("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Nn=new N("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),Ci=new N("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Mn=new N("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),Li=new N("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),En=new N("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix"),xe={IDO_PROGRAM_ID_V1:Sn,IDO_PROGRAM_ID_V2:kn,IDO_PROGRAM_ID_V3:In,IDO_PROGRAM_ID_V4:Bn};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:Cn,CREATE_CPMM_POOL_AUTH:Ln,CREATE_CPMM_POOL_FEE_ACC:Nn,FEE_DESTINATION_ID:new N("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR"),LOCK_CPMM_PROGRAM:Mn,LCOK_CPMM_AUTH:En};import{PublicKey as U,SystemProgram as Dt,SYSVAR_RENT_PUBKEY as Rn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Dn}from"@solana/spl-token";function ot({pubkey:e,isSigner:t=!1,isWritable:n=!0}){return{pubkey:e,isWritable:n,isSigner:t}}var _i=[ot({pubkey:Dn,isWritable:!1}),ot({pubkey:Dt.programId,isWritable:!1}),ot({pubkey:Rn,isWritable:!1})];function _t({publicKey:e,transformSol:t}){let n=st(e.toString());if(n instanceof U)return t&&n.equals(Pe)?ge:n;if(t&&n.toString()===Pe.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 st(e){try{return new U(e)}catch{return e}}var vi=new U("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Oi=new U("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),_n=new U("SysvarRent111111111111111111111111111111111"),vt=new U("SysvarC1ock11111111111111111111111111111111"),Fi=new U("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Vi=new U("Sysvar1nstructions1111111111111111111111111"),vn=Dt.programId,Ki=new U("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Wi=new U("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ui=new U("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),qi=new U("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Gi=new U("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Hi=new U("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ji=new U("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),zi=new U("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Zi=new U("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Yi=new U("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ji=new U("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ge=new U("So11111111111111111111111111111111111111112"),Pe=U.default;import{PublicKey as ei}from"@solana/web3.js";import ti from"bn.js";import Qr from"big.js";import nt from"bn.js";import ie from"bn.js";var he=9e15,ue=1e9,at="0123456789abcdef",Ke="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",We="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",ut={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-he,maxE:he,crypto:!1},Kt,te,B=!0,qe="[DecimalError] ",ae=qe+"Invalid argument: ",Wt=qe+"Precision limit exceeded",Ut=qe+"crypto unavailable",qt="[object Decimal]",j=Math.floor,q=Math.pow,On=/^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,Gt=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,X=1e7,k=7,Kn=9007199254740991,Wn=Ke.length-1,ct=We.length-1,p={toStringTag:qt};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,Yt(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*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&&(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 K(this,new this.constructor(e))};p.dividedToIntegerBy=p.divToInt=function(e){var t=this,n=t.constructor;return P(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 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,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()?Q(n,i,o):new n(0):new n(NaN):t.isZero()?Q(n,i+4,o).times(.5):(n.precision=i+6,n.rounding=1,t=t.asin(),e=Q(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=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=Q(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<=ct)return s=Q(l,f+4,m).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(f+4<=ct)return s=Q(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?Ue(l,a+10):se(e,a),c=K(s,r,a,1),Ae(c.d,i=f,m))do if(a+=10,s=se(u,a),r=t?Ue(l,a+10):se(e,a),c=K(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=K(n,e.abs(),0,3,1),t.s*=e.s):t=K(n,e,0,r.modulo,1),t=t.times(e),B=!0,n.minus(t))};p.naturalExponential=p.exp=function(){return lt(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=Ht(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=Gn(r,Yt(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(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&&(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=K(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 mt(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=Ht(h)-d.e-1,s=o%k,t.d[0]=q(10,s<0?k+s:s),e==null)e=o>0?t:u;else{if(a=new 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=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,B=!0,m};p.toHexadecimal=p.toHex=function(e,t){return mt(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=K(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 mt(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 P(a,r,o);if(t=j(e.e/k),t>=e.d.length-1&&(n=u<0?-u:u)<=Kn)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=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):(B=!1,c.rounding=a.s=1,n=Math.min(12,(t+"").length),i=lt(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(lt(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=q(10,k-t),a=e[i]%o|0,r==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=n<4&&a==99999||n>3&&a==49999||a==5e4||a==0):s=(n<4&&a+1==o||n>3&&a+1==o/2)&&(e[i+1]/o/100|0)==q(10,t-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(r||n<4)&&a==9999||!r&&n>3&&a==4999):s=((r||n<4)&&a+1==o||!r&&n>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==q(10,t-3)-1,s}function Ve(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]+=at.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 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,A,T,y,S,w,L,I,M,O,R,E,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=X,d=k,l=j(r.e/d)-j(i.e/d)),R=C.length,M=V.length,x=new v(W),A=x.d=[],f=0;C[f]==(V[f]||0);f++);if(C[f]>(V[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,R==1){for(m=0,C=C[0],w++;(f<M||m)&&w--;f++)L=m*c+(V[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),V=e(V,m,c),R=C.length,M=V.length),I=R,T=V.slice(0,R),y=T.length;y<R;)T[y++]=0;E=C.slice(),E.unshift(0),O=C[0],C[1]>=c/2&&++O;do m=0,u=t(C,T,R,y),u<0?(S=T[0],R!=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,R<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,R,y),u<1&&(m++,n(T,R<y?E:C,y,c))),y=T.length):u===0&&(m++,T=[0]),A[f++]=m,u&&T[0]?T[y++]=V[I]||0:(T=[V[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,Kt=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/q(10,i-s-1)%10|0;else if(m=Math.ceil((o+1)/k),a=f.length,m>=a)if(r){for(;a++<=m;)f.push(0);l=c=0,i=1,o%=k,s=o-k+1}else break e;else{for(l=a=f[m],i=1;a>=10;a/=10)i++;o%=k,s=o-k+i,c=s<0?0:l/q(10,i-s-1)%10|0}if(r=r||t<0||f[m+1]!==void 0||(s<0?l:l%q(10,i-s-1)),u=n<4?(c||r)&&(n==0||n==(e.s<0?3:2)):c>5||c==5&&(n==4||r||n==6&&(o>0?s>0?l/q(10,i-s):0:f[m-1])%10&1||n==(e.s<0?8:7)),t<1||!f[0])return f.length=0,u?(t-=e.e+1,f[0]=q(10,(k-t%k)%k),e.e=-t||0):f[0]=e.e=0,e;if(o==0?(f.length=m,a=1,m--):(f.length=m+1,a=q(10,k-o),f[m]=s>0?(l/q(10,i-s)%q(10,s)|0)*a:0),u)for(;;)if(m==0){for(o=1,s=f[0];s>=10;s/=10)o++;for(s=f[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,f[0]==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 Zt(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 Ue(e,t,n){if(t>Wn)throw B=!0,n&&(e.precision=n),Error(Wt);return P(new e(Ke),t,1,!0)}function Q(e,t,n){if(t>ct)throw Error(Wt);return P(new e(We),t,n,!0)}function Ht(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),Ft(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),Ft(t.d,s)}return B=!0,o}function Ot(e){return e.d[e.d.length-1]&1}function zt(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 lt(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(q(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(K(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=Ue(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=K(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(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(Ue(x,l+2,T).times(o+""))),c=K(c,new x(d),l,1),t==null)if(Ae(c.d,l-h,A,a))x.precision=l+=h,u=s=g=K(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 Zt(e){return String(e.s*e.s/0)}function ft(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 qn(e,t){var n,r,i,o,s,a,c,u,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),Gt.test(t))return ft(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(On.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=Ve(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=K(e,i,a*4)),c&&(e=e.times(Math.abs(c)<54?q(2,c):je.pow(2,c))),B=!0,e)}function Gn(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=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 B=!0,s.d.length=f+1,s}function He(e,t){for(var n=e;--t;)n*=e;return n}function Yt(e,t){var n,r=t.s<0,i=Q(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=Ot(n)?r?2:3:r?4:1,t;te=Ot(n)?r?1:4:r?3:2}return t.minus(i).abs()}function mt(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=Zt(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=Ve($(m),10,i),m.e=m.d.length),f=Ve(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=Kt),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+=at.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=Ve(l,i,t),c=f.length;!f[c-1];--c);for(s=1,l="1.";s<c;s++)l+=at.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 Ft(e,t){if(e.length>t)return e.length=t,!0}function Hn(e){return new this(e).abs()}function jn(e){return new this(e).acos()}function zn(e){return new this(e).acosh()}function Zn(e,t){return new this(e).plus(t)}function Yn(e){return new this(e).asin()}function Jn(e){return new this(e).asinh()}function Qn(e){return new this(e).atan()}function Xn(e){return new this(e).atanh()}function $n(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=Q(this,o,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?Q(this,r,i):new this(0),n.s=e.s):!e.d||t.isZero()?(n=Q(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=Q(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 er(e){return new this(e).cbrt()}function tr(e){return P(e=new this(e),e.e+1,2)}function nr(e,t,n){return new this(e).clamp(t,n)}function rr(e){if(!e||typeof e!="object")throw Error(qe+"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]=ut[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]=ut[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(Ut);else this[n]=!1;else throw Error(ae+n+": "+r);return this}function ir(e){return new this(e).cos()}function or(e){return new this(e).cosh()}function Jt(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,Vt(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 ft(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),Gt.test(o)?ft(u,o):qn(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=rr,i.clone=Jt,i.isDecimal=Vt,i.abs=Hn,i.acos=jn,i.acosh=zn,i.add=Zn,i.asin=Yn,i.asinh=Jn,i.atan=Qn,i.atanh=Xn,i.atan2=$n,i.cbrt=er,i.ceil=tr,i.clamp=nr,i.cos=ir,i.cosh=or,i.div=sr,i.exp=ar,i.floor=ur,i.hypot=cr,i.ln=lr,i.log=fr,i.log10=pr,i.log2=mr,i.max=dr,i.min=gr,i.mod=hr,i.mul=br,i.pow=yr,i.random=wr,i.round=Tr,i.sign=xr,i.sin=Pr,i.sinh=Ar,i.sqrt=Sr,i.sub=kr,i.sum=Ir,i.tan=Br,i.tanh=Cr,i.trunc=Lr,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 sr(e,t){return new this(e).div(t)}function ar(e){return new this(e).exp()}function ur(e){return P(e=new this(e),e.e+1,3)}function cr(){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 Vt(e){return e instanceof je||e&&e.toStringTag===qt||!1}function lr(e){return new this(e).ln()}function fr(e,t){return new this(e).log(t)}function mr(e){return new this(e).log(2)}function pr(e){return new this(e).log(10)}function dr(){return zt(this,arguments,"lt")}function gr(){return zt(this,arguments,"gt")}function hr(e,t){return new this(e).mod(t)}function br(e,t){return new this(e).mul(t)}function yr(e,t){return new this(e).pow(t)}function wr(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(Ut);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],e%=k,r&&e&&(i=q(10,k-e),a[o]=(r/i|0)*i);a[o]===0;o--)a.pop();if(o<0)n=0,a=[0];else{for(n=-1;a[0]===0;n-=k)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<k&&(n-=k-r)}return s.e=n,s.d=a,s}function Tr(e){return P(e=new this(e),e.e+1,this.rounding)}function xr(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function Pr(e){return new this(e).sin()}function Ar(e){return new this(e).sinh()}function Sr(e){return new this(e).sqrt()}function kr(e,t){return new this(e).sub(t)}function Ir(){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 Br(e){return new this(e).tan()}function Cr(e){return new this(e).tanh()}function Lr(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=Jt(ut);Ke=new je(Ke);We=new je(We);import{PublicKey as Nr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Qt}from"@solana/spl-token";var Xt={chainId:101,address:Nr.default.toBase58(),programId:Qt.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:Qt.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 pt}from"@solana/web3.js";var dt=class{constructor({mint:t,decimals:n,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(t===Pe.toBase58()||t instanceof pt&&Pe.equals(t)){this.decimals=fe.decimals,this.symbol=fe.symbol,this.name=fe.name,this.mint=new pt(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?pt.default:_t({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},me=dt;me.WSOL=new dt(J(G({},fe),{mint:fe.address}));var gt=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=gt;ze.SOL=new gt(Xt);import Ye from"big.js";import vr from"bn.js";import Or from"decimal.js-light";import{get as $t,set as Mr}from"lodash";var ht=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}},en={},Er={};function z(e){let t=$t(en,e);if(!t){let n=$t(Er,e);t=new ht({name:e,logLevel:n}),Mr(en,e,t)}return t}import Se from"bn.js";var tn=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>=tn||e<=-tn)&&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 Rr from"toformat";var Dr=Rr,ke=Dr;var Ze=z("module/fraction"),bt=ke(Ye),Ie=ke(Or),Fr={[0]:Ie.ROUND_DOWN,[1]:Ie.ROUND_HALF_UP,[2]:Ie.ROUND_UP},Vr={[0]:Ye.roundDown,[1]:Ye.roundHalfUp,[2]:Ye.roundUp},F=class{constructor(t,n=new vr(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)||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.`),bt.DP=t,bt.RM=Vr[r]||1,new bt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import Kr from"bn.js";var nn=new F(new Kr(100)),ye=class extends F{toSignificant(t=5,n,r){return this.mul(nn).toSignificant(t,n,r)}toFixed(t=2,n,r){return this.mul(nn).toFixed(t,n,r)}};var Wr=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(yt(r.decimals),yt(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&&Wr.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),wt=new ie(10),ns=new ie(100),rs=new ie(1e3),is=new ie(1e4);function yt(e){return wt.pow(Y(e))}import{PublicKey as qr}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 Tt=z("Raydium_accountInfo_util");async function on(e,t,n){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}=G({batchRequest:!1},n),s=xt(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=xt(c,10);a=(await(await Promise.all(u.map(async f=>await e._rpcBatchRequest(f)))).flat()).map(f=>(f.error&&Tt.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"&&Tt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(d[0],"base64"),executable:h,lamports:g,owner:new qr(b),rentEpoch:x}}return null})))}else try{a=await Promise.all(s.map(c=>e.getMultipleAccountsInfo(c,i)))}catch(c){c instanceof Error&&Tt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}function xt(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 Vs}from"@solana/spl-token";import{ComputeBudgetProgram as sn,Keypair as un,PublicKey as Cs,Transaction as cn,TransactionMessage as Gr,VersionedTransaction as ln}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 Hr}from"@solana/spl-token";var an=z("Raydium_txUtil"),fn=1644;function Je(e){let t=[],n=[];return e.microLamports&&(t.push(sn.setComputeUnitPrice({microLamports:e.microLamports})),n.push(Be.SetComputeUnitPrice)),e.units&&(t.push(sn.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 Qe(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 jr(e,t){e.length<1&&an.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&an.logWithError(`no signers provided:, ${t.toString()}`);let n=new cn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...e);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<fn}catch{return!1}}function Ce({instructions:e,payer:t,signers:n}){return jr(e,[t,...n])}function Le({instructions:e,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=un.generate().publicKey.toString()}){let o=new Gr({payerKey:t,recentBlockhash:r,instructions:e}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new ln(o).serialize()).toString("base64").length<fn}catch{return!1}}var zr=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e),Zr=e=>{let t=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof ln&&(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 cn&&(n.recentBlockhash||(n.recentBlockhash=Hr.toBase58()),n.feePayer||(n.feePayer=un.generate().publicKey)),t.push(Zr(n))}),console.log("simulate tx string:",t),t}import qs from"bn.js";import{PublicKey as mn,AddressLookupTableAccount as Xe}from"@solana/web3.js";async function Pt({connection:e,address:t}){let n=await on(e,[...new Set(t.map(i=>i.toString()))].map(i=>new mn(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 mn("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 At,SystemProgram as Yr,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}=Je(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){return t?(this.endInstructions.push(Yr.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 At(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 At(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,R=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),R({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,R(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=Fe(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 Pt({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 Qe(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 Qe(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(R=>R.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=Fe(f,["splitIns","computeBudgetConfig"]),o=r?Je(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(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 At(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 R=!1,E=null,v=null,W=V=>{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=V.err?"error":"success"}g==null||g([...I]),V.err||M()};this.loopMultiTxStatus&&(E=setInterval(async()=>{var V;if(R){clearInterval(E);return}try{let C=await this.connection.getTransaction(O,{commitment:"confirmed",maxSupportedTransactionVersion:0});C&&(R=!0,clearInterval(E),W({err:((V=C.meta)==null?void 0:V.err)||null}),console.log("tx status from getTransaction:",O))}catch(C){R=!0,clearInterval(E),console.error("getTransaction timeout:",C,O)}},et)),v=this.connection.onSignature(O,V=>{if(R){this.connection.removeSignatureListener(v);return}R=!0,W(V)},"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=Fe(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 Pt({connection:this.connection,address:u});for(let[y,S]of Object.entries(l))a[y]=S;let f=n?Je(n):{instructions:[],instructionTypes:[]},m=await we(this.connection,this.blockhashCommitment),d=this.signers.reduce((y,S)=>J(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(R,E)=>{g[E].length&&R.sign(g[E]),I&&(R.message.recentBlockhash=I)}),pe(h),(O=this.owner)!=null&&O.isKeyPair){if(S){let R=0,E=[];for(let v of h){if(++R,R<=L){console.log("skip tx: ",R),E.push("tx skipped");continue}let W=await this.connection.sendTransaction(v,{skipPreflight:M});await Qe(this.connection,W),E.push(W)}return{txIds:E,signedTxs:h}}return{txIds:await Promise.all(h.map(async R=>await this.connection.sendTransaction(R,{skipPreflight:M}))),signedTxs:h}}if(this.signAllTransactions){let R=await this.signAllTransactions(h.slice(L,h.length)),E=[...h.slice(0,L),...R];if(S){let v=0,W=[],V=async()=>{if(!E[v])return;if(v<L){W.push({txId:"",status:"success",signedTx:E[v]}),w==null||w([...W]),v++,V();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,Nt=le=>{de!==null&&clearInterval(de),ve!==null&&this.connection.removeSignatureListener(ve);let ee=W.findIndex(Tn=>Tn.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||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),Nt({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,Nt(le)},"confirmed"),this.connection.getSignatureStatus(C)};return V(),{txIds:[],signedTxs:E}}else{let v=[];for(let W=0;W<E.length;W+=1){let V=await this.connection.sendTransaction(E[W],{skipPreflight:M});v.push(V)}return{txIds:v,signedTxs:E}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}};var Xr=z("Raydium_amount"),pn=ke(Qr);function $r(e,t){let n="0",r="0";if(e.includes(".")){let i=e.split(".");i.length===2?([n,r]=i,r=r.padEnd(t,"0")):Xr.logWithError(`invalid number string, num: ${e}`)}else n=e;return[n,r.slice(0,t)||r]}var re=class extends F{constructor(n,r,i=!0,o){let s=new nt(0),a=wt.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]=$r(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 pn.DP=this.token.decimals,new pn(this.numerator.toString()).div(this.denominator.toString()).toFormat(n)}};function rn(e){return typeof e=="object"&&e!==null&&![me,re,ei,F,ti,ne,ye].some(t=>typeof t=="object"&&e instanceof t)}function rt(e){return typeof e=="string"?st(e):Array.isArray(e)?e.map(t=>rt(t)):rn(e)?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,rt(n)])):e}var St=(...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(St(t))}logInfo(...t){this.logger.info(St(t))}logAndCreateError(...t){let n=St(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{SYSVAR_CLOCK_PUBKEY as si,TransactionInstruction as bn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as yn}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 ni,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 ri,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 Fu,u8 as Vu,UInt as ii,union as Ku,Union as Wu,unionLayoutDiscriminator as Uu,utf8 as qu}from"@solana/buffer-layout";var dn=ri;var gn=ii;var hn=ni;function It(e){return new gn(1,e)}var kt=class extends dn{decode(t,n){return super.decode(t,n)}};function Bt(e,t,n){return new kt(e,t,n)}var oi=Bt([It("instruction"),hn("amount")]),De=Bt([It("instruction")]);function it({programId:e},t){let n=[{pubkey:yn,isSigner:!1,isWritable:!1},{pubkey:vt,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 bn({keys:n,programId:e,data:r})}function Ct(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:yn,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 bn({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},Lt=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 wn(t.coin).isZero(),!new wn(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?[Ct(J(G({},x),{side:"base"}))]:[],...l?[Ct(J(G({},x),{side:"quote"}))]:[]]}).versionBuild({txVersion:o})}};export{Lt as default};
//# sourceMappingURL=ido.mjs.map