mythril.laser.ethereum.transaction package
Submodules
mythril.laser.ethereum.transaction.concolic module
This module contains functions to set up and execute concolic message calls.
- mythril.laser.ethereum.transaction.concolic.execute_contract_creation(laser_evm, callee_address, caller_address, origin_address, data, gas_limit, gas_price, value, code=None, track_gas=False, contract_name=None)[source]
Executes a contract creation transaction concretely.
- Parameters:
laser_evm
callee_address
caller_address
origin_address
code
data
gas_limit
gas_price
value
track_gas
- Returns:
- mythril.laser.ethereum.transaction.concolic.execute_message_call(laser_evm, callee_address, caller_address, origin_address, data, gas_limit, gas_price, value, code=None, track_gas=False) None | List[GlobalState] [source]
Execute a message call transaction from all open states.
- Parameters:
laser_evm
callee_address
caller_address
origin_address
code
data
gas_limit
gas_price
value
track_gas
- Returns:
- mythril.laser.ethereum.transaction.concolic.execute_transaction(*args, **kwargs) None | List[GlobalState] [source]
Chooses the transaction type based on callee address and executes the transaction
mythril.laser.ethereum.transaction.symbolic module
This module contains functions setting up and executing transactions with symbolic values.
- class mythril.laser.ethereum.transaction.symbolic.Actors(creator=1004753105490295263244812946565948198177742958590, attacker=1271270613000041655817448348132275889066893754095, someguy=974334424887268612135789888477522013103955028650)[source]
Bases:
object
- property attacker
- property creator
- mythril.laser.ethereum.transaction.symbolic.execute_contract_creation(laser_evm, contract_initialization_code, contract_name=None, world_state=None, origin=1004753105490295263244812946565948198177742958590, caller=1004753105490295263244812946565948198177742958590) Account [source]
Executes a contract creation transaction from all open states.
- Parameters:
laser_evm
contract_initialization_code
contract_name
- Returns:
- mythril.laser.ethereum.transaction.symbolic.execute_message_call(laser_evm, callee_address: BitVec, func_hashes: List[List[int]] | None = None) None [source]
Executes a message call transaction from all open states.
- Parameters:
laser_evm
callee_address
- mythril.laser.ethereum.transaction.symbolic.execute_message_call_preprocessing(laser_evm, callee_address: BitVec) None [source]
Executes a message call transaction from all open states.
- Parameters:
laser_evm
callee_address
- mythril.laser.ethereum.transaction.symbolic.execute_transaction(*args, **kwargs)[source]
Chooses the transaction type based on callee address and executes the transaction
- mythril.laser.ethereum.transaction.symbolic.generate_function_constraints(calldata: SymbolicCalldata, func_hashes: List[List[int]]) List[Bool] [source]
This will generate constraints for fixing the function call part of calldata :param calldata: Calldata :param func_hashes: The list of function hashes allowed for this transaction :return: Constraints List
mythril.laser.ethereum.transaction.transaction_models module
This module contians the transaction models used throughout LASER’s symbolic execution.
- class mythril.laser.ethereum.transaction.transaction_models.BaseTransaction(world_state: WorldState, callee_account: Account | None = None, caller: ExprRef | None = None, call_data=None, identifier: str | None = None, gas_price=None, gas_limit=None, origin=None, code=None, call_value=None, init_call_data=True, static=False, base_fee=None)[source]
Bases:
object
Basic transaction class holding common data.
- initial_global_state() GlobalState [source]
- class mythril.laser.ethereum.transaction.transaction_models.ContractCreationTransaction(world_state: WorldState, caller: ExprRef | None = None, call_data=None, identifier: str | None = None, gas_price=None, gas_limit=None, origin=None, code=None, call_value=None, contract_name=None, contract_address=None, base_fee=None)[source]
Bases:
BaseTransaction
Transaction object models an transaction.
- end(global_state: GlobalState, return_data=None, revert=False)[source]
- Parameters:
global_state
return_data
revert
- initial_global_state() GlobalState [source]
Initialize the execution environment.
- class mythril.laser.ethereum.transaction.transaction_models.MessageCallTransaction(*args, **kwargs)[source]
Bases:
BaseTransaction
Transaction object models an transaction.
- end(global_state: GlobalState, return_data=None, revert=False) None [source]
- Parameters:
global_state
return_data
revert
- initial_global_state() GlobalState [source]
Initialize the execution environment.
- exception mythril.laser.ethereum.transaction.transaction_models.TransactionEndSignal(global_state: GlobalState, revert=False)[source]
Bases:
Exception
Exception raised when a transaction is finalized.
- exception mythril.laser.ethereum.transaction.transaction_models.TransactionStartSignal(transaction: MessageCallTransaction | ContractCreationTransaction, op_code: str, global_state: GlobalState)[source]
Bases:
Exception
Exception raised when a new transaction is started.