Anonymous
Я пытаюсь сделать произвольный торговый бот в цепочке арбитра на Python, но у вас есть проблемы с ABI
Сообщение
Anonymous » 26 май 2025, 00:24
Я пытаюсь создать производный торговый бот с видом на арбитра. Sepolia testnet, прежде чем идти вперед. < /P>
Однако я не могу проверить контракты и получить ошибки.
Код: Выделить всё
'mainnet': {
'rpc_urls': [
'https://arb1.arbitrum.io/rpc',
'https://arbitrum-one.publicnode.com',
],
'tokens': {
'WETH': '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
'DAI': '0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1'
},
'routers': {
'Uniswap': '0x4C60051384bd2d3C01bfc845Cf5F4b44bcbE9de5',
'Camelot': '0xc873fEcbd354f5A56E00E710B90EF4201db2448d'
}
},
'testnet': {
'rpc_urls': [
'https://sepolia-rollup.arbitrum.io/rpc',
'https://arbitrum-sepolia.publicnode.com',
'https://arbitrum-sepolia-rpc.publicnode.com',
'https://arb-sepolia.g.alchemy.com/v2/MYKEY'
],
'tokens': {
'WETH': '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73',
'DAI': '0x9bc8388dD439fa3365B1F78A81242aDBB4677759'
},
'routers': {
'Uniswap': '0x101F443a4A2D26158236F5aD075C6591b03Fc3c5',
'Camelot': '0x171B925C51565F5D2a7d8C494ba3188D304EFD93'
}
}
< /code>
С помощью какого -то Клода я смог добавить эти ABI, потому что тот, который я получил от исследователя, тоже не работал. < /p>
self.erc20_abi = [
{
"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": "balanceOf",
"outputs": [{"name": "balance", "type": "uint256"}],
"type": "function"
}
]
# Uniswap V2 Router ABI (simplified)
self.uniswap_v2_abi = [
{
"inputs": [],
"name": "WETH",
"outputs": [{"internalType": "address", "name": "", "type": "address"}],
"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": "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": "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"
}
]
# Camelot Router ABI
self.camelot_abi = [
{
"inputs": [],
"name": "WETH",
"outputs": [{"internalType": "address", "name": "", "type": "address"}],
"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": "amountOutMin", "type": "uint256"},
{"internalType": "address[]", "name": "path", "type": "address[]"},
{"internalType": "address", "name": "to", "type": "address"},
{"internalType": "address", "name": "referrer", "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": "address", "name": "referrer", "type": "address"},
{"internalType": "uint256", "name": "deadline", "type": "uint256"}
],
"name": "swapExactTokensForETHSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
Любые предложения или альтернативы наиболее приветствуются.
Подробнее здесь:
https://stackoverflow.com/questions/796 ... on-but-hav
1748208244
Anonymous
Я пытаюсь создать производный торговый бот с видом на арбитра. Sepolia testnet, прежде чем идти вперед. < /P> Однако я не могу проверить контракты и получить ошибки.[code] 'mainnet': { 'rpc_urls': [ 'https://arb1.arbitrum.io/rpc', 'https://arbitrum-one.publicnode.com', ], 'tokens': { 'WETH': '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 'DAI': '0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1' }, 'routers': { 'Uniswap': '0x4C60051384bd2d3C01bfc845Cf5F4b44bcbE9de5', 'Camelot': '0xc873fEcbd354f5A56E00E710B90EF4201db2448d' } }, 'testnet': { 'rpc_urls': [ 'https://sepolia-rollup.arbitrum.io/rpc', 'https://arbitrum-sepolia.publicnode.com', 'https://arbitrum-sepolia-rpc.publicnode.com', 'https://arb-sepolia.g.alchemy.com/v2/MYKEY' ], 'tokens': { 'WETH': '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', 'DAI': '0x9bc8388dD439fa3365B1F78A81242aDBB4677759' }, 'routers': { 'Uniswap': '0x101F443a4A2D26158236F5aD075C6591b03Fc3c5', 'Camelot': '0x171B925C51565F5D2a7d8C494ba3188D304EFD93' } } < /code> С помощью какого -то Клода я смог добавить эти ABI, потому что тот, который я получил от исследователя, тоже не работал. < /p> self.erc20_abi = [ { "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": "balanceOf", "outputs": [{"name": "balance", "type": "uint256"}], "type": "function" } ] # Uniswap V2 Router ABI (simplified) self.uniswap_v2_abi = [ { "inputs": [], "name": "WETH", "outputs": [{"internalType": "address", "name": "", "type": "address"}], "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": "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": "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" } ] # Camelot Router ABI self.camelot_abi = [ { "inputs": [], "name": "WETH", "outputs": [{"internalType": "address", "name": "", "type": "address"}], "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": "amountOutMin", "type": "uint256"}, {"internalType": "address[]", "name": "path", "type": "address[]"}, {"internalType": "address", "name": "to", "type": "address"}, {"internalType": "address", "name": "referrer", "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": "address", "name": "referrer", "type": "address"}, {"internalType": "uint256", "name": "deadline", "type": "uint256"} ], "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] [/code] Любые предложения или альтернативы наиболее приветствуются. Подробнее здесь: [url]https://stackoverflow.com/questions/79638087/i-am-trying-to-make-an-arbitrary-trading-bot-on-arbitrum-chain-on-python-but-hav[/url]