Browse Source

use mktx_for_open_channel in commands module. fix indentation

patch-4
ThomasV 4 years ago
parent
commit
018f09f2af
  1. 19
      electrum/commands.py
  2. 7
      electrum/lnworker.py
  3. 16
      electrum/wallet.py

19
electrum/commands.py

@ -54,7 +54,6 @@ from .address_synchronizer import TX_HEIGHT_LOCAL
from .mnemonic import Mnemonic from .mnemonic import Mnemonic
from .lnutil import SENT, RECEIVED from .lnutil import SENT, RECEIVED
from .lnutil import LnFeatures from .lnutil import LnFeatures
from .lnutil import ln_dummy_address
from .lnpeer import channel_id_from_funding_tx from .lnpeer import channel_id_from_funding_tx
from .plugin import run_hook from .plugin import run_hook
from .version import ELECTRUM_VERSION from .version import ELECTRUM_VERSION
@ -996,13 +995,17 @@ class Commands:
async def open_channel(self, connection_string, amount, push_amount=0, password=None, wallet: Abstract_Wallet = None): async def open_channel(self, connection_string, amount, push_amount=0, password=None, wallet: Abstract_Wallet = None):
funding_sat = satoshis(amount) funding_sat = satoshis(amount)
push_sat = satoshis(push_amount) push_sat = satoshis(push_amount)
dummy_output = PartialTxOutput.from_address_and_value(ln_dummy_address(), funding_sat) coins = wallet.get_spendable_coins(None)
funding_tx = wallet.mktx(outputs = [dummy_output], rbf=False, sign=False, nonlocal_only=True) funding_tx = wallet.lnworker.mktx_for_open_channel(
chan, funding_tx = await wallet.lnworker._open_channel_coroutine(connect_str=connection_string, coins=coins,
funding_tx=funding_tx, funding_sat=funding_sat,
funding_sat=funding_sat, fee_est=None)
push_sat=push_sat, chan, funding_tx = await wallet.lnworker._open_channel_coroutine(
password=password) connect_str=connection_string,
funding_tx=funding_tx,
funding_sat=funding_sat,
push_sat=push_sat,
password=password)
return chan.funding_outpoint.to_str() return chan.funding_outpoint.to_str()
@command('') @command('')

7
electrum/lnworker.py

@ -984,8 +984,11 @@ class LNWallet(LNWorker):
self.remove_channel(chan.channel_id) self.remove_channel(chan.channel_id)
raise raise
def mktx_for_open_channel(self, *, coins: Sequence[PartialTxInput], funding_sat: int, def mktx_for_open_channel(
fee_est=None) -> PartialTransaction: self, *,
coins: Sequence[PartialTxInput],
funding_sat: int,
fee_est=None) -> PartialTransaction:
dummy_address = ln_dummy_address() dummy_address = ln_dummy_address()
outputs = [PartialTxOutput.from_address_and_value(dummy_address, funding_sat)] outputs = [PartialTxOutput.from_address_and_value(dummy_address, funding_sat)]
tx = self.wallet.make_unsigned_transaction( tx = self.wallet.make_unsigned_transaction(

16
electrum/wallet.py

@ -1330,13 +1330,17 @@ class Abstract_Wallet(AddressSynchronizer, ABC):
run_hook('make_unsigned_transaction', self, tx) run_hook('make_unsigned_transaction', self, tx)
return tx return tx
def mktx(self, *, outputs: List[PartialTxOutput], password=None, fee=None, change_addr=None, def mktx(self, *,
domain=None, rbf=False, nonlocal_only=False, tx_version=None, sign=True) -> PartialTransaction: outputs: List[PartialTxOutput],
password=None, fee=None, change_addr=None,
domain=None, rbf=False, nonlocal_only=False,
tx_version=None, sign=True) -> PartialTransaction:
coins = self.get_spendable_coins(domain, nonlocal_only=nonlocal_only) coins = self.get_spendable_coins(domain, nonlocal_only=nonlocal_only)
tx = self.make_unsigned_transaction(coins=coins, tx = self.make_unsigned_transaction(
outputs=outputs, coins=coins,
fee=fee, outputs=outputs,
change_addr=change_addr) fee=fee,
change_addr=change_addr)
tx.set_rbf(rbf) tx.set_rbf(rbf)
if tx_version is not None: if tx_version is not None:
tx.version = tx_version tx.version = tx_version

Loading…
Cancel
Save