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.tx import TxFactory
|
||||||
from chainlib.eth.rpc import jsonrpc_template
|
from chainlib.eth.rpc import jsonrpc_template
|
||||||
from chainlib.eth.error import EthException
|
from chainlib.eth.error import EthException
|
||||||
from cic_eth.api.api_admin import AdminApi
|
|
||||||
from cic_types.models.person import (
|
from cic_types.models.person import (
|
||||||
Person,
|
Person,
|
||||||
generate_metadata_pointer,
|
generate_metadata_pointer,
|
||||||
@ -51,12 +50,27 @@ logg = logging.getLogger()
|
|||||||
|
|
||||||
config_dir = '/usr/local/etc/cic-syncer'
|
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 = 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('-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('-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('--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('-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('--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('-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('--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')
|
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
|
meta_url = args.meta_provider
|
||||||
exit_on_error = args.x
|
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:
|
class VerifierState:
|
||||||
|
|
||||||
@ -148,7 +188,7 @@ class Verifier:
|
|||||||
verifymethods = []
|
verifymethods = []
|
||||||
for k in dir(self):
|
for k in dir(self):
|
||||||
if len(k) > 7 and k[:7] == 'verify_':
|
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:])
|
verifymethods.append(k[7:])
|
||||||
|
|
||||||
self.state = VerifierState(verifymethods)
|
self.state = VerifierState(verifymethods)
|
||||||
@ -236,23 +276,10 @@ class Verifier:
|
|||||||
def verify(self, address, balance):
|
def verify(self, address, balance):
|
||||||
logg.debug('verify {} {}'.format(address, balance))
|
logg.debug('verify {} {}'.format(address, balance))
|
||||||
|
|
||||||
methods = [
|
for k in active_tests:
|
||||||
'local_key',
|
|
||||||
'accounts_index',
|
|
||||||
'balance',
|
|
||||||
'metadata',
|
|
||||||
'gas',
|
|
||||||
'faucet',
|
|
||||||
]
|
|
||||||
|
|
||||||
for k in methods:
|
|
||||||
try:
|
try:
|
||||||
m = getattr(self, 'verify_{}'.format(k))
|
m = getattr(self, 'verify_{}'.format(k))
|
||||||
m(address, balance)
|
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:
|
except VerifierError as e:
|
||||||
logline = 'verification {} failed for {}: {}'.format(k, address, str(e))
|
logline = 'verification {} failed for {}: {}'.format(k, address, str(e))
|
||||||
if self.exit_on_error:
|
if self.exit_on_error:
|
||||||
@ -266,10 +293,6 @@ class Verifier:
|
|||||||
return str(self.state)
|
return str(self.state)
|
||||||
|
|
||||||
|
|
||||||
class MockClient:
|
|
||||||
|
|
||||||
w3 = None
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
global chain_str, block_offset, user_dir
|
global chain_str, block_offset, user_dir
|
||||||
|
|
||||||
@ -291,7 +314,6 @@ def main():
|
|||||||
o['params'].append(txf.normalize(tx))
|
o['params'].append(txf.normalize(tx))
|
||||||
o['params'].append('latest')
|
o['params'].append('latest')
|
||||||
r = conn.do(o)
|
r = conn.do(o)
|
||||||
print('r {}'.format(r))
|
|
||||||
token_index_address = to_checksum_address(eth_abi.decode_single('address', bytes.fromhex(strip_0x(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))
|
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(txf.normalize(tx))
|
||||||
o['params'].append('latest')
|
o['params'].append('latest')
|
||||||
r = conn.do(o)
|
r = conn.do(o)
|
||||||
print('r {}'.format(r))
|
|
||||||
sarafu_token_address = to_checksum_address(eth_abi.decode_single('address', bytes.fromhex(strip_0x(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))
|
logg.info('found token address {}'.format(sarafu_token_address))
|
||||||
|
|
||||||
@ -357,8 +378,6 @@ def main():
|
|||||||
|
|
||||||
f.close()
|
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)
|
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')
|
user_new_dir = os.path.join(user_dir, 'new')
|
||||||
|
Loading…
Reference in New Issue
Block a user