UniswapV3ExecutionModel#
API documentation for tradeexecutor.ethereum.uniswap_v3.uniswap_v3_execution.UniswapV3ExecutionModel Python class in Trading Strategy framework.
- class UniswapV3ExecutionModel[source]#
- Bases: - EthereumExecutionModel- Run order execution on a single Uniswap v3 style exchanges. - __init__(tx_builder, min_balance_threshold=Decimal('0.5'), confirmation_block_count=6, confirmation_timeout=datetime.timedelta(seconds=300), max_slippage=0.01, stop_on_execution_failure=True, swap_gas_fee_limit=2000000, mainnet_fork=False)[source]#
- Parameters:
- tx_builder (TransactionBuilder) – Hot wallet instance used for this execution 
- min_balance_threshold – Abort execution if our hot wallet gas fee balance drops below this 
- confirmation_block_count – How many blocks to wait for the receipt confirmations to mitigate unstable chain tip issues 
- confirmation_timeout – How long we wait transactions to clear 
- stop_on_execution_failure – Raise an exception if any of the trades fail top execute 
- max_slippage (float) – Max slippage tolerance per trade. 0.01 is 1%. 
 
 
 - Methods - __init__(tx_builder[, ...])- param tx_builder:
 - analyse_trade_by_receipt(web3, uniswap, tx, ...)- Links to either uniswap v2 or v3 implementation in eth_defi - broadcast_and_resolve(state, trades[, ...])- Do the live trade execution. - execute_trades(ts, state, trades, ...[, ...])- Execute the trades determined by the algo on a designed Uniswap v2 instance. - get_routing_state_details()- Get needed details to establish a routing state. - initialize()- Set up the wallet - is_live_trading()- is_stop_loss_supported()- Do we support stop-loss/take profit functionality with this execution model? - is_v3()- Returns true if instance is related to Uniswap V3, else false. - mock_partial_deployment_for_analysis(web3, ...)- Links to either uniswap v2 or v3 implementation in eth_defi - pre_execute_assertions(ts, routing_model, ...)- preflight_check()- Check that we can connect to the web3 node - repair_unconfirmed_trades(state)- Repair unconfirmed trades. - resolve_trades(ts, state, tx_map, receipts)- Resolve trade outcome. - update_confirmation_status(ts, tx_map, receipts)- First update the state of all transactions, as we now have receipt for them. - Attributes - chain_id- Which chain the live execution is connected to. - web3- __init__(tx_builder, min_balance_threshold=Decimal('0.5'), confirmation_block_count=6, confirmation_timeout=datetime.timedelta(seconds=300), max_slippage=0.01, stop_on_execution_failure=True, swap_gas_fee_limit=2000000, mainnet_fork=False)[source]#
- Parameters:
- tx_builder (TransactionBuilder) – Hot wallet instance used for this execution 
- min_balance_threshold – Abort execution if our hot wallet gas fee balance drops below this 
- confirmation_block_count – How many blocks to wait for the receipt confirmations to mitigate unstable chain tip issues 
- confirmation_timeout – How long we wait transactions to clear 
- stop_on_execution_failure – Raise an exception if any of the trades fail top execute 
- max_slippage (float) – Max slippage tolerance per trade. 0.01 is 1%. 
 
 
 - analyse_trade_by_receipt(web3, uniswap, tx, tx_hash, tx_receipt, input_args)[source]#
- Links to either uniswap v2 or v3 implementation in eth_defi - Parameters:
- web3 (Web3) – 
- uniswap (UniswapV3Deployment) – 
- tx (dict) – 
- tx_hash (str) – 
- tx_receipt (dict) – 
- input_args (tuple) – 
 
- Return type: