safe_eth.eth.contracts package

Subpackages

Submodules

safe_eth.eth.contracts.contract_base module

class safe_eth.eth.contracts.contract_base.ContractBase(address: ChecksumAddress, ethereum_client: EthereumClient, *args, **kwargs)

Bases: object

property contract: Contract
abstractmethod get_contract_fn() Callable[[Web3, ChecksumAddress | None], Contract]
Returns:

Contract function to get the proper contract

Module contents

Safe Addresses. Should be the same for every chain except for the ones with chainId protection. Check: https://github.com/safe-global/safe-deployments/tree/main/src/assets

Safe V1.5.0: 0xFf51A5898e281Db6DfC7855790607438dF2ca44b Safe V1.4.1: 0x41675C099F32341bf84BFc5382aF534df5C7461a GnosisSafe V1.3.0: 0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552 GnosisSafe V1.1.1: 0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F GnosisSafe V1.1.0: 0xaE32496491b53841efb51829d6f886387708F99B GnosisSafe V1.0.0: 0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A

Factories SafeProxyFactory V1.5.0: 0x14F2982D601c9458F93bd70B218933A6f8165e7b SafeProxyFactory V1.4.1: 0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67 ProxyFactory V1.3.0: 0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2 ProxyFactory V1.1.0: 0x50e55Af101C777bA7A1d560a774A82eF002ced9F ProxyFactory V1.0.0: 0x12302fE9c02ff50939BaAaaf415fc226C078613C

FallbackHandler CompatibilityFallBackHandler V1.5.0: 0x3EfCBb83A4A7AfcB4F68D501E2c2203a38be77f4 CompatibilityFallBackHandler V1.4.1: 0xfd0732Dc9E303f09fCEf3a7388Ad10A83459Ec99 CompatibilityFallBackHandler V1.3.0: 0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4 ExtensibleFallbackHandler V1.5.0: 0x85a8ca358D388530ad0fB95D0cb89Dd44Fc242c3

Libraries CreateAndAddModules: 0x1a56aE690ab0818aF5cA349b7D21f1d7e76a3d36 MultiSend V1.5.0: 0x218543288004CD07832472D464648173c77D7eB7 MultiSend V1.4.1: 0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526 MultiSendCallOnly V1.5.0: 0xA83c336B20401Af773B6219BA5027174338D1836 MultiSendCallOnly V1.4.1: 0x9641d764fc13c8B624c04430C7356C1C7C8102e2 SimulateTxAccessor: 0x3d4BA2E0884aa488718476ca2FB8Efc291A46199 SignMessageLib: 0xd53cd0aB83D845Ac265BE939c57F53AD838012c9 SafeToL2Migration: 0xfF83F6335d8930cBad1c0D439A841f01888D9f69

safe_eth.eth.contracts.generate_contract_fn(contract: Dict[str, Any]) Callable[[Web3, ChecksumAddress | None], Type[Contract] | Contract]

Dynamically generate a function to build a Web3 Contract for the provided contract ABI

Parameters:

contract

Returns:

function that will return a Web3 Contract from an ABI

safe_eth.eth.contracts.get_compatibility_fallback_handler_V1_3_0_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_compatibility_fallback_handler_V1_4_1_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_compatibility_fallback_handler_V1_5_0_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_compatibility_fallback_handler_contract(w3: Web3 | AsyncWeb3, address: ChecksumAddress | None = None) Contract
Parameters:
  • w3

  • address – Usually a Safe address

Returns:

Latest available Compatibility Fallback handler contract

safe_eth.eth.contracts.get_cpk_factory_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_delegate_constructor_proxy_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_erc1155_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_erc20_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_erc721_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_example_erc20_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_extensible_fallback_handler_V1_5_0_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_extensible_fallback_handler_contract(w3: Web3, address: ChecksumAddress | None = None) Contract
Parameters:
  • w3

  • address – Usually a Safe address

Returns:

Latest available Extensible Fallback handler contract

safe_eth.eth.contracts.get_kyber_network_proxy_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_multi_send_V1_4_1_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_multi_send_V1_5_0_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_multi_send_call_only_V1_4_1_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_multi_send_call_only_V1_5_0_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_multi_send_call_only_contract(w3: Web3, address: ChecksumAddress | None = None) Contract
safe_eth.eth.contracts.get_multi_send_contract(w3: Web3, address: ChecksumAddress | None = None) Contract
safe_eth.eth.contracts.get_multicall_v3_contract(w3: Web3, address: ChecksumAddress | None = None)
safe_eth.eth.contracts.get_paying_proxy_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_paying_proxy_deployed_bytecode() bytes
safe_eth.eth.contracts.get_proxy_1_0_0_deployed_bytecode() bytes
safe_eth.eth.contracts.get_proxy_1_1_1_deployed_bytecode() bytes
safe_eth.eth.contracts.get_proxy_1_1_1_mainnet_deployed_bytecode() bytes

Somehow it’s different from the generated version compiling the contracts

safe_eth.eth.contracts.get_proxy_1_3_0_deployed_bytecode() bytes
safe_eth.eth.contracts.get_proxy_1_4_1_deployed_bytecode() bytes
safe_eth.eth.contracts.get_proxy_1_5_0_deployed_bytecode() bytes
safe_eth.eth.contracts.get_proxy_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_proxy_factory_V1_0_0_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_proxy_factory_V1_1_1_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_proxy_factory_V1_3_0_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_proxy_factory_V1_4_1_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_proxy_factory_V1_5_0_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_proxy_factory_contract(w3: Web3, address: ChecksumAddress | None = None) Contract
Parameters:
  • w3

  • address

Returns:

Latest available Safe Proxy Factory

safe_eth.eth.contracts.get_safe_V0_0_1_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_safe_V1_0_0_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_safe_V1_1_1_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_safe_V1_3_0_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_safe_V1_4_1_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_safe_V1_5_0_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_safe_contract(w3: Web3, address: ChecksumAddress | None = None) Contract
Parameters:
  • w3

  • address

Returns:

Latest available Safe Contract

safe_eth.eth.contracts.get_safe_contract_by_version(version: str, w3: Web3, address: ChecksumAddress | None = None) Contract

Get Safe contract instance for a specific version.

Parameters:
  • version – Version string (e.g., “1.5.0”, “1.4.1”)

  • w3 – Web3 instance

  • address – Optional contract address

Returns:

Safe contract instance

Raises:

ValueError – If version is not supported

safe_eth.eth.contracts.get_safe_to_l2_migration_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_sign_message_lib_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_simulate_tx_accessor_V1_4_1_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_simulate_tx_accessor_V1_5_0_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_uniswap_exchange_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_uniswap_factory_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_uniswap_v2_factory_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_uniswap_v2_pair_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.get_uniswap_v2_router_contract(w3: Web3, address: ChecksumAddress | None = None) Type[Contract] | Contract
safe_eth.eth.contracts.load_contract_interface(file_name: str) Dict[str, Any]
Parameters:

file_name

Returns:

Get parsed JSON to ABI with the relative filename to this file path