tx.bump: support non-integer relative fees

This commit is contained in:
The MMGen Project 2025-03-29 09:30:16 +00:00
commit 69c4242a63
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
3 changed files with 11 additions and 5 deletions

View file

@ -211,3 +211,8 @@ class ETCAmt(ETHAmt):
def CoinAmtChk(proto, num):
assert type(num) is proto.coin_amt, f'CoinAmtChk: {type(num)} != {proto.coin_amt}'
return num
class RelFeeAmt(Decimal):
def __str__(self):
return '{:.08f}'.format(self).rstrip('0').rstrip('.')

View file

@ -58,7 +58,7 @@ class OnlineSigned(Signed, TxBase.OnlineSigned):
return True
def post_write(self):
if 'token_addr' in self.txobj:
if 'token_addr' in self.txobj and not self.txobj['to']:
msg('Contract address: {}'.format(self.txobj['token_addr'].hl(0)))
class TokenOnlineSigned(TokenSigned, OnlineSigned):

View file

@ -57,11 +57,12 @@ class Bump(Completed, NewSwap):
return True
def check_bumped_fee_ok(self, abs_fee):
orig = int(self.orig_rel_fee)
new = int(self.fee_abs2rel(abs_fee))
from ..amt import RelFeeAmt
orig = RelFeeAmt(self.orig_rel_fee)
new = RelFeeAmt(self.fee_abs2rel(abs_fee))
if new <= orig:
ymsg('New fee ({b} {d}) <= original fee ({a} {d}). Please choose a higher fee'.format(
a=orig, b=new, d=self.rel_fee_disp))
fs = 'New fee ({b!s} {d}) <= original fee ({a!s} {d})\nPlease choose a higher fee'
ymsg(fs.format(a=orig, b=new, d=self.rel_fee_disp))
return False
return True