gnosis.eth package

Subpackages

Submodules

gnosis.eth.constants module

gnosis.eth.ethereum_client module

class gnosis.eth.ethereum_client.BatchCallManager(ethereum_client: EthereumClient)

Bases: EthereumClientManager

batch_call(contract_functions: Iterable[ContractFunction], from_address: ChecksumAddress | None = None, raise_exception: bool = True, block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int | None = 'latest') List[Any | None]

Do batch requests of multiple contract calls

Parameters:
  • contract_functions – Iterable of contract functions using web3.py contracts. For instance, a valid argument would be [erc20_contract.functions.balanceOf(address), erc20_contract.functions.decimals()]

  • from_address – Use this address as from in every call if provided

  • block_identifierlatest by default

  • raise_exception – If False, exception will not be raised if there’s any problem and instead None will be returned as the value.

Returns:

List with the ABI decoded return values

batch_call_custom(payloads: Iterable[Dict[str, Any]], raise_exception: bool = True, block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int | None = 'latest', batch_size: int | None = None) List[Any | None]

Do batch requests of multiple contract calls (eth_call)

Parameters:
  • payloads – Iterable of Dictionaries with at least {‘data’: ‘<hex-string>’, ‘output_type’: <solidity-output-type>, ‘to’: ‘<checksummed-address>’}. from can also be provided and if fn_name is provided it will be used for debugging purposes

  • raise_exception – If False, exception will not be raised if there’s any problem and instead None will be returned as the value

  • block_identifierlatest by default

  • batch_size – If payload length is bigger than size, it will be split into smaller chunks before sending to the server

Returns:

List with the ABI decoded return values

Raises:

ValueError if raise_exception=True

batch_call_same_function(contract_function: ContractFunction, contract_addresses: Sequence[ChecksumAddress], from_address: ChecksumAddress | None = None, raise_exception: bool = True, block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int | None = 'latest') List[Any | None]

Do batch requests using the same function to multiple address. batch_call could be used to achieve that, but generating the ContractFunction is slow, so this function allows to use the same contract_function for multiple addresses

Parameters:
  • contract_function

  • contract_addresses

  • from_address

  • raise_exception

  • block_identifier

Returns:

class gnosis.eth.ethereum_client.Erc20Info(name, symbol, decimals)

Bases: NamedTuple

decimals: int

Alias for field number 2

name: str

Alias for field number 0

symbol: str

Alias for field number 1

class gnosis.eth.ethereum_client.Erc20Manager(ethereum_client: EthereumClient)

Bases: EthereumClientManager

Manager for ERC20 operations

TRANSFER_TOPIC = HexBytes('0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef')
decode_logs(logs: Sequence[LogReceipt])
get_balance(address: ChecksumAddress, token_address: ChecksumAddress) int

Get balance of address for erc20_address

Parameters:
  • address – owner address

  • token_address – erc20 token address

Returns:

balance

get_balances(address: ChecksumAddress, token_addresses: Sequence[ChecksumAddress]) List[BalanceDict]

Get balances for Ether and tokens for an address

Parameters:
  • address – Owner address checksummed

  • token_addresses – token addresses to check

Returns:

List[BalanceDict]

get_decimals(erc20_address: ChecksumAddress) int
get_info(erc20_address: ChecksumAddress) Erc20Info

Get erc20 information (name, symbol and decimals). Use batching to get all info in the same request.

Parameters:

erc20_address

Returns:

Erc20Info

Raises:

InvalidERC20Info

get_name(erc20_address: ChecksumAddress) str
get_symbol(erc20_address: ChecksumAddress) str
get_total_transfer_history(addresses: Sequence[ChecksumAddress] | None = None, from_block: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int = 0, to_block: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int | None = None, token_address: ChecksumAddress | None = None) List[LogReceiptDecoded]

Get events for erc20 and erc721 transfers from and to an address. We decode it manually. Example of an erc20 event:

{'logIndex': 0,
 'transactionIndex': 0,
 'transactionHash': HexBytes('0x4d0f25313603e554e3b040667f7f391982babbd195c7ae57a8c84048189f7794'),
 'blockHash': HexBytes('0x90fa67d848a0eaf3be625235dae28815389f5292d4465c48d1139f0c207f8d42'),
 'blockNumber': 791,
 'address': '0xf7d0Bd47BF3214494E7F5B40E392A25cb4788620',
 'data': '0x000000000000000000000000000000000000000000000000002001f716742000',
 'topics': [HexBytes('0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'),
  HexBytes('0x000000000000000000000000f5984365fca2e3bc7d2e020abb2c701df9070eb7'),
  HexBytes('0x0000000000000000000000001df62f291b2e969fb0849d99d9ce41e2f137006e')],
 'type': 'mined'
 'args': {'from': '0xf5984365FcA2e3bc7D2E020AbB2c701DF9070eB7',
          'to': '0x1dF62f291b2E969fB0849d99D9Ce41e2F137006e',
          'value': 9009360000000000
         }
}
An example of an erc721 event
{'address': '0x6631FcbB50677DfC6c02CCDcc03a8f68Db427a64',
 'blockHash': HexBytes('0x95c71c6c9373e9a8ca2c767dda1cd5083eb6addcce36fc216c9e1f458d6970f9'),
 'blockNumber': 5341681,
 'data': '0x',
 'logIndex': 0,
 'removed': False,
 'topics': [HexBytes('0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'),
  HexBytes('0x0000000000000000000000000000000000000000000000000000000000000000'),
  HexBytes('0x000000000000000000000000b5239c032ab9fb5abfc3903e770a4b6a9095542c'),
  HexBytes('0x0000000000000000000000000000000000000000000000000000000000000063')],
 'transactionHash': HexBytes('0xce8c8af0503e6f8a421345c10cdf92834c95186916a3f5b1437d2bba63d2db9e'),
 'transactionIndex': 0,
 'transactionLogIndex': '0x0',
 'type': 'mined',
 'args': {'from': '0x0000000000000000000000000000000000000000',
          'to': '0xb5239C032AB9fB5aBFc3903e770A4B6a9095542C',
          'tokenId': 99
         }
 }
An example of unknown transfer event (no indexed parts), could be a ERC20 or ERC721 transfer:
{'address': '0x6631FcbB50677DfC6c02CCDcc03a8f68Db427a64',
 'blockHash': HexBytes('0x95c71c6c9373e9a8ca2c767dda1cd5083eb6addcce36fc216c9e1f458d6970f9'),
 'blockNumber': 5341681,
 'data': '0x',
 'logIndex': 0,
 'removed': False,
 'topics': [HexBytes('0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'),
  HexBytes('0x0000000000000000000000000000000000000000000000000000000000000000'),
  HexBytes('0x000000000000000000000000b5239c032ab9fb5abfc3903e770a4b6a9095542c'),
  HexBytes('0x0000000000000000000000000000000000000000000000000000000000000063')],
 'transactionHash': HexBytes('0xce8c8af0503e6f8a421345c10cdf92834c95186916a3f5b1437d2bba63d2db9e'),
 'transactionIndex': 0,
 'transactionLogIndex': '0x0',
 'type': 'mined',
 'args': {'from': '0x0000000000000000000000000000000000000000',
          'to': '0xb5239C032AB9fB5aBFc3903e770A4B6a9095542C',
          'unknown': 99
         }
 }
Parameters:
  • addresses – Search events from and to these addresses. If not, every transfer event within the range will be retrieved

  • from_block – Block to start querying from

  • to_block – Block to stop querying from

  • token_address – Address of the token

Returns:

List of events sorted by blockNumber

get_transfer_history(from_block: int, to_block: int | None = None, from_address: str | None = None, to_address: str | None = None, token_address: str | None = None) List[Dict[str, Any]]

DON’T USE, it will fail in some cases until they fix https://github.com/ethereum/web3.py/issues/1351 Get events for erc20/erc721 transfers. At least one of from_address, to_address or token_address must be defined. Example of decoded event:

{
    "args": {
        "from": "0x1Ce67Ea59377A163D47DFFc9BaAB99423BE6EcF1",
        "to": "0xaE9E15896fd32E59C7d89ce7a95a9352D6ebD70E",
        "value": 15000000000000000
    },
    "event": "Transfer",
    "logIndex": 42,
    "transactionIndex": 60,
    "transactionHash": "0x71d6d83fef3347bad848e83dfa0ab28296e2953de946ee152ea81c6dfb42d2b3",
    "address": "0xfecA834E7da9D437645b474450688DA9327112a5",
    "blockHash": "0x054de9a496fc7d10303068cbc7ee3e25181a3b26640497859a5e49f0342e7db2",
    "blockNumber": 7265022
}
Parameters:
  • from_block – Block to start querying from

  • to_block – Block to stop querying from

  • from_address – Address sending the erc20 transfer

  • to_address – Address receiving the erc20 transfer

  • token_address – Address of the token

Returns:

List of events (decoded)

Throws:

ReadTimeout

send_tokens(to: str, amount: int, erc20_address: ChecksumAddress, private_key: str, nonce: int | None = None, gas_price: int | None = None, gas: int | None = None) bytes

Send tokens to address

Parameters:
  • to

  • amount

  • erc20_address

  • private_key

  • nonce

  • gas_price

  • gas

Returns:

tx_hash

class gnosis.eth.ethereum_client.Erc721Info(name, symbol)

Bases: NamedTuple

name: str

Alias for field number 0

symbol: str

Alias for field number 1

class gnosis.eth.ethereum_client.Erc721Manager(ethereum_client: EthereumClient)

Bases: EthereumClientManager

TRANSFER_TOPIC = HexBytes('0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef')
get_balance(address: ChecksumAddress, token_address: ChecksumAddress) int

Get balance of address for erc20_address

Parameters:
  • address – owner address

  • token_address – erc721 token address

Returns:

balance

get_balances(address: ChecksumAddress, token_addresses: Sequence[ChecksumAddress]) List[TokenBalance]

Get balances for tokens for an address. If there’s a problem with a token_address 0 will be returned for balance

Parameters:
  • address – Owner address checksummed

  • token_addresses – token addresses to check

Returns:

get_info(token_address: ChecksumAddress) Erc721Info

Get erc721 information (name, symbol). Use batching to get all info in the same request.

Parameters:

token_address

Returns:

Erc721Info

get_owners(token_addresses_with_token_ids: Sequence[Tuple[ChecksumAddress, int]]) List[ChecksumAddress | None]
Parameters:

token_addresses_with_token_ids – Tuple(token_address: str, token_id: int)

Returns:

List of owner addresses, None if not found

get_token_uris(token_addresses_with_token_ids: Sequence[Tuple[ChecksumAddress, int]]) List[str | None]
Parameters:

token_addresses_with_token_ids – Tuple(token_address: str, token_id: int)

Returns:

List of token_uris, None if not found

class gnosis.eth.ethereum_client.EthereumClient(ethereum_node_url: URI = 'http://localhost:8545', provider_timeout: int = 15, slow_provider_timeout: int = 60, retry_count: int = 1, use_caching_middleware: bool = True, batch_request_max_size: int = 500)

Bases: object

Manage ethereum operations. Uses web3 for the most part, but some other stuff is implemented from scratch. Note: If you want to use pending state with Parity, it must be run with –pruning=archive or –force-sealing

NULL_ADDRESS = '0x0000000000000000000000000000000000000000'
batch_call(contract_functions: Iterable[ContractFunction], from_address: ChecksumAddress | None = None, raise_exception: bool = True, force_batch_call: bool = False, block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int | None = 'latest') List[bytes | Any | None]

Call multiple functions. Multicall contract by MakerDAO will be used by default if available

