Address Contract Partially Verified
Address
0x5C86d669293Abb124b9A9177f032B2AaB3401098
Balance
0 ETH
Nonce
1
Code Size
2302 bytes
Creator
0x356E5A5c...fec3 at tx 0x351eab07...927dbb
Indexed Transactions
0
Contract Bytecode
2302 bytes
0x6080604052600436106100a8575f3560e01c8063be9a655511610062578063be9a655514610185578063d4551ad614610199578063daf7e78e146101b8578063e97b5cc5146101d7578063f14210a6146101f6578063f6326fb314610215575f80fd5b806318820afa146100b35780632014e5d1146100d457806324600fc3146101085780633fc8cef31461011c5780638456cb59146101535780638da5cb5b14610167575f80fd5b366100af57005b5f80fd5b3480156100be575f80fd5b506100d26100cd366004610782565b61021d565b005b3480156100df575f80fd5b505f546100f390600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b348015610113575f80fd5b506100d26104a9565b348015610127575f80fd5b5060035461013b906001600160a01b031681565b6040516001600160a01b0390911681526020016100ff565b34801561015e575f80fd5b506100d261050c565b348015610172575f80fd5b505f5461013b906001600160a01b031681565b348015610190575f80fd5b506100d2610543565b3480156101a4575f80fd5b5060015461013b906001600160a01b031681565b3480156101c3575f80fd5b5060025461013b906001600160a01b031681565b3480156101e2575f80fd5b506100d26101f13660046107c1565b610580565b348015610201575f80fd5b506100d261021036600461080a565b61061c565b6100d26106d8565b5f54600160a01b900460ff1661026d5760405162461bcd60e51b815260206004820152601060248201526f105c989a5d1c9859d9481c185d5cd95960821b60448201526064015b60405180910390fd5b6001546040516354ee8a6b60e11b81525f916001600160a01b03169063a9dd14d6906102a190889088908890600401610821565b602060405180830381865afa1580156102bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102e09190610845565b6002546040516354ee8a6b60e11b81529192505f916001600160a01b039091169063a9dd14d6906103199088908a908790600401610821565b602060405180830381865afa158015610334573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103589190610845565b90506103648385610870565b8111156104a157600154604051630df791e560e41b81525f916001600160a01b03169063df791e509061039f908a908a908a90600401610821565b6020604051808303815f875af11580156103bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103df9190610845565b600254604051630df791e560e41b81529192505f916001600160a01b039091169063df791e5090610418908a908c908790600401610821565b6020604051808303815f875af1158015610434573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104589190610845565b90506104648587610870565b811161049e5760405162461bcd60e51b8152602060048201526009602482015268139bc81c1c9bd99a5d60ba1b6044820152606401610264565b50505b505050505050565b5f546001600160a01b031633146104d25760405162461bcd60e51b815260040161026490610889565b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610509573d5f803e3d5ffd5b50565b5f546001600160a01b031633146105355760405162461bcd60e51b815260040161026490610889565b5f805460ff60a01b19169055565b5f546001600160a01b0316331461056c5760405162461bcd60e51b815260040161026490610889565b5f805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146105a95760405162461bcd60e51b815260040161026490610889565b5f54600160a01b900460ff166105f45760405162461bcd60e51b815260206004820152601060248201526f105c989a5d1c9859d9481c185d5cd95960821b6044820152606401610264565b5f5b828110156104a15761060a8686868561021d565b80610614816108b0565b9150506105f6565b5f546001600160a01b031633146106455760405162461bcd60e51b815260040161026490610889565b600354604051632e1a7d4d60e01b8152600481018390526001600160a01b0390911690632e1a7d4d906024015f604051808303815f87803b158015610688575f80fd5b505af115801561069a573d5f803e3d5ffd5b50505f80546040516001600160a01b03909116935084156108fc0292508491818181858888f193505050501580156106d4573d5f803e3d5ffd5b5050565b5f546001600160a01b031633146107015760405162461bcd60e51b815260040161026490610889565b60035f9054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b15801561074e575f80fd5b505af1158015610760573d5f803e3d5ffd5b5050505050565b80356001600160a01b038116811461077d575f80fd5b919050565b5f805f8060808587031215610795575f80fd5b61079e85610767565b93506107ac60208601610767565b93969395505050506040820135916060013590565b5f805f805f60a086880312156107d5575f80fd5b6107de86610767565b94506107ec60208701610767565b94979496505050506040830135926060810135926080909101359150565b5f6020828403121561081a575f80fd5b5035919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f60208284031215610855575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156108835761088361085c565b92915050565b6020808252600d908201526c2737ba103a34329037bbb732b960991b604082015260600190565b5f600182016108c1576108c161085c565b506001019056fea2646970667358221220ef5caee820eb0f79147b22ac35b39b371627d5e9ef1473b320c6385c6581418d64736f6c63430008140033
Verified Source Code Partial Match
Compiler: v0.8.20+commit.a1b79de6
EVM: shanghai
Optimization: Yes (200 runs)
ArbitrageBot.sol 79 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
interface IDEX {
function swap(address tokenIn, address tokenOut, uint256 amount) external returns (uint256);
function getPrice(address tokenIn, address tokenOut, uint256 amount) external view returns (uint256);
}
interface IWETH {
function deposit() external payable;
function withdraw(uint256 amount) external;
function transfer(address to, uint256 value) external returns (bool);
}
contract ArbitrageBot {
address public owner;
bool public isRunning;
address public dex1;
address public dex2;
address public weth;
modifier onlyOwner() {
require(msg.sender == owner, "Not the owner");
_;
}
modifier whenRunning() {
require(isRunning, "Arbitrage paused");
_;
}
constructor(address _dex1, address _dex2, address _weth) {
owner = msg.sender;
dex1 = _dex1;
dex2 = _dex2;
weth = _weth;
isRunning = false;
}
function start() external onlyOwner {
isRunning = true;
}
function pause() external onlyOwner {
isRunning = false;
}
function executeArbitrage(address tokenA, address tokenB, uint256 amount, uint256 minProfit) public whenRunning {
uint256 price1 = IDEX(dex1).getPrice(tokenA, tokenB, amount);
uint256 price2 = IDEX(dex2).getPrice(tokenB, tokenA, price1);
if (price2 > amount + minProfit) {
uint256 result1 = IDEX(dex1).swap(tokenA, tokenB, amount);
uint256 result2 = IDEX(dex2).swap(tokenB, tokenA, result1);
require(result2 > amount + minProfit, "No profit");
}
}
function autoArbitrage(address tokenA, address tokenB, uint256 amount, uint256 iterations, uint256 minProfit) external onlyOwner whenRunning {
for (uint256 i = 0; i < iterations; i++) {
executeArbitrage(tokenA, tokenB, amount, minProfit);
}
}
function depositETH() external payable onlyOwner {
IWETH(weth).deposit{value: msg.value}();
}
function withdrawETH(uint256 amount) external onlyOwner {
IWETH(weth).withdraw(amount);
payable(owner).transfer(amount);
}
function withdrawFunds() external onlyOwner {
payable(owner).transfer(address(this).balance);
}
receive() external payable {}
}
Read Contract
dex1 0xd4551ad6 → address
dex2 0xdaf7e78e → address
isRunning 0x2014e5d1 → bool
owner 0x8da5cb5b → address
weth 0x3fc8cef3 → address
Write Contract 7 functions
These functions modify contract state and require a wallet transaction to execute.
autoArbitrage 0xe97b5cc5
address tokenA
address tokenB
uint256 amount
uint256 iterations
uint256 minProfit
depositETH 0xf6326fb3
No parameters
executeArbitrage 0x18820afa
address tokenA
address tokenB
uint256 amount
uint256 minProfit
pause 0x8456cb59
No parameters
start 0xbe9a6555
No parameters
withdrawETH 0xf14210a6
uint256 amount
withdrawFunds 0x24600fc3
No parameters
Recent Transactions
No transactions found for this address