commit fcd78b5ca8a321d1835189ac7e0d2376f461be18
parent 9419fbb77b314ba91800384857e86e7c3173b2e8
Author: lash <dev@holbrook.no>
Date: Thu, 24 Feb 2022 10:35:52 +0000
Flags cleanup, remove persistent wallet
Diffstat:
8 files changed, 49 insertions(+), 22 deletions(-)
diff --git a/CHANGELOG b/CHANGELOG
@@ -1,5 +1,11 @@
+- 0.0.23
+ * Configuration variable descriptions
+ * Arg flags to names listing method
+ * New flags preset for reads without wallet
+ * Remove pesistent wallet arg flag bug
+ * Rename arg flag reset to flag_reset
- 0.0.22
- * Add man page generator script
+ * Man page generator script
- 0.0.21
* Log rpc reply before json parse
- 0.0.20
diff --git a/MANIFEST.in b/MANIFEST.in
@@ -1 +1 @@
-include *requirements.txt LICENSE chainlib/data/config/*
+include *requirements.txt LICENSE chainlib/data/config/* chainlib/data/env/*
diff --git a/chainlib/cli/__init__.py b/chainlib/cli/__init__.py
@@ -3,7 +3,8 @@ from .base import (
argflag_std_read,
argflag_std_write,
argflag_std_base,
- reset,
+ argflag_std_base_read,
+ flag_reset,
)
from .arg import ArgumentParser
from .config import Config
diff --git a/chainlib/cli/arg.py b/chainlib/cli/arg.py
@@ -203,8 +203,9 @@ class ArgumentParser(argparse.ArgumentParser):
if arg_flags & (Flag.SIGN | Flag.FEE):
self.add_argument('--fee-price', dest='fee_price', type=int, help='override fee price')
self.add_argument('--fee-limit', dest='fee_limit', type=int, help='override fee limit')
- if arg_flags & argflag_std_target == 0:
- arg_flags |= Flag.WALLET
+ # wtf?
+ #if arg_flags & argflag_std_target == 0:
+ # arg_flags |= Flag.WALLET
if arg_flags & Flag.EXEC:
self.add_argument('-e', self.long_args['-e'], dest=self.arg_dest['-e'], type=str, help='contract address')
if arg_flags & Flag.WALLET:
diff --git a/chainlib/cli/base.py b/chainlib/cli/base.py
@@ -33,14 +33,32 @@ class Flag(enum.IntEnum):
SEND = 262144
# rpc extras - nibble 6
RPC_AUTH = 1048576
+ # upper bound
+ MAX = 1048576
argflag_std_read = 0x23ff
-argflag_std_write = 0xff31ff
+argflag_std_write = 0x1731ff
argflag_std_base = 0x200f
+argflag_std_base_read = 0xbf
argflag_std_target = 0x00e000
-argflag_all = 0xffffff
+argflag_all = 0x17f7ff
-def reset(flags, v):
+
+def flag_reset(flags, v):
mask = ~(argflag_all & v)
r = flags & mask
return r
+
+
+def flag_names(flags):
+ flags_debug = []
+ i = Flag.MAX
+ while True:
+ if flags & i > 0:
+ v = Flag(i)
+ flags_debug.append(v.name)
+ i >>= 1
+ if i == 0:
+ break
+ flags_debug.reverse()
+ return flags_debug
diff --git a/chainlib/cli/man.py b/chainlib/cli/man.py
@@ -132,6 +132,7 @@ class DocGenerator:
def process_arg(self):
+
if self.arg_flags & Flag.VERBOSE:
o = DocEntry('--no-logs')
o.set_groff('Turn of logging completely. Negates \\fB-v\\fP and \\fB-vv\\fP')
@@ -145,7 +146,6 @@ class DocGenerator:
o.set_groff('Very verbose. Show logs with debugging information.')
self.docs['vv'] = o
-
if self.arg_flags & Flag.CONFIG:
o = DocEntry('-c', '--config', argvalue='config_dir')
o.set_groff('Load configuration files from given directory. All files with an .ini extension will be loaded, of which all must contain valid ini file data.')
@@ -244,7 +244,6 @@ class DocGenerator:
o.set_groff('Produce output most optimized for machines.')
self.docs['raw'] = o
-
if self.arg_flags & (Flag.SIGN | Flag.NONCE):
o = DocEntry('--nonce')
o.set_groff('Explicitly set nonce to use for transaction.')
@@ -260,9 +259,10 @@ class DocGenerator:
o.set_groff('Set the limit of execution units for the transaction. If used with \\fB-s\\fP this may incur actual network token cost. If \\fB--fee-price\\fP is not explicitly set, the price \\fImay\\fP be retrieved from the network, and multiplied with this value to define the cost.')
self.docs['feelimit'] = o
- # TODO: this manipulation should be DRYd
- if self.arg_flags & argflag_std_target == 0:
- self.arg_flags |= Flag.WALLET
+
+# # TODO: this manipulation should be DRYd
+# if self.arg_flags & argflag_std_target == 0:
+# self.arg_flags |= Flag.WALLET
if self.arg_flags & Flag.EXEC:
diff --git a/scripts/chainlib-man.py b/scripts/chainlib-man.py
@@ -14,9 +14,12 @@ from chainlib.cli.man import (
DocGenerator,
apply_groff,
)
-from chainlib.cli.base import argflag_std_base
+from chainlib.cli.base import (
+ argflag_std_base,
+ flag_names,
+ )
from chainlib.cli.arg import ArgumentParser as ChainlibArgumentParser
-from chainlib.eth.cli.config import Config
+from chainlib.cli.config import Config
logging.basicConfig(level=logging.WARNING)
@@ -88,20 +91,18 @@ args = argparser.parse_args(sys.argv[1:])
if args.v:
logg.setLevel(logging.DEBUG)
-
b = bytes.fromhex(strip_0x(args.b))
-flags = int.from_bytes(b, byteorder='little')
+flags = int.from_bytes(b, byteorder='big')
+
+flags_debug= flag_names(flags)
+logg.debug('apply arg flags {}: {}'.format(flags, ', '.join(flags_debug)))
-#empty_args = ChainlibArgumentParser(flags).parse_args([])
-#config = Config.from_args(empty_args, arg_flags=flags)
-#g = DocGenerator(flags, config)
g = DocGenerator(flags)
toolname = args.n
if toolname == None:
parts = os.path.splitext(os.path.basename(args.header_file))
toolname = parts[0]
-
g.process()
if args.overrides_file != None:
diff --git a/setup.cfg b/setup.cfg
@@ -3,7 +3,7 @@ name=chainlib
license=WTFPL2
author_email=dev@holbrook.no
description=Generic blockchain access library and tooling
-version=0.0.22
+version=0.0.23
url=https://gitlab.com/chaintools/chainlib
author=Louis Holbrook