mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-19 07:04:22 +01:00
listpeers: show close_to address
If a 'upfront_shutdown_script' was specified, show the address + scriptpubky in `listpeers` Changelog-added: JSON API: `listpeers` channels now include `close_to` and `close_to_addr` iff a `close_to` address was specified at channel open
This commit is contained in:
committed by
Rusty Russell
parent
963a1da958
commit
a333df449a
@@ -14,6 +14,7 @@
|
||||
#include <ccan/take/take.h>
|
||||
#include <ccan/tal/str/str.h>
|
||||
#include <channeld/gen_channel_wire.h>
|
||||
#include <common/addr.h>
|
||||
#include <common/dev_disconnect.h>
|
||||
#include <common/features.h>
|
||||
#include <common/htlc_trim.h>
|
||||
@@ -619,6 +620,17 @@ static void json_add_channel(struct lightningd *ld,
|
||||
json_add_string(response, "channel_id",
|
||||
type_to_string(tmpctx, struct channel_id, &cid));
|
||||
json_add_txid(response, "funding_txid", &channel->funding_txid);
|
||||
|
||||
if (channel->shutdown_scriptpubkey[LOCAL]) {
|
||||
char *addr = encode_scriptpubkey_to_addr(tmpctx,
|
||||
get_chainparams(ld),
|
||||
channel->shutdown_scriptpubkey[LOCAL]);
|
||||
if (addr)
|
||||
json_add_string(response, "close_to_addr", addr);
|
||||
json_add_hex_talarr(response, "close_to",
|
||||
channel->shutdown_scriptpubkey[LOCAL]);
|
||||
}
|
||||
|
||||
json_add_bool(
|
||||
response, "private",
|
||||
!(channel->channel_flags & CHANNEL_FLAGS_ANNOUNCE_CHANNEL));
|
||||
|
||||
@@ -1133,12 +1133,16 @@ def test_funding_close_upfront(node_factory, bitcoind):
|
||||
# check that you can provide a closing address upfront
|
||||
addr = l1.rpc.newaddr()['bech32']
|
||||
_fundchannel(l1, l2, addr)
|
||||
# confirm that it appears in listpeers
|
||||
assert addr == only_one(l1.rpc.listpeers()['peers'])['channels'][1]['close_to_addr']
|
||||
resp = l1.rpc.close(l2.info['id'])
|
||||
assert resp['type'] == 'mutual'
|
||||
assert only_one(only_one(bitcoind.rpc.decoderawtransaction(resp['tx'])['vout'])['scriptPubKey']['addresses']) == addr
|
||||
|
||||
# check that passing in the same addr to close works
|
||||
addr = bitcoind.rpc.getnewaddress()
|
||||
_fundchannel(l1, l2, addr)
|
||||
assert addr == only_one(l1.rpc.listpeers()['peers'])['channels'][2]['close_to_addr']
|
||||
resp = l1.rpc.close(l2.info['id'], destination=addr)
|
||||
assert resp['type'] == 'mutual'
|
||||
assert only_one(only_one(bitcoind.rpc.decoderawtransaction(resp['tx'])['vout'])['scriptPubKey']['addresses']) == addr
|
||||
|
||||
Reference in New Issue
Block a user