From a73cb53ddc367a6bbc489f4c6fb692b2bb4ad560 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Sun, 23 Jun 2024 09:22:16 +0000 Subject: [PATCH] tx.new, tw.ctl: minor Ethereum fixes --- mmgen/amt.py | 3 ++- mmgen/data/release_date | 2 +- mmgen/data/version | 2 +- mmgen/proto/btc/tx/new.py | 10 +++++++++- mmgen/proto/eth/tx/new.py | 4 ++++ mmgen/tw/ctl.py | 6 +++--- mmgen/tx/new.py | 5 +---- 7 files changed, 21 insertions(+), 11 deletions(-) diff --git a/mmgen/amt.py b/mmgen/amt.py index bd06c2ce..d83ded4a 100755 --- a/mmgen/amt.py +++ b/mmgen/amt.py @@ -67,7 +67,8 @@ class CoinAmt(Decimal,Hilite,InitErrors): # abstract class def to_unit(self,unit,show_decimal=False): ret = Decimal(self) // getattr(self,unit) if show_decimal and ret < 1: - return f'{ret:.8f}'.rstrip('0') + ret = f'{ret:.8f}'.rstrip('0') + return ret + '0' if ret.endswith('.') else ret return int(ret) @classmethod diff --git a/mmgen/data/release_date b/mmgen/data/release_date index b1787d48..edc0cd40 100644 --- a/mmgen/data/release_date +++ b/mmgen/data/release_date @@ -1 +1 @@ -May 2024 +June 2024 diff --git a/mmgen/data/version b/mmgen/data/version index 022d98e3..adec06e4 100644 --- a/mmgen/data/version +++ b/mmgen/data/version @@ -1 +1 @@ -14.1.dev33 +14.1.dev34 diff --git a/mmgen/proto/btc/tx/new.py b/mmgen/proto/btc/tx/new.py index 494dd655..a2907002 100755 --- a/mmgen/proto/btc/tx/new.py +++ b/mmgen/proto/btc/tx/new.py @@ -14,7 +14,8 @@ proto.btc.tx.new: Bitcoin new transaction class from ....tx import new as TxBase from ....obj import MMGenTxID -from ....util import msg,fmt,make_chksum_6,die +from ....util import msg, fmt, make_chksum_6, die, suf +from ....color import pink from .base import Base class New(Base,TxBase.New): @@ -29,6 +30,13 @@ class New(Base,TxBase.New): self.cfg._util.vmsg(f'Relay fee: {kb_fee} {self.coin}/kB, for transaction: {ret} {self.coin}') return ret + @property + def network_estimated_fee_label(self): + return 'Network-estimated ({}, {} conf{})'.format( + self.cfg.fee_estimate_mode.upper(), + pink(str(self.cfg.fee_estimate_confs)), + suf(self.cfg.fee_estimate_confs)) + async def get_rel_fee_from_network(self): try: ret = await self.rpc.call( diff --git a/mmgen/proto/eth/tx/new.py b/mmgen/proto/eth/tx/new.py index 7eed9530..b1a31ad0 100755 --- a/mmgen/proto/eth/tx/new.py +++ b/mmgen/proto/eth/tx/new.py @@ -109,6 +109,10 @@ class New(Base,TxBase.New): else: return [int(reply)] + @property + def network_estimated_fee_label(self): + return 'Network-estimated' + # get rel_fee (gas price) from network, return in native wei async def get_rel_fee_from_network(self): return Int(await self.rpc.call('eth_gasPrice'),16),'eth_gasPrice' # ==> rel_fee,fe_type diff --git a/mmgen/tw/ctl.py b/mmgen/tw/ctl.py index 226324a1..27d721a7 100755 --- a/mmgen/tw/ctl.py +++ b/mmgen/tw/ctl.py @@ -73,15 +73,15 @@ class TwCtl(MMGenObject,metaclass=AsyncInit): self.importing = True mode = 'w' - if not no_rpc: - self.rpc = await rpc_init(cfg, proto, ignore_wallet=rpc_ignore_wallet) - self.cfg = cfg self.proto = proto self.mode = mode self.desc = self.base_desc = f'{self.proto.name} tracking wallet' self.cur_balances = {} # cache balances to prevent repeated lookups per program invocation + if not no_rpc: + self.rpc = await rpc_init(cfg, proto, ignore_wallet=rpc_ignore_wallet) + if self.use_tw_file: if self.proto.coin == 'BTC': self.tw_dir = Path(self.cfg.data_dir) diff --git a/mmgen/tx/new.py b/mmgen/tx/new.py index e1602b26..3e2f462e 100755 --- a/mmgen/tx/new.py +++ b/mmgen/tx/new.py @@ -159,10 +159,7 @@ class New(Base): desc = 'User-selected' start_fee = self.cfg.fee else: - desc = 'Network-estimated ({}, {} conf{})'.format( - self.cfg.fee_estimate_mode.upper(), - pink(str(self.cfg.fee_estimate_confs)), - suf(self.cfg.fee_estimate_confs) ) + desc = self.network_estimated_fee_label fee_per_kb,fe_type = await self.get_rel_fee_from_network() if fee_per_kb < 0: