@cobaltx/sdk-v2
Version:
An SDK for building applications on top of CobaltX.
9 lines • 80.1 kB
JavaScript
import{PublicKey as Be}from"@solana/web3.js";import an from"bn.js";import{PublicKey as J}from"@solana/web3.js";var cn={["sooneth"]:{NATIVE_TOKEN_SYMBOL:"ETH",SWAP_HOST:"https://trade-api.cobaltx.io",BASE_HOST:"https://api.cobaltx.io",OWNER_BASE_HOST:"https://api.cobaltx.io",SERVICE_BASE_HOST:"https://api.cobaltx.io",MONITOR_BASE_HOST:"https://api.cobaltx.io",SERVICE_1_BASE_HOST:"https://api.cobaltx.io",ANALYTICS_BASE_HOST:"https://api.cobaltx.io",GITHUB_TOKEN_LIST_URL:"https://raw.githubusercontent.com/cobaltx-io/tokens/main/tokens.json",WSOL_MINT_ADDRESS:"So11111111111111111111111111111111111111112",GITHUB_LOGO_URL:"https://raw.githubusercontent.com/cobaltx-io/tokens/main/logo/So11111111111111111111111111111111111111112.png",LOOKUP_TABLE_CACHE:"6fa5xTGwoYJPMLMXaQ4tQFKMoYvXuvsJFLigMJ9a5QeB",CLMM_PROGRAMM_ID:"2TnjBuwqyBB9to5jURagDT7jLmBPefGRiKL2yh1zPZ4V",BONK_MINT_ADDRESS:"71kRXzJMvSeArtXYNEWa8KAjpRJosdMQ7Dpgy5Jt5zfd",SOL_MINT_ADDRESS:"ERFzpDteGNo8LTDKW1WwVGrkRMmA2y9WZHXNHxMA6BSV",USDC_MINT_ADDRESS:"ExYxyorY2x3h8gLcuypnHFQV3F36rmMkQVn7HHV8mUy9",USDT_MINT_ADDRESS:"742wcXVzkhNuEePAot7L3GvPseh93pvYFPgyHLX8mUy9",FULL_TOKEN_NAME:"Wrapped Ethereum",ETH_MINT_ADDRESS:"71kRXzJMvSeArtXYNEWa8KAjpRJosdMQ7Dpgy5Jt5zfd",WRAPPED_TOKEN_SYMBOL:"WETH",INPUT_MINT_ADDRESS:J.default.toString(),OUTPUT_MINT_ADDRESS:"742wcXVzkhNuEePAot7L3GvPseh93pvYFPgyHLX8mUy9",POPULAR_TOKENS:{SOL:J.default.toString(),ETH:"71kRXzJMvSeArtXYNEWa8KAjpRJosdMQ7Dpgy5Jt5zfd",USDC:"ExYxyorY2x3h8gLcuypnHFQV3F36rmMkQVn7HHV8KjtA",USDT:"742wcXVzkhNuEePAot7L3GvPseh93pvYFPgyHLX8mUy9"},WSOL_DECIMALS:9},["svmbnb"]:{NATIVE_TOKEN_SYMBOL:"BNB",SWAP_HOST:"https://trade-api.svmbnb.cobaltx.io",BASE_HOST:"https://api.svmbnb.cobaltx.io",OWNER_BASE_HOST:"https://api.svmbnb.cobaltx.io",SERVICE_BASE_HOST:"https://api.svmbnb.cobaltx.io",MONITOR_BASE_HOST:"https://api.svmbnb.cobaltx.io",SERVICE_1_BASE_HOST:"https://api.svmbnb.cobaltx.io",ANALYTICS_BASE_HOST:"https://api.svmbnb.cobaltx.io",GITHUB_TOKEN_LIST_URL:"https://raw.githubusercontent.com/cobaltx-io/svmbnb-tokens/main/tokens.json",WSOL_MINT_ADDRESS:"So11111111111111111111111111111111111111112",GITHUB_LOGO_URL:"https://raw.githubusercontent.com/cobaltx-io/svmbnb-tokens/main/logo/So11111111111111111111111111111111111111112.svg",LOOKUP_TABLE_CACHE:"GSR5XQGWhpzV9TTduBJR6qPNjYsepMQSGkpaqfrbrW9w",CLMM_PROGRAMM_ID:"6f1b3xyVZbnWMHXBjgW1KPwxmPAgXcRdrvKNn4Nmf1Cn",ETH_MINT_ADDRESS:"H3xpFH1yN5E1zFdAoBrC9Y7m7RfJUeQNLvkHi8kNf9Qu",USDC_MINT_ADDRESS:"5odzAHDpDETYhupMkc6kjiYen3K2nrf8oPmvqmsoNW4L",USDT_MINT_ADDRESS:"s8cRDxnp3VxjB6khRnGDdxv6QbCUPyY9Vn1bgSQQsnG",SOL_MINT_ADDRESS:"So11111111111111111111111111111111111111112",FULL_TOKEN_NAME:"Wrapped BNB",WRAPPED_TOKEN_SYMBOL:"WBNB",INPUT_MINT_ADDRESS:J.default.toBase58(),OUTPUT_MINT_ADDRESS:"ABoT7umUXnx8RtJTeRqKB6myebVjP2wdJGQuV23jVVH3",POPULAR_TOKENS:{SOL:J.default.toString(),ETH:"H3xpFH1yN5E1zFdAoBrC9Y7m7RfJUeQNLvkHi8kNf9Qu",USDC:"5odzAHDpDETYhupMkc6kjiYen3K2nrf8oPmvqmsoNW4L",USDT:"s8cRDxnp3VxjB6khRnGDdxv6QbCUPyY9Vn1bgSQQsnG"},WSOL_DECIMALS:9},["svmbnb_testnet"]:{NATIVE_TOKEN_SYMBOL:"BNB",SWAP_HOST:"https://trade-api.svmbnb.cobaltx.io",BASE_HOST:"https://api.testnet.svmbnb.cobaltx.io",OWNER_BASE_HOST:"https://api.testnet.svmbnb.cobaltx.io",SERVICE_BASE_HOST:"https://api.testnet.svmbnb.cobaltx.io",MONITOR_BASE_HOST:"https://api.testnet.svmbnb.cobaltx.io",SERVICE_1_BASE_HOST:"https://api.testnet.svmbnb.cobaltx.io",ANALYTICS_BASE_HOST:"https://api.testnet.svmbnb.cobaltx.io",GITHUB_TOKEN_LIST_URL:"https://raw.githubusercontent.com/cobaltx-io/svmbnb-testnet-tokens/main/tokens.json",WSOL_MINT_ADDRESS:"So11111111111111111111111111111111111111112",GITHUB_LOGO_URL:"https://raw.githubusercontent.com/cobaltx-io/svmbnb-testnet-tokens/main/logo/So11111111111111111111111111111111111111112.svg",LOOKUP_TABLE_CACHE:"D79gSiTNV9pyLPJyscW5yZYwdPVDrtKsamL3ZfQi6JiM",CLMM_PROGRAMM_ID:"FgycD57kcCZsjpoTAi2u67GTPxm59bPEhycL2Lw1icm1",ETH_MINT_ADDRESS:"5aLr3sV4UNVcMB6CiA3PZTWbgVBRNyMdEp1s5LNfhR95",USDC_MINT_ADDRESS:"jrhUNRxEDpFmGV3sqaWyveS7bVtRQgtHsfBTCdjfMBw",USDT_MINT_ADDRESS:"Ex86C4gmdjvPRNrfyvsyejbjkP6RstNaBC5g3itZw2iv",FULL_TOKEN_NAME:"Wrapped BNB",WRAPPED_TOKEN_SYMBOL:"WBNB",INPUT_MINT_ADDRESS:"bnb",OUTPUT_MINT_ADDRESS:"jrhUNRxEDpFmGV3sqaWyveS7bVtRQgtHsfBTCdjfMBw",POPULAR_TOKENS:{SOL:J.default.toString(),ETH:"5aLr3sV4UNVcMB6CiA3PZTWbgVBRNyMdEp1s5LNfhR95",USDC:"jrhUNRxEDpFmGV3sqaWyveS7bVtRQgtHsfBTCdjfMBw",USDT:"Ex86C4gmdjvPRNrfyvsyejbjkP6RstNaBC5g3itZw2iv"},WSOL_DECIMALS:9},["svmbase_testnet"]:{NATIVE_TOKEN_SYMBOL:"ETH",SWAP_HOST:"https://trade-api.testnet.svmbase.cobaltx.io",BASE_HOST:"https://api.testnet.svmbase.cobaltx.io",OWNER_BASE_HOST:"https://api.testnet.svmbase.cobaltx.io",SERVICE_BASE_HOST:"https://api.testnet.svmbase.cobaltx.io",MONITOR_BASE_HOST:"https://api.testnet.svmbase.cobaltx.io",SERVICE_1_BASE_HOST:"https://api.testnet.svmbase.cobaltx.io",ANALYTICS_BASE_HOST:"https://api.testnet.svmbase.cobaltx.io",GITHUB_TOKEN_LIST_URL:"https://raw.githubusercontent.com/cobaltx-io/svmbase-testnet-tokens/main/tokens.json",WSOL_MINT_ADDRESS:"So11111111111111111111111111111111111111112",GITHUB_LOGO_URL:"https://raw.githubusercontent.com/cobaltx-io/svmbase-testnet-tokens/main/logo/So11111111111111111111111111111111111111112.png",LOOKUP_TABLE_CACHE:"AyPMvNmUUY2jwZ75NxhkLYPraQGNk5DssVfP4TnMcPJF",CLMM_PROGRAMM_ID:"DnZnBqJKiGSYHUHYvkXAbQmkMbwrjfgo4orR7jWyMsik",ETH_MINT_ADDRESS:"71kRXzJMvSeArtXYNEWa8KAjpRJosdMQ7Dpgy5Jt5zfd",USDC_MINT_ADDRESS:"63tPXWPnYeZ9hA3dJsAY5RcQ8YbwEz8uZ5nKu3uFD1aK",USDT_MINT_ADDRESS:"4fyX7hSmPetQC2wRS3YVAhWeFzif7WStarKwTvCXrBtD",FULL_TOKEN_NAME:"Wrapped Ethereum",WRAPPED_TOKEN_SYMBOL:"WETH",INPUT_MINT_ADDRESS:J.default.toString(),OUTPUT_MINT_ADDRESS:"63tPXWPnYeZ9hA3dJsAY5RcQ8YbwEz8uZ5nKu3uFD1aK",POPULAR_TOKENS:{SOL:J.default.toString(),ETH:"So11111111111111111111111111111111111111112",USDC:"63tPXWPnYeZ9hA3dJsAY5RcQ8YbwEz8uZ5nKu3uFD1aK",USDT:"4fyX7hSmPetQC2wRS3YVAhWeFzif7WStarKwTvCXrBtD"},WSOL_DECIMALS:9},["soonbase_mainnet"]:{NATIVE_TOKEN_SYMBOL:"ETH",SWAP_HOST:"https://trade-api.soonbase.cobaltx.io",BASE_HOST:"https://api.soonbase.cobaltx.io",OWNER_BASE_HOST:"https://api.soonbase.cobaltx.io",SERVICE_BASE_HOST:"https://api.soonbase.cobaltx.io",MONITOR_BASE_HOST:"https://api.soonbase.cobaltx.io",SERVICE_1_BASE_HOST:"https://api.soonbase.cobaltx.io",ANALYTICS_BASE_HOST:"https://api.soonbase.cobaltx.io",GITHUB_TOKEN_LIST_URL:"https://raw.githubusercontent.com/cobaltx-io/soonbase-tokens/main/tokens.json",WSOL_MINT_ADDRESS:"So11111111111111111111111111111111111111112",GITHUB_LOGO_URL:"https://raw.githubusercontent.com/cobaltx-io/soonbase-tokens/main/logo/So11111111111111111111111111111111111111112.png",LOOKUP_TABLE_CACHE:"FGRusuLycV6nhSPQc9VX55YjT6DCzJFc59mvTTarSTjK",CLMM_PROGRAMM_ID:"6f1b3xyVZbnWMHXBjgW1KPwxmPAgXcRdrvKNn4Nmf1Cn",ETH_MINT_ADDRESS:"71kRXzJMvSeArtXYNEWa8KAjpRJosdMQ7Dpgy5Jt5zfd",USDC_MINT_ADDRESS:"BoYN2f2gLQS4jpvMSV9dAZwfzKJiKGk4NPck5BjXfujo",USDT_MINT_ADDRESS:"J87bysZjwfS3n6KR21cwbdPZVJWNSFcXpWF5kiChAwQH",FULL_TOKEN_NAME:"Wrapped Ethereum",WRAPPED_TOKEN_SYMBOL:"WETH",INPUT_MINT_ADDRESS:J.default.toString(),OUTPUT_MINT_ADDRESS:"BoYN2f2gLQS4jpvMSV9dAZwfzKJiKGk4NPck5BjXfujo",POPULAR_TOKENS:{SOL:J.default.toString(),ETH:"FkvCG5DcuYCQ1BnPH4ZzTkCdk3VzutgyDAFBec4qAjhh",USDC:"BoYN2f2gLQS4jpvMSV9dAZwfzKJiKGk4NPck5BjXfujo",USDT:"J87bysZjwfS3n6KR21cwbdPZVJWNSFcXpWF5kiChAwQH"},WSOL_DECIMALS:9}},ue=e=>cn[e];import{PublicKey as k}from"@solana/web3.js";var zr=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Qr=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Zr=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Xr=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Jr=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),$r=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),ei=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),ti=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),ni=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ri=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo");var ii=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),oi=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),si=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ai=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ln=new k("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),fn=new k("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),mn=new k("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),pn=new k("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),ui=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ci=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),li=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),dn=new k("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),gn=new k("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),hn=new k("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),fi=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),bn=new k("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),mi=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Tn=new k("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix"),ge={IDO_PROGRAM_ID_V1:ln,IDO_PROGRAM_ID_V2:fn,IDO_PROGRAM_ID_V3:mn,IDO_PROGRAM_ID_V4:pn};var pi={SERUM_MARKET:k.default,OPENBOOK_MARKET:new k("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:k.default,FarmV3:new k("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new k("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new k("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new k("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new k("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new k("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),CLMM_LOCK_PROGRAM_ID:new k("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),CLMM_LOCK_AUTH_ID:new k("8qmHNvu2Kr2C7U8mJL4Vz1vTDxMhVuXKREwU7TNoaVEo"),Router:new k("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:dn,CREATE_CPMM_POOL_AUTH:gn,CREATE_CPMM_POOL_FEE_ACC:hn,FEE_DESTINATION_ID:new k("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR"),LOCK_CPMM_PROGRAM:bn,LCOK_CPMM_AUTH:Tn};import{PublicKey as vr}from"@solana/web3.js";import Kr from"bn.js";import Mr from"big.js";import Ye from"bn.js";import ne from"bn.js";var fe=9e15,se=1e9,Xe="0123456789abcdef",De="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Me="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Je={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-fe,maxE:fe,crypto:!1},Et,$,_=!0,Oe="[DecimalError] ",oe=Oe+"Invalid argument: ",It=Oe+"Precision limit exceeded",Bt=Oe+"crypto unavailable",Lt="[object Decimal]",q=Math.floor,V=Math.pow,yn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,wn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Pn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Ct=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Q=1e7,A=7,xn=9007199254740991,Sn=De.length-1,$e=Me.length-1,p={toStringTag:Lt};p.absoluteValue=p.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),w(e)};p.ceil=function(){return w(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(oe+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,u=o.s,c=e.s;if(!s||!a)return!u||!c?NaN:u!==c?u:s===a?0:!s^u<0?1:-1;if(!s[0]||!a[0])return s[0]?u:a[0]?-c:0;if(u!==c)return u;if(o.e!==e.e)return o.e>e.e^u<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]^u<0?1:-1;return r===i?0:r>i^u<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())+A,r.rounding=1,n=An(r,vt(r,n)),r.precision=e,r.rounding=t,w($==2||$==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,u,c,l=this,f=l.constructor;if(!l.isFinite()||l.isZero())return new f(l);for(_=!1,o=l.s*V(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=V(n,1/3),e=q((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,u=a.times(a).times(a),c=u.plus(l),r=M(c.plus(l).times(a),c.plus(u),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&&(w(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")&&(w(r,e+1,1),t=!r.times(r).times(r).eq(l));break}return _=!0,w(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-q(this.e/A))*A,e=t[e],e)for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n};p.dividedBy=p.div=function(e){return M(this,new this.constructor(e))};p.dividedToIntegerBy=p.divToInt=function(e){var t=this,n=t.constructor;return w(M(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 w(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/Ke(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=me(s,1,o.times(t),new s(1),!0);for(var u,c=e,l=new s(8);c--;)u=o.times(o),o=a.minus(u.times(l.minus(u.times(l))));return w(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=me(o,2,i,i,!0);else{e=1.4*Math.sqrt(r),e=e>16?16:e|0,i=i.times(1/Ke(5,e)),i=me(o,2,i,i,!0);for(var s,a=new o(5),u=new o(16),c=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(u.times(s).plus(c))))}return o.precision=t,o.rounding=n,w(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,M(n.sinh(),n.cosh(),r.precision=e,r.rounding=t)):new r(n.s)};p.inverseCosine=p.acos=function(){var e=this,t=e.constructor,n=e.abs().cmp(1),r=t.precision,i=t.rounding;return n!==-1?n===0?e.isNeg()?Z(t,r,i):new t(0):new t(NaN):e.isZero()?Z(t,r+4,i).times(.5):(t.precision=r+6,t.rounding=1,e=new t(1).minus(e).div(e.plus(1)).sqrt().atan(),t.precision=r,t.rounding=i,e.times(2))};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,_=!1,n=n.times(n).minus(1).sqrt().plus(n),_=!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,_=!1,n=n.times(n).plus(1).sqrt().plus(n),_=!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?w(new o(i),e,t,!0):(o.precision=n=r-i.e,i=M(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=Z(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,u,c=this,l=c.constructor,f=l.precision,m=l.rounding;if(c.isFinite()){if(c.isZero())return new l(c);if(c.abs().eq(1)&&f+4<=$e)return s=Z(l,f+4,m).times(.25),s.s=c.s,s}else{if(!c.s)return new l(NaN);if(f+4<=$e)return s=Z(l,f+4,m).times(.5),s.s=c.s,s}for(l.precision=a=f+10,l.rounding=1,n=Math.min(28,a/A+2|0),e=n;e;--e)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(_=!1,t=Math.ceil(a/A),r=1,u=c.times(c),s=new l(c),i=c;e!==-1;)if(i=i.times(u),o=s.minus(i.div(r+=2)),i=i.times(u),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)),_=!0,w(s,l.precision=f,l.rounding=m,!0)};p.isFinite=function(){return!!this.d};p.isInteger=p.isInt=function(){return!!this.d&&q(this.e/A)>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,u,c=this,l=c.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=c.d,c.s<0||!n||!n[0]||c.eq(1))return new l(n&&!n[0]?-1/0:c.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(_=!1,a=f+d,s=ie(c,a),r=t?Re(l,a+10):ie(e,a),u=M(s,r,a,1),he(u.d,i=f,m))do if(a+=10,s=ie(c,a),r=t?Re(l,a+10):ie(e,a),u=M(s,r,a,1),!o){+H(u.d).slice(i+1,i+15)+1==1e14&&(u=w(u,f+1,0));break}while(he(u.d,i+=10,m));return _=!0,w(u,f,m)};p.minus=p.sub=function(e){var t,n,r,i,o,s,a,u,c,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(c=d.d,m=e.d,a=h.precision,u=h.rounding,!c[0]||!m[0]){if(m[0])e.s=-e.s;else if(c[0])e=new h(d);else return new h(u===3?-0:0);return _?w(e,a,u):e}if(n=q(e.e/A),l=q(d.e/A),c=c.slice(),o=l-n,o){for(f=o<0,f?(t=c,o=-o,s=m.length):(t=m,n=l,s=c.length),r=Math.max(Math.ceil(a/A),s)+2,o>r&&(o=r,t.length=1),t.reverse(),r=o;r--;)t.push(0);t.reverse()}else{for(r=c.length,s=m.length,f=r<s,f&&(s=r),r=0;r<s;r++)if(c[r]!=m[r]){f=c[r]<m[r];break}o=0}for(f&&(t=c,c=m,m=t,e.s=-e.s),s=c.length,r=m.length-s;r>0;--r)c[s++]=0;for(r=m.length;r>o;){if(c[--r]<m[r]){for(i=r;i&&c[--i]===0;)c[i]=Q-1;--c[i],c[r]+=Q}c[r]-=m[r]}for(;c[--s]===0;)c.pop();for(;c[0]===0;c.shift())--n;return c[0]?(e.d=c,e.e=ve(c,n),_?w(e,a,u):e):new h(u===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]?w(new r(n),r.precision,r.rounding):(_=!1,r.modulo==9?(t=M(n,e.abs(),0,3,1),t.s*=e.s):t=M(n,e,0,r.modulo,1),t=t.times(e),_=!0,n.minus(t))};p.naturalExponential=p.exp=function(){return et(this)};p.naturalLogarithm=p.ln=function(){return ie(this)};p.negated=p.neg=function(){var e=new this.constructor(this);return e.s=-e.s,w(e)};p.plus=p.add=function(e){var t,n,r,i,o,s,a,u,c,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(c=f.d,l=e.d,a=m.precision,u=m.rounding,!c[0]||!l[0])return l[0]||(e=new m(f)),_?w(e,a,u):e;if(o=q(f.e/A),r=q(e.e/A),c=c.slice(),i=o-r,i){for(i<0?(n=c,i=-i,s=l.length):(n=l,r=o,s=c.length),o=Math.ceil(a/A),s=o>s?o+1:s+1,i>s&&(i=s,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for(s=c.length,i=l.length,s-i<0&&(i=s,n=l,l=c,c=n),t=0;i;)t=(c[--i]=c[i]+l[i]+t)/Q|0,c[i]%=Q;for(t&&(c.unshift(t),++r),s=c.length;c[--s]==0;)c.pop();return e.d=c,e.e=ve(c,r),_?w(e,a,u):e};p.precision=p.sd=function(e){var t,n=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(oe+e);return n.d?(t=Dt(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t};p.round=function(){var e=this,t=e.constructor;return w(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())+A,r.rounding=1,n=_n(r,vt(r,n)),r.precision=e,r.rounding=t,w($>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,u=s.e,c=s.s,l=s.constructor;if(c!==1||!a||!a[0])return new l(!c||c<0&&(!a||a[0])?NaN:a?s:1/0);for(_=!1,c=Math.sqrt(+s),c==0||c==1/0?(t=H(a),(t.length+u)%2==0&&(t+="0"),c=Math.sqrt(t),u=q((u+1)/2)-(u<0||u%2),c==1/0?t="5e"+u:(t=c.toExponential(),t=t.slice(0,t.indexOf("e")+1)+u),r=new l(t)):r=new l(c.toString()),n=(u=l.precision)+3;;)if(o=r,r=o.plus(M(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&&(w(o,u+1,0),o.times(o).eq(s))){r=o;break}n+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(w(r,u+1,1),e=!r.times(r).eq(s));break}return _=!0,w(r,u,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=M(n,new r(1).minus(n.times(n)).sqrt(),e+10,0),r.precision=e,r.rounding=t,w($==2||$==4?n.neg():n,e,t,!0)):new r(NaN)};p.times=p.mul=function(e){var t,n,r,i,o,s,a,u,c,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=q(l.e/A)+q(e.e/A),u=m.length,c=d.length,u<c&&(o=m,m=d,d=o,s=u,u=c,c=s),o=[],s=u+c,r=s;r--;)o.push(0);for(r=c;--r>=0;){for(t=0,i=u+r;i>r;)a=o[i]+d[r]*m[i-r-1]+t,o[i--]=a%Q|0,t=a/Q|0;o[i]=(o[i]+t)%Q|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=ve(o,n),_?w(e,f.precision,f.rounding):e};p.toBinary=function(e,t){return tt(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:(j(e,0,se),t===void 0?t=r.rounding:j(t,0,8),w(n,e+n.e+1,t))};p.toExponential=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=X(r,!0):(j(e,0,se),t===void 0?t=i.rounding:j(t,0,8),r=w(new i(r),e+1,t),n=X(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=X(i):(j(e,0,se),t===void 0?t=o.rounding:j(t,0,8),r=w(new o(i),e+i.e+1,t),n=X(r,!1,e+r.e+1)),i.isNeg()&&!i.isZero()?"-"+n:n};p.toFraction=function(e){var t,n,r,i,o,s,a,u,c,l,f,m,d=this,h=d.d,g=d.constructor;if(!h)return new g(d);if(c=n=new g(1),r=u=new g(0),t=new g(r),o=t.e=Dt(h)-d.e-1,s=o%A,t.d[0]=V(10,s<0?A+s:s),e==null)e=o>0?t:c;else{if(a=new g(e),!a.isInt()||a.lt(c))throw Error(oe+a);e=a.gt(t)?o>0?t:c:a}for(_=!1,a=new g(H(h)),l=g.precision,g.precision=o=h.length*A*2;f=M(a,t,0,1,1),i=n.plus(f.times(r)),i.cmp(e)!=1;)n=r,r=i,i=c,c=u.plus(f.times(i)),u=i,i=t,t=a.minus(f.times(i)),a=i;return i=M(e.minus(n),r,0,1,1),u=u.plus(i.times(c)),n=n.plus(i.times(r)),u.s=c.s=d.s,m=M(c,r,o,1).minus(d).abs().cmp(M(u,n,o,1).minus(d).abs())<1?[c,r]:[u,n],g.precision=l,_=!0,m};p.toHexadecimal=p.toHex=function(e,t){return tt(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:j(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]?(_=!1,n=M(n,e,0,t,1).times(e),_=!0,w(n)):(e.s=n.s,n=e),n};p.toNumber=function(){return+this};p.toOctal=function(e,t){return tt(this,8,e,t)};p.toPower=p.pow=function(e){var t,n,r,i,o,s,a=this,u=a.constructor,c=+(e=new u(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new u(V(+a,c));if(a=new u(a),a.eq(1))return a;if(r=u.precision,o=u.rounding,e.eq(1))return w(a,r,o);if(t=q(e.e/A),t>=e.d.length-1&&(n=c<0?-c:c)<=xn)return i=Mt(u,a,n,r),e.s<0?new u(1).div(i):w(i,r,o);if(s=a.s,s<0){if(t<e.d.length-1)return new u(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=V(+a,c),t=n==0||!isFinite(n)?q(c*(Math.log("0."+H(a.d))/Math.LN10+a.e+1)):new u(n+"").e,t>u.maxE+1||t<u.minE-1?new u(t>0?s/0:0):(_=!1,u.rounding=a.s=1,n=Math.min(12,(t+"").length),i=et(e.times(ie(a,r+n)),r),i.d&&(i=w(i,r+5,1),he(i.d,r,o)&&(t=r+10,i=w(et(e.times(ie(a,t+n)),t),t+5,1),+H(i.d).slice(r+1,r+15)+1==1e14&&(i=w(i,r+1,0)))),i.s=s,_=!0,u.rounding=o,w(i,r,o))};p.toPrecision=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=X(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(j(e,1,se),t===void 0?t=i.rounding:j(t,0,8),r=w(new i(r),e,t),n=X(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):(j(e,1,se),t===void 0?t=r.rounding:j(t,0,8)),w(new r(n),e,t)};p.toString=function(){var e=this,t=e.constructor,n=X(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n};p.truncated=p.trunc=function(){return w(new this.constructor(this),this.e+1,1)};p.valueOf=p.toJSON=function(){var e=this,t=e.constructor,n=X(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=A-r.length,n&&(o+=re(n)),o+=r;s=e[t],r=s+"",n=A-r.length,n&&(o+=re(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function j(e,t,n){if(e!==~~e||e<t||e>n)throw Error(oe+e)}function he(e,t,n,r){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=A,i=0):(i=Math.ceil((t+1)/A),t%=A),o=V(10,A-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)==V(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)==V(10,t-3)-1,s}function Le(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]+=Xe.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 An(e,t){var n,r,i;if(t.isZero())return t;r=t.d.length,r<32?(n=Math.ceil(r/3),i=(1/Ke(4,n)).toString()):(n=16,i="2.3283064365386962890625e-10"),e.precision+=n,t=me(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 M=function(){function e(r,i,o){var s,a=0,u=r.length;for(r=r.slice();u--;)s=r[u]*i+a,r[u]=s%o|0,a=s/o|0;return a&&r.unshift(a),r}function t(r,i,o,s){var a,u;if(o!=s)u=o>s?1:-1;else for(a=u=0;a<o;a++)if(r[a]!=i[a]){u=r[a]>i[a]?1:-1;break}return u}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,u){var c,l,f,m,d,h,g,y,b,N,S,T,P,x,E,L,O,z,R,K,W=r.constructor,F=r.s==i.s?1:-1,U=r.d,C=i.d;if(!U||!U[0]||!C||!C[0])return new W(!r.s||!i.s||(U?C&&U[0]==C[0]:!C)?NaN:U&&U[0]==0||!C?F*0:F/0);for(u?(d=1,l=r.e-i.e):(u=Q,d=A,l=q(r.e/d)-q(i.e/d)),R=C.length,O=U.length,b=new W(F),N=b.d=[],f=0;C[f]==(U[f]||0);f++);if(C[f]>(U[f]||0)&&l--,o==null?(x=o=W.precision,s=W.rounding):a?x=o+(r.e-i.e)+1:x=o,x<0)N.push(1),h=!0;else{if(x=x/d+2|0,f=0,R==1){for(m=0,C=C[0],x++;(f<O||m)&&x--;f++)E=m*u+(U[f]||0),N[f]=E/C|0,m=E%C|0;h=m||f<O}else{for(m=u/(C[0]+1)|0,m>1&&(C=e(C,m,u),U=e(U,m,u),R=C.length,O=U.length),L=R,S=U.slice(0,R),T=S.length;T<R;)S[T++]=0;K=C.slice(),K.unshift(0),z=C[0],C[1]>=u/2&&++z;do m=0,c=t(C,S,R,T),c<0?(P=S[0],R!=T&&(P=P*u+(S[1]||0)),m=P/z|0,m>1?(m>=u&&(m=u-1),g=e(C,m,u),y=g.length,T=S.length,c=t(g,S,y,T),c==1&&(m--,n(g,R<y?K:C,y,u))):(m==0&&(c=m=1),g=C.slice()),y=g.length,y<T&&g.unshift(0),n(S,g,T,u),c==-1&&(T=S.length,c=t(C,S,R,T),c<1&&(m++,n(S,R<T?K:C,T,u))),T=S.length):c===0&&(m++,S=[0]),N[f++]=m,c&&S[0]?S[T++]=U[L]||0:(S=[U[L]],T=1);while((L++<O||S[0]!==void 0)&&x--);h=S[0]!==void 0}N[0]||N.shift()}if(d==1)b.e=l,Et=h;else{for(f=1,m=N[0];m>=10;m/=10)f++;b.e=f+l*d-1,w(b,a?o+b.e+1:o,s,h)}return b}}();function w(e,t,n,r){var i,o,s,a,u,c,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+=A,s=t,l=f[m=0],u=l/V(10,i-s-1)%10|0;else if(m=Math.ceil((o+1)/A),a=f.length,m>=a)if(r){for(;a++<=m;)f.push(0);l=u=0,i=1,o%=A,s=o-A+1}else break e;else{for(l=a=f[m],i=1;a>=10;a/=10)i++;o%=A,s=o-A+i,u=s<0?0:l/V(10,i-s-1)%10|0}if(r=r||t<0||f[m+1]!==void 0||(s<0?l:l%V(10,i-s-1)),c=n<4?(u||r)&&(n==0||n==(e.s<0?3:2)):u>5||u==5&&(n==4||r||n==6&&(o>0?s>0?l/V(10,i-s):0:f[m-1])%10&1||n==(e.s<0?8:7)),t<1||!f[0])return f.length=0,c?(t-=e.e+1,f[0]=V(10,(A-t%A)%A),e.e=-t||0):f[0]=e.e=0,e;if(o==0?(f.length=m,a=1,m--):(f.length=m+1,a=V(10,A-o),f[m]=s>0?(l/V(10,i-s)%V(10,s)|0)*a:0),c)for(;;)if(m==0){for(o=1,s=f[0];s>=10;s/=10)o++;for(s=f[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,f[0]==Q&&(f[0]=1));break}else{if(f[m]+=a,f[m]!=Q)break;f[m--]=0,a=1}for(o=f.length;f[--o]===0;)f.pop()}return _&&(e.e>d.maxE?(e.d=null,e.e=NaN):e.e<d.minE&&(e.e=0,e.d=[0])),e}function X(e,t,n){if(!e.isFinite())return Ot(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)+re(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+re(-i-1)+o,n&&(r=n-s)>0&&(o+=re(r))):i>=s?(o+=re(i+1-s),n&&(r=n-i-1)>0&&(o=o+"."+re(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-s)>0&&(i+1===s&&(o+="."),o+=re(r))),o}function ve(e,t){var n=e[0];for(t*=A;n>=10;n/=10)t++;return t}function Re(e,t,n){if(t>Sn)throw _=!0,n&&(e.precision=n),Error(It);return w(new e(De),t,1,!0)}function Z(e,t,n){if(t>$e)throw Error(It);return w(new e(Me),t,n,!0)}function Dt(e){var t=e.length-1,n=t*A+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 re(e){for(var t="";e--;)t+="0";return t}function Mt(e,t,n,r){var i,o=new e(1),s=Math.ceil(r/A+4);for(_=!1;;){if(n%2&&(o=o.times(t),_t(o.d,s)&&(i=!0)),n=q(n/2),n===0){n=o.d.length-1,i&&o.d[n]===0&&++o.d[n];break}t=t.times(t),_t(t.d,s)}return _=!0,o}function Nt(e){return e.d[e.d.length-1]&1}function Rt(e,t,n){for(var r,i,o=new e(t[0]),s=0;++s<t.length;){if(i=new e(t[s]),!i.s){o=i;break}r=o.cmp(i),(r===n||r===0&&o.s===n)&&(o=i)}return o}function et(e,t){var n,r,i,o,s,a,u,c=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?(_=!1,u=h):u=t,a=new m(.03125);e.e>-2;)e=e.times(a),f+=5;for(r=Math.log(V(2,f))/Math.LN10*2+5|0,u+=r,n=o=s=new m(1),m.precision=u;;){if(o=w(o.times(e),u,1),n=n.times(++l),a=s.plus(M(o,n,u,1)),H(a.d).slice(0,u)===H(s.d).slice(0,u)){for(i=f;i--;)s=w(s.times(s),u,1);if(t==null)if(c<3&&he(s.d,u-r,d,c))m.precision=u+=10,n=o=a=new m(1),l=0,c++;else return w(s,m.precision=h,d,_=!0);else return m.precision=h,s}s=a}}function ie(e,t){var n,r,i,o,s,a,u,c,l,f,m,d=1,h=10,g=e,y=g.d,b=g.constructor,N=b.rounding,S=b.precision;if(g.s<0||!y||!y[0]||!g.e&&y[0]==1&&y.length==1)return new b(y&&!y[0]?-1/0:g.s!=1?NaN:y?0:g);if(t==null?(_=!1,l=S):l=t,b.precision=l+=h,n=H(y),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 b("0."+n),o++):g=new b(r+"."+n.slice(1))}else return c=Re(b,l+2,S).times(o+""),g=ie(new b(r+"."+n.slice(1)),l-h).plus(c),b.precision=S,t==null?w(g,S,N,_=!0):g;for(f=g,u=s=g=M(g.minus(1),g.plus(1),l,1),m=w(g.times(g),l,1),i=3;;){if(s=w(s.times(m),l,1),c=u.plus(M(s,new b(i),l,1)),H(c.d).slice(0,l)===H(u.d).slice(0,l))if(u=u.times(2),o!==0&&(u=u.plus(Re(b,l+2,S).times(o+""))),u=M(u,new b(d),l,1),t==null)if(he(u.d,l-h,N,a))b.precision=l+=h,c=s=g=M(f.minus(1),f.plus(1),l,1),m=w(g.times(g),l,1),i=a=1;else return w(u,b.precision=S,N,_=!0);else return b.precision=S,u;u=c,i+=2}}function Ot(e){return String(e.s*e.s/0)}function Ce(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)%A,n<0&&(r+=A),r<i){for(r&&e.d.push(+t.slice(0,r)),i-=A;r<i;)e.d.push(+t.slice(r,r+=A));t=t.slice(r),r=A-t.length}else r-=i;for(;r--;)t+="0";e.d.push(+t),_&&(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 Nn(e,t){var n,r,i,o,s,a,u,c,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),Ct.test(t))return Ce(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(wn.test(t))n=16,t=t.toLowerCase();else if(yn.test(t))n=2;else if(Pn.test(t))n=8;else throw Error(oe+t);for(o=t.search(/p/i),o>0?(u=+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=Mt(r,new r(n),o,o*2)),c=Le(t,n,Q),l=c.length-1,o=l;c[o]===0;--o)c.pop();return o<0?new r(e.s*0):(e.e=ve(c,l),e.d=c,_=!1,s&&(e=M(e,i,a*4)),u&&(e=e.times(Math.abs(u)<54?V(2,u):Ue.pow(2,u))),_=!0,e)}function _n(e,t){var n,r=t.d.length;if(r<3)return t.isZero()?t:me(e,2,t,t);n=1.4*Math.sqrt(r),n=n>16?16:n|0,t=t.times(1/Ke(5,n)),t=me(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 me(e,t,n,r,i){var o,s,a,u,c=1,l=e.precision,f=Math.ceil(l/A);for(_=!1,u=n.times(n),a=new e(r);;){if(s=M(a.times(u),new e(t++*t++),l,1),a=i?r.plus(s):r.minus(s),r=M(s.times(u),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,c++}return _=!0,s.d.length=f+1,s}function Ke(e,t){for(var n=e;--t;)n*=e;return n}function vt(e,t){var n,r=t.s<0,i=Z(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return $=r?4:1,t;if(n=t.divToInt(i),n.isZero())$=r?3:2;else{if(t=t.minus(n.times(i)),t.lte(o))return $=Nt(n)?r?2:3:r?4:1,t;$=Nt(n)?r?1:4:r?3:2}return t.minus(i).abs()}function tt(e,t,n,r){var i,o,s,a,u,c,l,f,m,d=e.constructor,h=n!==void 0;if(h?(j(n,1,se),r===void 0?r=d.rounding:j(r,0,8)):(n=d.precision,r=d.rounding),!e.isFinite())l=Ot(e);else{for(l=X(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=Le(X(m),10,i),m.e=m.d.length),f=Le(l,10,i),o=u=f.length;f[--u]==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=M(e,m,n,r,0,i),f=e.d,o=e.e,c=Et),s=f[n],a=i/2,c=c||f[n+1]!==void 0,c=r<4?(s!==void 0||c)&&(r===0||r===(e.s<0?3:2)):s>a||s===a&&(r===4||c||r===6&&f[n-1]&1||r===(e.s<0?8:7)),f.length=n,c)for(;++f[--n]>i-1;)f[n]=0,n||(++o,f.unshift(1));for(u=f.length;!f[u-1];--u);for(s=0,l="";s<u;s++)l+=Xe.charAt(f[s]);if(h){if(u>1)if(t==16||t==8){for(s=t==16?4:3,--u;u%s;u++)l+="0";for(f=Le(l,i,t),u=f.length;!f[u-1];--u);for(s=1,l="1.";s<u;s++)l+=Xe.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>u)for(o-=u;o--;)l+="0";else o<u&&(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 _t(e,t){if(e.length>t)return e.length=t,!0}function kn(e){return new this(e).abs()}function En(e){return new this(e).acos()}function In(e){return new this(e).acosh()}function Bn(e,t){return new this(e).plus(t)}function Ln(e){return new this(e).asin()}function Cn(e){return new this(e).asinh()}function Dn(e){return new this(e).atan()}function Mn(e){return new this(e).atanh()}function Rn(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=Z(this,o,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?Z(this,r,i):new this(0),n.s=e.s):!e.d||t.isZero()?(n=Z(this,o,1).times(.5),n.s=e.s):t.s<0?(this.precision=o,this.rounding=1,n=this.atan(M(e,t,o,1)),t=Z(this,o,1),this.precision=r,this.rounding=i,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(M(e,t,o,1)),n}function On(e){return new this(e).cbrt()}function vn(e){return w(e=new this(e),e.e+1,2)}function Kn(e,t,n){return new this(e).clamp(t,n)}function Un(e){if(!e||typeof e!="object")throw Error(Oe+"Object expected");var t,n,r,i=e.defaults===!0,o=["precision",1,se,"rounding",0,8,"toExpNeg",-fe,0,"toExpPos",0,fe,"maxE",0,fe,"minE",-fe,0,"modulo",0,9];for(t=0;t<o.length;t+=3)if(n=o[t],i&&(this[n]=Je[n]),(r=e[n])!==void 0)if(q(r)===r&&r>=o[t+1]&&r<=o[t+2])this[n]=r;else throw Error(oe+n+": "+r);if(n="crypto",i&&(this[n]=Je[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(Bt);else this[n]=!1;else throw Error(oe+n+": "+r);return this}function Vn(e){return new this(e).cos()}function Fn(e){return new this(e).cosh()}function Kt(e){var t,n,r;function i(o){var s,a,u,c=this;if(!(c instanceof i))return new i(o);if(c.constructor=i,kt(o)){c.s=o.s,_?!o.d||o.e>i.maxE?(c.e=NaN,c.d=null):o.e<i.minE?(c.e=0,c.d=[0]):(c.e=o.e,c.d=o.d.slice()):(c.e=o.e,c.d=o.d?o.d.slice():o.d);return}if(u=typeof o,u==="number"){if(o===0){c.s=1/o<0?-1:1,c.e=0,c.d=[0];return}if(o<0?(o=-o,c.s=-1):c.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;_?s>i.maxE?(c.e=NaN,c.d=null):s<i.minE?(c.e=0,c.d=[0]):(c.e=s,c.d=[o]):(c.e=s,c.d=[o]);return}if(o*0!==0){o||(c.s=NaN),c.e=NaN,c.d=null;return}return Ce(c,o.toString())}if(u==="string")return(a=o.charCodeAt(0))===45?(o=o.slice(1),c.s=-1):(a===43&&(o=o.slice(1)),c.s=1),Ct.test(o)?Ce(c,o):Nn(c,o);if(u==="bigint")return o<0?(o=-o,c.s=-1):c.s=1,Ce(c,o.toString());throw Error(oe+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=Un,i.clone=Kt,i.isDecimal=kt,i.abs=kn,i.acos=En,i.acosh=In,i.add=Bn,i.asin=Ln,i.asinh=Cn,i.atan=Dn,i.atanh=Mn,i.atan2=Rn,i.cbrt=On,i.ceil=vn,i.clamp=Kn,i.cos=Vn,i.cosh=Fn,i.div=Wn,i.exp=Hn,i.floor=qn,i.hypot=Gn,i.ln=jn,i.log=Yn,i.log10=Qn,i.log2=zn,i.max=Zn,i.min=Xn,i.mod=Jn,i.mul=$n,i.pow=er,i.random=tr,i.round=nr,i.sign=rr,i.sin=ir,i.sinh=or,i.sqrt=sr,i.sub=ar,i.sum=ur,i.tan=cr,i.tanh=lr,i.trunc=fr,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 Wn(e,t){return new this(e).div(t)}function Hn(e){return new this(e).exp()}function qn(e){return w(e=new this(e),e.e+1,3)}function Gn(){var e,t,n=new this(0);for(_=!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 _=!0,new this(1/0);n=t}return _=!0,n.sqrt()}function kt(e){return e instanceof Ue||e&&e.toStringTag===Lt||!1}function jn(e){return new this(e).ln()}function Yn(e,t){return new this(e).log(t)}function zn(e){return new this(e).log(2)}function Qn(e){return new this(e).log(10)}function Zn(){return Rt(this,arguments,-1)}function Xn(){return Rt(this,arguments,1)}function Jn(e,t){return new this(e).mod(t)}function $n(e,t){return new this(e).mul(t)}function er(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:j(e,1,se),r=Math.ceil(e/A),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(Bt);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],e%=A,r&&e&&(i=V(10,A-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-=A)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<A&&(n-=A-r)}return s.e=n,s.d=a,s}function nr(e){return w(e=new this(e),e.e+1,this.rounding)}function rr(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function ir(e){return new this(e).sin()}function or(e){return new this(e).sinh()}function sr(e){return new this(e).sqrt()}function ar(e,t){return new this(e).sub(t)}function ur(){var e=0,t=arguments,n=new this(t[e]);for(_=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return _=!0,w(n,this.precision,this.rounding)}function cr(e){return new this(e).tan()}function lr(e){return new this(e).tanh()}function fr(e){return w(e=new this(e),e.e+1,1)}p[Symbol.for("nodejs.util.inspect.custom")]=p.toString;p[Symbol.toStringTag]="Decimal";var Ue=p.constructor=Kt(Je);De=new Ue(De);Me=new Ue(Me);import{TOKEN_PROGRAM_ID as mr}from"@solana/spl-token";import{PublicKey as Ti}from"@solana/web3.js";function ce(e){let t=ue(e);return{chainId:101,address:t.WSOL_MINT_ADDRESS,programId:mr.toBase58(),decimals:9,symbol:t.WRAPPED_TOKEN_SYMBOL||"",name:t.FULL_TOKEN_NAME,logoURI:t.GITHUB_LOGO_URL,tags:[],priority:2,type:"cobaltx",extensions:{coingeckoId:"solana"}}}import{PublicKey as ot}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as pr}from"@solana/spl-token";import{PublicKey as v,SystemProgram as Ut,SYSVAR_RENT_PUBKEY as dr}from"@solana/web3.js";function nt({pubkey:e,isSigner:t=!1,isWritable:n=!0}){return{pubkey:e,isWritable:n,isSigner:t}}var _i=[nt({pubkey:pr,isWritable:!1}),nt({pubkey:Ut.programId,isWritable:!1}),nt({pubkey:dr,isWritable:!1})];function Vt({publicKey:e,transformSol:t,network:n}){let r=rt(e.toString());if(t&&n){let{WSOLMint:i}=Te(n);if(r instanceof v)return t&&r.equals(be)?i:r;if(t&&r.toString()===be.toBase58())return i}else if(r instanceof v)return r;if(typeof r=="string"){if(r===v.default.toBase58())return v.default;try{return new v(r)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function rt(e){try{return new v(e)}catch{return e}}var ki=new v("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ei=new v("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ft=new v("SysvarRent111111111111111111111111111111111"),it=new v("SysvarC1ock11111111111111111111111111111111"),Ii=new v("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Bi=new v("Sysvar1nstructions1111111111111111111111111"),Wt=Ut.programId,be=v.default;function Te(e){let t=ue(e);return{USDCMint:new v(t.USDC_MINT_ADDRESS),USDTMint:new v(t.USDT_MINT_ADDRESS),WSOLMint:new v(t.WSOL_MINT_ADDRESS),ETHMint:new v(t.ETH_MINT_ADDRESS),BONK_Mint:t.BONK_MINT_ADDRESS?new v(t.BONK_MINT_ADDRESS):v.default,SOL_Mint:t.SOL_MINT_ADDRESS?new v(t.SOL_MINT_ADDRESS):v.default,INPUT_MINT:new v(t.INPUT_MINT_ADDRESS),OUTPUT_MINT:new v(t.OUTPUT_MINT_ADDRESS)}}var ae=class{constructor({mint:t,decimals:n,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1,network:a}){if(t===be.toBase58()||t instanceof ot&&be.equals(t)&&a){this.decimals=ce(a).decimals,this.symbol=ce(a).symbol,this.name=ce(a).name,this.mint=new ot(ce(a).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?ot.default:Vt({publicKey:t}),this.isToken2022=s}static getWSol(t){return new ae({...ce(t),mint:ce(t).address})}equals(t){return this===t?!0:this.mint.equals(t.mint)}};import Fe from"big.js";import wr from"bn.js";import Pr from"decimal.js-light";import{get as Ht,set as gr}from"lodash";var st=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}},qt={},hr={};function G(e){let t=Ht(qt,e);if(!t){let n=Ht(hr,e);t=new st({name:e,logLevel:n}),gr(qt,e,t)}return t}import ye from"bn.js";var Gt=9007199254740991;function Y(e){let t=G("CobaltX_parseBigNumberish");if(e instanceof ye)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new ye(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=Gt||e<=-Gt)&&t.logWithError(`BigNumberish number overflow: ${e}`),new ye(String(e))):typeof e=="bigint"?new ye(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new ye(0))}import br from"toformat";var Tr=br,we=Tr;var Ve=G("module/fraction"),at=we(Fe),Pe=we(Pr),xr={[0]:Pe.ROUND_DOWN,[1]:Pe.ROUND_HALF_UP,[2]:Pe.ROUND_UP},Sr={[0]:Fe.roundDown,[1]:Fe.roundHalfUp,[2]:Fe.roundUp},D=class{constructor(t,n=new wr(1)){this.numerator=Y(t),this.denominator=Y(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new D(this.denominator,this.numerator)}add(t){let n=t instanceof D?t:new D(Y(t));return this.denominator.eq(n.denominator)?new D(this.numerator.add(n.numerator),this.denominator):new D(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof D?t:new D(Y(t));return this.denominator.eq(n.denominator)?new D(this.numerator.sub(n.numerator),this.denominator):new D(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof D?t:new D(Y(t));return new D(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof D?t:new D(Y(t));return new D(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||Ve.logWithError(`${t} is not an integer.`),t<=0&&Ve.logWithError(`${t} is not positive.`),Pe.set({precision:t+1,rounding:xr[r]});let i=new Pe(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)||Ve.logWithError(`${t} is not an integer.`),t<0&&Ve.logWithError(`${t} is negative.`),at.DP=t,at.RM=Sr[r]||1,new at(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import Ar from"bn.js";var jt=new D(new Ar(100)),pe=class extends D{toSignificant(t=5,n,r){return this.mul(jt).toSignificant(t,n,r)}toFixed(t=2,n,r){return this.mul(jt).toFixed(t,n,r)}};var Nr=G("CobaltX_price"),ee=class extends D{constructor(n){let{baseToken:r,quoteToken:i,numerator:o,denominator:s}=n;super(o,s);this.baseToken=r,this.quoteToken=i,this.scalar=new D(ut(r.decimals),ut(i.decimals))}get raw(){return new D(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new ee({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(n){this.quoteToken!==n.baseToken&&Nr.logWithError("mul token not equals");let r=super.mul(n);return new ee({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 _r=new ne(0),Bo=new ne(1),Lo=new ne(2),Co=new ne(3),Do=new ne(5),ct=new ne(10),Mo=new ne(100),Ro=new ne(1e3),Oo=new ne(1e4);function ut(e){return ct.pow(Y(e))}import{MINT_SIZE as Fo,TOKEN_PROGRAM_ID as Wo,getTransferFeeConfig as Ho,unpackMint as qo}from"@solana/spl-token";import{PublicKey as kr}from"@solana/web3.js";var lt=G("CobaltX_accountInfo_util");async function zt(e,t,n){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}={batchRequest:!1,...n},s=ft(t,o),a=new Array(s.length).fill([]);if(r){let u=s.map(f=>{let m=e._buildArgs([f.map(d=>d.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:m}}),c=ft(u,10);a=(await(await Promise.all(c.map(async f=>await e._rpcBatchRequest(f)))).flat()).map(f=>(f.error&<.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:y,rentEpoch:b}=m;return d.length!==2&&d[1]!=="base64"&<.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(d[0],"base64"),executable:h,lamports:g,owner:new kr(y),rentEpoch:b}}return null})))}else try{a=await Promise.all(s.map(u=>e.getMultipleAccountsInfo(u,i)))}catch(u){u instanceof Error&<.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${u.message}`)}return a.flat()}function ft(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 gs}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as bs}from"@solana/spl-token";import{ComputeBudgetProgram as Qt,Keypair as Xt,PublicKey as ss,Transaction as Jt,TransactionMessage as Er,VersionedTransaction as $t}from"@solana/web3.js";var mt={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"};import{TOKEN_PROGRAM_ID as Ir}from"@solana/spl-token";var Zt=G("CobaltX_txUtil"),en=1644;function We(e){let t=[],n=[];return e.microLamports&&(t.push(Qt.setComputeUnitPrice({microLamports:e.microLamports})),n.push(mt.SetComputeUnitPrice)),e.units&&(t.push(Qt.setComputeUnitLimit({units:e.units})),n.push(mt.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function de(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 He(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(o.err.toString())},"confirmed")})}function Br(e,t){e.length<1&&Zt.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&Zt.logWithError(`no signers provided:, ${t.toString()}`);let n=new Jt;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...e);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<en}catch{return!1}}function xe({instructions:e,payer:t,signers:n}){return Br(e,[t,...n])}function Se({instructions:e,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=Xt.generate().publicKey.toString()}){let o=new Er({payerKey:t,recentBlockhash:r,instructions:e}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new $t(o).serialize()).toString("base64").length<en}catch{return!1}}var Lr=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e),Cr=e=>{let t=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof $t&&(t=Lr(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function le(e){let t=[];return e.forEach(n=>{n instanceof Jt&&(n.recentBlockhash||(n.recentBlockhash=Ir.toBase58()),n.feePayer||(n.feePayer=Xt.generate().publicKey)),t.push(Cr(n))}),console.log("simulate tx string:",t),t}import Ps from"bn.js";import{PublicKey as tn,AddressLookupTableAccount as qe}from"@solana/web3.js";async function pt({connection:e,address:t,network:n}){let r=await zt(e,[...new Set(t.map(o=>o.toString()))].map(o=>new tn(o))),i={};for(let o=0;o<t.length;o++){let s=r[o],a=t[o];if(!s)continue;let u=new qe({key:a,state:qe.deserialize(s.data)});i[a.toString()]=u,Ge(n)[a.toString()]=u}return i}function Ge(e){let t=ue(e);return{[t.LOOKUP_TABLE_CACHE]:new qe({key:new tn(t.LOOKUP_TABLE_CACHE),state:qe.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 Ae,sendAndConfirmTransaction as dt,Transaction as Ne,TransactionMessage as _e,VersionedTransaction as ke}from"@solana/web3.js";import Dr from"axios";var je=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.api=t.api,this.network=t.network}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 Dr.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}=We(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:i=[],endInstructionTypes:o=[],lookupTableAddress:s=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...i),this.endInstructionTypes.push(...o),this.lookupTableAddress.push(...s.filter(a=>a!==Ae.default.toString())),this}async versionBuild({txVersion:t,extInfo:n}){return t===0?await this.buildV0({...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 c;let{recentBlockHash:o,skipPreflight:s=!0,sendAndConfirm:a}=i||{},u=o!=null?o:await de(this.connection,this.blockhashCommitment);if(n.recentBlockhash=u,this.signers.length&&n.sign(...this.signers),le([n]),(c=this.owner)!=null&&c.isKeyPair)return{txId:a?await dt(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 c;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)],u=[...this.instructionTypes,...o.map(l=>l.instructionTypes).flat()];return(c=this.owner)!=null&&c.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:u,execute:async l=>{var b;let{sequentially:f,onTxUpdate:m,skipTxCount:d=0,recentBlockHash:h,skipPreflight:g=!0}=l||{},y=h!=null?h:await de(this.connection,this.blockhashCommitment);if((b=this.owner)!=null&&b.isKeyPair){if(f){let N=[],S=0;for(let T of s){if(++S,S<=d)continue;let P=await dt(this.connection,T,this.signers.find(x=>x.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});N.push(P)}return{txIds:N,signedTxs:s}}return{txIds:await await Promise.all(s.map(async N=>(N.recentBlockhash=y,await this.connection.sendRawTransaction(N.serialize(),{skipPreflight:g})))),signedTxs:s}}if(this.signAllTransactions){let N=s.map((T,P)=>(T.recentBlockhash=y,a[P].length&&T.sign(...a[P]),T));le(N);let S=await this.signAllTransactions(N);if(f){let T=0,P=[],x=async()=>{if(!S[T])return;let E=await this.connection.sendRawTransaction(S[T].serialize(),{skipPreflight:g});P.push({txId:E,status:"sent",signedTx:S[T]}),m==null||m([...P]),T++,this.connection.onSignature(E,L=>{let O=P.findIndex(z=>z.txId===E);O>-1&&(P[O].status=L.err?"error":"success"),m==null||m([...P]),L.err||x()},"processed"),this.connection.getSignatureStatus(E)};return await x(),{txIds:P.map(E=>E.txId),signedTxs:S}}else{let T=[];for(let P=0;P<S.length;P+=1){let x=await this.connection.sendRawTransaction(S[P].serialize(),{skipPreflight:g});T.push(x)}return{txIds:T,signedTxs:S}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var g;let{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:i,recentBlockhash:o,network:s=this.network,...a}=t||{},u={...this.cluster==="devnet"?{}:Ge(s),...n},c=Array.from(new Set([...r,...this.lookupTableAddress])),l=[];for(let y of c)u[y]===void 0&&l.push(new Ae(y));let f=await pt({connection:this.connection,address:l,network:s});for(let[y,b]of Object.entries(f))u[y]=b;let m=i?Ae.default.toBase58():o!=null?o:await de(this.connection,this.blockhashCommitment),d=new _e({payerKey:this.feePayer,recentBlockhash:m,instructions:[...this.allInstructions]}).compileToV0Message();((g=this.owner)==null?void 0:g.signer)&&!this.signers.some(y=>y.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let h=new ke(d);return h.sign(this.signers),{builder:this,transaction:h,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async y=>{var S;let{skipPreflight:b=!0,sendAndConfirm:N}=y||{};if(le([h]),(S=this.owner)!=null&&S.isKeyPair){let T=await this.connection.sendTransaction(h,{skipPreflight:b});return N&&await He(this.connection,T),{txId:T,signedTx:h}}if(this.signAllTransactions){let T=await this.signAllTransactions([h]);return{txId:await this.connection.sendTransaction(T[0],{skipPreflight:b}),signedTx:T[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async buildV0MultiTx(t){var c;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)],u=[...this.instructionTypes,...o.map(l=>l.instructionTypes).flat()];return(c=this.owner)!=null&&c.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:u,buildProps:r,execute:async l=>{var g;let{sequentially:f,onTxUpdate:m,recentBlockHash:d,skipPreflight:h=!0}=l||{};if(d&&s.forEach(y=>y.message.recentBlockhash=d),le(s),(g=this.owner)!=null&&g.isKeyPair){if(f){let y=[];for(let b of s){let N=await this.connection.sendTransaction(b,{skipPreflight:h});await He(this.connection,N),y.push(N)}return{txIds:y,signedTxs:s}}return{txIds:await Promise.all(s.map(async y=>await this.connection.sendTransaction(y,{skipPreflight:h}))),signedTxs:s}}if(this.signAllTransactions){let y=await this.signAllTransactions(s);if(f){let b=0,N=[],S=async()=>{if(!y[b])return;let T=await this.connection.sendTransaction(y[b],{skipPreflight:h});N.push({txId:T,status:"sent",signedTx:y[b]}),m==null||m([...N]),b++,this.connection.onSignature(T,P=>{let x=N.findIndex(E=>E.txId===T);x>-1&&(N[x].status=P.err?"error":"success"),m==null||m([...N]),P.err||S()},"processed"),this.connection.getSignatureStatus(T)};return S(),{txIds:[],signedTxs:y}}else{let b=[];for(let N=0;N<y.length;N+=1){let S=await this.connection.sendTransaction(y[N],{skipPreflight:h});b.push(S)}return{txIds:b,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var f;let{splitIns:n=[],computeBudgetConfig:r,...i}=t||{},o=r?We(r):{instructions:[],instructionTypes:[]},s=this.signers.reduce((m,d)=>({...m,[d.publicKey.toBase58()]:d}),{}),a=[],u=[],c=[],l=0;if(this.allInstructions.forEach(m=>{let d=[...c,m],h=r?[...o.instructions,...d]:d,y=[...new Set(d.map(b=>b.keys.filter(N=>N.isSigner).map(N=>N.pubkey.toString())).flat()).values()].map(b=>new Ae(b));if(m!==n[l]&&c.length<12&&(xe({instructions:h,payer:this.feePayer,signers:y})||xe({instructions:d,payer:this.feePayer,signers:y})))c.push(m);else{if(c.length===0)throw Error("item ins too big");l+=m===n[l]?1:0,xe({instructions:r?[...o.instructions,...c]:[...c],payer:this.feePayer,signers:y})?a.push(new Ne().add(...o.instructions,...c)):a.push(new Ne().add(...c)),u.push(Array.from(new Set(c.map(b=>b.keys.filter(N=>N.isSigner).map(N=>N.pubkey.toString())).flat())).map(b=>s[b]).filter(b=>b!==void 0)),c=[m]}}),c.length>0){let d=[...new Set(c.map(h=>h.keys.filter(g=>g.isSigner).map(g=>g.pubkey.toString())).flat()).values()].map(h=>s[h]).filter(h=>h!==void 0);xe({instructions:r?[...o.instructions,...c]:[...c],payer:this.feePayer,signers:d.map(h=>h.publicKey)})?a.push(new Ne().add(...o.instructions,...c)):a.push(new Ne().add(...c)),u.push(d)}return a.forEach(m=>m.feePayer=this.feePayer),(f=this.owner)!=null&&f.signer&&u.forEach(m=>{m.some(d=>d.publicKey.equals(this.owner.publicKey))||m.push(this.owner.signer)}),{builder:this,transactions:a,signers:u,instructionTypes:this.instructionTypes,execute:async m=>{var S;let{sequentially:d,onTxUpdate:h,skipTxCount:g=0,recentBlockHash:y,skipPreflight:b=!0}=m||{},N=y!=null?y:await de(this.connection,this.blockhashCommitment);if(a.forEach(async(T,P)=>{T.recentBlockhash=N,u[P].length&&T.sign(...u[P])}),le(a),(S=this.owner)!=null&&S.isKeyPair){if(d){let T=0,P=[];for(let x of a){if(++T,T<=g){P.push("tx skipped");continue}let E=await dt(this.connection,x,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:b});P.push(E)}return{txIds:P,signedTxs:a}}return{txIds:await Promise.all(a.map(async T=>await this.connection.sendRawTransaction(T.serialize(),{skipPreflight:b}))),signedTxs:a}}if(this.signAllTransactions){let T=await this.signAllTransactions(a.slice(g,a.length)),P=[...a.slice(0,g),...T];if(d){let x=0,E=[],L=async()=>{if(!P[x])return;x<g&&(E.push({txId:"",status:"success",signedTx:P[x]}),h==null||h([...E]),x++,L());let O=await this.connection.sendRawTransaction(P[x].serialize(),{skipPreflight:b});E.push({txId:O,status:"sent",signedTx:P[x]}),h==null||h([...E]),x++,this.connection.onSignature(O,z=>{let R=E.findIndex(K=>K.txId===O);R>-1&&(E[R].status=z.err?"error":"success"),h==null||h([...E]),z.err||L()},"processed"),this.connection.getSignatureStatus(O)};return await L(),{txIds:E.map(O=>O.txId),signedTxs:P}}else{let x=[];for(let E=0;E<P.length;E+=1){let L=await this.connection.sendRawTransaction(P[E].serialize(),{skipPreflight:b});x.push(L)}return{txIds:x,signedTxs:P}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuildV0(t){var S;let{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:i={},lookupTableAddress:o=[],network:s=this.network,...a}=t||{},u={...this.cluster==="devnet"?{}:Ge(s),...i},c=Array.from(new Set([...this.lookupTableAddress,...o])),l=[];for(let T of c)u[T]===void 0&&l.push(new Ae(T));let f=await pt({connection:this.connection,address:l,network:s});for(let[T,P]of Object.entries(f))u[T]=P;let m=n?We(n):{instructions:[],instructionTypes:[]},d=await de(this.connection,this.blockhashCommitment),h=this.signers.reduce((T,P)=>({...T,[P.publicKey.toBase58()]:P}),{}),g=[],y=[],b=[],N=0;if(this.allInstructions.forEach(T=>{let P=[...b,T],x=n?[...m.instructions,...P]:P;if(T!==r[N]&&b.length<12&&(Se({instructions:x,payer:this.feePayer,lookupTableAddressAccount:u})||Se({instructions:P,payer:this.feePayer,lookupTableAddressAccount:u})))b.push(T);else{if(b.length===0)throw Error("item ins too big");N+=T===r[N]?1:0;let E={};for(let L of[...new Set(c)])u[L]!==void 0&&(E[L]=u[L]);if(n&&Se({instructions:[...m.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:u,recentBlockhash:d})){let L=new _e({payerKey:this.feePayer,recentBlockhash:d,instructions:[...m.instructions,...b]}).compileToV0Message(Object.values(u));g.push(new ke(L))}else{let L=new _e({payerKey:this.feePayer,recentBlockhash:d,instructions:[...b]}).compileToV0Message(Object.values(u));g.push(new ke(L))}y.push(Array.from(new Set(b.map(L=>L.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat())).map(L=>h[L]).filter(L=>L!==void 0)),b=[T]}}),b.length>0){let P=[...new Set(b.map(x=>x.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat()).values()].map(x=>h[x]).filter(x=>x!==void 0);if(n&&Se({instructions:[...m.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:u,recentBlockhash:d})){let x=new _e({payerKey:this.feePayer,recentBlockhash:d,instructions:[...m.instructions,...b]}).compileToV0Message(Object.values(u));g.push(new ke(x))}else{let x=new _e({payerKey:this.feePayer,recentBlockhash:d,instructions:[...b]}).compileToV0Message(Object.values(u));g.push(new ke(x))}y.push(P)}return(S=this.owner)!=null&&S.signer&&y.forEach(T=>{T.some(P=>P.publicKey.equals(this.owner.publicKey))||T.push(this.owner.signer)}),{builder:this,transactions:g,buildProps:t,signers:y,instructionTypes:this.instructionTypes,execute:async T=>{var z;let{sequentially:P,onTxUpdate:x,skipTxCount:E=0,recentBlockHash:L,skipPreflight:O=!0}=T||{};if(g.map(async(R,K)=>{y[K].length&&R.sign(y[K]),L&&(R.message.recentBlockhash=L)}),le(g),(z=this.owner)!=null&&z.isKeyPair){if(P){let R=0,K=[];for(let W of g){if(++R,R<=E){console.log("skip tx: ",R),K.push("tx skipped");continue}let F=await this.connection.sendTransaction(W,{skipPreflight:O});await He(this.connection,F),K.push(F)}return{txIds:K,signedTxs:g}}return{txIds:await Promise.all(g.map(async R=>await this.connection.sendTransaction(R,{skipPreflight:O}))),signedTxs:g}}if(this.signAllTransactions){let R=await this.signAllTransactions(g.slice(E,g.length)),K=[...g.slice(0,E),...R];if(P){let W=0,F=[],U=async()=>{if(!K[W])return;if(W<E){F.push({txId:"",status:"success",signedTx:K[W]}),x==null||x([...F]),W++,U();return}let C=await this.connection.sendTransaction(K[W],{skipPreflight:O});F.push({txId:C,status:"sent",signedTx:K[W]}),x==null||x([...F]),W++,this.connection.onSignature(C,St=>{let At=F.findIndex(un=>un.txId===C);At>-1&&(F[At].status=St.err?"error":"success"),x==null||x([...F]),St.err||U()},"processed"),this.connection.getSignatureStatus(C)};return U(),{txIds:[],signedTxs:K}}else{let W=[];for(let F=0;F<K.length;F+=1){let U=await this.connection.sendTransaction(K[F],{skipPreflight:O});W.push(U)}return{txIds:W,signedTxs:K}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}};var Rr=G("CobaltX_amount"),nn=we(Mr);function Or(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")):Rr.logWithError(`invalid number string, num: ${e}`)}else n=e;return[n,r.slice(0,t)||r]}var te=class extends D{constructor(n,r,i=!0,o){let s=new Ye(0),a=ct.pow(new Ye(n.decimals));if(i)s=Y(r);else{let u=new Ye(0),c=new Ye(0);if(typeof r=="string"||typeof r=="number"||typeof r=="bigint"){let[l,f]=Or(r.toString(),n.decimals);u=Y(l),c=Y(f)}u=u.mul(a),s=u.add(c)}super(s,a);this.logger=G(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 te(this.token,this.raw.add(n.raw))}subtract(n){return this.token.equals(n.token)||this.logger.logWithError("sub token not equals"),new te(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 nn.DP=this.token.decimals,new nn(this.numerator.toString()).div(this.denominator.toString()).toFormat(n)}};function Yt(e){return typeof e=="object"&&e!==null&&![ae,te,vr,D,Kr,ee,pe].some(t=>typeof t=="object"&&e instanceof t)}function ze(e){return typeof e=="string"?rt(e):Array.isArray(e)?e.map(t=>ze(t)):Yt(e)?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,ze(n)])):e}var gt=(...e)=>e.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),Ee=class{constructor({scope:t,moduleName:n,network:r}){this.disabled=!1;this.scope=t,this.logger=G(n),this.network=r}createTxBuilder(t){return this.scope.checkOwner(),new je({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions,network:this.network})}logDebug(...t){this.logger.debug(gt(t))}logInfo(...t){this.logger.info(gt(t))}logAndCreateError(...t){let n=gt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{SYSVAR_CLOCK_PUBKEY as Wr,TransactionInstruction as wt}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Pt}from"@solana/spl-token";import{PublicKey as Ru}from"@solana/web3.js";import vu,{isBN as Ku}from"bn.js";import{bits as Ma,BitStructure as Ra,blob as Oa,Blob as va,cstr as Ka,f32 as Ua,f32be as Va,f64 as Fa,f64be as Wa,greedy as Ha,Layout as qa,ns64 as Ga,ns64be as ja,nu64 as Ur,nu64be as Ya,offset as za,s16 as Qa,s16be as Za,s24 as Xa,s24be as Ja,s32 as $a,s32be as eu,s40 as tu,s40be as nu,s48 as ru,s48be as iu,s8 as ou,seq as su,struct as au,Structure as Vr,u16 as uu,u16be as cu,u24 as lu,u24be as fu,u32 as mu,u32be as pu,u40 as du,u40be as gu,u48 as hu,u48be as bu,u8 as Tu,UInt as Fr,union as yu,Union as wu,unionLayoutDiscriminator as Pu,utf8 as xu}from"@solana/buffer-layout";var rn=Vr;var on=Fr;var sn=Ur;function bt(e){return new on(1,e)}var ht=class extends rn{decode(t,n){return super.decode(t,n)}};function Tt(e,t,n){return new ht(e,t,n)}var yt=Tt([bt("instruction"),sn("amount")]),Ie=Tt([bt("instruction")]);function Qu({programId:e,amount:t,instructionKeys:n}){let r=[{pubkey:Wt,isSigner:!1,isWritable:!1},{pubkey:Pt,isSigner:!1,isWritable:!1},{pubkey:Ft,isSigner:!1,isWritable:!1},{pubkey:it,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(yt.span);return yt.encode({instruction:1,amount:Number(t)},i),new wt({keys:r,programId:e,data:i})}function Qe({programId:e},t){let n=[{pubkey:Pt,isSigner:!1,isWritable:!1},{pubkey:it,isSigner:!1,isWritable:!1},...Object.entries(t).map(([i,o])=>({pubkey:o,isSigner:i==="userOwner",isWritable:!["authority","userOwner"].includes(i)}))],r=Buffer.alloc(Ie.span);return Ie.encode({instruction:2},r),new wt({keys:n,programId:e,data:r})}function xt(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(Ie.span);Ie.encode({instruction:2},s);let a=[{pubkey:Pt,isWritable:!1,isSigner:!1},{pubkey:Wr,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 wt({programId:t.programId,keys:a,data:s})}var Hr={[ge.IDO_PROGRAM_ID_V1.toString()]:1,[ge.IDO_PROGRAM_ID_V2.toString()]:2,[ge.IDO_PROGRAM_ID_V3.toString()]:3,[ge.IDO_PROGRAM_ID_V4.toString()]:4},Ze=class extends Ee{async claim({ownerInfo:t,idoKeys:n,associatedOnly:r=!0,checkCreateATAOwner:i=!1,txVersion:o}){let s=this.createTxBuilder(),a=Hr[n.programId];a||this.logAndCreateError("invalid version",a);let u=ze(n),[c,l]=[!new an(t.coin).isZero(),!new an(t.pc).isZero()],f=u.projectInfo.mint.address.equals(Te(this.network).WSOLMint),{account:m,instructionParams:d}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:u.projectInfo.mint.programId,mint:u.projectInfo.mint.address,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!f,notUseTokenAccount:f,associatedOnly:f?!1:r,checkCreateATAOwner:i});!m&&c&&this.logAndCreateError("target token accounts not found","mint",n.projectInfo.mint.address),c&&d&&s.addInstruction(d);let h=u.buyInfo.mint.address.equals(Te(this.network).WSOLMint),{account:g,instructionParams:y}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:u.buyInfo.mint.programId,mint:u.buyInfo.mint.address,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!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&&y&&s.addInstruction(y),(!m||!g)&&this.logAndCreateError("target token accounts not found","mint",n.projectInfo.mint.address,n.buyInfo.mint.address),a===3)return s.addInstruction({instructions:[...c?[Qe({programId:u.programId},{idoId:u.id,authority:u.authority,poolTokenAccount:u.projectInfo.vault,userTokenAccount:m,userIdoInfo:new Be(t.userIdoInfo),userOwner:this.scope.ownerPubKey})]:[],...l?[Qe({programId:new Be(n.programId)},{idoId:u.id,authority:u.authority,poolTokenAccount:u.buyInfo.vault,userTokenAccount:g,userIdoInfo:new Be(t.userIdoInfo),userOwner:this.scope.ownerPubKey})]:[]]}).versionBuild({txVersion:o});if(a<3)return!c&&!l&&this.logAndCreateError("no claimable rewards"),s.addInstruction({instructions:[Qe({programId:u.programId},{idoId:u.id,authority:u.authority,poolQuoteTokenAccount:u.buyInfo.vault,poolBaseTokenAccount:u.projectInfo.vault,userQuoteTokenAccount:g,userBaseTokenAccount:m,userIdoInfo:new Be(t.userIdoInfo),userOwner:this.scope.ownerPubKey})]}).versionBuild({txVersion:o});let b={poolConfig:{id:u.id,programId:u.programId,authority:u.authority,baseVault:u.projectInfo.vault,quoteVault:u.buyInfo.vault,baseToken:n.projectInfo.mint,quoteToken:n.buyInfo.mint},userKeys:{baseTokenAccount:m,quoteTokenAccount:g,ledgerAccount:new Be(t.userIdoInfo),owner:this.scope.ownerPubKey}};return s.addInstruction({instructions:[...c?[xt({...b,side:"base"})]:[],...l?[xt({...b,side:"quote"})]:[]]}).versionBuild({txVersion:o})}};export{Ie as claimLayout,Ze as default,Qe as makeClaimInstruction,xt as makeClaimInstructionV4,Qu as makePurchaseInstruction,yt as purchaseLayout};
/*!
* decimal.js v10.5.0
* An arbitrary-precision Decimal type for JavaScript.
* https://github.com/MikeMcl/decimal.js
* Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>
* MIT Licence
*/
//# sourceMappingURL=index.mjs.map