TransactionBuilder#

tradeexecutor.ethereum.tx.TransactionBuilder class.

class TransactionBuilder[source]#

Bases: object

Create transactions from the hot wallet and store them in the state.

Creates trackable transactions. TransactionHelper is initialised at the start of the each cycle.

Transaction builder can prepare multiple transactions in one batch. For all tranactions, we use the previously prepared gas price information.

__init__(web3, hot_wallet, gas_fees)[source]#
Parameters

Methods

__init__(web3, hot_wallet, gas_fees)

as_signed_tx(tx)

Get a transaction as a format ready to broadcast.

broadcast(tx)

Broadcast the transaction.

broadcast_and_wait_transactions_to_complete(...)

Watch multiple transactions executed at parallel.

create_transaction(contract, ...)

Create a trackable transaction for the trade executor state.

decode_transaction(tx)

Get raw transaction data out from the signed tx bytes.

sign_transaction(args_bound_func, gas_limit)

Createa a signed tranaction and set up tx broadcast parameters.

__init__(web3, hot_wallet, gas_fees)[source]#
Parameters
sign_transaction(args_bound_func, gas_limit)[source]#

Createa a signed tranaction and set up tx broadcast parameters.

Parameters
  • args_bound_func (ContractFunction) – Web3 function thingy

  • gas_limit (int) – Max gas per this transaction

Return type

BlockchainTransaction

create_transaction(contract, function_selector, args, gas_limit)[source]#

Create a trackable transaction for the trade executor state.

  • Sets up the state management for the transaction

  • Creates the signed transaction from the hot wallet

Parameters
Return type

BlockchainTransaction

broadcast(tx)[source]#

Broadcast the transaction.

Returns

tx_hash

Parameters

tx (BlockchainTransaction) –

Return type

HexBytes

static decode_transaction(tx)[source]#

Get raw transaction data out from the signed tx bytes.

Parameters

tx (BlockchainTransaction) –

Return type

dict

static as_signed_tx(tx)[source]#

Get a transaction as a format ready to broadcast.

Parameters

tx (BlockchainTransaction) –

Return type

SignedTransaction

static broadcast_and_wait_transactions_to_complete(web3, txs, confirmation_block_count=0, max_timeout=datetime.timedelta(seconds=300), poll_delay=datetime.timedelta(seconds=1), revert_reasons=False)[source]#

Watch multiple transactions executed at parallel.

Modifies the given transaction objects in-place and updates block inclusion and succeed status.

Parameters