Parameters:
  • contract_functions

  • from_address – Only available when Multicall is not used

  • raise_exception – If True, raise BatchCallException if one of the calls fails

  • force_batch_call – If True, ignore multicall and always use batch calls to get the result (less optimal). If False, more optimal way will be tried.

  • block_identifier

Returns:

List of elements decoded to their types, None if they cannot be decoded and bytes if a revert error is returned and raise_exception=False

Raises:

BatchCallException

batch_call_same_function(contract_function: ContractFunction, contract_addresses: Sequence[ChecksumAddress], from_address: ChecksumAddress | None = None, raise_exception: bool = True, force_batch_call: bool = False, block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int | None = 'latest') List[bytes | Any | None]

Call the same function in multiple contracts. Way more optimal than using batch_call generating multiple ContractFunction objects.

Parameters:
  • contract_function

  • contract_addresses

  • from_address – Only available when Multicall is not used

  • raise_exception – If True, raise BatchCallException if one of the calls fails

  • force_batch_call – If True, ignore multicall and always use batch calls to get the result (less optimal). If False, more optimal way will be tried.

  • block_identifier

Returns:

List of elements decoded to the same type, None if they cannot be decoded and bytes if a revert error is returned and raise_exception=False

Raises:

BatchCallException

static build_tx_params(from_address: ChecksumAddress | None = None, to_address: ChecksumAddress | None = None, value: int | None = None, gas: int | None = None, gas_price: int | None = None, nonce: int | None = None, chain_id: int | None = None, tx_params: TxParams | None = None) TxParams

Build tx params dictionary. If an existing TxParams dictionary is provided the fields will be replaced by the provided ones

Parameters:
  • from_address

  • to_address

  • value

  • gas

  • gas_price

  • nonce

  • chain_id

  • tx_params – An existing TxParams dictionary will be replaced by the providen values

Returns:

check_tx_with_confirmations(tx_hash: Hash32 | HexBytes | HexStr, confirmations: int) bool

Check tx hash and make sure it has the confirmations required

Parameters:
  • tx_hash – Hash of the tx

  • confirmations – Minimum number of confirmations required

Returns:

True if tx was mined with the number of confirmations required, False otherwise

property current_block_number
deploy_and_initialize_contract(deployer_account: LocalAccount, constructor_data: bytes, initializer_data: bytes = b'', check_receipt: bool = True) EthereumTxSent
static estimate_data_gas(data: bytes)

Estimate gas costs only for “storage” of the data bytes provided

Parameters:

data

Returns:

estimate_fee_eip1559(tx_speed: TxSpeed = TxSpeed.NORMAL) Tuple[int, int]

Check https://github.com/ethereum/execution-apis/blob/main/src/eth/fee_market.json#L15

Returns:

Tuple[BaseFeePerGas, MaxPriorityFeePerGas]

Raises:

ValueError if not supported on the network

estimate_gas(to: str, from_: str | None = None, value: int | None = None, data: bytes | HexStr | None = None, gas: int | None = None, gas_price: int | None = None, block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int | None = None) int

Estimate gas calling eth_estimateGas

Parameters:
  • from

  • to

  • value

  • data

  • gas

  • gas_price

  • block_identifier – Be careful, Geth does not support pending when estimating

Returns:

Amount of gas needed for transaction

Raises:

ValueError

get_balance(address: ChecksumAddress, block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int | None = None)
get_block(block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int, full_transactions: bool = False) BlockData | None
get_blocks(block_identifiers: Iterable[Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int], full_transactions: bool = False) List[BlockData | None]
get_chain_id() int
Returns:

ChainId returned by the RPC eth_chainId method. It should never change, so it’s cached.

get_client_version() str
Returns:

RPC version information

get_network() EthereumNetwork

Get network name based on the chainId. This method is not cached as the method for getting the chainId already is.

Returns:

EthereumNetwork based on the chainId. If network is not on our list, EthereumNetwork.UNKNOWN is returned

get_nonce_for_account(address: ChecksumAddress, block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int | None = 'latest')

Get nonce for account. getTransactionCount is the only method for what pending is currently working (Geth and Parity)

Parameters:
  • address

  • block_identifier

Returns:

get_transaction(tx_hash: Hash32 | HexBytes | HexStr) TxData | None
get_transaction_receipt(tx_hash: Hash32 | HexBytes | HexStr, timeout=None) TxReceipt | None
get_transaction_receipts(tx_hashes: Sequence[bytes | HexStr]) List[TxReceipt | None]
get_transactions(tx_hashes: Sequence[Hash32 | HexBytes | HexStr]) List[TxData | None]
is_contract(contract_address: ChecksumAddress) bool
is_eip1559_supported() bool
Returns:

True if EIP1559 is supported by the node, False otherwise

property multicall: Multicall
static private_key_to_address(private_key)
raw_batch_request(payload: Sequence[Dict[str, Any]], batch_size: int | None = None) Iterable[Dict[str, Any] | None]

Perform a raw batch JSON RPC call

Parameters:
  • payload – Batch request payload. Make sure all provided ids inside the payload are different

  • batch_size – If payload length is bigger than size, it will be split into smaller chunks before sending to the server

Returns:

Raises:

ValueError

send_eth_to(private_key: str, to: str, gas_price: int, value: Wei, gas: int | None = None, nonce: int | None = None, retry: bool = False, block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int | None = 'pending') bytes

Send ether using configured account

Parameters:
  • private_key – to

  • to – to

  • gas_price – gas_price

  • value – value(wei)

  • gas – gas, defaults to 22000

  • retry – Retry if a problem is found

  • nonce – Nonce of sender account

  • block_identifier – Block identifier for nonce calculation

Returns:

tx_hash

send_raw_transaction(raw_transaction: bytes | HexStr) HexBytes
send_transaction(transaction_dict: TxParams) HexBytes
send_unsigned_transaction(tx: TxParams, private_key: str | None = None, public_key: str | None = None, retry: bool = False, block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int | None = 'pending') HexBytes

Send a tx using an unlocked public key in the node or a private key. Both public_key and private_key cannot be None

Parameters:
  • tx

  • private_key

  • public_key

  • retry – Retry if a problem with nonce is found

  • block_identifier – For nonce calculation, recommended is pending

Returns:

tx hash

set_eip1559_fees(tx: TxParams, tx_speed: TxSpeed = TxSpeed.NORMAL) TxParams
Returns:

TxParams in EIP1559 format

Raises:

ValueError if EIP1559 not supported

class gnosis.eth.ethereum_client.EthereumClientManager(ethereum_client: EthereumClient)

Bases: object

class gnosis.eth.ethereum_client.EthereumClientProvider

Bases: object

class gnosis.eth.ethereum_client.EthereumTxSent(tx_hash, tx, contract_address)

Bases: NamedTuple

contract_address: ChecksumAddress | None

Alias for field number 2

tx: TxParams

Alias for field number 1

tx_hash: bytes

Alias for field number 0

class gnosis.eth.ethereum_client.TokenBalance(token_address, balance)

Bases: NamedTuple

balance: int

Alias for field number 1

token_address: str

Alias for field number 0

class gnosis.eth.ethereum_client.TracingManager(ethereum_client: EthereumClient)

Bases: EthereumClientManager

filter_out_errored_traces(internal_txs: Sequence[Dict[str, Any]]) Sequence[Dict[str, Any]]

Filter out errored transactions (traces that are errored or that have an errored parent)

Parameters:

internal_txs – Traces for the SAME ethereum tx, sorted ascending by trace_address sorted(t, key = lambda i: i[‘traceAddress’]). It’s the default output from methods returning traces like trace_block or trace_transaction

Returns:

List of not errored traces

get_next_traces(tx_hash: Hash32 | HexBytes | HexStr, trace_address: Sequence[int], remove_delegate_calls: bool = False, remove_calls: bool = False) List[FilterTrace]
Parameters:
  • tx_hash

  • trace_address

  • remove_delegate_calls – If True remove delegate calls from result

  • remove_calls – If True remove calls from result

Returns:

Children for a trace, E.g. if address is [0, 1] and number_traces = 1, it will return [0, 1, x]

Raises:

ValueError if tracing is not supported

get_previous_trace(tx_hash: Hash32 | HexBytes | HexStr, trace_address: Sequence[int], number_traces: int = 1, skip_delegate_calls: bool = False) Dict[str, Any] | None
Parameters:
  • tx_hash

  • trace_address

  • number_traces – Number of traces to skip, by default get the immediately previous one

  • skip_delegate_calls – If True filter out delegate calls

Returns:

Parent trace for a trace

Raises:

ValueError if tracing is not supported

trace_block(block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int) List[BlockTrace]
trace_blocks(block_identifiers: Sequence[Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int]) List[List[Dict[str, Any]]]
trace_filter(from_block: int = 1, to_block: int | None = None, from_address: Sequence[ChecksumAddress] | None = None, to_address: Sequence[ChecksumAddress] | None = None, after: int | None = None, count: int | None = None) List[FilterTrace]

Get events using trace_filter method

Parameters:
  • from_block – Quantity or Tag - (optional) From this block. 0 is not working, it needs to be >= 1

  • to_block – Quantity or Tag - (optional) To this block.

  • from_address – Array - (optional) Sent from these addresses.

  • to_address – Address - (optional) Sent to these addresses.

  • after – Quantity - (optional) The offset trace number

  • count – Quantity - (optional) Integer number of traces to display in a batch.

Returns:

[
    {
        "action": {
            "callType": "call",
            "from": "0x32be343b94f860124dc4fee278fdcbd38c102d88",
            "gas": "0x4c40d",
            "input": "0x",
            "to": "0x8bbb73bcb5d553b5a556358d27625323fd781d37",
            "value": "0x3f0650ec47fd240000"
        },
        "blockHash": "0x86df301bcdd8248d982dbf039f09faf792684e1aeee99d5b58b77d620008b80f",
        "blockNumber": 3068183,
        "result": {
            "gasUsed": "0x0",
            "output": "0x"
        },
        "subtraces": 0,
        "traceAddress": [],
        "transactionHash": "0x3321a7708b1083130bd78da0d62ead9f6683033231617c9d268e2c7e3fa6c104",
        "transactionPosition": 3,
        "type": "call"
    },
    {
        "action": {
            "from": "0x3b169a0fb55ea0b6bafe54c272b1fe4983742bf7",
            "gas": "0x49b0b",
            "init": "0x608060405234801561001057600080fd5b5060405161060a38038061060a833981018060405281019080805190602001909291908051820192919060200180519060200190929190805190602001909291908051906020019092919050505084848160008173ffffffffffffffffffffffffffffffffffffffff1614151515610116576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000815111156101a35773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e600082141561019f573d81fd5b5050505b5050600081111561036d57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156102b7578273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156102b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f436f756c64206e6f74207061792073616665206372656174696f6e207769746881526020017f206574686572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61036c565b6102d1828483610377640100000000026401000000009004565b151561036b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f436f756c64206e6f74207061792073616665206372656174696f6e207769746881526020017f20746f6b656e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b5b5050505050610490565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d60008114610473576020811461047b5760009450610485565b829450610485565b8151158315171594505b505050509392505050565b61016b8061049f6000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a7230582007fffd557dfc8c4d2fdf56ba6381a6ce5b65b6260e1492d87f26c6d4f1d0410800290000000000000000000000008942595a2dc5181df0465af0d7be08c8f23c93af00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000d9e09beaeb338d81a7c5688358df0071d498811500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001b15f91a8c35300000000000000000000000000000000000000000000000000000000000001640ec78d9e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000004000000000000000000000000f763ea5fbb191d47dc4b083dcdc3cdfb586468f8000000000000000000000000ad25c9717d04c0a12086a1d352c1ccf4bf5fcbf80000000000000000000000000da7155692446c80a4e7ad72018e586f20fa3bfe000000000000000000000000bce0cc48ce44e0ac9ee38df4d586afbacef191fa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
            "value": "0x0"
        },
        "blockHash": "0x03f9f64dfeb7807b5df608e6957dd4d521fd71685aac5533451d27f0abe03660",
        "blockNumber": 3793534,
        "result": {
            "address": "0x61a7cc907c47c133d5ff5b685407201951fcbd08",
            "code": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a7230582007fffd557dfc8c4d2fdf56ba6381a6ce5b65b6260e1492d87f26c6d4f1d041080029",
            "gasUsed": "0x4683f"
        },
        "subtraces": 2,
        "traceAddress": [],
        "transactionHash": "0x6c7e8f8778d33d81b29c4bd7526ee50a4cea340d69eed6c89ada4e6fab731789",
        "transactionPosition": 1,
        "type": "create"
    },
    {
        'action': {
            'address': '0x4440adafbc6c4e45c299451c0eedc7c8b98c14ac',
            'balance': '0x0',
            'refundAddress': '0x0000000000000000000000000000000000000000'
        },
        'blockHash': '0x8512d367492371edf44ebcbbbd935bc434946dddc2b126cb558df5906012186c',
        'blockNumber': 7829689,
        'result': None,
        'subtraces': 0,
        'traceAddress': [0, 0, 0, 0, 0, 0],
        'transactionHash': '0x5f7af6aa390f9f8dd79ee692c37cbde76bb7869768b1bac438b6d176c94f637d',
        'transactionPosition': 35,
        'type': 'suicide'
    }
]
trace_transaction(tx_hash: Hash32 | HexBytes | HexStr) List[FilterTrace]
Parameters:

