def extract(cls, tx: Transaction): handlers = { "suicide": cls.extract_suicide, "create": cls.extract_create, "call": cls.extract_call } cl = inject.instance(ParityEthJsonRpc) tx._traces = cl.trace_transaction(tx.hash) for trace_entry in tx._traces: try: transfer = handlers[trace_entry['type']](trace_entry) if transfer.value > 0: transfer.transaction_hash = tx.hash transfer.block_number = tx.block_number yield transfer except KeyError: print(tx.hash)