Skip to content

Commit 636d33f

Browse files
committed
pi multiline followup
1 parent 557d89b commit 636d33f

2 files changed

Lines changed: 8 additions & 1 deletion

File tree

electrum/payment_identifier.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ def parse_amount(self, x: str) -> Union[str, int]:
491491
x = Decimal(x) * p
492492
if int(x) != x:
493493
raise InvalidOperation("no millisat precision allowed")
494-
return int(p * Decimal(x))
494+
return int(x)
495495
except InvalidOperation:
496496
raise Exception("Invalid amount")
497497

tests/test_payment_identifier.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,13 @@ def test_multiline(self):
334334
self.assertEqual(1000, pi.multiline_outputs[0].value)
335335
self.assertEqual(0, pi.multiline_outputs[1].value)
336336

337+
pi_str = '\n'.join([
338+
'bc1qj3zx2zc4rpv3npzmznxhdxzn0wm7pzqp8p2293,0.01',
339+
'bc1q66ex4c3vek4cdmrfjxtssmtguvs3r30pf42jpj,0.000001', # msat precision should invalidate multiline
340+
])
341+
pi = PaymentIdentifier(self.wallet, pi_str)
342+
self.assertFalse(pi.is_valid())
343+
337344
def test_spk(self):
338345
address = 'bc1qj3zx2zc4rpv3npzmznxhdxzn0wm7pzqp8p2293'
339346
for pi_str in [

0 commit comments

Comments
 (0)