def get_slippage_percentage(front_runner_data: FrontRunnerData, w3: Web3, uniswap_wrapper: Uniswap): value_villain_tx = int(w3.toJSON(front_runner_data.tx['value'])) coin_villain = front_runner_data.input_decoded[1]['path'][1] front_runner_data.public_amount_min = uniswap_wrapper.get_eth_token_input_price( coin_villain, value_villain_tx) front_runner_data.amount_min = front_runner_data.input_decoded[1][ 'amountOutMin'] front_runner_data.trade_amount = front_runner_data.public_amount_min - front_runner_data.amount_min print_debug_info(front_runner_data, w3) return (front_runner_data.public_amount_min - front_runner_data.amount_min) / front_runner_data.amount_min * 100
fl_tax = 0.0009 for token_key in tokens: if token_key not in blacklist: _token_address = tokens[token_key][0] _token_id = tokens[token_key][1] print(f"\nFinding arbitrage for {token_key}:{_token_id} at {_token_address}") # Flash Loan Fee _fl_fee = int(invest*fl_tax) # First Trade Fee _fee = int(invest*ex_tax) _remaining = invest - _fee ##### EXCHANGE 1: BUY IN V1, SELL IN V2 _take_v1 = uniswap_v1.get_eth_token_input_price(_token_address, _remaining) # Second Trade Fee _fee = int(_take_v1*ex_tax) _remaining_1 = _take_v1 - _fee # Second Trade _give_v2 = uniswap_v2.get_token_eth_input_price(_token_address, _remaining_1) _give_v2 = _give_v2 - _fl_fee ##### EXCHANGE 2: BUY IN V2, SELL IN V1 _take_v2 = uniswap_v2.get_eth_token_input_price(_token_address, _remaining) # Second Trade Fee _fee = int(_take_v2*ex_tax) _remaining_2 = _take_v2 - _fee # Second Trade _give_v1 = uniswap_v1.get_token_eth_input_price(_token_address, _remaining_2) _give_v1 = _give_v1 - _fl_fee
from uniswap import Uniswap address = "0x0000000000000000000000000000000000000001" private_key = None PROVIDER = "https://mainnet.infura.io/v3/PRIVATE-KEY" uniswap_wrapper = Uniswap(address, private_key, provider=PROVIDER, version=2) eth_c = "0x0000000000000000000000000000000000000000" bat = "0x0D8775F648430679A709E98d2b0Cb6250d2887EF" dai = "0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359" usdt = "0xdAC17F958D2ee523a2206206994597C13D831ec7" uni = "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984" dai_rate = uniswap_wrapper.get_eth_token_input_price(dai, 5 * 10**18) bat_rate = uniswap_wrapper.get_eth_token_input_price(bat, 1 * 10**18) print(dai_rate) print(bat_rate) conversion = ((1 / bat_rate) * (dai_rate / 10**6)) * (10**18) print(conversion) print('${:,.2f}'.format(conversion))