@cobaltx/sdk-v2
Version:
An SDK for building applications on top of CobaltX.
9 lines • 79.5 kB
JavaScript
import{PublicKey as Be}from"@solana/web3.js";import rn from"bn.js";import{PublicKey as J}from"@solana/web3.js";var sn={["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=>sn[e];import{PublicKey as E}from"@solana/web3.js";var zr=new E("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Qr=new E("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Zr=new E("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Xr=new E("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Jr=new E("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),$r=new E("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),ei=new E("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),ti=new E("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),ni=new E("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ri=new E("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo");var ii=new E("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),oi=new E("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),si=new E("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ai=new E("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),an=new E("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),un=new E("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),cn=new E("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),ln=new E("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),ui=new E("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ci=new E("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),li=new E("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),fn=new E("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),mn=new E("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),pn=new E("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),fi=new E("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),dn=new E("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),mi=new E("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),gn=new E("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix"),ge={IDO_PROGRAM_ID_V1:an,IDO_PROGRAM_ID_V2:un,IDO_PROGRAM_ID_V3:cn,IDO_PROGRAM_ID_V4:ln};var pi={SERUM_MARKET:E.default,OPENBOOK_MARKET:new E("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:E.default,FarmV3:new E("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new E("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new E("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new E("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new E("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new E("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),CLMM_LOCK_PROGRAM_ID:new E("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),CLMM_LOCK_AUTH_ID:new E("8qmHNvu2Kr2C7U8mJL4Vz1vTDxMhVuXKREwU7TNoaVEo"),Router:new E("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:fn,CREATE_CPMM_POOL_AUTH:mn,CREATE_CPMM_POOL_FEE_ACC:pn,FEE_DESTINATION_ID:new E("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR"),LOCK_CPMM_PROGRAM:dn,LCOK_CPMM_AUTH:gn};import{PublicKey as Or}from"@solana/web3.js";import vr from"bn.js";import Dr from"big.js";import Ye from"bn.js";import ne from"bn.js";var fe=9e15,se=1e9,Ze="0123456789abcdef",De="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Me="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Xe={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-fe,maxE:fe,crypto:!1},At,$,_=!0,Oe="[DecimalError] ",oe=Oe+"Invalid argument: ",Nt=Oe+"Precision limit exceeded",_t=Oe+"crypto unavailable",Et="[object Decimal]",q=Math.floor,F=Math.pow,hn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,bn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Tn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,kt=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Q=1e7,A=7,wn=9007199254740991,yn=De.length-1,Je=Me.length-1,p={toStringTag:Et};p.absoluteValue=p.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),y(e)};p.ceil=function(){return y(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=Pn(r,Dt(r,n)),r.precision=e,r.rounding=t,y($==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*F(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=F(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&&(y(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")&&(y(r,e+1,1),t=!r.times(r).times(r).eq(l));break}return _=!0,y(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 y(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 y(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 y(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,y(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?y(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<=Je)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<=Je)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,y(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=y(u,f+1,0));break}while(he(u.d,i+=10,m));return _=!0,y(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 _?y(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),_?y(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]?y(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 $e(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,y(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)),_?y(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),_?y(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=Lt(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t};p.round=function(){var e=this,t=e.constructor;return y(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=Sn(r,Dt(r,n)),r.precision=e,r.rounding=t,y($>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&&(y(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")&&(y(r,u+1,1),e=!r.times(r).eq(s));break}return _=!0,y(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,y($==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),_?y(e,f.precision,f.rounding):e};p.toBinary=function(e,t){return et(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),y(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=y(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=y(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=Lt(h)-d.e-1,s=o%A,t.d[0]=F(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 et(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,y(n)):(e.s=n.s,n=e),n};p.toNumber=function(){return+this};p.toOctal=function(e,t){return et(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(F(+a,c));if(a=new u(a),a.eq(1))return a;if(r=u.precision,o=u.rounding,e.eq(1))return y(a,r,o);if(t=q(e.e/A),t>=e.d.length-1&&(n=c<0?-c:c)<=wn)return i=Bt(u,a,n,r),e.s<0?new u(1).div(i):y(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=F(+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=$e(e.times(ie(a,r+n)),r),i.d&&(i=y(i,r+5,1),he(i.d,r,o)&&(t=r+10,i=y($e(e.times(ie(a,t+n)),t),t+5,1),+H(i.d).slice(r+1,r+15)+1==1e14&&(i=y(i,r+1,0)))),i.s=s,_=!0,u.rounding=o,y(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=y(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)),y(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 y(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=F(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)==F(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)==F(10,t-3)-1,s}function Ie(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]+=Ze.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 Pn(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,w,b,N,S,T,P,x,k,I,O,z,R,K,W=r.constructor,V=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?V*0:V/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(V),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++)k=m*u+(U[f]||0),N[f]=k/C|0,m=k%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),I=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),w=g.length,T=S.length,c=t(g,S,w,T),c==1&&(m--,n(g,R<w?K:C,w,u))):(m==0&&(c=m=1),g=C.slice()),w=g.length,w<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[I]||0:(S=[U[I]],T=1);while((I++<O||S[0]!==void 0)&&x--);h=S[0]!==void 0}N[0]||N.shift()}if(d==1)b.e=l,At=h;else{for(f=1,m=N[0];m>=10;m/=10)f++;b.e=f+l*d-1,y(b,a?o+b.e+1:o,s,h)}return b}}();function y(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/F(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/F(10,i-s-1)%10|0}if(r=r||t<0||f[m+1]!==void 0||(s<0?l:l%F(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/F(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]=F(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=F(10,A-o),f[m]=s>0?(l/F(10,i-s)%F(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 Ct(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>yn)throw _=!0,n&&(e.precision=n),Error(Nt);return y(new e(De),t,1,!0)}function Z(e,t,n){if(t>Je)throw Error(Nt);return y(new e(Me),t,n,!0)}function Lt(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 Bt(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),xt(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),xt(t.d,s)}return _=!0,o}function Pt(e){return e.d[e.d.length-1]&1}function It(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 $e(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(F(2,f))/Math.LN10*2+5|0,u+=r,n=o=s=new m(1),m.precision=u;;){if(o=y(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=y(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 y(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,w=g.d,b=g.constructor,N=b.rounding,S=b.precision;if(g.s<0||!w||!w[0]||!g.e&&w[0]==1&&w.length==1)return new b(w&&!w[0]?-1/0:g.s!=1?NaN:w?0:g);if(t==null?(_=!1,l=S):l=t,b.precision=l+=h,n=H(w),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?y(g,S,N,_=!0):g;for(f=g,u=s=g=M(g.minus(1),g.plus(1),l,1),m=y(g.times(g),l,1),i=3;;){if(s=y(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=y(g.times(g),l,1),i=a=1;else return y(u,b.precision=S,N,_=!0);else return b.precision=S,u;u=c,i+=2}}function Ct(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 xn(e,t){var n,r,i,o,s,a,u,c,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),kt.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(bn.test(t))n=16,t=t.toLowerCase();else if(hn.test(t))n=2;else if(Tn.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=Bt(r,new r(n),o,o*2)),c=Ie(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?F(2,u):Ue.pow(2,u))),_=!0,e)}function Sn(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 Dt(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 $=Pt(n)?r?2:3:r?4:1,t;$=Pt(n)?r?1:4:r?3:2}return t.minus(i).abs()}function et(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=Ct(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=Ie(X(m),10,i),m.e=m.d.length),f=Ie(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=At),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+=Ze.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=Ie(l,i,t),u=f.length;!f[u-1];--u);for(s=1,l="1.";s<u;s++)l+=Ze.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 xt(e,t){if(e.length>t)return e.length=t,!0}function An(e){return new this(e).abs()}function Nn(e){return new this(e).acos()}function _n(e){return new this(e).acosh()}function En(e,t){return new this(e).plus(t)}function kn(e){return new this(e).asin()}function Ln(e){return new this(e).asinh()}function Bn(e){return new this(e).atan()}function In(e){return new this(e).atanh()}function Cn(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 Dn(e){return new this(e).cbrt()}function Mn(e){return y(e=new this(e),e.e+1,2)}function Rn(e,t,n){return new this(e).clamp(t,n)}function On(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]=Xe[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]=Xe[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(_t);else this[n]=!1;else throw Error(oe+n+": "+r);return this}function vn(e){return new this(e).cos()}function Kn(e){return new this(e).cosh()}function Mt(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,St(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),kt.test(o)?Ce(c,o):xn(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=On,i.clone=Mt,i.isDecimal=St,i.abs=An,i.acos=Nn,i.acosh=_n,i.add=En,i.asin=kn,i.asinh=Ln,i.atan=Bn,i.atanh=In,i.atan2=Cn,i.cbrt=Dn,i.ceil=Mn,i.clamp=Rn,i.cos=vn,i.cosh=Kn,i.div=Un,i.exp=Fn,i.floor=Vn,i.hypot=Wn,i.ln=Hn,i.log=qn,i.log10=jn,i.log2=Gn,i.max=Yn,i.min=zn,i.mod=Qn,i.mul=Zn,i.pow=Xn,i.random=Jn,i.round=$n,i.sign=er,i.sin=tr,i.sinh=nr,i.sqrt=rr,i.sub=ir,i.sum=or,i.tan=sr,i.tanh=ar,i.trunc=ur,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 Un(e,t){return new this(e).div(t)}function Fn(e){return new this(e).exp()}function Vn(e){return y(e=new this(e),e.e+1,3)}function Wn(){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 St(e){return e instanceof Ue||e&&e.toStringTag===Et||!1}function Hn(e){return new this(e).ln()}function qn(e,t){return new this(e).log(t)}function Gn(e){return new this(e).log(2)}function jn(e){return new this(e).log(10)}function Yn(){return It(this,arguments,-1)}function zn(){return It(this,arguments,1)}function Qn(e,t){return new this(e).mod(t)}function Zn(e,t){return new this(e).mul(t)}function Xn(e,t){return new this(e).pow(t)}function Jn(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(_t);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],e%=A,r&&e&&(i=F(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 $n(e){return y(e=new this(e),e.e+1,this.rounding)}function er(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function tr(e){return new this(e).sin()}function nr(e){return new this(e).sinh()}function rr(e){return new this(e).sqrt()}function ir(e,t){return new this(e).sub(t)}function or(){var e=0,t=arguments,n=new this(t[e]);for(_=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return _=!0,y(n,this.precision,this.rounding)}function sr(e){return new this(e).tan()}function ar(e){return new this(e).tanh()}function ur(e){return y(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=Mt(Xe);De=new Ue(De);Me=new Ue(Me);import{TOKEN_PROGRAM_ID as cr}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:cr.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 rt}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as lr}from"@solana/spl-token";import{PublicKey as v,SystemProgram as Rt,SYSVAR_RENT_PUBKEY as fr}from"@solana/web3.js";function tt({pubkey:e,isSigner:t=!1,isWritable:n=!0}){return{pubkey:e,isWritable:n,isSigner:t}}var _i=[tt({pubkey:lr,isWritable:!1}),tt({pubkey:Rt.programId,isWritable:!1}),tt({pubkey:fr,isWritable:!1})];function Ot({publicKey:e,transformSol:t,network:n}){let r=nt(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 nt(e){try{return new v(e)}catch{return e}}var Ei=new v("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ki=new v("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),mr=new v("SysvarRent111111111111111111111111111111111"),vt=new v("SysvarC1ock11111111111111111111111111111111"),Li=new v("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Bi=new v("Sysvar1nstructions1111111111111111111111111"),pr=Rt.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 rt&&be.equals(t)&&a){this.decimals=ce(a).decimals,this.symbol=ce(a).symbol,this.name=ce(a).name,this.mint=new rt(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?rt.default:Ot({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 Ve from"big.js";import wr from"bn.js";import yr from"decimal.js-light";import{get as Kt,set as dr}from"lodash";var it=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}},Ut={},gr={};function G(e){let t=Kt(Ut,e);if(!t){let n=Kt(gr,e);t=new it({name:e,logLevel:n}),dr(Ut,e,t)}return t}import we from"bn.js";var Ft=9007199254740991;function Y(e){let t=G("CobaltX_parseBigNumberish");if(e instanceof we)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new we(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=Ft||e<=-Ft)&&t.logWithError(`BigNumberish number overflow: ${e}`),new we(String(e))):typeof e=="bigint"?new we(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new we(0))}import hr from"toformat";var br=hr,ye=br;var Fe=G("module/fraction"),ot=ye(Ve),Pe=ye(yr),Pr={[0]:Pe.ROUND_DOWN,[1]:Pe.ROUND_HALF_UP,[2]:Pe.ROUND_UP},xr={[0]:Ve.roundDown,[1]:Ve.roundHalfUp,[2]:Ve.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)||Fe.logWithError(`${t} is not an integer.`),t<=0&&Fe.logWithError(`${t} is not positive.`),Pe.set({precision:t+1,rounding:Pr[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)||Fe.logWithError(`${t} is not an integer.`),t<0&&Fe.logWithError(`${t} is negative.`),ot.DP=t,ot.RM=xr[r]||1,new ot(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import Sr from"bn.js";var Vt=new D(new Sr(100)),pe=class extends D{toSignificant(t=5,n,r){return this.mul(Vt).toSignificant(t,n,r)}toFixed(t=2,n,r){return this.mul(Vt).toFixed(t,n,r)}};var Ar=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(st(r.decimals),st(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&&Ar.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 Nr=new ne(0),Bo=new ne(1),Io=new ne(2),Co=new ne(3),Do=new ne(5),at=new ne(10),Mo=new ne(100),Ro=new ne(1e3),Oo=new ne(1e4);function st(e){return at.pow(Y(e))}import{MINT_SIZE as Vo,TOKEN_PROGRAM_ID as Wo,getTransferFeeConfig as Ho,unpackMint as qo}from"@solana/spl-token";import{PublicKey as _r}from"@solana/web3.js";var ut=G("CobaltX_accountInfo_util");async function Ht(e,t,n){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}={batchRequest:!1,...n},s=ct(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=ct(u,10);a=(await(await Promise.all(c.map(async f=>await e._rpcBatchRequest(f)))).flat()).map(f=>(f.error&&ut.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:w,rentEpoch:b}=m;return d.length!==2&&d[1]!=="base64"&&ut.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(d[0],"base64"),executable:h,lamports:g,owner:new _r(w),rentEpoch:b}}return null})))}else try{a=await Promise.all(s.map(u=>e.getMultipleAccountsInfo(u,i)))}catch(u){u instanceof Error&&ut.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${u.message}`)}return a.flat()}function ct(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 jt,PublicKey as ss,Transaction as Yt,TransactionMessage as Er,VersionedTransaction as zt}from"@solana/web3.js";var lt={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 kr}from"@solana/spl-token";var Gt=G("CobaltX_txUtil"),Qt=1644;function We(e){let t=[],n=[];return e.microLamports&&(t.push(qt.setComputeUnitPrice({microLamports:e.microLamports})),n.push(lt.SetComputeUnitPrice)),e.units&&(t.push(qt.setComputeUnitLimit({units:e.units})),n.push(lt.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 Lr(e,t){e.length<1&&Gt.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&Gt.logWithError(`no signers provided:, ${t.toString()}`);let n=new Yt;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...e);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Qt}catch{return!1}}function xe({instructions:e,payer:t,signers:n}){return Lr(e,[t,...n])}function Se({instructions:e,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=jt.generate().publicKey.toString()}){let o=new Er({payerKey:t,recentBlockhash:r,instructions:e}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new zt(o).serialize()).toString("base64").length<Qt}catch{return!1}}var Br=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e),Ir=e=>{let t=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof zt&&(t=Br(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 Yt&&(n.recentBlockhash||(n.recentBlockhash=kr.toBase58()),n.feePayer||(n.feePayer=jt.generate().publicKey)),t.push(Ir(n))}),console.log("simulate tx string:",t),t}import Ps from"bn.js";import{PublicKey as Zt,AddressLookupTableAccount as qe}from"@solana/web3.js";async function ft({connection:e,address:t,network:n}){let r=await Ht(e,[...new Set(t.map(o=>o.toString()))].map(o=>new Zt(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 Zt(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 mt,Transaction as Ne,TransactionMessage as _e,VersionedTransaction as Ee}from"@solana/web3.js";import Cr 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 Cr.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 mt(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||{},w=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 mt(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=w,await this.connection.sendRawTransaction(N.serialize(),{skipPreflight:g})))),signedTxs:s}}if(this.signAllTransactions){let N=s.map((T,P)=>(T.recentBlockhash=w,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 k=await this.connection.sendRawTransaction(S[T].serialize(),{skipPreflight:g});P.push({txId:k,status:"sent",signedTx:S[T]}),m==null||m([...P]),T++,this.connection.onSignature(k,I=>{let O=P.findIndex(z=>z.txId===k);O>-1&&(P[O].status=I.err?"error":"success"),m==null||m([...P]),I.err||x()},"processed"),this.connection.getSignatureStatus(k)};return await x(),{txIds:P.map(k=>k.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 w of c)u[w]===void 0&&l.push(new Ae(w));let f=await ft({connection:this.connection,address:l,network:s});for(let[w,b]of Object.entries(f))u[w]=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(w=>w.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let h=new Ee(d);return h.sign(this.signers),{builder:this,transaction:h,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async w=>{var S;let{skipPreflight:b=!0,sendAndConfirm:N}=w||{};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(w=>w.message.recentBlockhash=d),le(s),(g=this.owner)!=null&&g.isKeyPair){if(f){let w=[];for(let b of s){let N=await this.connection.sendTransaction(b,{skipPreflight:h});await He(this.connection,N),w.push(N)}return{txIds:w,signedTxs:s}}return{txIds:await Promise.all(s.map(async w=>await this.connection.sendTransaction(w,{skipPreflight:h}))),signedTxs:s}}if(this.signAllTransactions){let w=await this.signAllTransactions(s);if(f){let b=0,N=[],S=async()=>{if(!w[b])return;let T=await this.connection.sendTransaction(w[b],{skipPreflight:h});N.push({txId:T,status:"sent",signedTx:w[b]}),m==null||m([...N]),b++,this.connection.onSignature(T,P=>{let x=N.findIndex(k=>k.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:w}}else{let b=[];for(let N=0;N<w.length;N+=1){let S=await this.connection.sendTransaction(w[N],{skipPreflight:h});b.push(S)}return{txIds:b,signedTxs:w}}}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,w=[...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:w})||xe({instructions:d,payer:this.feePayer,signers:w})))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:w})?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:w,skipPreflight:b=!0}=m||{},N=w!=null?w: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 k=await mt(this.connection,x,this.signers.find(I=>I.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:b});P.push(k)}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,k=[],I=async()=>{if(!P[x])return;x<g&&(k.push({txId:"",status:"success",signedTx:P[x]}),h==null||h([...k]),x++,I());let O=await this.connection.sendRawTransaction(P[x].serialize(),{skipPreflight:b});k.push({txId:O,status:"sent",signedTx:P[x]}),h==null||h([...k]),x++,this.connection.onSignature(O,z=>{let R=k.findIndex(K=>K.txId===O);R>-1&&(k[R].status=z.err?"error":"success"),h==null||h([...k]),z.err||I()},"processed"),this.connection.getSignatureStatus(O)};return await I(),{txIds:k.map(O=>O.txId),signedTxs:P}}else{let x=[];for(let k=0;k<P.length;k+=1){let I=await this.connection.sendRawTransaction(P[k].serialize(),{skipPreflight:b});x.push(I)}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 ft({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=[],w=[],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 k={};for(let I of[...new Set(c)])u[I]!==void 0&&(k[I]=u[I]);if(n&&Se({instructions:[...m.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:u,recentBlockhash:d})){let I=new _e({payerKey:this.feePayer,recentBlockhash:d,instructions:[...m.instructions,...b]}).compileToV0Message(Object.values(u));g.push(new Ee(I))}else{let I=new _e({payerKey:this.feePayer,recentBlockhash:d,instructions:[...b]}).compileToV0Message(Object.values(u));g.push(new Ee(I))}w.push(Array.from(new Set(b.map(I=>I.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat())).map(I=>h[I]).filter(I=>I!==void 0)),b=[T]}}),b.length>0){let P=[...new Set(b.map(x=>x.keys.filter(k=>k.isSigner).map(k=>k.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 Ee(x))}else{let x=new _e({payerKey:this.feePayer,recentBlockhash:d,instructions:[...b]}).compileToV0Message(Object.values(u));g.push(new Ee(x))}w.push(P)}return(S=this.owner)!=null&&S.signer&&w.forEach(T=>{T.some(P=>P.publicKey.equals(this.owner.publicKey))||T.push(this.owner.signer)}),{builder:this,transactions:g,buildProps:t,signers:w,instructionTypes:this.instructionTypes,execute:async T=>{var z;let{sequentially:P,onTxUpdate:x,skipTxCount:k=0,recentBlockHash:I,skipPreflight:O=!0}=T||{};if(g.map(async(R,K)=>{w[K].length&&R.sign(w[K]),I&&(R.message.recentBlockhash=I)}),le(g),(z=this.owner)!=null&&z.isKeyPair){if(P){let R=0,K=[];for(let W of g){if(++R,R<=k){console.log("skip tx: ",R),K.push("tx skipped");continue}let V=await this.connection.sendTransaction(W,{skipPreflight:O});await He(this.connection,V),K.push(V)}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(k,g.length)),K=[...g.slice(0,k),...R];if(P){let W=0,V=[],U=async()=>{if(!K[W])return;if(W<k){V.push({txId:"",status:"success",signedTx:K[W]}),x==null||x([...V]),W++,U();return}let C=await this.connection.sendTransaction(K[W],{skipPreflight:O});V.push({txId:C,status:"sent",signedTx:K[W]}),x==null||x([...V]),W++,this.connection.onSignature(C,wt=>{let yt=V.findIndex(on=>on.txId===C);yt>-1&&(V[yt].status=wt.err?"error":"success"),x==null||x([...V]),wt.err||U()},"processed"),this.connection.getSignatureStatus(C)};return U(),{txIds:[],signedTxs:K}}else{let W=[];for(let V=0;V<K.length;V+=1){let U=await this.connection.sendTransaction(K[V],{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 Mr=G("CobaltX_amount"),Xt=ye(Dr);function Rr(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")):Mr.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=at.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]=Rr(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 Xt.DP=this.token.decimals,new Xt(this.numerator.toString()).div(this.denominator.toString()).toFormat(n)}};function Wt(e){return typeof e=="object"&&e!==null&&![ae,te,Or,D,vr,ee,pe].some(t=>typeof t=="object"&&e instanceof t)}function ze(e){return typeof e=="string"?nt(e):Array.isArray(e)?e.map(t=>ze(t)):Wt(e)?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,ze(n)])):e}var pt=(...e)=>e.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),ke=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(pt(t))}logInfo(...t){this.logger.info(pt(t))}logAndCreateError(...t){let n=pt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{SYSVAR_CLOCK_PUBKEY as Wr,TransactionInstruction as tn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as nn}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 Fa,f64 as Va,f64be as Wa,greedy as Ha,Layout as qa,ns64 as Ga,ns64be as ja,nu64 as Kr,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 Ur,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 wu,Union as yu,unionLayoutDiscriminator as Pu,utf8 as xu}from"@solana/buffer-layout";var Jt=Ur;var $t=Fr;var en=Kr;function gt(e){return new $t(1,e)}var dt=class extends Jt{decode(t,n){return super.decode(t,n)}};function ht(e,t,n){return new dt(e,t,n)}var Vr=ht([gt("instruction"),en("amount")]),Le=ht([gt("instruction")]);function Qe({programId:e},t){let n=[{pubkey:nn,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(Le.span);return Le.encode({instruction:2},r),new tn({keys:n,programId:e,data:r})}function bt(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(Le.span);Le.encode({instruction:2},s);let a=[{pubkey:nn,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 tn({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},Tt=class extends ke{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 rn(t.coin).isZero(),!new rn(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:w}=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&&w&&s.addInstruction(w),(!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?[bt({...b,side:"base"})]:[],...l?[bt({...b,side:"quote"})]:[]]}).versionBuild({txVersion:o})}};export{Tt as default};
/*!
* 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=ido.mjs.map