From 6b5628cf28d931def18bb55679727bd22aaa193f Mon Sep 17 00:00:00 2001 From: nolash Date: Wed, 1 Sep 2021 09:38:09 +0200 Subject: [PATCH] Allow fee settings for read --- chainlib/eth/cli.py | 34 +++++++++++++++++------------ chainlib/eth/data/config/config.ini | 7 +++--- chainlib/eth/runnable/get.py | 3 ++- chainlib/eth/runnable/raw.py | 30 ++++++++++++------------- requirements.txt | 2 +- setup.cfg | 2 +- 6 files changed, 43 insertions(+), 35 deletions(-) diff --git a/chainlib/eth/cli.py b/chainlib/eth/cli.py index 6172bcd..8a0723c 100644 --- a/chainlib/eth/cli.py +++ b/chainlib/eth/cli.py @@ -1,5 +1,6 @@ # standard imports import os +import logging # external imports from chainlib.cli import ( @@ -25,6 +26,9 @@ from chainlib.eth.nonce import ( OverrideNonceOracle, RPCNonceOracle, ) + +logg = logging.getLogger(__name__) + script_dir = os.path.dirname(os.path.realpath(__file__)) @@ -57,8 +61,6 @@ class Rpc(BaseRpc): if self.can_sign(): nonce = None - fee_price = None - fee_limit = None try: nonce = config.get('_NONCE') except KeyError: @@ -68,18 +70,22 @@ class Rpc(BaseRpc): else: self.nonce_oracle = RPCNonceOracle(self.get_sender_address(), self.conn, id_generator=self.id_generator) - try: - fee_price = config.get('_FEE_PRICE') - except KeyError: - pass - try: - fee_limit = config.get('_FEE_LIMIT') - except KeyError: - pass - if fee_price != None or fee_limit != None: - self.fee_oracle = OverrideGasOracle(price=fee_price, limit=fee_limit, conn=self.conn, id_generator=self.id_generator) - else: - self.fee_oracle = RPCGasOracle(self.conn, id_generator=self.id_generator) + fee_price = None + fee_limit = None + try: + fee_price = config.get('_FEE_PRICE') + except KeyError: + pass + + try: + fee_limit = config.get('_FEE_LIMIT') + except KeyError: + pass + + if fee_price != None or fee_limit != None: + self.fee_oracle = OverrideGasOracle(price=fee_price, limit=fee_limit, conn=self.conn, id_generator=self.id_generator) + else: + self.fee_oracle = RPCGasOracle(self.conn, id_generator=self.id_generator) error_parser = None if config.get('RPC_DIALECT') == 'openethereum': diff --git a/chainlib/eth/data/config/config.ini b/chainlib/eth/data/config/config.ini index 5be1dea..b59fd8c 100644 --- a/chainlib/eth/data/config/config.ini +++ b/chainlib/eth/data/config/config.ini @@ -1,9 +1,10 @@ [rpc] http_provider = http://localhost:8545 -http_authentication = -http_username = -http_password = +provider = +auth = +credentials = dialect = default +scheme = http [chain] spec = evm:ethereum:1 diff --git a/chainlib/eth/runnable/get.py b/chainlib/eth/runnable/get.py index b358e39..754e01e 100644 --- a/chainlib/eth/runnable/get.py +++ b/chainlib/eth/runnable/get.py @@ -133,7 +133,8 @@ def main(): elif not is_checksum_address(address): raise ValueError('invalid checksum address: {}'.format(address)) r = get_address(conn, address, rpc.id_generator, config.get('_HEIGHT')) - print(r) + if r != None: + print(r) if __name__ == '__main__': diff --git a/chainlib/eth/runnable/raw.py b/chainlib/eth/runnable/raw.py index 7f74d80..d893597 100644 --- a/chainlib/eth/runnable/raw.py +++ b/chainlib/eth/runnable/raw.py @@ -110,22 +110,22 @@ def main(): sys.exit(1) return - elif signer_address != None: - if chain_spec == None: - raise ValueError('chain spec must be specified') - g = TxFactory(chain_spec, signer=rpc.get_signer(), gas_oracle=rpc.get_gas_oracle(), nonce_oracle=rpc.get_nonce_oracle()) - tx = g.template(signer_address, recipient, use_nonce=True) - if args.data != None: - tx = g.set_code(tx, add_0x(args.data)) + if signer_address != None: + if chain_spec == None: + raise ValueError('chain spec must be specified') + g = TxFactory(chain_spec, signer=rpc.get_signer(), gas_oracle=rpc.get_gas_oracle(), nonce_oracle=rpc.get_nonce_oracle()) + tx = g.template(signer_address, exec_address, use_nonce=True) + if args.data != None: + tx = g.set_code(tx, add_0x(args.data)) - (tx_hash_hex, o) = g.finalize(tx, id_generator=rpc.id_generator) - - if send: - r = conn.do(o) - print(r) - else: - print(o) - print(tx_hash_hex) + (tx_hash_hex, o) = g.finalize(tx, id_generator=rpc.id_generator) + + if send: + r = conn.do(o) + print(r) + else: + print(o) + print(tx_hash_hex) else: o = raw(args.data, id_generator=rpc.id_generator) diff --git a/requirements.txt b/requirements.txt index 72096b1..5fcf1b9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,5 +3,5 @@ pysha3==1.0.2 hexathon~=0.0.1a8 websocket-client==0.57.0 potaahto~=0.0.1a1 -chainlib==0.0.9a3 +chainlib==0.0.9a6 confini>=0.4.1a1,<0.5.0 diff --git a/setup.cfg b/setup.cfg index 60c64b7..a4a91cb 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = chainlib-eth -version = 0.0.9a7 +version = 0.0.9a9 description = Ethereum implementation of the chainlib interface author = Louis Holbrook author_email = dev@holbrook.no