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
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':

View File

@ -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

View File

@ -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__':

View File

@ -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)

View File

@ -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

View File

@ -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