Merge branch 'lash/default-token' into 'master'
cic-eth: Add default token setting to cic-eth with api See merge request grassrootseconomics/cic-internal-integration!113
This commit is contained in:
commit
dd94b8a190
19
apps/cic-eth/cic_eth/admin/token.py
Normal file
19
apps/cic-eth/cic_eth/admin/token.py
Normal file
@ -0,0 +1,19 @@
|
||||
# standard imports
|
||||
import logging
|
||||
|
||||
# external imports
|
||||
import celery
|
||||
|
||||
# local imports
|
||||
from cic_eth.task import BaseTask
|
||||
|
||||
celery_app = celery.current_app
|
||||
logg = logging.getLogger()
|
||||
|
||||
|
||||
@celery_app.task(bind=True, base=BaseTask)
|
||||
def default_token(self):
|
||||
return {
|
||||
'symbol': self.default_token_symbol,
|
||||
'address': self.default_token_address,
|
||||
}
|
65
apps/cic-eth/cic_eth/runnable/info.py
Normal file
65
apps/cic-eth/cic_eth/runnable/info.py
Normal file
@ -0,0 +1,65 @@
|
||||
#!python3
|
||||
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# standard imports
|
||||
import logging
|
||||
import argparse
|
||||
import os
|
||||
|
||||
# external imports
|
||||
import confini
|
||||
import celery
|
||||
|
||||
# local imports
|
||||
from cic_eth.api import Api
|
||||
|
||||
logging.basicConfig(level=logging.WARNING)
|
||||
logg = logging.getLogger()
|
||||
|
||||
default_format = 'terminal'
|
||||
default_config_dir = os.environ.get('CONFINI_DIR', '/usr/local/etc/cic')
|
||||
|
||||
|
||||
argparser = argparse.ArgumentParser()
|
||||
argparser.add_argument('-i', '--chain-spec', dest='i', type=str, help='chain spec')
|
||||
argparser.add_argument('-c', type=str, default=default_config_dir, help='config root to use')
|
||||
argparser.add_argument('-q', type=str, default='cic-eth', help='celery queue to submit transaction tasks to')
|
||||
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('-v', action='store_true', help='Be verbose')
|
||||
argparser.add_argument('-vv', help='be more verbose', action='store_true')
|
||||
args = argparser.parse_args()
|
||||
|
||||
if args.v == True:
|
||||
logging.getLogger().setLevel(logging.INFO)
|
||||
elif args.vv == True:
|
||||
logging.getLogger().setLevel(logging.DEBUG)
|
||||
|
||||
config_dir = os.path.join(args.c)
|
||||
os.makedirs(config_dir, 0o777, True)
|
||||
config = confini.Config(config_dir, args.env_prefix)
|
||||
config.process()
|
||||
args_override = {
|
||||
'CIC_CHAIN_SPEC': getattr(args, 'i'),
|
||||
}
|
||||
config.dict_override(args_override, 'cli args')
|
||||
config.censor('PASSWORD', 'DATABASE')
|
||||
config.censor('PASSWORD', 'SSL')
|
||||
logg.debug('config loaded from {}:\n{}'.format(config_dir, config))
|
||||
|
||||
|
||||
celery_app = celery.Celery(broker=config.get('CELERY_BROKER_URL'), backend=config.get('CELERY_RESULT_URL'))
|
||||
|
||||
queue = args.q
|
||||
|
||||
api = Api(config.get('CIC_CHAIN_SPEC'), queue=queue)
|
||||
|
||||
def main():
|
||||
t = api.default_token()
|
||||
token_info = t.get()
|
||||
print('Default token symbol: {}'.format(token_info['symbol']))
|
||||
print('Default token address: {}'.format(token_info['address']))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
@ -10,7 +10,7 @@ version = (
|
||||
0,
|
||||
11,
|
||||
0,
|
||||
'beta.8',
|
||||
'beta.9',
|
||||
)
|
||||
|
||||
version_object = semver.VersionInfo(
|
||||
|
@ -1,4 +1,3 @@
|
||||
[eth]
|
||||
provider = http://localhost:63545
|
||||
health_modules = cic_eth.check.db,cic_eth.check.gas
|
||||
gas_gifter_minimum_balance = 10000000000000000000000
|
||||
|
@ -1,4 +1,3 @@
|
||||
[eth]
|
||||
provider = http://localhost:8545
|
||||
gas_gifter_minimum_balance = 10000000000000000000000
|
||||
health_modules = cic_eth.check.db,cic_eth.check.gas
|
||||
|
@ -3,8 +3,12 @@ import os
|
||||
import sys
|
||||
import logging
|
||||
|
||||
# external imports
|
||||
from chainlib.eth.erc20 import ERC20
|
||||
|
||||
# local imports
|
||||
from cic_eth.api import Api
|
||||
from cic_eth.task import BaseTask
|
||||
|
||||
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
root_dir = os.path.dirname(script_dir)
|
||||
@ -28,3 +32,26 @@ def api(
|
||||
):
|
||||
chain_str = str(default_chain_spec)
|
||||
return Api(chain_str, queue=None, callback_param='foo')
|
||||
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
def foo_token_symbol(
|
||||
default_chain_spec,
|
||||
foo_token,
|
||||
eth_rpc,
|
||||
contract_roles,
|
||||
):
|
||||
|
||||
c = ERC20(default_chain_spec)
|
||||
o = c.symbol(foo_token, sender_address=contract_roles['CONTRACT_DEPLOYER'])
|
||||
r = eth_rpc.do(o)
|
||||
return c.parse_symbol(r)
|
||||
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
def default_token(
|
||||
foo_token,
|
||||
foo_token_symbol,
|
||||
):
|
||||
BaseTask.default_token_symbol = foo_token_symbol
|
||||
BaseTask.default_token_address = foo_token
|
||||
|
@ -34,6 +34,7 @@ def celery_includes():
|
||||
'cic_eth.admin.ctrl',
|
||||
'cic_eth.admin.nonce',
|
||||
'cic_eth.admin.debug',
|
||||
'cic_eth.admin.token',
|
||||
'cic_eth.eth.account',
|
||||
'cic_eth.callbacks.noop',
|
||||
'cic_eth.callbacks.http',
|
||||
|
21
apps/cic-eth/tests/unit/admin/test_default_token.py
Normal file
21
apps/cic-eth/tests/unit/admin/test_default_token.py
Normal file
@ -0,0 +1,21 @@
|
||||
# external imports
|
||||
import celery
|
||||
|
||||
|
||||
def test_default_token(
|
||||
default_token,
|
||||
celery_session_worker,
|
||||
foo_token,
|
||||
foo_token_symbol,
|
||||
):
|
||||
|
||||
s = celery.signature(
|
||||
'cic_eth.admin.token.default_token',
|
||||
[],
|
||||
queue=None,
|
||||
)
|
||||
t = s.apply_async()
|
||||
r = t.get()
|
||||
|
||||
assert r['address'] == foo_token
|
||||
assert r['symbol'] == foo_token_symbol
|
@ -1,4 +1,4 @@
|
||||
cic_base[full_graph]~=0.1.2a79
|
||||
cic-eth~=0.11.0b7
|
||||
cic_base[full_graph]~=0.1.2b2
|
||||
cic-eth~=0.11.0b9
|
||||
cic-notify~=0.4.0a4
|
||||
cic-types~=0.1.0a10
|
||||
|
Loading…
Reference in New Issue
Block a user