1
0

invoices: get_outputs to use .outputs field if available

It is wasteful to create new PartialTxOutput objects if we already have an outputs field.
Btw apparently lightning invoices too have an outputs field.
This commit is contained in:
SomberNight
2023-02-08 00:40:46 +00:00
parent 5eb7bcebef
commit 71697afabd

View File

@@ -1,5 +1,5 @@
import time
from typing import TYPE_CHECKING, List, Optional, Union, Dict, Any
from typing import TYPE_CHECKING, List, Optional, Union, Dict, Any, Sequence
from decimal import Decimal
import attr
@@ -126,16 +126,13 @@ class Invoice(StoredObject):
address = self._lnaddr.get_fallback_address() or None
return address
def get_outputs(self):
if self.is_lightning():
def get_outputs(self) -> Sequence[PartialTxOutput]:
outputs = self.outputs or []
if not outputs:
address = self.get_address()
amount = self.get_amount_sat()
if address and amount is not None:
outputs = [PartialTxOutput.from_address_and_value(address, int(amount))]
else:
outputs = []
else:
outputs = self.outputs
return outputs
def can_be_paid_onchain(self) -> bool: