mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-20 15:44:21 +01:00
pyln-client: to_whole_satoshi returns the rounded up satoshi value
A fractional satoshi value isn't really useful; rounding up loses precision but that's why you called "whole satoshi", wasn't it? Changelog-Changed: pyln-client: Millisatoshi has new method, `to_whole_satoshi`; *rounds value up* to the nearest whole satoshi
This commit is contained in:
committed by
Christian Decker
parent
cce0020568
commit
e3a1d1a7f3
@@ -92,6 +92,13 @@ class Millisatoshi:
|
||||
"""
|
||||
return Decimal(self.millisatoshis) / 1000
|
||||
|
||||
def to_whole_satoshi(self) -> int:
|
||||
"""
|
||||
Return an int respresenting the number of satoshis;
|
||||
rounded up to the nearest satoshi
|
||||
"""
|
||||
return (self.millisatoshis + 999) // 1000
|
||||
|
||||
def to_btc(self) -> Decimal:
|
||||
"""
|
||||
Return a Decimal representing the number of bitcoin.
|
||||
|
||||
@@ -84,12 +84,12 @@ def on_openchannel(openchannel2, plugin, **kwargs):
|
||||
psbt_obj = psbt_from_base64(funding['psbt'])
|
||||
|
||||
excess = Millisatoshi(funding['excess_msat'])
|
||||
change_cost = Millisatoshi(124 * feerate // 1000 * 1000)
|
||||
change_cost = Millisatoshi(124 * feerate)
|
||||
dust_limit = Millisatoshi(253 * 1000)
|
||||
if excess > (dust_limit + change_cost):
|
||||
addr = plugin.rpc.newaddr()['bech32']
|
||||
change = excess - change_cost
|
||||
output = tx_output_init(int(change.to_satoshi()), get_script(addr))
|
||||
output = tx_output_init(change.to_whole_satoshi(), get_script(addr))
|
||||
psbt_add_output_at(psbt_obj, 0, 0, output)
|
||||
|
||||
return {'result': 'continue', 'psbt': psbt_to_base64(psbt_obj, 0),
|
||||
|
||||
Reference in New Issue
Block a user