AaveV3RoutingState#

API documentation for tradeexecutor.ethereum.aave_v3.aave_v3_routing.AaveV3RoutingState Python class in Trading Strategy framework.

class AaveV3RoutingState[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_multiple_tokens_approved(*, ...)

Make sure we have ERC-20 approve() for the 1delta

ensure_token_approved(token_address, ...[, ...])

Make sure we have ERC-20 approve() for the trade

get_aave_v3_deployment(address_map)

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)

lend_on_aave_v3(*, aave_v3_deployment, ...)

mark_router_approved(token_address, ...)

trade_on_router_three_way(uniswap, ...[, ...])

Not used for now

trade_on_router_two_way(uniswap, ...[, ...])

Not used for now

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:
Return type:

UniswapV3Deployment

trade_on_router_two_way(uniswap, target_pair, reserve_asset, reserve_amount, max_slippage, check_balances, asset_deltas=None, notes='', one_delta=None)[source]#

Not used for now

Parameters:
trade_on_router_three_way(uniswap, target_pair, intermediary_pair, reserve_asset, reserve_amount, max_slippage, check_balances, asset_deltas=None, notes='', one_delta=None)[source]#

Not used for now

Parameters:
ensure_multiple_tokens_approved(*, aave_v3_deployment, collateral_token_address, atoken_address)[source]#

Make sure we have ERC-20 approve() for the 1delta

  • Infinite approval on-chain

  • …or previous approval in this state,

Parameters:
  • token_address

  • aave_v3_deployment (AaveV3Deployment) –

  • collateral_token_address (str) –

  • atoken_address (str) –

Returns:

Create 0 or 1 transactions if needs to be approved

Return type:

list[tradeexecutor.state.blockhain_transaction.BlockchainTransaction]