• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

safe-global / safe-eth-py / 10527345804

23 Aug 2024 02:20PM UTC coverage: 93.892% (-0.01%) from 93.903%
10527345804

push

github

web-flow
Add addresses 1.4.1 for chain BEVM_TESTNET (#1297)

* Add new master copy address 0x41675C099F32341bf84BFc5382aF534df5C7461a

* Add new master copy address 0x29fcB43b46531BcA003ddC8FCB67FFE91900C762

* Add new proxy address 0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67

* Apply linter fixes

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

8670 of 9234 relevant lines covered (93.89%)

3.76 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

90.91
/gnosis/eth/tests/clients/test_etherscan_client.py
1
import os
4✔
2

3
from django.test import TestCase
4✔
4

5
import pytest
4✔
6

7
from ... import EthereumNetwork
4✔
8
from ...clients import EtherscanClient, EtherscanRateLimitError
4✔
9
from .mocks import etherscan_multisend_abi, sourcify_safe_metadata
4✔
10

11

12
class TestEtherscanClient(TestCase):
4✔
13
    @classmethod
4✔
14
    def get_etherscan_api(cls, network: EthereumNetwork):
4✔
15
        etherscan_api_key_variable_name = "ETHERSCAN_API_KEY"
4✔
16
        etherscan_api_key = os.environ.get(etherscan_api_key_variable_name)
4✔
17
        if not etherscan_api_key:
4✔
18
            pytest.skip(f"{etherscan_api_key_variable_name} needs to be defined")
×
19

20
        return EtherscanClient(network, api_key=etherscan_api_key)
4✔
21

22
    def test_etherscan_get_abi(self):
4✔
23
        try:
4✔
24
            etherscan_api = self.get_etherscan_api(EthereumNetwork.MAINNET)
4✔
25
            safe_master_copy_abi = sourcify_safe_metadata["output"]["abi"]
4✔
26
            safe_master_copy_address = "0x6851D6fDFAfD08c0295C392436245E5bc78B0185"
4✔
27
            self.assertEqual(
4✔
28
                etherscan_api.get_contract_abi(safe_master_copy_address),
29
                safe_master_copy_abi,
30
            )
31

32
            contract_metadata = etherscan_api.get_contract_metadata(
4✔
33
                safe_master_copy_address
34
            )
35
            self.assertEqual(contract_metadata.name, "GnosisSafe")
4✔
36
            self.assertEqual(contract_metadata.abi, safe_master_copy_abi)
4✔
37

38
            random_address = "0xaE32496491b53841efb51829d6f886387708F99a"
4✔
39
            self.assertIsNone(etherscan_api.get_contract_abi(random_address))
4✔
40
            self.assertIsNone(etherscan_api.get_contract_metadata(random_address))
4✔
41
        except EtherscanRateLimitError:
×
42
            self.skipTest("Etherscan rate limit reached")
×
43

44
    @pytest.mark.xfail(reason="Test might fail due to third-party service issues")
4✔
45
    def test_etherscan_get_abi_zksync(self):
4✔
46
        multisend_address = "0x0dFcccB95225ffB03c6FBB2559B530C2B7C8A912"
4✔
47
        etherscan_api = self.get_etherscan_api(EthereumNetwork(324))
4✔
48
        self.assertEqual(
4✔
49
            etherscan_api.get_contract_abi(multisend_address),
50
            etherscan_multisend_abi,
51
        )
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc