File: _work.py

package info (click to toggle)
python-autobahn 22.7.1%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 8,404 kB
  • sloc: python: 38,356; javascript: 2,705; makefile: 905; ansic: 371; sh: 63
file content (32 lines) | stat: -rw-r--r-- 1,045 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from pprint import pprint
import time
from web3.auto import w3
from autobahn import xbr

xbr.setProvider(w3)

# FIXME: event_filter.get_all_entries() should (also) allow to get the events

def _process_block(block):
    event_filter = xbr.xbrToken.events.Transfer().createFilter(fromBlock=block, toBlock=block)
    result = w3.eth.getLogs(event_filter.filter_params)
    if result:
        for evt in result:
            receipt = w3.eth.getTransactionReceipt(evt['transactionHash'])
            args = xbr.xbrToken.events.Transfer().processReceipt(receipt)
            args = args[0].args
            print('event: {} XBR token transferred from {} to {}'.format(args.value, args['from'], args.to))
    else:
        print('no events of interest to us in block {}'.format(block))

last_processed = -1

while True:
    current = w3.eth.getBlock('latest')

    while last_processed < current.number:
        last_processed += 1
        print('processing block: {}'.format(last_processed))
        _process_block(last_processed)

    time.sleep(1)