Skip to content

Commit

Permalink
small fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
hweawer committed Aug 28, 2024
1 parent 4de6787 commit f5655e4
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 29 deletions.
4 changes: 2 additions & 2 deletions src/transport/msg_providers/data_bus.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def parse(self, log: LogReceipt) -> Optional[dict]:
e = get_event_data(self._w3.codec, self._message_abi, log)
unparsed_event = e['args']['data']
guardian = e['args']['sender']
decoded_data = self._w3.codec.decode(self._schema, unparsed_event)[0]
decoded_data = self._w3.codec.decode([self._schema], unparsed_event)[0]
return self._create_message(decoded_data, guardian)
except Exception as error:
logger.debug(
Expand Down Expand Up @@ -215,7 +215,7 @@ def _receive_message(self) -> Optional[LogReceipt]:
def _fetch_logs_into_queue(self):
try:
latest_block_number = self._w3.eth.block_number
from_block = latest_block_number - self._STANDARD_OFFSET if self._latest_block == -1 else self._latest_block
from_block = max(0, latest_block_number - self._STANDARD_OFFSET) if self._latest_block == -1 else self._latest_block

filter_params = FilterParams(
fromBlock=from_block,
Expand Down
61 changes: 34 additions & 27 deletions tests/transport/test_data_bus.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import pytest
from transport.msg_providers.data_bus import _MESSAGE
from web3 import Web3
from web3._utils.events import get_event_data
from web3.types import FilterParams
import variables
from schema import Or, Schema
from transport.msg_providers.data_bus import DataBusProvider, DataBusSinks
from transport.msg_types.deposit import DepositMessageSchema
from transport.msg_types.ping import PingMessageDataBusSchema


# Started with config: {
Expand All @@ -11,29 +12,35 @@
# }
@pytest.mark.integration_manual
def test_data_bus_provider():
host = 'http://127.0.0.1:8888'
contract = '0x5FbDB2315678afecb367f032d93F642f64180aa3'
w3 = Web3(Web3.HTTPProvider(host))
assert w3.is_connected()
contract_address = Web3.to_checksum_address(contract)
from_block = 0
message_event_topic = w3.keccak(text='MessageDepositV1(address,(bytes32,uint256,uint256,bytes32,bytes,uint256,(bytes32)))')

filter_params = FilterParams(
fromBlock=from_block,
address=contract_address,
topics=[message_event_topic],
"""
Utilise this function for an adhoc testing of data bus transport
"""
variables.WEB3_RPC_GNOSIS_ENDPOINTS = ['http://127.0.0.1:8888']
variables.DATA_BUS_ADDRESS = '0x5FbDB2315678afecb367f032d93F642f64180aa3'
provider = DataBusProvider(
message_schema=Schema(Or(DepositMessageSchema, PingMessageDataBusSchema)), sinks=[DataBusSinks.DEPOSIT_V1, DataBusSinks.PING_V1]
)
messages = provider.get_messages()
print(messages)
# contract_address = Web3.to_checksum_address(contract)
# from_block = 0
# message_event_topic = w3.keccak(text='MessageDepositV1(address,(bytes32,uint256,uint256,bytes32,bytes,uint256,(bytes32)))')

# filter_params = FilterParams(
# fromBlock=from_block,
# address=contract_address,
# topics=[message_event_topic],
# )

logs = w3.eth.get_logs(filter_params)
message_contract = w3.eth.contract(abi=[_MESSAGE])
# logs = w3.eth.get_logs(filter_params)
# message_contract = w3.eth.contract(abi=[_MESSAGE])

for log in logs:
e = get_event_data(w3.codec, message_contract.events.Message().abi, log)
unparsed_event = e['args']['data']
_ = e['args']['sender']
d = w3.codec.decode(['(bytes32,uint256,uint256,bytes32,bytes,uint256,(bytes32))'], unparsed_event)
depositRoot, nonce, blockNumber, blockHash, signature, stakingModuleId, app = d[0]
print('nonce', nonce)
print('blockNumber', blockNumber)
print('stakingModuleId', stakingModuleId)
# for log in logs:
# e = get_event_data(w3.codec, message_contract.events.Message().abi, log)
# unparsed_event = e['args']['data']
# _ = e['args']['sender']
# d = w3.codec.decode(['(bytes32,uint256,uint256,bytes32,bytes,uint256,(bytes32))'], unparsed_event)
# depositRoot, nonce, blockNumber, blockHash, signature, stakingModuleId, app = d[0]
# print('nonce', nonce)
# print('blockNumber', blockNumber)
# print('stakingModuleId', stakingModuleId)

0 comments on commit f5655e4

Please sign in to comment.