Compare commits

...

4 Commits

Author SHA1 Message Date
nolash
7af7b78995
Remove stray arg object print 2022-01-01 10:10:14 +00:00
nolash
b552c933d7
Ensure all changes for home config dir override are applied to version 2021-12-17 07:50:01 +00:00
nolash
3739038340
Bump version 2021-11-15 14:42:08 +01:00
nolash
cacd8dbab8
Add settable origin to http session instantiation 2021-11-11 16:38:05 +01:00
7 changed files with 40 additions and 15 deletions

View File

@ -1,3 +1,5 @@
- 0.0.1 - 0.0.2
* Use ~/.config for default config override
- 0.0.1-unreleased
* Add tx listing * Add tx listing
* Add phone to user resolver * Add phone to user resolver

View File

@ -18,6 +18,8 @@ from clicada.cli.http import (
PGPClientSession, PGPClientSession,
) )
logg = logging.getLogger()
script_dir = os.path.dirname(os.path.realpath(__file__)) script_dir = os.path.dirname(os.path.realpath(__file__))
data_dir = os.path.join(script_dir, '..', 'data') data_dir = os.path.join(script_dir, '..', 'data')
base_config_dir = os.path.join(data_dir, 'config') base_config_dir = os.path.join(data_dir, 'config')
@ -50,7 +52,7 @@ class CmdCtrl:
self.remote_openers = {} self.remote_openers = {}
if self.get('META_URL') != None: if self.get('META_URL') != None:
auth_client_session = PGPClientSession(self.__auth) auth_client_session = PGPClientSession(self.__auth)
self.remote_openers['meta'] = HTTPSession(self.get('META_URL'), auth=auth_client_session) self.remote_openers['meta'] = HTTPSession(self.get('META_URL'), auth=auth_client_session, origin=self.config.get('META_HTTP_ORIGIN'))
def blockchain(self): def blockchain(self):
@ -96,11 +98,19 @@ class CmdCtrl:
def config(self): def config(self):
override_dir = self.cmd_args.config
if override_dir == None:
p = os.environ.get('HOME')
if p != None:
p = os.path.join(p, '.config', 'cic', 'clicada')
try:
os.stat(p)
override_dir = p
logg.info('applying user config override from standard location: {}'.format(p))
except FileNotFoundError:
pass
extra_args = self.cmd_mod.extra_args() extra_args = self.cmd_mod.extra_args()
if self.cmd_args.config: self.config = chainlib.eth.cli.Config.from_args(self.cmd_args, base_config_dir=base_config_dir, extra_args=extra_args, default_config_dir=override_dir)
self.config = chainlib.eth.cli.Config.from_args(self.cmd_args, base_config_dir=base_config_dir, extra_args=extra_args, default_config_dir=self.cmd_args.config)
else:
self.config = chainlib.eth.cli.Config.from_args(self.cmd_args, base_config_dir=base_config_dir, extra_args=extra_args)
self.config.add(False, '_SEQ') self.config.add(False, '_SEQ')
@ -113,7 +123,9 @@ class CmdCtrl:
typ = self.get('AUTH_TYPE') typ = self.get('AUTH_TYPE')
if typ != 'gnupg': if typ != 'gnupg':
raise NotImplementedError('Valid aut implementations are: gnupg') raise NotImplementedError('Valid aut implementations are: gnupg')
default_auth_db_path = os.path.join(os.environ['HOME'], '.clicada/auth') default_auth_db_path = None
if os.environ.get('HOME') != None:
default_auth_db_path = os.path.join(os.environ['HOME'], '.local/share/cic/clicada')
auth_db_path = self.get('AUTH_DB_PATH', default_auth_db_path) auth_db_path = self.get('AUTH_DB_PATH', default_auth_db_path)
self.__auth = PGPAuthCrypt(auth_db_path, self.get('AUTH_KEY'), self.get('AUTH_KEYRING_PATH')) self.__auth = PGPAuthCrypt(auth_db_path, self.get('AUTH_KEY'), self.get('AUTH_KEYRING_PATH'))
self.__auth.get_secret(self.get('AUTH_PASSPHRASE')) self.__auth.get_secret(self.get('AUTH_PASSPHRASE'))

