web3research.evm.ContractDecoder

class web3research.evm.ContractDecoder(web3: web3.Web3, contract_abi: Sequence[Dict[str, Any]])

ContractDecoder decodes events and function inputs from a contract ABI.

Parameters:
  • web3 (web3.Web3)

  • contract_abi (Sequence[Dict[str, Any]])

abi
contract
decode_event_log(event_name: str, event_log: Dict[str, Any]) Dict[str, Any]

Decode an event log.

Args:

event_name (str): The event name. event_log (Dict[str, Any]): The event log.

Returns:

Dict[str, Any]: The decoded event.

Parameters:
  • event_name (str)

  • event_log (Dict[str, Any])

Return type:

Dict[str, Any]

decode_function_input(input_data: str | bytes) Dict[str, Any]

Decode a function input.

Args:

input_data (Union[str, bytes]): The input data.

Returns:

Dict[str, Any]: The decoded input.

Parameters:

input_data (Union[str, bytes])

Return type:

Dict[str, Any]

get_event_abi(event_name: str)

Get the ABI of an event.

Args:

event_name (str): The event name.

Returns:

Dict[str, Any]: The event ABI.

Parameters:

event_name (str)

get_function_abi(function_name: str)

Get the ABI of a function.

Args:

function_name (str): The function name.

Returns:

Dict[str, Any]: The function ABI.

Parameters:

function_name (str)

get_event_topic(event_name: str)

Get the topic of an event.

Args:

event_name (str): The event name.

Returns:

str: The event topic.

Parameters:

event_name (str)

get_function_selector(function_name: str)

Get the selector of a function.

Args:

function_name (str): The function name.

Returns:

str: The function selector.

Parameters:

function_name (str)