From 7b00f27f6d0cbc7483c964b4932162d501d9c58c Mon Sep 17 00:00:00 2001 From: Sahma61 Date: Tue, 31 Aug 2021 01:08:37 +0530 Subject: [PATCH 1/4] added a is_hex_integer() function in validate.py and added extra condition to convert the hex_integer into a string hex_address --- web3/_utils/validation.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/web3/_utils/validation.py b/web3/_utils/validation.py index 65fcb9f1c0..f8d8719f90 100644 --- a/web3/_utils/validation.py +++ b/web3/_utils/validation.py @@ -159,22 +159,30 @@ def is_not_address_string(value: Any) -> bool: return (is_string(value) and not is_bytes(value) and not is_checksum_address(value) and not is_hex_address(value)) +def is_hex_integer(value: Any) -> bool: + return (is_integer(value) and not is_string(value) and not is_bytes(value) and not + is_checksum_address(value) and not is_hex_address(value)) + def validate_address(value: Any) -> None: """ Helper function for validating an address """ + if is_hex_integer(value): + value = str(value) + if is_not_address_string(value): if not is_valid_ens_name(value): raise InvalidAddress(f"ENS name: '{value}' is invalid.") return + if is_bytes(value): if not is_binary_address(value): raise InvalidAddress("Address must be 20 bytes when input type is bytes", value) return - if not isinstance(value, str): - raise TypeError('Address {} must be provided as a string'.format(value)) + if not (isinstance(value, str) or isinstance(value, int)): + raise TypeError('Address {} must be provided as a string or a hex'.format(value)) if not is_hex_address(value): raise InvalidAddress("Address must be 20 bytes, as a hex string with a 0x prefix", value) if not is_checksum_address(value): From 9d229216232f5e2a0fa31be383073546cd5419b7 Mon Sep 17 00:00:00 2001 From: Sahma anwar Date: Tue, 31 Aug 2021 02:05:30 +0530 Subject: [PATCH 2/4] corrected a typo error in validation.py --- web3/_utils/validation.py | 1 + 1 file changed, 1 insertion(+) diff --git a/web3/_utils/validation.py b/web3/_utils/validation.py index f8d8719f90..d1c12c222e 100644 --- a/web3/_utils/validation.py +++ b/web3/_utils/validation.py @@ -159,6 +159,7 @@ def is_not_address_string(value: Any) -> bool: return (is_string(value) and not is_bytes(value) and not is_checksum_address(value) and not is_hex_address(value)) + def is_hex_integer(value: Any) -> bool: return (is_integer(value) and not is_string(value) and not is_bytes(value) and not is_checksum_address(value) and not is_hex_address(value)) From 7f91b886d4950f39c674404deaf2772ef01d1c79 Mon Sep 17 00:00:00 2001 From: Sahma anwar Date: Tue, 31 Aug 2021 02:13:23 +0530 Subject: [PATCH 3/4] removed isinstance(value, integer) in validation.py --- web3/_utils/validation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web3/_utils/validation.py b/web3/_utils/validation.py index d1c12c222e..ebfc2f94e3 100644 --- a/web3/_utils/validation.py +++ b/web3/_utils/validation.py @@ -182,7 +182,7 @@ def validate_address(value: Any) -> None: raise InvalidAddress("Address must be 20 bytes when input type is bytes", value) return - if not (isinstance(value, str) or isinstance(value, int)): + if not isinstance(value, str): raise TypeError('Address {} must be provided as a string or a hex'.format(value)) if not is_hex_address(value): raise InvalidAddress("Address must be 20 bytes, as a hex string with a 0x prefix", value) From 34ff0c0295dfb133bed302917f0ad9bd82dcd0b5 Mon Sep 17 00:00:00 2001 From: Sahma anwar Date: Sun, 5 Sep 2021 00:50:21 +0530 Subject: [PATCH 4/4] changed geth version --- tests/integration/geth-1.10.6-fixture.zip | Bin 0 -> 36870 bytes tests/integration/go_ethereum/conftest.py | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 tests/integration/geth-1.10.6-fixture.zip diff --git a/tests/integration/geth-1.10.6-fixture.zip b/tests/integration/geth-1.10.6-fixture.zip new file mode 100644 index 0000000000000000000000000000000000000000..c2f738bc38727ff8f3eec6960946f964c3c23a51 GIT binary patch literal 36870 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