tx.base: add nondata_outputs property
This commit is contained in:
parent
92fc9fd462
commit
be025dc817
7 changed files with 17 additions and 9 deletions
|
|
@ -1 +1 @@
|
|||
15.1.dev14
|
||||
15.1.dev15
|
||||
|
|
|
|||
|
|
@ -295,6 +295,10 @@ class Base(TxBase):
|
|||
getattr(self.proto.coin_amt, to_unit) /
|
||||
self.estimate_size()))
|
||||
|
||||
@property
|
||||
def nondata_outputs(self):
|
||||
return [o for o in self.outputs if not o.data]
|
||||
|
||||
@property
|
||||
def deserialized(self):
|
||||
if not self._deserialized:
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ class Completed(Base, TxBase.Completed):
|
|||
@property
|
||||
def send_amt(self):
|
||||
return self.sum_outputs(
|
||||
exclude = None if len(self.outputs) == 1 else self.chg_idx
|
||||
exclude = None if len(self.nondata_outputs) == 1 else self.chg_idx
|
||||
)
|
||||
|
||||
def check_txfile_hex_data(self):
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ class New(Base, TxNew):
|
|||
cfg = self.cfg,
|
||||
message = yellow(message),
|
||||
action = 'Are you sure this is what you want?')
|
||||
if len(self.outputs) > 1 and not self.chg_output.mmid:
|
||||
if len(self.nondata_outputs) > 1 and not self.chg_output.mmid:
|
||||
do_err()
|
||||
|
||||
async def create_serialized(self, locktime=None, bump=None):
|
||||
|
|
|
|||
|
|
@ -29,6 +29,10 @@ class Base(TxBase.Base):
|
|||
usr_contract_data = HexStr('')
|
||||
disable_fee_check = False
|
||||
|
||||
@property
|
||||
def nondata_outputs(self):
|
||||
return self.outputs
|
||||
|
||||
def pretty_fmt_fee(self, fee):
|
||||
if fee < 1:
|
||||
ret = f'{fee:.8f}'.rstrip('0')
|
||||
|
|
|
|||
|
|
@ -49,8 +49,8 @@ class Bump(Completed, New):
|
|||
return False
|
||||
return True
|
||||
|
||||
if len(self.outputs) == 1:
|
||||
if check_sufficient_funds(self.outputs[0].amt):
|
||||
if len(self.nondata_outputs) == 1:
|
||||
if check_sufficient_funds(self.nondata_outputs[0].amt):
|
||||
self.bump_output_idx = 0
|
||||
return 0
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -245,8 +245,8 @@ class New(Base):
|
|||
f'{gc.proj_name} Segwit address requested on the command line, '
|
||||
'but Segwit is not active on this chain')
|
||||
|
||||
if not self.outputs:
|
||||
die(2, 'At least one output must be specified on the command line')
|
||||
if not self.nondata_outputs:
|
||||
die(2, 'At least one spending output must be specified on the command line')
|
||||
|
||||
self.add_mmaddrs_to_outputs(ad_f, ad_w)
|
||||
|
||||
|
|
@ -255,7 +255,7 @@ class New(Base):
|
|||
if self.chg_output is not None:
|
||||
if self.chg_autoselected:
|
||||
self.confirm_autoselected_addr(self.chg_output.mmid, 'change address')
|
||||
elif len(self.outputs) > 1:
|
||||
elif len(self.nondata_outputs) > 1:
|
||||
await self.warn_addr_used(self.proto, self.chg_output, 'change address')
|
||||
|
||||
def get_addrfiles_from_cmdline(self, cmd_args):
|
||||
|
|
@ -289,7 +289,7 @@ class New(Base):
|
|||
self.cfg,
|
||||
'Using {a} as {b}. OK?'.format(
|
||||
a = mmid.hl(),
|
||||
b = 'single output address' if len(self.outputs) == 1 else desc),
|
||||
b = 'single output address' if len(self.nondata_outputs) == 1 else desc),
|
||||
default_yes = True):
|
||||
die(1, 'Exiting at user request')
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue