diff --git a/gnosis/eth/clients/blockscout_client.py b/gnosis/eth/clients/blockscout_client.py index f62a7845e..141c5c97f 100644 --- a/gnosis/eth/clients/blockscout_client.py +++ b/gnosis/eth/clients/blockscout_client.py @@ -44,6 +44,7 @@ class BlockscoutClient: EthereumNetwork.ACALA_NETWORK: "https://blockscout.acala.network/graphiql", EthereumNetwork.KARURA_NETWORK_TESTNET: "https://blockscout.karura.network/graphiql", EthereumNetwork.ASTAR: "https://blockscout.com/astar/graphiql", + EthereumNetwork.SHIDEN: "https://blockscout.com/shiden/graphiql", EthereumNetwork.EVMOS: "https://evm.evmos.org/graphiql", EthereumNetwork.EVMOS_TESTNET: "https://evm.evmos.dev/graphiql", EthereumNetwork.KCC_MAINNET: "https://scan.kcc.io/graphiql", @@ -54,11 +55,29 @@ class BlockscoutClient: EthereumNetwork.CROSSBELL: "https://scan.crossbell.io/graphiql", EthereumNetwork.ETHEREUM_CLASSIC_MAINNET: "https://blockscout.com/etc/mainnet/graphiql", EthereumNetwork.ETHEREUM_CLASSIC_TESTNET_MORDOR: "https://blockscout.com/etc/mordor/graphiql", - EthereumNetwork.SCROLL_SEPOLIA_TESTNET: "https://sepolia-blockscout.scroll.io/", + EthereumNetwork.SCROLL_SEPOLIA_TESTNET: "https://sepolia-blockscout.scroll.io/graphiql", EthereumNetwork.MANTLE: "https://explorer.mantle.xyz/graphiql", EthereumNetwork.MANTLE_TESTNET: "https://explorer.testnet.mantle.xyz/graphiql", EthereumNetwork.JAPAN_OPEN_CHAIN_MAINNET: "https://mainnet.japanopenchain.org/graphiql", EthereumNetwork.JAPAN_OPEN_CHAIN_TESTNET: "https://explorer.testnet.japanopenchain.org/graphiql", + EthereumNetwork.ZETACHAIN_ATHENS_TESTNET: "https://zetachain-athens-3.blockscout.com/graphiql", + EthereumNetwork.SCROLL: "https://blockscout.scroll.io/graphiql", + EthereumNetwork.RSK_MAINNET: "https://rootstock.blockscout.com/graphiql", + EthereumNetwork.RSK_TESTNET: "https://rootstock-testnet.blockscout.com/graphiql", + EthereumNetwork.LINEA: "https://explorer.linea.build/graphiql", + EthereumNetwork.LINEA_TESTNET: "https://explorer.goerli.linea.build/graphiql", + EthereumNetwork.NEON_EVM_MAINNET: "https://neon.blockscout.com/graphiql", + EthereumNetwork.NEON_EVM_DEVNET: "https://neon-devnet.blockscout.com/graphiql", + EthereumNetwork.OASIS_SAPPHIRE: "https://explorer.sapphire.oasis.io/graphiql", + EthereumNetwork.OASIS_SAPPHIRE_TESTNET: "https://testnet.explorer.sapphire.oasis.dev/graphiql", + EthereumNetwork.CASCADIA_TESTNET: "https://explorer.cascadia.foundation/graphiql", + EthereumNetwork.TENET: "https://tenetscan.io/graphiql", + EthereumNetwork.TENET_TESTNET: "https://testnet.tenetscan.io/graphiql", + EthereumNetwork.VELAS_EVM_MAINNET: "https://evmexplorer.velas.com/graphiql", + EthereumNetwork.CRONOS_MAINNET_BETA: "https://cronos.org/explorer/graphiql", + EthereumNetwork.CRONOS_TESTNET: "https://cronos.org/explorer/testnet3/graphiql", + EthereumNetwork.THUNDERCORE_MAINNET: "https://explorer-mainnet.thundercore.com/graphiql", + EthereumNetwork.THUNDERCORE_TESTNET: "https://explorer-testnet.thundercore.com/graphiql", } def __init__(self, network: EthereumNetwork): diff --git a/gnosis/eth/clients/etherscan_client.py b/gnosis/eth/clients/etherscan_client.py index 927390607..aac0f464a 100644 --- a/gnosis/eth/clients/etherscan_client.py +++ b/gnosis/eth/clients/etherscan_client.py @@ -56,6 +56,8 @@ class EtherscanClient: EthereumNetwork.MANTLE_TESTNET: "https://explorer.testnet.mantle.xyz", EthereumNetwork.JAPAN_OPEN_CHAIN_MAINNET: "https://mainnet.japanopenchain.org", EthereumNetwork.JAPAN_OPEN_CHAIN_TESTNET: "https://explorer.testnet.japanopenchain.org", + EthereumNetwork.SCROLL_SEPOLIA_TESTNET: "https://sepolia.scrollscan.dev", + EthereumNetwork.SCROLL: "https://scrollscan.com", } NETWORK_WITH_API_URL = { @@ -92,6 +94,8 @@ class EtherscanClient: EthereumNetwork.MANTLE_TESTNET: "https://explorer.testnet.mantle.xyz", EthereumNetwork.JAPAN_OPEN_CHAIN_MAINNET: "https://mainnet.japanopenchain.org/api", EthereumNetwork.JAPAN_OPEN_CHAIN_TESTNET: "https://explorer.testnet.japanopenchain.org/api", + EthereumNetwork.SCROLL_SEPOLIA_TESTNET: "https://api-sepolia.scrollscan.dev", + EthereumNetwork.SCROLL: "https://api.scrollscan.com", } HTTP_HEADERS = { "User-Agent": "curl/7.77.0", diff --git a/gnosis/safe/addresses.py b/gnosis/safe/addresses.py index 404efcd33..1bc8520cb 100644 --- a/gnosis/safe/addresses.py +++ b/gnosis/safe/addresses.py @@ -603,6 +603,14 @@ ("0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", 1315570, "1.3.0+L2"), ("0x69f4D1788e39c87893C980c06EdF4b7f686e2938", 1315572, "1.3.0"), ], + EthereumNetwork.ZETACHAIN_ATHENS_TESTNET: [ + ("0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", 1962980, "1.3.0+L2"), + ("0x69f4D1788e39c87893C980c06EdF4b7f686e2938", 1962981, "1.3.0"), + ], + EthereumNetwork.SCROLL: [ + ("0x3E5c63644E683549055b9Be8653de26E0B4CD36E", 187, "1.3.0+L2"), + ("0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", 189, "1.3.0"), + ], } PROXY_FACTORIES: Dict[EthereumNetwork, List[Tuple[str, int]]] = { @@ -1004,4 +1012,10 @@ EthereumNetwork.JAPAN_OPEN_CHAIN_TESTNET: [ ("0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", 1315556), # v1.3.0 ], + EthereumNetwork.ZETACHAIN_ATHENS_TESTNET: [ + ("0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", 1962972), # v1.3.0 + ], + EthereumNetwork.SCROLL: [ + ("0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", 179), # v1.3.0 + ], } diff --git a/gnosis/safe/api/transaction_service_api.py b/gnosis/safe/api/transaction_service_api.py index a38f243fc..15d12bcff 100644 --- a/gnosis/safe/api/transaction_service_api.py +++ b/gnosis/safe/api/transaction_service_api.py @@ -20,8 +20,8 @@ class TransactionServiceApi(SafeBaseAPI): EthereumNetwork.ARBITRUM_ONE: "https://safe-transaction-arbitrum.safe.global", EthereumNetwork.AURORA_MAINNET: "https://safe-transaction-aurora.safe.global", EthereumNetwork.AVALANCHE_C_CHAIN: "https://safe-transaction-avalanche.safe.global", - EthereumNetwork.BASE_MAINNET: "https://safe-transaction-base.safe.global", EthereumNetwork.BASE_GOERLI_TESTNET: "https://safe-transaction-base-testnet.safe.global", + EthereumNetwork.BASE_MAINNET: "https://safe-transaction-base.safe.global", EthereumNetwork.BINANCE_SMART_CHAIN_MAINNET: "https://safe-transaction-bsc.safe.global", EthereumNetwork.CELO_MAINNET: "https://safe-transaction-celo.safe.global", EthereumNetwork.GNOSIS: "https://safe-transaction-gnosis-chain.safe.global", @@ -29,8 +29,9 @@ class TransactionServiceApi(SafeBaseAPI): EthereumNetwork.MAINNET: "https://safe-transaction-mainnet.safe.global", EthereumNetwork.OPTIMISM: "https://safe-transaction-optimism.safe.global", EthereumNetwork.POLYGON: "https://safe-transaction-polygon.safe.global", - EthereumNetwork.ZKSYNC_V2: "https://safe-transaction-zksync.safe.global", EthereumNetwork.POLYGON_ZKEVM: "https://safe-transaction-zkevm.safe.global", + EthereumNetwork.SEPOLIA: "https://safe-transaction-sepolia.safe.global", + EthereumNetwork.ZKSYNC_V2: "https://safe-transaction-zksync.safe.global", } @classmethod diff --git a/requirements-test.txt b/requirements-test.txt index 87435a840..711e10a63 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -1,8 +1,8 @@ -r requirements.txt coverage==7.3.2 -faker==19.13.0 +faker==20.0.0 pytest==7.4.3 -pytest-django==4.6.0 +pytest-django==4.7.0 pytest-env==1.1.1 pytest-rerunfailures==12.0 pytest-sugar==0.9.7 diff --git a/requirements.txt b/requirements.txt index a4300f971..15305818e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,4 +8,4 @@ py-evm==0.8.0b1 pysha3>=1.0.0,<2.0.0; python_version<"3.9" requests==2.31.0 safe-pysha3>=1.0.0; python_version>="3.9" -web3==6.11.2 +web3==6.11.3