UNPKG

ttxd-alpha

Version:

An SDK for building applications on top of V2,V3 and Solana exchanges

3 lines (2 loc) 48.8 kB
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@uniswap/sdk-core"),n=require("ttxd"),a=require("ethers"),r=require("@solana/web3.js"),i=e(require("bn.js")),o=e(require("decimal.js")),s=require("@solana/spl-token"),u=require("@raydium-io/raydium-sdk-v2"),p=e(require("bs58")),y=require("fs/promises"),c=e(require("path")),l=e(require("jsbi"));function d(e,t,n,a,r,i,o){try{var s=e[i](o),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(a,r)}function m(e){return function(){var t=this,n=arguments;return new Promise((function(a,r){var i=e.apply(t,n);function o(e){d(i,a,r,o,s,"next",e)}function s(e){d(i,a,r,o,s,"throw",e)}o(void 0)}))}}function f(){return(f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e}).apply(null,arguments)}function b(){b=function(){return t};var e,t={},n=Object.prototype,a=n.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function p(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(e){p=function(e,t,n){return e[t]=n}}function y(e,t,n,a){var i=Object.create((t&&t.prototype instanceof T?t:T).prototype),o=new I(a||[]);return r(i,"_invoke",{value:k(e,n,o)}),i}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=y;var l="suspendedStart",d="executing",m="completed",f={};function T(){}function h(){}function x(){}var v={};p(v,o,(function(){return this}));var w=Object.getPrototypeOf,g=w&&w(w(B([])));g&&g!==n&&a.call(g,o)&&(v=g);var E=x.prototype=T.prototype=Object.create(v);function F(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function A(e,t){function n(r,i,o,s){var u=c(e[r],e,i);if("throw"!==u.type){var p=u.arg,y=p.value;return y&&"object"==typeof y&&a.call(y,"__await")?t.resolve(y.__await).then((function(e){n("next",e,o,s)}),(function(e){n("throw",e,o,s)})):t.resolve(y).then((function(e){p.value=e,o(p)}),(function(e){return n("throw",e,o,s)}))}s(u.arg)}var i;r(this,"_invoke",{value:function(e,a){function r(){return new t((function(t,r){n(e,a,t,r)}))}return i=i?i.then(r,r):r()}})}function k(t,n,a){var r=l;return function(i,o){if(r===d)throw Error("Generator is already running");if(r===m){if("throw"===i)throw o;return{value:e,done:!0}}for(a.method=i,a.arg=o;;){var s=a.delegate;if(s){var u=M(s,a);if(u){if(u===f)continue;return u}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(r===l)throw r=m,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);r=d;var p=c(t,n,a);if("normal"===p.type){if(r=a.done?m:"suspendedYield",p.arg===f)continue;return{value:p.arg,done:a.done}}"throw"===p.type&&(r=m,a.method="throw",a.arg=p.arg)}}}function M(t,n){var a=n.method,r=t.iterator[a];if(r===e)return n.delegate=null,"throw"===a&&t.iterator.return&&(n.method="return",n.arg=e,M(t,n),"throw"===n.method)||"return"!==a&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+a+"' method")),f;var i=c(r,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,f;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,f):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,f)}function P(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(P,this),this.reset(!0)}function B(t){if(t||""===t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function n(){for(;++r<t.length;)if(a.call(t,r))return n.value=t[r],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(typeof t+" is not iterable")}return h.prototype=x,r(E,"constructor",{value:x,configurable:!0}),r(x,"constructor",{value:h,configurable:!0}),h.displayName=p(x,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===h||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,x):(e.__proto__=x,p(e,u,"GeneratorFunction")),e.prototype=Object.create(E),e},t.awrap=function(e){return{__await:e}},F(A.prototype),p(A.prototype,s,(function(){return this})),t.AsyncIterator=A,t.async=function(e,n,a,r,i){void 0===i&&(i=Promise);var o=new A(y(e,n,a,r),i);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},F(E),p(E,u,"Generator"),p(E,o,(function(){return this})),p(E,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var a in t)n.push(a);return n.reverse(),function e(){for(;n.length;){var a=n.pop();if(a in t)return e.value=a,e.done=!1,e}return e.done=!0,e}},t.values=B,I.prototype={constructor:I,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(C),!t)for(var n in this)"t"===n.charAt(0)&&a.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function r(a,r){return s.type="throw",s.arg=t,n.next=a,r&&(n.method="next",n.arg=e),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],s=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var u=a.call(o,"catchLoc"),p=a.call(o,"finallyLoc");if(u&&p){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(u){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!p)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&a.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,f):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),f},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var a=n.completion;if("throw"===a.type){var r=a.arg;C(n)}return r}}throw Error("illegal catch attempt")},delegateYield:function(t,n,a){return this.delegate={iterator:B(t),resultName:n,nextLoc:a},"next"===this.method&&(this.arg=e),f}},t}var T=[{inputs:[],payable:!1,stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"},{indexed:!0,internalType:"address",name:"to",type:"address"}],name:"Burn",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Mint",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0In",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1In",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount0Out",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1Out",type:"uint256"},{indexed:!0,internalType:"address",name:"to",type:"address"}],name:"Swap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint112",name:"reserve0",type:"uint112"},{indexed:!1,internalType:"uint112",name:"reserve1",type:"uint112"}],name:"Sync",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{constant:!0,inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"MINIMUM_LIQUIDITY",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"PERMIT_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{internalType:"address",name:"to",type:"address"}],name:"burn",outputs:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"getReserves",outputs:[{internalType:"uint112",name:"_reserve0",type:"uint112"},{internalType:"uint112",name:"_reserve1",type:"uint112"},{internalType:"uint32",name:"_blockTimestampLast",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{internalType:"address",name:"_token0",type:"address"},{internalType:"address",name:"_token1",type:"address"}],name:"initialize",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"kLast",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{internalType:"address",name:"to",type:"address"}],name:"mint",outputs:[{internalType:"uint256",name:"liquidity",type:"uint256"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"price0CumulativeLast",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"price1CumulativeLast",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{internalType:"address",name:"to",type:"address"}],name:"skim",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{internalType:"uint256",name:"amount0Out",type:"uint256"},{internalType:"uint256",name:"amount1Out",type:"uint256"},{internalType:"address",name:"to",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"swap",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[],name:"sync",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"token0",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"token1",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"}],h=[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_WETH",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"WETH",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"amountADesired",type:"uint256"},{internalType:"uint256",name:"amountBDesired",type:"uint256"},{internalType:"uint256",name:"amountAMin",type:"uint256"},{internalType:"uint256",name:"amountBMin",type:"uint256"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"addLiquidity",outputs:[{internalType:"uint256",name:"amountA",type:"uint256"},{internalType:"uint256",name:"amountB",type:"uint256"},{internalType:"uint256",name:"liquidity",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountTokenDesired",type:"uint256"},{internalType:"uint256",name:"amountTokenMin",type:"uint256"},{internalType:"uint256",name:"amountETHMin",type:"uint256"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"addLiquidityETH",outputs:[{internalType:"uint256",name:"amountToken",type:"uint256"},{internalType:"uint256",name:"amountETH",type:"uint256"},{internalType:"uint256",name:"liquidity",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"reserveIn",type:"uint256"},{internalType:"uint256",name:"reserveOut",type:"uint256"}],name:"getAmountIn",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"reserveIn",type:"uint256"},{internalType:"uint256",name:"reserveOut",type:"uint256"}],name:"getAmountOut",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"}],name:"getAmountsIn",outputs:[{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"}],name:"getAmountsOut",outputs:[{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amountA",type:"uint256"},{internalType:"uint256",name:"reserveA",type:"uint256"},{internalType:"uint256",name:"reserveB",type:"uint256"}],name:"quote",outputs:[{internalType:"uint256",name:"amountB",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"liquidity",type:"uint256"},{internalType:"uint256",name:"amountAMin",type:"uint256"},{internalType:"uint256",name:"amountBMin",type:"uint256"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"removeLiquidity",outputs:[{internalType:"uint256",name:"amountA",type:"uint256"},{internalType:"uint256",name:"amountB",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"liquidity",type:"uint256"},{internalType:"uint256",name:"amountTokenMin",type:"uint256"},{internalType:"uint256",name:"amountETHMin",type:"uint256"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"removeLiquidityETH",outputs:[{internalType:"uint256",name:"amountToken",type:"uint256"},{internalType:"uint256",name:"amountETH",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"liquidity",type:"uint256"},{internalType:"uint256",name:"amountTokenMin",type:"uint256"},{internalType:"uint256",name:"amountETHMin",type:"uint256"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"removeLiquidityETHSupportingFeeOnTransferTokens",outputs:[{internalType:"uint256",name:"amountETH",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"liquidity",type:"uint256"},{internalType:"uint256",name:"amountTokenMin",type:"uint256"},{internalType:"uint256",name:"amountETHMin",type:"uint256"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"bool",name:"approveMax",type:"bool"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"removeLiquidityETHWithPermit",outputs:[{internalType:"uint256",name:"amountToken",type:"uint256"},{internalType:"uint256",name:"amountETH",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"liquidity",type:"uint256"},{internalType:"uint256",name:"amountTokenMin",type:"uint256"},{internalType:"uint256",name:"amountETHMin",type:"uint256"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"bool",name:"approveMax",type:"bool"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens",outputs:[{internalType:"uint256",name:"amountETH",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"liquidity",type:"uint256"},{internalType:"uint256",name:"amountAMin",type:"uint256"},{internalType:"uint256",name:"amountBMin",type:"uint256"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"bool",name:"approveMax",type:"bool"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"removeLiquidityWithPermit",outputs:[{internalType:"uint256",name:"amountA",type:"uint256"},{internalType:"uint256",name:"amountB",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapETHForExactTokens",outputs:[{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapExactETHForTokens",outputs:[{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapExactETHForTokensSupportingFeeOnTransferTokens",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapExactTokensForETH",outputs:[{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapExactTokensForETHSupportingFeeOnTransferTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapExactTokensForTokens",outputs:[{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapExactTokensForTokensSupportingFeeOnTransferTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMax",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapTokensForExactETH",outputs:[{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMax",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapTokensForExactTokens",outputs:[{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],x={1:{uniswapv2:{factory:"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",router:"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D"},pancakeswapv2:{factory:"0x1097053Fd2ea711dad45caCcc45EfF7548fCB362",router:"0xEfF92A263d31888d860bD50809A8D171709b7b1c"},sushiswapv2:{factory:"0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac",router:"0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F"}},42161:{uniswapv2:{factory:"0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9",router:"0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24"},pancakeswapv2:{factory:"0x02a84c1b3BBD7401a5f7fa98a384EBC70bB5749E",router:"0x8cFe327CEc66d1C090Dd72bd0FF11d690C33a2Eb"}},56:{uniswapv2:{factory:"0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6",router:"0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24"},pancakeswapv2:{factory:"0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73",router:"0x10ED43C718714eb63d5aA57B78B54704E256024E"},sushiswapv2:{factory:"0xc35DADB65012eC5796536bD9864eD8773aBc74C4",router:"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506"}},8453:{uniswapv2:{factory:"0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6",router:"0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24"},pancakeswapv2:{factory:"0x02a84c1b3BBD7401a5f7fa98a384EBC70bB5749E",router:"0x8cFe327CEc66d1C090Dd72bd0FF11d690C33a2Eb"}},137:{quickswapv2:{factory:"0x5757371414417b8C6CAad45bAeF941aBc7d3Ab32",router:"0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff"},uniswapv2:{factory:"0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C",router:"0xedf6066a2b290C185783862C7F4776A2C8077AD1"},sushiswapv2:{factory:"0xc35DADB65012eC5796536bD9864eD8773aBc74C4",router:"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506"}}},v={1:{maxFeePerGas:"10",maxPriorityFeePerGas:"4"},56:{maxFeePerGas:"6",maxPriorityFeePerGas:"3"},8453:{maxFeePerGas:"6",maxPriorityFeePerGas:"3"},42161:{maxFeePerGas:"6",maxPriorityFeePerGas:"3"},137:{maxFeePerGas:"50",maxPriorityFeePerGas:"30"}};function w(){return(w=m(b().mark((function e(r){var i,o,s,u,p,y,c,l,d,m,f,w,g,E,F,A,k,M,P,C,I,B,O,S,D,L,_,G,q,R,N,H;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=r.exchange,s=r.token1,u=r.token2,p=r.amount,y=r.provider,c=r.signer,d=void 0===(l=r.gasLimit)?3e5:l,m=v[i=r.chainId],f=r.maxFeePerGas||m.maxFeePerGas,w=r.maxPriorityFeePerGas||m.maxPriorityFeePerGas,console.log("Default Gas Config",m),console.log("Final Max Gas Fee",f),console.log("Final Max Priority Gas Fee",w),g=x[i][o]){e.next=10;break}throw new Error("Unsupported chainId: "+i+" or exchange: "+o);case 10:return F=new a.ethers.Contract(E=g.router,h,c),e.prev=12,A=n.Pair.getAddress(s,u),k=new a.ethers.Contract(A,T,y),e.next=17,k.getReserves();case 17:return P=(M=e.sent)[0],C=M[1],I=s.sortsBefore(u)?[s,u]:[u,s],B=I[1],O=new n.Pair(t.CurrencyAmount.fromRawAmount(I[0],P),t.CurrencyAmount.fromRawAmount(B,C)),S=new n.RouteV2([O],s,u),D=new n.TradeV2(S,t.CurrencyAmount.fromRawAmount(s,p),t.TradeType.EXACT_INPUT),L=n.RouterV2.swapCallParameters(D,{ttl:50,recipient:c.address,allowedSlippage:new t.Percent("1","100")}),_=new a.ethers.Contract(L.args[2][0],T,c),e.next=27,Promise.all([_.balanceOf(c.address),_.allowance(c.address,E)]);case 27:if(q=(G=e.sent)[1],console.log("User Balance:",G[0].toString()),!q.lt(p)){e.next=46;break}return console.log("Not enough Allowance, Token Approving..."),e.prev=33,e.next=36,_.approve(E,p,{gasLimit:a.ethers.utils.hexlify(d),maxFeePerGas:a.ethers.utils.parseUnits(f,"gwei"),maxPriorityFeePerGas:a.ethers.utils.parseUnits(w,"gwei")});case 36:return R=e.sent,e.next=39,R.wait();case 39:console.log("Tokens Approved:",e.sent.transactionHash),e.next=46;break;case 43:e.prev=43,e.t0=e.catch(33),e.t0 instanceof Error?console.error("Error during token approval:",e.t0.message):console.error("An unknown error occurred:",e.t0);case 46:return N={to:E,data:F.interface.encodeFunctionData(L.methodName,L.args),value:L.value,gasLimit:a.ethers.utils.hexlify(d),maxFeePerGas:a.ethers.utils.parseUnits(f,"gwei"),maxPriorityFeePerGas:a.ethers.utils.parseUnits(w,"gwei")},e.next=49,c.sendTransaction(N);case 49:return H=e.sent,e.next=52,H.wait();case 52:console.log("Swap Transaction Mined:",e.sent.transactionHash),e.next=59;break;case 56:e.prev=56,e.t1=e.catch(12),console.error("Swap Failed:",e.t1);case 59:case"end":return e.stop()}}),e,null,[[12,56],[33,43]])})))).apply(this,arguments)}var g=u.TxVersion.V0;function E(e){return F.apply(this,arguments)}function F(){return(F=m(b().mark((function e(t){var n,a,i,o;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.rpcUrl,a=r.Keypair.fromSecretKey(p.decode(t.privateKey)),i={commitment:"confirmed",httpHeaders:{"x-session-hash":"QNDEMO"+Math.ceil(1e9*Math.random())}},o=new r.Connection(n||"https://api.mainnet-beta.solana.com",i),e.next=6,u.Raydium.load({owner:a,connection:o,cluster:"mainnet",disableFeatureCheck:!0,disableLoadToken:!(null!=t&&t.loadToken),blockhashCommitment:"finalized"});case 6:return e.abrupt("return",e.sent);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var A="96gYZGLnJYVFmbjzopPSU6QiEV5fGqZNyN9nmNhvrZU5",k=new Set(["network error","connection error","transaction simulation failed","blockhash not found","timed out awaiting confirmation","node is behind","failed to get recent blockhash","too many requests"]),M=new Set([u.CLMM_PROGRAM_ID.toBase58()]),P=new Set([u.AMM_V4.toBase58(),u.AMM_STABLE.toBase58()]),C=function(e){return M.has(e)},I=function(e){return P.has(e)};function B(e){var t=100*Math.random();return Math.min(e+t,3e4)}function O(e){var t=e.message.toLowerCase();return[].concat(k).some((function(e){return t.includes(e)}))}function S(){return(S=m(b().mark((function e(t,n,a){var r,i,o,s;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:void 0===n&&(n=3),void 0===a&&(a=1e3),r=0,i=a,o=b().mark((function e(){var a,o;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,t();case 3:return e.t0=e.sent,e.abrupt("return",{v:e.t0});case 7:if(e.prev=7,e.t1=e.catch(0),O(a=e.t1)){e.next=12;break}throw a;case 12:if(r++,console.error("Attempt "+r+" failed:",a.message),!(r>=n)){e.next=16;break}throw new Error("Max retries ("+n+") reached. Last error: "+a.message);case 16:return o=B(i),e.next=19,new Promise((function(e){return setTimeout(e,o)}));case 19:i*=2;case 20:case"end":return e.stop()}}),e,null,[[0,7]])}));case 5:if(!(r<n)){e.next=12;break}return e.delegateYield(o(),"t0",7);case 7:if(!(s=e.t0)){e.next=10;break}return e.abrupt("return",s.v);case 10:e.next=5;break;case 12:throw new Error("Unexpected retry failure");case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var D=function(e){if(e<=0)throw new Error("Priority fee must be greater than 0 SOL");return Math.round(1e9*e)};function L(e,t){return _.apply(this,arguments)}function _(){return(_=m(b().mark((function e(t,n){var a,u,p,y,c,l,d,m,T,h,x,v,w,E,F,k,M,P,C,B,O,S,L,_,G,q;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=n.poolId,u=n.amountIn,y=void 0===(p=n.slippage)?.05:p,l=void 0===(c=n.priorityFeeSol)?5e-4:c,m=void 0===(d=n.tipFeeSol)?0:d,e.prev=1,T=u*r.LAMPORTS_PER_SOL,e.next=5,t.liquidity.getPoolInfoFromRpc({poolId:a});case 5:if(v=(h=e.sent).poolKeys,w=h.poolRpcData,I((x=h.poolInfo).programId)){e.next=9;break}throw new Error("Invalid AMM Pool Id");case 9:return e.next=11,Promise.all([w.baseReserve,w.quoteReserve,w.status.toNumber(),s.NATIVE_MINT.toBase58()]);case 11:if(F=(E=e.sent)[0],k=E[1],M=E[2],[(C=x.mintA).address,(B=x.mintB).address].includes(P=E[3])){e.next=19;break}throw new Error("Input mint does not match pool");case 19:return S=(O=P===C.address?[C,B]:[B,C])[0],L=O[1],_=t.liquidity.computeAmountOut({poolInfo:f({},x,{baseReserve:F,quoteReserve:k,status:M,version:4}),amountIn:new i(T),mintIn:S.address,mintOut:L.address,slippage:y}),console.log("Swapping "+u+" "+(S.symbol||S.address)+" for "+new o(_.amountOut.toString()).div(Math.pow(10,L.decimals)).toDecimalPlaces(L.decimals)+" "+(L.symbol||L.address)),e.next=25,t.liquidity.swap({poolInfo:x,poolKeys:v,amountIn:new i(T),amountOut:_.minAmountOut,fixedSide:"in",inputMint:S.address,txVersion:g,computeBudgetConfig:{units:1e6,microLamports:D(l)},txTipConfig:{address:new r.PublicKey(A),amount:new i(m*r.LAMPORTS_PER_SOL)}});case 25:return G=e.sent.execute,e.next=29,G({sendAndConfirm:!0});case 29:return q=e.sent.txId,console.log("Transaction submitted!. Waiting for confirmation..."),e.next=34,N(t.connection,q);case 34:return e.abrupt("return",{txId:q,mintInSymbol:S.symbol||S.address,mintOutSymbol:L.symbol||L.address});case 37:throw e.prev=37,e.t0=e.catch(1),console.error("Error in AMM Swap",e.t0),e.t0;case 41:case"end":return e.stop()}}),e,null,[[1,37]])})))).apply(this,arguments)}function G(e,t){return q.apply(this,arguments)}function q(){return(q=m(b().mark((function e(t,n){var a,o,p,y,c,l,d,m,f,T,h,x,v,w,E,F,k,M,P,I,B;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=n.poolId,o=n.amountIn,y=void 0===(p=n.slippage)?.05:p,l=void 0===(c=n.priorityFeeSol)?5e-4:c,m=void 0===(d=n.tipFeeSol)?0:d,e.prev=1,f=o*r.LAMPORTS_PER_SOL,e.next=5,t.clmm.getPoolInfoFromRpc(a);case 5:if(C((T=(w=e.sent).poolInfo).programId)){e.next=9;break}throw new Error("Invalid CLMM Pool Id");case 9:if(h=w.poolKeys,x=w.computePoolInfo,v=w.tickData,E=s.NATIVE_MINT.toBase58(),[T.mintA.address,T.mintB.address].includes(E)){e.next=15;break}throw new Error("Input mint does not match pool");case 15:return F=E===T.mintA.address,e.t0=u.PoolUtils,e.t1=x,e.t2=v[a],e.t3=new i(f),e.t4=T[F?"mintB":"mintA"],e.t5=y||.01,e.next=24,t.fetchEpochInfo();case 24:return e.t6=e.sent,e.t7={poolInfo:e.t1,tickArrayCache:e.t2,amountIn:e.t3,tokenOut:e.t4,slippage:e.t5,epochInfo:e.t6},e.next=28,e.t0.computeAmountOutFormat.call(e.t0,e.t7);case 28:return M=(k=e.sent).minAmountOut,P=k.remainingAccounts,e.next=33,t.clmm.swap({poolInfo:T,poolKeys:h,inputMint:T[F?"mintA":"mintB"].address,amountIn:new i(f),amountOutMin:M.amount.raw,observationId:x.observationId,ownerInfo:{useSOLBalance:!0},remainingAccounts:P,txVersion:g,computeBudgetConfig:{units:1e6,microLamports:D(l)},txTipConfig:{address:new r.PublicKey(A),amount:new i(m*r.LAMPORTS_PER_SOL)}});case 33:return I=e.sent.execute,e.next=37,I({sendAndConfirm:!0});case 37:return B=e.sent.txId,console.log("Transaction submitted!. Waiting for confirmation..."),e.next=42,N(t.connection,B);case 42:return e.abrupt("return",{txId:B,mintInSymbol:T[F?"mintA":"mintB"].symbol||T[F?"mintA":"mintB"].address,mintOutSymbol:T[F?"mintB":"mintA"].symbol||T[F?"mintB":"mintA"].address});case 45:throw e.prev=45,e.t8=e.catch(1),console.error("Error in CLMM swap:",e.t8),e.t8;case 49:case"end":return e.stop()}}),e,null,[[1,45]])})))).apply(this,arguments)}function R(){return(R=m(b().mark((function e(t){var n,a,r,i;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.privateKey,a=t.rpcUrl,r=t.poolType,!(t.amountIn<=0)){e.next=3;break}throw new Error("Invalid swap amount: amountIn must be greater than zero.");case 3:return e.prev=3,e.next=6,E({privateKey:n,rpcUrl:a});case 6:i=e.sent,e.t0=r,e.next="amm"===e.t0?10:"clmm"===e.t0?13:16;break;case 10:return e.next=12,L(i,t);case 12:return e.abrupt("return",e.sent);case 13:return e.next=15,G(i,t);case 15:return e.abrupt("return",e.sent);case 16:throw new Error('Invalid pool type. Must be "amm" or "clmm".');case 17:e.next=26;break;case 19:if(e.prev=19,e.t1=e.catch(3),!(e.t1 instanceof Error)){e.next=25;break}throw new Error("Swap failed: "+e.t1.message);case 25:throw new Error("Swap failed: An unknown error occurred.");case 26:case"end":return e.stop()}}),e,null,[[3,19]])})))).apply(this,arguments)}function N(e,t,n){return H.apply(this,arguments)}function H(){return(H=m(b().mark((function e(t,n,a){var r,i;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:void 0===a&&(a=6e4),r=Date.now();case 2:if(!(Date.now()-r<a)){e.next=32;break}return e.prev=3,e.next=6,t.getSignatureStatus(n,{searchTransactionHistory:!0});case 6:if(!(i=e.sent.value)){e.next=18;break}if(!i.err){e.next=11;break}throw new Error("Transaction failed: "+JSON.stringify(i.err));case 11:if("confirmed"!==i.confirmationStatus&&"finalized"!==i.confirmationStatus){e.next=18;break}return e.next=14,t.getTransaction(n,{maxSupportedTransactionVersion:0});case 14:if(e.sent){e.next=17;break}throw new Error("Transaction not found");case 17:return e.abrupt("return",!0);case 18:if(!(Date.now()-r>a)){e.next=20;break}throw new Error("Transaction confirmation timeout");case 20:return e.next=22,new Promise((function(e){return setTimeout(e,1e3)}));case 22:e.next=30;break;case 24:if(e.prev=24,e.t0=e.catch(3),!(Date.now()-r>a)){e.next=28;break}throw new Error("Transaction confirmation failed: "+(e.t0 instanceof Error?e.t0.message:"Unknown error"));case 28:return e.next=30,new Promise((function(e){return setTimeout(e,1e3)}));case 30:e.next=2;break;case 32:throw new Error("Transaction confirmation timeout");case 33:case"end":return e.stop()}}),e,null,[[3,24]])})))).apply(this,arguments)}var U=function(){function e(){this.exchange=null,this.abis=null}e.getInstance=function(){return e.instance||(e.instance=new e),e.instance};var t=e.prototype;return t.setExchange=function(){var e=m(b().mark((function e(t){return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.exchange=t,e.next=3,this.loadABI(t,"router");case 3:return e.t0=e.sent,e.next=6,this.loadABI(t,"pool");case 6:e.t1=e.sent,this.abis={router:e.t0,pool:e.t1};case 8:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.getABI=function(e){if(!this.abis)throw new Error("ABIs not loaded. Call setExchange() first.");return this.abis[e]},t.getExchange=function(){return this.exchange},t.loadABI=function(){var e=m(b().mark((function e(t,n){var a;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=c.resolve(__dirname,"abi/"+t+"-"+n+".json"),e.next=3,y.readFile(a,"utf-8");case 3:return e.abrupt("return",JSON.parse(e.sent));case 5:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),e}().getInstance();function j(e,t){var n,a=Math.pow(10,(n=e,Math.floor(n)===n?0:n.toString().split(".")[1].length||0));return l.divide(l.multiply(l.BigInt(e*a),l.exponentiate(l.BigInt(10),l.BigInt(t))),l.BigInt(a))}var V={1:{pancakeswapv3:{factory:"0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865",router:"0x1b81D678ffb9C0263b24A97847620C99d213eB14",quoter:"0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997"},uniswapv3:{factory:"0x1F98431c8aD98523631AE4a59f267346ea31F984",router:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",quoter:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e"}},56:{pancakeswapv3:{factory:"0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865",router:"0x1b81D678ffb9C0263b24A97847620C99d213eB14",quoter:"0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997"},uniswapv3:{factory:"0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",router:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2",quoter:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077"}},137:{uniswapv3:{factory:"0x1F98431c8aD98523631AE4a59f267346ea31F984",router:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",quoter:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e"}},42161:{pancakeswapv3:{factory:"0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865",router:"0x1b81D678ffb9C0263b24A97847620C99d213eB14",quoter:"0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997"},uniswapv3:{factory:"0x1F98431c8aD98523631AE4a59f267346ea31F984",router:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",quoter:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e"}},10:{uniswapv3:{factory:"0x1F98431c8aD98523631AE4a59f267346ea31F984",router:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",quoter:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e"}},8453:{pancakeswapv3:{factory:"0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865",router:"0x1b81D678ffb9C0263b24A97847620C99d213eB14",quoter:"0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997"},uniswapv3:{factory:"0x33128a8fC17869897dcE68Ed026d694621f6FDfD",router:"0x2626664c2603336E57B271c5C0b26F421741e481",quoter:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a"}}},K=["function balanceOf(address owner) view returns (uint256)","function decimals() view returns (uint8)","function symbol() view returns (string)","function allowance(address owner, address spender) view returns (uint256)","function transfer(address to, uint amount) returns (bool)","function approve(address _spender, uint256 _value) returns (bool)","event Transfer(address indexed from, address indexed to, uint amount)"],W={1:{maxFeePerGas:"10",maxPriorityFeePerGas:"4"},56:{maxFeePerGas:"6",maxPriorityFeePerGas:"3"},8453:{maxFeePerGas:"6",maxPriorityFeePerGas:"3"},42161:{maxFeePerGas:"6",maxPriorityFeePerGas:"3"},137:{maxFeePerGas:"50",maxPriorityFeePerGas:"30"}};function Y(){return(Y=m(b().mark((function e(a){var r,i,o,s,u,p,y,c,d,m,f,T,h,x,v,w,g,E,F,A,k,M,P,C,I,B,O,S,D;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=performance.now(),u=a.exchange,p=a.tokenIn,y=a.tokenOut,c=a.fee,d=a.amountIn,f=void 0===(m=a.slippage)?.5:m,T=a.provider,h=a.signer,v=void 0===(x=a.gasLimit)?3e5:x,w=a.maxPriorityFeePerGas,g=W[s=a.chainId],E=a.maxFeePerGas||g.maxFeePerGas.toString(),F=w||g.maxPriorityFeePerGas.toString(),console.log("Default Gas Config",g),console.log("Final Max Gas Fee",E),console.log("Final Max Priority Gas Fee",F),e.next=10,X(u);case 10:return e.next=12,Promise.all([Promise.resolve(null==(r=V[s])?void 0:r[u]),ee(s,p,y,c,T,null==(i=V[s])||null==(i=i[u])?void 0:i.factory)]);case 12:return M=(A=e.sent)[1],P=(k=A[0]).router,C=k.quoter,console.log("Slippage",f),I=new n.Pool(p,y,c,M.sqrtPriceX96.toString(),M.liquidity.toString(),M.tick),B=new n.Route([I],p,y),O=t.CurrencyAmount.fromRawAmount(p,j(d,p.decimals).toString()),e.next=22,Z(B,O,T,C);case 22:return S=n.Trade.createUncheckedTrade({route:B,inputAmount:O,outputAmount:t.CurrencyAmount.fromRawAmount(y,l.BigInt(e.sent)),tradeType:t.TradeType.EXACT_INPUT}),e.next=26,ne(S,{tokenIn:p,amountIn:d,fee:c,signer:h,routerAddress:P,gasLimit:v,maxFeePerGas:E,maxPriorityFeePerGas:F});case 26:D=performance.now(),console.log("Txn time: "+(D-o).toFixed(2)+"ms");case 28:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function X(e){return z.apply(this,arguments)}function z(){return(z=m(b().mark((function e(t){return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,U.setExchange(t);case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function J(e,t){return Q.apply(this,arguments)}function Q(){return(Q=m(b().mark((function e(t,n){var r,i;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.value&&(t.value=a.BigNumber.from(t.value)),e.next=3,n.sendTransaction(t);case 3:return r=e.sent,e.next=6,r.wait();case 6:if(1!==(i=e.sent).status){e.next=12;break}return console.log("Transaction successful: "+i.transactionHash),e.abrupt("return",i.transactionHash);case 12:throw new Error("Transaction failed");case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Z(e,t,n,a){return $.apply(this,arguments)}function $(){return($=m(b().mark((function e(r,i,o,s){var u,p,y;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return u=n.SwapQuoter.quoteCallParameters(r,i,t.TradeType.EXACT_INPUT,{useQuoterV2:!0}),p=u.calldata,e.next=3,o.call({to:s,data:p});case 3:return y=a.ethers.utils.defaultAbiCoder.decode(["uint256"],e.sent),e.abrupt("return",y[0]);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ee(e,t,n,a,r,i){return te.apply(this,arguments)}function te(){return(te=m(b().mark((function e(t,r,i,o,s,u){var p,y,c,l,d,m;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,p=U.getABI("pool"),56!==t){e.next=8;break}return e.next=5,n.computePoolAddressOnchain({factoryContract:new a.ethers.Contract(u,p,s),tokenA:r,tokenB:i,fee:o});case 5:e.t0=e.sent,e.next=9;break;case 8:e.t0=n.computePoolAddress({factoryAddress:u,tokenA:r,tokenB:i,fee:o});case 9:return y=e.t0,console.log("Current Pool Address: ",y),c=new a.ethers.Contract(y,p,s),e.next=14,Promise.all([c.token0(),c.token1(),c.slot0(),c.liquidity()]);case 14:return m=(l=e.sent)[3],e.abrupt("return",{token0:l[0],token1:l[1],fee:o,sqrtPriceX96:(d=l[2])[0].toString(),liquidity:m.toString(),tick:d[1]});case 22:throw e.prev=22,e.t1=e.catch(0),console.error("Error fetching pool information:",e.t1),new Error("Failed to fetch pool information. Check token details");case 26:case"end":return e.stop()}}),e,null,[[0,22]])})))).apply(this,arguments)}function ne(e,t){return ae.apply(this,arguments)}function ae(){return(ae=m(b().mark((function e(t,n){var r,i,o,s,u,p,y,c,l,d,m,f,T,h,x,v,w,g;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.tokenIn,i=n.amountIn,o=n.fee,s=n.signer,u=n.routerAddress,p=n.gasLimit,y=n.maxFeePerGas,c=n.maxPriorityFeePerGas,console.log("Input Amount:",t.inputAmount.toExact()),console.log("Output Amount:",t.outputAmount.toExact()),l=new a.ethers.Contract(r.address,K,s),d=j(i,r.decimals).toString(),e.next=7,Promise.all([l.balanceOf(s.address),l.allowance(s.address,u)]);case 7:if(f=(m=e.sent)[1],console.log("User Balance:",m[0].toString()),!f.lt(d)){e.next=26;break}return console.log("Not enough Allowance, Token Approving..."),e.prev=13,e.next=16,l.approve(u,d,{gasLimit:a.ethers.BigNumber.from(p),maxFeePerGas:a.ethers.utils.parseUnits(y,"gwei"),maxPriorityFeePerGas:a.ethers.utils.parseUnits(c,"gwei")});case 16:return T=e.sent,e.next=19,T.wait();case 19:console.log("Tokens Approved:",e.sent.transactionHash),e.next=26;break;case 23:e.prev=23,e.t0=e.catch(13),e.t0 instanceof Error?console.error("Error during token approval:",e.t0.message):console.error("An unknown error occurred:",e.t0);case 26:h=U.getABI("router"),x=new a.ethers.Contract(u,h,s),e.prev=28,w={tokenIn:t.inputAmount.currency.address,tokenOut:t.outputAmount.currency.address,fee:o,recipient:s.address,deadline:Math.floor(Date.now()/1e3)+1200,amountIn:t.inputAmount.quotient.toString(),amountOutMinimum:"0",sqrtPriceLimitX96:"0"},v=x.interface.encodeFunctionData("exactInputSingle",[w]),e.next=37;break;case 33:return e.prev=33,e.t1=e.catch(28),console.error("Error encoding function data:",e.t1),e.abrupt("return");case 37:return g={data:v,to:u,from:s.address,value:a.ethers.utils.parseEther("0"),gasLimit:a.ethers.BigNumber.from(p),maxFeePerGas:a.ethers.utils.parseUnits(y,"gwei"),maxPriorityFeePerGas:a.ethers.utils.parseUnits(c,"gwei")},e.prev=38,e.next=41,J(g,s);case 41:e.next=46;break;case 43:e.prev=43,e.t2=e.catch(38),console.error("Error sending transaction:",e.t2);case 46:case"end":return e.stop()}}),e,null,[[13,23],[28,33],[38,43]])})))).apply(this,arguments)}exports.CHAIN_GAS_CONFIGS=v,exports.CHAIN_V3_GAS_CONFIGS=W,exports.COMPUTE_UNITS=1e6,exports.DEFAULT_PRIORITY_FEE=5e-4,exports.DEFAULT_SLIPPAGE=.05,exports.DEFAULT_V2_GAS_LIMIT=3e5,exports.DEFAULT_V3_GAS_LIMIT=3e5,exports.ERC20_ABI=K,exports.INITIAL_BACKOFF=1e3,exports.JITO_TIP_PAYMENT_ACCOUNT=A,exports.JITTER_MAX=100,exports.MAX_BACKOFF=3e4,exports.MAX_RETRIES=3,exports.NETWORK_ADDRESSES=x,exports.RETRYABLE_ERRORS=k,exports.RPC_URL="",exports.SOL_TO_MICROLAMPORTS=1e9,exports.V3_NETWORK_ADDRESSES=V,exports.getPoolInfo=ee,exports.initSdk=E,exports.isValidAmm=I,exports.isValidClmm=C,exports.retryWithBackoff=function(e,t,n){return S.apply(this,arguments)},exports.sendTransaction=J,exports.swapRaydium=function(e){return R.apply(this,arguments)},exports.swapV2=function(e){return w.apply(this,arguments)},exports.swapV3=function(e){return Y.apply(this,arguments)},exports.txVersion=g; //# sourceMappingURL=ttxd-alpha.cjs.production.min.js.map