64 lines
1.9 KiB
Python
64 lines
1.9 KiB
Python
# standard imports
|
|
import os
|
|
import sys
|
|
import logging
|
|
import argparse
|
|
import re
|
|
|
|
# external imports
|
|
import cic_eth.cli
|
|
from chainlib.chain import ChainSpec
|
|
from chainlib.eth.address import is_address
|
|
from xdg.BaseDirectory import xdg_config_home
|
|
|
|
# local imports
|
|
from cic_eth.api.admin import AdminApi
|
|
from cic_eth.db import dsn_from_config
|
|
from cic_eth.db.models.base import SessionBase
|
|
|
|
logging.basicConfig(level=logging.WARNING)
|
|
logg = logging.getLogger()
|
|
|
|
arg_flags = cic_eth.cli.argflag_std_base | cic_eth.cli.Flag.UNSAFE | cic_eth.cli.Flag.CHAIN_SPEC
|
|
local_arg_flags = cic_eth.cli.argflag_local_taskcallback
|
|
argparser = cic_eth.cli.ArgumentParser(arg_flags)
|
|
argparser.add_argument('--set', action='store_true', help='sets the given tag')
|
|
argparser.add_argument('--tag', type=str, help='operate on the given tag')
|
|
argparser.add_positional('address', required=False, type=str, help='address associated with tag')
|
|
argparser.process_local_flags(local_arg_flags)
|
|
args = argparser.parse_args()
|
|
|
|
extra_args = {
|
|
'set': None,
|
|
'tag': None,
|
|
'address': None,
|
|
}
|
|
config = cic_eth.cli.Config.from_args(args, arg_flags, local_arg_flags, extra_args=extra_args)
|
|
|
|
celery_app = cic_eth.cli.CeleryApp.from_config(config)
|
|
|
|
admin_api = AdminApi(None)
|
|
|
|
chain_spec = ChainSpec.from_chain_str(config.get('CHAIN_SPEC'))
|
|
|
|
celery_app = cic_eth.cli.CeleryApp.from_config(config)
|
|
api = AdminApi(None)
|
|
|
|
|
|
def main():
|
|
if config.get('_ADDRESS') != None and not is_address(config.get('_ADDRESS')):
|
|
sys.stderr.write('Invalid address {}'.format(config.get('_ADDRESS')))
|
|
sys.exit(1)
|
|
|
|
if config.get('_SET'):
|
|
admin_api.tag_account(chain_spec, config.get('_TAG'), config.get('_ADDRESS'))
|
|
else:
|
|
t = admin_api.get_tag_account(chain_spec, tag=config.get('_TAG'), address=config.get('_ADDRESS'))
|
|
r = t.get()
|
|
for v in r:
|
|
sys.stdout.write('{}\t{}\n'.format(v[1], v[0]))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|