UniswapV3RoutingState#
API documentation for tradeexecutor.ethereum.uniswap_v3.uniswap_v3_routing.UniswapV3RoutingState Python class in Trading Strategy framework.
- class UniswapV3RoutingState[source]#
- Bases: - EthereumRoutingState- __init__(pair_universe, tx_builder=None, swap_gas_limit=None, approve_gas_limit=None)[source]#
- Parameters:
- pair_universe (PandasPairUniverse) – Pairs we trade 
- tx_builder (Optional[HotWalletTransactionBuilder]) – - For creating trade transactions. - Can be set to None on DummyExecutionModel. 
- web3 – - Use for routing smart contract reads. - Given when tx_builder is not present. 
- swap_gas_limit – What is the max gas we are willing to pay for a swap. 
 
 
 - Methods - __init__(pair_universe[, tx_builder, ...])- param pair_universe:
 - adjust_spend(asset, required_amount[, ...])- Check that our on-chain balances have enough tokens to cover the trade. - check_has_enough_tokens(erc_20, amount)- Check we have enough buy side tokens to do a trade. - create_signed_transaction(contract, ...[, notes])- ensure_token_approved(token_address, ...[, ...])- Make sure we have ERC-20 approve() for the trade - get_uniswap_for_pair(address_map, target_pair)- Get a router for a trading pair. - is_approved_on_chain(token_address, ...)- is_route_approved(router_address)- mark_router_approved(token_address, ...)- trade_on_router_three_way(uniswap, ...[, ...])- Prepare the actual swap for three way trade. - trade_on_router_two_way(uniswap, ...[, ...])- Prepare the actual swap. - validate_exchange(target_pair, intermediary_pair)- Check routing happens on the same exchange - validate_pairs(target_pair, intermediary_pair)- Check we can chain two pairs - Attributes - __init__(pair_universe, tx_builder=None, swap_gas_limit=None, approve_gas_limit=None)[source]#
- Parameters:
- pair_universe (PandasPairUniverse) – Pairs we trade 
- tx_builder (Optional[HotWalletTransactionBuilder]) – - For creating trade transactions. - Can be set to None on DummyExecutionModel. 
- web3 – - Use for routing smart contract reads. - Given when tx_builder is not present. 
- swap_gas_limit – What is the max gas we are willing to pay for a swap. 
 
 
 - get_uniswap_for_pair(address_map, target_pair)[source]#
- Get a router for a trading pair. - Parameters:
- address_map (dict) – 
- target_pair (TradingPairIdentifier) – 
 
- Return type:
 
 - trade_on_router_two_way(uniswap, target_pair, reserve_asset, reserve_amount, max_slippage, check_balances, asset_deltas=None, notes='')[source]#
- Prepare the actual swap. Same for Uniswap V2 and V3. - Parameters:
- check_balances (False) – Check on-chain balances that the account has enough tokens and raise exception if not. 
- uniswap (UniswapV3Deployment) – 
- target_pair (TradingPairIdentifier) – 
- reserve_asset (AssetIdentifier) – 
- reserve_amount (int) – 
- max_slippage (float) – 
- asset_deltas (Optional[List[AssetDelta]]) – 
 
 
 - trade_on_router_three_way(uniswap, target_pair, intermediary_pair, reserve_asset, reserve_amount, max_slippage, check_balances, asset_deltas=None, notes='')[source]#
- Prepare the actual swap for three way trade. - Parameters:
- reserve_asset (AssetIdentifier) – The token we use as input (source) for this trade 
- check_balances (False) – Check on-chain balances that the account has enough tokens and raise exception if not. 
- uniswap (UniswapV3Deployment) – 
- target_pair (TradingPairIdentifier) – 
- intermediary_pair (TradingPairIdentifier) – 
- reserve_amount (int) – 
- max_slippage (float) – 
- asset_deltas (Optional[List[AssetDelta]]) –