From 2b354a10299c6f1c58479271bbefea6f2462b020 Mon Sep 17 00:00:00 2001 From: nolash Date: Sun, 7 Mar 2021 12:52:48 +0100 Subject: [PATCH] Add role tag option to reserve nonce --- apps/cic-eth/cic_eth/api/api_task.py | 18 ++++++++++++------ apps/cic-eth/cic_eth/eth/tx.py | 16 +++++++++++++--- apps/cic-eth/requirements.txt | 2 +- apps/cic-ussd/cic_ussd/version.py | 2 +- apps/cic-ussd/requirements.txt | 2 +- apps/contract-migration/docker/Dockerfile | 4 ++-- .../scripts/requirements.txt | 4 ++-- apps/contract-migration/seed_cic_eth.sh | 3 +-- 8 files changed, 33 insertions(+), 18 deletions(-) diff --git a/apps/cic-eth/cic_eth/api/api_task.py b/apps/cic-eth/cic_eth/api/api_task.py index 1ec624d3..9013f26f 100644 --- a/apps/cic-eth/cic_eth/api/api_task.py +++ b/apps/cic-eth/cic_eth/api/api_task.py @@ -82,6 +82,7 @@ class Api: :returns: uuid of root task :rtype: celery.Task """ + raise NotImplementedError('out of service until new DEX migration is done') s_check = celery.signature( 'cic_eth.admin.ctrl.check_lock', [ @@ -143,6 +144,7 @@ class Api: :returns: uuid of root task :rtype: celery.Task """ + raise NotImplementedError('out of service until new DEX migration is done') s_check = celery.signature( 'cic_eth.admin.ctrl.check_lock', [ @@ -340,11 +342,6 @@ class Api: ], queue=self.queue, ) - s_nonce = celery.signature( - 'cic_eth.eth.tx.reserve_nonce', - [], - queue=self.queue, - ) s_account = celery.signature( 'cic_eth.eth.account.create', [ @@ -357,6 +354,13 @@ class Api: s_account.link(self.callback_success) if register: + s_nonce = celery.signature( + 'cic_eth.eth.tx.reserve_nonce', + [ + 'ACCOUNTS_INDEX_WRITER', + ], + queue=self.queue, + ) s_register = celery.signature( 'cic_eth.eth.account.register', [ @@ -390,7 +394,9 @@ class Api: ) s_nonce = celery.signature( 'cic_eth.eth.tx.reserve_nonce', - [], + [ + 'GAS_GIFTER', + ], queue=self.queue, ) s_refill = celery.signature( diff --git a/apps/cic-eth/cic_eth/eth/tx.py b/apps/cic-eth/cic_eth/eth/tx.py index 789ee3bf..cba670ce 100644 --- a/apps/cic-eth/cic_eth/eth/tx.py +++ b/apps/cic-eth/cic_eth/eth/tx.py @@ -588,13 +588,23 @@ def resend_with_higher_gas(self, txold_hash_hex, chain_str, gas=None, default_fa @celery_app.task(bind=True, base=CriticalSQLAlchemyTask) -def reserve_nonce(self, chained_input, address=None): +def reserve_nonce(self, chained_input, signer=None): session = SessionBase.create_session() - if address == None: + address = None + if signer == None: address = chained_input + logg.debug('non-explicit address for reserve nonce, using arg head {}'.format(chained_input)) + else: + if web3.Web3.isChecksumAddress(signer): + address = signer + logg.debug('explicit address for reserve nonce {}'.format(signer)) + else: + address = AccountRole.get_address(signer, session=session) + logg.debug('role for reserve nonce {} -> {}'.format(signer, address)) + if not web3.Web3.isChecksumAddress(address): - raise ValueError('invalid address {}'.format(address)) + raise ValueError('invalid result when resolving address for nonce {}'.format(address)) root_id = self.request.root_id nonce = NonceReservation.next(address, root_id) diff --git a/apps/cic-eth/requirements.txt b/apps/cic-eth/requirements.txt index 84afe15d..ef85b3c4 100644 --- a/apps/cic-eth/requirements.txt +++ b/apps/cic-eth/requirements.txt @@ -1,4 +1,4 @@ -cic-base~=0.1.1a19 +cic-base~=0.1.1a20 web3==5.12.2 celery==4.4.7 crypto-dev-signer~=0.4.13rc4 diff --git a/apps/cic-ussd/cic_ussd/version.py b/apps/cic-ussd/cic_ussd/version.py index d0d95f19..2161a75c 100644 --- a/apps/cic-ussd/cic_ussd/version.py +++ b/apps/cic-ussd/cic_ussd/version.py @@ -1,7 +1,7 @@ # standard imports import semver -version = (0, 3, 0, 'alpha.4') +version = (0, 3, 0, 'alpha.5') version_object = semver.VersionInfo( major=version[0], diff --git a/apps/cic-ussd/requirements.txt b/apps/cic-ussd/requirements.txt index e8fd5152..c28b33e3 100644 --- a/apps/cic-ussd/requirements.txt +++ b/apps/cic-ussd/requirements.txt @@ -3,7 +3,7 @@ alembic==1.4.2 bcrypt==3.2.0 celery==4.4.7 chainlib~=0.0.1a20 -cic-eth==0.10.0a39 +cic-eth~=0.10.0a40 cic-notify~=0.4.0a2 cic-types==0.1.0a8 confini~=0.3.6rc3 diff --git a/apps/contract-migration/docker/Dockerfile b/apps/contract-migration/docker/Dockerfile index c257aa50..9b589c04 100644 --- a/apps/contract-migration/docker/Dockerfile +++ b/apps/contract-migration/docker/Dockerfile @@ -107,10 +107,10 @@ RUN cd cic-bancor/python && \ RUN apt-get install -y cargo -ARG cic_base_version=0.1.1a10 +ARG cic_base_version=0.1.1a23 RUN pip install --extra-index-url $pip_extra_index_url cic-base[full_graph]==$cic_base_version -ARG cic_registry_version=0.5.3a22 +ARG cic_registry_version=0.5.3a24 RUN pip install --extra-index-url $pip_extra_index_url cic-registry==$cic_registry_version WORKDIR /root diff --git a/apps/contract-migration/scripts/requirements.txt b/apps/contract-migration/scripts/requirements.txt index fa1cf34d..8b735fdd 100644 --- a/apps/contract-migration/scripts/requirements.txt +++ b/apps/contract-migration/scripts/requirements.txt @@ -1,3 +1,3 @@ -cic-base[full_graph]==0.1.1a12 -cic-eth==0.10.0a38 +cic-base[full_graph]==0.1.1a23 +cic-eth==0.10.0a40 cic-types==0.1.0a8 diff --git a/apps/contract-migration/seed_cic_eth.sh b/apps/contract-migration/seed_cic_eth.sh index 9c737f90..8beaea58 100644 --- a/apps/contract-migration/seed_cic_eth.sh +++ b/apps/contract-migration/seed_cic_eth.sh @@ -31,8 +31,7 @@ set -e set -a # We need to not install these here... -pip install --extra-index-url $DEV_PIP_EXTRA_INDEX_URL cic-eth==0.10.0a39 chainlib==0.0.1a19 cic-contracts==0.0.2a2 -pip install --extra-index-url $DEV_PIP_EXTRA_INDEX_URL --force-reinstall erc20-transfer-authorization==0.3.0a10 +pip install --extra-index-url $DEV_PIP_EXTRA_INDEX_URL cic-eth==0.10.0a40 chainlib==0.0.1a21 cic-contracts==0.0.2a2 >&2 echo "create account for gas gifter" old_gas_provider=$DEV_ETH_ACCOUNT_GAS_PROVIDER