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/take/take.h>
|
||||||
#include <ccan/tal/str/str.h>
|
#include <ccan/tal/str/str.h>
|
||||||
#include <channeld/gen_channel_wire.h>
|
#include <channeld/gen_channel_wire.h>
|
||||||
|
#include <common/addr.h>
|
||||||
#include <common/dev_disconnect.h>
|
#include <common/dev_disconnect.h>
|
||||||
#include <common/features.h>
|
#include <common/features.h>
|
||||||
#include <common/htlc_trim.h>
|
#include <common/htlc_trim.h>
|
||||||
@@ -619,6 +620,17 @@ static void json_add_channel(struct lightningd *ld,
|
|||||||
json_add_string(response, "channel_id",
|
json_add_string(response, "channel_id",
|
||||||
type_to_string(tmpctx, struct channel_id, &cid));
|
type_to_string(tmpctx, struct channel_id, &cid));
|
||||||
json_add_txid(response, "funding_txid", &channel->funding_txid);
|
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(
|
json_add_bool(
|
||||||
response, "private",
|
response, "private",
|
||||||
!(channel->channel_flags & CHANNEL_FLAGS_ANNOUNCE_CHANNEL));
|
!(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
|
# check that you can provide a closing address upfront
|
||||||
addr = l1.rpc.newaddr()['bech32']
|
addr = l1.rpc.newaddr()['bech32']
|
||||||
_fundchannel(l1, l2, addr)
|
_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'])
|
resp = l1.rpc.close(l2.info['id'])
|
||||||
assert resp['type'] == 'mutual'
|
assert resp['type'] == 'mutual'
|
||||||
assert only_one(only_one(bitcoind.rpc.decoderawtransaction(resp['tx'])['vout'])['scriptPubKey']['addresses']) == addr
|
assert only_one(only_one(bitcoind.rpc.decoderawtransaction(resp['tx'])['vout'])['scriptPubKey']['addresses']) == addr
|
||||||
|
|
||||||
# check that passing in the same addr to close works
|
# check that passing in the same addr to close works
|
||||||
|
addr = bitcoind.rpc.getnewaddress()
|
||||||
_fundchannel(l1, l2, addr)
|
_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)
|
resp = l1.rpc.close(l2.info['id'], destination=addr)
|
||||||
assert resp['type'] == 'mutual'
|
assert resp['type'] == 'mutual'
|
||||||
assert only_one(only_one(bitcoind.rpc.decoderawtransaction(resp['tx'])['vout'])['scriptPubKey']['addresses']) == addr
|
assert only_one(only_one(bitcoind.rpc.decoderawtransaction(resp['tx'])['vout'])['scriptPubKey']['addresses']) == addr
|
||||||
|
|||||||
Reference in New Issue
Block a user