diff --git a/apps/cic-eth/cic_eth/version.py b/apps/cic-eth/cic_eth/version.py index f782394c..1e68d3ba 100644 --- a/apps/cic-eth/cic_eth/version.py +++ b/apps/cic-eth/cic_eth/version.py @@ -10,7 +10,7 @@ version = ( 0, 10, 0, - 'alpha.27', + 'alpha.28', ) version_object = semver.VersionInfo( diff --git a/apps/cic-eth/requirements.txt b/apps/cic-eth/requirements.txt index 59625437..c2f01f13 100644 --- a/apps/cic-eth/requirements.txt +++ b/apps/cic-eth/requirements.txt @@ -2,7 +2,7 @@ web3==5.12.2 celery==4.4.7 crypto-dev-signer~=0.4.13rc2 confini~=0.3.6b1 -cic-registry~=0.5.3a18 +cic-registry~=0.5.3a19 cic-bancor~=0.0.6 redis==3.5.3 alembic==1.4.2 diff --git a/apps/contract-migration/scripts/config/cic.ini b/apps/contract-migration/scripts/config/cic.ini index 206e2e42..ffb51250 100644 --- a/apps/contract-migration/scripts/config/cic.ini +++ b/apps/contract-migration/scripts/config/cic.ini @@ -4,5 +4,5 @@ token_index_address = accounts_index_address = declarator_address = approval_escrow_address = -chain_spec = Bloxberg:8996 +chain_spec = evm:bloxberg:8996 tx_retry_delay = diff --git a/apps/contract-migration/scripts/import_balance.py b/apps/contract-migration/scripts/import_balance.py index c58d3bcd..09f94845 100644 --- a/apps/contract-migration/scripts/import_balance.py +++ b/apps/contract-migration/scripts/import_balance.py @@ -51,6 +51,7 @@ argparser.add_argument('-c', type=str, default=config_dir, help='config root to argparser.add_argument('--old-chain-spec', type=str, dest='old_chain_spec', default='oldchain:1', help='chain spec') argparser.add_argument('-i', '--chain-spec', type=str, dest='i', help='chain spec') argparser.add_argument('-r', '--registry-address', type=str, dest='r', help='CIC Registry address') +argparser.add_argument('--token-symbol', default='SRF', type=str, dest='r', help='Token symbol to use for trnsactions') argparser.add_argument('--head', action='store_true', help='start at current block height (overrides --offset)') 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('-q', type=str, default='cic-eth', help='celery queue to submit transaction tasks to') @@ -103,6 +104,8 @@ old_chain_spec_str = args.old_chain_spec user_dir = args.user_dir # user_out_dir from import_users.py +token_symbol = args.token_symbol + class Handler: @@ -217,7 +220,7 @@ def main(): tx = txf.template(signer_address, token_index_address) data = add_0x(registry_addressof_method) h = hashlib.new('sha256') - h.update(b'SRF') + h.update(token_symbol.encode('utf-8')) z = h.digest() data += eth_abi.encode_single('bytes32', z).hex() txf.set_code(tx, data) @@ -226,11 +229,13 @@ 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(eth_abi.decode_single('address', bytes.fromhex(strip_0x(r)))) + try: + sarafu_token_address = to_checksum(eth_abi.decode_single('address', bytes.fromhex(strip_0x(r)))) + except ValueError as e: + logg.critical('lookup failed for token {}: {}'.format(token_symbol, e)) + sys.exit(1) logg.info('found token address {}'.format(sarafu_token_address)) - syncer_backend = MemBackend(chain_str, 0) if block_offset == -1: diff --git a/apps/contract-migration/scripts/import_balance.sh b/apps/contract-migration/scripts/import_balance.sh index fce56cae..8db2632d 100644 --- a/apps/contract-migration/scripts/import_balance.sh +++ b/apps/contract-migration/scripts/import_balance.sh @@ -1 +1 @@ -python import_balance.py -c config -i Bloxberg:8996 -y /home/lash/tmp/d/keystore/UTC--2021-02-07T09-58-35.341813355Z--eb3907ecad74a0013c259d5874ae7f22dcbcc95c -v $@ +python import_balance.py -c config -i evm:bloxberg:8996 -y /home/lash/tmp/d/keystore/UTC--2021-02-07T09-58-35.341813355Z--eb3907ecad74a0013c259d5874ae7f22dcbcc95c -v $@ diff --git a/apps/contract-migration/scripts/requirements.txt b/apps/contract-migration/scripts/requirements.txt index 27a83df9..d8107f14 100644 --- a/apps/contract-migration/scripts/requirements.txt +++ b/apps/contract-migration/scripts/requirements.txt @@ -1,8 +1,9 @@ psycopg2==2.8.6 chainlib~=0.0.1a15 -chainsyncer==0.0.1a7 -cic-eth==0.10.0a27 -confini==0.3.6b2 +chainsyncer==0.0.1a8 +cic-eth==0.10.0a28 +cic-registry==0.5.3a19 +confini==0.3.6rc1 celery==4.4.7 redis==3.5.3 hexathon==0.0.1a3 diff --git a/apps/contract-migration/scripts/verify.py b/apps/contract-migration/scripts/verify.py index 6093f628..0b9ae20e 100644 --- a/apps/contract-migration/scripts/verify.py +++ b/apps/contract-migration/scripts/verify.py @@ -9,7 +9,7 @@ import re import hashlib import csv import json -from urllib.request import urlopen +import urllib # external impotts import celery @@ -93,6 +93,18 @@ user_dir = args.user_dir # user_out_dir from import_users.py meta_url = args.meta_provider +class VerifierError(Exception): + + def __init__(self, e, c): + super(VerifierError, self).__init__(e) + self.c = c + + + def __str__(self): + super_error = super(VerifierError, self).__str__() + return '[{}] {}'.format(self.c, super_error) + + class Verifier: def __init__(self, conn, cic_eth_api, gas_oracle, chain_spec, index_address, token_address, data_dir): @@ -120,7 +132,7 @@ class Verifier: logg.debug('index check for {}: {}'.format(address, r)) n = eth_abi.decode_single('uint256', bytes.fromhex(strip_0x(r))) if n != 1: - raise ValueError(n) + raise VerifierError(n, 'accounts index') def verify_balance(self, address, balance): @@ -129,21 +141,27 @@ class Verifier: actual_balance = int(strip_0x(r), 16) logg.debug('balance for {}: {}'.format(address, balance)) if balance != actual_balance: - raise ValueError((actual_balance, balance)) + raise VerifierError((actual_balance, balance), 'balance') def verify_local_key(self, address): r = self.api.have_account(address, str(self.chain_spec)) logg.debug('verify local key result {}'.format(r)) if r != address: - raise ValueError(address, r) + raise VerifierError((address, r), 'local key') def verify_metadata(self, address): k = generate_metadata_pointer(bytes.fromhex(strip_0x(address)), ':cic.person') url = os.path.join(meta_url, k) logg.debug('verify metadata url {}'.format(url)) - res = urlopen(url) + try: + res = urllib.request.urlopen(url) + except urllib.error.HTTPError as e: + raise VerifierError( + '({}) {}'.format(url, e), + 'metadata (person)', + ) b = res.read() o_retrieved = json.loads(b.decode('utf-8')) @@ -160,16 +178,20 @@ class Verifier: f.close() if o_original != o_retrieved: - raise ValueError(o_retrieved) + raise VerifierError(o_retrieved, 'metadata (person)') def verify(self, address, balance): logg.debug('verify {} {}'.format(address, balance)) - self.verify_local_key(address) - self.verify_accounts_index(address) - self.verify_balance(address, balance) - self.verify_metadata(address) + try: + self.verify_local_key(address) + self.verify_accounts_index(address) + self.verify_balance(address, balance) + self.verify_metadata(address) + except VerifierError as e: + logg.critical('verification failed: {}'.format(e)) + sys.exit(1) class MockClient: diff --git a/docker-compose.yml b/docker-compose.yml index cba4155e..51695624 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -84,7 +84,7 @@ services: # And these two are for wait-for-it (could parse this) ETH_PROVIDER_HOST: eth ETH_PROVIDER_PORT: 8545 - CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-Bloxberg:8996} + CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-evm:bloxberg:8996} CIC_DATA_DIR: ${CIC_DATA_DIR:-/tmp/cic/config} command: ["./reset.sh"] depends_on: @@ -102,7 +102,7 @@ services: # And these two are for wait-for-it (could parse this) ETH_PROVIDER_HOST: eth ETH_PROVIDER_PORT: 8545 - CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-Bloxberg:8996} + CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-evm:bloxberg:8996} CIC_DATA_DIR: ${CIC_DATA_DIR:-/tmp/cic/config} DATABASE_HOST: ${DATABASE_HOST:-postgres} DATABASE_PORT: ${DATABASE_PORT:-5432} @@ -146,7 +146,7 @@ services: DATABASE_DEBUG: 1 ETH_ABI_DIR: ${ETH_ABI_DIR:-/usr/local/share/cic/solidity/abi} CIC_TRUST_ADDRESS: ${DEV_ETH_ACCOUNT_CONTRACT_DEPLOYER:-0xEb3907eCad74a0013c259D5874AE7f22DcBcC95C} - CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-Bloxberg:8996} + CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-evm:bloxberg:8996} CELERY_BROKER_URL: redis://redis:6379 CELERY_RESULT_URL: redis://redis:6379 deploy: @@ -214,7 +214,7 @@ services: DATABASE_DRIVER: ${DATABASE_DRIVER:-psycopg2} DATABASE_DEBUG: ${DATABASE_DEBUG:-0} PGPASSWORD: ${DATABASE_PASSWORD:-tralala} - CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-Bloxberg:8996} + CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-evm:bloxberg:8996} BANCOR_DIR: ${BANCOR_DIR:-/usr/local/share/cic/bancor} CELERY_BROKER_URL: ${CELERY_BROKER_URL:-redis://redis} CELERY_RESULT_URL: ${CELERY_RESULT_URL:-redis://redis} @@ -254,7 +254,7 @@ services: DATABASE_ENGINE: ${DATABASE_ENGINE:-postgres} DATABASE_DRIVER: ${DATABASE_DRIVER:-psycopg2} DATABASE_DEBUG: 1 - CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-Bloxberg:8996} + CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-evm:bloxberg:8996} CIC_REGISTRY_ADDRESS: $CIC_REGISTRY_ADDRESS #BANCOR_DIR: $BANCOR_DIR CELERY_BROKER_URL: ${CELERY_BROKER_URL:-redis://redis} @@ -291,7 +291,7 @@ services: DATABASE_ENGINE: ${DATABASE_ENGINE:-postgres} DATABASE_DRIVER: ${DATABASE_DRIVER:-psycopg2} DATABASE_DEBUG: ${DATABASE_DEBUG:-0} - CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-Bloxberg:8996} + CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-evm:bloxberg:8996} CIC_REGISTRY_ADDRESS: $CIC_REGISTRY_ADDRESS #BANCOR_DIR: $BANCOR_DIR CELERY_BROKER_URL: ${CELERY_BROKER_URL:-redis://redis} @@ -328,7 +328,7 @@ services: DATABASE_ENGINE: ${DATABASE_ENGINE:-postgres} DATABASE_DRIVER: ${DATABASE_DRIVER:-psycopg2} DATABASE_DEBUG: ${DATABASE_DEBUG:-0} - CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-Bloxberg:8996} + CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-evm:bloxberg:8996} CIC_REGISTRY_ADDRESS: $CIC_REGISTRY_ADDRESS #BANCOR_DIR: $BANCOR_DIR CELERY_BROKER_URL: ${CELERY_BROKER_URL:-redis://redis} @@ -368,7 +368,7 @@ services: DATABASE_ENGINE: ${DATABASE_ENGINE:-postgres} DATABASE_DRIVER: ${DATABASE_DRIVER:-psycopg2} DATABASE_DEBUG: ${DATABASE_DEBUG:-0} - CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-Bloxberg:8996} + CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-evm:bloxberg:8996} CIC_REGISTRY_ADDRESS: $CIC_REGISTRY_ADDRESS #BANCOR_DIR: $BANCOR_DIR CELERY_BROKER_URL: ${CELERY_BROKER_URL:-redis://redis}