From b4c53d41a98371f4730a50063e24869e1ebd928e Mon Sep 17 00:00:00 2001 From: lash Date: Thu, 21 Apr 2022 06:40:53 +0000 Subject: [PATCH] Make callback filter test pass --- cic_sync_filter/__init__.py | 2 +- cic_sync_filter/callback.py | 9 ++++----- cic_sync_filter/filter.py | 21 +++++++++++++++++++++ cic_sync_filter/parse.py | 8 ++++++++ tests/conftest.py | 3 +-- tests/test_callback_filter.py | 2 +- 6 files changed, 36 insertions(+), 9 deletions(-) create mode 100644 cic_sync_filter/filter.py diff --git a/cic_sync_filter/__init__.py b/cic_sync_filter/__init__.py index 8b13789..1e78c9b 100644 --- a/cic_sync_filter/__init__.py +++ b/cic_sync_filter/__init__.py @@ -1 +1 @@ - +from .filter import * diff --git a/cic_sync_filter/callback.py b/cic_sync_filter/callback.py index 4162fdc..31ec150 100644 --- a/cic_sync_filter/callback.py +++ b/cic_sync_filter/callback.py @@ -17,16 +17,15 @@ from hexathon import ( ) from eth_erc20 import ERC20 from erc20_faucet import Faucet -from chainsyncer.filter import SyncFilter +from cic_eth.eth.meta import ExtendedTx # local imports -#from cic_eth.eth.meta import ExtendedTx -#from cic_eth.encode import tx_normalize from cic_sync_filter.parse import ( parse_transfer, parse_transferfrom, parse_giftto, ) +from cic_sync_filter import SyncFilter logg = logging.getLogger(__name__) @@ -89,8 +88,8 @@ class CallbackFilter(SyncFilter): return (transfer_type, transfer_data) - def filter(self, conn, block, tx, db_session=None): - super(CallbackFilter, self).filter(conn, block, tx, db_session) + def filter(self, conn, block, tx): + super(CallbackFilter, self).filter(conn, block, tx) transfer_data = None transfer_type = None try: diff --git a/cic_sync_filter/filter.py b/cic_sync_filter/filter.py new file mode 100644 index 0000000..a5db482 --- /dev/null +++ b/cic_sync_filter/filter.py @@ -0,0 +1,21 @@ +# external imports +from chainsyncer.filter import SyncFilter as BaseSyncFilter + + +class SyncFilter(BaseSyncFilter): + + def __init__(self): + self.exec_count = 0 + self.match_count = 0 + + + def filter(self, conn, block, tx): + self.exec_count += 1 + + + def register_match(self): + self.match_count += 1 + + + def to_logline(self, block, tx, v): + return '{} exec {} match {} block {} tx {}: {}'.format(self, self.exec_count, self.match_count, block.number, tx.index, v) diff --git a/cic_sync_filter/parse.py b/cic_sync_filter/parse.py index cdfbf7a..d7e430c 100644 --- a/cic_sync_filter/parse.py +++ b/cic_sync_filter/parse.py @@ -1,4 +1,12 @@ +# external imports +from eth_erc20 import ERC20 +from erc20_faucet import Faucet from chainlib.eth.constant import ZERO_ADDRESS +from chainlib.encode import TxHexNormalizer +from hexathon import add_0x + +tx_normalize = TxHexNormalizer() + def parse_transfer(tx, conn, chain_spec, caller_address=ZERO_ADDRESS): if not tx.payload: diff --git a/tests/conftest.py b/tests/conftest.py index d555671..2a5d6e8 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,9 +1,8 @@ #from chainlib.eth.pytest import * -#from cic_eth_registry.pytest import * +from cic_eth_registry.pytest.fixtures_tokens import * #from pytest_cic.fixtures_database import * from cic_eth.pytest.fixtures_database import * from cic_eth.pytest.fixtures_contract import * from cic_eth.pytest.fixtures_config import * from cic_eth.pytest.fixtures_token import * from chainlib.eth.pytest import * - diff --git a/tests/test_callback_filter.py b/tests/test_callback_filter.py index 7e7c97f..8c1b9b7 100644 --- a/tests/test_callback_filter.py +++ b/tests/test_callback_filter.py @@ -229,7 +229,7 @@ def test_callback_filter_filter( mock = CallbackMock() fltr.call_back = mock.call_back - fltr.filter(eth_rpc, mockblock, tx, init_database) + fltr.filter(eth_rpc, mockblock, tx) #, init_database) assert mock.results.get('transfer') != None assert mock.results['transfer']['destination_token'] == strip_0x(foo_token)