View File

@ -45,12 +45,15 @@ class HTTPSession:
token_dir = '/run/user/{}/clicada/usumbufu/.token'.format(os.getuid()) token_dir = '/run/user/{}/clicada/usumbufu/.token'.format(os.getuid())
def __init__(self, url, auth=None): def __init__(self, url, auth=None, origin=None):
logg.debug('auth auth {}'.format(auth))
self.base_url = url self.base_url = url
url_parts = urllib.parse.urlsplit(self.base_url) url_parts = urllib.parse.urlsplit(self.base_url)
url_parts_origin = (url_parts[0], url_parts[1], '', '', '',) url_parts_origin = (url_parts[0], url_parts[1], '', '', '',)
self.origin = origin
if self.origin == None:
self.origin = urllib.parse.urlunsplit(url_parts_origin) self.origin = urllib.parse.urlunsplit(url_parts_origin)
else:
logg.debug('overriding http origin for {} with {}'.format(url, self.origin))
h = hashlib.sha256() h = hashlib.sha256()
h.update(self.base_url.encode('utf-8')) h.update(self.base_url.encode('utf-8'))

View File

@ -8,6 +8,7 @@ from cic_eth_registry import CICRegistry
from cic_eth_registry.lookup.tokenindex import TokenIndexLookup from cic_eth_registry.lookup.tokenindex import TokenIndexLookup
from cic_types.models.person import Person from cic_types.models.person import Person
from chainlib.eth.address import to_checksum_address from chainlib.eth.address import to_checksum_address
from chainlib.encode import TxHexNormalizer
from hexathon import add_0x from hexathon import add_0x
# local imports # local imports
@ -21,6 +22,8 @@ from clicada.tx import ResolvedTokenTx
logg = logging.getLogger(__name__) logg = logging.getLogger(__name__)
tx_normalizer = TxHexNormalizer()
def process_args(argparser): def process_args(argparser):
argparser.add_argument('-m', '--method', type=str, help='lookup method') argparser.add_argument('-m', '--method', type=str, help='lookup method')
@ -73,7 +76,10 @@ def execute(ctrl):
user_address_file_label = 'address' user_address_file_label = 'address'
user_address_store = FileUserStore(ctrl.opener('meta'), ctrl.chain(), user_address_file_label, store_path, int(ctrl.get('FILESTORE_TTL'))) user_address_store = FileUserStore(ctrl.opener('meta'), ctrl.chain(), user_address_file_label, store_path, int(ctrl.get('FILESTORE_TTL')))
r = user_address_store.by_address(user_address, update=ctrl.get('_FORCE')) user_address_normal = tx_normalizer.wallet_address(user_address)
r = user_address_store.by_address(user_address_normal, update=ctrl.get('_FORCE'))
print('r {}'.format(r))
print("""Phone: {} print("""Phone: {}
Network address: {} Network address: {}

View File

@ -1,12 +1,14 @@
[meta] [meta]
lookup_method = phone lookup_method = phone
url = url =
http_origin =
[filestore] [filestore]
ttl = 86400 ttl = 86400
[tx] [tx]
cache_url = cache_url =
http_origin =
[cic] [cic]
registry_address = registry_address =

View File

@ -5,7 +5,7 @@ import logging
# local imports # local imports
from clicada.cli import CmdCtrl from clicada.cli import CmdCtrl
logging.basicConfig(level=logging.WARNING) logging.basicConfig(level=logging.DEBUG)
logg = logging.getLogger() logg = logging.getLogger()
@ -16,4 +16,4 @@ def main():
if __name__ == '__main__': if __name__ == '__main__':
main(ctrl) main()

View File

@ -1,6 +1,6 @@
[metadata] [metadata]
name = clicada name = clicada
version = 0.0.1a7 version = 0.0.2a2
description = CLI CRM tool for the cic-stack custodial wallet system description = CLI CRM tool for the cic-stack custodial wallet system
author = Louis Holbrook author = Louis Holbrook
author_email = dev@holbrook.no author_email = dev@holbrook.no