Create processor class, fix signature matching in utils

This commit is contained in:
Robert Miller 2021-06-29 11:08:05 -04:00
parent 20bab3c448
commit 98cb1ffcae
3 changed files with 27 additions and 7 deletions

View File

@ -1,6 +1,13 @@
class Processor:
def __init__(self, base_provider, inspectors) -> None:
self.base_provider = base_provider
self.inspectors = inspectors
def get_transaction_evaluations(block_data):
def get_transaction_evaluations(self, block_data):
for transaction_hash in block_data.transaction_hashes:
calls = block_data.get_filtered_calls(transaction_hash)
print(calls)
for inspector in self.inspectors:
inspector.inspect(calls)
# print(calls)

View File

@ -1,3 +1,4 @@
from processor import Processor
from web3.providers import base
from inspector_uniswap import UniswapInspector
import block
@ -18,3 +19,8 @@ block_data = block.createFromBlockNumber(args.block_number[0], base_provider)
## Build a Uniswap inspector
uniswap_inspector = UniswapInspector(base_provider)
## Create a processor, pass in an ARRAY of inspects
processor = Processor(base_provider, [uniswap_inspector, uniswap_inspector])
processor.get_transaction_evaluations(block_data)

View File

@ -1,6 +1,7 @@
from hexbytes.main import HexBytes
def check_call_for_signature(call, signatures):
if (call.action.input == None):
if (call['action']['input'] == None):
return False
## By default set this to False
@ -8,7 +9,13 @@ def check_call_for_signature(call, signatures):
## Iterate over all signatures, and if our call matches any of them set it to True
for signature in signatures:
if call.action.input.startsWith(signature):
# print("Desired signature:", str(signature))
# print("Actual", HexBytes(call['action']['input']))
if HexBytes(call['action']['input']).startswith((signature)):
## Note that we are turning the input into hex bytes here, which seems to be fine
## Working with strings was doing weird things
print("hit")
signature_present_boolean = True
return signature_present_boolean