Skip to content

Commit

Permalink
lightningd: don't complain about bad funding PSBT for elements.
Browse files Browse the repository at this point in the history
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
  • Loading branch information
rustyrussell committed Mar 16, 2021
1 parent 22e1107 commit b563caf
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 8 deletions.
8 changes: 5 additions & 3 deletions lightningd/opening_control.c
Original file line number Diff line number Diff line change
Expand Up @@ -1031,9 +1031,11 @@ static struct command_result *json_fundchannel_complete(struct command *cmd,
return command_fail(cmd, FUNDING_PSBT_INVALID,
"No output to open channel");

if (!amount_sat_eq(amount_sat(funding_psbt->tx->outputs
[*funding_txout_num].satoshi),
fc->funding))
/* Can't really check amounts for elements. */
if (!chainparams->is_elements
&& !amount_sat_eq(amount_sat(funding_psbt->tx->outputs
[*funding_txout_num].satoshi),
fc->funding))
return command_fail(cmd, FUNDING_PSBT_INVALID,
"Output to open channel is %"PRIu64"sat,"
" should be %s",
Expand Down
11 changes: 6 additions & 5 deletions tests/test_connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -1094,11 +1094,12 @@ def test_funding_external_wallet_corners(node_factory, bitcoind):
with pytest.raises(RpcError, match=r'Already funding channel'):
l1.rpc.fundchannel(l2.info['id'], amount)

# Can't complete with incorrect amount.
wrongamt = l1.rpc.txprepare([{start['funding_address']: amount - 1}])
with pytest.raises(RpcError, match=r'Output to open channel is .*, should be .*'):
l1.rpc.fundchannel_complete(l2.info['id'], wrongamt['psbt'])
l1.rpc.txdiscard(wrongamt['txid'])
# Can't complete with incorrect amount (unchecked on Elements)
if TEST_NETWORK == 'regtest':
wrongamt = l1.rpc.txprepare([{start['funding_address']: amount - 1}])
with pytest.raises(RpcError, match=r'Output to open channel is .*, should be .*'):
l1.rpc.fundchannel_complete(l2.info['id'], wrongamt['psbt'])
l1.rpc.txdiscard(wrongamt['txid'])

# Can't complete with incorrect address.
wrongaddr = l1.rpc.txprepare([{l1.rpc.newaddr()['bech32']: amount}])
Expand Down

0 comments on commit b563caf

Please sign in to comment.