tx_hash

Returns:

List of internal txs for tx_hash

trace_transactions(tx_hashes: Sequence[Hash32 | HexBytes | HexStr]) List[List[FilterTrace]]
Parameters:

tx_hashes

Returns:

For every tx_hash a list of internal txs (in the same order as the tx_hashes were provided)

class gnosis.eth.ethereum_client.TxSpeed(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: Enum

FAST = 4
FASTEST = 6
NORMAL = 3
SLOW = 2
SLOWEST = 0
VERY_FAST = 5
VERY_SLOW = 1
gnosis.eth.ethereum_client.tx_with_exception_handling(func)
Parity / OpenEthereum
Geth
Comparison
Parameters:

func

Returns:

gnosis.eth.typing module

class gnosis.eth.typing.BalanceDict

Bases: TypedDict

balance: int
token_address: str | None
class gnosis.eth.typing.LogReceiptDecoded

Bases: LogReceipt

address: ChecksumAddress
args: Dict[str, Any]
blockHash: HexBytes
blockNumber: BlockNumber
data: HexBytes
logIndex: int
removed: bool
topics: Sequence[HexBytes]
transactionHash: HexBytes
transactionIndex: int

gnosis.eth.utils module

gnosis.eth.utils.compare_byte_code(code_1: bytes, code_2: bytes) bool

Compare code, removing swarm metadata if necessary

Parameters:
  • code_1

  • code_2

Returns:

True if same code, False otherwise

gnosis.eth.utils.decode_string_or_bytes32(data: bytes) str
gnosis.eth.utils.fast_bytes_to_checksum_address(value: bytes) ChecksumAddress

Converts to checksum_address. Uses more optimal pysha3 instead of eth_utils for keccak256 calculation. As input is already in bytes, some checks and conversions can be skipped, providing a speedup of ~50%

Parameters:

value

Returns:

gnosis.eth.utils.fast_is_checksum_address(value: AnyAddress | str | bytes) bool

Fast version to check if an address is a checksum_address

Parameters:

value

Returns:

True if checksummed, False otherwise

gnosis.eth.utils.fast_keccak(value: bytes) Hash32

Calculates ethereum keccak256 using fast library pysha3 :param value: :return: Keccak256 used by ethereum as bytes

gnosis.eth.utils.fast_keccak_hex(value: bytes) HexStr

Same as fast_keccak, but it’s a little more optimal calling hexdigest() than calling digest() and then hex()

Parameters:

value

Returns:

Keccak256 used by ethereum as a hex string (not 0x prefixed)

gnosis.eth.utils.fast_to_checksum_address(value: AnyAddress | str | bytes) ChecksumAddress

Converts to checksum_address. Uses more optimal pysha3 instead of eth_utils for keccak256 calculation

Parameters:

value

Returns:

gnosis.eth.utils.get_empty_tx_params() TxParams
Returns:

Empty tx params, so calls like build_transaction don’t call the RPC trying to get information

gnosis.eth.utils.get_eth_address_with_invalid_checksum() str
gnosis.eth.utils.mk_contract_address(address: str | bytes, nonce: int) ChecksumAddress

Generate expected contract address when using EVM CREATE

Parameters:
  • address

  • nonce

Returns:

gnosis.eth.utils.mk_contract_address_2(from_: ChecksumAddress | bytes, salt: HexStr | bytes, init_code: HexStr | bytes) ChecksumAddress

Generate expected contract address when using EVM CREATE2.

Parameters:
  • from – The address which is creating this new address (need to be 20 bytes)

  • salt – A salt (32 bytes)

  • init_code – A init code of the contract being created

Returns:

Address of the new contract

gnosis.eth.utils.remove_swarm_metadata(code: bytes) bytes

Remove swarm metadata from Solidity bytecode

Parameters:

code

Returns:

Code without metadata

Module contents

class gnosis.eth.EthereumClient(ethereum_node_url: URI = 'http://localhost:8545', provider_timeout: int = 15, slow_provider_timeout: int = 60, retry_count: int = 1, use_caching_middleware: bool = True, batch_request_max_size: int = 500)

Bases: object

Manage ethereum operations. Uses web3 for the most part, but some other stuff is implemented from scratch. Note: If you want to use pending state with Parity, it must be run with –pruning=archive or –force-sealing

NULL_ADDRESS = '0x0000000000000000000000000000000000000000'
batch_call(contract_functions: Iterable[ContractFunction], from_address: ChecksumAddress | None = None, raise_exception: bool = True, force_batch_call: bool = False, block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int | None = 'latest') List[bytes | Any | None]

Call multiple functions. Multicall contract by MakerDAO will be used by default if available

Parameters:
  • contract_functions

  • from_address – Only available when Multicall is not used

  • raise_exception – If True, raise BatchCallException if one of the calls fails

  • force_batch_call – If True, ignore multicall and always use batch calls to get the result (less optimal). If False, more optimal way will be tried.

  • block_identifier

Returns:

List of elements decoded to their types, None if they cannot be decoded and bytes if a revert error is returned and raise_exception=False

Raises:

BatchCallException

batch_call_manager: BatchCallManager
batch_call_same_function(contract_function: ContractFunction, contract_addresses: Sequence[ChecksumAddress], from_address: ChecksumAddress | None = None, raise_exception: bool = True, force_batch_call: bool = False, block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int | None = 'latest') List[bytes | Any | None]

Call the same function in multiple contracts. Way more optimal than using batch_call generating multiple ContractFunction objects.

Parameters:
  • contract_function

  • contract_addresses

  • from_address – Only available when Multicall is not used

  • raise_exception – If True, raise BatchCallException if one of the calls fails

  • force_batch_call – If True, ignore multicall and always use batch calls to get the result (less optimal). If False, more optimal way will be tried.

  • block_identifier

Returns:

List of elements decoded to the same type, None if they cannot be decoded and bytes if a revert error is returned and raise_exception=False

Raises:

BatchCallException

static build_tx_params(from_address: ChecksumAddress | None = None, to_address: ChecksumAddress | None = None, value: int | None = None, gas: int | None = None, gas_price: int | None = None, nonce: int | None = None, chain_id: int | None = None, tx_params: TxParams | None = None) TxParams

Build tx params dictionary. If an existing TxParams dictionary is provided the fields will be replaced by the provided ones

Parameters:
  • from_address

  • to_address

  • value

  • gas

  • gas_price

  • nonce

  • chain_id

  • tx_params – An existing TxParams dictionary will be replaced by the providen values

Returns:

check_tx_with_confirmations(tx_hash: Hash32 | HexBytes | HexStr, confirmations: int) bool

Check tx hash and make sure it has the confirmations required

Parameters:
  • tx_hash – Hash of the tx

  • confirmations – Minimum number of confirmations required

Returns:

True if tx was mined with the number of confirmations required, False otherwise

property current_block_number
deploy_and_initialize_contract(deployer_account: LocalAccount, constructor_data: bytes, initializer_data: bytes = b'', check_receipt: bool = True) EthereumTxSent
erc20: Erc20Manager
erc721: Erc721Manager
static estimate_data_gas(data: bytes)

Estimate gas costs only for “storage” of the data bytes provided

Parameters:

data

Returns:

estimate_fee_eip1559(tx_speed: TxSpeed = TxSpeed.NORMAL) Tuple[int, int]

Check https://github.com/ethereum/execution-apis/blob/main/src/eth/fee_market.json#L15

Returns:

Tuple[BaseFeePerGas, MaxPriorityFeePerGas]

Raises:

ValueError if not supported on the network

estimate_gas(to: str, from_: str | None = None, value: int | None = None, data: bytes | HexStr | None = None, gas: int | None = None, gas_price: int | None = None, block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int | None = None) int

Estimate gas calling eth_estimateGas

Parameters:
  • from

  • to

  • value

  • data

  • gas

  • gas_price

  • block_identifier – Be careful, Geth does not support pending when estimating

Returns:

Amount of gas needed for transaction

Raises:

ValueError

ethereum_node_url: str
get_balance(address: ChecksumAddress, block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int | None = None)
get_block(block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int, full_transactions: bool = False) BlockData | None
get_blocks(block_identifiers: Iterable[Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int], full_transactions: bool = False) List[BlockData | None]
get_chain_id() int
Returns:

ChainId returned by the RPC eth_chainId method. It should never change, so it’s cached.

get_client_version() str
Returns:

RPC version information

get_network() EthereumNetwork

Get network name based on the chainId. This method is not cached as the method for getting the chainId already is.

Returns:

EthereumNetwork based on the chainId. If network is not on our list, EthereumNetwork.UNKNOWN is returned

get_nonce_for_account(address: ChecksumAddress, block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int | None = 'latest')

Get nonce for account. getTransactionCount is the only method for what pending is currently working (Geth and Parity)

Parameters:
  • address

  • block_identifier

Returns:

get_transaction(tx_hash: Hash32 | HexBytes | HexStr) TxData | None
get_transaction_receipt(tx_hash: Hash32 | HexBytes | HexStr, timeout=None) TxReceipt | None
get_transaction_receipts(tx_hashes: Sequence[bytes | HexStr]) List[TxReceipt | None]
get_transactions(tx_hashes: Sequence[Hash32 | HexBytes | HexStr]) List[TxData | None]
is_contract(contract_address: ChecksumAddress) bool
is_eip1559_supported() bool
Returns:

True if EIP1559 is supported by the node, False otherwise

property multicall: Multicall
static private_key_to_address(private_key)
raw_batch_request(payload: Sequence[Dict[str, Any]], batch_size: int | None = None) Iterable[Dict[str, Any] | None]

Perform a raw batch JSON RPC call

Parameters:
  • payload – Batch request payload. Make sure all provided ids inside the payload are different

  • batch_size – If payload length is bigger than size, it will be split into smaller chunks before sending to the server

Returns:

Raises:

ValueError

send_eth_to(private_key: str, to: str, gas_price: int, value: Wei, gas: int | None = None, nonce: int | None = None, retry: bool = False, block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int | None = 'pending') bytes

Send ether using configured account

Parameters:
  • private_key – to

  • to – to

  • gas_price – gas_price

  • value – value(wei)

  • gas – gas, defaults to 22000

  • retry – Retry if a problem is found

  • nonce – Nonce of sender account

  • block_identifier – Block identifier for nonce calculation

Returns:

tx_hash

send_raw_transaction(raw_transaction: bytes | HexStr) HexBytes
send_transaction(transaction_dict: TxParams) HexBytes
send_unsigned_transaction(tx: TxParams, private_key: str | None = None, public_key: str | None = None, retry: bool = False, block_identifier: Literal['latest', 'earliest', 'pending', 'safe', 'finalized'] | BlockNumber | Hash32 | HexStr | HexBytes | int | None = 'pending') HexBytes

Send a tx using an unlocked public key in the node or a private key. Both public_key and private_key cannot be None

Parameters:
  • tx

  • private_key

  • public_key

  • retry – Retry if a problem with nonce is found

  • block_identifier – For nonce calculation, recommended is pending

Returns:

tx hash

set_eip1559_fees(tx: TxParams, tx_speed: TxSpeed = TxSpeed.NORMAL) TxParams
Returns:

TxParams in EIP1559 format

Raises:

ValueError if EIP1559 not supported

slow_w3: Web3
tracing: TracingManager
w3: Web3
class gnosis.eth.EthereumClientProvider

Bases: object

class gnosis.eth.EthereumNetwork(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: Enum

Use https://chainlist.org/ as a reference

ACALA_MANDALA_TESTNET_TC9 = 595
ACALA_NETWORK = 787
ACALA_NETWORK_TESTNET = 597
ACRIA_INTELLICHAIN = 47
ADIL_CHAIN_V2_MAINNET = 7576
ADIL_DEVNET = 123456
ADIL_TESTNET = 7575
AERIE_NETWORK = 84886
AEROCHAIN_TESTNET = 788
AGUNG_NETWORK = 9990
AIA_MAINNET = 1319
AIA_TESTNET = 1320
AIOZ_NETWORK = 168
AIOZ_NETWORK_TESTNET = 4102
AIRDAO_MAINNET = 16718
AIRDAO_TESTNET = 22040
AKROMA = 200625
ALAYA_DEV_TESTNET = 201030
ALAYA_MAINNET = 201018
ALGOL = 2089
ALL_MAINNET = 651940
ALPHABET_MAINNET = 111222333444
ALPH_NETWORK = 8738
ALTAIR = 2088
ALTCOINCHAIN = 2330
ALTERIUM_L2_TESTNET = 420692
ALTLAYER_TESTNET = 9997
ALTLAYER_ZERO_GAS_NETWORK = 4000003
ALVEYCHAIN_MAINNET = 3797
ALYX_CHAIN_TESTNET = 135
ALYX_MAINNET = 1314
AMANA = 8134
AMANA_MIXNET = 81342
AMANA_PRIVNET = 81343
AMANA_TESTNET = 81341
AMBROS_CHAIN_MAINNET = 880
AME_CHAIN_MAINNET = 180
AMPLIFY_SUBNET = 78430
AMSTAR_MAINNET = 1388
AMSTAR_TESTNET = 1138
ANCIENT8_TESTNET = 28122024
ANCIENT8_TESTNET_DEPRECATED = 2863311531
ANDUSCHAIN_MAINNET = 14288640
ANTOFY_MAINNET = 2202
ANTOFY_TESTNET = 23006
ANYTYPE_EVM_CHAIN = 1701
AQUACHAIN = 61717561
ARBITRUM_GOERLI = 421613
ARBITRUM_NOVA = 42170
ARBITRUM_ONE = 42161
ARBITRUM_ON_XDAI = 200
ARBITRUM_RINKEBY = 421611
ARBITRUM_SEPOLIA = 421614
ARCOLOGY_TESTNET = 118
ARCTURUS_CHAIN_TESTNET = 5616
ARC_MAINNET = 1243
ARC_TESTNET = 1244
ARDENIUM_ATHENA = 7895
AREON_NETWORK_MAINNET = 463
AREON_NETWORK_TESTNET = 462
AREVIA = 2309
ARMONIA_EVA_CHAIN_MAINNET = 160
ARMONIA_EVA_CHAIN_TESTNET = 161
ARTHERA_MAINNET = 10242
ARTHERA_TESTNET = 10243
ARTIS_SIGMA1 = 246529
ARTIS_TESTNET_TAU1 = 246785
ARZIO_CHAIN = 456
ASTAR = 592
ASTAR_ZKEVM = 12611
ASTRA = 11110
ASTRA_TESTNET = 11115
ASTRIA_EVM_DUSKNET = 912559
ATELIER = 1971
ATHEIOS = 1620
ATHEREUM = 43110
ATOSHI_TESTNET = 167
AURORA_BETANET = 1313161556
AURORA_MAINNET = 1313161554
AURORA_TESTNET = 1313161555
AUTOBAHN_NETWORK = 45000
AUTONITY_BAKERLOO_BARADA_TESTNET = 65010001
AUTONITY_BAKERLOO_THAMES_TESTNET = 65010000
AUTONITY_PICCADILLY_BARADA_TESTNET = 65100001
AUTONITY_PICCADILLY_THAMES_TESTNET = 65100000
AUXILIUM_NETWORK_MAINNET = 28945486
AVALANCHE_C_CHAIN = 43114
AVALANCHE_FUJI_TESTNET = 43113
AVES_MAINNET = 33333
AVES_TESTNET = 333331
AVOCADO = 634
AXELCHAIN_DEV_NET = 61800
BAHAMUT = 5165
BANDAI_NAMCO_RESEARCH_VERSE_MAINNET = 876
BASE = 8453
BASE_GOERLI_TESTNET = 84531
BASE_SEPOLIA_TESTNET = 84532
BEAGLE_MESSAGING_CHAIN = 1515
BEAM = 4337
BEAM_TESTNET = 13337
BEANECO_SMARTCHAIN = 535037
BEAR_NETWORK_CHAIN_MAINNET = 641230
BEAR_NETWORK_CHAIN_TESTNET = 751230
BEONE_CHAIN_MAINNET = 818
BERACHAIN_ARTIO = 80085
BERESHEET_BEREEVM_TESTNET = 2022
BERYLBIT_MAINNET = 9012
BEVERLY_HILLS = 90210
BEVM_CANARY = 1501
BIFROST_MAINNET = 3068
BIFROST_TESTNET = 49088
BIGSHORTBETS = 2137
BITCHAIN_MAINNET = 198
BITCICHAIN_MAINNET = 1907
BITCICHAIN_TESTNET = 1908
BITCOIN_CHAIN = 8086
BITCOIN_EVM = 2203
BITFINITY_NETWORK_TESTNET = 355113
BITGERT_MAINNET = 32520
BITICA_CHAIN_MAINNET = 188710
BITINDI_MAINNET = 4099
BITINDI_TESTNET = 4096
BITKUB_CHAIN = 96
BITKUB_CHAIN_TESTNET = 25925
BITNET = 210
BITROCK_MAINNET = 7171
BITROCK_TESTNET = 7771
BITTEX_MAINNET = 3690
BITTORRENT_CHAIN_MAINNET = 199
BITTORRENT_CHAIN_TESTNET = 1028
BITYUAN_MAINNET = 2999
BLACKFORT_EXCHANGE_NETWORK = 4999
BLACKFORT_EXCHANGE_NETWORK_TESTNET = 4777
BLAST_MAINNET = 238
BLAST_TESTNET = 23888
BLG_TESTNET = 12321
BLITZ_SUBNET = 1343
BLOCKCHAIN_GENESIS_MAINNET = 10101
BLOCKCHAIN_STATION_MAINNET = 707
BLOCKCHAIN_STATION_TESTNET = 708
BLOCKTON_BLOCKCHAIN = 8272
BLOCX_MAINNET = 879151
BLOXBERG = 8995
BLUCRATES = 727
BLXQ_MAINNET = 1108
BLXQ_TESTNET = 1107
BMC_MAINNET = 188
BMC_TESTNET = 189
BNB_SMART_CHAIN_MAINNET = 56
BNB_SMART_CHAIN_TESTNET = 97
BOBABASE_TESTNET = 1297
BOBABEAM = 1294
BOBAFUJI_TESTNET = 4328
BOBAOPERA = 301
BOBAOPERA_TESTNET = 4051
BOBA_AVAX = 43288
BOBA_BNB_MAINNET = 56288
BOBA_BNB_MAINNET_OLD = 97288
BOBA_BNB_TESTNET = 9728
BOBA_NETWORK = 288
BOBA_NETWORK_GOERLI_TESTNET = 2888
BOBA_NETWORK_RINKEBY_TESTNET = 28
BOMB_CHAIN = 2300
BOMB_CHAIN_TESTNET = 2399
BON_NETWORK = 1898
BOSAGORA_MAINNET = 2151
BOTANIX_MAINNET = 3637
BOTANIX_TESTNET = 3636
BRC_CHAIN_MAINNET = 12123
BROCHAIN_MAINNET = 108801
BRONOS_MAINNET = 1039
BRONOS_TESTNET = 1038
BSL_MAINNET = 21912
BTACHAIN = 1657
BTC20_SMART_CHAIN = 963
BTCIX_NETWORK = 19845
BULLETIN_SUBNET = 78431
CALLISTO_MAINNET = 820
CALLISTO_TESTNET = 20729
CALLISTO_TESTNET_DEPRECATED = 821
CAMDL_MAINNET = 95
CAMELARK_MAINNET = 20001
CAMINO_C_CHAIN = 500
CANDLE = 534
CANTO = 7700
CANTO_TESNET = 7701
CANTO_TESTNET = 740
CANXIUM_MAINNET = 3003
CARBON_EVM = 9790
CARBON_EVM_TESTNET = 9792
CASCADIA_TESTNET = 6102
CATALYST = 2032
CATECOIN_CHAIN_MAINNET = 1618
CELO_ALFAJORES_TESTNET = 44787
CELO_BAKLAVA_TESTNET = 62320
CELO_MAINNET = 42220
CENNZNET_AZALEA = 21337
CENNZNET_NIKAU = 3001
CENNZNET_RATA = 3000
CENTRIFUGE = 2031
CERIUM_TESTNET = 30103
CHAIN_VERSE_MAINNET = 5555
CHAOS_SKALE_TESTNET = 1351057110
CHEAPETH = 777
CHILIZ_SCOVILLE_TESTNET = 88880
CIC_CHAIN_MAINNET = 1353
CIC_CHAIN_TESTNET = 1252
CLOUDTX_MAINNET = 31223
CLOUDTX_TESTNET = 31224
CLOUDVERSE_SUBNET = 33210
CLOUDWALK_MAINNET = 2009
CLOUDWALK_TESTNET = 2008
CLOVER_TESTNET = 1023
CLV_PARACHAIN = 1024
CMP_MAINNET = 256256
CMP_TESTNET = 512512
CODEFIN_MAINNET = 9223
COINBIT_MAINNET = 112
COINEX_SMART_CHAIN_MAINNET = 52
COINEX_SMART_CHAIN_TESTNET = 53
COLUMBUS_TEST_NETWORK = 501
COMBO_MAINNET = 9980
COMBO_TESTNET = 91715
COMPVERSE_MAINNET = 6779
CONDOR_TEST_NETWORK = 188881
CONDRIEU = 69420
CONDUIT_SUBNET = 78432
CONET_HOLESKY = 224433
CONET_SEBOLIA_TESTNET = 224422
CONFLUX_ESPACE = 1030
CONFLUX_ESPACE_TESTNET = 71
CONNECTORMANAGER = 38400
CONNECTORMANAGER_ROBIN = 38401
CONSTA_TESTNET = 371
CORE_BLOCKCHAIN_MAINNET = 1116
CORE_BLOCKCHAIN_TESTNET = 1115
COSMIC_CHAIN = 67588
CRAB_NETWORK = 44
CREDIT_SMART_CHAIN = 13308
CREDIT_SMART_CHAIN_MAINNET = 4400
CRONOS_MAINNET = 25
CRONOS_TESTNET = 338
CROSSBELL = 3737
CRYPTOCOINPAY = 10823
CRYPTO_EMERGENCY = 193
CRYSTALEUM = 103090
CTEX_SCAN_BLOCKCHAIN = 1455
CUBE_CHAIN_MAINNET = 1818
CUBE_CHAIN_TESTNET = 1819
CURVE_MAINNET = 827431
CYBERDECKNET = 1146703430
CYBERTRUST = 85449
CYBRIA_MAINNET = 6661
CYBRIA_TESTNET = 6666
DARWINIA_NETWORK = 46
DARWINIA_PANGOLIN_TESTNET = 43
DARWINIA_PANGORO_TESTNET = 45
DATAHOPPER = 2021121117
DAX_CHAIN = 142
DBCHAIN_TESTNET = 67
DEAMCHAIN_MAINNET = 136
DEAMCHAIN_TESTNET = 236
DEBANK_MAINNET = 116
DEBANK_TESTNET = 2021398
DEBANK_TESTNET_DEPRECATED = 115
DEBOUNCE_SUBNET_TESTNET = 3306
DECENTRABONE_LAYER1_TESTNET = 910
DECENTRALIZED_WEB_MAINNET = 124
DECIMAL_SMART_CHAIN_MAINNET = 75
DECIMAL_SMART_CHAIN_TESTNET = 202020
DEELANCE_MAINNET = 45510
DEFICHAIN_EVM_NETWORK_MAINNET = 1130
DEFICHAIN_EVM_NETWORK_TESTNET = 1131
DEFIMETACHAIN_CHANGI_TESTNET = 1133
DEFI_ORACLE_META_MAINNET = 138
DEFI_ORACLE_META_TESTNET = 2138
DEHVO = 113
DEPRECATED_CHI = 100100
DEXALOT_SUBNET = 432204
DEXALOT_SUBNET_TESTNET = 432201
DEXILLA_TESTNET = 1954
DEXIT_NETWORK = 877
DFK_CHAIN = 53935
DFK_CHAIN_TEST = 335
DIGIT_SOUL_SMART_CHAIN = 6363
DIGIT_SOUL_SMART_CHAIN_2 = 363636
DIODE_PRENET = 15
DIODE_TESTNET_STAGING = 13
DM2_VERSE_MAINNET = 68770
DODAO = 855456
DOGCOIN_MAINNET = 1117
DOGCOIN_TESTNET = 9339
DOGECHAIN_MAINNET = 2000
DOGECHAIN_TESTNET = 568
DOGELAYER_MAINNET = 9888
DOGETHER_MAINNET = 1248
DOKEN_SUPER_CHAIN_MAINNET = 61916
DOS_CHAIN = 7979
DOS_FUJI_SUBNET = 1311
DOS_TESNET = 3939
DOUBLE_A_CHAIN_MAINNET = 512
DOUBLE_A_CHAIN_TESTNET = 513
DPU_CHAIN = 2611555
DRACONES_FINANCIAL_SERVICES = 8387
DRAC_NETWORK = 3912
DRAGONFLY_MAINNET_HEXAPOD = 78281
DUBXCOIN_NETWORK = 3269
DUBXCOIN_TESTNET = 3270
DXCHAIN_MAINNET = 36
DXCHAIN_TESTNET = 72
DYNO_MAINNET = 3966
DYNO_TESTNET = 3967
D_CHAIN_MAINNET = 1951
EBRO_NETWORK = 2306
ECOBALL_MAINNET = 2100
ECOBALL_TESTNET_ESPUMA = 2101
ECREDITS_MAINNET = 63000
ECREDITS_TESTNET = 63001
ECROX_CHAIN_MAINNET = 988207
EDEXA_TESTNET = 1995
EDGEWARE_EDGEEVM_MAINNET = 2021
EGONCOIN_MAINNET = 271
EGONCOIN_TESTNET = 271271
EKTA = 1994
ELASTOS_SMART_CHAIN = 20
ELASTOS_SMART_CHAIN_TESTNET = 21
ELA_DID_SIDECHAIN_MAINNET = 22
ELA_DID_SIDECHAIN_TESTNET = 23
ELEANOR = 1967
ELECTRONEUM_MAINNET = 52014
ELECTRONEUM_TESTNET = 5201420
ELIBERTY_MAINNET = 990
ELIBERTY_TESTNET = 99099
ELLAISM = 64
ELLA_THE_HEART = 7027
ELUVIO_CONTENT_FABRIC = 955305
ELYSIUM_MAINNET = 1339
ELYSIUM_TESTNET = 1338
EMPIRE_NETWORK = 3693
ENDURANCE_SMART_CHAIN_MAINNET = 648
ENERGI_MAINNET = 39797
ENERGI_TESTNET = 49797
ENERGY_WEB_CHAIN = 246
ENERGY_WEB_VOLTA_TESTNET = 73799
ENGRAM_TESTNET = 131
ENNOTHEM_MAINNET_PROTEROZOIC = 48
ENNOTHEM_TESTNET_PIONEER = 49
ENTERCHAIN_MAINNET = 1214
ENULS_MAINNET = 119
ENULS_TESTNET = 120
EOS_EVM_LEGACY = 59
EOS_EVM_NETWORK = 17777
EOS_EVM_NETWORK_TESTNET = 15557
ERASWAP_MAINNET = 5197
ETHEREUM_CLASSIC = 61
ETHEREUM_FAIR = 513100
ETHERGEM = 1987
ETHERINC = 101
ETHERLITE_CHAIN = 111
ETHERSOCIAL_NETWORK = 31102
ETHO_PROTOCOL = 1313114
ETICA_MAINNET = 61803
ETND_CHAIN_MAINNETS = 131419
EURUS_MAINNET = 1008
EURUS_TESTNET = 1984
EVANESCO_MAINNET = 2213
EVANESCO_TESTNET = 1201
EVMOS = 9001
EVMOS_TESTNET = 9000
EVOKE_MAINNET = 9395
EVOKE_TESTNET = 31414
EVRICE_NETWORK = 1010
EXCELON_MAINNET = 22052002
EXCOINCIAL_CHAIN_MAINNET = 27082022
EXCOINCIAL_CHAIN_VOLTA_TESTNET = 27082017
EXOSAMA_NETWORK = 2109
EXPANSE_NETWORK = 2
EXZO_NETWORK_MAINNET = 1229
EZCHAIN_C_CHAIN_MAINNET = 2612
EZCHAIN_C_CHAIN_TESTNET = 2613
E_DOLLAR = 8087
FACTORY_127_MAINNET = 127
FANTASIA_CHAIN_MAINNET = 868
FANTOM_OPERA = 250
FANTOM_TESTNET = 4002
FASTEX_CHAIN_BAHAMUT_OASIS_TESTNET = 4090
FASTEX_CHAIN_TESTNET = 424242
FERRUM_TESTNET = 26026
FIBONACCI_MAINNET = 12306
FILECOIN_BUTTERFLY_TESTNET = 3141592
FILECOIN_CALIBRATION_TESTNET = 314159
FILECOIN_HYPERSPACE_TESTNET = 3141
FILECOIN_LOCAL_TESTNET = 31415926
FILECOIN_MAINNET = 314
FILECOIN_WALLABY_TESTNET = 31415
FINDORA_FORGE = 2154
FINDORA_MAINNET = 2152
FINDORA_TESTNET = 2153
FIRECHAIN_MAINNET = 529
FIRECHAIN_MAINNET_OLD = 5290
FIRECHAIN_ZKEVM = 814
FIRECHAIN_ZKEVM_GHOSTRIDER = 3885
FIRENZE_TEST_NETWORK = 78110
FLACHAIN_MAINNET = 29032022
FLANA = 8135
FLANA_MIXNET = 81352
FLANA_PRIVNET = 81353
FLANA_TESTNET = 81351
FLARE_MAINNET = 14
FLARE_TESTNET_COSTON = 16
FLARE_TESTNET_COSTON2 = 114
FNCY = 73
FNCY_TESTNET = 923018
FOUNDRY_CHAIN_TESTNET = 77238
FOX_TESTNET_NETWORK = 6565
FRAME_TESTNET = 68840142
FRAXTAL_MAINNET = 252
FRAXTAL_TESTNET = 2522
FREIGHT_TRUST_NETWORK = 211
FRENCHAIN = 44444
FRONTIER_OF_DREAMS_TESTNET = 18000
FUSE_MAINNET = 122
FUSE_SPARKNET = 123
FUSION_MAINNET = 32659
FUSION_TESTNET = 46688
F_XCORE_MAINNET_NETWORK = 530
G8CHAIN_MAINNET = 17171
G8CHAIN_TESTNET = 18181
GANACHE = 1337
GARIZON_STAGE0 = 90
GARIZON_STAGE1 = 91
GARIZON_STAGE2 = 92
GARIZON_STAGE3 = 93
GARIZON_TESTNET_STAGE0 = 900
GARIZON_TESTNET_STAGE1 = 901
GARIZON_TESTNET_STAGE2 = 902
GARIZON_TESTNET_STAGE3 = 903
GATECHAIN_MAINNET = 86
GATECHAIN_TESTNET = 85
GATHER_DEVNET_NETWORK = 486217935
GATHER_MAINNET_NETWORK = 192837465
GATHER_TESTNET_NETWORK = 356256156
GAUSS_MAINNET = 1777
GEAR_ZERO_NETWORK_MAINNET = 516
GEAR_ZERO_NETWORK_TESTNET = 266256
GENECHAIN = 80
GENESIS_COIN = 9100
GENESIS_L1 = 29
GENESIS_L1_TESTNET = 26
GENESYS_CODE_MAINNET = 59971
GENESYS_MAINNET = 16507
GESOTEN_VERSE_TESTNET = 42801
GESO_VERSE = 428
GIANT_MAMMOTH_MAINNET = 8989
GIL_TESTNET = 1452
GITSHOCK_CARTENZ_TESTNET = 1881
GLOBEL_CHAIN = 4893
GNOSIS = 100
GNOSIS_CHIADO_TESTNET = 10200
GOCHAIN = 60
GOCHAIN_TESTNET = 31337
GODWOKEN_MAINNET = 71402
GODWOKEN_TESTNET_V1 = 71401
GOERLI = 5
GOLDXCHAIN_MAINNET = 42355
GOLDXCHAIN_TESTNET = 22324
GOLD_SMART_CHAIN_MAINNET = 6789
GOLD_SMART_CHAIN_TESTNET = 79879
GON_CHAIN = 10024
GOODDATA_MAINNET = 33
GOODDATA_TESTNET = 32
GRAPHLINQ_BLOCKCHAIN_MAINNET = 614
GROK_CHAIN_MAINNET = 72992
GTON_MAINNET = 1000
GTON_TESTNET = 50021
GUAPCOINX = 71111
HAIC = 803
HALO_MAINNET = 1280
HAMMER_CHAIN_MAINNET = 25888
HAPCHAIN = 8794598
HAPCHAIN_TESTNET = 373737
HAQQ_CHAIN_TESTNET = 54211
HAQQ_NETWORK = 11235
HARADEV_TESTNET = 197710212031
HARMONY_DEVNET_SHARD_0 = 1666900000
HARMONY_DEVNET_SHARD_1 = 1666900001
HARMONY_MAINNET_SHARD_0 = 1666600000
HARMONY_MAINNET_SHARD_1 = 1666600001
HARMONY_MAINNET_SHARD_2 = 1666600002
HARMONY_MAINNET_SHARD_3 = 1666600003
HARMONY_TESTNET_SHARD_0 = 1666700000
HARMONY_TESTNET_SHARD_1 = 1666700001
HASHBIT_MAINNET = 11119
HASHKEY_CHAIN_TESTNET = 230315
HAVEN1_TESTNET = 810
HAYMO_TESTNET = 234666
HAZLOR_TESTNET = 7878
HEDERA_LOCALNET = 298
HEDERA_MAINNET = 295
HEDERA_PREVIEWNET = 297
HEDERA_TESTNET = 296
HELA_OFFICIAL_RUNTIME_MAINNET = 8668
HELA_OFFICIAL_RUNTIME_TESTNET = 666888
HELP_THE_HOMELESS = 7118
HERTZ_NETWORK_MAINNET = 26600
HIGHBURY = 710
HIGH_PERFORMANCE_BLOCKCHAIN = 269
HIKA_NETWORK_TESTNET = 5729
HOKUM = 8080808
HOKUM_TESTNET = 20482050
HOLESKY = 17000
HOME_VERSE_MAINNET = 19011
HOO_SMART_CHAIN = 70
HOO_SMART_CHAIN_TESTNET = 170
HORIZEN_EON_MAINNET = 7332
HORIZEN_GOBI_TESTNET = 1663
HTMLCOIN_MAINNET = 4444
HUMANODE_MAINNET = 5234
HUMANODE_TESTNET_5_ISRAFEL = 14853
HUMANS_AI_MAINNET = 1089
HUMANS_AI_TESTNET = 4139
HUMAN_PROTOCOL = 1273227453
HUOBI_ECO_CHAIN_MAINNET = 128
HUOBI_ECO_CHAIN_TESTNET = 256
HYBRID_CHAIN_NETWORK_MAINNET = 2468
HYBRID_CHAIN_NETWORK_TESTNET = 2458
HYPERONCHAIN_TESTNET = 400
HYPRA_MAINNET = 622277
ICHAIN_NETWORK = 3639
ICPLAZA_MAINNET = 142857
IDCHAIN_MAINNET = 74
IEXEC_SIDECHAIN = 134
IMMU3_EVM = 3100
IMMUTABLE_ZKEVM = 13371
IMMUTABLE_ZKEVM_DEVNET = 15003
IMMUTABLE_ZKEVM_TESTNET = 13473
IMPERIUM_MAINNET = 9819
IMPERIUM_TESTNET = 9818
IMVERSED_MAINNET = 5555555
IMVERSED_TESTNET = 5555558
IOLITE = 18289463
IORA_CHAIN = 1197
IOTEX_NETWORK_MAINNET = 4689
IOTEX_NETWORK_TESTNET = 4690
IPOS_NETWORK = 1122334455
IRISHUB = 6688
IRISHUB_TESTNET = 16688
IVAR_CHAIN_MAINNET = 88888
IVAR_CHAIN_TESTNET = 16888
J2O_TARO = 35011
JANUS_TESTNET = 66988
JAPAN_OPEN_CHAIN_MAINNET = 81
JAPAN_OPEN_CHAIN_TESTNET = 10081
JELLIE = 202624
JFIN_CHAIN = 3501
JIBCHAIN_L1 = 8899
JOSEON_MAINNET = 1392
JOULEVERSE_MAINNET = 3666
JOYS_DIGITAL_MAINNET = 35855456
JOYS_DIGITAL_TESTNET = 99415706
JUNCACHAIN = 668
JUNCACHAIN_TESTNET = 669
KAIBA_LIGHTNING_CHAIN_TESTNET = 104
KALAR_CHAIN = 1379
KALICHAIN = 654
KALICHAIN_TESTNET = 653
KALYCHAIN_MAINNET = 3888
KALYCHAIN_TESTNET = 3889
KANAZAWA = 222000222
KARDIACHAIN_MAINNET = 24
KARURA_NETWORK = 686
KARURA_NETWORK_TESTNET = 596
KAVA = 2222
KAVA_TESTNET = 2221
KCC_MAINNET = 321
KCC_TESTNET = 322
KEKCHAIN = 420420
KEKCHAIN_KEKTEST = 420666
KERLEANO = 1804
KILN = 1337802
KINTO_TESTNET = 42888
KINTSUGI = 1337702
KIWI_SUBNET = 2037
KLAYTN_MAINNET_CYPRESS = 8217
KLAYTN_TESTNET_BAOBAB = 1001
KLYNTAR = 7331
KORTHOTEST = 8285
KORTHO_MAINNET = 2559
KOTTI_TESTNET = 6
KREST_NETWORK = 2241
KROMA = 255
KROMA_SEPOLIA = 2358
KYOTO_TESTNET = 1998
K_LAOS = 2718
LACHAIN = 274
LACHAIN_MAINNET = 225
LACHAIN_TESTNET = 226
LAMBDA_TESTNET = 92001
LAOS_ARRAKIS = 667
LATAM_BLOCKCHAIN_RESIL_TESTNET = 172
LATESTNET = 418
LATEST_CHAIN_TESTNET = 6660
LIGHTSTREAMS_MAINNET = 163
LIGHTSTREAMS_TESTNET = 162
LINEA = 59144
LINEA_TESTNET = 59140
LINQTO_DEVNET = 84
LIQUICHAIN = 1662
LISINSKI = 385
LISK_SEPOLIA_TESTNET = 4202
LIVEPLEX_ORACLEEVM = 50001
LIVING_ASSETS_MAINNET = 1440
LOOPNETWORK_MAINNET = 15551
LUCID_BLOCKCHAIN = 800
LUCKY_NETWORK = 998
LUDAN_MAINNET = 1688
LUKSO_MAINNET = 42
LUKSO_TESTNET = 4201
LUMOZ_TESTNET_ALPHA = 51178
LYCAN_CHAIN = 721
LYRA_CHAIN = 957
MAALCHAIN_TESTNET = 7860
MAAL_CHAIN = 786
MAINNET = 1
MAINNETZ_MAINNET = 2016
MAINNETZ_TESTNET = 9768
MAISTESTSUBNET = 43214913
MAMMOTH_MAINNET = 8898
MANTA_PACIFIC_MAINNET = 169
MANTA_PACIFIC_TESTNET = 3441005
MANTIS_TESTNET_HEXAPOD = 96970
MANTLE = 5000
MANTLE_SEPOLIA_TESTNET = 5003
MANTLE_TESTNET = 5001
MAP_MAINNET = 22776
MAP_MAKALU = 212
MARKR_GO = 431140
MARO_BLOCKCHAIN_MAINNET = 8848
MAS_MAINNET = 220315
MATHCHAIN = 1139
MATHCHAIN_TESTNET = 1140
MAXXCHAIN_MAINNET = 10201
MCH_VERSE_MAINNET = 29548
MDGL_TESTNET = 8029
MELD = 333000333
MEMO_SMART_CHAIN_MAINNET = 985
MERKLE_SCAN = 1909
MESHNYAN_TESTNET = 600
METACHAIN_MAINNET = 571
METACHAIN_ONE_MAINNET = 112358
METADIUM_MAINNET = 11
METADIUM_TESTNET = 12
METADOT_MAINNET = 16000
METADOT_TESTNET = 16001
METAL_C_CHAIN = 381931
METAL_TAHOE_C_CHAIN = 381932
METAPLAYERONE_DUBAI_TESTNET = 2124
METAPLAYERONE_MAINNET = 2122
METER_MAINNET = 82
METER_TESTNET = 83
METIS_ANDROMEDA_MAINNET = 1088
METIS_GOERLI_TESTNET = 599
METIS_STARDUST_TESTNET = 588
MEVERSE_CHAIN_MAINNET = 7518
MEVERSE_CHAIN_TESTNET = 4759
MIEXS_SMARTCHAIN = 761412
MILKOMEDA_A1_MAINNET = 2002
MILKOMEDA_A1_TESTNET = 200202
MILKOMEDA_C1_MAINNET = 2001
MILKOMEDA_C1_TESTNET = 200101
MILVINE = 9322253
MIND_SMART_CHAIN_MAINNET = 9996
MIND_SMART_CHAIN_TESTNET = 9977
MINTARA_MAINNET = 1080
MINTARA_TESTNET = 1079
MINTME_COM_COIN = 24734
MIX = 76
MIXIN_VIRTUAL_MACHINE = 73927
MIZANA = 8136
MIZANA_MIXNET = 81362
MIZANA_PRIVNET = 81363
MIZANA_TESTNET = 81361
MOAC_MAINNET = 1099
MOAC_TESTNET = 201
MODE = 34443
MODE_TESTNET = 919
MODULARIUM = 776877
MOLEREUM_NETWORK = 6022140761023
MOONBASE_ALPHA = 1287
MOONBEAM = 1284
MOONRIVER = 1285
MOONROCK = 1288
MOONROCK_OLD = 1286
MOONSAMA_NETWORK = 2199
MORDEN_TESTNET = 62
MORDOR_TESTNET = 63
MORPH_TESTNET = 2710
MOVO_SMART_CHAIN_MAINNET = 2049
MULTIVAC_MAINNET = 62621
MUMBAI = 80001
MUNODE_TESTNET = 956
MUSICOIN = 7762959
MUSTER_MAINNET = 4078
MXC_WANNSEE_ZKEVM_TESTNET = 5167003
MXC_ZKEVM_MAINNET = 18686
MYOWN_TESTNET = 9999
MYTHICAL_CHAIN = 201804
NAHMII_3_MAINNET = 4061
NAHMII_3_TESTNET = 4062
NAHMII_MAINNET = 5551
NAHMII_TESTNET = 5553
NATIV3_MAINNET = 399
NATIV3_TESTNET = 333333
NAUTILUS_MAINNET = 22222
NAUTILUS_PROTEUS_TESTNET = 88002
NAUTILUS_TRITION_CHAIN = 91002
NEBULA_TESTNET = 107
NEON_EVM_DEVNET = 245022926
NEON_EVM_MAINNET = 245022934
NEON_EVM_TESTNET = 245022940
NEPAL_BLOCKCHAIN_NETWORK = 977
NEUROCHAIN_MAINNET = 313
NEUROCHAIN_TESTNET = 303
NEUTRINOS_TESTNET = 197
NEWTON = 1012
NEWTON_TESTNET = 1007
NEXI_MAINNET = 4242
NEXI_V2_MAINNET = 4243
NORDEK_MAINNET = 81041
NOVA_NETWORK = 87
NTITY_MAINNET = 197710212030
NUMBERS_MAINNET = 10507
NUMBERS_TESTNET = 10508
NUME = 7100
OASISCHAIN_MAINNET = 26863
OASIS_EMERALD = 42262
OASIS_EMERALD_TESTNET = 42261
OASIS_SAPPHIRE = 23294
OASIS_SAPPHIRE_TESTNET = 23295
OASYS_MAINNET = 248
OCTASPACE = 800001
OEBLOCK_TESTNET = 156
OHO_MAINNET = 39815
OKEXCHAIN_TESTNET = 65
OKXCHAIN_MAINNET = 66
OLYMPIC = 0
OMAX_MAINNET = 311
OMCHAIN_MAINNET = 21816
OMNI_TESTNET = 165
OM_PLATFORM_MAINNET = 1246
ONELEDGER_MAINNET = 311752642
ONELEDGER_TESTNET_FRANKENSTEIN = 4216137055
ONTOLOGY_MAINNET = 58
ONTOLOGY_TESTNET = 5851
ONUS_CHAIN_MAINNET = 1975
ONUS_CHAIN_TESTNET = 1945
OONE_CHAIN_DEVNET = 333777
OONE_CHAIN_TESTNET = 333666
OORT_ASCRAEUS = 972
OORT_HUYGENS = 971
OORT_MAINNET = 970
OORT_MAINNETDEV = 9700
OPAL_TESTNET_BY_UNIQUE = 8882
OPBNB_MAINNET = 204
OPBNB_TESTNET = 5611
OPENCHAIN_MAINNET = 474142
OPENCHAIN_TESTNET = 776
OPENPIECE_MAINNET = 54
OPENPIECE_TESTNET = 141
OPENVESSEL = 7355310
OPSIDE_TESTNET = 23118
OPTIMISM = 10
OPTIMISM_BEDROCK_GOERLI_ALPHA_TESTNET = 28528
OPTIMISM_GOERLI_TESTNET = 420
OPTIMISM_KOVAN = 69
OPULENT_X_BETA = 41500
OP_SEPOLIA_TESTNET = 11155420
ORDERLY_MAINNET = 291
ORDERLY_SEPOLIA_TESTNET = 4460
ORIGINTRAIL_PARACHAIN = 2043
ORIGIN_TESTNET = 1170
ORLANDO_CHAIN = 3031
OYCHAIN_MAINNET = 126
OYCHAIN_TESTNET = 125
OZONE_CHAIN_MAINNET = 4000
OZONE_CHAIN_TESTNET = 401
P12_CHAIN = 20736
PALETTE_CHAIN_MAINNET = 1718
PALETTE_CHAIN_TESTNET = 17180
PALM = 11297108109
PALM_TESTNET = 11297108099
PANDOPROJECT_MAINNET = 3601
PANDOPROJECT_TESTNET = 3602
PARIBU_NET_MAINNET = 3400
PARIBU_NET_TESTNET = 3500
PARTYCHAIN = 1773
PATEX = 789
PATEX_SEPOLIA_TESTNET = 471100
PAWCHAIN_TESTNET = 542
PAXB_MAINNET = 6701
PDC_MAINNET = 666301171999
PEERPAY = 6502
PEGGLECOIN = 42069
PEGO_NETWORK = 20201022
PEPCHAIN_CHURCHILL = 13371337
PEPENETWORK_MAINNET = 9779
PEPERIUM_CHAIN_TESTNET = 4001
PEPE_CHAIN_MAINNET = 411
PERMISSION = 222
PGN_PUBLIC_GOODS_NETWORK = 424
PHALA_NETWORK = 2035
PHI_NETWORK_V1 = 4181
PHI_NETWORK_V2 = 144
PHOENIX_MAINNET = 13381
PIECE_TESTNET = 30067
PIRL = 3125659152
PIXIE_CHAIN_MAINNET = 6626
PIXIE_CHAIN_TESTNET = 666
PLANQ_MAINNET = 7070
PLATON_DEV_TESTNET2 = 2206132
PLATON_DEV_TESTNET_DEPRECATED = 2203181
PLATON_MAINNET = 210425
PLAYA3ULL_GAMES = 3011
PLIAN_MAINNET_MAIN = 2099156
PLIAN_MAINNET_SUBCHAIN_1 = 8007736
PLIAN_TESTNET_MAIN = 16658437
PLIAN_TESTNET_SUBCHAIN_1 = 10067275
PLINGA_MAINNET = 242
POA_NETWORK_CORE = 99
POA_NETWORK_SOKOL = 77
POCRNET = 2606
POLIS_MAINNET = 333999
POLIS_TESTNET = 333888
POLYGON = 137
POLYGON_SUPERNET_ARIANEE = 11891
POLYGON_ZKEVM = 1101
POLYGON_ZKEVM_TESTNET = 1442
POLYGON_ZKEVM_TESTNET_OLD = 1402
POLYGON_ZKEVM_TESTNET_PRE_AUDIT_UPGRADED = 1422
POLYJUICE_TESTNET = 71393
POLYSMARTCHAIN = 6999
POPCATEUM_MAINNET = 1213
PORTAL_FANTASY_CHAIN = 909
PORTAL_FANTASY_CHAIN_TEST = 808
POSICHAIN_DEVNET_SHARD_0 = 920000
POSICHAIN_DEVNET_SHARD_1 = 920001
POSICHAIN_MAINNET_SHARD_0 = 900000
POSICHAIN_TESTNET_SHARD_0 = 910000
PRIMUSCHAIN_MAINNET = 78
PROOF_OF_MEMES = 18159
PROTOJUMBO_TESTNET = 129
PROTON_TESTNET = 110
PROXY_NETWORK_TESTNET = 1031
PUBLICMINT_DEVNET = 2018
PUBLICMINT_MAINNET = 2020
PUBLICMINT_TESTNET = 2019
PULSECHAIN = 369
PULSECHAIN_TESTNET = 940
PULSECHAIN_TESTNET_V2B = 941
PULSECHAIN_TESTNET_V3 = 942
PULSECHAIN_TESTNET_V4 = 943
QEASYWEB3_TESTNET = 9528
QITMEER = 813
QITMEER_NETWORK_MIXNET = 8132
QITMEER_NETWORK_PRIVNET = 8133
QITMEER_NETWORK_TESTNET = 8131
QL1 = 766
QL1_TESTNET = 7668378
QUADRANS_BLOCKCHAIN = 10946
QUADRANS_BLOCKCHAIN_TESTNET = 10947
QUANTUM_CHAIN_MAINNET = 81720
QUANTUM_CHAIN_TESTNET = 12890
QUARIX = 8888888
QUARIX_TESTNET = 8888881
QUARKBLOCKCHAIN = 20181205
QUARKCHAIN_DEVNET_ROOT = 110000
QUARKCHAIN_DEVNET_SHARD_0 = 110001
QUARKCHAIN_DEVNET_SHARD_1 = 110002
QUARKCHAIN_DEVNET_SHARD_2 = 110003
QUARKCHAIN_DEVNET_SHARD_3 = 110004
QUARKCHAIN_DEVNET_SHARD_4 = 110005
QUARKCHAIN_DEVNET_SHARD_5 = 110006
QUARKCHAIN_DEVNET_SHARD_6 = 110007
QUARKCHAIN_DEVNET_SHARD_7 = 110008
QUARKCHAIN_MAINNET_ROOT = 100000
QUARKCHAIN_MAINNET_SHARD_0 = 100001
QUARKCHAIN_MAINNET_SHARD_1 = 100002
QUARKCHAIN_MAINNET_SHARD_2 = 100003
QUARKCHAIN_MAINNET_SHARD_3 = 100004
QUARKCHAIN_MAINNET_SHARD_4 = 100005
QUARKCHAIN_MAINNET_SHARD_5 = 100006
QUARKCHAIN_MAINNET_SHARD_6 = 100007
QUARKCHAIN_MAINNET_SHARD_7 = 100008
QUARTZ_BY_UNIQUE = 8881
QUOKKACOIN_MAINNET = 2077
Q_MAINNET = 35441
Q_TESTNET = 35443
RABA_NETWORK_MAINNET = 7484
RABBIT_ANALOG_TESTNET_CHAIN = 1807
RANGERS_PROTOCOL_MAINNET = 2025
RANGERS_PROTOCOL_TESTNET_ROBIN = 9527
RAPTORCHAIN = 1380996178
RAZOR_SKALE_CHAIN = 278611351
REALCHAIN_MAINNET = 121
REAPCHAIN_MAINNET = 221230
REAPCHAIN_TESTNET = 221231
REDBELLY_NETWORK_DEVNET = 152
REDBELLY_NETWORK_MAINNET = 151
REDBELLY_NETWORK_TESTNET = 153
REDBELLY_NETWORK_TGE = 154
REDECOIN = 1972
REDLIGHT_CHAIN_MAINNET = 2611
REDSTONE_HOLESKY_TESTNET = 17001
REI_CHAIN_MAINNET = 55555
REI_CHAIN_TESTNET = 55556
REI_NETWORK = 47805
RESINCOIN_MAINNET = 75000
RIKEZA_NETWORK_MAINNET = 1433
RIKEZA_NETWORK_TESTNET = 12715
RINIA_TESTNET = 917
RINIA_TESTNET_OLD = 9170
RINKEBY = 4
RISE_OF_THE_WARBOTS_TESTNET = 7777
ROLLUX_MAINNET = 570
ROLLUX_TESTNET = 57000
ROOTSTOCK_MAINNET = 30
ROOTSTOCK_TESTNET = 31
ROPSTEN = 3
RUBY_SMART_CHAIN_MAINNET = 1821
RUBY_SMART_CHAIN_TESTNET = 1912
RUPAYA = 499
SAAKURU_MAINNET = 7225878
SAAKURU_TESTNET = 247253
SAKURA = 1022
SANR_CHAIN = 11888
SAPPHIRE_BY_UNIQUE = 8883
SARDIS_MAINNET = 51712
SARDIS_TESTNET = 11612
SATOSHICHAIN_MAINNET = 12009
SATOSHICHAIN_TESTNET = 5758
SATOSHIE = 1985
SATOSHIE_TESTNET = 1986
SCALIND = 1911
SCALIND_TESTNET = 220
SCOLCOIN_MAINNET = 65450
SCOLCOIN_WEICHAIN_TESTNET = 6552
SCRIPT_TESTNET = 742
SCROLL = 534352
SCROLL_ALPHA_TESTNET = 534353
SCROLL_PRE_ALPHA_TESTNET = 534354
SCROLL_SEPOLIA_TESTNET = 534351
SECURECHAIN_MAINNET = 34
SECURECHAIN_TESTNET = 3434
SEELE_MAINNET = 186
SEI_DEVNET = 713715
SENJEPOWERS_MAINNET = 3699
SENJEPOWERS_TESTNET = 3698
SEPOLIA = 11155111
SEPOLIA_PGN_PUBLIC_GOODS_NETWORK = 58008
SETHEUM = 258
SHARDEUM_LIBERTY_1_X = 8080
SHARDEUM_LIBERTY_2_X = 8081
SHARDEUM_SPHINX_1_X = 8082
SHERPAX_MAINNET = 1506
SHERPAX_TESTNET = 1507
SHIBACHAIN = 27
SHIBARIUM = 109
SHIBARIUM_BETA = 719
SHIDEN = 336
SHIMMEREVM = 148
SHIMMEREVM_TESTNET = 1073
SHIMMEREVM_TESTNET_DEPRECATED = 1071
SHIMMEREVM_TESTNET_DEPRECATED_1072 = 1072
SHINARIUM_BETA = 534849
SHINARIUM_MAINNET = 214
SHRAPNEL_SUBNET = 2044
SHRAPNEL_TESTNET = 2038
SHYFT_MAINNET = 7341
SHYFT_TESTNET = 11437
SIBERIUM_NETWORK = 111111
SIBERIUM_TEST_NETWORK = 111000
SINGULARITY_ZERO_MAINNET = 12052
SINGULARITY_ZERO_TESTNET = 12051
SIRIUSNET = 67390
SIRIUSNET_V2 = 217
SIX_PROTOCOL = 98
SIX_PROTOCOL_TESTNET = 150
SJATSH = 10086
SKALE_CALYPSO_HUB = 1564830818
SKALE_CALYPSO_HUB_TESTNET = 344106930
SKALE_EUROPA_HUB = 2046399126
SKALE_EUROPA_HUB_TESTNET = 476158412
SKALE_NEBULA_HUB = 1482601649
SKALE_NEBULA_HUB_TESTNET = 503129905
SKALE_TITAN_HUB = 1350216234
SKALE_TITAN_HUB_TESTNET = 1517929550
SMARTMESH_MAINNET = 20180430
SMART_BITCOIN_CASH = 10000
SMART_BITCOIN_CASH_TESTNET = 10001
SMART_HOST_TEKNOLOJI_TESTNET = 1177
SMART_LAYER_NETWORK = 5169
SMART_LAYER_NETWORK_TESTNET = 82459
SMART_TRADE_NETWORKS = 18122
SOCIAL_SMART_CHAIN_MAINNET = 281121
SOMA_NETWORK_MAINNET = 2332
SOMA_NETWORK_TESTNET = 2323
SONGBIRD_CANARY_NETWORK = 19
SOTERONE_MAINNET = 68
SOTERONE_MAINNET_OLD = 218
SOVERUN_MAINNET = 10101010
SOVERUN_TESTNET = 101010
SPORTS_CHAIN_NETWORK = 1904
SPS = 13000
SPS_TESTNET = 14000
STAR_SOCIAL_TESTNET = 700
STEP_NETWORK = 1234
STEP_TESTNET = 12345
STORAGECHAIN_MAINNET = 8726
STORAGECHAIN_TESTNET = 8727
STRATOS = 2048
STRATOS_TESTNET = 2047
STREAMUX_BLOCKCHAIN = 8098
STRUCTX_MAINNET = 208
SUPER_SMART_CHAIN_MAINNET = 1970
SUPER_SMART_CHAIN_TESTNET = 1969
SUR_BLOCKCHAIN_NETWORK = 262
SUSONO = 13812
SWAPDEX = 230
SWISSDLT = 94
SWISSTRONIK_TESTNET = 1291
SX_NETWORK_MAINNET = 416
SX_NETWORK_TESTNET = 647
SYMPLEXIA_SMART_CHAIN = 1149
SYNAPSE_CHAIN_TESTNET = 444
SYSCOIN_MAINNET = 57
SYSCOIN_TANENBAUM_TESTNET = 5700
TAF_ECO_CHAIN_MAINNET = 224168
TAIKO_ALPHA_2_TESTNET = 167004
TAIKO_ELDFELL_L3 = 167006
TAIKO_GRIMSVOTN_L2 = 167005
TAIKO_JOLNIR_L2 = 167007
TAIKO_KATLA_L2 = 167008
TANGLE_TESTNET = 3799
TANSSI_EVM_CONTAINERCHAIN = 5678
TAO_NETWORK = 558
TARAXA_MAINNET = 841
TARAXA_TESTNET = 842
TAYCAN = 22023
TAYCAN_TESTNET = 2023
TBSI_MAINNET = 1707
TBSI_TESTNET = 1708
TBWG_CHAIN = 35
TCG_VERSE_MAINNET = 2400
TECHPAY_MAINNET = 2569
TECTUM_EMISSION_TOKEN = 1003
TELEPORT = 8000
TELEPORT_TESTNET = 8001
TELOS_EVM_MAINNET = 40
TELOS_EVM_TESTNET = 41
TENET = 1559
TENET_TESTNET = 155
TEN_TESTNET = 443
TESLAFUNDS = 1856
TESTNET_BEONE_CHAIN = 8181
THAICHAIN = 7
THAICHAIN_2_0_THAIFI = 17
THETA_AMBER_TESTNET = 364
THETA_MAINNET = 361
THETA_SAPPHIRE_TESTNET = 363
THETA_TESTNET = 365
THE_ROOT_NETWORK_MAINNET = 7668
THE_ROOT_NETWORK_PORCINI_TESTNET = 7672
THINKIUM_MAINNET_CHAIN_0 = 70000
THINKIUM_MAINNET_CHAIN_1 = 70001
THINKIUM_MAINNET_CHAIN_103 = 70103
THINKIUM_MAINNET_CHAIN_2 = 70002
THINKIUM_TESTNET_CHAIN_0 = 60000
THINKIUM_TESTNET_CHAIN_1 = 60001
THINKIUM_TESTNET_CHAIN_103 = 60103
THINKIUM_TESTNET_CHAIN_2 = 60002
THUNDERCORE_MAINNET = 108
THUNDERCORE_TESTNET = 18
TILTYARD_SUBNET = 1127469
TIPBOXCOIN_MAINNET = 404040
TIPBOXCOIN_TESTNET = 4141
TITAN = 55004
TLCHAIN_NETWORK_MAINNET = 5177
TMY_CHAIN = 8768
TOKI_NETWORK = 8654
TOKI_TESTNET = 8655
TOMB_CHAIN_MAINNET = 6969
TOMOCHAIN = 88
TOMOCHAIN_TESTNET = 89
TOOL_GLOBAL_MAINNET = 8723
TOOL_GLOBAL_TESTNET = 8724
TOP_MAINNET = 989
TOP_MAINNET_EVM = 980
TORONET_MAINNET = 77777
TORONET_TESTNET = 54321
TORUS_MAINNET = 8192
TORUS_TESTNET = 8194
TREASURENET_MAINNET_ALPHA = 5002
TREASURENET_TESTNET = 5005
TRES_MAINNET = 6066
TRES_TESTNET = 6065
TRITANIUM_TESTNET = 5353
TRUST_EVM_TESTNET = 15555
TTCOIN_SMART_CHAIN_MAINNET = 330844
TURKEY_DEMO_DEV = 1731313
T_EKTA = 1004
T_E_A_M_BLOCKCHAIN = 88888888
U2U_SOLARIS_MAINNET = 39
UBIQ = 8
UBIQ_NETWORK_TESTNET = 9
UB_SMART_CHAIN = 99999
UB_SMART_CHAIN_TESTNET = 99998
ULTRA_PRO_MAINNET = 473861
ULTRON_MAINNET = 1231
ULTRON_TESTNET = 1230
UNICORN_ULTRA_NEBULAS_TESTNET = 2484
UNIQUE = 8880
UNKNOWN = -1
UNREAL_TESTNET = 18231
UPTICK_MAINNET = 117
UPTN = 6119
UPTN_TESTNET = 6118
UZMI_NETWORK_MAINNET = 5315
VALORBIT = 38
VCHAIN_MAINNET = 2223
VECHAIN = 100009
VECHAIN_TESTNET = 100010
VELA1_CHAIN_MAINNET = 555
VELAS_EVM_MAINNET = 106
VELO_LABS_MAINNET = 56789
VENIDIUM_MAINNET = 4919
VENIDIUM_TESTNET = 4918
VENTION_SMART_CHAIN_MAINNET = 77612
VENTION_SMART_CHAIN_TESTNET = 741
VEX_EVM_TESTNET = 5522
VINE_TESTNET = 601
VINUCHAIN_NETWORK = 207
VINUCHAIN_TESTNET = 206
VISION_MAINNET = 888888
VISION_VPIONEER_TEST_CHAIN = 666666
VULTURE_EVM_BETA = 3102
VYVO_SMART_CHAIN = 8889
W3GAMEZ_HOLESKY_TESTNET = 32001
WAGMI = 11111
WANCHAIN = 888
WANCHAIN_TESTNET = 999
WEB3GAMES_DEVNET = 105
WEB3GAMES_TESTNET = 102
WEB3Q_GALILEO = 3334
WEB3Q_MAINNET = 333
WEB3Q_TESTNET = 3333
WEBCHAIN = 24484
WEGOCHAIN_RUBIDIUM_MAINNET = 5869
WEMIX3_0_MAINNET = 1111
WEMIX3_0_TESTNET = 1112
WHITEBIT_NETWORK = 1875
WHITEBIT_NETWORK_TESTNET = 2625
WIRESHAPE_FLORIPA_TESTNET = 49049
WOOPCHAIN_MAINNET = 139
WORLDLAND_MAINNET = 103
WORLDLAND_TESTNET = 10395
WORLDS_CALDERA = 4281033
WORLD_TRADE_TECHNICAL_CHAIN_MAINNET = 1202
WYZTH_TESTNET = 309
X1_DEVNET = 202212
X1_FASTNET = 4003
X1_MAINNET = 196
X1_NETWORK = 204005
X1_TESTNET = 195
XANACHAIN = 8888
XCAP = 9322252
XDC_APOTHEM_NETWORK = 51
XDC_NETWORK = 50
XEROM = 1313500
XODEX = 2415
XPLA_MAINNET = 37
XPLA_TESTNET = 3701
XT_SMART_CHAIN_MAINNET = 520
YIDARK_CHAIN_MAINNET = 927
YOOLDO_VERSE_MAINNET = 50005
YOOLDO_VERSE_TESTNET = 50006
YUANCHAIN_MAINNET = 3999
ZAFIRIUM_MAINNET = 1369
ZCORE_TESTNET = 3331
ZEETH_CHAIN = 427
ZEETH_CHAIN_DEV = 859
ZENIQ = 383414847825
ZENITH_MAINNET = 79
ZETACHAIN_ATHENS_3_TESTNET = 7001
ZETACHAIN_MAINNET = 7000
ZHEJIANG = 1337803
ZILLIQA_2_EVM_DEVNET = 33469
ZILLIQA_EVM = 32769
ZILLIQA_EVM_DEVNET = 33385
ZILLIQA_EVM_ISOLATED_SERVER = 32990
ZILLIQA_EVM_TESTNET = 33101
ZKATANA = 1261120
ZKFAIR_MAINNET = 42766
ZKFAIR_TESTNET = 43851
ZKSYNC_ERA_GOERLI_TESTNET_DEPRECATED = 280
ZKSYNC_MAINNET = 324
ZKSYNC_SEPOLIA_TESTNET = 300
ZORA = 7777777
ZORA_SEPOLIA_TESTNET = 999999999
ZYX_MAINNET = 55
exception gnosis.eth.EthereumNetworkNotSupported

Bases: Exception

class gnosis.eth.EthereumTxSent(tx_hash, tx, contract_address)

Bases: NamedTuple

contract_address: ChecksumAddress | None

Alias for field number 2

tx: TxParams

Alias for field number 1

tx_hash: bytes

Alias for field number 0

exception gnosis.eth.FromAddressNotFound

Bases: EthereumClientException

exception gnosis.eth.GasLimitExceeded

Bases: EthereumClientException

exception gnosis.eth.InsufficientFunds

Bases: EthereumClientException

exception gnosis.eth.InvalidERC20Info

Bases: EthereumClientException

exception gnosis.eth.InvalidERC721Info

Bases: EthereumClientException

exception gnosis.eth.InvalidNonce

Bases: EthereumClientException

exception gnosis.eth.NonceTooHigh

Bases: InvalidNonce

exception gnosis.eth.NonceTooLow

Bases: InvalidNonce

exception gnosis.eth.ReplacementTransactionUnderpriced

Bases: EthereumClientException

exception gnosis.eth.SenderAccountNotFoundInNode

Bases: EthereumClientException

exception gnosis.eth.TransactionAlreadyImported

Bases: EthereumClientException

exception gnosis.eth.TransactionQueueLimitReached

Bases: EthereumClientException

class gnosis.eth.TxSpeed(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: Enum

FAST = 4
FASTEST = 6
NORMAL = 3
SLOW = 2
SLOWEST = 0
VERY_FAST = 5
VERY_SLOW = 1
exception gnosis.eth.UnknownAccount

Bases: EthereumClientException