From 42d00f540c5b64d14479372c0fbab747abc91bb6 Mon Sep 17 00:00:00 2001 From: Arondondon Date: Wed, 4 Jun 2025 13:43:47 +0300 Subject: [PATCH] fixed bugs with web3 and dependencies --- requirements.txt | 3 ++- snet/sdk/account.py | 2 +- snet/sdk/mpe/payment_channel.py | 2 +- snet/sdk/mpe/payment_channel_provider.py | 5 +++-- snet/sdk/service_client.py | 4 ++-- tests/unit_tests/test_service_client.py | 4 ++-- 6 files changed, 11 insertions(+), 9 deletions(-) diff --git a/requirements.txt b/requirements.txt index e0d7f13..91fc6b0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,9 +3,10 @@ grpcio-tools>=1.71.0 wheel>=0.45.0 rlp>=4.1.0 web3==7.* -ipfshttpclient>=0.7.0 +ipfshttpclient==0.4.13 rfc3986>=2.0.0 base58>=2.1.1 grpcio-health-checking>=1.71.0 snet-contracts==1.0.1 lighthouseweb3>=0.1.4 +pymultihash==0.* \ No newline at end of file diff --git a/snet/sdk/account.py b/snet/sdk/account.py index fa88ceb..b88a96f 100644 --- a/snet/sdk/account.py +++ b/snet/sdk/account.py @@ -84,7 +84,7 @@ def _send_signed_transaction(self, contract_fn, *args): signed_txn = self.web3.eth.account.sign_transaction( transaction, private_key=self.private_key) return self.web3.to_hex( - self.web3.eth.send_raw_transaction(signed_txn.rawTransaction) + self.web3.eth.send_raw_transaction(signed_txn.raw_transaction) ) def send_transaction(self, contract_fn, *args): diff --git a/snet/sdk/mpe/payment_channel.py b/snet/sdk/mpe/payment_channel.py index ead629e..0af915a 100644 --- a/snet/sdk/mpe/payment_channel.py +++ b/snet/sdk/mpe/payment_channel.py @@ -52,7 +52,7 @@ def _get_current_channel_state(self): self.channel_id,current_block_number ] ) - signature = self.web3.eth.account.signHash(defunct_hash_message(message), self.account.signer_private_key).signature + signature = self.web3.eth.account._sign_hash(defunct_hash_message(message), self.account.signer_private_key).signature with add_to_path(str(RESOURCES_PATH.joinpath("proto"))): state_service_pb2 = importlib.import_module("state_service_pb2") request = state_service_pb2.ChannelStateRequest( diff --git a/snet/sdk/mpe/payment_channel_provider.py b/snet/sdk/mpe/payment_channel_provider.py index 1948abd..1cefcbe 100644 --- a/snet/sdk/mpe/payment_channel_provider.py +++ b/snet/sdk/mpe/payment_channel_provider.py @@ -18,9 +18,10 @@ def __init__(self, w3, mpe_contract): self.mpe_contract = mpe_contract self.event_topics = [self.web3.keccak( - text="ChannelOpen(uint256,uint256,address,address,address,bytes32,uint256,uint256)").hex()] + text="ChannelOpen(uint256,uint256,address,address,address,bytes32,uint256,uint256)")] self.deployment_block = get_contract_deployment_block(self.web3, "MultiPartyEscrow") self.mpe_address = mpe_contract.contract.address + print(self.mpe_address) self.channels_file = CHANNELS_DIR.joinpath(str(self.mpe_address), "channels.pickle") def update_cache(self): @@ -78,7 +79,7 @@ def _get_all_channels_from_blockchain_logs_to_dicts(self, starting_block_number, "topics": self.event_topics}) from_block = to_block + 1 - event_abi = self.mpe_contract.contract._find_matching_event_abi(event_name="ChannelOpen") + event_abi = self.mpe_contract.contract.events.ChannelOpen._get_event_abi() event_data_list = [get_event_data(codec, event_abi, l)["args"] for l in logs] channels_opened = list(map(self._event_data_args_to_dict, event_data_list)) diff --git a/snet/sdk/service_client.py b/snet/sdk/service_client.py index bf840d3..a223fab 100644 --- a/snet/sdk/service_client.py +++ b/snet/sdk/service_client.py @@ -199,7 +199,7 @@ def get_price(self) -> int: return self.group["pricing"][0]["price_in_cogs"] def generate_signature(self, message: bytes) -> bytes: - return bytes(self.sdk_web3.eth.account.signHash( + return bytes(self.sdk_web3.eth.account._sign_hash( defunct_hash_message(message), self.account.signer_private_key ).signature) @@ -210,7 +210,7 @@ def generate_training_signature(self, text: str, address: str, ["string", "address", "uint256"], [text, address, block_number] ) - return self.sdk_web3.eth.account.signHash( + return self.sdk_web3.eth.account._sign_hash( defunct_hash_message(message), self.account.signer_private_key ).signature diff --git a/tests/unit_tests/test_service_client.py b/tests/unit_tests/test_service_client.py index d04ba37..93e2383 100644 --- a/tests/unit_tests/test_service_client.py +++ b/tests/unit_tests/test_service_client.py @@ -140,7 +140,7 @@ def test_get_current_block_number(self): def test_generate_signature(self): message = b"test_message" mock_signature = MagicMock() - self.client.sdk_web3.eth.account.signHash = MagicMock( + self.client.sdk_web3.eth.account._sign_hash = MagicMock( return_value=MagicMock(signature=mock_signature) ) result = self.client.generate_signature(message) @@ -153,7 +153,7 @@ def test_generate_training_signature(self, mock_solidity_keccak): block_number = "test_block_number" mock_solidity_keccak.return_value = b"test_message" mock_signature = MagicMock() - self.client.sdk_web3.eth.account.signHash = MagicMock( + self.client.sdk_web3.eth.account._sign_hash = MagicMock( return_value=MagicMock(signature=mock_signature) ) result = self.client.generate_training_signature(text, address,