Add verify selection
This commit is contained in:
parent
7dbb735fc1
commit
97b459d21e
@ -39,7 +39,6 @@ from chainlib.eth.gas import (
|
||||
from chainlib.eth.tx import TxFactory
|
||||
from chainlib.eth.rpc import jsonrpc_template
|
||||
from chainlib.eth.error import EthException
|
||||
from cic_eth.api.api_admin import AdminApi
|
||||
from cic_types.models.person import (
|
||||
Person,
|
||||
generate_metadata_pointer,
|
||||
@ -51,12 +50,27 @@ logg = logging.getLogger()
|
||||
|
||||
config_dir = '/usr/local/etc/cic-syncer'
|
||||
|
||||
custodial_tests = [
|
||||
'local_key',
|
||||
]
|
||||
|
||||
all_tests = custodial_tests + [
|
||||
'accounts_index',
|
||||
'balance',
|
||||
'metadata',
|
||||
'gas',
|
||||
'faucet',
|
||||
]
|
||||
|
||||
argparser = argparse.ArgumentParser(description='daemon that monitors transactions in new blocks')
|
||||
argparser.add_argument('-p', '--provider', dest='p', type=str, help='chain rpc provider address')
|
||||
argparser.add_argument('-c', type=str, default=config_dir, help='config root to use')
|
||||
argparser.add_argument('--old-chain-spec', type=str, dest='old_chain_spec', default='evm:oldchain:1', help='chain spec')
|
||||
argparser.add_argument('-i', '--chain-spec', type=str, dest='i', help='chain spec')
|
||||
argparser.add_argument('--meta-provider', type=str, dest='meta_provider', default='http://localhost:63380', help='cic-meta url')
|
||||
argparser.add_argument('--skip-custodial', dest='skip_custodial', action='store_true', help='skip all custodial verifications')
|
||||
argparser.add_argument('--exclude', action='append', type=str, default=[], help='skip specified verification')
|
||||
argparser.add_argument('--include', action='append', type=str, default=all_tests, help='include specified verification')
|
||||
argparser.add_argument('-r', '--registry-address', type=str, dest='r', help='CIC Registry address')
|
||||
argparser.add_argument('--env-prefix', default=os.environ.get('CONFINI_ENV_PREFIX'), dest='env_prefix', type=str, help='environment prefix for variables to overwrite configuration')
|
||||
argparser.add_argument('-x', '--exit-on-error', dest='x', action='store_true', help='Halt exection on error')
|
||||
@ -95,6 +109,32 @@ user_dir = args.user_dir # user_out_dir from import_users.py
|
||||
meta_url = args.meta_provider
|
||||
exit_on_error = args.x
|
||||
|
||||
active_tests = []
|
||||
exclude = []
|
||||
for t in args.exclude:
|
||||
if t not in all_tests:
|
||||
raise ValueError('Cannot exclude unknown verification "{}"'.format(t))
|
||||
exclude.append(t)
|
||||
if args.skip_custodial:
|
||||
logg.info('will skip all custodial verifications ({})'.format(','.join(custodial_tests)))
|
||||
for t in custodial_tests:
|
||||
if t not in exclude:
|
||||
exclude.append(t)
|
||||
for t in args.include:
|
||||
if t not in all_tests:
|
||||
raise ValueError('Cannot include unknown verification "{}"'.format(t))
|
||||
if t not in exclude:
|
||||
active_tests.append(t)
|
||||
logg.info('will perform verification "{}"'.format(t))
|
||||
|
||||
api = None
|
||||
for t in custodial_tests:
|
||||
if t in active_tests:
|
||||
from cic_eth.api.api_admin import AdminApi
|
||||
api = AdminApi(None)
|
||||
logg.info('activating custodial module'.format(t))
|
||||
break
|
||||
|
||||
|
||||
class VerifierState:
|
||||
|
||||
@ -148,7 +188,7 @@ class Verifier:
|
||||
verifymethods = []
|
||||
for k in dir(self):
|
||||
if len(k) > 7 and k[:7] == 'verify_':
|
||||
logg.info('adding verify method {}'.format(k))
|
||||
logg.debug('verifier has verify method {}'.format(k))
|
||||
verifymethods.append(k[7:])
|
||||
|
||||
self.state = VerifierState(verifymethods)
|
||||
@ -236,23 +276,10 @@ class Verifier:
|
||||
def verify(self, address, balance):
|
||||
logg.debug('verify {} {}'.format(address, balance))
|
||||
|
||||
methods = [
|
||||
'local_key',
|
||||
'accounts_index',
|
||||
'balance',
|
||||
'metadata',
|
||||
'gas',
|
||||
'faucet',
|
||||
]
|
||||
|
||||
for k in methods:
|
||||
for k in active_tests:
|
||||
try:
|
||||
m = getattr(self, 'verify_{}'.format(k))
|
||||
m(address, balance)
|
||||
# self.verify_local_key(address)
|
||||
# self.verify_accounts_index(address)
|
||||
# self.verify_balance(address, balance)
|
||||
# self.verify_metadata(address)
|
||||
except VerifierError as e:
|
||||
logline = 'verification {} failed for {}: {}'.format(k, address, str(e))
|
||||
if self.exit_on_error:
|
||||
@ -266,10 +293,6 @@ class Verifier:
|
||||
return str(self.state)
|
||||
|
||||
|
||||
class MockClient:
|
||||
|
||||
w3 = None
|
||||
|
||||
def main():
|
||||
global chain_str, block_offset, user_dir
|
||||
|
||||
@ -291,7 +314,6 @@ def main():
|
||||
o['params'].append(txf.normalize(tx))
|
||||
o['params'].append('latest')
|
||||
r = conn.do(o)
|
||||
print('r {}'.format(r))
|
||||
token_index_address = to_checksum_address(eth_abi.decode_single('address', bytes.fromhex(strip_0x(r))))
|
||||
logg.info('found token index address {}'.format(token_index_address))
|
||||
|
||||
@ -333,7 +355,6 @@ def main():
|
||||
o['params'].append(txf.normalize(tx))
|
||||
o['params'].append('latest')
|
||||
r = conn.do(o)
|
||||
print('r {}'.format(r))
|
||||
sarafu_token_address = to_checksum_address(eth_abi.decode_single('address', bytes.fromhex(strip_0x(r))))
|
||||
logg.info('found token address {}'.format(sarafu_token_address))
|
||||
|
||||
@ -357,8 +378,6 @@ def main():
|
||||
|
||||
f.close()
|
||||
|
||||
api = AdminApi(MockClient())
|
||||
|
||||
verifier = Verifier(conn, api, gas_oracle, chain_spec, account_index_address, sarafu_token_address, faucet_address, user_dir, exit_on_error)
|
||||
|
||||
user_new_dir = os.path.join(user_dir, 'new')
|
||||
|
Loading…
Reference in New Issue
Block a user