Created
September 11, 2024 01:20
-
-
Save korrio/8e8f9bc0aa46197ce9b1b0739c5a0dc2 to your computer and use it in GitHub Desktop.
config.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from web3 import Web3 | |
import os | |
from dotenv import load_dotenv | |
from web3.middleware import geth_poa_middleware | |
# from web3.middleware import ( | |
# async_geth_poa_middleware, | |
# ) | |
import asyncio | |
# Load environment variables | |
load_dotenv(override=True) | |
# Configuration | |
POLYGON_RPC_URL = os.getenv('POLYGON_RPC_URL') | |
PRIVATE_KEY = os.getenv('PRIVATE_KEY') | |
WALLET_ADDRESS = os.getenv('WALLET_ADDRESS') | |
PARASWAP_API_URL = os.getenv('PARASWAP_API_URL') | |
# Token addresses | |
TOKEN_A_ADDRESS = Web3.to_checksum_address(os.getenv('TOKEN_A_ADDRESS')) | |
TOKEN_B_ADDRESS = Web3.to_checksum_address(os.getenv('TOKEN_B_ADDRESS')) | |
# Router addresses | |
SUSHISWAP_ROUTER = Web3.to_checksum_address(os.getenv('SUSHISWAP_ROUTER')) | |
QUICKSWAP_ROUTER = Web3.to_checksum_address(os.getenv('QUICKSWAP_ROUTER')) | |
APESWAP_ROUTER = Web3.to_checksum_address(os.getenv('APESWAP_ROUTER')) | |
UNISWAP_ROUTER = Web3.to_checksum_address(os.getenv('UNISWAP_ROUTER')) | |
UNISWAP_V3_ROUTER_POLYGON = Web3.to_checksum_address(os.getenv('UNISWAP_V3_ROUTER_POLYGON')) | |
UNISWAP_V3_FACTORY_POLYGON = Web3.to_checksum_address(os.getenv('UNISWAP_V3_FACTORY_POLYGON')) | |
QUOTER_ADDRESS = Web3.to_checksum_address(os.getenv('QUOTER_ADDRESS')) | |
AMOUNT_A = float(os.getenv('AMOUNT_A')) | |
AMOUNT_B = float(os.getenv('AMOUNT_B')) | |
TOKEN_A = os.getenv('TOKEN_A') | |
TOKEN_B = os.getenv('TOKEN_B') | |
STRATEGY_ATOMIC = os.getenv('STRATEGY_ATOMIC', 'True').lower() == 'true' | |
STRATEGY_PASWAP = os.getenv('STRATEGY_PASWAP', 'True').lower() == 'true' | |
# ABIs | |
ROUTER_ABI = [ | |
{"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":"address[]","name":"path","type":"address[]"}],"name":"getAmountsOut","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"}, | |
] | |
APE_ROUTER_ABI = [ | |
[{"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"}] | |
] | |
ERC20_ABI = [ | |
{"constant":True,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"type":"function"}, | |
{"constant":False,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"type":"function"}, | |
{"constant":True,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"type":"function"}, | |
{"anonymous":False,"inputs":[{"indexed":True,"name":"from","type":"address"},{"indexed":True,"name":"to","type":"address"},{"indexed":False,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"} | |
] | |
WMATIC_ABI = [ | |
{ | |
"constant": False, | |
"inputs": [], | |
"name": "deposit", | |
"outputs": [], | |
"payable": True, | |
"stateMutability": "payable", | |
"type": "function" | |
}, | |
{ | |
"constant": False, | |
"inputs": [{"name": "wad", "type": "uint256"}], | |
"name": "withdraw", | |
"outputs": [], | |
"payable": False, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": True, | |
"inputs": [{"name": "account", "type": "address"}], | |
"name": "balanceOf", | |
"outputs": [{"name": "", "type": "uint256"}], | |
"payable": False, | |
"stateMutability": "view", | |
"type": "function" | |
} | |
] | |
USDC_ABI = [ | |
{ | |
"constant": True, | |
"inputs": [{"name": "_owner", "type": "address"}], | |
"name": "balanceOf", | |
"outputs": [{"name": "balance", "type": "uint256"}], | |
"type": "function" | |
} | |
] | |
ATOMIC_ARBITRAGE_ABI = [ | |
{ | |
"inputs": [ | |
{"internalType": "address", "name": "tokenIn", "type": "address"}, | |
{"internalType": "address", "name": "tokenOut", "type": "address"}, | |
{"internalType": "uint256", "name": "amountIn", "type": "uint256"}, | |
{"internalType": "uint256", "name": "minAmountOut", "type": "uint256"}, | |
{"internalType": "address", "name": "buyDex", "type": "address"}, | |
{"internalType": "address", "name": "sellDex", "type": "address"}, | |
{"internalType": "uint256", "name": "deadline", "type": "uint256"} | |
], | |
"name": "executeArbitrage", | |
"outputs": [], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
} | |
] | |
TOKEN_ABI = [ | |
{ | |
"constant": True, | |
"inputs": [], | |
"name": "name", | |
"outputs": [{"name": "", "type": "string"}], | |
"type": "function" | |
}, | |
{ | |
"constant": True, | |
"inputs": [], | |
"name": "symbol", | |
"outputs": [{"name": "", "type": "string"}], | |
"type": "function" | |
}, | |
{ | |
"constant": True, | |
"inputs": [], | |
"name": "decimals", | |
"outputs": [{"name": "", "type": "uint8"}], | |
"type": "function" | |
}, | |
{ | |
"constant": True, | |
"inputs": [], | |
"name": "totalSupply", | |
"outputs": [{"name": "", "type": "uint256"}], | |
"type": "function" | |
}, | |
{ | |
"constant": True, | |
"inputs": [{"name": "_owner", "type": "address"}], | |
"name": "balanceOf", | |
"outputs": [{"name": "balance", "type": "uint256"}], | |
"type": "function" | |
}, | |
{ | |
"constant": False, | |
"inputs": [{"name": "_to", "type": "address"}, {"name": "_value", "type": "uint256"}], | |
"name": "transfer", | |
"outputs": [{"name": "", "type": "bool"}], | |
"type": "function" | |
}, | |
{ | |
"constant": False, | |
"inputs": [{"name": "_spender", "type": "address"}, {"name": "_value", "type": "uint256"}], | |
"name": "approve", | |
"outputs": [{"name": "", "type": "bool"}], | |
"type": "function" | |
}, | |
{ | |
"constant": True, | |
"inputs": [{"name": "_owner", "type": "address"}, {"name": "_spender", "type": "address"}], | |
"name": "allowance", | |
"outputs": [{"name": "", "type": "uint256"}], | |
"type": "function" | |
}, | |
{ | |
"constant": False, | |
"inputs": [{"name": "_from", "type": "address"}, {"name": "_to", "type": "address"}, {"name": "_value", "type": "uint256"}], | |
"name": "transferFrom", | |
"outputs": [{"name": "", "type": "bool"}], | |
"type": "function" | |
}, | |
{ | |
"anonymous": False, | |
"inputs": [{"indexed": True, "name": "from", "type": "address"}, {"indexed": True, "name": "to", "type": "address"}, {"indexed": False, "name": "value", "type": "uint256"}], | |
"name": "Transfer", | |
"type": "event" | |
}, | |
{ | |
"anonymous": False, | |
"inputs": [{"indexed": True, "name": "owner", "type": "address"}, {"indexed": True, "name": "spender", "type": "address"}, {"indexed": False, "name": "value", "type": "uint256"}], | |
"name": "Approval", | |
"type": "event" | |
} | |
] | |
factory_abi_v3 = [ | |
{ | |
"inputs": [ | |
{"internalType": "address", "name": "tokenA", "type": "address"}, | |
{"internalType": "address", "name": "tokenB", "type": "address"}, | |
{"internalType": "uint24", "name": "fee", "type": "uint24"} | |
], | |
"name": "getPool", | |
"outputs": [{"internalType": "address", "name": "", "type": "address"}], | |
"stateMutability": "view", | |
"type": "function" | |
} | |
] | |
pool_abi_v3 = [ | |
{ | |
"inputs": [], | |
"name": "slot0", | |
"outputs": [ | |
{"internalType": "uint160", "name": "sqrtPriceX96", "type": "uint160"}, | |
{"internalType": "int24", "name": "tick", "type": "int24"}, | |
{"internalType": "uint16", "name": "observationIndex", "type": "uint16"}, | |
{"internalType": "uint16", "name": "observationCardinality", "type": "uint16"}, | |
{"internalType": "uint16", "name": "observationCardinalityNext", "type": "uint16"}, | |
{"internalType": "uint8", "name": "feeProtocol", "type": "uint8"}, | |
{"internalType": "bool", "name": "unlocked", "type": "bool"} | |
], | |
"stateMutability": "view", | |
"type": "function" | |
} | |
] | |
router_abi_v3 = [ | |
{ | |
"inputs": [ | |
{ | |
"components": [ | |
{"internalType": "address", "name": "tokenIn", "type": "address"}, | |
{"internalType": "address", "name": "tokenOut", "type": "address"}, | |
{"internalType": "uint24", "name": "fee", "type": "uint24"}, | |
{"internalType": "address", "name": "recipient", "type": "address"}, | |
{"internalType": "uint256", "name": "deadline", "type": "uint256"}, | |
{"internalType": "uint256", "name": "amountIn", "type": "uint256"}, | |
{"internalType": "uint256", "name": "amountOutMinimum", "type": "uint256"}, | |
{"internalType": "uint160", "name": "sqrtPriceLimitX96", "type": "uint160"} | |
], | |
"internalType": "struct ISwapRouter.ExactInputSingleParams", | |
"name": "params", | |
"type": "tuple" | |
} | |
], | |
"name": "exactInputSingle", | |
"outputs": [{"internalType": "uint256", "name": "amountOut", "type": "uint256"}], | |
"stateMutability": "payable", | |
"type": "function" | |
} | |
] | |
quoter_abi = [ | |
{ | |
"inputs": [ | |
{"internalType": "address", "name": "_factory", "type": "address"}, | |
{"internalType": "address", "name": "_WETH9", "type": "address"} | |
], | |
"stateMutability": "nonpayable", | |
"type": "constructor" | |
}, | |
{ | |
"inputs": [], | |
"name": "WETH9", | |
"outputs": [{"internalType": "address", "name": "", "type": "address"}], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"name": "factory", | |
"outputs": [{"internalType": "address", "name": "", "type": "address"}], | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{"internalType": "bytes", "name": "path", "type": "bytes"}, | |
{"internalType": "uint256", "name": "amountIn", "type": "uint256"} | |
], | |
"name": "quoteExactInput", | |
"outputs": [{"internalType": "uint256", "name": "amountOut", "type": "uint256"}], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{"internalType": "address", "name": "tokenIn", "type": "address"}, | |
{"internalType": "address", "name": "tokenOut", "type": "address"}, | |
{"internalType": "uint24", "name": "fee", "type": "uint24"}, | |
{"internalType": "uint256", "name": "amountIn", "type": "uint256"}, | |
{"internalType": "uint160", "name": "sqrtPriceLimitX96", "type": "uint160"} | |
], | |
"name": "quoteExactInputSingle", | |
"outputs": [{"internalType": "uint256", "name": "amountOut", "type": "uint256"}], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{"internalType": "bytes", "name": "path", "type": "bytes"}, | |
{"internalType": "uint256", "name": "amountOut", "type": "uint256"} | |
], | |
"name": "quoteExactOutput", | |
"outputs": [{"internalType": "uint256", "name": "amountIn", "type": "uint256"}], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{"internalType": "address", "name": "tokenIn", "type": "address"}, | |
{"internalType": "address", "name": "tokenOut", "type": "address"}, | |
{"internalType": "uint24", "name": "fee", "type": "uint24"}, | |
{"internalType": "uint256", "name": "amountOut", "type": "uint256"}, | |
{"internalType": "uint160", "name": "sqrtPriceLimitX96", "type": "uint160"} | |
], | |
"name": "quoteExactOutputSingle", | |
"outputs": [{"internalType": "uint256", "name": "amountIn", "type": "uint256"}], | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{"internalType": "int256", "name": "amount0Delta", "type": "int256"}, | |
{"internalType": "int256", "name": "amount1Delta", "type": "int256"}, | |
{"internalType": "bytes", "name": "path", "type": "bytes"} | |
], | |
"name": "uniswapV3SwapCallback", | |
"outputs": [], | |
"stateMutability": "view", | |
"type": "function" | |
} | |
] | |
TOKENS_WEI = { | |
"WMATIC": ("0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270", 18), | |
"WETH": ("0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619", 18), | |
"USDC": ("0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", 6), | |
"DAI": ("0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063", 18), | |
"USDT": ("0xc2132D05D31c914a87C6611C10748AEb04B58e8F", 6), | |
"WBTC": ("0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6", 8), | |
"UNI": ("0xb33EaAd8d922B1083446DC23f610c2567fB5180f", 18), | |
"QUICK": ("0x831753DD7087CaC61aB5644b308642cc1c33Dc13", 18), | |
"GHST": ("0x385Eeac5cB85A38A9a07A70c73e0a3271CfB54A7", 18), | |
"RAIN": ("0x8E677CA17065eD74675BC27bCaBadB7Eef10A292", 18), | |
"AAVE": ("0xD6DF932A45C0f255f85145f286eA0b292B21C90B", 18) | |
} | |
def init_web3(): | |
w3 = Web3(Web3.HTTPProvider(POLYGON_RPC_URL)) | |
w3.middleware_onion.inject(geth_poa_middleware, layer=0) | |
return w3 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment