Allow fee settings for read

This commit is contained in:
nolash 2021-09-01 09:38:09 +02:00
parent 5d7c5556d4
commit 6b5628cf28
Signed by: lash
GPG Key ID: 21D2E7BB88C2A746
6 changed files with 43 additions and 35 deletions

View File

@ -1,5 +1,6 @@
# standard imports # standard imports
import os import os
import logging
# external imports # external imports
from chainlib.cli import ( from chainlib.cli import (
@ -25,6 +26,9 @@ from chainlib.eth.nonce import (
OverrideNonceOracle, OverrideNonceOracle,
RPCNonceOracle, RPCNonceOracle,
) )
logg = logging.getLogger(__name__)
script_dir = os.path.dirname(os.path.realpath(__file__)) script_dir = os.path.dirname(os.path.realpath(__file__))
@ -57,8 +61,6 @@ class Rpc(BaseRpc):
if self.can_sign(): if self.can_sign():
nonce = None nonce = None
fee_price = None
fee_limit = None
try: try:
nonce = config.get('_NONCE') nonce = config.get('_NONCE')
except KeyError: except KeyError:
@ -68,14 +70,18 @@ class Rpc(BaseRpc):
else: else:
self.nonce_oracle = RPCNonceOracle(self.get_sender_address(), self.conn, id_generator=self.id_generator) self.nonce_oracle = RPCNonceOracle(self.get_sender_address(), self.conn, id_generator=self.id_generator)
fee_price = None
fee_limit = None
try: try:
fee_price = config.get('_FEE_PRICE') fee_price = config.get('_FEE_PRICE')
except KeyError: except KeyError:
pass pass
try: try:
fee_limit = config.get('_FEE_LIMIT') fee_limit = config.get('_FEE_LIMIT')
except KeyError: except KeyError:
pass pass
if fee_price != None or fee_limit != None: 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) self.fee_oracle = OverrideGasOracle(price=fee_price, limit=fee_limit, conn=self.conn, id_generator=self.id_generator)
else: else:

View File

@ -1,9 +1,10 @@
[rpc] [rpc]
http_provider = http://localhost:8545 http_provider = http://localhost:8545
http_authentication = provider =
http_username = auth =
http_password = credentials =
dialect = default dialect = default
scheme = http
[chain] [chain]
spec = evm:ethereum:1 spec = evm:ethereum:1

View File

@ -133,6 +133,7 @@ def main():
elif not is_checksum_address(address): elif not is_checksum_address(address):
raise ValueError('invalid checksum address: {}'.format(address)) raise ValueError('invalid checksum address: {}'.format(address))
r = get_address(conn, address, rpc.id_generator, config.get('_HEIGHT')) r = get_address(conn, address, rpc.id_generator, config.get('_HEIGHT'))
if r != None:
print(r) print(r)

View File

@ -110,11 +110,11 @@ def main():
sys.exit(1) sys.exit(1)
return return
elif signer_address != None: if signer_address != None:
if chain_spec == None: if chain_spec == None:
raise ValueError('chain spec must be specified') 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()) 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) tx = g.template(signer_address, exec_address, use_nonce=True)
if args.data != None: if args.data != None:
tx = g.set_code(tx, add_0x(args.data)) tx = g.set_code(tx, add_0x(args.data))

View File

@ -3,5 +3,5 @@ pysha3==1.0.2
hexathon~=0.0.1a8 hexathon~=0.0.1a8
websocket-client==0.57.0 websocket-client==0.57.0
potaahto~=0.0.1a1 potaahto~=0.0.1a1
chainlib==0.0.9a3 chainlib==0.0.9a6
confini>=0.4.1a1,<0.5.0 confini>=0.4.1a1,<0.5.0

View File

@ -1,6 +1,6 @@
[metadata] [metadata]
name = chainlib-eth name = chainlib-eth
version = 0.0.9a7 version = 0.0.9a9
description = Ethereum implementation of the chainlib interface description = Ethereum implementation of the chainlib interface
author = Louis Holbrook author = Louis Holbrook
author_email = dev@holbrook.no author_email = dev@holbrook.no