cic-monitor/ge_render/__init__.py

48 lines
1.1 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# standard imports
import logging
# external imports
from eth_accounts_index import AccountsIndex
from chainlib.eth.error import RequestMismatchException
logg = logging.getLogger(__name__)
def get_method(chain_str, tx):
data = tx.payload
s = None
if len(data) >= 8:
s = data[:8]
v = sigmap.get(chain_str)
if v != None:
return v.get(s)
raise ValueError('not minimum signature length')
def apply(c, s, chain_str, conn, block, tx, db_session=None):
try:
m = get_method(chain_str, tx)
except ValueError as e:
return s
if m == None:
return s
return m(c, s, conn, block, tx)
def account_registry_add(c, s, conn, block, tx):
try:
o = AccountsIndex.parse_add_request(tx.payload)
ss = '{} block {} tx {} account registration for {}'.format(c, block.number, tx.index, o[0])
return ss
except RequestMismatchException as e:
return None
sigmap = {
'evm:byzantium:8996:bloxberg': {
'0a3b0a4f': account_registry_add,
},
}