From 6c75e0b478b6e6cce9fa74912650489e4450a1e4 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:09:35 +0930 Subject: [PATCH 01/37] pytest: test for splicing while channel is not announced yet. ``` DEBUG lightningd: Got depth change 2->3 for e9e31956f77c3844ee2e6e4607dbfebdee95a9aa549668a7a429b8246a6a29de **BROKEN** lightningd: FATAL SIGNAL 6 (version v25.09-20-g003ba4a) **BROKEN** lightningd: backtrace: common/daemon.c:41 (send_backtrace) 0x619bef20e274 **BROKEN** lightningd: backtrace: common/daemon.c:78 (crashdump) 0x619bef20e408 **BROKEN** lightningd: backtrace: ./signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0 ((null)) 0x7a1ccf24532f **BROKEN** lightningd: backtrace: ./nptl/pthread_kill.c:44 (__pthread_kill_implementation) 0x7a1ccf29eb2c **BROKEN** lightningd: backtrace: ./nptl/pthread_kill.c:78 (__pthread_kill_internal) 0x7a1ccf29eb2c **BROKEN** lightningd: backtrace: ./nptl/pthread_kill.c:89 (__GI___pthread_kill) 0x7a1ccf29eb2c **BROKEN** lightningd: backtrace: ../sysdeps/posix/raise.c:26 (__GI_raise) 0x7a1ccf24527d **BROKEN** lightningd: backtrace: ./stdlib/abort.c:79 (__GI_abort) 0x7a1ccf2288fe **BROKEN** lightningd: backtrace: ./assert/assert.c:96 (__assert_fail_base) 0x7a1ccf22881a **BROKEN** lightningd: backtrace: ./assert/assert.c:105 (__assert_fail) 0x7a1ccf23b516 **BROKEN** lightningd: backtrace: lightningd/peer_control.c:2202 (funding_depth_cb) 0x619bef1ac497 **BROKEN** lightningd: backtrace: lightningd/watch.c:223 (txw_fire) 0x619bef1cfcbf **BROKEN** lightningd: backtrace: lightningd/watch.c:292 (watch_topology_changed) 0x619bef1cffa4 **BROKEN** lightningd: backtrace: lightningd/chaintopology.c:829 (updates_complete) 0x619bef144a8c **BROKEN** lightningd: backtrace: lightningd/chaintopology.c:1047 (get_new_block) 0x619bef14561e ``` Signed-off-by: Rusty Russell --- tests/test_splicing.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/test_splicing.py b/tests/test_splicing.py index 996afcec3897..784cee866d8c 100644 --- a/tests/test_splicing.py +++ b/tests/test_splicing.py @@ -556,3 +556,30 @@ def test_route_by_old_scid(node_factory, bitcoind): wait_for(lambda: only_one(l1.rpc.listpeers()['peers'])['connected'] is True) l1.rpc.sendpay(route, inv2['payment_hash'], payment_secret=inv2['payment_secret']) l1.rpc.waitsendpay(inv2['payment_hash']) + + +@pytest.mark.xfail(strict=True) +def test_splice_unannounced(node_factory, bitcoind): + l1, l2 = node_factory.line_graph(2, fundamount=1000000, wait_for_announce=False, opts={'experimental-splicing': None}) + + chan_id = l1.get_channel_id(l2) + + # add extra sats to pay fee + funds_result = l1.rpc.fundpsbt("109000sat", "slow", 166, excess_as_change=True) + result = l1.rpc.splice_init(chan_id, 100000, funds_result['psbt']) + result = l1.rpc.splice_update(chan_id, result['psbt']) + assert(result['commitments_secured'] is False) + result = l1.rpc.splice_update(chan_id, result['psbt']) + assert(result['commitments_secured'] is True) + result = l1.rpc.signpsbt(result['psbt']) + result = l1.rpc.splice_signed(chan_id, result['signed_psbt']) + + l2.daemon.wait_for_log(r'CHANNELD_NORMAL to CHANNELD_AWAITING_SPLICE') + l1.daemon.wait_for_log(r'CHANNELD_NORMAL to CHANNELD_AWAITING_SPLICE') + + bitcoind.generate_block(1, wait_for_mempool=1) + + l2.daemon.wait_for_log(r'CHANNELD_AWAITING_SPLICE to CHANNELD_NORMAL') + l1.daemon.wait_for_log(r'CHANNELD_AWAITING_SPLICE to CHANNELD_NORMAL') + bitcoind.generate_block(1) + sync_blockheight(bitcoind, [l1, l2]) From 23dbd46e7b7e31beec0eb0ac2f93fa7ac0c878a4 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:10:35 +0930 Subject: [PATCH 02/37] lightningd: cancel watching original funding when we switch to the new one via splice. This happens if the channel is *not* announcable yet. Then we hit the assertion in funding_depth_cb that the txid is the same as the current funding.txid. Signed-off-by: Rusty Russell Changelog-EXPERIMENTAL: fixed crash when we splice a channel which hasn't been announced yet. --- lightningd/channel_control.c | 5 ++++- lightningd/peer_control.c | 8 ++++++++ lightningd/peer_control.h | 1 + lightningd/test/run-invoice-select-inchan.c | 10 ++++++++++ tests/test_splicing.py | 3 ++- wallet/test/run-wallet.c | 10 ++++++++++ 6 files changed, 35 insertions(+), 2 deletions(-) diff --git a/lightningd/channel_control.c b/lightningd/channel_control.c index a72f959837ae..b291816f2cff 100644 --- a/lightningd/channel_control.c +++ b/lightningd/channel_control.c @@ -1134,7 +1134,8 @@ static void handle_peer_splice_locked(struct channel *channel, const u8 *msg) wallet_htlcsigs_confirm_inflight(channel->peer->ld->wallet, channel, &inflight->funding->outpoint); - update_channel_from_inflight(channel->peer->ld, channel, inflight, true); + /* Stop watching previous funding tx (could be, for announcement) */ + channel_unwatch_funding(channel->peer->ld, channel); /* Stash prev funding data so we can log it after scid is updated * (to get the blockheight) */ @@ -1142,6 +1143,8 @@ static void handle_peer_splice_locked(struct channel *channel, const u8 *msg) prev_funding_sats = channel->funding_sats; prev_funding_out = channel->funding; + update_channel_from_inflight(channel->peer->ld, channel, inflight, true); + channel->our_msat.millisatoshis += splice_amnt * 1000; /* Raw: splicing */ channel->msat_to_us_min.millisatoshis += splice_amnt * 1000; /* Raw: splicing */ channel->msat_to_us_max.millisatoshis += splice_amnt * 1000; /* Raw: splicing */ diff --git a/lightningd/peer_control.c b/lightningd/peer_control.c index 19780fae7e7a..2f11dcb80794 100644 --- a/lightningd/peer_control.c +++ b/lightningd/peer_control.c @@ -2382,6 +2382,14 @@ void channel_watch_wrong_funding(struct lightningd *ld, struct channel *channel) } } +/* We need to do this before we change channel funding (for splice), otherwise + * funding_depth_cb will fail the assertion that it's the current funding tx */ +void channel_unwatch_funding(struct lightningd *ld, struct channel *channel) +{ + tal_free(find_txwatch(ld->topology, + &channel->funding.txid, funding_depth_cb, channel)); +} + void channel_watch_funding(struct lightningd *ld, struct channel *channel) { log_debug(channel->log, "Watching for funding txid: %s", diff --git a/lightningd/peer_control.h b/lightningd/peer_control.h index 382d0826baf1..63826f5b628d 100644 --- a/lightningd/peer_control.h +++ b/lightningd/peer_control.h @@ -131,6 +131,7 @@ void update_channel_from_inflight(struct lightningd *ld, const struct channel_inflight *inflight, bool is_splice); +void channel_unwatch_funding(struct lightningd *ld, struct channel *channel); void channel_watch_funding(struct lightningd *ld, struct channel *channel); /* If this channel has a "wrong funding" shutdown, watch that too. */ diff --git a/lightningd/test/run-invoice-select-inchan.c b/lightningd/test/run-invoice-select-inchan.c index 00eef5e44b70..1c234c5dae90 100644 --- a/lightningd/test/run-invoice-select-inchan.c +++ b/lightningd/test/run-invoice-select-inchan.c @@ -291,6 +291,16 @@ struct channel *find_channel_by_id(const struct peer *peer UNNEEDED, struct plugin *find_plugin_for_command(struct lightningd *ld UNNEEDED, const char *cmd_name UNNEEDED) { fprintf(stderr, "find_plugin_for_command called!\n"); abort(); } +/* Generated stub for find_txwatch_ */ +struct txwatch *find_txwatch_(struct chain_topology *topo UNNEEDED, + const struct bitcoin_txid *txid UNNEEDED, + enum watch_result (*cb)(struct lightningd *ld UNNEEDED, + const struct bitcoin_txid * UNNEEDED, + const struct bitcoin_tx * UNNEEDED, + unsigned int depth UNNEEDED, + void *arg) UNNEEDED, + void *arg UNNEEDED) +{ fprintf(stderr, "find_txwatch_ called!\n"); abort(); } /* Generated stub for fixup_htlcs_out */ void fixup_htlcs_out(struct lightningd *ld UNNEEDED) { fprintf(stderr, "fixup_htlcs_out called!\n"); abort(); } diff --git a/tests/test_splicing.py b/tests/test_splicing.py index 784cee866d8c..50d91b2f9303 100644 --- a/tests/test_splicing.py +++ b/tests/test_splicing.py @@ -558,7 +558,8 @@ def test_route_by_old_scid(node_factory, bitcoind): l1.rpc.waitsendpay(inv2['payment_hash']) -@pytest.mark.xfail(strict=True) +@pytest.mark.openchannel('v1') +@pytest.mark.openchannel('v2') def test_splice_unannounced(node_factory, bitcoind): l1, l2 = node_factory.line_graph(2, fundamount=1000000, wait_for_announce=False, opts={'experimental-splicing': None}) diff --git a/wallet/test/run-wallet.c b/wallet/test/run-wallet.c index 5a6ad596c3b7..4d96e83bb1bf 100644 --- a/wallet/test/run-wallet.c +++ b/wallet/test/run-wallet.c @@ -264,6 +264,16 @@ void fatal(const char *fmt UNNEEDED, ...) /* Generated stub for fatal_vfmt */ void fatal_vfmt(const char *fmt UNNEEDED, va_list ap UNNEEDED) { fprintf(stderr, "fatal_vfmt called!\n"); abort(); } +/* Generated stub for find_txwatch_ */ +struct txwatch *find_txwatch_(struct chain_topology *topo UNNEEDED, + const struct bitcoin_txid *txid UNNEEDED, + enum watch_result (*cb)(struct lightningd *ld UNNEEDED, + const struct bitcoin_txid * UNNEEDED, + const struct bitcoin_tx * UNNEEDED, + unsigned int depth UNNEEDED, + void *arg) UNNEEDED, + void *arg UNNEEDED) +{ fprintf(stderr, "find_txwatch_ called!\n"); abort(); } /* Generated stub for force_peer_disconnect */ void force_peer_disconnect(struct lightningd *ld UNNEEDED, const struct peer *peer UNNEEDED, From a281444d5e83daf0be178b1da89a6fb426fd5d7f Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:16:58 +0930 Subject: [PATCH 03/37] lightningd: fix crash in channel_control. I got a NULL deref on `infcopy->remote_funding = *inflight->funding->splice_remote_funding` at once point in testing, so this should prevent that from happening, yet still allow us to catch it in CI if it happens again. Signed-off-by: Rusty Russell --- lightningd/channel_control.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lightningd/channel_control.c b/lightningd/channel_control.c index b291816f2cff..78102f2579f0 100644 --- a/lightningd/channel_control.c +++ b/lightningd/channel_control.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -1827,6 +1828,11 @@ bool peer_start_channeld(struct channel *channel, if (inflight->splice_locked_memonly) continue; + if (!inflight->funding->splice_remote_funding) { + send_backtrace("Inflight has no splice_remote_funding?!"); + continue; + } + infcopy = tal(inflights, struct inflight); infcopy->remote_funding = *inflight->funding->splice_remote_funding; From 65a9736299540f139d5dee5a8a85e03253f07c47 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:17:40 +0930 Subject: [PATCH 04/37] pytest: add test that we notice height change of sendpsbt with no change. Signed-off-by: Rusty Russell --- tests/test_wallet.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/test_wallet.py b/tests/test_wallet.py index b26679b1856c..436f14e66d4b 100644 --- a/tests/test_wallet.py +++ b/tests/test_wallet.py @@ -1887,6 +1887,35 @@ def test_onchain_missing_no_p2tr_migrate(node_factory, bitcoind): l2.daemon.wait_for_log('Rescan finished! 1 outputs recovered') +@pytest.mark.xfail(strict=True) +@pytest.mark.parametrize("restart", [False, True]) +def test_sendpsbt_confirm(node_factory, bitcoind, restart): + """We should see our sendpsbt in wallet, and that it gets confirmed""" + l1, l2 = node_factory.get_nodes(2) + l1.fundwallet(100000) + + psbt = l1.rpc.fundpsbt(satoshi=10000, + feerate=7500, + startweight=42)['psbt'] + psbt = l2.rpc.addpsbtoutput(10000, psbt)['psbt'] + psbt = l1.rpc.signpsbt(psbt)['signed_psbt'] + sent = l1.rpc.sendpsbt(psbt) + + # Unconfirmed + lt = only_one([t for t in l1.rpc.listtransactions()['transactions'] if t['rawtx'] == sent['tx']]) + assert lt['blockheight'] == 0 + + if restart: + l1.restart() + + bitcoind.generate_block(1, wait_for_mempool=sent['txid']) + sync_blockheight(bitcoind, [l1]) + + # Should be confirmed now! + lt = only_one([t for t in l1.rpc.listtransactions()['transactions'] if t['rawtx'] == sent['tx']]) + assert lt['blockheight'] == bitcoind.rpc.getblockcount() + + def test_old_htlcs_cleanup(node_factory, bitcoind): """We lazily delete htlcs from channel_htlcs table""" l1, l2 = node_factory.line_graph(2) From 1c6204804a3547d8807947f6a19192a8cf5327c4 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:17:40 +0930 Subject: [PATCH 05/37] wallet: make sure to watch all txids in transactions table. We watch if they are to do with a channel, or have outputs going to us, but otherwise we didn't, so we never updated the blockheight in the db. Signed-off-by: Rusty Russell Changelog-Fixed: JSON-RPC: `listtransactions` now correctly updates `blockheight` for txs created by `sendpsbt` which have no change outputs. --- lightningd/chaintopology.c | 37 +++++++++++++++++++++++++++++++++++++ lightningd/chaintopology.h | 8 ++++++++ tests/test_wallet.py | 1 - wallet/wallet.c | 13 ++++++++++--- wallet/walletrpc.c | 9 ++++++--- 5 files changed, 61 insertions(+), 7 deletions(-) diff --git a/lightningd/chaintopology.c b/lightningd/chaintopology.c index 59f004f732a7..7d02e9245395 100644 --- a/lightningd/chaintopology.c +++ b/lightningd/chaintopology.c @@ -356,6 +356,37 @@ static void watch_for_utxo_reconfirmation(struct chain_topology *topo, } } +static enum watch_result tx_confirmed(struct lightningd *ld, + const struct bitcoin_txid *txid, + const struct bitcoin_tx *tx, + unsigned int depth, + void *unused) +{ + /* We don't actually need to do anything here: the fact that we were + * watching the tx made chaintopology.c update the transaction depth */ + if (depth != 0) + return DELETE_WATCH; + return KEEP_WATCHING; +} + +void watch_unconfirmed_txid(struct lightningd *ld, + struct chain_topology *topo, + const struct bitcoin_txid *txid) +{ + watch_txid(ld->wallet, topo, txid, tx_confirmed, NULL); +} + +static void watch_for_unconfirmed_txs(struct lightningd *ld, + struct chain_topology *topo) +{ + struct bitcoin_txid *txids; + + txids = wallet_transactions_by_height(tmpctx, ld->wallet, 0); + log_debug(ld->log, "Got %zu unconfirmed transactions", tal_count(txids)); + for (size_t i = 0; i < tal_count(txids); i++) + watch_unconfirmed_txid(ld, topo, &txids[i]); +} + /* Mutual recursion via timer. */ static void next_updatefee_timer(struct chain_topology *topo); @@ -1028,6 +1059,7 @@ static void remove_tip(struct chain_topology *topo) /* This may have unconfirmed txs: reconfirm as we add blocks. */ watch_for_utxo_reconfirmation(topo, topo->ld->wallet); + block_map_del(topo->block_map, b); /* These no longer exist, so gossipd drops any reference to them just @@ -1478,6 +1510,11 @@ void setup_topology(struct chain_topology *topo) /* May have unconfirmed txs: reconfirm as we add blocks. */ watch_for_utxo_reconfirmation(topo, topo->ld->wallet); + + /* We usually watch txs because we have outputs coming to us, or they're + * related to a channel. But not if they're created by sendpsbt without any + * outputs to us. */ + watch_for_unconfirmed_txs(topo->ld, topo); db_commit_transaction(topo->ld->wallet->db); tal_free(local_ctx); diff --git a/lightningd/chaintopology.h b/lightningd/chaintopology.h index 4f80d21622a8..8a867b0e21f1 100644 --- a/lightningd/chaintopology.h +++ b/lightningd/chaintopology.h @@ -12,6 +12,7 @@ struct command; struct lightningd; struct peer; struct txwatch; +struct wallet; /* We keep the last three in case there are outliers (for min/max) */ #define FEE_HISTORY_NUM 3 @@ -280,4 +281,11 @@ void topology_add_sync_waiter_(const tal_t *ctx, /* In channel_control.c */ void notify_feerate_change(struct lightningd *ld); + +/* We want to update db when this txid is confirmed. We always do this + * if it's related to a channel or incoming funds, but sendpsbt without + * change would be otherwise untracked. */ +void watch_unconfirmed_txid(struct lightningd *ld, + struct chain_topology *topo, + const struct bitcoin_txid *txid); #endif /* LIGHTNING_LIGHTNINGD_CHAINTOPOLOGY_H */ diff --git a/tests/test_wallet.py b/tests/test_wallet.py index 436f14e66d4b..c2cd96aafafc 100644 --- a/tests/test_wallet.py +++ b/tests/test_wallet.py @@ -1887,7 +1887,6 @@ def test_onchain_missing_no_p2tr_migrate(node_factory, bitcoind): l2.daemon.wait_for_log('Rescan finished! 1 outputs recovered') -@pytest.mark.xfail(strict=True) @pytest.mark.parametrize("restart", [False, True]) def test_sendpsbt_confirm(node_factory, bitcoind, restart): """We should see our sendpsbt in wallet, and that it gets confirmed""" diff --git a/wallet/wallet.c b/wallet/wallet.c index 599e2f920ade..91962ba6bb1b 100644 --- a/wallet/wallet.c +++ b/wallet/wallet.c @@ -5189,9 +5189,16 @@ struct bitcoin_txid *wallet_transactions_by_height(const tal_t *ctx, struct db_stmt *stmt; struct bitcoin_txid *txids = tal_arr(ctx, struct bitcoin_txid, 0); int count = 0; - stmt = db_prepare_v2( - w->db, SQL("SELECT id FROM transactions WHERE blockheight=?")); - db_bind_int(stmt, blockheight); + + /* Note: blockheight=NULL is not the same as is NULL! */ + if (blockheight == 0) { + stmt = db_prepare_v2( + w->db, SQL("SELECT id FROM transactions WHERE blockheight IS NULL")); + } else { + stmt = db_prepare_v2( + w->db, SQL("SELECT id FROM transactions WHERE blockheight=?")); + db_bind_int(stmt, blockheight); + } db_query_prepared(stmt); while (db_step(stmt)) { diff --git a/wallet/walletrpc.c b/wallet/walletrpc.c index 677db8bab66f..ab011b553b4c 100644 --- a/wallet/walletrpc.c +++ b/wallet/walletrpc.c @@ -953,7 +953,6 @@ static void maybe_notify_new_external_send(struct lightningd *ld, wallet_save_chain_mvt(ld, take(mvt)); } - static void sendpsbt_done(struct bitcoind *bitcoind UNUSED, bool success, const char *msg, struct sending_psbt *sending) @@ -985,10 +984,14 @@ static void sendpsbt_done(struct bitcoind *bitcoind UNUSED, } wallet_transaction_add(ld->wallet, sending->wtx, 0, 0); + wally_txid(sending->wtx, &txid); /* Extract the change output and add it to the DB */ - wallet_extract_owned_outputs(ld->wallet, sending->wtx, false, NULL); - wally_txid(sending->wtx, &txid); + if (wallet_extract_owned_outputs(ld->wallet, sending->wtx, false, NULL) == 0) { + /* If we're not watching it for selfish reasons (i.e. pure send to + * others), make sure we're watching it so we can update depth in db */ + watch_unconfirmed_txid(ld, ld->topology, &txid); + } for (size_t i = 0; i < sending->psbt->num_outputs; i++) maybe_notify_new_external_send(ld, &txid, i, sending->psbt); From 39cc1955dca0d908550e61dc53c3d8e2da5d8e27 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:17:40 +0930 Subject: [PATCH 06/37] memleak: make notleak() work even before memleak is initalized. It now simply renames tal names, so it's harmless to do even if we're not going to do memleak detection. Signed-off-by: Rusty Russell --- cli/Makefile | 1 + common/configdir.c | 4 ++-- common/memleak.c | 12 +++++------- common/trace.c | 6 +----- tools/Makefile | 2 +- 5 files changed, 10 insertions(+), 15 deletions(-) diff --git a/cli/Makefile b/cli/Makefile index 82dea907ea61..05c07100d9d1 100644 --- a/cli/Makefile +++ b/cli/Makefile @@ -10,6 +10,7 @@ LIGHTNING_CLI_COMMON_OBJS := \ common/configdir.o \ common/configvar.o \ common/json_parse_simple.o \ + common/memleak.o \ common/status_levels.o \ common/utils.o \ common/version.o diff --git a/common/configdir.c b/common/configdir.c index 248c8e73e010..0926c44fd569 100644 --- a/common/configdir.c +++ b/common/configdir.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -36,8 +37,7 @@ static char *opt_set_abspath(const char *arg, char **p) /* Tal wrappers for opt. */ static void *opt_allocfn(size_t size) { - return tal_arr_label(NULL, char, size, - TAL_LABEL(opt_allocfn_notleak, "")); + return notleak(tal_arr(NULL, char, size)); } static void *tal_reallocfn(void *ptr, size_t size) diff --git a/common/memleak.c b/common/memleak.c index 7ac0da7c7bf3..de321a9a7c66 100644 --- a/common/memleak.c +++ b/common/memleak.c @@ -58,9 +58,6 @@ struct tal_backtrace { void *notleak_(void *ptr, bool plus_children) { const char *name; - /* If we're not tracking, don't do anything. */ - if (!memleak_track) - return cast_const(void *, ptr); /* We use special tal names to mark notleak */ name = tal_name(ptr); @@ -69,12 +66,14 @@ void *notleak_(void *ptr, bool plus_children) /* Don't mark more than once! */ if (!strstr(name, "**NOTLEAK")) { + /* Don't use tmpctx: it might not be set up yet! */ if (plus_children) - name = tal_fmt(tmpctx, "%s **NOTLEAK_IGNORE_CHILDREN**", + name = tal_fmt(NULL, "%s **NOTLEAK_IGNORE_CHILDREN**", name); else - name = tal_fmt(tmpctx, "%s **NOTLEAK**", name); + name = tal_fmt(NULL, "%s **NOTLEAK**", name); tal_set_name(ptr, name); + tal_free(name); } return cast_const(void *, ptr); @@ -331,8 +330,7 @@ static void call_memleak_helpers(struct htable *memtable, const tal_t *p) if (strends(name, "struct memleak_helper")) { const struct memleak_helper *mh = i; mh->cb(memtable, p); - } else if (strends(name, " **NOTLEAK**") - || strends(name, "_notleak")) { + } else if (strends(name, " **NOTLEAK**")) { memleak_ptr(memtable, i); memleak_scan_obj(memtable, i); } else if (strends(name, diff --git a/common/trace.c b/common/trace.c index eade3171f790..f64faa0ef440 100644 --- a/common/trace.c +++ b/common/trace.c @@ -184,15 +184,11 @@ static inline void trace_check_tree(void) {} static void trace_init(void) { const char *dev_trace_file; - const char notleak_name[] = "struct span **NOTLEAK**"; if (active_spans) return; - active_spans = tal_arrz(NULL, struct span, 1); - /* We're usually too early for memleak to be initialized, so mark - * this notleak manually! */ - tal_set_name(active_spans, notleak_name); + active_spans = notleak(tal_arrz(NULL, struct span, 1)); current = NULL; dev_trace_file = getenv("CLN_DEV_TRACE_FILE"); diff --git a/tools/Makefile b/tools/Makefile index 6b92ebdd5555..3922ce0c8566 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -18,7 +18,7 @@ tools/headerversions: $(FORCE) tools/headerversions.o libccan.a tools/headerversions.o: ccan/config.h tools/check-bolt: tools/check-bolt.o $(TOOLS_COMMON_OBJS) -tools/hsmtool: tools/hsmtool.o $(TOOLS_COMMON_OBJS) $(BITCOIN_OBJS) common/amount.o common/autodata.o common/bech32.o common/bech32_util.o common/bigsize.o common/codex32.o common/configdir.o common/configvar.o common/derive_basepoints.o common/descriptor_checksum.o common/hsm_encryption.o common/key_derive.o common/node_id.o common/version.o wire/fromwire.o wire/towire.o +tools/hsmtool: tools/hsmtool.o $(TOOLS_COMMON_OBJS) $(BITCOIN_OBJS) common/amount.o common/autodata.o common/bech32.o common/bech32_util.o common/bigsize.o common/codex32.o common/configdir.o common/configvar.o common/derive_basepoints.o common/descriptor_checksum.o common/hsm_encryption.o common/key_derive.o common/node_id.o common/version.o common/memleak.o wire/fromwire.o wire/towire.o tools/lightning-hsmtool: tools/hsmtool cp $< $@ From 0562ebf1fa928c1be3379bef77a21ecdcfcbe6be Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:40:07 +0930 Subject: [PATCH 07/37] common: add new_htable() macro to allocate, initialize and setup memleak coverage for any typed hash table. You can now simply add per-tal-object helpers for memleak, but our older pattern required calling memleak functions explicitly during memleak handling. Hash tables in particular need to be dynamically allocated (we override the allocators using htable_set_allocator and assume this), so it makes sense to have a helper macro that does all three. This eliminates a huge amount of code. Signed-off-by: Rusty Russell --- channeld/full_channel.c | 14 +++------- common/memleak.h | 12 +++++++++ connectd/connectd.c | 27 +++++-------------- gossipd/gossipd.c | 4 +-- lightningd/chaintopology.c | 12 +++------ lightningd/lightningd.c | 24 ++++++----------- lightningd/memdump.c | 13 --------- lightningd/onchain_control.c | 12 +-------- plugins/askrene/askrene.c | 8 ------ plugins/askrene/layer.c | 23 +++------------- plugins/askrene/layer.h | 2 -- plugins/askrene/reserve.c | 9 +------ plugins/askrene/reserve.h | 2 -- plugins/chanbackup.c | 17 ++---------- plugins/channel_hint.c | 10 +------ .../test/run-chain_moves_duplicate-detect.c | 4 --- wallet/test/run-db.c | 4 --- ...un-migrate_remove_chain_moves_duplicates.c | 4 --- wallet/test/run-wallet.c | 4 --- wallet/txfilter.c | 8 +----- wallet/txfilter.h | 3 --- wallet/wallet.c | 10 +------ wallet/wallet.h | 4 --- 23 files changed, 46 insertions(+), 184 deletions(-) diff --git a/channeld/full_channel.c b/channeld/full_channel.c index 699ccdf40ca4..cf27c69c11ad 100644 --- a/channeld/full_channel.c +++ b/channeld/full_channel.c @@ -17,12 +17,6 @@ /* Needs to be at end, since it doesn't include its own hdrs */ #include "full_channel_error_names_gen.h" -static void memleak_help_htlcmap(struct htable *memtable, - struct htlc_map *htlcs) -{ - memleak_scan_htable(memtable, &htlcs->raw); -} - /* This is a dangerous thing! Because we apply HTLCs in many places * in bulk, we can temporarily go negative. You must check balance_ok() * at the end! */ @@ -113,11 +107,9 @@ struct channel *new_full_channel(const tal_t *ctx, option_wumbo, opener); - if (channel) { - channel->htlcs = tal(channel, struct htlc_map); - htlc_map_init(channel->htlcs); - memleak_add_helper(channel->htlcs, memleak_help_htlcmap); - } + if (channel) + channel->htlcs = new_htable(channel, htlc_map); + return channel; } diff --git a/common/memleak.h b/common/memleak.h index a15413b23f34..b9782e651ceb 100644 --- a/common/memleak.h +++ b/common/memleak.h @@ -109,6 +109,18 @@ void memleak_scan_region(struct htable *memtable, const void *p, size_t len); /* Objects inside this htable (which is opaque to memleak) are not leaks. */ void memleak_scan_htable(struct htable *memtable, const struct htable *ht); +/* Allocate a htable, set up memleak scan automatically (assumes &p->raw == p) */ +#define new_htable(ctx, type) \ + ({ \ + const struct htable *raw; \ + struct type *p = tal(ctx, struct type); \ + type##_init(p); \ + raw = &p->raw; \ + assert((void *)raw == (void *)p); \ + memleak_add_helper(raw, memleak_scan_htable); \ + p; \ + }) + /* Objects inside this uintmap (which is opaque to memleak) are not leaks. */ #define memleak_scan_uintmap(memtable, umap) \ memleak_scan_intmap_(memtable, uintmap_unwrap_(umap)) diff --git a/connectd/connectd.c b/connectd/connectd.c index f04f2caa798d..69014fdbb8bb 100644 --- a/connectd/connectd.c +++ b/connectd/connectd.c @@ -2021,9 +2021,6 @@ static void dev_connect_memleak(struct daemon *daemon, const u8 *msg) /* Now delete daemon and those which it has pointers to. */ memleak_scan_obj(memtable, daemon); - memleak_scan_htable(memtable, &daemon->peers->raw); - memleak_scan_htable(memtable, &daemon->scid_htable->raw); - memleak_scan_htable(memtable, &daemon->important_ids->raw); found_leak = dump_memleak(memtable, memleak_status_broken, NULL); daemon_conn_send(daemon->master, @@ -2437,14 +2434,6 @@ static struct io_plan *recv_gossip(struct io_conn *conn, return daemon_conn_read_next(conn, daemon->gossipd); } -/*~ This is a hook used by the memleak code: it can't see pointers - * inside hash tables, so we give it a hint here. */ -static void memleak_daemon_cb(struct htable *memtable, struct daemon *daemon) -{ - memleak_scan_htable(memtable, &daemon->peers->raw); - memleak_scan_htable(memtable, &daemon->connecting->raw); -} - static void gossipd_failed(struct daemon_conn *gossipd) { status_failed(STATUS_FAIL_GOSSIP_IO, "gossipd exited?"); @@ -2464,14 +2453,13 @@ int main(int argc, char *argv[]) daemon = tal(NULL, struct daemon); daemon->developer = developer; daemon->connection_counter = 1; - daemon->peers = tal(daemon, struct peer_htable); + /* htable_new is our helper which allocates a htable, initializes it + * and set up the memleak callback so our memleak code can see objects + * inside it */ + daemon->peers = new_htable(daemon, peer_htable); daemon->listeners = tal_arr(daemon, struct io_listener *, 0); - peer_htable_init(daemon->peers); - memleak_add_helper(daemon, memleak_daemon_cb); - daemon->connecting = tal(daemon, struct connecting_htable); - connecting_htable_init(daemon->connecting); - daemon->important_ids = tal(daemon, struct important_id_htable); - important_id_htable_init(daemon->important_ids); + daemon->connecting = new_htable(daemon, connecting_htable); + daemon->important_ids = new_htable(daemon, important_id_htable); timers_init(&daemon->timers, time_mono()); daemon->gossmap_raw = NULL; daemon->shutting_down = false; @@ -2481,8 +2469,7 @@ int main(int argc, char *argv[]) daemon->dev_exhausted_fds = false; /* We generally allow 1MB per second per peer, except for dev testing */ daemon->gossip_stream_limit = 1000000; - daemon->scid_htable = tal(daemon, struct scid_htable); - scid_htable_init(daemon->scid_htable); + daemon->scid_htable = new_htable(daemon, scid_htable); /* stdin == control */ daemon->master = daemon_conn_new(daemon, STDIN_FILENO, recv_req, NULL, diff --git a/gossipd/gossipd.c b/gossipd/gossipd.c index 41807050806f..40bfe551fa9e 100644 --- a/gossipd/gossipd.c +++ b/gossipd/gossipd.c @@ -479,7 +479,6 @@ static void dev_gossip_memleak(struct daemon *daemon, const u8 *msg) memleak_ptr(memtable, msg); /* Now delete daemon and those which it has pointers to. */ memleak_scan_obj(memtable, daemon); - memleak_scan_htable(memtable, &daemon->peers->raw); dev_seeker_memleak(memtable, daemon->seeker); gossmap_manage_memleak(memtable, daemon->gm); @@ -632,8 +631,7 @@ int main(int argc, char *argv[]) daemon = tal(NULL, struct daemon); daemon->developer = developer; daemon->dev_gossip_time = NULL; - daemon->peers = tal(daemon, struct peer_node_id_map); - peer_node_id_map_init(daemon->peers); + daemon->peers = new_htable(daemon, peer_node_id_map); daemon->deferred_txouts = tal_arr(daemon, struct short_channel_id, 0); daemon->current_blockheight = 0; /* i.e. unknown */ diff --git a/lightningd/chaintopology.c b/lightningd/chaintopology.c index 7d02e9245395..5214b490ed0e 100644 --- a/lightningd/chaintopology.c +++ b/lightningd/chaintopology.c @@ -1229,14 +1229,10 @@ struct chain_topology *new_topology(struct lightningd *ld, struct logger *log) struct chain_topology *topo = tal(ld, struct chain_topology); topo->ld = ld; - topo->block_map = tal(topo, struct block_map); - block_map_init(topo->block_map); - topo->outgoing_txs = tal(topo, struct outgoing_tx_map); - outgoing_tx_map_init(topo->outgoing_txs); - topo->txwatches = tal(topo, struct txwatch_hash); - txwatch_hash_init(topo->txwatches); - topo->txowatches = tal(topo, struct txowatch_hash); - txowatch_hash_init(topo->txowatches); + topo->block_map = new_htable(topo, block_map); + topo->outgoing_txs = new_htable(topo, outgoing_tx_map); + topo->txwatches = new_htable(topo, txwatch_hash); + topo->txowatches = new_htable(topo, txowatch_hash); topo->log = log; topo->bitcoind = new_bitcoind(topo, ld, log); topo->poll_seconds = 30; diff --git a/lightningd/lightningd.c b/lightningd/lightningd.c index 5a350daeb43e..7a529b489e13 100644 --- a/lightningd/lightningd.c +++ b/lightningd/lightningd.c @@ -190,42 +190,34 @@ static struct lightningd *new_lightningd(const tal_t *ctx) * list attached to the channel structure itself, or even left them in * the database rather than making an in-memory version. Obviously * I was in a premature optimization mood when I wrote this: */ - ld->htlcs_in = tal(ld, struct htlc_in_map); - htlc_in_map_init(ld->htlcs_in); + ld->htlcs_in = new_htable(ld, htlc_in_map); /*~ Note also: we didn't need to use an allocation here! We could * have simply made the `struct htlc_out_map` a member. But we * override the htable allocation routines to use tal(), and they * want a tal parent, so we always make our hash table a tallocated * object. */ - ld->htlcs_out = tal(ld, struct htlc_out_map); - htlc_out_map_init(ld->htlcs_out); + ld->htlcs_out = new_htable(ld, htlc_out_map); /*~ This is the hash table of peers: converted from a * linked-list as part of the 100k-peers project! */ - ld->peers = tal(ld, struct peer_node_id_map); - peer_node_id_map_init(ld->peers); + ld->peers = new_htable(ld, peer_node_id_map); /*~ And this was done at the same time, for db lookups at startup */ - ld->peers_by_dbid = tal(ld, struct peer_dbid_map); - peer_dbid_map_init(ld->peers_by_dbid); + ld->peers_by_dbid = new_htable(ld, peer_dbid_map); /*~ This speeds lookups for short_channel_ids to their channels. */ - ld->channels_by_scid = tal(ld, struct channel_scid_map); - channel_scid_map_init(ld->channels_by_scid); + ld->channels_by_scid = new_htable(ld, channel_scid_map); /*~ Coin movements in db are indexed by the channel dbid. */ - ld->channels_by_dbid = tal(ld, struct channel_dbid_map); - channel_dbid_map_init(ld->channels_by_dbid); + ld->channels_by_dbid = new_htable(ld, channel_dbid_map); /*~ For multi-part payments, we need to keep some incoming payments * in limbo until we get all the parts, or we time them out. */ - ld->htlc_sets = tal(ld, struct htlc_set_map); - htlc_set_map_init(ld->htlc_sets); + ld->htlc_sets = new_htable(ld, htlc_set_map); /*~ We keep a map of closed channels. Mainly so we can respond to peers * who talk to us about long-closed channels. */ - ld->closed_channels = tal(ld, struct closed_channel_map); - closed_channel_map_init(ld->closed_channels); + ld->closed_channels = new_htable(ld, closed_channel_map); /*~ We have a multi-entry log-book infrastructure: we define a 10MB log * book to hold all the entries (and trims as necessary), and multiple diff --git a/lightningd/memdump.c b/lightningd/memdump.c index b2f32a10636f..31d84b0e057f 100644 --- a/lightningd/memdump.c +++ b/lightningd/memdump.c @@ -194,19 +194,6 @@ static bool lightningd_check_leaks(struct command *cmd) memleak_ptr(memtable, cmd); memleak_ignore_children(memtable, cmd); - /* First delete known false positives. */ - memleak_scan_htable(memtable, &ld->topology->txwatches->raw); - memleak_scan_htable(memtable, &ld->topology->txowatches->raw); - memleak_scan_htable(memtable, &ld->topology->outgoing_txs->raw); - memleak_scan_htable(memtable, &ld->htlcs_in->raw); - memleak_scan_htable(memtable, &ld->htlcs_out->raw); - memleak_scan_htable(memtable, &ld->htlc_sets->raw); - memleak_scan_htable(memtable, &ld->peers->raw); - memleak_scan_htable(memtable, &ld->peers_by_dbid->raw); - memleak_scan_htable(memtable, &ld->channels_by_scid->raw); - memleak_scan_htable(memtable, &ld->closed_channels->raw); - wallet_memleak_scan(memtable, ld->wallet); - /* Now delete ld and those which it has pointers to. */ memleak_scan_obj(memtable, ld); diff --git a/lightningd/onchain_control.c b/lightningd/onchain_control.c index b82523ab1b38..4d2723a5d1db 100644 --- a/lightningd/onchain_control.c +++ b/lightningd/onchain_control.c @@ -49,13 +49,6 @@ static bool replay_tx_eq_txid(const struct replay_tx *rtx, HTABLE_DEFINE_NODUPS_TYPE(struct replay_tx, replay_tx_keyof, txid_hash, replay_tx_eq_txid, replay_tx_hash); -/* Helper for memleak detection */ -static void memleak_replay_tx_hash(struct htable *memtable, - struct replay_tx_hash *replay_tx_hash) -{ - memleak_scan_htable(memtable, &replay_tx_hash->raw); -} - /* We dump all the known preimages when onchaind starts up. */ static void onchaind_tell_fulfill(struct channel *channel) { @@ -1904,11 +1897,8 @@ void onchaind_replay_channels(struct lightningd *ld) channel_state_name(channel), blockheight); /* We're in replay mode */ - channel->onchaind_replay_watches = tal(channel, struct replay_tx_hash); + channel->onchaind_replay_watches = new_htable(channel, replay_tx_hash); channel->onchaind_replay_height = blockheight; - replay_tx_hash_init(channel->onchaind_replay_watches); - memleak_add_helper(channel->onchaind_replay_watches, - memleak_replay_tx_hash); onchaind_funding_spent(channel, tx, blockheight); onchaind_replay(channel); diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index 9664d2487d7f..7f7f2d0d50c3 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -1290,13 +1290,6 @@ static const struct plugin_command commands[] = { }, }; -static void askrene_markmem(struct plugin *plugin, struct htable *memtable) -{ - struct askrene *askrene = get_askrene(plugin); - layer_memleak_mark(askrene, memtable); - reserve_memleak_mark(askrene, memtable); -} - static const char *init(struct command *init_cmd, const char *buf UNUSED, const jsmntok_t *config UNUSED) { @@ -1316,7 +1309,6 @@ static const char *init(struct command *init_cmd, "{id:%}", JSON_SCAN(json_to_node_id, &askrene->my_id)); plugin_set_data(plugin, askrene); - plugin_set_memleak_handler(plugin, askrene_markmem); load_layers(askrene, init_cmd); diff --git a/plugins/askrene/layer.c b/plugins/askrene/layer.c index 281e32a03c7b..4cbe657ac637 100644 --- a/plugins/askrene/layer.c +++ b/plugins/askrene/layer.c @@ -162,14 +162,10 @@ struct layer *new_temp_layer(const tal_t *ctx, struct askrene *askrene, const ch l->askrene = askrene; l->name = tal_strdup(l, name); l->persistent = false; - l->local_channels = tal(l, struct local_channel_hash); - local_channel_hash_init(l->local_channels); - l->local_updates = tal(l, struct local_update_hash); - local_update_hash_init(l->local_updates); - l->constraints = tal(l, struct constraint_hash); - constraint_hash_init(l->constraints); - l->biases = tal(l, struct bias_hash); - bias_hash_init(l->biases); + l->local_channels = new_htable(l, local_channel_hash); + l->local_updates = new_htable(l, local_update_hash); + l->constraints = new_htable(l, constraint_hash); + l->biases = new_htable(l, bias_hash); l->disabled_nodes = tal_arr(l, struct node_id, 0); return l; @@ -1162,14 +1158,3 @@ bool layer_disables_node(const struct layer *layer, } return false; } - -void layer_memleak_mark(struct askrene *askrene, struct htable *memtable) -{ - struct layer *l; - list_for_each(&askrene->layers, l, list) { - memleak_scan_htable(memtable, &l->constraints->raw); - memleak_scan_htable(memtable, &l->local_channels->raw); - memleak_scan_htable(memtable, &l->local_updates->raw); - memleak_scan_htable(memtable, &l->biases->raw); - } -} diff --git a/plugins/askrene/layer.h b/plugins/askrene/layer.h index e9b06fd5a4e6..b93f228ff05d 100644 --- a/plugins/askrene/layer.h +++ b/plugins/askrene/layer.h @@ -135,6 +135,4 @@ bool layer_disables_chan(const struct layer *layer, const struct short_channel_i /* For explain_failure: did this layer disable this node? */ bool layer_disables_node(const struct layer *layer, const struct node_id *node); -/* Scan for memleaks */ -void layer_memleak_mark(struct askrene *askrene, struct htable *memtable); #endif /* LIGHTNING_PLUGINS_ASKRENE_LAYER_H */ diff --git a/plugins/askrene/reserve.c b/plugins/askrene/reserve.c index abec9372dfc7..678ca248d667 100644 --- a/plugins/askrene/reserve.c +++ b/plugins/askrene/reserve.c @@ -36,9 +36,7 @@ HTABLE_DEFINE_DUPS_TYPE(struct reserve, reserve_scidd, hash_scidd, struct reserve_htable *new_reserve_htable(const tal_t *ctx) { - struct reserve_htable *reserved = tal(ctx, struct reserve_htable); - reserve_htable_init(reserved); - return reserved; + return new_htable(ctx, reserve_htable); } void reserve_add(struct reserve_htable *reserved, @@ -176,8 +174,3 @@ const char *fmt_reservations(const tal_t *ctx, } return ret; } - -void reserve_memleak_mark(struct askrene *askrene, struct htable *memtable) -{ - memleak_scan_htable(memtable, &askrene->reserved->raw); -} diff --git a/plugins/askrene/reserve.h b/plugins/askrene/reserve.h index 1c9e71eaaf60..868756ca0d9a 100644 --- a/plugins/askrene/reserve.h +++ b/plugins/askrene/reserve.h @@ -50,6 +50,4 @@ void json_add_reservations(struct json_stream *js, const struct reserve_htable *reserved, const char *fieldname); -/* Scan for memleaks */ -void reserve_memleak_mark(struct askrene *askrene, struct htable *memtable); #endif /* LIGHTNING_PLUGINS_ASKRENE_RESERVE_H */ diff --git a/plugins/chanbackup.c b/plugins/chanbackup.c index 11091edd92c4..16d6cb6189df 100644 --- a/plugins/chanbackup.c +++ b/plugins/chanbackup.c @@ -1040,10 +1040,8 @@ static void setup_backup_map(struct command *init_cmd, const jsmntok_t *datastore, *t; size_t i, total = 0; - cb->backups = tal(cb, struct backup_map); - backup_map_init(cb->backups); - cb->peers = tal(cb, struct peer_map); - peer_map_init(cb->peers); + cb->backups = new_htable(cb, backup_map); + cb->peers = new_htable(cb, peer_map); json_out_start(params, NULL, '{'); json_out_start(params, "key", '['); @@ -1084,14 +1082,6 @@ static void setup_backup_map(struct command *init_cmd, "Loaded %zu stored backups for peers", total); } -static void chanbackup_mark_mem(struct plugin *plugin, - struct htable *memtable) -{ - const struct chanbackup *cb = chanbackup(plugin); - memleak_scan_htable(memtable, &cb->backups->raw); - memleak_scan_htable(memtable, &cb->peers->raw); -} - static const char *init(struct command *init_cmd, const char *buf UNUSED, const jsmntok_t *config UNUSED) @@ -1132,9 +1122,6 @@ static const char *init(struct command *init_cmd, unlink_noerr("scb.tmp"); maybe_create_new_scb(init_cmd->plugin, scb_chan); - - plugin_set_memleak_handler(init_cmd->plugin, - chanbackup_mark_mem); return NULL; } diff --git a/plugins/channel_hint.c b/plugins/channel_hint.c index 1db37791ea0a..7a14f3992a44 100644 --- a/plugins/channel_hint.c +++ b/plugins/channel_hint.c @@ -23,12 +23,6 @@ bool channel_hint_eq(const struct channel_hint *a, a->scid.dir == b->dir; } -static void memleak_help_channel_hint_map(struct htable *memtable, - struct channel_hint_map *channel_hints) -{ - memleak_scan_htable(memtable, &channel_hints->raw); -} - void channel_hint_to_json(const char *name, const struct channel_hint *hint, struct json_stream *dest) { @@ -211,9 +205,7 @@ struct channel_hint *channel_hint_from_json(const tal_t *ctx, struct channel_hint_set *channel_hint_set_new(const tal_t *ctx) { struct channel_hint_set *set = tal(ctx, struct channel_hint_set); - set->hints = tal(set, struct channel_hint_map); - channel_hint_map_init(set->hints); - memleak_add_helper(set->hints, memleak_help_channel_hint_map); + set->hints = new_htable(set, channel_hint_map); return set; } diff --git a/wallet/test/run-chain_moves_duplicate-detect.c b/wallet/test/run-chain_moves_duplicate-detect.c index fdf62145e64a..d8e236b9dfdd 100644 --- a/wallet/test/run-chain_moves_duplicate-detect.c +++ b/wallet/test/run-chain_moves_duplicate-detect.c @@ -162,10 +162,6 @@ struct invoices *invoices_new(const tal_t *ctx UNNEEDED, struct wallet *wallet UNNEEDED, struct timers *timers UNNEEDED) { fprintf(stderr, "invoices_new called!\n"); abort(); } -/* Generated stub for memleak_scan_outpointfilter */ -void memleak_scan_outpointfilter(struct htable *memtable UNNEEDED, - const struct outpointfilter *opf UNNEEDED) -{ fprintf(stderr, "memleak_scan_outpointfilter called!\n"); abort(); } /* Generated stub for new_channel */ struct channel *new_channel(struct peer *peer UNNEEDED, u64 dbid UNNEEDED, /* NULL or stolen */ diff --git a/wallet/test/run-db.c b/wallet/test/run-db.c index 106cd38026ae..86d6501463a3 100644 --- a/wallet/test/run-db.c +++ b/wallet/test/run-db.c @@ -170,10 +170,6 @@ struct invoices *invoices_new(const tal_t *ctx UNNEEDED, void logv(struct logger *logger UNNEEDED, enum log_level level UNNEEDED, const struct node_id *node_id UNNEEDED, bool call_notifier UNNEEDED, const char *fmt UNNEEDED, va_list ap UNNEEDED) { fprintf(stderr, "logv called!\n"); abort(); } -/* Generated stub for memleak_scan_outpointfilter */ -void memleak_scan_outpointfilter(struct htable *memtable UNNEEDED, - const struct outpointfilter *opf UNNEEDED) -{ fprintf(stderr, "memleak_scan_outpointfilter called!\n"); abort(); } /* Generated stub for mk_mvt_tags_ */ struct mvt_tags mk_mvt_tags_(enum mvt_tag tag UNNEEDED, ...) { fprintf(stderr, "mk_mvt_tags_ called!\n"); abort(); } diff --git a/wallet/test/run-migrate_remove_chain_moves_duplicates.c b/wallet/test/run-migrate_remove_chain_moves_duplicates.c index f9ed9699df27..67b7a20f7731 100644 --- a/wallet/test/run-migrate_remove_chain_moves_duplicates.c +++ b/wallet/test/run-migrate_remove_chain_moves_duplicates.c @@ -174,10 +174,6 @@ struct invoices *invoices_new(const tal_t *ctx UNNEEDED, void logv(struct logger *logger UNNEEDED, enum log_level level UNNEEDED, const struct node_id *node_id UNNEEDED, bool call_notifier UNNEEDED, const char *fmt UNNEEDED, va_list ap UNNEEDED) { fprintf(stderr, "logv called!\n"); abort(); } -/* Generated stub for memleak_scan_outpointfilter */ -void memleak_scan_outpointfilter(struct htable *memtable UNNEEDED, - const struct outpointfilter *opf UNNEEDED) -{ fprintf(stderr, "memleak_scan_outpointfilter called!\n"); abort(); } /* Generated stub for migrate_from_account_db */ void migrate_from_account_db(struct lightningd *ld UNNEEDED, struct db *db UNNEEDED) { fprintf(stderr, "migrate_from_account_db called!\n"); abort(); } diff --git a/wallet/test/run-wallet.c b/wallet/test/run-wallet.c index 4d96e83bb1bf..ea0eb1d8f968 100644 --- a/wallet/test/run-wallet.c +++ b/wallet/test/run-wallet.c @@ -664,10 +664,6 @@ void lockin_complete(struct channel *channel UNNEEDED, void logv(struct logger *logger UNNEEDED, enum log_level level UNNEEDED, const struct node_id *node_id UNNEEDED, bool call_notifier UNNEEDED, const char *fmt UNNEEDED, va_list ap UNNEEDED) { fprintf(stderr, "logv called!\n"); abort(); } -/* Generated stub for memleak_scan_outpointfilter */ -void memleak_scan_outpointfilter(struct htable *memtable UNNEEDED, - const struct outpointfilter *opf UNNEEDED) -{ fprintf(stderr, "memleak_scan_outpointfilter called!\n"); abort(); } /* Generated stub for mk_mvt_tags_ */ struct mvt_tags mk_mvt_tags_(enum mvt_tag tag UNNEEDED, ...) { fprintf(stderr, "mk_mvt_tags_ called!\n"); abort(); } diff --git a/wallet/txfilter.c b/wallet/txfilter.c index 10ef774e41b0..0ce6f46a7a2c 100644 --- a/wallet/txfilter.c +++ b/wallet/txfilter.c @@ -128,12 +128,6 @@ void outpointfilter_remove(struct outpointfilter *of, struct outpointfilter *outpointfilter_new(tal_t *ctx) { struct outpointfilter *opf = tal(ctx, struct outpointfilter); - opf->set = tal(opf, struct outpointset); - outpointset_init(opf->set); + opf->set = new_htable(opf, outpointset); return opf; } - -void memleak_scan_outpointfilter(struct htable *memtable, const struct outpointfilter *opf) -{ - memleak_scan_htable(memtable, &opf->set->raw); -} diff --git a/wallet/txfilter.h b/wallet/txfilter.h index c9152bffd390..2e72b68e1b93 100644 --- a/wallet/txfilter.h +++ b/wallet/txfilter.h @@ -64,9 +64,6 @@ bool outpointfilter_matches(struct outpointfilter *of, void outpointfilter_remove(struct outpointfilter *of, const struct bitcoin_outpoint *outpoint); -void memleak_scan_outpointfilter(struct htable *memtable, - const struct outpointfilter *opf); - /* Useful for other callers */ size_t scriptpubkey_hash(const u8 *out); diff --git a/wallet/wallet.c b/wallet/wallet.c index 91962ba6bb1b..1f7d980ac895 100644 --- a/wallet/wallet.c +++ b/wallet/wallet.c @@ -181,8 +181,7 @@ static void our_addresses_add_for_index(struct wallet *w, u32 i) static void our_addresses_init(struct wallet *w) { w->our_addresses_maxindex = 0; - w->our_addresses = tal(w, struct wallet_address_htable); - wallet_address_htable_init(w->our_addresses); + w->our_addresses = new_htable(w, wallet_address_htable); our_addresses_add_for_index(w, w->our_addresses_maxindex); } @@ -6918,13 +6917,6 @@ struct local_anchor_info *wallet_get_local_anchors(const tal_t *ctx, return anchors; } -void wallet_memleak_scan(struct htable *memtable, const struct wallet *w) -{ - memleak_scan_outpointfilter(memtable, w->utxoset_outpoints); - memleak_scan_outpointfilter(memtable, w->owned_outpoints); - memleak_scan_htable(memtable, &w->our_addresses->raw); -} - struct issued_address_type *wallet_list_addresses(const tal_t *ctx, struct wallet *wallet, u64 liststart, const u32 *listlimit) { diff --git a/wallet/wallet.h b/wallet/wallet.h index f956196b37cd..ccadb121e180 100644 --- a/wallet/wallet.h +++ b/wallet/wallet.h @@ -1928,8 +1928,4 @@ void wallet_datastore_save_payment_description(struct db *db, void migrate_setup_coinmoves(struct lightningd *ld, struct db *db); void migrate_remove_chain_moves_duplicates(struct lightningd *ld, struct db *db); -/** - * wallet_memleak_scan - Check for memleaks in wallet. - */ -void wallet_memleak_scan(struct htable *memtable, const struct wallet *w); #endif /* LIGHTNING_WALLET_WALLET_H */ From 5a57ae873b08f1ea960f56642334a056d10f8270 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:40:18 +0930 Subject: [PATCH 08/37] lightningd: try harder to ensure uniqueness in --dev-save-plugin-io names. Incorporate a time: this covers the restart case as well. And make it time_mono(), which doesn't get overridden when we override normal wall time. Signed-off-by: Rusty Russell --- lightningd/plugin.c | 10 +++++++++- tests/test_misc.py | 8 +------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/lightningd/plugin.c b/lightningd/plugin.c index 1dba9a94dd87..e1c8130d3233 100644 --- a/lightningd/plugin.c +++ b/lightningd/plugin.c @@ -2688,16 +2688,24 @@ static void dev_save_plugin_io(struct plugins *plugins, const char *buf, size_t len) { static size_t counter; + static u64 starttime; const char *file; int fd; if (!plugins->dev_save_io) return; + /* If we reexec, we still want unique names */ + if (!starttime) { + struct timemono start = time_mono(); + starttime = start.ts.tv_sec * 1000000 + start.ts.tv_nsec / 1000; + } + file = path_join(tmpctx, plugins->dev_save_io, - take(tal_fmt(NULL, "%s-%s-%u-%zu", + take(tal_fmt(NULL, "%s-%s-%u-%"PRIu64"-%zu", type, name, (unsigned int)getpid(), + starttime, counter++))); fd = open(file, O_CREAT|O_EXCL|O_WRONLY, 0600); if (fd < 0 || !write_all(fd, buf, len)) diff --git a/tests/test_misc.py b/tests/test_misc.py index 0a6aba28dabe..112c07065b7c 100644 --- a/tests/test_misc.py +++ b/tests/test_misc.py @@ -3668,8 +3668,6 @@ def test_version_reexec(node_factory, bitcoind): # We use a file to tell our openingd wrapper where the real one is with open(os.path.join(l1.daemon.lightning_dir, TEST_NETWORK, "openingd-real"), 'w') as f: f.write(os.path.abspath('lightningd/lightning_openingd')) - # Internal restart doesn't work well with --dev-save-plugin-io - del l1.daemon.opts['dev-save-plugin-io'] l1.start() # This is a "version" message verfile = os.path.join(l1.daemon.lightning_dir, TEST_NETWORK, "openingd-version") @@ -4545,11 +4543,7 @@ def test_setconfig_changed(node_factory, bitcoind): @unittest.skipIf(os.getenv('TEST_DB_PROVIDER', 'sqlite3') != 'sqlite3', "deletes database, which is assumed sqlite3") def test_recover_command(node_factory, bitcoind): - l1 = node_factory.get_node(start=False) - # Internal restart doesn't work well with --dev-save-plugin-io - del l1.daemon.opts['dev-save-plugin-io'] - l1.start() - l2 = node_factory.get_node() + l1, l2 = node_factory.get_nodes(2) l1oldid = l1.info['id'] From b7f4b97e3d03c0c5cba5a8e83d463c172068b9c2 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:40:18 +0930 Subject: [PATCH 09/37] bitcoin: remove unused scriptpubkey_opreturn_padded. I noticed, because it pulled in randomness routines. Signed-off-by: Rusty Russell --- bitcoin/script.c | 11 ----------- bitcoin/script.h | 6 ------ 2 files changed, 17 deletions(-) diff --git a/bitcoin/script.c b/bitcoin/script.c index 63974644a34c..18461a8396b4 100644 --- a/bitcoin/script.c +++ b/bitcoin/script.c @@ -187,17 +187,6 @@ u8 *scriptpubkey_p2pkh(const tal_t *ctx, const struct bitcoin_address *addr) return script; } -u8 *scriptpubkey_opreturn_padded(const tal_t *ctx) -{ - u8 *script = tal_arr(ctx, u8, 0); - u8 random[20]; - randombytes_buf(random, sizeof(random)); - - add_op(&script, OP_RETURN); - script_push_bytes(&script, random, sizeof(random)); - return script; -} - /* Create an input script which spends p2pkh */ u8 *bitcoin_redeem_p2pkh(const tal_t *ctx, const struct pubkey *pubkey, const struct bitcoin_signature *sig) diff --git a/bitcoin/script.h b/bitcoin/script.h index 5b96d696ff15..c0a005c17d57 100644 --- a/bitcoin/script.h +++ b/bitcoin/script.h @@ -27,12 +27,6 @@ u8 *scriptpubkey_p2sh_hash(const tal_t *ctx, const struct ripemd160 *redeemhash) /* Create an output script using p2pkh */ u8 *scriptpubkey_p2pkh(const tal_t *ctx, const struct bitcoin_address *addr); -/* Create a prunable output script with 20 random bytes. - * This is needed since a spend from a p2wpkh to an `OP_RETURN` without - * any other outputs would result in a transaction smaller than the - * minimum size. */ -u8 *scriptpubkey_opreturn_padded(const tal_t *ctx); - /* Create an input script which spends p2pkh */ u8 *bitcoin_redeem_p2pkh(const tal_t *ctx, const struct pubkey *pubkey, const struct bitcoin_signature *sig); From ba34d99aef77fb98347746b4e5ef7009009d4f13 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:40:18 +0930 Subject: [PATCH 10/37] autogenerate-rpc-examples.py: add examples for listchainmoves and listchannelmoves. Signed-off-by: Rusty Russell --- contrib/msggen/msggen/schema.json | 589 +++++++++++++++++++++++++++++ doc/schemas/listchainmoves.json | 353 +++++++++++++++++ doc/schemas/listchannelmoves.json | 236 ++++++++++++ tests/autogenerate-rpc-examples.py | 14 + 4 files changed, 1192 insertions(+) diff --git a/contrib/msggen/msggen/schema.json b/contrib/msggen/msggen/schema.json index a0f42b9c8d4f..dadbb6ff0fd9 100644 --- a/contrib/msggen/msggen/schema.json +++ b/contrib/msggen/msggen/schema.json @@ -16812,6 +16812,359 @@ ], "resources": [ "Main web site: " + ], + "examples": [ + { + "request": { + "id": "example:listchainmoves#1", + "method": "listchainmoves", + "params": {} + }, + "response": { + "chainmoves": [ + { + "created_index": 1, + "account_id": "wallet", + "credit_msat": 200000000000, + "debit_msat": 0, + "timestamp": 1758192762, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "994185cba7723715c0aa1d1859ce2781116776cea917035c90f8f04c9f4e095e:1", + "output_msat": 200000000000, + "blockheight": 104 + }, + { + "created_index": 2, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 0, + "debit_msat": 0, + "timestamp": 1758192777, + "primary_tag": "channel_open", + "extra_tags": [], + "utxo": "542906c8a9d90596592459a9484f4286a3200f6540599c83b43af2ac4166c6ca:1", + "peer_id": "nodeid010101010101010101010101010101010101010101010101010101010101", + "output_msat": 1000000000, + "blockheight": 109 + }, + { + "created_index": 3, + "account_id": "wallet", + "credit_msat": 2000000000, + "debit_msat": 0, + "timestamp": 1758192780, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "19e9e42f2f2097ea1dc18d7eb670bc53c90cbe31bb1daba8e94abf3c6b60d2dc:1", + "output_msat": 2000000000, + "blockheight": 110 + }, + { + "created_index": 4, + "account_id": "wallet", + "credit_msat": 0, + "debit_msat": 200000000000, + "timestamp": 1738530000, + "primary_tag": "withdrawal", + "extra_tags": [], + "utxo": "994185cba7723715c0aa1d1859ce2781116776cea917035c90f8f04c9f4e095e:1", + "spending_txid": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc", + "output_msat": 200000000000, + "blockheight": 111 + }, + { + "created_index": 5, + "account_id": "wallet", + "credit_msat": 198995073000, + "debit_msat": 0, + "timestamp": 1738530000, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:1", + "output_msat": 198995073000, + "blockheight": 111 + }, + { + "created_index": 6, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 1000000000, + "debit_msat": 0, + "timestamp": 1738530000, + "primary_tag": "channel_open", + "extra_tags": [ + "opener" + ], + "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:0", + "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "output_msat": 1000000000, + "blockheight": 111 + }, + { + "created_index": 7, + "account_id": "wallet", + "credit_msat": 2000000000, + "debit_msat": 0, + "timestamp": 1758192792, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "b6d0090efbeb347fa59f90b321d6906cdf86779c15477582979fa427249f71f5:1", + "output_msat": 2000000000, + "blockheight": 114 + }, + { + "created_index": 8, + "account_id": "wallet", + "credit_msat": 0, + "debit_msat": 198995073000, + "timestamp": 1758192795, + "primary_tag": "withdrawal", + "extra_tags": [], + "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:1", + "spending_txid": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec", + "output_msat": 198995073000, + "blockheight": 115 + }, + { + "created_index": 9, + "account_id": "wallet", + "credit_msat": 197990453000, + "debit_msat": 0, + "timestamp": 1758192795, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:0", + "output_msat": 197990453000, + "blockheight": 115 + }, + { + "created_index": 10, + "account_id": "f8fc83a432cbfb2fffe222cc06727fdd977b5dd10ebd6707158e799e6f522d9f", + "credit_msat": 1000000000, + "debit_msat": 0, + "timestamp": 1758192795, + "primary_tag": "channel_open", + "extra_tags": [ + "opener" + ], + "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:1", + "peer_id": "nodeid050505050505050505050505050505050505050505050505050505050505", + "output_msat": 1000000000, + "blockheight": 115 + }, + { + "created_index": 11, + "account_id": "wallet", + "credit_msat": 486914000, + "debit_msat": 0, + "timestamp": 1738520000, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "874b26d4c523a902fdc44b88ec000eb5c3fe8754c9d44190a140561e24e77781:0", + "output_msat": 486914000, + "blockheight": 121 + }, + { + "created_index": 12, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 489809898, + "timestamp": 1738520000, + "primary_tag": "channel_close", + "extra_tags": [], + "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:0", + "spending_txid": "txid010101010101010101010101010101010101010101010101010101010101", + "output_msat": 1000000000, + "output_count": 2, + "blockheight": 121 + }, + { + "created_index": 13, + "account_id": "external", + "credit_msat": 510190000, + "debit_msat": 0, + "timestamp": 1738520000, + "primary_tag": "to_them", + "extra_tags": [], + "utxo": "874b26d4c523a902fdc44b88ec000eb5c3fe8754c9d44190a140561e24e77781:1", + "originating_account": "channelid0230000230000230000230000230000230000230000230000230000", + "output_msat": 510190000, + "blockheight": 121 + }, + { + "created_index": 14, + "account_id": "wallet", + "credit_msat": 2000000000, + "debit_msat": 0, + "timestamp": 1758192808, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "c9c9bec064382b6a6fb2a30d8923949b3c9f732465542b96e9ad1b5eebda4c7d:0", + "output_msat": 2000000000, + "blockheight": 122 + }, + { + "created_index": 15, + "account_id": "wallet", + "credit_msat": 0, + "debit_msat": 197990453000, + "timestamp": 1738500000, + "primary_tag": "withdrawal", + "extra_tags": [], + "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:0", + "spending_txid": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682", + "output_msat": 197990453000, + "blockheight": 123 + }, + { + "created_index": 16, + "account_id": "wallet", + "credit_msat": 196985833000, + "debit_msat": 0, + "timestamp": 1738500000, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682:1", + "output_msat": 196985833000, + "blockheight": 123 + }, + { + "created_index": 17, + "account_id": "channelid0230200230200230200230200230200230200230200230200230200", + "credit_msat": 1000000000, + "debit_msat": 0, + "timestamp": 1738500000, + "primary_tag": "channel_open", + "extra_tags": [ + "opener" + ], + "utxo": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682:0", + "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "output_msat": 1000000000, + "blockheight": 123 + } + ] + } + }, + { + "request": { + "id": "example:listchainmoves#2", + "method": "listchainmoves", + "params": { + "index": "created", + "start": 10 + } + }, + "response": { + "chainmoves": [ + { + "created_index": 10, + "account_id": "f8fc83a432cbfb2fffe222cc06727fdd977b5dd10ebd6707158e799e6f522d9f", + "credit_msat": 1000000000, + "debit_msat": 0, + "timestamp": 1758192795, + "primary_tag": "channel_open", + "extra_tags": [ + "opener" + ], + "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:1", + "peer_id": "nodeid050505050505050505050505050505050505050505050505050505050505", + "output_msat": 1000000000, + "blockheight": 115 + }, + { + "created_index": 11, + "account_id": "wallet", + "credit_msat": 486914000, + "debit_msat": 0, + "timestamp": 1738520000, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "874b26d4c523a902fdc44b88ec000eb5c3fe8754c9d44190a140561e24e77781:0", + "output_msat": 486914000, + "blockheight": 121 + }, + { + "created_index": 12, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 489809898, + "timestamp": 1738520000, + "primary_tag": "channel_close", + "extra_tags": [], + "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:0", + "spending_txid": "txid010101010101010101010101010101010101010101010101010101010101", + "output_msat": 1000000000, + "output_count": 2, + "blockheight": 121 + }, + { + "created_index": 13, + "account_id": "external", + "credit_msat": 510190000, + "debit_msat": 0, + "timestamp": 1738520000, + "primary_tag": "to_them", + "extra_tags": [], + "utxo": "874b26d4c523a902fdc44b88ec000eb5c3fe8754c9d44190a140561e24e77781:1", + "originating_account": "channelid0230000230000230000230000230000230000230000230000230000", + "output_msat": 510190000, + "blockheight": 121 + }, + { + "created_index": 14, + "account_id": "wallet", + "credit_msat": 2000000000, + "debit_msat": 0, + "timestamp": 1758192808, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "c9c9bec064382b6a6fb2a30d8923949b3c9f732465542b96e9ad1b5eebda4c7d:0", + "output_msat": 2000000000, + "blockheight": 122 + }, + { + "created_index": 15, + "account_id": "wallet", + "credit_msat": 0, + "debit_msat": 197990453000, + "timestamp": 1738500000, + "primary_tag": "withdrawal", + "extra_tags": [], + "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:0", + "spending_txid": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682", + "output_msat": 197990453000, + "blockheight": 123 + }, + { + "created_index": 16, + "account_id": "wallet", + "credit_msat": 196985833000, + "debit_msat": 0, + "timestamp": 1738500000, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682:1", + "output_msat": 196985833000, + "blockheight": 123 + }, + { + "created_index": 17, + "account_id": "channelid0230200230200230200230200230200230200230200230200230200", + "credit_msat": 1000000000, + "debit_msat": 0, + "timestamp": 1738500000, + "primary_tag": "channel_open", + "extra_tags": [ + "opener" + ], + "utxo": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682:0", + "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "output_msat": 1000000000, + "blockheight": 123 + } + ] + } + } ] }, "listchannelmoves.json": { @@ -16961,6 +17314,242 @@ ], "resources": [ "Main web site: " + ], + "examples": [ + { + "request": { + "id": "example:listchannelmoves#1", + "method": "listchannelmoves", + "params": {} + }, + "response": { + "channelmoves": [ + { + "created_index": 1, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 500000000, + "debit_msat": 0, + "timestamp": 1738520000, + "primary_tag": "invoice", + "payment_hash": "paymenthashdelpay10101010101010101010101010101010101010101010101", + "fees_msat": 0 + }, + { + "created_index": 2, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 500000000, + "timestamp": 1738520000, + "primary_tag": "invoice", + "payment_hash": "8a46ab91013146df39e98ad7c89505fbb5419f110e928f7a393e8304f3057df7", + "part_id": 0, + "group_id": 1, + "fees_msat": 0 + }, + { + "created_index": 3, + "account_id": "f8fc83a432cbfb2fffe222cc06727fdd977b5dd10ebd6707158e799e6f522d9f", + "credit_msat": 0, + "debit_msat": 500000000, + "timestamp": 1758192801, + "primary_tag": "invoice", + "payment_hash": "88969daaf02214a1928e6eb62a237a8ee557f3da93b2c44f3901432c88f4334b", + "part_id": 0, + "group_id": 1, + "fees_msat": 0 + }, + { + "created_index": 4, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 10000, + "timestamp": 1758192801, + "primary_tag": "routed", + "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", + "fees_msat": 1 + }, + { + "created_index": 5, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 10001, + "debit_msat": 0, + "timestamp": 1758192801, + "primary_tag": "routed", + "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", + "fees_msat": 1 + }, + { + "created_index": 6, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 10000, + "timestamp": 1758192801, + "primary_tag": "routed", + "payment_hash": "paymenthashkey01k101k101k101k101k101k101k101k101k101k101k101k101", + "fees_msat": 1 + }, + { + "created_index": 7, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 10001, + "debit_msat": 0, + "timestamp": 1758192801, + "primary_tag": "routed", + "payment_hash": "paymenthashkey01k101k101k101k101k101k101k101k101k101k101k101k101", + "fees_msat": 1 + }, + { + "created_index": 8, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 10000101, + "timestamp": 1758192802, + "primary_tag": "routed", + "payment_hash": "paymenthashkey02k201k201k201k201k201k201k201k201k201k201k201k201", + "fees_msat": 101 + }, + { + "created_index": 9, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 10000202, + "debit_msat": 0, + "timestamp": 1758192802, + "primary_tag": "routed", + "payment_hash": "paymenthashkey02k201k201k201k201k201k201k201k201k201k201k201k201", + "fees_msat": 101 + }, + { + "created_index": 10, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 10000, + "timestamp": 1758192802, + "primary_tag": "routed", + "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "fees_msat": 1 + }, + { + "created_index": 11, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 10001, + "debit_msat": 0, + "timestamp": 1758192802, + "primary_tag": "routed", + "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "fees_msat": 1 + }, + { + "created_index": 12, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 50000, + "timestamp": 1758192802, + "primary_tag": "routed", + "payment_hash": "paymenthashinvl0320032003200320032003200320032003200320032003200", + "fees_msat": 1 + }, + { + "created_index": 13, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 50001, + "debit_msat": 0, + "timestamp": 1758192802, + "primary_tag": "routed", + "payment_hash": "paymenthashinvl0320032003200320032003200320032003200320032003200", + "fees_msat": 1 + }, + { + "created_index": 14, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 100000, + "timestamp": 1758192803, + "primary_tag": "invoice", + "payment_hash": "paymenthashinvl0330033003300330033003300330033003300330033003300", + "part_id": 0, + "group_id": 1, + "fees_msat": 0 + }, + { + "created_index": 15, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 10001, + "timestamp": 1758192803, + "primary_tag": "routed", + "payment_hash": "61b929204f4db4f38e0412b2bd4c3c03668dad3575fb05f4e15a2214046c2bff", + "fees_msat": 1 + }, + { + "created_index": 16, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 10002, + "debit_msat": 0, + "timestamp": 1758192803, + "primary_tag": "routed", + "payment_hash": "61b929204f4db4f38e0412b2bd4c3c03668dad3575fb05f4e15a2214046c2bff", + "fees_msat": 1 + }, + { + "created_index": 17, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 0, + "debit_msat": 1000000, + "timestamp": 1758192821, + "primary_tag": "invoice", + "payment_hash": "paymenthashsdinvsi10si10si10si10si10si10si10si10si10si10si10si10", + "part_id": 0, + "group_id": 1, + "fees_msat": 0 + }, + { + "created_index": 18, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 1000, + "debit_msat": 0, + "timestamp": 1758192821, + "primary_tag": "invoice", + "payment_hash": "paymenthashinvl0270027002700270027002700270027002700270027002700", + "fees_msat": 0 + } + ] + } + }, + { + "request": { + "id": "example:listchannelmoves#2", + "method": "listchannelmoves", + "params": { + "index": "created", + "start": 10, + "limit": 2 + } + }, + "response": { + "channelmoves": [ + { + "created_index": 10, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 10000, + "timestamp": 1758192802, + "primary_tag": "routed", + "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "fees_msat": 1 + }, + { + "created_index": 11, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 10001, + "debit_msat": 0, + "timestamp": 1758192802, + "primary_tag": "routed", + "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "fees_msat": 1 + } + ] + } + } ] }, "listchannels.json": { diff --git a/doc/schemas/listchainmoves.json b/doc/schemas/listchainmoves.json index 985105e93a55..eeec3e6b902e 100644 --- a/doc/schemas/listchainmoves.json +++ b/doc/schemas/listchainmoves.json @@ -197,5 +197,358 @@ ], "resources": [ "Main web site: " + ], + "examples": [ + { + "request": { + "id": "example:listchainmoves#1", + "method": "listchainmoves", + "params": {} + }, + "response": { + "chainmoves": [ + { + "created_index": 1, + "account_id": "wallet", + "credit_msat": 200000000000, + "debit_msat": 0, + "timestamp": 1758192762, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "994185cba7723715c0aa1d1859ce2781116776cea917035c90f8f04c9f4e095e:1", + "output_msat": 200000000000, + "blockheight": 104 + }, + { + "created_index": 2, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 0, + "debit_msat": 0, + "timestamp": 1758192777, + "primary_tag": "channel_open", + "extra_tags": [], + "utxo": "542906c8a9d90596592459a9484f4286a3200f6540599c83b43af2ac4166c6ca:1", + "peer_id": "nodeid010101010101010101010101010101010101010101010101010101010101", + "output_msat": 1000000000, + "blockheight": 109 + }, + { + "created_index": 3, + "account_id": "wallet", + "credit_msat": 2000000000, + "debit_msat": 0, + "timestamp": 1758192780, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "19e9e42f2f2097ea1dc18d7eb670bc53c90cbe31bb1daba8e94abf3c6b60d2dc:1", + "output_msat": 2000000000, + "blockheight": 110 + }, + { + "created_index": 4, + "account_id": "wallet", + "credit_msat": 0, + "debit_msat": 200000000000, + "timestamp": 1738530000, + "primary_tag": "withdrawal", + "extra_tags": [], + "utxo": "994185cba7723715c0aa1d1859ce2781116776cea917035c90f8f04c9f4e095e:1", + "spending_txid": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc", + "output_msat": 200000000000, + "blockheight": 111 + }, + { + "created_index": 5, + "account_id": "wallet", + "credit_msat": 198995073000, + "debit_msat": 0, + "timestamp": 1738530000, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:1", + "output_msat": 198995073000, + "blockheight": 111 + }, + { + "created_index": 6, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 1000000000, + "debit_msat": 0, + "timestamp": 1738530000, + "primary_tag": "channel_open", + "extra_tags": [ + "opener" + ], + "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:0", + "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "output_msat": 1000000000, + "blockheight": 111 + }, + { + "created_index": 7, + "account_id": "wallet", + "credit_msat": 2000000000, + "debit_msat": 0, + "timestamp": 1758192792, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "b6d0090efbeb347fa59f90b321d6906cdf86779c15477582979fa427249f71f5:1", + "output_msat": 2000000000, + "blockheight": 114 + }, + { + "created_index": 8, + "account_id": "wallet", + "credit_msat": 0, + "debit_msat": 198995073000, + "timestamp": 1758192795, + "primary_tag": "withdrawal", + "extra_tags": [], + "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:1", + "spending_txid": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec", + "output_msat": 198995073000, + "blockheight": 115 + }, + { + "created_index": 9, + "account_id": "wallet", + "credit_msat": 197990453000, + "debit_msat": 0, + "timestamp": 1758192795, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:0", + "output_msat": 197990453000, + "blockheight": 115 + }, + { + "created_index": 10, + "account_id": "f8fc83a432cbfb2fffe222cc06727fdd977b5dd10ebd6707158e799e6f522d9f", + "credit_msat": 1000000000, + "debit_msat": 0, + "timestamp": 1758192795, + "primary_tag": "channel_open", + "extra_tags": [ + "opener" + ], + "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:1", + "peer_id": "nodeid050505050505050505050505050505050505050505050505050505050505", + "output_msat": 1000000000, + "blockheight": 115 + }, + { + "created_index": 11, + "account_id": "wallet", + "credit_msat": 486914000, + "debit_msat": 0, + "timestamp": 1738520000, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "874b26d4c523a902fdc44b88ec000eb5c3fe8754c9d44190a140561e24e77781:0", + "output_msat": 486914000, + "blockheight": 121 + }, + { + "created_index": 12, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 489809898, + "timestamp": 1738520000, + "primary_tag": "channel_close", + "extra_tags": [], + "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:0", + "spending_txid": "txid010101010101010101010101010101010101010101010101010101010101", + "output_msat": 1000000000, + "output_count": 2, + "blockheight": 121 + }, + { + "created_index": 13, + "account_id": "external", + "credit_msat": 510190000, + "debit_msat": 0, + "timestamp": 1738520000, + "primary_tag": "to_them", + "extra_tags": [], + "utxo": "874b26d4c523a902fdc44b88ec000eb5c3fe8754c9d44190a140561e24e77781:1", + "originating_account": "channelid0230000230000230000230000230000230000230000230000230000", + "output_msat": 510190000, + "blockheight": 121 + }, + { + "created_index": 14, + "account_id": "wallet", + "credit_msat": 2000000000, + "debit_msat": 0, + "timestamp": 1758192808, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "c9c9bec064382b6a6fb2a30d8923949b3c9f732465542b96e9ad1b5eebda4c7d:0", + "output_msat": 2000000000, + "blockheight": 122 + }, + { + "created_index": 15, + "account_id": "wallet", + "credit_msat": 0, + "debit_msat": 197990453000, + "timestamp": 1738500000, + "primary_tag": "withdrawal", + "extra_tags": [], + "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:0", + "spending_txid": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682", + "output_msat": 197990453000, + "blockheight": 123 + }, + { + "created_index": 16, + "account_id": "wallet", + "credit_msat": 196985833000, + "debit_msat": 0, + "timestamp": 1738500000, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682:1", + "output_msat": 196985833000, + "blockheight": 123 + }, + { + "created_index": 17, + "account_id": "channelid0230200230200230200230200230200230200230200230200230200", + "credit_msat": 1000000000, + "debit_msat": 0, + "timestamp": 1738500000, + "primary_tag": "channel_open", + "extra_tags": [ + "opener" + ], + "utxo": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682:0", + "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "output_msat": 1000000000, + "blockheight": 123 + } + ] + } + }, + { + "request": { + "id": "example:listchainmoves#2", + "method": "listchainmoves", + "params": { + "index": "created", + "start": 10 + } + }, + "response": { + "chainmoves": [ + { + "created_index": 10, + "account_id": "f8fc83a432cbfb2fffe222cc06727fdd977b5dd10ebd6707158e799e6f522d9f", + "credit_msat": 1000000000, + "debit_msat": 0, + "timestamp": 1758192795, + "primary_tag": "channel_open", + "extra_tags": [ + "opener" + ], + "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:1", + "peer_id": "nodeid050505050505050505050505050505050505050505050505050505050505", + "output_msat": 1000000000, + "blockheight": 115 + }, + { + "created_index": 11, + "account_id": "wallet", + "credit_msat": 486914000, + "debit_msat": 0, + "timestamp": 1738520000, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "874b26d4c523a902fdc44b88ec000eb5c3fe8754c9d44190a140561e24e77781:0", + "output_msat": 486914000, + "blockheight": 121 + }, + { + "created_index": 12, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 489809898, + "timestamp": 1738520000, + "primary_tag": "channel_close", + "extra_tags": [], + "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:0", + "spending_txid": "txid010101010101010101010101010101010101010101010101010101010101", + "output_msat": 1000000000, + "output_count": 2, + "blockheight": 121 + }, + { + "created_index": 13, + "account_id": "external", + "credit_msat": 510190000, + "debit_msat": 0, + "timestamp": 1738520000, + "primary_tag": "to_them", + "extra_tags": [], + "utxo": "874b26d4c523a902fdc44b88ec000eb5c3fe8754c9d44190a140561e24e77781:1", + "originating_account": "channelid0230000230000230000230000230000230000230000230000230000", + "output_msat": 510190000, + "blockheight": 121 + }, + { + "created_index": 14, + "account_id": "wallet", + "credit_msat": 2000000000, + "debit_msat": 0, + "timestamp": 1758192808, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "c9c9bec064382b6a6fb2a30d8923949b3c9f732465542b96e9ad1b5eebda4c7d:0", + "output_msat": 2000000000, + "blockheight": 122 + }, + { + "created_index": 15, + "account_id": "wallet", + "credit_msat": 0, + "debit_msat": 197990453000, + "timestamp": 1738500000, + "primary_tag": "withdrawal", + "extra_tags": [], + "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:0", + "spending_txid": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682", + "output_msat": 197990453000, + "blockheight": 123 + }, + { + "created_index": 16, + "account_id": "wallet", + "credit_msat": 196985833000, + "debit_msat": 0, + "timestamp": 1738500000, + "primary_tag": "deposit", + "extra_tags": [], + "utxo": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682:1", + "output_msat": 196985833000, + "blockheight": 123 + }, + { + "created_index": 17, + "account_id": "channelid0230200230200230200230200230200230200230200230200230200", + "credit_msat": 1000000000, + "debit_msat": 0, + "timestamp": 1738500000, + "primary_tag": "channel_open", + "extra_tags": [ + "opener" + ], + "utxo": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682:0", + "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "output_msat": 1000000000, + "blockheight": 123 + } + ] + } + } ] } diff --git a/doc/schemas/listchannelmoves.json b/doc/schemas/listchannelmoves.json index d98a72b777a8..eba0f45a35db 100644 --- a/doc/schemas/listchannelmoves.json +++ b/doc/schemas/listchannelmoves.json @@ -145,5 +145,241 @@ ], "resources": [ "Main web site: " + ], + "examples": [ + { + "request": { + "id": "example:listchannelmoves#1", + "method": "listchannelmoves", + "params": {} + }, + "response": { + "channelmoves": [ + { + "created_index": 1, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 500000000, + "debit_msat": 0, + "timestamp": 1738520000, + "primary_tag": "invoice", + "payment_hash": "paymenthashdelpay10101010101010101010101010101010101010101010101", + "fees_msat": 0 + }, + { + "created_index": 2, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 500000000, + "timestamp": 1738520000, + "primary_tag": "invoice", + "payment_hash": "8a46ab91013146df39e98ad7c89505fbb5419f110e928f7a393e8304f3057df7", + "part_id": 0, + "group_id": 1, + "fees_msat": 0 + }, + { + "created_index": 3, + "account_id": "f8fc83a432cbfb2fffe222cc06727fdd977b5dd10ebd6707158e799e6f522d9f", + "credit_msat": 0, + "debit_msat": 500000000, + "timestamp": 1758192801, + "primary_tag": "invoice", + "payment_hash": "88969daaf02214a1928e6eb62a237a8ee557f3da93b2c44f3901432c88f4334b", + "part_id": 0, + "group_id": 1, + "fees_msat": 0 + }, + { + "created_index": 4, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 10000, + "timestamp": 1758192801, + "primary_tag": "routed", + "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", + "fees_msat": 1 + }, + { + "created_index": 5, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 10001, + "debit_msat": 0, + "timestamp": 1758192801, + "primary_tag": "routed", + "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", + "fees_msat": 1 + }, + { + "created_index": 6, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 10000, + "timestamp": 1758192801, + "primary_tag": "routed", + "payment_hash": "paymenthashkey01k101k101k101k101k101k101k101k101k101k101k101k101", + "fees_msat": 1 + }, + { + "created_index": 7, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 10001, + "debit_msat": 0, + "timestamp": 1758192801, + "primary_tag": "routed", + "payment_hash": "paymenthashkey01k101k101k101k101k101k101k101k101k101k101k101k101", + "fees_msat": 1 + }, + { + "created_index": 8, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 10000101, + "timestamp": 1758192802, + "primary_tag": "routed", + "payment_hash": "paymenthashkey02k201k201k201k201k201k201k201k201k201k201k201k201", + "fees_msat": 101 + }, + { + "created_index": 9, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 10000202, + "debit_msat": 0, + "timestamp": 1758192802, + "primary_tag": "routed", + "payment_hash": "paymenthashkey02k201k201k201k201k201k201k201k201k201k201k201k201", + "fees_msat": 101 + }, + { + "created_index": 10, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 10000, + "timestamp": 1758192802, + "primary_tag": "routed", + "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "fees_msat": 1 + }, + { + "created_index": 11, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 10001, + "debit_msat": 0, + "timestamp": 1758192802, + "primary_tag": "routed", + "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "fees_msat": 1 + }, + { + "created_index": 12, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 50000, + "timestamp": 1758192802, + "primary_tag": "routed", + "payment_hash": "paymenthashinvl0320032003200320032003200320032003200320032003200", + "fees_msat": 1 + }, + { + "created_index": 13, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 50001, + "debit_msat": 0, + "timestamp": 1758192802, + "primary_tag": "routed", + "payment_hash": "paymenthashinvl0320032003200320032003200320032003200320032003200", + "fees_msat": 1 + }, + { + "created_index": 14, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 100000, + "timestamp": 1758192803, + "primary_tag": "invoice", + "payment_hash": "paymenthashinvl0330033003300330033003300330033003300330033003300", + "part_id": 0, + "group_id": 1, + "fees_msat": 0 + }, + { + "created_index": 15, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 10001, + "timestamp": 1758192803, + "primary_tag": "routed", + "payment_hash": "61b929204f4db4f38e0412b2bd4c3c03668dad3575fb05f4e15a2214046c2bff", + "fees_msat": 1 + }, + { + "created_index": 16, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 10002, + "debit_msat": 0, + "timestamp": 1758192803, + "primary_tag": "routed", + "payment_hash": "61b929204f4db4f38e0412b2bd4c3c03668dad3575fb05f4e15a2214046c2bff", + "fees_msat": 1 + }, + { + "created_index": 17, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 0, + "debit_msat": 1000000, + "timestamp": 1758192821, + "primary_tag": "invoice", + "payment_hash": "paymenthashsdinvsi10si10si10si10si10si10si10si10si10si10si10si10", + "part_id": 0, + "group_id": 1, + "fees_msat": 0 + }, + { + "created_index": 18, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 1000, + "debit_msat": 0, + "timestamp": 1758192821, + "primary_tag": "invoice", + "payment_hash": "paymenthashinvl0270027002700270027002700270027002700270027002700", + "fees_msat": 0 + } + ] + } + }, + { + "request": { + "id": "example:listchannelmoves#2", + "method": "listchannelmoves", + "params": { + "index": "created", + "start": 10, + "limit": 2 + } + }, + "response": { + "channelmoves": [ + { + "created_index": 10, + "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "credit_msat": 0, + "debit_msat": 10000, + "timestamp": 1758192802, + "primary_tag": "routed", + "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "fees_msat": 1 + }, + { + "created_index": 11, + "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "credit_msat": 10001, + "debit_msat": 0, + "timestamp": 1758192802, + "primary_tag": "routed", + "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "fees_msat": 1 + } + ] + } + } ] } diff --git a/tests/autogenerate-rpc-examples.py b/tests/autogenerate-rpc-examples.py index bfd564288c4f..1036adbd7a55 100644 --- a/tests/autogenerate-rpc-examples.py +++ b/tests/autogenerate-rpc-examples.py @@ -972,6 +972,19 @@ def generate_bookkeeper_examples(l2, l3, c23_2_chan_id): raise +def generate_coinmvt_examples(l2): + """Generates listchannelmoves and listchainmoves rpc examples""" + try: + logger.info('listcoinmoves Start...') + update_example(node=l2, method='listchainmoves', params={}) + update_example(node=l2, method='listchainmoves', params={'index': 'created', 'start': 10}) + update_example(node=l2, method='listchannelmoves', params={}) + update_example(node=l2, method='listchannelmoves', params={'index': 'created', 'start': 10, 'limit': 2}) + except Exception as e: + logger.error(f'Error in generating coinmoves examples: {e}') + raise + + def generate_offers_renepay_examples(l1, l2, inv_l21, inv_l34): """Covers all offers and renepay related examples""" try: @@ -2096,6 +2109,7 @@ def list_missing_examples(): c23_2, c23res2, c34_2, inv_l11, inv_l21, inv_l22, inv_l31, inv_l32, inv_l34 = generate_transactions_examples(l1, l2, l3, l4, l5, c25, bitcoind) rune_l21 = generate_runes_examples(l1, l2, l3) generate_datastore_examples(l2) + generate_coinmvt_examples(l2) generate_bookkeeper_examples(l2, l3, c23res2['channel_id']) offer_l23, inv_req_l1_l22 = generate_offers_renepay_examples(l1, l2, inv_l21, inv_l34) generate_askrene_examples(l1, l2, l3, c12, c23_2) From 7b03963e4ac3a34b0a8d8cf73e74a9f864d51565 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:40:18 +0930 Subject: [PATCH 11/37] lightningd: remove unused `start_time` field in bitcoind_getfilteredblock. Signed-off-by: Rusty Russell --- lightningd/bitcoind.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/lightningd/bitcoind.c b/lightningd/bitcoind.c index 771ccf2f9f0a..879e2d87fe7c 100644 --- a/lightningd/bitcoind.c +++ b/lightningd/bitcoind.c @@ -703,7 +703,6 @@ struct filteredblock_call { struct filteredblock *result; struct filteredblock_outpoint **outpoints; size_t current_outpoint; - struct timeabs start_time; u32 height; }; @@ -858,7 +857,6 @@ void bitcoind_getfilteredblock_(const tal_t *ctx, call->arg = arg; call->height = height; assert(call->cb != NULL); - call->start_time = time_now(); call->result = NULL; call->current_outpoint = 0; From 9fe47b1933463cc9e8cff9499aec2385f1bb6e6f Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:40:18 +0930 Subject: [PATCH 12/37] tests: use timemono not time_now() for duration measurement. Signed-off-by: Rusty Russell --- bitcoin/test/run-secret_eq_consttime.c | 16 ++++++++-------- onchaind/test/run-grind_feerate.c | 10 +++++----- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/bitcoin/test/run-secret_eq_consttime.c b/bitcoin/test/run-secret_eq_consttime.c index 4f21ee191f11..bfba7ceb5029 100644 --- a/bitcoin/test/run-secret_eq_consttime.c +++ b/bitcoin/test/run-secret_eq_consttime.c @@ -22,7 +22,7 @@ static struct timerel const_time_test(struct secret *s1, struct secret *s2, size_t off) { - struct timeabs start, end; + struct timemono start, end; int result = 0; memset(s1, 0, RUNS * sizeof(*s1)); @@ -31,16 +31,16 @@ static struct timerel const_time_test(struct secret *s1, for (size_t i = 0; i < RUNS; i++) s2[i].data[off] = i; - start = time_now(); + start = time_mono(); for (size_t i = 0; i < RUNS; i++) result += secret_eq_consttime(&s1[i], &s2[i]); - end = time_now(); + end = time_mono(); if (result != RUNS / 256) errx(1, "Expected %u successes at offset %zu, not %u!", RUNS / 256, off, result); - return time_between(end, start); + return timemono_between(end, start); } static inline bool secret_eq_nonconst(const struct secret *a, @@ -53,7 +53,7 @@ static struct timerel nonconst_time_test(struct secret *s1, struct secret *s2, size_t off) { - struct timeabs start, end; + struct timemono start, end; int result = 0; memset(s1, 0, RUNS * sizeof(*s1)); @@ -62,16 +62,16 @@ static struct timerel nonconst_time_test(struct secret *s1, for (size_t i = 0; i < RUNS; i++) s2[i].data[off] = i; - start = time_now(); + start = time_mono(); for (size_t i = 0; i < RUNS; i++) result += secret_eq_nonconst(&s1[i], &s2[i]); - end = time_now(); + end = time_mono(); if (result != RUNS / 256) errx(1, "Expected %u successes at offset %zu, not %u!", RUNS / 256, off, result); - return time_between(end, start); + return timemono_between(end, start); } static struct secret *s1, *s2; diff --git a/onchaind/test/run-grind_feerate.c b/onchaind/test/run-grind_feerate.c index e413f100d043..c9b1d4dd5368 100644 --- a/onchaind/test/run-grind_feerate.c +++ b/onchaind/test/run-grind_feerate.c @@ -356,7 +356,7 @@ int main(int argc, char *argv[]) struct amount_sat fee; struct pubkey htlc_key; struct keyset *keys; - struct timeabs start, end; + struct timemono start, end; int iterations = 1000; u8 *spk = tal_arr(tmpctx, u8, 1); spk[0] = 0x00; @@ -388,15 +388,15 @@ int main(int argc, char *argv[]) max_possible_feerate = 250000; min_possible_feerate = max_possible_feerate + 1 - iterations; - start = time_now(); + start = time_mono(); if (!grind_htlc_tx_fee(&fee, tx, &sig, wscript, 663)) abort(); - end = time_now(); + end = time_mono(); assert(amount_sat_eq(fee, AMOUNT_SAT(165750))); printf("%u iterations in %"PRIu64" msec = %"PRIu64" nsec each\n", iterations, - time_to_msec(time_between(end, start)), - time_to_nsec(time_divide(time_between(end, start), iterations))); + time_to_msec(timemono_between(end, start)), + time_to_nsec(time_divide(timemono_between(end, start), iterations))); common_shutdown(); return 0; From c217e3a7e10b8d16ac7e15148070c0e85597a9a3 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:40:18 +0930 Subject: [PATCH 13/37] lightningd: fix scb remote_to_self_delay information. This was changing all the time when I tried to make autogenerate-rpc-examples.py reproducible. Turns out it was being corrupted (it does suspicious things with pointers); rather than try to diagnose it, I simply rewrote the code to create it only when we need it. Signed-off-by: Rusty Russell --- lightningd/channel.c | 25 -------------- lightningd/channel.h | 4 --- lightningd/dual_open_control.c | 19 ----------- lightningd/peer_control.c | 37 +++++++++++++++------ lightningd/test/run-invoice-select-inchan.c | 7 ++++ 5 files changed, 34 insertions(+), 58 deletions(-) diff --git a/lightningd/channel.c b/lightningd/channel.c index 354249a4c24c..1390a4868713 100644 --- a/lightningd/channel.c +++ b/lightningd/channel.c @@ -343,7 +343,6 @@ struct channel *new_unsaved_channel(struct peer *peer, channel->openchannel_signed_cmd = NULL; channel->state = DUALOPEND_OPEN_INIT; channel->owner = NULL; - channel->scb = NULL; channel->reestablished = false; memset(&channel->billboard, 0, sizeof(channel->billboard)); channel->billboard.transient = tal_fmt(channel, "%s", @@ -578,30 +577,6 @@ struct channel *new_channel(struct peer *peer, u64 dbid, channel->billboard.transient = tal_strdup(channel, transient_billboard); channel->channel_info = *channel_info; - /* If it's a unix domain socket connection, we don't save it */ - if (peer->addr.itype == ADDR_INTERNAL_WIREADDR) { - channel->scb = tal(channel, struct modern_scb_chan); - channel->scb->id = dbid; - /* More useful to have last_known_addr, if avail */ - if (peer->last_known_addr) - channel->scb->addr = *peer->last_known_addr; - channel->scb->addr = peer->addr.u.wireaddr.wireaddr; - channel->scb->node_id = peer->id; - channel->scb->funding = *funding; - channel->scb->cid = *cid; - channel->scb->funding_sats = funding_sats; - channel->scb->type = channel_type_dup(channel->scb, type); - - struct tlv_scb_tlvs *scb_tlvs = tlv_scb_tlvs_new(channel); - scb_tlvs->shachain = &channel->their_shachain.chain; - scb_tlvs->basepoints = &channel->channel_info.theirbase; - scb_tlvs->opener = &channel->opener; - scb_tlvs->remote_to_self_delay = &channel->channel_info.their_config.to_self_delay; - - channel->scb->tlvs = scb_tlvs; - } else - channel->scb = NULL; - if (!log) { channel->log = new_logger(channel, peer->ld->log_book, diff --git a/lightningd/channel.h b/lightningd/channel.h index af2f18a54b8a..fd8e031b0c39 100644 --- a/lightningd/channel.h +++ b/lightningd/channel.h @@ -343,10 +343,6 @@ struct channel { /* Lease commited max part per thousandth channel fee (ppm * 1000) */ u16 lease_chan_max_ppt; - /* `Channel-shell` of this channel - * (Minimum information required to backup this channel). */ - struct modern_scb_chan *scb; - /* Do we allow the peer to set any fee it wants? */ bool ignore_fee_limits; diff --git a/lightningd/dual_open_control.c b/lightningd/dual_open_control.c index 1e46c06a991c..ab84e3f498bd 100644 --- a/lightningd/dual_open_control.c +++ b/lightningd/dual_open_control.c @@ -1467,28 +1467,9 @@ wallet_commit_channel(struct lightningd *ld, &commitment_feerate); channel->min_possible_feerate = commitment_feerate; channel->max_possible_feerate = commitment_feerate; - if (channel->peer->addr.itype == ADDR_INTERNAL_WIREADDR) { - channel->scb = tal(channel, struct modern_scb_chan); - channel->scb->id = channel->dbid; - channel->scb->addr = channel->peer->addr.u.wireaddr.wireaddr; - channel->scb->node_id = channel->peer->id; - channel->scb->funding = *funding; - channel->scb->cid = channel->cid; - channel->scb->funding_sats = total_funding; - - struct tlv_scb_tlvs *scb_tlvs = tlv_scb_tlvs_new(channel); - scb_tlvs->shachain = &channel->their_shachain.chain; - scb_tlvs->basepoints = &channel_info->theirbase; - scb_tlvs->opener = &channel->opener; - scb_tlvs->remote_to_self_delay = &channel_info->their_config.to_self_delay; - - channel->scb->tlvs = scb_tlvs; - } else - channel->scb = NULL; tal_free(channel->type); channel->type = channel_type_dup(channel, type); - channel->scb->type = channel_type_dup(channel->scb, type); if (our_upfront_shutdown_script) channel->shutdown_scriptpubkey[LOCAL] diff --git a/lightningd/peer_control.c b/lightningd/peer_control.c index 2f11dcb80794..4cc212eff2d7 100644 --- a/lightningd/peer_control.c +++ b/lightningd/peer_control.c @@ -2488,15 +2488,35 @@ static void json_add_scb(struct command *cmd, struct json_stream *response, struct channel *c) { - u8 *scb = tal_arr(cmd, u8, 0); + u8 *scb_wire = tal_arr(cmd, u8, 0); + struct modern_scb_chan *scb; - /* Update shachain & basepoints in SCB. */ - c->scb->tlvs->shachain = &c->their_shachain.chain; - c->scb->tlvs->basepoints = &c->channel_info.theirbase; - towire_modern_scb_chan(&scb, c->scb); + /* Don't do scb for unix domain sockets. */ + if (c->peer->addr.itype != ADDR_INTERNAL_WIREADDR) + return; + + scb = tal(tmpctx, struct modern_scb_chan); + scb->id = c->dbid; + /* More useful to have last_known_addr, if avail */ + if (c->peer->last_known_addr) + scb->addr = *c->peer->last_known_addr; + else + scb->addr = c->peer->addr.u.wireaddr.wireaddr; + scb->node_id = c->peer->id; + scb->funding = c->funding; + scb->cid = c->cid; + scb->funding_sats = c->funding_sats; + scb->type = channel_type_dup(scb, c->type); - json_add_hex_talarr(response, fieldname, - scb); + scb->tlvs = tlv_scb_tlvs_new(scb); + scb->tlvs->shachain = &c->their_shachain.chain; + scb->tlvs->basepoints = &c->channel_info.theirbase; + scb->tlvs->opener = &c->opener; + scb->tlvs->remote_to_self_delay = &c->channel_info.their_config.to_self_delay; + + towire_modern_scb_chan(&scb_wire, scb); + + json_add_hex_talarr(response, fieldname, scb_wire); } /* This will return a SCB for all the channels currently loaded @@ -2521,9 +2541,6 @@ static struct command_result *json_staticbackup(struct command *cmd, peer = peer_node_id_map_next(cmd->ld->peers, &it)) { struct channel *channel; list_for_each(&peer->channels, channel, list){ - /* cppcheck-suppress uninitvar - false positive on channel */ - if (!channel->scb) - continue; json_add_scb(cmd, NULL, response, channel); } } diff --git a/lightningd/test/run-invoice-select-inchan.c b/lightningd/test/run-invoice-select-inchan.c index 1c234c5dae90..1c885a1b2c84 100644 --- a/lightningd/test/run-invoice-select-inchan.c +++ b/lightningd/test/run-invoice-select-inchan.c @@ -144,6 +144,10 @@ const char *channel_state_name(const struct channel *channel UNNEEDED) /* Generated stub for channel_state_str */ const char *channel_state_str(enum channel_state state UNNEEDED) { fprintf(stderr, "channel_state_str called!\n"); abort(); } +/* Generated stub for channel_type_dup */ +struct channel_type *channel_type_dup(const tal_t *ctx UNNEEDED, + const struct channel_type *t UNNEEDED) +{ fprintf(stderr, "channel_type_dup called!\n"); abort(); } /* Generated stub for channel_type_has */ bool channel_type_has(const struct channel_type *type UNNEEDED, int feature UNNEEDED) { fprintf(stderr, "channel_type_has called!\n"); abort(); } @@ -979,6 +983,9 @@ void subd_send_fd(struct subd *sd UNNEEDED, int fd UNNEEDED) /* Generated stub for subd_send_msg */ void subd_send_msg(struct subd *sd UNNEEDED, const u8 *msg_out UNNEEDED) { fprintf(stderr, "subd_send_msg called!\n"); abort(); } +/* Generated stub for tlv_scb_tlvs_new */ +struct tlv_scb_tlvs *tlv_scb_tlvs_new(const tal_t *ctx UNNEEDED) +{ fprintf(stderr, "tlv_scb_tlvs_new called!\n"); abort(); } /* Generated stub for towire_bigsize */ void towire_bigsize(u8 **pptr UNNEEDED, const bigsize_t val UNNEEDED) { fprintf(stderr, "towire_bigsize called!\n"); abort(); } From a4b07780a92490e780d14a1baf978372c23ec6db Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:41:18 +0930 Subject: [PATCH 14/37] common: add randbytes() wrapper to override cryptographic entropy: $CLN_DEV_ENTROPY_SEED Only in developer mode, ofc. Notes: 1. We have to move the initialization before the lightningd main trace_start, since that uses pseudorand(). 2. To make the results stable, we need to use per-caller values to randbytes(). Otherwise external timing changes the call order. Signed-off-by: Rusty Russell --- channeld/Makefile | 1 + channeld/test/Makefile | 1 + channeld/test/run-commit_tx.c | 10 +++ channeld/test/run-full_channel.c | 3 + cli/test/Makefile | 1 + closingd/Makefile | 1 + common/Makefile | 1 + common/daemon.c | 8 +++ common/randbytes.c | 64 +++++++++++++++++++ common/randbytes.h | 20 ++++++ common/test/Makefile | 4 ++ common/test/run-htable.c | 10 +++ common/test/run-json.c | 10 +++ common/test/run-param.c | 10 +++ common/test/run-route-infloop.c | 10 +++ common/test/run-route-specific.c | 10 +++ common/test/run-route.c | 10 +++ connectd/Makefile | 1 + connectd/test/Makefile | 1 + connectd/test/run-crc32_of_update.c | 10 +++ connectd/test/run-gossip_rcvd_filter.c | 6 ++ connectd/test/run-initiator-success.c | 9 +++ connectd/test/run-netaddress.c | 10 +++ connectd/test/run-responder-success.c | 9 +++ connectd/test/run-websocket.c | 10 +++ devtools/Makefile | 3 +- gossipd/Makefile | 1 + gossipd/test/Makefile | 1 + gossipd/test/run-check_channel_announcement.c | 10 +++ gossipd/test/run-extended-info.c | 10 +++ gossipd/test/run-next_block_range.c | 9 +++ gossipd/test/run-txout_failure.c | 10 +++ hsmd/Makefile | 1 + lightningd/Makefile | 1 + lightningd/lightningd.c | 6 +- lightningd/test/Makefile | 1 + onchaind/Makefile | 1 + onchaind/test/Makefile | 1 + onchaind/test/run-grind_feerate-bug.c | 6 ++ onchaind/test/run-grind_feerate.c | 6 ++ openingd/Makefile | 1 + plugins/Makefile | 1 + plugins/bkpr/test/Makefile | 1 + plugins/test/Makefile | 1 + plugins/test/run-funder_policy.c | 10 +++ tests/plugins/Makefile | 1 + tools/hsmtool.c | 6 ++ wallet/test/Makefile | 1 + wire/test/Makefile | 1 + wire/test/run-peer-wire.c | 10 +++ wire/test/run-tlvstream.c | 10 +++ 51 files changed, 337 insertions(+), 3 deletions(-) create mode 100644 common/randbytes.c create mode 100644 common/randbytes.h diff --git a/channeld/Makefile b/channeld/Makefile index 7edcd460ae4d..e6673a56326c 100644 --- a/channeld/Makefile +++ b/channeld/Makefile @@ -84,6 +84,7 @@ CHANNELD_COMMON_OBJS := \ common/psbt_open.o \ common/psbt_internal.o \ common/pseudorand.o \ + common/randbytes.o \ common/read_peer_msg.o \ common/setup.o \ common/status.o \ diff --git a/channeld/test/Makefile b/channeld/test/Makefile index 67bc5a79769f..7e447f598439 100644 --- a/channeld/test/Makefile +++ b/channeld/test/Makefile @@ -21,6 +21,7 @@ CHANNELD_TEST_COMMON_OBJS := \ common/msg_queue.o \ common/permute_tx.o \ common/pseudorand.o \ + common/randbytes.o \ common/setup.o \ common/utils.o diff --git a/channeld/test/run-commit_tx.c b/channeld/test/run-commit_tx.c index 5f0a636bdd4b..89f2039eade9 100644 --- a/channeld/test/run-commit_tx.c +++ b/channeld/test/run-commit_tx.c @@ -15,6 +15,7 @@ static bool print_superverbose; #include #include #include +#include #include #include @@ -32,6 +33,15 @@ bool fromwire_channel_id(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, /* Generated stub for fromwire_node_id */ void fromwire_node_id(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, struct node_id *id UNNEEDED) { fprintf(stderr, "fromwire_node_id called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for pubkey_from_node_id */ bool pubkey_from_node_id(struct pubkey *key UNNEEDED, const struct node_id *id UNNEEDED) { fprintf(stderr, "pubkey_from_node_id called!\n"); abort(); } diff --git a/channeld/test/run-full_channel.c b/channeld/test/run-full_channel.c index 69128019418e..95394b3a435a 100644 --- a/channeld/test/run-full_channel.c +++ b/channeld/test/run-full_channel.c @@ -25,6 +25,9 @@ void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memt /* Generated stub for memleak_scan_htable */ void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) { fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for pubkey_from_node_id */ bool pubkey_from_node_id(struct pubkey *key UNNEEDED, const struct node_id *id UNNEEDED) { fprintf(stderr, "pubkey_from_node_id called!\n"); abort(); } diff --git a/cli/test/Makefile b/cli/test/Makefile index 6f9c9bea6579..3f587e8c098b 100644 --- a/cli/test/Makefile +++ b/cli/test/Makefile @@ -15,6 +15,7 @@ CLI_TEST_COMMON_OBJS := \ common/htlc_state.o \ common/json_parse_simple.o \ common/pseudorand.o \ + common/randbytes.o \ common/memleak.o \ common/msg_queue.o \ common/setup.o \ diff --git a/closingd/Makefile b/closingd/Makefile index 1c3953c14f20..c3d055acbf68 100644 --- a/closingd/Makefile +++ b/closingd/Makefile @@ -47,6 +47,7 @@ CLOSINGD_COMMON_OBJS := \ common/psbt_keypath.o \ common/psbt_open.o \ common/pseudorand.o \ + common/randbytes.o \ common/status_wiregen.o \ common/read_peer_msg.o \ common/setup.o \ diff --git a/common/Makefile b/common/Makefile index dec98e099b26..18381e02859b 100644 --- a/common/Makefile +++ b/common/Makefile @@ -85,6 +85,7 @@ COMMON_SRC_NOGEN := \ common/psbt_keypath.c \ common/psbt_open.c \ common/pseudorand.c \ + common/randbytes.c \ common/random_select.c \ common/read_peer_msg.c \ common/route.c \ diff --git a/common/daemon.c b/common/daemon.c index c3adac2a0255..9d09b7c8b4d6 100644 --- a/common/daemon.c +++ b/common/daemon.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -198,6 +199,7 @@ void daemon_shutdown(void) bool daemon_developer_mode(char *argv[]) { bool developer = false, debug = false; + const char *entropy_override; for (int i = 1; argv[i]; i++) { if (streq(argv[i], "--dev-debug-self")) @@ -222,6 +224,12 @@ bool daemon_developer_mode(char *argv[]) kill(getpid(), SIGSTOP); } + /* We can override cryptographic randomness with this var in development + * mode, for reproducible results */ + entropy_override = getenv("CLN_DEV_ENTROPY_SEED"); + if (entropy_override) + dev_override_randbytes(argv[0], atol(entropy_override)); + /* This checks for any tal_steal loops, but it's not free: * only use if we're already using the fairly heavy memleak * detection. */ diff --git a/common/randbytes.c b/common/randbytes.c new file mode 100644 index 000000000000..fd38cdf7009f --- /dev/null +++ b/common/randbytes.c @@ -0,0 +1,64 @@ +#include "config.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static bool used = false; +static u64 dev_seed = 0; + +bool randbytes_overridden(void) +{ + return dev_seed != 0; +} + +void randbytes_(void *bytes, size_t num_bytes, u64 *offset) +{ + static u64 offset_init; + be64 pattern; + + used = true; + if (!randbytes_overridden()) { + randombytes_buf(bytes, num_bytes); /* discouraged: use randbytes() */ + return; + } + + /* First time, start callers at different offsets */ + if (*offset == 0) { + *offset = offset_init; + offset_init += 1000; + } + + /* Somewhat recognizable pattern */ + pattern = cpu_to_be64(dev_seed + (*offset)++); + for (size_t i = 0; i < num_bytes; i += sizeof(pattern)) { + size_t copy = num_bytes - i; + if (copy > sizeof(pattern)) + copy = sizeof(pattern); + + memcpy((u8 *)bytes + i, &pattern, copy); + } +} + +/* We want different seeds for each plugin (hence argv0), and for each + * lightmingd instance, (hence seed from environment) */ +void dev_override_randbytes(const char *argv0, long int seed) +{ + struct siphash_seed hashseed; + assert(!used); + + hashseed.u.u64[0] = seed; + hashseed.u.u64[1] = 0; + + dev_seed = siphash24(&hashseed, argv0, strlen(argv0)); + assert(randbytes_overridden()); +} diff --git a/common/randbytes.h b/common/randbytes.h new file mode 100644 index 000000000000..18aa485eecf3 --- /dev/null +++ b/common/randbytes.h @@ -0,0 +1,20 @@ +#ifndef LIGHTNING_COMMON_RANDBYTES_H +#define LIGHTNING_COMMON_RANDBYTES_H +#include "config.h" +#include +#include +#include + +/* Usually the libsodium routine randombytes_buf, but dev options can make this deterministic */ +#define randbytes(bytes, num_bytes) \ + do { \ + static u64 offset; \ + randbytes_((bytes), (num_bytes), &offset); \ + } while(0) + +void randbytes_(void *bytes, size_t num_bytes, u64 *offset); + +void dev_override_randbytes(const char *argv0, long int seed); + +bool randbytes_overridden(void); +#endif /* LIGHTNING_COMMON_RANDBYTES_H */ diff --git a/common/test/Makefile b/common/test/Makefile index db0fbcaab70e..d816146771f0 100644 --- a/common/test/Makefile +++ b/common/test/Makefile @@ -31,6 +31,7 @@ common/test/run-json: \ common/lease_rates.o \ common/node_id.o \ common/pseudorand.o \ + common/randbytes.o \ common/wireaddr.o \ wire/fromwire.o \ wire/onion_wiregen.o \ @@ -44,6 +45,7 @@ common/test/run-route common/test/run-route-specific common/test/run-route-inflo common/gossmap.o \ common/node_id.o \ common/pseudorand.o \ + common/randbytes.o \ common/route.o \ gossipd/gossip_store_wiregen.o \ wire/fromwire.o \ @@ -119,11 +121,13 @@ common/test/run-trace: \ common/amount.o \ common/memleak.o \ common/pseudorand.o \ + common/randbytes.o \ common/trace.o \ wire/fromwire.o \ wire/towire.o common/test/run-htable: \ + common/randbytes.o \ common/pseudorand.o common/test/run-shutdown_scriptpubkey: wire/towire.o wire/fromwire.o diff --git a/common/test/run-htable.c b/common/test/run-htable.c index 64ac0b568555..32a2631c37af 100644 --- a/common/test/run-htable.c +++ b/common/test/run-htable.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -80,6 +81,15 @@ u8 fromwire_u8(const u8 **cursor UNNEEDED, size_t *max UNNEEDED) /* Generated stub for fromwire_u8_array */ void fromwire_u8_array(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, u8 *arr UNNEEDED, size_t num UNNEEDED) { fprintf(stderr, "fromwire_u8_array called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for towire */ void towire(u8 **pptr UNNEEDED, const void *data UNNEEDED, size_t len UNNEEDED) { fprintf(stderr, "towire called!\n"); abort(); } diff --git a/common/test/run-json.c b/common/test/run-json.c index b5fdecdb3c64..6702d68e97d1 100644 --- a/common/test/run-json.c +++ b/common/test/run-json.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -35,6 +36,15 @@ bool json_filter_ok(const struct json_filter *filter UNNEEDED, const char *membe /* Generated stub for json_filter_up */ bool json_filter_up(struct json_filter **filter UNNEEDED) { fprintf(stderr, "json_filter_up called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for towire_sciddir_or_pubkey */ void towire_sciddir_or_pubkey(u8 **pptr UNNEEDED, const struct sciddir_or_pubkey *sciddpk UNNEEDED) diff --git a/common/test/run-param.c b/common/test/run-param.c index 3cb94bf854c7..325539693d64 100644 --- a/common/test/run-param.c +++ b/common/test/run-param.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -86,6 +87,15 @@ bool fromwire_tlv(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, void *record UNNEEDED, struct tlv_field **fields UNNEEDED, const u64 *extra_types UNNEEDED, size_t *err_off UNNEEDED, u64 *err_type UNNEEDED) { fprintf(stderr, "fromwire_tlv called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for to_canonical_invstr */ const char *to_canonical_invstr(const tal_t *ctx UNNEEDED, const char *invstring UNNEEDED) { fprintf(stderr, "to_canonical_invstr called!\n"); abort(); } diff --git a/common/test/run-route-infloop.c b/common/test/run-route-infloop.c index c2e532fe5191..4e4ee302ff4a 100644 --- a/common/test/run-route-infloop.c +++ b/common/test/run-route-infloop.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -31,6 +32,15 @@ bool fromwire_tlv(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, void *record UNNEEDED, struct tlv_field **fields UNNEEDED, const u64 *extra_types UNNEEDED, size_t *err_off UNNEEDED, u64 *err_type UNNEEDED) { fprintf(stderr, "fromwire_tlv called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for sciddir_or_pubkey_from_node_id */ bool sciddir_or_pubkey_from_node_id(struct sciddir_or_pubkey *sciddpk UNNEEDED, const struct node_id *node_id UNNEEDED) diff --git a/common/test/run-route-specific.c b/common/test/run-route-specific.c index 93f23de72c19..66537b696433 100644 --- a/common/test/run-route-specific.c +++ b/common/test/run-route-specific.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -36,6 +37,15 @@ bool fromwire_tlv(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, void *record UNNEEDED, struct tlv_field **fields UNNEEDED, const u64 *extra_types UNNEEDED, size_t *err_off UNNEEDED, u64 *err_type UNNEEDED) { fprintf(stderr, "fromwire_tlv called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for sciddir_or_pubkey_from_node_id */ bool sciddir_or_pubkey_from_node_id(struct sciddir_or_pubkey *sciddpk UNNEEDED, const struct node_id *node_id UNNEEDED) diff --git a/common/test/run-route.c b/common/test/run-route.c index 6b06dab66143..bd18f64b906c 100644 --- a/common/test/run-route.c +++ b/common/test/run-route.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -29,6 +30,15 @@ bool fromwire_tlv(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, void *record UNNEEDED, struct tlv_field **fields UNNEEDED, const u64 *extra_types UNNEEDED, size_t *err_off UNNEEDED, u64 *err_type UNNEEDED) { fprintf(stderr, "fromwire_tlv called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for sciddir_or_pubkey_from_node_id */ bool sciddir_or_pubkey_from_node_id(struct sciddir_or_pubkey *sciddpk UNNEEDED, const struct node_id *node_id UNNEEDED) diff --git a/connectd/Makefile b/connectd/Makefile index 781172e186de..78624204c417 100644 --- a/connectd/Makefile +++ b/connectd/Makefile @@ -72,6 +72,7 @@ CONNECTD_COMMON_OBJS := \ common/per_peer_state.o \ common/psbt_open.o \ common/pseudorand.o \ + common/randbytes.o \ common/sciddir_or_pubkey.o \ common/setup.o \ common/sphinx.o \ diff --git a/connectd/test/Makefile b/connectd/test/Makefile index c624f32190c2..2569e8c96c3a 100644 --- a/connectd/test/Makefile +++ b/connectd/test/Makefile @@ -8,6 +8,7 @@ CONNECTD_TEST_COMMON_OBJS := \ common/autodata.o \ common/features.o \ common/pseudorand.o \ + common/randbytes.o \ common/setup.o \ common/utils.o diff --git a/connectd/test/run-crc32_of_update.c b/connectd/test/run-crc32_of_update.c index efcaaf4792d7..838505fc0a84 100644 --- a/connectd/test/run-crc32_of_update.c +++ b/connectd/test/run-crc32_of_update.c @@ -7,6 +7,7 @@ int unused_main(int argc, char *argv[]); #include #include #include +#include #include #include #include @@ -166,9 +167,18 @@ void inject_peer_msg(struct peer *peer UNNEEDED, const u8 *msg TAKES UNNEEDED) /* Generated stub for master_badmsg */ void master_badmsg(u32 type_expected UNNEEDED, const u8 *msg) { fprintf(stderr, "master_badmsg called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } /* Generated stub for node_id_cmp */ int node_id_cmp(const struct node_id *a UNNEEDED, const struct node_id *b UNNEEDED) { fprintf(stderr, "node_id_cmp called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for status_fmt */ void status_fmt(enum log_level level UNNEEDED, const struct node_id *peer UNNEEDED, diff --git a/connectd/test/run-gossip_rcvd_filter.c b/connectd/test/run-gossip_rcvd_filter.c index ef20a1cd6839..fcaa06837f33 100644 --- a/connectd/test/run-gossip_rcvd_filter.c +++ b/connectd/test/run-gossip_rcvd_filter.c @@ -40,6 +40,12 @@ struct amount_asset amount_sat_to_asset(struct amount_sat *sat UNNEEDED, const u /* Generated stub for amount_tx_fee */ struct amount_sat amount_tx_fee(u32 fee_per_kw UNNEEDED, size_t weight UNNEEDED) { fprintf(stderr, "amount_tx_fee called!\n"); abort(); } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for towire */ void towire(u8 **pptr UNNEEDED, const void *data UNNEEDED, size_t len UNNEEDED) { fprintf(stderr, "towire called!\n"); abort(); } diff --git a/connectd/test/run-initiator-success.c b/connectd/test/run-initiator-success.c index 26aeb40cceff..e90ebb693500 100644 --- a/connectd/test/run-initiator-success.c +++ b/connectd/test/run-initiator-success.c @@ -83,6 +83,15 @@ u8 fromwire_u8(const u8 **cursor UNNEEDED, size_t *max UNNEEDED) /* Generated stub for fromwire_u8_array */ void fromwire_u8_array(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, u8 *arr UNNEEDED, size_t num UNNEEDED) { fprintf(stderr, "fromwire_u8_array called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for towire */ void towire(u8 **pptr UNNEEDED, const void *data UNNEEDED, size_t len UNNEEDED) { fprintf(stderr, "towire called!\n"); abort(); } diff --git a/connectd/test/run-netaddress.c b/connectd/test/run-netaddress.c index c69ed2510325..885e4d214d2a 100644 --- a/connectd/test/run-netaddress.c +++ b/connectd/test/run-netaddress.c @@ -1,6 +1,7 @@ #include "config.h" #include #include +#include #include #include #include @@ -100,6 +101,15 @@ void fromwire_u8_array(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, u8 *arr /* Generated stub for is_msg_for_gossipd */ bool is_msg_for_gossipd(const u8 *cursor UNNEEDED) { fprintf(stderr, "is_msg_for_gossipd called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for peer_wire_name */ const char *peer_wire_name(int e UNNEEDED) { fprintf(stderr, "peer_wire_name called!\n"); abort(); } diff --git a/connectd/test/run-responder-success.c b/connectd/test/run-responder-success.c index ed1dfb175e35..53c63970619d 100644 --- a/connectd/test/run-responder-success.c +++ b/connectd/test/run-responder-success.c @@ -83,6 +83,15 @@ u8 fromwire_u8(const u8 **cursor UNNEEDED, size_t *max UNNEEDED) /* Generated stub for fromwire_u8_array */ void fromwire_u8_array(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, u8 *arr UNNEEDED, size_t num UNNEEDED) { fprintf(stderr, "fromwire_u8_array called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for towire */ void towire(u8 **pptr UNNEEDED, const void *data UNNEEDED, size_t len UNNEEDED) { fprintf(stderr, "towire called!\n"); abort(); } diff --git a/connectd/test/run-websocket.c b/connectd/test/run-websocket.c index 25f126e927d2..69800798db09 100644 --- a/connectd/test/run-websocket.c +++ b/connectd/test/run-websocket.c @@ -1,6 +1,7 @@ #include "config.h" #include #include +#include #include #include #include @@ -118,6 +119,15 @@ u8 fromwire_u8(const u8 **cursor UNNEEDED, size_t *max UNNEEDED) /* Generated stub for fromwire_u8_array */ void fromwire_u8_array(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, u8 *arr UNNEEDED, size_t num UNNEEDED) { fprintf(stderr, "fromwire_u8_array called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for towire */ void towire(u8 **pptr UNNEEDED, const void *data UNNEEDED, size_t len UNNEEDED) { fprintf(stderr, "towire called!\n"); abort(); } diff --git a/devtools/Makefile b/devtools/Makefile index 606279146942..a04012e58445 100644 --- a/devtools/Makefile +++ b/devtools/Makefile @@ -42,6 +42,7 @@ DEVTOOLS_COMMON_OBJS := \ common/per_peer_state.o \ common/psbt_open.o \ common/pseudorand.o \ + common/randbytes.o \ common/sciddir_or_pubkey.o \ common/setup.o \ common/utils.o \ @@ -86,7 +87,7 @@ devtools/gossipwith: $(DEVTOOLS_COMMON_OBJS) $(JSMN_OBJS) $(BITCOIN_OBJS) wire/f $(DEVTOOLS_OBJS) $(DEVTOOLS_TOOL_OBJS): wire/wire.h -devtools/mkcommit: $(DEVTOOLS_COMMON_OBJS) $(BITCOIN_OBJS) common/derive_basepoints.o common/channel_type.o common/keyset.o common/key_derive.o common/initial_commit_tx.o common/permute_tx.o wire/fromwire.o wire/towire.o devtools/mkcommit.o channeld/full_channel.o common/initial_channel.o common/htlc_state.o common/pseudorand.o common/htlc_tx.o channeld/commit_tx.o common/htlc_trim.o +devtools/mkcommit: $(DEVTOOLS_COMMON_OBJS) $(BITCOIN_OBJS) common/derive_basepoints.o common/channel_type.o common/keyset.o common/key_derive.o common/initial_commit_tx.o common/permute_tx.o wire/fromwire.o wire/towire.o devtools/mkcommit.o channeld/full_channel.o common/initial_channel.o common/htlc_state.o common/pseudorand.o common/randbytes.o common/htlc_tx.o channeld/commit_tx.o common/htlc_trim.o devtools/mkfunding: $(DEVTOOLS_COMMON_OBJS) $(BITCOIN_OBJS) wire/fromwire.o wire/towire.o common/key_derive.o devtools/mkfunding.o diff --git a/gossipd/Makefile b/gossipd/Makefile index c0732482d75f..a33a2c256553 100644 --- a/gossipd/Makefile +++ b/gossipd/Makefile @@ -56,6 +56,7 @@ GOSSIPD_COMMON_OBJS := \ common/ping.o \ common/psbt_open.o \ common/pseudorand.o \ + common/randbytes.o \ common/random_select.o \ common/setup.o \ common/status.o \ diff --git a/gossipd/test/Makefile b/gossipd/test/Makefile index 99cb7faafd3f..d87aa8a9a998 100644 --- a/gossipd/test/Makefile +++ b/gossipd/test/Makefile @@ -19,6 +19,7 @@ GOSSIPD_TEST_COMMON_OBJS := \ common/node_id.o \ common/lease_rates.o \ common/pseudorand.o \ + common/randbytes.o \ common/setup.o \ common/utils.o \ common/wireaddr.o \ diff --git a/gossipd/test/run-check_channel_announcement.c b/gossipd/test/run-check_channel_announcement.c index 6c743d4d9871..b914bddda0a8 100644 --- a/gossipd/test/run-check_channel_announcement.c +++ b/gossipd/test/run-check_channel_announcement.c @@ -35,6 +35,7 @@ In particular, we set feature bit 19. The spec says we should set feature bit 1 #include #include #include +#include #include #include #include @@ -60,6 +61,15 @@ bool blinding_next_path_privkey(const struct privkey *e UNNEEDED, void fromwire_sciddir_or_pubkey(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, struct sciddir_or_pubkey *sciddpk UNNEEDED) { fprintf(stderr, "fromwire_sciddir_or_pubkey called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for towire_sciddir_or_pubkey */ void towire_sciddir_or_pubkey(u8 **pptr UNNEEDED, const struct sciddir_or_pubkey *sciddpk UNNEEDED) diff --git a/gossipd/test/run-extended-info.c b/gossipd/test/run-extended-info.c index 45e19884d049..55715a49ea20 100644 --- a/gossipd/test/run-extended-info.c +++ b/gossipd/test/run-extended-info.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -42,6 +43,15 @@ struct short_channel_id *decode_short_ids(const tal_t *ctx UNNEEDED, const u8 *e void fromwire_sciddir_or_pubkey(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, struct sciddir_or_pubkey *sciddpk UNNEEDED) { fprintf(stderr, "fromwire_sciddir_or_pubkey called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for peer_supplied_query_response */ void peer_supplied_query_response(struct daemon *daemon UNNEEDED, const struct node_id *source_peer UNNEEDED, diff --git a/gossipd/test/run-next_block_range.c b/gossipd/test/run-next_block_range.c index 49bd20f9eea7..9e75b502bae1 100644 --- a/gossipd/test/run-next_block_range.c +++ b/gossipd/test/run-next_block_range.c @@ -105,6 +105,12 @@ struct gossmap_node *gossmap_nth_node(const struct gossmap *map UNNEEDED, /* Generated stub for gossmap_random_node */ struct gossmap_node *gossmap_random_node(const struct gossmap *map UNNEEDED) { fprintf(stderr, "gossmap_random_node called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } /* Generated stub for memleak_scan_intmap_ */ void memleak_scan_intmap_(struct htable *memtable UNNEEDED, const struct intmap *m UNNEEDED) { fprintf(stderr, "memleak_scan_intmap_ called!\n"); abort(); } @@ -119,6 +125,9 @@ struct peer *next_random_peer(struct daemon *daemon UNNEEDED, const struct peer *first UNNEEDED, struct peer_node_id_map_iter *it UNNEEDED) { fprintf(stderr, "next_random_peer called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for query_channel_range */ bool query_channel_range(struct daemon *daemon UNNEEDED, struct peer *peer UNNEEDED, diff --git a/gossipd/test/run-txout_failure.c b/gossipd/test/run-txout_failure.c index ebb740ea77f4..919052b1b1bd 100644 --- a/gossipd/test/run-txout_failure.c +++ b/gossipd/test/run-txout_failure.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -33,6 +34,15 @@ bool blinding_next_path_privkey(const struct privkey *e UNNEEDED, void fromwire_sciddir_or_pubkey(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, struct sciddir_or_pubkey *sciddpk UNNEEDED) { fprintf(stderr, "fromwire_sciddir_or_pubkey called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for towire_sciddir_or_pubkey */ void towire_sciddir_or_pubkey(u8 **pptr UNNEEDED, const struct sciddir_or_pubkey *sciddpk UNNEEDED) diff --git a/hsmd/Makefile b/hsmd/Makefile index b4f51bef2ffd..bed5724ef194 100644 --- a/hsmd/Makefile +++ b/hsmd/Makefile @@ -46,6 +46,7 @@ HSMD_COMMON_OBJS := \ common/permute_tx.o \ common/psbt_open.o \ common/pseudorand.o \ + common/randbytes.o \ common/setup.o \ common/status.o \ common/status_wire.o \ diff --git a/lightningd/Makefile b/lightningd/Makefile index fbf1d10f47a1..e5bd4e820638 100644 --- a/lightningd/Makefile +++ b/lightningd/Makefile @@ -139,6 +139,7 @@ LIGHTNINGD_COMMON_OBJS := \ common/psbt_open.o \ common/pseudorand.o \ common/plugin.o \ + common/randbytes.o \ common/random_select.o \ common/setup.o \ common/shutdown_scriptpubkey.o \ diff --git a/lightningd/lightningd.c b/lightningd/lightningd.c index 7a529b489e13..4c38bf525fbd 100644 --- a/lightningd/lightningd.c +++ b/lightningd/lightningd.c @@ -1182,8 +1182,6 @@ int main(int argc, char *argv[]) bool try_reexec; size_t num_channels; - trace_span_start("lightningd/startup", argv); - /*~ What happens in strange locales should stay there. */ setup_locale(); @@ -1207,6 +1205,10 @@ int main(int argc, char *argv[]) * backtraces when we crash (if supported on this platform). */ daemon_setup(argv[0], log_backtrace_print, log_backtrace_exit); + /*~ We enable trace as early as possible, but it uses support functions + * (particularly if we're avoid entropy) so do it after daemon_setup. */ + trace_span_start("lightningd/startup", argv); + /*~ There's always a battle between what a constructor like this * should do, and what should be added later by the caller. In * general, because we use valgrind heavily for testing, we prefer not diff --git a/lightningd/test/Makefile b/lightningd/test/Makefile index a9aa3c12852b..776f963f69bd 100644 --- a/lightningd/test/Makefile +++ b/lightningd/test/Makefile @@ -21,6 +21,7 @@ LIGHTNINGD_TEST_COMMON_OBJS := \ common/json_parse_simple.o \ common/key_derive.o \ common/pseudorand.o \ + common/randbytes.o \ common/random_select.o \ common/memleak.o \ common/msg_queue.o \ diff --git a/onchaind/Makefile b/onchaind/Makefile index 8ef57d9ba6cd..32af13fa3b39 100644 --- a/onchaind/Makefile +++ b/onchaind/Makefile @@ -56,6 +56,7 @@ ONCHAIND_COMMON_OBJS := \ common/psbt_keypath.o \ common/psbt_open.o \ common/pseudorand.o \ + common/randbytes.o \ common/setup.o \ common/status.o \ common/status_wire.o \ diff --git a/onchaind/test/Makefile b/onchaind/test/Makefile index 6777cb13905d..307a67e117ba 100644 --- a/onchaind/test/Makefile +++ b/onchaind/test/Makefile @@ -15,6 +15,7 @@ ONCHAIND_TEST_COMMON_OBJS := \ common/features.o \ common/psbt_keypath.o \ common/pseudorand.o \ + common/randbytes.o \ common/setup.o \ common/utils.o diff --git a/onchaind/test/run-grind_feerate-bug.c b/onchaind/test/run-grind_feerate-bug.c index ff5ab45ef02a..cbc87029b013 100644 --- a/onchaind/test/run-grind_feerate-bug.c +++ b/onchaind/test/run-grind_feerate-bug.c @@ -89,9 +89,15 @@ struct bitcoin_tx *htlc_success_tx(const tal_t *ctx UNNEEDED, /* Generated stub for master_badmsg */ void master_badmsg(u32 type_expected UNNEEDED, const u8 *msg) { fprintf(stderr, "master_badmsg called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } /* Generated stub for memleak_ptr */ bool memleak_ptr(struct htable *memtable UNNEEDED, const void *p UNNEEDED) { fprintf(stderr, "memleak_ptr called!\n"); abort(); } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } /* Generated stub for memleak_scan_obj */ void memleak_scan_obj(struct htable *memtable UNNEEDED, const void *obj UNNEEDED) { fprintf(stderr, "memleak_scan_obj called!\n"); abort(); } diff --git a/onchaind/test/run-grind_feerate.c b/onchaind/test/run-grind_feerate.c index c9b1d4dd5368..453ea3e0e5f8 100644 --- a/onchaind/test/run-grind_feerate.c +++ b/onchaind/test/run-grind_feerate.c @@ -139,9 +139,15 @@ struct bitcoin_tx *htlc_timeout_tx(const tal_t *ctx UNNEEDED, /* Generated stub for master_badmsg */ void master_badmsg(u32 type_expected UNNEEDED, const u8 *msg) { fprintf(stderr, "master_badmsg called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } /* Generated stub for memleak_ptr */ bool memleak_ptr(struct htable *memtable UNNEEDED, const void *p UNNEEDED) { fprintf(stderr, "memleak_ptr called!\n"); abort(); } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } /* Generated stub for memleak_scan_obj */ void memleak_scan_obj(struct htable *memtable UNNEEDED, const void *obj UNNEEDED) { fprintf(stderr, "memleak_scan_obj called!\n"); abort(); } diff --git a/openingd/Makefile b/openingd/Makefile index 57dc84ee4177..29f4a4eba04c 100644 --- a/openingd/Makefile +++ b/openingd/Makefile @@ -70,6 +70,7 @@ OPENINGD_COMMON_OBJS := \ common/psbt_internal.o \ common/psbt_open.o \ common/pseudorand.o \ + common/randbytes.o \ common/read_peer_msg.o \ common/setup.o \ common/shutdown_scriptpubkey.o \ diff --git a/plugins/Makefile b/plugins/Makefile index b1d5120b6f5c..8329cea4cd19 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -197,6 +197,7 @@ PLUGIN_COMMON_OBJS := \ common/plugin.o \ common/psbt_open.o \ common/pseudorand.o \ + common/randbytes.o \ common/random_select.o \ common/splice_script.o \ common/setup.o \ diff --git a/plugins/bkpr/test/Makefile b/plugins/bkpr/test/Makefile index 80fed1875c0a..716190cae908 100644 --- a/plugins/bkpr/test/Makefile +++ b/plugins/bkpr/test/Makefile @@ -20,6 +20,7 @@ BOOKKEEPER_TEST_COMMON_OBJS := \ common/memleak.o \ common/node_id.o \ common/pseudorand.o \ + common/randbytes.o \ common/setup.o \ common/trace.o \ common/timeout.o \ diff --git a/plugins/test/Makefile b/plugins/test/Makefile index 3b5712d5ac09..341616a0915a 100644 --- a/plugins/test/Makefile +++ b/plugins/test/Makefile @@ -11,6 +11,7 @@ PLUGIN_TEST_COMMON_OBJS := \ common/amount.o \ common/autodata.o \ common/pseudorand.o \ + common/randbytes.o \ common/setup.o \ common/utils.o diff --git a/plugins/test/run-funder_policy.c b/plugins/test/run-funder_policy.c index 8880b905999a..5c9ec4931026 100644 --- a/plugins/test/run-funder_policy.c +++ b/plugins/test/run-funder_policy.c @@ -1,6 +1,7 @@ #include "config.h" #include "../funder_policy.c" #include +#include #include #include @@ -20,6 +21,15 @@ void json_add_string(struct json_stream *js UNNEEDED, const char *fieldname UNNEEDED, const char *str TAKES UNNEEDED) { fprintf(stderr, "json_add_string called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for pubkey_from_node_id */ bool pubkey_from_node_id(struct pubkey *key UNNEEDED, const struct node_id *id UNNEEDED) { fprintf(stderr, "pubkey_from_node_id called!\n"); abort(); } diff --git a/tests/plugins/Makefile b/tests/plugins/Makefile index 826857db18a1..11d1d494132e 100644 --- a/tests/plugins/Makefile +++ b/tests/plugins/Makefile @@ -74,6 +74,7 @@ tests/plugins/channeld_fakenet: \ common/per_peer_state.o \ common/permute_tx.o \ common/pseudorand.o \ + common/randbytes.o \ common/setup.o \ common/sphinx.o \ common/status.o \ diff --git a/tools/hsmtool.c b/tools/hsmtool.c index 7f2d30fb9d59..a6ba5435fcee 100644 --- a/tools/hsmtool.c +++ b/tools/hsmtool.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -35,6 +36,11 @@ #define ERROR_LANG_NOT_SUPPORTED 6 #define ERROR_TERM 7 +void randbytes_(void *bytes, size_t num_bytes, u64 *offset) +{ + abort(); +} + static void show_usage(const char *progname) { printf("%s [arguments]\n", progname); diff --git a/wallet/test/Makefile b/wallet/test/Makefile index c986342dfbcf..9db6bcca3b33 100644 --- a/wallet/test/Makefile +++ b/wallet/test/Makefile @@ -24,6 +24,7 @@ WALLET_TEST_COMMON_OBJS := \ common/key_derive.o \ common/psbt_keypath.o \ common/pseudorand.o \ + common/randbytes.o \ common/setup.o \ common/timeout.o \ common/trace.o \ diff --git a/wire/test/Makefile b/wire/test/Makefile index 997a72dae737..785fa5054293 100644 --- a/wire/test/Makefile +++ b/wire/test/Makefile @@ -13,6 +13,7 @@ WIRE_TEST_COMMON_OBJS := \ common/autodata.o \ common/base32.o \ common/pseudorand.o \ + common/randbytes.o \ common/setup.o \ common/utils.o \ common/wireaddr.o diff --git a/wire/test/run-peer-wire.c b/wire/test/run-peer-wire.c index 894920440a88..f9f5ab5c4d35 100644 --- a/wire/test/run-peer-wire.c +++ b/wire/test/run-peer-wire.c @@ -12,6 +12,7 @@ #include #include +#include #include #include #include @@ -20,6 +21,15 @@ extern secp256k1_context *secp256k1_ctx; /* AUTOGENERATED MOCKS START */ +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* AUTOGENERATED MOCKS END */ /* memsetting pubkeys doesn't work */ diff --git a/wire/test/run-tlvstream.c b/wire/test/run-tlvstream.c index 68420fb900ed..b4f704fad17b 100644 --- a/wire/test/run-tlvstream.c +++ b/wire/test/run-tlvstream.c @@ -9,6 +9,7 @@ static const char *reason; #include #include #include +#include #include #include @@ -28,6 +29,15 @@ int chainparams_get_ln_port(const struct chainparams *params UNNEEDED) bool fromwire_channel_id(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, struct channel_id *channel_id UNNEEDED) { fprintf(stderr, "fromwire_channel_id called!\n"); abort(); } +/* Generated stub for memleak_add_helper_ */ +void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, + const tal_t *)){ } +/* Generated stub for memleak_scan_htable */ +void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) +{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } +/* Generated stub for notleak_ */ +void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) +{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for towire_channel_id */ void towire_channel_id(u8 **pptr UNNEEDED, const struct channel_id *channel_id UNNEEDED) { fprintf(stderr, "towire_channel_id called!\n"); abort(); } From da31fb4e191acd86d91e768a9cfca774e068de43 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:42:18 +0930 Subject: [PATCH 15/37] global: replace randombytes_buf() with randbytes() wrapper. This allows us to override it for deterministic results. Signed-off-by: Rusty Russell --- Makefile | 2 +- bitcoin/short_channel_id.c | 4 ++-- channeld/test/run-commit_tx.c | 9 --------- channeld/test/run-full_channel.c | 3 --- common/blindedpath.h | 2 +- common/onion_message.c | 3 ++- common/pseudorand.c | 4 ++-- common/sphinx.c | 4 ++-- common/test/Makefile | 5 +++-- common/test/run-amount.c | 1 + common/test/run-base64.c | 1 + common/test/run-bigsize.c | 1 + common/test/run-blindedpath_enctlv.c | 1 + common/test/run-bolt11.c | 2 +- common/test/run-bolt12-encode-test.c | 1 + common/test/run-bolt12-format-string-test.c | 1 + common/test/run-bolt12-offer-decode.c | 1 + common/test/run-bolt12_decode.c | 1 + common/test/run-bolt12_merkle-json.c | 1 + common/test/run-bolt12_merkle.c | 1 + common/test/run-bolt12_period.c | 1 + common/test/run-channel_type.c | 1 + common/test/run-codex32.c | 1 + common/test/run-coin_mvt.c | 1 + common/test/run-cryptomsg.c | 1 + common/test/run-deprecation.c | 1 + common/test/run-derive_basepoints.c | 1 + common/test/run-features.c | 3 ++- common/test/run-gossmap-fp16.c | 1 + common/test/run-htable.c | 9 --------- common/test/run-ip_port_parsing.c | 1 + common/test/run-json.c | 9 --------- common/test/run-json_filter.c | 1 + common/test/run-json_remove.c | 1 + common/test/run-json_scan.c | 1 + common/test/run-json_stream-filter.c | 1 + common/test/run-key_derive.c | 1 + common/test/run-lease_rates.c | 1 + common/test/run-marginal_feerate.c | 1 + common/test/run-param.c | 9 --------- common/test/run-psbt_diff.c | 1 + common/test/run-route-infloop.c | 9 --------- common/test/run-route-specific.c | 9 --------- common/test/run-route.c | 9 --------- common/test/run-route_blinding_test.c | 1 + common/test/run-shutdown_scriptpubkey.c | 1 + common/test/run-splice_script.c | 1 + common/test/run-tlv_span.c | 1 + common/test/run-tlv_unknown.c | 1 + common/test/run-version.c | 4 ++++ common/test/run-wireaddr.c | 1 + connectd/connectd.c | 5 +++-- connectd/handshake.c | 4 ++-- connectd/test/run-crc32_of_update.c | 9 --------- connectd/test/run-gossip_rcvd_filter.c | 6 ------ connectd/test/run-initiator-success.c | 8 ++++---- connectd/test/run-netaddress.c | 9 --------- connectd/test/run-responder-success.c | 8 ++++---- connectd/test/run-websocket.c | 9 --------- gossipd/test/run-check_channel_announcement.c | 9 --------- gossipd/test/run-extended-info.c | 9 --------- gossipd/test/run-next_block_range.c | 9 --------- gossipd/test/run-txout_failure.c | 9 --------- hsmd/hsmd.c | 3 ++- lightningd/channel.c | 1 + lightningd/invoice.c | 8 ++++---- onchaind/test/run-grind_feerate-bug.c | 6 ------ onchaind/test/run-grind_feerate.c | 6 ------ plugins/fetchinvoice.c | 10 +++++----- plugins/keysend.c | 4 ++-- plugins/offers_invreq_hook.c | 3 ++- plugins/offers_offer.c | 6 +++--- plugins/renepay/test/run-bottleneck.c | 4 ++-- plugins/test/run-funder_policy.c | 9 --------- tests/fuzz/connectd_handshake.h | 4 ++-- wallet/db.c | 2 +- wire/test/run-peer-wire.c | 9 --------- wire/test/run-tlvstream.c | 9 --------- 78 files changed, 90 insertions(+), 220 deletions(-) diff --git a/Makefile b/Makefile index 04f2f3a262e2..26c0277761e0 100644 --- a/Makefile +++ b/Makefile @@ -577,7 +577,7 @@ check-tmpctx: @if git grep -n 'tal_free[(]tmpctx)' | grep -Ev '^ccan/|/test/|^common/setup.c:|^common/utils.c:'; then echo "Don't free tmpctx!">&2; exit 1; fi check-discouraged-functions: - @if git grep -E "[^a-z_/](fgets|fputs|gets|scanf|sprintf)\(" -- "*.c" "*.h" ":(exclude)ccan/" ":(exclude)contrib/"; then exit 1; fi + @if git grep -nE "[^a-z_/](fgets|fputs|gets|scanf|sprintf|randombytes_buf)\(" -- "*.c" "*.h" ":(exclude)ccan/" ":(exclude)contrib/" | grep -Fv '/* discouraged:'; then exit 1; fi # Don't access amount_msat and amount_sat members directly without a good reason # since it risks overflow. diff --git a/bitcoin/short_channel_id.c b/bitcoin/short_channel_id.c index cc1de68c4377..98fe4748b714 100644 --- a/bitcoin/short_channel_id.c +++ b/bitcoin/short_channel_id.c @@ -1,7 +1,7 @@ #include "config.h" #include #include -#include +#include #include #include @@ -104,6 +104,6 @@ struct short_channel_id fromwire_short_channel_id(const u8 **cursor, size_t *max struct short_channel_id random_scid(void) { struct short_channel_id scid; - randombytes_buf(&scid, sizeof(scid)); + randbytes(&scid, sizeof(scid)); return scid; } diff --git a/channeld/test/run-commit_tx.c b/channeld/test/run-commit_tx.c index 89f2039eade9..4df740c41ec4 100644 --- a/channeld/test/run-commit_tx.c +++ b/channeld/test/run-commit_tx.c @@ -33,15 +33,6 @@ bool fromwire_channel_id(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, /* Generated stub for fromwire_node_id */ void fromwire_node_id(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, struct node_id *id UNNEEDED) { fprintf(stderr, "fromwire_node_id called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for pubkey_from_node_id */ bool pubkey_from_node_id(struct pubkey *key UNNEEDED, const struct node_id *id UNNEEDED) { fprintf(stderr, "pubkey_from_node_id called!\n"); abort(); } diff --git a/channeld/test/run-full_channel.c b/channeld/test/run-full_channel.c index 95394b3a435a..69128019418e 100644 --- a/channeld/test/run-full_channel.c +++ b/channeld/test/run-full_channel.c @@ -25,9 +25,6 @@ void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memt /* Generated stub for memleak_scan_htable */ void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) { fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for pubkey_from_node_id */ bool pubkey_from_node_id(struct pubkey *key UNNEEDED, const struct node_id *id UNNEEDED) { fprintf(stderr, "pubkey_from_node_id called!\n"); abort(); } diff --git a/common/blindedpath.h b/common/blindedpath.h index b84869351070..b0c96e0dd2cb 100644 --- a/common/blindedpath.h +++ b/common/blindedpath.h @@ -23,7 +23,7 @@ struct tlv_encrypted_data_tlv_payment_relay; * @next_path_privkey: (out) e(i+1), the next blinding secret (optional) * @node_alias: (out) the blinded pubkey of the node to tell the recipient. * - * You create a blinding secret using randombytes_buf(), then call this + * You create a blinding secret using randbytes(), then call this * iteratively for each node in the path. */ u8 *encrypt_tlv_encrypted_data(const tal_t *ctx, diff --git a/common/onion_message.c b/common/onion_message.c index c781866ee78c..e673538f5af6 100644 --- a/common/onion_message.c +++ b/common/onion_message.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -68,7 +69,7 @@ struct blinded_path *blinded_path_from_encdata_tlvs(const tal_t *ctx, assert(nhops > 0); assert(tal_count(ids) > 0); - randombytes_buf(&first_blinding, sizeof(first_blinding)); + randbytes(&first_blinding, sizeof(first_blinding)); if (!pubkey_from_privkey(&first_blinding, &path->first_path_key)) abort(); sciddir_or_pubkey_from_pubkey(&path->first_node_id, &ids[0]); diff --git a/common/pseudorand.c b/common/pseudorand.c index 831be2bb584b..4a6694fd645d 100644 --- a/common/pseudorand.c +++ b/common/pseudorand.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include static struct isaac64_ctx isaac64; @@ -19,7 +19,7 @@ static void init_if_needed(void) unsigned char seedbuf[16]; struct sha256 sha; - randombytes_buf(seedbuf, sizeof(seedbuf)); + randbytes(seedbuf, sizeof(seedbuf)); memcpy(&siphashseed, seedbuf, sizeof(siphashseed)); /* In case isaac is reversible, don't leak seed. */ diff --git a/common/sphinx.c b/common/sphinx.c index c254e63170bc..39a2c47bc598 100644 --- a/common/sphinx.c +++ b/common/sphinx.c @@ -6,13 +6,13 @@ #include #include #include +#include #include #include #include -#include #define BLINDING_FACTOR_SIZE 32 @@ -567,7 +567,7 @@ struct onionpacket *create_onionpacket( if (sp->session_key == NULL) { sp->session_key = tal(sp, struct secret); - randombytes_buf(sp->session_key, sizeof(struct secret)); + randbytes(sp->session_key, sizeof(struct secret)); } params = generate_hop_params(ctx, sp->session_key->data, sp); diff --git a/common/test/Makefile b/common/test/Makefile index d816146771f0..7356b5570d9a 100644 --- a/common/test/Makefile +++ b/common/test/Makefile @@ -5,11 +5,13 @@ COMMON_TEST_PROGRAMS := $(COMMON_TEST_OBJS:.o=) COMMON_TEST_COMMON_OBJS := \ common/autodata.o \ + common/memleak.o \ + common/randbytes.o \ common/setup.o \ common/utils.o $(COMMON_TEST_PROGRAMS): $(COMMON_TEST_COMMON_OBJS) $(BITCOIN_OBJS) -$(COMMON_TEST_OBJS): $(COMMON_HEADERS) $(WIRE_HEADERS) $(COMMON_SRC) +$(COMMON_TEST_OBJS): $(COMMON_HEADERS) $(WIRE_HEADERS) $(COMMON_SRC) common/test/Makefile ALL_C_SOURCES += $(COMMON_TEST_SRC) ALL_TEST_PROGRAMS += $(COMMON_TEST_PROGRAMS) @@ -119,7 +121,6 @@ common/test/run-splice_script: \ common/test/run-trace: \ common/amount.o \ - common/memleak.o \ common/pseudorand.o \ common/randbytes.o \ common/trace.o \ diff --git a/common/test/run-amount.c b/common/test/run-amount.c index 0e9f295dc0c2..f76484ef3436 100644 --- a/common/test/run-amount.c +++ b/common/test/run-amount.c @@ -1,5 +1,6 @@ #include "config.h" #include "../amount.c" +#include #include #include diff --git a/common/test/run-base64.c b/common/test/run-base64.c index c36c08bb3fc3..e71371c9873b 100644 --- a/common/test/run-base64.c +++ b/common/test/run-base64.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include diff --git a/common/test/run-bigsize.c b/common/test/run-bigsize.c index 9b181261e6c6..d11ad50ab0c5 100644 --- a/common/test/run-bigsize.c +++ b/common/test/run-bigsize.c @@ -4,6 +4,7 @@ #include #include #include +#include #include static const char *reason; diff --git a/common/test/run-blindedpath_enctlv.c b/common/test/run-blindedpath_enctlv.c index c9408cba2dd5..d2552ad4e727 100644 --- a/common/test/run-blindedpath_enctlv.c +++ b/common/test/run-blindedpath_enctlv.c @@ -3,6 +3,7 @@ #include "../blinding.c" #include "../hmac.c" #include +#include #include #include diff --git a/common/test/run-bolt11.c b/common/test/run-bolt11.c index e4fbbd797cbd..3cc516a35a6a 100644 --- a/common/test/run-bolt11.c +++ b/common/test/run-bolt11.c @@ -6,10 +6,10 @@ #include "../features.c" #include "../node_id.c" #include "../hash_u5.c" -#include "../memleak.c" #include "../wire/fromwire.c" #include "../wire/towire.c" #include +#include #include /* AUTOGENERATED MOCKS START */ diff --git a/common/test/run-bolt12-encode-test.c b/common/test/run-bolt12-encode-test.c index e7de25fdd381..5ca641f93012 100644 --- a/common/test/run-bolt12-encode-test.c +++ b/common/test/run-bolt12-encode-test.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include diff --git a/common/test/run-bolt12-format-string-test.c b/common/test/run-bolt12-format-string-test.c index dc8384750a09..d38bd6ed6210 100644 --- a/common/test/run-bolt12-format-string-test.c +++ b/common/test/run-bolt12-format-string-test.c @@ -8,6 +8,7 @@ #include #include #include +#include #include /* AUTOGENERATED MOCKS START */ diff --git a/common/test/run-bolt12-offer-decode.c b/common/test/run-bolt12-offer-decode.c index 5296e8fd6c22..d15f24338ab5 100644 --- a/common/test/run-bolt12-offer-decode.c +++ b/common/test/run-bolt12-offer-decode.c @@ -14,6 +14,7 @@ #include #include #include +#include #include /* AUTOGENERATED MOCKS START */ diff --git a/common/test/run-bolt12_decode.c b/common/test/run-bolt12_decode.c index 4702d23f251c..ce80438f2c0a 100644 --- a/common/test/run-bolt12_decode.c +++ b/common/test/run-bolt12_decode.c @@ -7,6 +7,7 @@ #include #include #include +#include #include /* AUTOGENERATED MOCKS START */ diff --git a/common/test/run-bolt12_merkle-json.c b/common/test/run-bolt12_merkle-json.c index 4c0910d3f57f..1cd8e8bcdf93 100644 --- a/common/test/run-bolt12_merkle-json.c +++ b/common/test/run-bolt12_merkle-json.c @@ -11,6 +11,7 @@ #include #include #include +#include #include /* AUTOGENERATED MOCKS START */ diff --git a/common/test/run-bolt12_merkle.c b/common/test/run-bolt12_merkle.c index 43265ef4d74f..4d2f0bc6d639 100644 --- a/common/test/run-bolt12_merkle.c +++ b/common/test/run-bolt12_merkle.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include diff --git a/common/test/run-bolt12_period.c b/common/test/run-bolt12_period.c index 514e47fe734f..1fad5d142007 100644 --- a/common/test/run-bolt12_period.c +++ b/common/test/run-bolt12_period.c @@ -5,6 +5,7 @@ #include #include #include +#include #include /* AUTOGENERATED MOCKS START */ diff --git a/common/test/run-channel_type.c b/common/test/run-channel_type.c index 46edef12b3ee..2cac84ac8f41 100644 --- a/common/test/run-channel_type.c +++ b/common/test/run-channel_type.c @@ -2,6 +2,7 @@ #include "../channel_type.c" #include "../features.c" #include +#include #include #include #include diff --git a/common/test/run-codex32.c b/common/test/run-codex32.c index 2aed32315799..24929672c643 100644 --- a/common/test/run-codex32.c +++ b/common/test/run-codex32.c @@ -8,6 +8,7 @@ #include #include #include +#include #include /* AUTOGENERATED MOCKS START */ diff --git a/common/test/run-coin_mvt.c b/common/test/run-coin_mvt.c index e7512c089b55..99651ccbb54e 100644 --- a/common/test/run-coin_mvt.c +++ b/common/test/run-coin_mvt.c @@ -1,6 +1,7 @@ #include "config.h" #include "../coin_mvt.c" #include +#include #include #include diff --git a/common/test/run-cryptomsg.c b/common/test/run-cryptomsg.c index 42fa16e89c1b..e3218eb0b863 100644 --- a/common/test/run-cryptomsg.c +++ b/common/test/run-cryptomsg.c @@ -1,5 +1,6 @@ #include "config.h" #include +#include #include #include #include diff --git a/common/test/run-deprecation.c b/common/test/run-deprecation.c index fe1a4cd0579c..fa1378c8648b 100644 --- a/common/test/run-deprecation.c +++ b/common/test/run-deprecation.c @@ -6,6 +6,7 @@ static const char *test_next_version; #include "../deprecation.c" #include +#include #include #include #include diff --git a/common/test/run-derive_basepoints.c b/common/test/run-derive_basepoints.c index 861a65d63531..cb896ad7795a 100644 --- a/common/test/run-derive_basepoints.c +++ b/common/test/run-derive_basepoints.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include diff --git a/common/test/run-features.c b/common/test/run-features.c index e6936d5a8be8..ef38a0cfc353 100644 --- a/common/test/run-features.c +++ b/common/test/run-features.c @@ -1,8 +1,9 @@ #include "config.h" #include "../features.c" -#include "../memleak.c" #include +#include #include +#include /* AUTOGENERATED MOCKS START */ /* Generated stub for amount_asset_is_main */ diff --git a/common/test/run-gossmap-fp16.c b/common/test/run-gossmap-fp16.c index 274eccf3a3fd..539b129b5293 100644 --- a/common/test/run-gossmap-fp16.c +++ b/common/test/run-gossmap-fp16.c @@ -1,5 +1,6 @@ #include "config.h" #include "../fp16.c" +#include #include #include #include diff --git a/common/test/run-htable.c b/common/test/run-htable.c index 32a2631c37af..267ad8c03f10 100644 --- a/common/test/run-htable.c +++ b/common/test/run-htable.c @@ -81,15 +81,6 @@ u8 fromwire_u8(const u8 **cursor UNNEEDED, size_t *max UNNEEDED) /* Generated stub for fromwire_u8_array */ void fromwire_u8_array(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, u8 *arr UNNEEDED, size_t num UNNEEDED) { fprintf(stderr, "fromwire_u8_array called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for towire */ void towire(u8 **pptr UNNEEDED, const void *data UNNEEDED, size_t len UNNEEDED) { fprintf(stderr, "towire called!\n"); abort(); } diff --git a/common/test/run-ip_port_parsing.c b/common/test/run-ip_port_parsing.c index 026a06f8f5d4..c7c5ba226530 100644 --- a/common/test/run-ip_port_parsing.c +++ b/common/test/run-ip_port_parsing.c @@ -4,6 +4,7 @@ #include #include +#include #include /* AUTOGENERATED MOCKS START */ diff --git a/common/test/run-json.c b/common/test/run-json.c index 6702d68e97d1..cbb3b42af1ce 100644 --- a/common/test/run-json.c +++ b/common/test/run-json.c @@ -36,15 +36,6 @@ bool json_filter_ok(const struct json_filter *filter UNNEEDED, const char *membe /* Generated stub for json_filter_up */ bool json_filter_up(struct json_filter **filter UNNEEDED) { fprintf(stderr, "json_filter_up called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for towire_sciddir_or_pubkey */ void towire_sciddir_or_pubkey(u8 **pptr UNNEEDED, const struct sciddir_or_pubkey *sciddpk UNNEEDED) diff --git a/common/test/run-json_filter.c b/common/test/run-json_filter.c index 54138cbe6999..d682b82130b3 100644 --- a/common/test/run-json_filter.c +++ b/common/test/run-json_filter.c @@ -6,6 +6,7 @@ #include "../json_stream.c" #include #include +#include #include #include diff --git a/common/test/run-json_remove.c b/common/test/run-json_remove.c index f1c16a28cbe4..8a15653ebfae 100644 --- a/common/test/run-json_remove.c +++ b/common/test/run-json_remove.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include diff --git a/common/test/run-json_scan.c b/common/test/run-json_scan.c index a80dad990606..40ddb9bd4541 100644 --- a/common/test/run-json_scan.c +++ b/common/test/run-json_scan.c @@ -2,6 +2,7 @@ #include "../json_parse.c" #include "../json_parse_simple.c" #include +#include #include #include diff --git a/common/test/run-json_stream-filter.c b/common/test/run-json_stream-filter.c index 1e484b475868..6f6fe060f834 100644 --- a/common/test/run-json_stream-filter.c +++ b/common/test/run-json_stream-filter.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include diff --git a/common/test/run-key_derive.c b/common/test/run-key_derive.c index f30fcdfb2e18..6b158f74413d 100644 --- a/common/test/run-key_derive.c +++ b/common/test/run-key_derive.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include diff --git a/common/test/run-lease_rates.c b/common/test/run-lease_rates.c index 31da81c7d317..f995eb88c2f6 100644 --- a/common/test/run-lease_rates.c +++ b/common/test/run-lease_rates.c @@ -1,6 +1,7 @@ #include "config.h" #include "../amount.c" #include "../lease_rates.c" +#include #include #include diff --git a/common/test/run-marginal_feerate.c b/common/test/run-marginal_feerate.c index e0514cfdd83f..097852ceabc8 100644 --- a/common/test/run-marginal_feerate.c +++ b/common/test/run-marginal_feerate.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include "../fee_states.c" diff --git a/common/test/run-param.c b/common/test/run-param.c index 325539693d64..749f6a4946a2 100644 --- a/common/test/run-param.c +++ b/common/test/run-param.c @@ -87,15 +87,6 @@ bool fromwire_tlv(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, void *record UNNEEDED, struct tlv_field **fields UNNEEDED, const u64 *extra_types UNNEEDED, size_t *err_off UNNEEDED, u64 *err_type UNNEEDED) { fprintf(stderr, "fromwire_tlv called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for to_canonical_invstr */ const char *to_canonical_invstr(const tal_t *ctx UNNEEDED, const char *invstring UNNEEDED) { fprintf(stderr, "to_canonical_invstr called!\n"); abort(); } diff --git a/common/test/run-psbt_diff.c b/common/test/run-psbt_diff.c index 6d355697792d..235163fe0848 100644 --- a/common/test/run-psbt_diff.c +++ b/common/test/run-psbt_diff.c @@ -1,4 +1,5 @@ #include "config.h" +#include #include #include #include "../amount.c" diff --git a/common/test/run-route-infloop.c b/common/test/run-route-infloop.c index 4e4ee302ff4a..7556fd2f93af 100644 --- a/common/test/run-route-infloop.c +++ b/common/test/run-route-infloop.c @@ -32,15 +32,6 @@ bool fromwire_tlv(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, void *record UNNEEDED, struct tlv_field **fields UNNEEDED, const u64 *extra_types UNNEEDED, size_t *err_off UNNEEDED, u64 *err_type UNNEEDED) { fprintf(stderr, "fromwire_tlv called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for sciddir_or_pubkey_from_node_id */ bool sciddir_or_pubkey_from_node_id(struct sciddir_or_pubkey *sciddpk UNNEEDED, const struct node_id *node_id UNNEEDED) diff --git a/common/test/run-route-specific.c b/common/test/run-route-specific.c index 66537b696433..759b614fda21 100644 --- a/common/test/run-route-specific.c +++ b/common/test/run-route-specific.c @@ -37,15 +37,6 @@ bool fromwire_tlv(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, void *record UNNEEDED, struct tlv_field **fields UNNEEDED, const u64 *extra_types UNNEEDED, size_t *err_off UNNEEDED, u64 *err_type UNNEEDED) { fprintf(stderr, "fromwire_tlv called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for sciddir_or_pubkey_from_node_id */ bool sciddir_or_pubkey_from_node_id(struct sciddir_or_pubkey *sciddpk UNNEEDED, const struct node_id *node_id UNNEEDED) diff --git a/common/test/run-route.c b/common/test/run-route.c index bd18f64b906c..d9fb4d3b2f7b 100644 --- a/common/test/run-route.c +++ b/common/test/run-route.c @@ -30,15 +30,6 @@ bool fromwire_tlv(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, void *record UNNEEDED, struct tlv_field **fields UNNEEDED, const u64 *extra_types UNNEEDED, size_t *err_off UNNEEDED, u64 *err_type UNNEEDED) { fprintf(stderr, "fromwire_tlv called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for sciddir_or_pubkey_from_node_id */ bool sciddir_or_pubkey_from_node_id(struct sciddir_or_pubkey *sciddpk UNNEEDED, const struct node_id *node_id UNNEEDED) diff --git a/common/test/run-route_blinding_test.c b/common/test/run-route_blinding_test.c index 3358319dfae3..31a83a28caa4 100644 --- a/common/test/run-route_blinding_test.c +++ b/common/test/run-route_blinding_test.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include diff --git a/common/test/run-shutdown_scriptpubkey.c b/common/test/run-shutdown_scriptpubkey.c index db543a9d8d60..c98610d28277 100644 --- a/common/test/run-shutdown_scriptpubkey.c +++ b/common/test/run-shutdown_scriptpubkey.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include diff --git a/common/test/run-splice_script.c b/common/test/run-splice_script.c index c3bd63fcb2fc..082f46ceab49 100644 --- a/common/test/run-splice_script.c +++ b/common/test/run-splice_script.c @@ -6,6 +6,7 @@ #include "../json_stream.c" #include "../json_parse_simple.c" #include +#include #include #include #include diff --git a/common/test/run-tlv_span.c b/common/test/run-tlv_span.c index 4055ec9bcaae..eb3ede4b6cb4 100644 --- a/common/test/run-tlv_span.c +++ b/common/test/run-tlv_span.c @@ -2,6 +2,7 @@ #include "../bolt12.c" #include "../bigsize.c" #include "../../wire/fromwire.c" +#include #include #include diff --git a/common/test/run-tlv_unknown.c b/common/test/run-tlv_unknown.c index fdecc469965d..071b10432e1d 100644 --- a/common/test/run-tlv_unknown.c +++ b/common/test/run-tlv_unknown.c @@ -5,6 +5,7 @@ #include "../../wire/towire.c" #include "../bigsize.c" #include "../bolt12.c" +#include #include #include diff --git a/common/test/run-version.c b/common/test/run-version.c index 0e04b4cb061a..3b46f56e2289 100644 --- a/common/test/run-version.c +++ b/common/test/run-version.c @@ -1,9 +1,13 @@ #include "config.h" #include "../version.c" +#include #include #include #include +/* AUTOGENERATED MOCKS START */ +/* AUTOGENERATED MOCKS END */ + int main(int argc, char *argv[]) { common_setup(argv[0]); diff --git a/common/test/run-wireaddr.c b/common/test/run-wireaddr.c index faa48e3c7c46..f5dd2ff92806 100644 --- a/common/test/run-wireaddr.c +++ b/common/test/run-wireaddr.c @@ -1,6 +1,7 @@ #include "config.h" #include #include +#include #include #include diff --git a/connectd/connectd.c b/connectd/connectd.c index 69014fdbb8bb..923f6bfcc0ff 100644 --- a/connectd/connectd.c +++ b/connectd/connectd.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -1517,7 +1518,7 @@ setup_listeners(const tal_t *ctx, if (sodium_mlock(&random, sizeof(random)) != 0) status_failed(STATUS_FAIL_INTERNAL_ERROR, "Could not lock the random prf key memory."); - randombytes_buf((void * const)&random, 32); + randbytes((void * const)&random, 32); /* generate static tor node address, take first 32 bytes from secret of node_id plus 32 random bytes from sodiom */ struct sha256 sha; struct secret ss; @@ -1542,7 +1543,7 @@ setup_listeners(const tal_t *ctx, localaddr, 0); /* get rid of blob data on our side of tor and add jitter */ - randombytes_buf((void * const)proposed_wireaddr[i].u.torservice.blob, TOR_V3_BLOBLEN); + randbytes((void * const)proposed_wireaddr[i].u.torservice.blob, TOR_V3_BLOBLEN); if (!(proposed_listen_announce[i] & ADDR_ANNOUNCE)) { continue; diff --git a/connectd/handshake.c b/connectd/handshake.c index 3a11dead0ec0..ad388a62182c 100644 --- a/connectd/handshake.c +++ b/connectd/handshake.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -14,7 +15,6 @@ #include #include #include -#include #ifndef SUPERVERBOSE #define SUPERVERBOSE(...) @@ -194,7 +194,7 @@ static struct keypair generate_key(void) struct keypair k; do { - randombytes_buf(k.priv.secret.data, sizeof(k.priv.secret.data)); + randbytes(k.priv.secret.data, sizeof(k.priv.secret.data)); } while (!secp256k1_ec_pubkey_create(secp256k1_ctx, &k.pub.pubkey, k.priv.secret.data)); return k; diff --git a/connectd/test/run-crc32_of_update.c b/connectd/test/run-crc32_of_update.c index 838505fc0a84..ca5cd84df387 100644 --- a/connectd/test/run-crc32_of_update.c +++ b/connectd/test/run-crc32_of_update.c @@ -167,18 +167,9 @@ void inject_peer_msg(struct peer *peer UNNEEDED, const u8 *msg TAKES UNNEEDED) /* Generated stub for master_badmsg */ void master_badmsg(u32 type_expected UNNEEDED, const u8 *msg) { fprintf(stderr, "master_badmsg called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } /* Generated stub for node_id_cmp */ int node_id_cmp(const struct node_id *a UNNEEDED, const struct node_id *b UNNEEDED) { fprintf(stderr, "node_id_cmp called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for status_fmt */ void status_fmt(enum log_level level UNNEEDED, const struct node_id *peer UNNEEDED, diff --git a/connectd/test/run-gossip_rcvd_filter.c b/connectd/test/run-gossip_rcvd_filter.c index fcaa06837f33..ef20a1cd6839 100644 --- a/connectd/test/run-gossip_rcvd_filter.c +++ b/connectd/test/run-gossip_rcvd_filter.c @@ -40,12 +40,6 @@ struct amount_asset amount_sat_to_asset(struct amount_sat *sat UNNEEDED, const u /* Generated stub for amount_tx_fee */ struct amount_sat amount_tx_fee(u32 fee_per_kw UNNEEDED, size_t weight UNNEEDED) { fprintf(stderr, "amount_tx_fee called!\n"); abort(); } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for towire */ void towire(u8 **pptr UNNEEDED, const void *data UNNEEDED, size_t len UNNEEDED) { fprintf(stderr, "towire called!\n"); abort(); } diff --git a/connectd/test/run-initiator-success.c b/connectd/test/run-initiator-success.c index e90ebb693500..ab95d25df5e9 100644 --- a/connectd/test/run-initiator-success.c +++ b/connectd/test/run-initiator-success.c @@ -123,10 +123,10 @@ void towire_u8_array(u8 **pptr UNNEEDED, const u8 *arr UNNEEDED, size_t num UNNE /* AUTOGENERATED MOCKS END */ /* No randomness please, we want to replicate test vectors. */ -#include +#include -static void seed_randomness(u8 *secret, size_t len); -#define randombytes_buf(secret, len) seed_randomness((secret), (len)) +static void seed_randomness(u8 *secret, size_t len, u64 *offset); +#define randbytes_(secret, len, offset) seed_randomness((secret), (len), (offset)) struct handshake; static struct io_plan *test_write(struct io_conn *conn, @@ -197,7 +197,7 @@ const void *trc; static struct pubkey rs_pub, ls_pub, e_pub; static struct privkey ls_priv, e_priv; -static void seed_randomness(u8 *secret, size_t len) +static void seed_randomness(u8 *secret, size_t len, u64 *offset) { assert(len == sizeof(e_priv)); memcpy(secret, &e_priv, len); diff --git a/connectd/test/run-netaddress.c b/connectd/test/run-netaddress.c index 885e4d214d2a..4fee8f6a3f75 100644 --- a/connectd/test/run-netaddress.c +++ b/connectd/test/run-netaddress.c @@ -101,15 +101,6 @@ void fromwire_u8_array(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, u8 *arr /* Generated stub for is_msg_for_gossipd */ bool is_msg_for_gossipd(const u8 *cursor UNNEEDED) { fprintf(stderr, "is_msg_for_gossipd called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for peer_wire_name */ const char *peer_wire_name(int e UNNEEDED) { fprintf(stderr, "peer_wire_name called!\n"); abort(); } diff --git a/connectd/test/run-responder-success.c b/connectd/test/run-responder-success.c index 53c63970619d..7ddb68cad3f9 100644 --- a/connectd/test/run-responder-success.c +++ b/connectd/test/run-responder-success.c @@ -123,10 +123,10 @@ void towire_u8_array(u8 **pptr UNNEEDED, const u8 *arr UNNEEDED, size_t num UNNE /* AUTOGENERATED MOCKS END */ /* No randomness please, we want to replicate test vectors. */ -#include +#include -static void seed_randomness(u8 *secret, size_t len); -#define randombytes_buf(secret, len) seed_randomness((secret), (len)) +static void seed_randomness(u8 *secret, size_t len, u64 *offset); +#define randbytes_(secret, len, offset) seed_randomness((secret), (len), (offset)) struct handshake; static struct io_plan *test_write(struct io_conn *conn, @@ -196,7 +196,7 @@ extern secp256k1_context *secp256k1_ctx; static struct pubkey ls_pub, e_pub; static struct privkey ls_priv, e_priv; -static void seed_randomness(u8 *secret, size_t len) +static void seed_randomness(u8 *secret, size_t len, u64 *offset) { assert(len == sizeof(e_priv)); memcpy(secret, &e_priv, len); diff --git a/connectd/test/run-websocket.c b/connectd/test/run-websocket.c index 69800798db09..393534b036a1 100644 --- a/connectd/test/run-websocket.c +++ b/connectd/test/run-websocket.c @@ -119,15 +119,6 @@ u8 fromwire_u8(const u8 **cursor UNNEEDED, size_t *max UNNEEDED) /* Generated stub for fromwire_u8_array */ void fromwire_u8_array(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, u8 *arr UNNEEDED, size_t num UNNEEDED) { fprintf(stderr, "fromwire_u8_array called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for towire */ void towire(u8 **pptr UNNEEDED, const void *data UNNEEDED, size_t len UNNEEDED) { fprintf(stderr, "towire called!\n"); abort(); } diff --git a/gossipd/test/run-check_channel_announcement.c b/gossipd/test/run-check_channel_announcement.c index b914bddda0a8..7e3fe9517c7d 100644 --- a/gossipd/test/run-check_channel_announcement.c +++ b/gossipd/test/run-check_channel_announcement.c @@ -61,15 +61,6 @@ bool blinding_next_path_privkey(const struct privkey *e UNNEEDED, void fromwire_sciddir_or_pubkey(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, struct sciddir_or_pubkey *sciddpk UNNEEDED) { fprintf(stderr, "fromwire_sciddir_or_pubkey called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for towire_sciddir_or_pubkey */ void towire_sciddir_or_pubkey(u8 **pptr UNNEEDED, const struct sciddir_or_pubkey *sciddpk UNNEEDED) diff --git a/gossipd/test/run-extended-info.c b/gossipd/test/run-extended-info.c index 55715a49ea20..a2f3755f9685 100644 --- a/gossipd/test/run-extended-info.c +++ b/gossipd/test/run-extended-info.c @@ -43,15 +43,6 @@ struct short_channel_id *decode_short_ids(const tal_t *ctx UNNEEDED, const u8 *e void fromwire_sciddir_or_pubkey(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, struct sciddir_or_pubkey *sciddpk UNNEEDED) { fprintf(stderr, "fromwire_sciddir_or_pubkey called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for peer_supplied_query_response */ void peer_supplied_query_response(struct daemon *daemon UNNEEDED, const struct node_id *source_peer UNNEEDED, diff --git a/gossipd/test/run-next_block_range.c b/gossipd/test/run-next_block_range.c index 9e75b502bae1..49bd20f9eea7 100644 --- a/gossipd/test/run-next_block_range.c +++ b/gossipd/test/run-next_block_range.c @@ -105,12 +105,6 @@ struct gossmap_node *gossmap_nth_node(const struct gossmap *map UNNEEDED, /* Generated stub for gossmap_random_node */ struct gossmap_node *gossmap_random_node(const struct gossmap *map UNNEEDED) { fprintf(stderr, "gossmap_random_node called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } /* Generated stub for memleak_scan_intmap_ */ void memleak_scan_intmap_(struct htable *memtable UNNEEDED, const struct intmap *m UNNEEDED) { fprintf(stderr, "memleak_scan_intmap_ called!\n"); abort(); } @@ -125,9 +119,6 @@ struct peer *next_random_peer(struct daemon *daemon UNNEEDED, const struct peer *first UNNEEDED, struct peer_node_id_map_iter *it UNNEEDED) { fprintf(stderr, "next_random_peer called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for query_channel_range */ bool query_channel_range(struct daemon *daemon UNNEEDED, struct peer *peer UNNEEDED, diff --git a/gossipd/test/run-txout_failure.c b/gossipd/test/run-txout_failure.c index 919052b1b1bd..f9c2462d69c1 100644 --- a/gossipd/test/run-txout_failure.c +++ b/gossipd/test/run-txout_failure.c @@ -34,15 +34,6 @@ bool blinding_next_path_privkey(const struct privkey *e UNNEEDED, void fromwire_sciddir_or_pubkey(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, struct sciddir_or_pubkey *sciddpk UNNEEDED) { fprintf(stderr, "fromwire_sciddir_or_pubkey called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for towire_sciddir_or_pubkey */ void towire_sciddir_or_pubkey(u8 **pptr UNNEEDED, const struct sciddir_or_pubkey *sciddpk UNNEEDED) diff --git a/hsmd/hsmd.c b/hsmd/hsmd.c index ff6d1e7b2c91..eaa8a5fc4f61 100644 --- a/hsmd/hsmd.c +++ b/hsmd/hsmd.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -322,7 +323,7 @@ static void maybe_create_new_hsm(const struct secret *encryption_key, /*~ This is libsodium's cryptographic randomness routine: we assume * it's doing a good job. */ if (random_hsm) - randombytes_buf(&hsm_secret, sizeof(hsm_secret)); + randbytes(&hsm_secret, sizeof(hsm_secret)); /*~ If an encryption_key was provided, store an encrypted seed. */ if (encryption_key) diff --git a/lightningd/channel.c b/lightningd/channel.c index 1390a4868713..0db16d1b88a2 100644 --- a/lightningd/channel.c +++ b/lightningd/channel.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include diff --git a/lightningd/invoice.c b/lightningd/invoice.c index 31362ab6c7ef..8c3c05663dd0 100644 --- a/lightningd/invoice.c +++ b/lightningd/invoice.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -26,7 +27,6 @@ #include #include #include -#include #include #include #include @@ -1183,8 +1183,8 @@ static struct command_result *json_invoice(struct command *cmd, info->payment_preimage = *preimage; else /* Generate random secret preimage. */ - randombytes_buf(&info->payment_preimage, - sizeof(info->payment_preimage)); + randbytes(&info->payment_preimage, + sizeof(info->payment_preimage)); /* Generate preimage hash. */ sha256(&rhash, &info->payment_preimage, sizeof(info->payment_preimage)); /* Generate payment secret. */ @@ -1623,7 +1623,7 @@ static void add_stub_blindedpath(const tal_t *ctx, path = tal(NULL, struct blinded_path); sciddir_or_pubkey_from_pubkey(&path->first_node_id, &ld->our_pubkey); - randombytes_buf(&path_key, sizeof(path_key)); + randbytes(&path_key, sizeof(path_key)); if (!pubkey_from_privkey(&path_key, &path->first_path_key)) abort(); path->path = tal_arr(path, struct blinded_path_hop *, 1); diff --git a/onchaind/test/run-grind_feerate-bug.c b/onchaind/test/run-grind_feerate-bug.c index cbc87029b013..ff5ab45ef02a 100644 --- a/onchaind/test/run-grind_feerate-bug.c +++ b/onchaind/test/run-grind_feerate-bug.c @@ -89,15 +89,9 @@ struct bitcoin_tx *htlc_success_tx(const tal_t *ctx UNNEEDED, /* Generated stub for master_badmsg */ void master_badmsg(u32 type_expected UNNEEDED, const u8 *msg) { fprintf(stderr, "master_badmsg called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } /* Generated stub for memleak_ptr */ bool memleak_ptr(struct htable *memtable UNNEEDED, const void *p UNNEEDED) { fprintf(stderr, "memleak_ptr called!\n"); abort(); } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } /* Generated stub for memleak_scan_obj */ void memleak_scan_obj(struct htable *memtable UNNEEDED, const void *obj UNNEEDED) { fprintf(stderr, "memleak_scan_obj called!\n"); abort(); } diff --git a/onchaind/test/run-grind_feerate.c b/onchaind/test/run-grind_feerate.c index 453ea3e0e5f8..c9b1d4dd5368 100644 --- a/onchaind/test/run-grind_feerate.c +++ b/onchaind/test/run-grind_feerate.c @@ -139,15 +139,9 @@ struct bitcoin_tx *htlc_timeout_tx(const tal_t *ctx UNNEEDED, /* Generated stub for master_badmsg */ void master_badmsg(u32 type_expected UNNEEDED, const u8 *msg) { fprintf(stderr, "master_badmsg called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } /* Generated stub for memleak_ptr */ bool memleak_ptr(struct htable *memtable UNNEEDED, const void *p UNNEEDED) { fprintf(stderr, "memleak_ptr called!\n"); abort(); } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } /* Generated stub for memleak_scan_obj */ void memleak_scan_obj(struct htable *memtable UNNEEDED, const void *obj UNNEEDED) { fprintf(stderr, "memleak_scan_obj called!\n"); abort(); } diff --git a/plugins/fetchinvoice.c b/plugins/fetchinvoice.c index c7013e694f0f..31d4339b8a73 100644 --- a/plugins/fetchinvoice.c +++ b/plugins/fetchinvoice.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -25,7 +26,6 @@ #include #include #include -#include static LIST_HEAD(sent_list); @@ -462,7 +462,7 @@ static struct blinded_path *make_reply_path(const tal_t *ctx, assert(tal_count(path) > 0); - randombytes_buf(reply_secret, sizeof(struct secret)); + randbytes(reply_secret, sizeof(struct secret)); if (sent->dev_reply_path) { ids = sent->dev_reply_path; @@ -1090,8 +1090,8 @@ struct command_result *json_fetchinvoice(struct command *cmd, * bytes. */ invreq->invreq_metadata = tal_arr(invreq, u8, 16); - randombytes_buf(invreq->invreq_metadata, - tal_bytelen(invreq->invreq_metadata)); + randbytes(invreq->invreq_metadata, + tal_bytelen(invreq->invreq_metadata)); } } @@ -1599,7 +1599,7 @@ struct command_result *json_sendinvoice(struct command *cmd, * - MUST set `invoice_payment_hash` to the SHA256 hash of the * `payment_preimage` that will be given in return for payment. */ - randombytes_buf(&sent->inv_preimage, sizeof(sent->inv_preimage)); + randbytes(&sent->inv_preimage, sizeof(sent->inv_preimage)); sent->inv->invoice_payment_hash = tal(sent->inv, struct sha256); sha256(sent->inv->invoice_payment_hash, &sent->inv_preimage, sizeof(sent->inv_preimage)); diff --git a/plugins/keysend.c b/plugins/keysend.c index 6104bf607ccd..78a0c823258e 100644 --- a/plugins/keysend.c +++ b/plugins/keysend.c @@ -8,9 +8,9 @@ #include #include #include +#include #include #include -#include #define PREIMAGE_TLV_TYPE 5482373484 #define KEYSEND_FEATUREBIT 55 @@ -49,7 +49,7 @@ static struct keysend_data *keysend_init(struct payment *p) * and populate the preimage field in the keysend_data and the * payment_hash in the payment. */ d = tal(p, struct keysend_data); - randombytes_buf(&d->preimage, sizeof(d->preimage)); + randbytes(&d->preimage, sizeof(d->preimage)); ccan_sha256(&payment_hash, &d->preimage, sizeof(d->preimage)); p->payment_hash = tal_dup(p, struct sha256, &payment_hash); d->extra_tlvs = NULL; diff --git a/plugins/offers_invreq_hook.c b/plugins/offers_invreq_hook.c index 5c8cb142c4c3..690a408b5e2f 100644 --- a/plugins/offers_invreq_hook.c +++ b/plugins/offers_invreq_hook.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -1010,7 +1011,7 @@ static struct command_result *listoffers_done(struct command *cmd, * - MUST set `invoice_payment_hash` to the SHA256 hash of the * `payment_preimage` that will be given in return for payment. */ - randombytes_buf(&ir->preimage, sizeof(ir->preimage)); + randbytes(&ir->preimage, sizeof(ir->preimage)); ir->inv->invoice_payment_hash = tal(ir->inv, struct sha256); sha256(ir->inv->invoice_payment_hash, &ir->preimage, sizeof(ir->preimage)); diff --git a/plugins/offers_offer.c b/plugins/offers_offer.c index e7c7ded1893c..821f7775e18c 100644 --- a/plugins/offers_offer.c +++ b/plugins/offers_offer.c @@ -10,9 +10,9 @@ #include #include #include +#include #include #include -#include static bool msat_or_any(const char *buffer, const jsmntok_t *tok, @@ -707,8 +707,8 @@ struct command_result *json_invoicerequest(struct command *cmd, * - MUST set `invreq_metadata` to an unpredictable series of bytes. */ invreq->invreq_metadata = tal_arr(invreq, u8, 16); - randombytes_buf(invreq->invreq_metadata, - tal_bytelen(invreq->invreq_metadata)); + randbytes(invreq->invreq_metadata, + tal_bytelen(invreq->invreq_metadata)); /* BOLT #12: * - otherwise (not responding to an offer): diff --git a/plugins/renepay/test/run-bottleneck.c b/plugins/renepay/test/run-bottleneck.c index f22d45fbbf6e..67708a404811 100644 --- a/plugins/renepay/test/run-bottleneck.c +++ b/plugins/renepay/test/run-bottleneck.c @@ -14,9 +14,9 @@ #include #include #include +#include #include #include -#include /* AUTOGENERATED MOCKS START */ /* Generated stub for sciddir_or_pubkey_from_node_id */ @@ -235,7 +235,7 @@ int main(int argc, char *argv[]) pinfo.base_prob_success = 1.0; pinfo.use_shadow = false; - randombytes_buf(&preimage, sizeof(preimage)); + randbytes(&preimage, sizeof(preimage)); sha256(&pinfo.payment_hash, &preimage, sizeof(preimage)); // char hex_preimage[600], hex_sha256[600]; diff --git a/plugins/test/run-funder_policy.c b/plugins/test/run-funder_policy.c index 5c9ec4931026..89e5840c5340 100644 --- a/plugins/test/run-funder_policy.c +++ b/plugins/test/run-funder_policy.c @@ -21,15 +21,6 @@ void json_add_string(struct json_stream *js UNNEEDED, const char *fieldname UNNEEDED, const char *str TAKES UNNEEDED) { fprintf(stderr, "json_add_string called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for pubkey_from_node_id */ bool pubkey_from_node_id(struct pubkey *key UNNEEDED, const struct node_id *id UNNEEDED) { fprintf(stderr, "pubkey_from_node_id called!\n"); abort(); } diff --git a/tests/fuzz/connectd_handshake.h b/tests/fuzz/connectd_handshake.h index 6412db8a95c8..da4be733585e 100644 --- a/tests/fuzz/connectd_handshake.h +++ b/tests/fuzz/connectd_handshake.h @@ -1,6 +1,6 @@ /* This header contains globals and helper functions used by all the * fuzz-connectd-handshake-act* fuzz targets. It also takes care of intercepting - * io_read(), io_write(), and randombytes_buf(), so that the actual fuzz targets + * io_read(), io_write(), and randbytes(), so that the actual fuzz targets * only need to implement the test_read() and test_write() interceptors and the * run() function. */ @@ -21,7 +21,7 @@ #include static void seeded_randombytes_buf(u8 *secret, size_t len); -#define randombytes_buf(secret, len) seeded_randombytes_buf((secret), (len)) +#define randbytes(secret, len) seeded_randombytes_buf((secret), (len)) struct handshake; diff --git a/wallet/db.c b/wallet/db.c index eb0ae7bed94e..f0af4e989770 100644 --- a/wallet/db.c +++ b/wallet/db.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -16,7 +17,6 @@ #include #include #include -#include #include #include #include diff --git a/wire/test/run-peer-wire.c b/wire/test/run-peer-wire.c index f9f5ab5c4d35..f8b17c32e60b 100644 --- a/wire/test/run-peer-wire.c +++ b/wire/test/run-peer-wire.c @@ -21,15 +21,6 @@ extern secp256k1_context *secp256k1_ctx; /* AUTOGENERATED MOCKS START */ -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* AUTOGENERATED MOCKS END */ /* memsetting pubkeys doesn't work */ diff --git a/wire/test/run-tlvstream.c b/wire/test/run-tlvstream.c index b4f704fad17b..2cb0c8ceb567 100644 --- a/wire/test/run-tlvstream.c +++ b/wire/test/run-tlvstream.c @@ -29,15 +29,6 @@ int chainparams_get_ln_port(const struct chainparams *params UNNEEDED) bool fromwire_channel_id(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, struct channel_id *channel_id UNNEEDED) { fprintf(stderr, "fromwire_channel_id called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for towire_channel_id */ void towire_channel_id(u8 **pptr UNNEEDED, const struct channel_id *channel_id UNNEEDED) { fprintf(stderr, "towire_channel_id called!\n"); abort(); } From 7165e43bd9bd8e16e0e973f236e96c74d8c1e6ba Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:43:18 +0930 Subject: [PATCH 16/37] pseudorand: make the results in deterministic mode per-caller. Signed-off-by: Rusty Russell --- common/pseudorand.c | 23 ++++++++++++++++++++--- common/pseudorand.h | 11 +++++++---- common/test/run-psbt_diff.c | 6 +++--- connectd/test/run-initiator-success.c | 9 --------- connectd/test/run-responder-success.c | 9 --------- 5 files changed, 30 insertions(+), 28 deletions(-) diff --git a/common/pseudorand.c b/common/pseudorand.c index 4a6694fd645d..050906605225 100644 --- a/common/pseudorand.c +++ b/common/pseudorand.c @@ -29,25 +29,42 @@ static void init_if_needed(void) } } -uint64_t pseudorand(uint64_t max) +uint64_t pseudorand_(uint64_t max, uint64_t *offset) { init_if_needed(); assert(max); + + /* We try to avoid being order-dependent here. */ + if (randbytes_overridden()) { + uint64_t rand; + randbytes_(&rand, sizeof(rand), offset); + return rand % max; + } return isaac64_next_uint(&isaac64, max); } -uint64_t pseudorand_u64(void) +uint64_t pseudorand_u64_(uint64_t *offset) { init_if_needed(); + if (randbytes_overridden()) { + uint64_t rand; + randbytes_(&rand, sizeof(rand), offset); + return rand; + } return isaac64_next_uint64(&isaac64); } -double pseudorand_double(void) +double pseudorand_double_(uint64_t *offset) { init_if_needed(); + if (randbytes_overridden()) { + uint64_t rand; + randbytes_(&rand, sizeof(rand), offset); + return rand / (double)UINT64_MAX; + } return isaac64_next_double(&isaac64); } diff --git a/common/pseudorand.h b/common/pseudorand.h index a34220055560..e0303eaf094b 100644 --- a/common/pseudorand.h +++ b/common/pseudorand.h @@ -7,18 +7,21 @@ /** * pseudorand - pseudo (guessable!) random number between 0 and max-1. */ -uint64_t pseudorand(uint64_t max); +#define pseudorand(max) ({static uint64_t offset; pseudorand_((max), &offset);}) +uint64_t pseudorand_(uint64_t max, uint64_t *offset); /** - * pseudorand - pseudo (guessable!) random number between 0 and UINT64_MAX. + * pseudorand_u64 - pseudo (guessable!) random number between 0 and UINT64_MAX. */ -uint64_t pseudorand_u64(void); +#define pseudorand_u64() ({static uint64_t offset; pseudorand_u64_(&offset);}) +uint64_t pseudorand_u64_(uint64_t *offset); /** * pseudorand - pseudo (guessable!) random number between 0 (inclusive) and 1 * (exclusive). */ -double pseudorand_double(void); +#define pseudorand_double() ({static uint64_t offset; pseudorand_double_(&offset);}) +double pseudorand_double_(uint64_t *offset); /** * Get the siphash seed for hash tables. diff --git a/common/test/run-psbt_diff.c b/common/test/run-psbt_diff.c index 235163fe0848..1c107851ac66 100644 --- a/common/test/run-psbt_diff.c +++ b/common/test/run-psbt_diff.c @@ -38,9 +38,9 @@ u8 fromwire_u8(const u8 **cursor UNNEEDED, size_t *max UNNEEDED) /* Generated stub for fromwire_u8_array */ void fromwire_u8_array(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, u8 *arr UNNEEDED, size_t num UNNEEDED) { fprintf(stderr, "fromwire_u8_array called!\n"); abort(); } -/* Generated stub for pseudorand_u64 */ -uint64_t pseudorand_u64(void) -{ fprintf(stderr, "pseudorand_u64 called!\n"); abort(); } +/* Generated stub for pseudorand_u64_ */ +uint64_t pseudorand_u64_(uint64_t *offset UNNEEDED) +{ fprintf(stderr, "pseudorand_u64_ called!\n"); abort(); } /* Generated stub for towire */ void towire(u8 **pptr UNNEEDED, const void *data UNNEEDED, size_t len UNNEEDED) { fprintf(stderr, "towire called!\n"); abort(); } diff --git a/connectd/test/run-initiator-success.c b/connectd/test/run-initiator-success.c index ab95d25df5e9..f9a45fc73847 100644 --- a/connectd/test/run-initiator-success.c +++ b/connectd/test/run-initiator-success.c @@ -83,15 +83,6 @@ u8 fromwire_u8(const u8 **cursor UNNEEDED, size_t *max UNNEEDED) /* Generated stub for fromwire_u8_array */ void fromwire_u8_array(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, u8 *arr UNNEEDED, size_t num UNNEEDED) { fprintf(stderr, "fromwire_u8_array called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for towire */ void towire(u8 **pptr UNNEEDED, const void *data UNNEEDED, size_t len UNNEEDED) { fprintf(stderr, "towire called!\n"); abort(); } diff --git a/connectd/test/run-responder-success.c b/connectd/test/run-responder-success.c index 7ddb68cad3f9..e349a9a5ae6e 100644 --- a/connectd/test/run-responder-success.c +++ b/connectd/test/run-responder-success.c @@ -83,15 +83,6 @@ u8 fromwire_u8(const u8 **cursor UNNEEDED, size_t *max UNNEEDED) /* Generated stub for fromwire_u8_array */ void fromwire_u8_array(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, u8 *arr UNNEEDED, size_t num UNNEEDED) { fprintf(stderr, "fromwire_u8_array called!\n"); abort(); } -/* Generated stub for memleak_add_helper_ */ -void memleak_add_helper_(const tal_t *p UNNEEDED, void (*cb)(struct htable *memtable UNNEEDED, - const tal_t *)){ } -/* Generated stub for memleak_scan_htable */ -void memleak_scan_htable(struct htable *memtable UNNEEDED, const struct htable *ht UNNEEDED) -{ fprintf(stderr, "memleak_scan_htable called!\n"); abort(); } -/* Generated stub for notleak_ */ -void *notleak_(void *ptr UNNEEDED, bool plus_children UNNEEDED) -{ fprintf(stderr, "notleak_ called!\n"); abort(); } /* Generated stub for towire */ void towire(u8 **pptr UNNEEDED, const void *data UNNEEDED, size_t len UNNEEDED) { fprintf(stderr, "towire called!\n"); abort(); } From adb8890f8a2d6df1d8f1d7596b3b6caaad40cf1f Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:44:18 +0930 Subject: [PATCH 17/37] gossipd: remove --dev-gossip-time setting, we'll use CLN_DEV_SET_TIME. Signed-off-by: Rusty Russell --- gossipd/gossipd.c | 40 +------------------------------------ gossipd/gossipd.h | 10 ---------- gossipd/gossipd_wire.csv | 5 ----- gossipd/gossmap_manage.c | 2 +- lightningd/gossip_control.c | 28 -------------------------- lightningd/lightningd.c | 1 - lightningd/lightningd.h | 3 --- lightningd/options.c | 4 ---- 8 files changed, 2 insertions(+), 91 deletions(-) diff --git a/gossipd/gossipd.c b/gossipd/gossipd.c index 40bfe551fa9e..f472bf0d01bf 100644 --- a/gossipd/gossipd.c +++ b/gossipd/gossipd.c @@ -374,19 +374,11 @@ static void master_or_connectd_gone(struct daemon_conn *dc UNUSED) exit(2); } -struct timeabs gossip_time_now(const struct daemon *daemon) -{ - if (daemon->dev_gossip_time) - return *daemon->dev_gossip_time; - - return time_now(); -} - /* We don't check this when loading from the gossip_store: that would break * our canned tests, and usually old gossip is better than no gossip */ bool timestamp_reasonable(const struct daemon *daemon, u32 timestamp) { - u64 now = gossip_time_now(daemon).ts.tv_sec; + u64 now = time_now().ts.tv_sec; /* More than one day ahead? */ if (timestamp > now + 24*60*60) @@ -400,27 +392,16 @@ bool timestamp_reasonable(const struct daemon *daemon, u32 timestamp) /*~ Parse init message from lightningd: starts the daemon properly. */ static void gossip_init(struct daemon *daemon, const u8 *msg) { - u32 *dev_gossip_time; - if (!fromwire_gossipd_init(daemon, msg, &chainparams, &daemon->our_features, &daemon->id, - &dev_gossip_time, &daemon->dev_fast_gossip, &daemon->dev_fast_gossip_prune, &daemon->autoconnect_seeker_peers)) { master_badmsg(WIRE_GOSSIPD_INIT, msg); } - if (dev_gossip_time) { - assert(daemon->developer); - daemon->dev_gossip_time = tal(daemon, struct timeabs); - daemon->dev_gossip_time->ts.tv_sec = *dev_gossip_time; - daemon->dev_gossip_time->ts.tv_nsec = 0; - tal_free(dev_gossip_time); - } - /* Gossmap manager starts up */ daemon->gm = gossmap_manage_new(daemon, daemon); @@ -488,18 +469,6 @@ static void dev_gossip_memleak(struct daemon *daemon, const u8 *msg) found_leak))); } -static void dev_gossip_set_time(struct daemon *daemon, const u8 *msg) -{ - u32 time; - - if (!fromwire_gossipd_dev_set_time(msg, &time)) - master_badmsg(WIRE_GOSSIPD_DEV_SET_TIME, msg); - if (!daemon->dev_gossip_time) - daemon->dev_gossip_time = tal(daemon, struct timeabs); - daemon->dev_gossip_time->ts.tv_sec = time; - daemon->dev_gossip_time->ts.tv_nsec = 0; -} - /*~ lightningd tells us when about a gossip message directly, when told to by * the addgossip RPC call. That's usually used when a plugin gets an update * returned in an payment error. */ @@ -591,12 +560,6 @@ static struct io_plan *recv_req(struct io_conn *conn, goto done; } /* fall thru */ - case WIRE_GOSSIPD_DEV_SET_TIME: - if (daemon->developer) { - dev_gossip_set_time(daemon, msg); - goto done; - } - /* fall thru */ /* We send these, we don't receive them */ case WIRE_GOSSIPD_INIT_CUPDATE: @@ -630,7 +593,6 @@ int main(int argc, char *argv[]) daemon = tal(NULL, struct daemon); daemon->developer = developer; - daemon->dev_gossip_time = NULL; daemon->peers = new_htable(daemon, peer_node_id_map); daemon->deferred_txouts = tal_arr(daemon, struct short_channel_id, 0); daemon->current_blockheight = 0; /* i.e. unknown */ diff --git a/gossipd/gossipd.h b/gossipd/gossipd.h index 8318156348dc..6a347e61b251 100644 --- a/gossipd/gossipd.h +++ b/gossipd/gossipd.h @@ -65,9 +65,6 @@ struct daemon { /* Features lightningd told us to set. */ struct feature_set *our_features; - /* Override local time for gossip messages */ - struct timeabs *dev_gossip_time; - /* Speed up gossip. */ bool dev_fast_gossip; @@ -163,13 +160,6 @@ void tell_lightningd_peer_update(struct daemon *daemon, struct amount_msat htlc_minimum, struct amount_msat htlc_maximum); -/** - * Get the local time. - * - * This gets overridden in dev mode so we can use canned (stale) gossip. - */ -struct timeabs gossip_time_now(const struct daemon *daemon); - /** * Is this gossip timestamp reasonable? */ diff --git a/gossipd/gossipd_wire.csv b/gossipd/gossipd_wire.csv index d8bee4b298bb..10ba124da4a7 100644 --- a/gossipd/gossipd_wire.csv +++ b/gossipd/gossipd_wire.csv @@ -9,7 +9,6 @@ msgtype,gossipd_init,3000 msgdata,gossipd_init,chainparams,chainparams, msgdata,gossipd_init,our_features,feature_set, msgdata,gossipd_init,id,node_id, -msgdata,gossipd_init,dev_gossip_time,?u32, msgdata,gossipd_init,dev_fast_gossip,bool, msgdata,gossipd_init,dev_fast_gossip_prune,bool, msgdata,gossipd_init,autoconnect_seeker_peers,u32, @@ -27,10 +26,6 @@ msgdata,gossipd_init_nannounce,nannounce,u8,len msgtype,gossipd_init_reply,3100 -# In developer mode, we can mess with time. -msgtype,gossipd_dev_set_time,3001 -msgdata,gossipd_dev_set_time,dev_gossip_time,u32, - # Gossipd->master get this tx output please. msgtype,gossipd_get_txout,3018 msgdata,gossipd_get_txout,short_channel_id,short_channel_id, diff --git a/gossipd/gossmap_manage.c b/gossipd/gossmap_manage.c index 816c3f00eaa9..803090fce66b 100644 --- a/gossipd/gossmap_manage.c +++ b/gossipd/gossmap_manage.c @@ -360,7 +360,7 @@ static bool channel_already_dying(const struct chan_dying dying_channels[], /* Every half a week we look for dead channels (faster in dev) */ static void prune_network(struct gossmap_manage *gm) { - u64 now = gossip_time_now(gm->daemon).ts.tv_sec; + u64 now = time_now().ts.tv_sec; /* Anything below this highwater mark ought to be pruned */ const s64 highwater = now - GOSSIP_PRUNE_INTERVAL(gm->daemon->dev_fast_gossip_prune); const struct gossmap_node *me; diff --git a/lightningd/gossip_control.c b/lightningd/gossip_control.c index 4e931a7844cf..8bc5f86d6d0d 100644 --- a/lightningd/gossip_control.c +++ b/lightningd/gossip_control.c @@ -202,7 +202,6 @@ static unsigned gossip_msg(struct subd *gossip, const u8 *msg, const int *fds) case WIRE_GOSSIPD_GET_TXOUT_REPLY: case WIRE_GOSSIPD_OUTPOINTS_SPENT: case WIRE_GOSSIPD_DEV_MEMLEAK: - case WIRE_GOSSIPD_DEV_SET_TIME: case WIRE_GOSSIPD_NEW_BLOCKHEIGHT: case WIRE_GOSSIPD_ADDGOSSIP: /* This is a reply, so never gets through to here. */ @@ -329,7 +328,6 @@ void gossip_init(struct lightningd *ld, int connectd_fd) chainparams, ld->our_features, &ld->our_nodeid, - ld->dev_gossip_time ? &ld->dev_gossip_time: NULL, ld->dev_fast_gossip, ld->dev_fast_gossip_prune, ld->autoconnect_seeker_peers); @@ -498,29 +496,3 @@ static const struct json_command dev_set_max_scids_encode_size = { .dev_only = true, }; AUTODATA(json_command, &dev_set_max_scids_encode_size); - -static struct command_result *json_dev_gossip_set_time(struct command *cmd, - const char *buffer, - const jsmntok_t *obj UNNEEDED, - const jsmntok_t *params) -{ - u8 *msg; - u32 *time; - - if (!param(cmd, buffer, params, - p_req("time", param_number, &time), - NULL)) - return command_param_failed(); - - msg = towire_gossipd_dev_set_time(NULL, *time); - subd_send_msg(cmd->ld->gossip, take(msg)); - - return command_success(cmd, json_stream_success(cmd)); -} - -static const struct json_command dev_gossip_set_time = { - "dev-gossip-set-time", - json_dev_gossip_set_time, - .dev_only = true, -}; -AUTODATA(json_command, &dev_gossip_set_time); diff --git a/lightningd/lightningd.c b/lightningd/lightningd.c index 4c38bf525fbd..4d96f08225a4 100644 --- a/lightningd/lightningd.c +++ b/lightningd/lightningd.c @@ -130,7 +130,6 @@ static struct lightningd *new_lightningd(const tal_t *ctx) ld->dev_disconnect_fd = -1; ld->dev_subdaemon_fail = false; ld->dev_allow_localhost = false; - ld->dev_gossip_time = 0; ld->dev_fast_gossip = false; ld->dev_fast_gossip_prune = false; ld->dev_throttle_gossip = false; diff --git a/lightningd/lightningd.h b/lightningd/lightningd.h index ce8b62b017a6..6d8eac7197d1 100644 --- a/lightningd/lightningd.h +++ b/lightningd/lightningd.h @@ -306,9 +306,6 @@ struct lightningd { /* Allow and accept localhost node_announcement addresses */ bool dev_allow_localhost; - /* Timestamp to use for gossipd, iff non-zero */ - u32 dev_gossip_time; - /* Speedup gossip propagation, for testing. */ bool dev_fast_gossip; bool dev_fast_gossip_prune; diff --git a/lightningd/options.c b/lightningd/options.c index e565c62f9452..9739c77cdb3e 100644 --- a/lightningd/options.c +++ b/lightningd/options.c @@ -807,10 +807,6 @@ static void dev_register_opts(struct lightningd *ld) opt_set_bool, &ld->dev_fast_gossip_prune, "Make gossip pruning 120 seconds"); - clnopt_witharg("--dev-gossip-time", OPT_DEV|OPT_SHOWINT, - opt_set_u32, opt_show_u32, - &ld->dev_gossip_time, - "UNIX time to override gossipd to use."); clnopt_witharg("--dev-force-privkey", OPT_DEV, opt_force_privkey, NULL, ld, "Force HSM to use this as node private key"); From 894d7d276312cc87b03e775752a46570059cfdae Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:45:18 +0930 Subject: [PATCH 18/37] connectd, gossipd, pay, bcli: use timemono when solely measuring duration for timeouts. This is immune to things like clock changes, and has the convenient side-effect that it will *not* be overridden when we override time for developer purposes. Signed-off-by: Rusty Russell --- connectd/connectd.c | 2 +- connectd/connectd.h | 2 +- connectd/multiplex.c | 6 +++--- gossipd/gossip_store.c | 4 ++-- lightningd/channel.h | 2 +- lightningd/pay.c | 2 +- lightningd/peer_control.c | 2 +- lightningd/peer_htlcs.c | 4 ++-- plugins/bcli.c | 6 +++--- plugins/keysend.c | 2 +- plugins/libplugin-pay.c | 4 ++-- plugins/libplugin-pay.h | 2 +- plugins/pay.c | 2 +- 13 files changed, 20 insertions(+), 20 deletions(-) diff --git a/connectd/connectd.c b/connectd/connectd.c index 923f6bfcc0ff..aa9826f8c6d3 100644 --- a/connectd/connectd.c +++ b/connectd/connectd.c @@ -130,7 +130,7 @@ static struct peer *new_peer(struct daemon *daemon, peer->draining_state = NOT_DRAINING; peer->peer_in_lastmsg = -1; peer->peer_outq = msg_queue_new(peer, false); - peer->last_recv_time = time_now(); + peer->last_recv_time = time_mono(); peer->is_websocket = is_websocket; peer->dev_writes_enabled = NULL; peer->dev_read_enabled = true; diff --git a/connectd/connectd.h b/connectd/connectd.h index 5774c220f4da..f52e40ff1946 100644 --- a/connectd/connectd.h +++ b/connectd/connectd.h @@ -104,7 +104,7 @@ struct peer { struct oneshot *ping_timer; /* Last time we received traffic */ - struct timeabs last_recv_time; + struct timemono last_recv_time; /* How long have we been ignoring peer input? */ struct timemono peer_in_lasttime; diff --git a/connectd/multiplex.c b/connectd/multiplex.c index 77101e207603..06a768169fa9 100644 --- a/connectd/multiplex.c +++ b/connectd/multiplex.c @@ -650,8 +650,8 @@ static void send_ping(struct peer *peer) /* If it's still sending us traffic, maybe ping reply is backed up? * That's OK, ping is just to make sure it's still alive, and clearly * it is. */ - if (time_before(peer->last_recv_time, - timeabs_sub(time_now(), time_from_sec(60)))) { + if (timemono_before(peer->last_recv_time, + timemono_sub(time_mono(), time_from_sec(60)))) { /* Already have a ping in flight? */ if (peer->expecting_pong != PONG_UNEXPECTED) { status_peer_debug(&peer->id, "Last ping unreturned: hanging up"); @@ -1269,7 +1269,7 @@ static struct io_plan *read_body_from_peer_done(struct io_conn *peer_conn, } /* We got something! */ - peer->last_recv_time = time_now(); + peer->last_recv_time = time_mono(); /* Don't process packets while we're closing */ if (peer->draining_state != NOT_DRAINING) diff --git a/gossipd/gossip_store.c b/gossipd/gossip_store.c index 15cae6bdecc9..3138e2e2587b 100644 --- a/gossipd/gossip_store.c +++ b/gossipd/gossip_store.c @@ -197,7 +197,7 @@ static int gossip_store_compact(struct daemon *daemon, struct gossip_hdr hdr; u8 oldversion, version = GOSSIP_STORE_VER; struct stat st; - struct timeabs start = time_now(); + struct timemono start = time_mono(); const char *bad; *populated = false; @@ -363,7 +363,7 @@ static int gossip_store_compact(struct daemon *daemon, } status_debug("Store compact time: %"PRIu64" msec", - time_to_msec(time_between(time_now(), start))); + time_to_msec(timemono_between(time_mono(), start))); status_debug("gossip_store: Read %zu/%zu/%zu/%zu cannounce/cupdate/nannounce/delete from store in %"PRIu64" bytes, now %"PRIu64" bytes (populated=%s)", cannounces, cupdates, nannounces, deleted, old_len, *total_len, diff --git a/lightningd/channel.h b/lightningd/channel.h index fd8e031b0c39..94960601b434 100644 --- a/lightningd/channel.h +++ b/lightningd/channel.h @@ -294,7 +294,7 @@ struct channel { u32 feerate_base, feerate_ppm; /* But allow these feerates/htlcs up until this time. */ - struct timeabs old_feerate_timeout; + struct timemono old_feerate_timeout; u32 old_feerate_base, old_feerate_ppm; struct amount_msat old_htlc_minimum_msat, old_htlc_maximum_msat; diff --git a/lightningd/pay.c b/lightningd/pay.c index 44931d700ea3..2111e5b4091a 100644 --- a/lightningd/pay.c +++ b/lightningd/pay.c @@ -2021,7 +2021,7 @@ static struct command_result *json_injectpaymentonion(struct command *cmd, if (amount_msat_greater(*msat, next->htlc_maximum_msat) || amount_msat_less(*msat, next->htlc_minimum_msat)) { /* Are we in old-range grace-period? */ - if (!time_before(time_now(), next->old_feerate_timeout) + if (!timemono_before(time_mono(), next->old_feerate_timeout) || amount_msat_less(*msat, next->old_htlc_minimum_msat) || amount_msat_greater(*msat, next->old_htlc_maximum_msat)) { return command_fail(cmd, JSONRPC2_INVALID_PARAMS, diff --git a/lightningd/peer_control.c b/lightningd/peer_control.c index 4cc212eff2d7..724a3c466a0d 100644 --- a/lightningd/peer_control.c +++ b/lightningd/peer_control.c @@ -3209,7 +3209,7 @@ static void set_channel_config(struct command *cmd, struct channel *channel, || (htlc_max && amount_msat_less(*htlc_max, channel->htlc_maximum_msat))) { channel->old_feerate_timeout - = timeabs_add(time_now(), time_from_sec(delaysecs)); + = timemono_add(time_mono(), time_from_sec(delaysecs)); channel->old_feerate_base = channel->feerate_base; channel->old_feerate_ppm = channel->feerate_ppm; channel->old_htlc_minimum_msat = channel->htlc_minimum_msat; diff --git a/lightningd/peer_htlcs.c b/lightningd/peer_htlcs.c index 27c3a4757674..e776bde0fc5d 100644 --- a/lightningd/peer_htlcs.c +++ b/lightningd/peer_htlcs.c @@ -856,7 +856,7 @@ static void forward_htlc(struct htlc_in *hin, * - If it creates a new `channel_update` with updated channel parameters: * - SHOULD keep accepting the previous channel parameters for 10 minutes */ - if (!time_before(time_now(), next->old_feerate_timeout) + if (!timemono_before(time_mono(), next->old_feerate_timeout) || !check_fwd_amount(hin, amt_to_forward, hin->msat, next->old_feerate_base, next->old_feerate_ppm)) { @@ -872,7 +872,7 @@ static void forward_htlc(struct htlc_in *hin, if (amount_msat_greater(amt_to_forward, next->htlc_maximum_msat) || amount_msat_less(amt_to_forward, next->htlc_minimum_msat)) { /* Are we in old-range grace-period? */ - if (!time_before(time_now(), next->old_feerate_timeout) + if (!timemono_before(time_mono(), next->old_feerate_timeout) || amount_msat_less(amt_to_forward, next->old_htlc_minimum_msat) || amount_msat_greater(amt_to_forward, next->old_htlc_maximum_msat)) { failmsg = towire_temporary_channel_failure(tmpctx, diff --git a/plugins/bcli.c b/plugins/bcli.c index fdd5a7c6e228..198edcf70166 100644 --- a/plugins/bcli.c +++ b/plugins/bcli.c @@ -76,7 +76,7 @@ struct bitcoin_cli { int *exitstatus; pid_t pid; const char **args; - struct timeabs start; + struct timemono start; enum bitcoind_prio prio; char *output; size_t output_bytes; @@ -247,7 +247,7 @@ static void bcli_finished(struct io_conn *conn UNUSED, struct bitcoin_cli *bcli) int ret, status; struct command_result *res; enum bitcoind_prio prio = bcli->prio; - u64 msec = time_to_msec(time_between(time_now(), bcli->start)); + u64 msec = time_to_msec(timemono_between(time_mono(), bcli->start)); /* If it took over 10 seconds, that's rather strange. */ if (msec > 10000) @@ -318,7 +318,7 @@ static void next_bcli(enum bitcoind_prio prio) close(in); - bcli->start = time_now(); + bcli->start = time_mono(); bitcoind->num_requests[prio]++; diff --git a/plugins/keysend.c b/plugins/keysend.c index 78a0c823258e..b1b51a5f6f47 100644 --- a/plugins/keysend.c +++ b/plugins/keysend.c @@ -241,7 +241,7 @@ static struct command_result *json_keysend(struct command *cmd, const char *buf, p->invstring_used = true; p->why = "Initial attempt"; p->constraints.cltv_budget = *maxdelay; - p->deadline = timeabs_add(time_now(), time_from_sec(*retryfor)); + p->deadline = timemono_add(time_mono(), time_from_sec(*retryfor)); p->getroute->riskfactorppm = 10000000; if (node_id_eq(&my_id, p->route_destination)) { diff --git a/plugins/libplugin-pay.c b/plugins/libplugin-pay.c index 5409e00ebbd5..9cbf959811a4 100644 --- a/plugins/libplugin-pay.c +++ b/plugins/libplugin-pay.c @@ -2525,12 +2525,12 @@ static struct command_result *retry_step_cb(struct retry_mod_data *rd, { struct payment *subpayment, *root = payment_root(p); struct retry_mod_data *rdata = payment_mod_retry_get_data(p); - struct timeabs now = time_now(); + struct timemono now = time_mono(); if (p->step != PAYMENT_STEP_FAILED) return payment_continue(p); - if (time_after(now, p->deadline)) { + if (timemono_after(now, p->deadline)) { paymod_log( p, LOG_INFORM, "Payment deadline expired, not retrying (partial-)payment " diff --git a/plugins/libplugin-pay.h b/plugins/libplugin-pay.h index bc1ec51b5dc9..20b6fae6f355 100644 --- a/plugins/libplugin-pay.h +++ b/plugins/libplugin-pay.h @@ -206,7 +206,7 @@ struct payment { u32 start_block; struct timeabs start_time, end_time; - struct timeabs deadline; + struct timemono deadline; /* Constraints the state machine and modifiers needs to maintain. */ struct payment_constraints constraints; diff --git a/plugins/pay.c b/plugins/pay.c index 7deaf85bc518..87ad826f1bec 100644 --- a/plugins/pay.c +++ b/plugins/pay.c @@ -1480,7 +1480,7 @@ static struct command_result *json_pay(struct command *cmd, p->why = "Initial attempt"; p->constraints.cltv_budget = *maxdelay; tal_free(maxdelay); - p->deadline = timeabs_add(time_now(), time_from_sec(*retryfor)); + p->deadline = timemono_add(time_mono(), time_from_sec(*retryfor)); tal_free(retryfor); p->getroute->riskfactorppm = *riskfactor_millionths; tal_free(riskfactor_millionths); From 5351bf37e3c8c1623cf40ebd2335d7542b79a6bd Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Oct 2025 11:46:18 +0930 Subject: [PATCH 19/37] common/clock_time: wrapper for time_now() so we can override it. Signed-off-by: Rusty Russell --- channeld/Makefile | 1 + closingd/Makefile | 1 + common/Makefile | 1 + common/clock_time.c | 36 ++++++++++++++++++++++++++++++++++++ common/clock_time.h | 19 +++++++++++++++++++ common/daemon.c | 12 +++++++++++- connectd/Makefile | 1 + devtools/Makefile | 1 + gossipd/Makefile | 1 + hsmd/Makefile | 1 + lightningd/Makefile | 1 + onchaind/Makefile | 1 + onchaind/test/Makefile | 1 + openingd/Makefile | 1 + plugins/Makefile | 1 + tests/plugins/Makefile | 1 + 16 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 common/clock_time.c create mode 100644 common/clock_time.h diff --git a/channeld/Makefile b/channeld/Makefile index e6673a56326c..cd7aae387548 100644 --- a/channeld/Makefile +++ b/channeld/Makefile @@ -48,6 +48,7 @@ CHANNELD_COMMON_OBJS := \ common/channel_config.o \ common/channel_id.o \ common/channel_type.o \ + common/clock_time.o \ common/cryptomsg.o \ common/daemon.o \ common/daemon_conn.o \ diff --git a/closingd/Makefile b/closingd/Makefile index c3d055acbf68..c48d4db0f392 100644 --- a/closingd/Makefile +++ b/closingd/Makefile @@ -25,6 +25,7 @@ CLOSINGD_COMMON_OBJS := \ common/bigsize.o \ common/bip32.o \ common/channel_id.o \ + common/clock_time.o \ common/close_tx.o \ common/cryptomsg.o \ common/daemon.o \ diff --git a/common/Makefile b/common/Makefile index 18381e02859b..b8b50eff7b0a 100644 --- a/common/Makefile +++ b/common/Makefile @@ -21,6 +21,7 @@ COMMON_SRC_NOGEN := \ common/channel_config.c \ common/channel_id.c \ common/channel_type.c \ + common/clock_time.c \ common/close_tx.c \ common/codex32.c \ common/coin_mvt.c \ diff --git a/common/clock_time.c b/common/clock_time.c new file mode 100644 index 000000000000..e3a982d77e4f --- /dev/null +++ b/common/clock_time.c @@ -0,0 +1,36 @@ +#include "config.h" +#include +#include + +static bool used = false; +static struct timeabs dev_override; + +bool clock_time_overridden(void) +{ + return dev_override.ts.tv_sec != 0; +} + +struct timeabs clock_time(void) +{ + used = true; + if (!clock_time_overridden()) + return time_now(); /* discouraged: use clock_time so we can override */ + + return dev_override; +} + +struct timeabs clock_time_progresses_(u64 *progress) +{ + if (!clock_time_overridden()) + return clock_time(); + + return timeabs_add(dev_override, time_from_sec((*progress)++)); +} + +void dev_override_clock_time(struct timeabs now) +{ + assert(!used); + + dev_override = now; + assert(clock_time_overridden()); +} diff --git a/common/clock_time.h b/common/clock_time.h new file mode 100644 index 000000000000..a267abf461d9 --- /dev/null +++ b/common/clock_time.h @@ -0,0 +1,19 @@ +#ifndef LIGHTNING_COMMON_CLOCK_TIME_H +#define LIGHTNING_COMMON_CLOCK_TIME_H +#include "config.h" +#include +#include + +/* We use this instead of time_now, for overriding when we want reproducibility */ +struct timeabs clock_time(void); + +/* If you need a clock that progresses even when reproducible, use this. */ +#define clock_time_progresses() ({static u64 progress; clock_time_progresses_(&progress);}) +struct timeabs clock_time_progresses_(u64 *progress); + +/* dev setting to override time */ +void dev_override_clock_time(struct timeabs now); + +/* Did someone override time? */ +bool clock_time_overridden(void); +#endif /* LIGHTNING_COMMON_CLOCK_TIME_H */ diff --git a/common/daemon.c b/common/daemon.c index 9d09b7c8b4d6..dc0a7b829398 100644 --- a/common/daemon.c +++ b/common/daemon.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -199,7 +200,7 @@ void daemon_shutdown(void) bool daemon_developer_mode(char *argv[]) { bool developer = false, debug = false; - const char *entropy_override; + const char *entropy_override, *time_override; for (int i = 1; argv[i]; i++) { if (streq(argv[i], "--dev-debug-self")) @@ -230,6 +231,15 @@ bool daemon_developer_mode(char *argv[]) if (entropy_override) dev_override_randbytes(argv[0], atol(entropy_override)); + /* We can also control TIME ITSELF! */ + time_override = getenv("CLN_DEV_SET_TIME"); + if (time_override) { + struct timeabs t; + t.ts.tv_nsec = 0; + t.ts.tv_sec = atol(time_override); + dev_override_clock_time(t); + } + /* This checks for any tal_steal loops, but it's not free: * only use if we're already using the fairly heavy memleak * detection. */ diff --git a/connectd/Makefile b/connectd/Makefile index 78624204c417..0300e27623ee 100644 --- a/connectd/Makefile +++ b/connectd/Makefile @@ -48,6 +48,7 @@ CONNECTD_COMMON_OBJS := \ common/blinding.o \ common/blindedpath.o \ common/channel_id.o \ + common/clock_time.o \ common/cryptomsg.o \ common/daemon.o \ common/daemon_conn.o \ diff --git a/devtools/Makefile b/devtools/Makefile index a04012e58445..b47a71c6c95d 100644 --- a/devtools/Makefile +++ b/devtools/Makefile @@ -29,6 +29,7 @@ DEVTOOLS_COMMON_OBJS := \ common/bolt11.o \ common/blockheight_states.o \ common/channel_id.o \ + common/clock_time.o \ common/decode_array.o \ common/features.o \ common/fee_states.o \ diff --git a/gossipd/Makefile b/gossipd/Makefile index a33a2c256553..76999cf93f67 100644 --- a/gossipd/Makefile +++ b/gossipd/Makefile @@ -35,6 +35,7 @@ GOSSIPD_COMMON_OBJS := \ common/bigsize.o \ common/bip32.o \ common/channel_id.o \ + common/clock_time.o \ common/cryptomsg.o \ common/daemon.o \ common/daemon_conn.o \ diff --git a/hsmd/Makefile b/hsmd/Makefile index bed5724ef194..fc3aa3826d00 100644 --- a/hsmd/Makefile +++ b/hsmd/Makefile @@ -31,6 +31,7 @@ HSMD_COMMON_OBJS := \ common/bolt12_id.o \ common/bolt12_merkle.o \ common/channel_id.o \ + common/clock_time.o \ common/daemon.o \ common/daemon_conn.o \ common/derive_basepoints.o \ diff --git a/lightningd/Makefile b/lightningd/Makefile index e5bd4e820638..250835584629 100644 --- a/lightningd/Makefile +++ b/lightningd/Makefile @@ -95,6 +95,7 @@ LIGHTNINGD_COMMON_OBJS := \ common/channel_config.o \ common/channel_id.o \ common/channel_type.o \ + common/clock_time.o \ common/coin_mvt.o \ common/configdir.o \ common/configvar.o \ diff --git a/onchaind/Makefile b/onchaind/Makefile index 32af13fa3b39..fdccc7ee39dd 100644 --- a/onchaind/Makefile +++ b/onchaind/Makefile @@ -36,6 +36,7 @@ ONCHAIND_COMMON_OBJS := \ common/base32.o \ common/bigsize.o \ common/bip32.o \ + common/clock_time.o \ common/coin_mvt.o \ common/channel_id.o \ common/daemon.o \ diff --git a/onchaind/test/Makefile b/onchaind/test/Makefile index 307a67e117ba..717b6d999083 100644 --- a/onchaind/test/Makefile +++ b/onchaind/test/Makefile @@ -25,6 +25,7 @@ $(ONCHAIND_TEST_PROGRAMS): $(ONCHAIND_TEST_COMMON_OBJS) $(BITCOIN_OBJS) onchaind/test/run-onchainstress: \ common/htlc_tx.o \ common/derive_basepoints.o \ + common/clock_time.o \ common/daemon.o \ common/htlc_wire.o \ common/initial_commit_tx.o \ diff --git a/openingd/Makefile b/openingd/Makefile index 29f4a4eba04c..e5a37438e1b0 100644 --- a/openingd/Makefile +++ b/openingd/Makefile @@ -41,6 +41,7 @@ OPENINGD_COMMON_OBJS := \ common/channel_config.o \ common/channel_id.o \ common/channel_type.o \ + common/clock_time.o \ common/cryptomsg.o \ common/daemon.o \ common/daemon_conn.o \ diff --git a/plugins/Makefile b/plugins/Makefile index 8329cea4cd19..e550119cff0e 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -181,6 +181,7 @@ PLUGIN_COMMON_OBJS := \ common/bigsize.o \ common/bolt11.o \ common/channel_id.o \ + common/clock_time.o \ common/daemon.o \ common/deprecation.o \ common/features.o \ diff --git a/tests/plugins/Makefile b/tests/plugins/Makefile index 11d1d494132e..ed9f4ee0ab3d 100644 --- a/tests/plugins/Makefile +++ b/tests/plugins/Makefile @@ -44,6 +44,7 @@ tests/plugins/channeld_fakenet: \ common/channel_config.o \ common/channel_id.o \ common/channel_type.o \ + common/clock_time.o \ common/daemon.o \ common/daemon_conn.o \ common/derive_basepoints.o \ From cfccbca299eee1107cf0c412c8efc1bb41f3c189 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Oct 2025 13:57:52 +1030 Subject: [PATCH 20/37] global: use clock_time in place of time_now(). Except for tracing, that sticks with time_now(). Signed-off-by: Rusty Russell --- Makefile | 2 +- bitcoin/test/Makefile | 2 +- common/coin_mvt.c | 24 +++++++++++++------ common/coin_mvt.h | 3 +++ common/test/Makefile | 1 + common/test/run-json.c | 1 + common/test/run-param.c | 1 + common/test/run-route_blinding_test.c | 1 + common/trace.c | 4 ++-- connectd/connectd.c | 3 ++- devtools/bolt11-cli.c | 3 ++- devtools/gossipwith.c | 3 ++- gossipd/gossip_store.c | 3 ++- gossipd/gossipd.c | 5 ++-- gossipd/gossmap_manage.c | 3 ++- gossipd/seeker.c | 3 ++- gossipd/test/run-check_channel_announcement.c | 7 ++++++ gossipd/test/run-extended-info.c | 7 ++++++ gossipd/test/run-next_block_range.c | 9 +++++++ gossipd/test/run-txout_failure.c | 7 ++++++ lightningd/channel.c | 3 ++- lightningd/channel_gossip.c | 5 ++-- lightningd/coin_mvts.c | 13 +++++----- lightningd/dual_open_control.c | 5 ++-- lightningd/gossip_generation.c | 5 ++-- lightningd/htlc_end.c | 3 ++- lightningd/invoice.c | 3 ++- lightningd/log.c | 7 +++--- lightningd/opening_control.c | 3 ++- lightningd/pay.c | 7 +++--- lightningd/runes.c | 3 ++- lightningd/test/Makefile | 1 + plugins/askrene/askrene.c | 6 ++--- plugins/autoclean.c | 3 ++- plugins/bkpr/bookkeeper.c | 1 + plugins/bkpr/incomestmt.c | 3 ++- plugins/bkpr/test/run-recorder.c | 7 ++++++ plugins/bkpr/test/run-sql.c | 7 ++++++ plugins/chanbackup.c | 3 ++- plugins/fetchinvoice.c | 7 +++--- plugins/keysend.c | 4 +++- plugins/libplugin-pay.c | 15 ++++++------ plugins/offers.c | 3 ++- plugins/offers_inv_hook.c | 3 ++- plugins/offers_invreq_hook.c | 5 ++-- plugins/pay.c | 7 +++--- plugins/renepay/main.c | 3 ++- plugins/renepay/mods.c | 5 ++-- plugins/renepay/payment.c | 3 ++- plugins/renepay/test/run-bottleneck.c | 3 ++- plugins/test/Makefile | 1 + plugins/xpay/xpay.c | 7 +++--- tests/fuzz/Makefile | 1 + tools/bench-gossipd.sh | 2 +- wallet/invoices.c | 9 +++---- wallet/test/Makefile | 1 + wallet/wallet.c | 5 ++-- 57 files changed, 183 insertions(+), 81 deletions(-) diff --git a/Makefile b/Makefile index 26c0277761e0..94543238b856 100644 --- a/Makefile +++ b/Makefile @@ -577,7 +577,7 @@ check-tmpctx: @if git grep -n 'tal_free[(]tmpctx)' | grep -Ev '^ccan/|/test/|^common/setup.c:|^common/utils.c:'; then echo "Don't free tmpctx!">&2; exit 1; fi check-discouraged-functions: - @if git grep -nE "[^a-z_/](fgets|fputs|gets|scanf|sprintf|randombytes_buf)\(" -- "*.c" "*.h" ":(exclude)ccan/" ":(exclude)contrib/" | grep -Fv '/* discouraged:'; then exit 1; fi + @if git grep -nE "[^a-z_/](fgets|fputs|gets|scanf|sprintf|randombytes_buf|time_now)\(" -- "*.c" "*.h" ":(exclude)ccan/" ":(exclude)contrib/" | grep -Fv '/* discouraged:'; then exit 1; fi # Don't access amount_msat and amount_sat members directly without a good reason # since it risks overflow. diff --git a/bitcoin/test/Makefile b/bitcoin/test/Makefile index 7b15ab9ae07f..fd29ff5907ce 100644 --- a/bitcoin/test/Makefile +++ b/bitcoin/test/Makefile @@ -2,7 +2,7 @@ BITCOIN_TEST_SRC := $(wildcard bitcoin/test/run-*.c) BITCOIN_TEST_OBJS := $(BITCOIN_TEST_SRC:.c=.o) BITCOIN_TEST_PROGRAMS := $(BITCOIN_TEST_OBJS:.o=) -BITCOIN_TEST_COMMON_OBJS := common/utils.o common/setup.o common/autodata.o +BITCOIN_TEST_COMMON_OBJS := common/utils.o common/setup.o common/autodata.o common/clock_time.o $(BITCOIN_TEST_PROGRAMS): $(BITCOIN_TEST_COMMON_OBJS) bitcoin/chainparams.o $(BITCOIN_TEST_OBJS): $(CCAN_HEADERS) $(BITCOIN_HEADERS) $(BITCOIN_SRC) diff --git a/common/coin_mvt.c b/common/coin_mvt.c index 4e9ec871e0a6..b15663aaaf17 100644 --- a/common/coin_mvt.c +++ b/common/coin_mvt.c @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include #include #include @@ -154,6 +154,12 @@ static enum mvt_tag mvt_tag_in_db(enum mvt_tag mvt_tag) abort(); } +/* This puts the coin movements in order */ +u64 coinmvt_current_time(void) +{ + return clock_time_progresses().ts.tv_sec; +} + const char *mvt_tag_str(enum mvt_tag tag) { assert((unsigned)tag < NUM_MVT_TAGS); @@ -337,7 +343,7 @@ static struct chain_coin_mvt *new_chain_coin_mvt_sat(const tal_t *ctx, assert(ok); return new_chain_coin_mvt(ctx, channel, account_name, - time_now().ts.tv_sec, tx_txid, + coinmvt_current_time(), tx_txid, outpoint, payment_hash, blockheight, tags, direction, amt_msat, /* All amounts that are sat are @@ -392,7 +398,7 @@ struct chain_coin_mvt *new_coin_channel_close(const tal_t *ctx, tags = mk_mvt_tags(MVT_CHANNEL_CLOSE); mvt = new_chain_coin_mvt(ctx, channel, alt_account, - time_now().ts.tv_sec, txid, + coinmvt_current_time(), txid, out, NULL, blockheight, tags, COIN_DEBIT, amount, @@ -420,7 +426,7 @@ struct chain_coin_mvt *new_coin_channel_open_proposed(const tal_t *ctx, if (is_leased) mvt_tag_set(&tags, MVT_LEASED); - mvt = new_chain_coin_mvt(ctx, channel, NULL, time_now().ts.tv_sec, + mvt = new_chain_coin_mvt(ctx, channel, NULL, coinmvt_current_time(), NULL, out, NULL, 0, tags, COIN_CREDIT, amount, output_val, 0); @@ -473,7 +479,7 @@ struct chain_coin_mvt *new_coin_channel_open(const tal_t *ctx, bool is_leased) { return new_coin_channel_open_general(ctx, channel, NULL, - time_now().ts.tv_sec, + coinmvt_current_time(), out, peer_id, blockheight, amount, output_val, is_opener, is_leased); } @@ -515,7 +521,7 @@ struct chain_coin_mvt *new_coin_external_spend(const tal_t *ctx, struct mvt_tags tags) { return new_chain_coin_mvt(ctx, NULL, ACCOUNT_NAME_EXTERNAL, - time_now().ts.tv_sec, txid, + coinmvt_current_time(), txid, outpoint, NULL, blockheight, tags, COIN_CREDIT, AMOUNT_MSAT(0), amount, 0); @@ -583,7 +589,7 @@ struct channel_coin_mvt *new_coin_channel_push(const tal_t *ctx, struct mvt_tags tags) { return new_coin_channel_push_general(ctx, channel, NULL, - time_now().ts.tv_sec, + coinmvt_current_time(), direction, amount, tags); } @@ -730,6 +736,10 @@ void fromwire_chain_coin_mvt(const u8 **cursor, size_t *max, struct chain_coin_m } else mvt->peer_id = NULL; mvt->timestamp = fromwire_u64(cursor, max); + + /* Align onchaind's timestamps with ours if we're deterministic */ + if (clock_time_overridden()) + mvt->timestamp = coinmvt_current_time(); } struct mvt_tags mk_mvt_tags_(enum mvt_tag tag, ...) diff --git a/common/coin_mvt.h b/common/coin_mvt.h index e9a41b3251cd..fb20f5aaaebe 100644 --- a/common/coin_mvt.h +++ b/common/coin_mvt.h @@ -348,4 +348,7 @@ bool mvt_tag_parse(const char *buf, size_t len, enum mvt_tag *tag); void towire_chain_coin_mvt(u8 **pptr, const struct chain_coin_mvt *mvt); void fromwire_chain_coin_mvt(const u8 **cursor, size_t *max, struct chain_coin_mvt *mvt); +/* Time helper for deterministic timestamps: always moves forwards */ +u64 coinmvt_current_time(void); + #endif /* LIGHTNING_COMMON_COIN_MVT_H */ diff --git a/common/test/Makefile b/common/test/Makefile index 7356b5570d9a..1d01c3c8e892 100644 --- a/common/test/Makefile +++ b/common/test/Makefile @@ -7,6 +7,7 @@ COMMON_TEST_COMMON_OBJS := \ common/autodata.o \ common/memleak.o \ common/randbytes.o \ + common/clock_time.o \ common/setup.o \ common/utils.o diff --git a/common/test/run-json.c b/common/test/run-json.c index cbb3b42af1ce..10733adaedbb 100644 --- a/common/test/run-json.c +++ b/common/test/run-json.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include diff --git a/common/test/run-param.c b/common/test/run-param.c index 749f6a4946a2..ddb5cab1e6a2 100644 --- a/common/test/run-param.c +++ b/common/test/run-param.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/common/test/run-route_blinding_test.c b/common/test/run-route_blinding_test.c index 31a83a28caa4..2b3ef812f77e 100644 --- a/common/test/run-route_blinding_test.c +++ b/common/test/run-route_blinding_test.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/common/trace.c b/common/trace.c index f64faa0ef440..1be745bed474 100644 --- a/common/trace.c +++ b/common/trace.c @@ -77,7 +77,7 @@ static void init_span(struct span *s, const char *name, struct span *parent) { - struct timeabs now = time_now(); + struct timeabs now = time_now(); /* discouraged: but tracing wants non-dev time */ s->key = key; s->id = pseudorand_u64(); @@ -368,7 +368,7 @@ void trace_span_end(const void *key) trace_check_tree(); - struct timeabs now = time_now(); + struct timeabs now = time_now(); /* discouraged: but tracing wants non-dev time */ s->end_time = (now.ts.tv_sec * 1000000) + now.ts.tv_nsec / 1000; DTRACE_PROBE1(lightningd, span_end, s->id); if (trace_to_file) { diff --git a/connectd/connectd.c b/connectd/connectd.c index aa9826f8c6d3..8511678e25db 100644 --- a/connectd/connectd.c +++ b/connectd/connectd.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -2209,7 +2210,7 @@ static void dev_report_fds(struct daemon *daemon, const u8 *msg) void update_recent_timestamp(struct daemon *daemon, struct gossmap *gossmap) { /* 2 hours allows for some clock drift, not too much gossip */ - u32 recent = time_now().ts.tv_sec - 7200; + u32 recent = clock_time().ts.tv_sec - 7200; /* Only update every minute */ if (daemon->gossip_recent_time + 60 > recent) diff --git a/devtools/bolt11-cli.c b/devtools/bolt11-cli.c index 5553822c6738..cc11e9dbe08b 100644 --- a/devtools/bolt11-cli.c +++ b/devtools/bolt11-cli.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -108,7 +109,7 @@ static void encode(const tal_t *ctx, struct pubkey me; bool explicit_n = false; - b11->timestamp = time_now().ts.tv_sec; + b11->timestamp = clock_time().ts.tv_sec; b11->chain = chainparams_for_network("regtest"); b11->expiry = 3600; b11->min_final_cltv_expiry = DEFAULT_FINAL_CLTV_DELTA; diff --git a/devtools/gossipwith.c b/devtools/gossipwith.c index f506787cd4e3..316787e5127d 100644 --- a/devtools/gossipwith.c +++ b/devtools/gossipwith.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -214,7 +215,7 @@ static struct io_plan *handshake_success(struct io_conn *conn, msg = towire_gossip_timestamp_filter(NULL, &chainparams->genesis_blockhash, all_gossip ? 0 - : no_gossip ? 0xFFFFFFFF : time_now().ts.tv_sec, + : no_gossip ? 0xFFFFFFFF : clock_time().ts.tv_sec, 0xFFFFFFFF); sync_crypto_write(peer_fd, cs, take(msg)); } diff --git a/gossipd/gossip_store.c b/gossipd/gossip_store.c index 3138e2e2587b..7f99431f02ae 100644 --- a/gossipd/gossip_store.c +++ b/gossipd/gossip_store.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -344,7 +345,7 @@ static int gossip_store_compact(struct daemon *daemon, /* If we have any contents, and the file is less than 1 hour * old, say "seems good" */ - if (st.st_mtime > time_now().ts.tv_sec - 3600 && *total_len > 1) { + if (st.st_mtime > clock_time().ts.tv_sec - 3600 && *total_len > 1) { *populated = true; } diff --git a/gossipd/gossipd.c b/gossipd/gossipd.c index f472bf0d01bf..de420fd485a0 100644 --- a/gossipd/gossipd.c +++ b/gossipd/gossipd.c @@ -13,6 +13,7 @@ #include "config.h" #include #include +#include #include #include #include @@ -378,7 +379,7 @@ static void master_or_connectd_gone(struct daemon_conn *dc UNUSED) * our canned tests, and usually old gossip is better than no gossip */ bool timestamp_reasonable(const struct daemon *daemon, u32 timestamp) { - u64 now = time_now().ts.tv_sec; + u64 now = clock_time().ts.tv_sec; /* More than one day ahead? */ if (timestamp > now + 24*60*60) @@ -603,7 +604,7 @@ int main(int argc, char *argv[]) /* Note the use of time_mono() here. That's a monotonic clock, which * is really useful: it can only be used to measure relative events * (there's no correspondence to time-since-Ken-grew-a-beard or - * anything), but unlike time_now(), this will never jump backwards by + * anything), but unlike time_now, this will never jump backwards by * half a second and leave me wondering how my tests failed CI! */ timers_init(&daemon->timers, time_mono()); diff --git a/gossipd/gossmap_manage.c b/gossipd/gossmap_manage.c index 803090fce66b..2ba09e64627e 100644 --- a/gossipd/gossmap_manage.c +++ b/gossipd/gossmap_manage.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -360,7 +361,7 @@ static bool channel_already_dying(const struct chan_dying dying_channels[], /* Every half a week we look for dead channels (faster in dev) */ static void prune_network(struct gossmap_manage *gm) { - u64 now = time_now().ts.tv_sec; + u64 now = clock_time().ts.tv_sec; /* Anything below this highwater mark ought to be pruned */ const s64 highwater = now - GOSSIP_PRUNE_INTERVAL(gm->daemon->dev_fast_gossip_prune); const struct gossmap_node *me; diff --git a/gossipd/seeker.c b/gossipd/seeker.c index 414aa3e73626..7a8a7e76f849 100644 --- a/gossipd/seeker.c +++ b/gossipd/seeker.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -245,7 +246,7 @@ static void enable_gossip_stream(struct seeker *seeker, struct peer *peer, start = 0; } else { /* Just in case they care */ - start = time_now().ts.tv_sec - GOSSIP_SEEKER_INTERVAL(seeker) * 10; + start = clock_time().ts.tv_sec - GOSSIP_SEEKER_INTERVAL(seeker) * 10; } status_peer_debug(&peer->id, "seeker: starting gossip (%s)", diff --git a/gossipd/test/run-check_channel_announcement.c b/gossipd/test/run-check_channel_announcement.c index 7e3fe9517c7d..a55ca5dca6ab 100644 --- a/gossipd/test/run-check_channel_announcement.c +++ b/gossipd/test/run-check_channel_announcement.c @@ -33,6 +33,7 @@ In particular, we set feature bit 19. The spec says we should set feature bit 1 #include #include #include +#include #include #include #include @@ -57,6 +58,12 @@ bool blinding_next_path_privkey(const struct privkey *e UNNEEDED, const struct sha256 *h UNNEEDED, struct privkey *next UNNEEDED) { fprintf(stderr, "blinding_next_path_privkey called!\n"); abort(); } +/* Generated stub for clock_time_overridden */ +bool clock_time_overridden(void) +{ fprintf(stderr, "clock_time_overridden called!\n"); abort(); } +/* Generated stub for clock_time_progresses_ */ +struct timeabs clock_time_progresses_(u64 *progress UNNEEDED) +{ fprintf(stderr, "clock_time_progresses_ called!\n"); abort(); } /* Generated stub for fromwire_sciddir_or_pubkey */ void fromwire_sciddir_or_pubkey(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, struct sciddir_or_pubkey *sciddpk UNNEEDED) diff --git a/gossipd/test/run-extended-info.c b/gossipd/test/run-extended-info.c index a2f3755f9685..5dfe23ae8813 100644 --- a/gossipd/test/run-extended-info.c +++ b/gossipd/test/run-extended-info.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -32,6 +33,12 @@ bool blinding_next_path_privkey(const struct privkey *e UNNEEDED, const struct sha256 *h UNNEEDED, struct privkey *next UNNEEDED) { fprintf(stderr, "blinding_next_path_privkey called!\n"); abort(); } +/* Generated stub for clock_time_overridden */ +bool clock_time_overridden(void) +{ fprintf(stderr, "clock_time_overridden called!\n"); abort(); } +/* Generated stub for clock_time_progresses_ */ +struct timeabs clock_time_progresses_(u64 *progress UNNEEDED) +{ fprintf(stderr, "clock_time_progresses_ called!\n"); abort(); } /* Generated stub for decode_channel_update_timestamps */ struct channel_update_timestamps *decode_channel_update_timestamps(const tal_t *ctx UNNEEDED, const struct tlv_reply_channel_range_tlvs_timestamps_tlv *timestamps_tlv UNNEEDED) diff --git a/gossipd/test/run-next_block_range.c b/gossipd/test/run-next_block_range.c index 49bd20f9eea7..a7178390152f 100644 --- a/gossipd/test/run-next_block_range.c +++ b/gossipd/test/run-next_block_range.c @@ -27,6 +27,15 @@ bool blinding_next_path_privkey(const struct privkey *e UNNEEDED, const struct sha256 *h UNNEEDED, struct privkey *next UNNEEDED) { fprintf(stderr, "blinding_next_path_privkey called!\n"); abort(); } +/* Generated stub for clock_time */ +struct timeabs clock_time(void) +{ fprintf(stderr, "clock_time called!\n"); abort(); } +/* Generated stub for clock_time_overridden */ +bool clock_time_overridden(void) +{ fprintf(stderr, "clock_time_overridden called!\n"); abort(); } +/* Generated stub for clock_time_progresses_ */ +struct timeabs clock_time_progresses_(u64 *progress UNNEEDED) +{ fprintf(stderr, "clock_time_progresses_ called!\n"); abort(); } /* Generated stub for daemon_conn_send */ void daemon_conn_send(struct daemon_conn *dc UNNEEDED, const u8 *msg UNNEEDED) { fprintf(stderr, "daemon_conn_send called!\n"); abort(); } diff --git a/gossipd/test/run-txout_failure.c b/gossipd/test/run-txout_failure.c index f9c2462d69c1..0985c5f49096 100644 --- a/gossipd/test/run-txout_failure.c +++ b/gossipd/test/run-txout_failure.c @@ -3,6 +3,7 @@ #include "../common/timeout.c" #include #include +#include #include #include #include @@ -30,6 +31,12 @@ bool blinding_next_path_privkey(const struct privkey *e UNNEEDED, const struct sha256 *h UNNEEDED, struct privkey *next UNNEEDED) { fprintf(stderr, "blinding_next_path_privkey called!\n"); abort(); } +/* Generated stub for clock_time_overridden */ +bool clock_time_overridden(void) +{ fprintf(stderr, "clock_time_overridden called!\n"); abort(); } +/* Generated stub for clock_time_progresses_ */ +struct timeabs clock_time_progresses_(u64 *progress UNNEEDED) +{ fprintf(stderr, "clock_time_progresses_ called!\n"); abort(); } /* Generated stub for fromwire_sciddir_or_pubkey */ void fromwire_sciddir_or_pubkey(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, struct sciddir_or_pubkey *sciddpk UNNEEDED) diff --git a/lightningd/channel.c b/lightningd/channel.c index 0db16d1b88a2..9a84b799a388 100644 --- a/lightningd/channel.c +++ b/lightningd/channel.c @@ -1,6 +1,7 @@ #include "config.h" #include #include +#include #include #include #include @@ -1010,7 +1011,7 @@ void channel_set_state(struct channel *channel, struct channel_state_change *change; change = new_channel_state_change(channel->state_changes, - time_now(), + clock_time(), old_state, state, reason, diff --git a/lightningd/channel_gossip.c b/lightningd/channel_gossip.c index d4153b207ad4..04da4555eeda 100644 --- a/lightningd/channel_gossip.c +++ b/lightningd/channel_gossip.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -582,7 +583,7 @@ static void arm_refresh_timer(struct channel *channel) { struct lightningd *ld = channel->peer->ld; struct channel_gossip *cg = channel->channel_gossip; - struct timeabs now = time_now(), due; + struct timeabs now = clock_time(), due; u32 timestamp; if (!channel_update_details(cg->cupdate, ×tamp, NULL)) { @@ -1188,7 +1189,7 @@ void channel_gossip_init_done(struct lightningd *ld) static void channel_reestablished_stable(struct channel *channel) { channel->stable_conn_timer = NULL; - channel->last_stable_connection = time_now().ts.tv_sec; + channel->last_stable_connection = clock_time().ts.tv_sec; wallet_channel_save(channel->peer->ld->wallet, channel); } diff --git a/lightningd/coin_mvts.c b/lightningd/coin_mvts.c index cc206b62b1bb..f1195aff7e2a 100644 --- a/lightningd/coin_mvts.c +++ b/lightningd/coin_mvts.c @@ -1,6 +1,7 @@ #include "config.h" #include #include +#include #include #include #include @@ -12,7 +13,7 @@ struct channel_coin_mvt *new_channel_mvt_invoice_hin(const tal_t *ctx, const struct htlc_in *hin, const struct channel *channel) { - return new_channel_coin_mvt(ctx, channel, time_now().ts.tv_sec, + return new_channel_coin_mvt(ctx, channel, coinmvt_current_time(), &hin->payment_hash, NULL, NULL, COIN_CREDIT, hin->msat, mk_mvt_tags(MVT_INVOICE), @@ -32,7 +33,7 @@ struct channel_coin_mvt *new_channel_mvt_routed_hin(const tal_t *ctx, hin->payload->amt_to_forward)) return NULL; - return new_channel_coin_mvt(ctx, channel, time_now().ts.tv_sec, + return new_channel_coin_mvt(ctx, channel, coinmvt_current_time(), &hin->payment_hash, NULL, NULL, COIN_CREDIT, hin->msat, mk_mvt_tags(MVT_ROUTED), @@ -43,7 +44,7 @@ struct channel_coin_mvt *new_channel_mvt_invoice_hout(const tal_t *ctx, const struct htlc_out *hout, const struct channel *channel) { - return new_channel_coin_mvt(ctx, channel, time_now().ts.tv_sec, + return new_channel_coin_mvt(ctx, channel, coinmvt_current_time(), &hout->payment_hash, &hout->partid, &hout->groupid, @@ -56,7 +57,7 @@ struct channel_coin_mvt *new_channel_mvt_routed_hout(const tal_t *ctx, const struct htlc_out *hout, const struct channel *channel) { - return new_channel_coin_mvt(ctx, channel, time_now().ts.tv_sec, + return new_channel_coin_mvt(ctx, channel, coinmvt_current_time(), &hout->payment_hash, NULL, NULL, COIN_DEBIT, hout->msat, mk_mvt_tags(MVT_ROUTED), @@ -68,7 +69,7 @@ struct channel_coin_mvt *new_channel_mvt_penalty_adj(const tal_t *ctx, struct amount_msat amount, enum coin_mvt_dir direction) { - return new_channel_coin_mvt(ctx, channel, time_now().ts.tv_sec, + return new_channel_coin_mvt(ctx, channel, coinmvt_current_time(), NULL, NULL, NULL, direction, amount, mk_mvt_tags(MVT_PENALTY_ADJ), @@ -109,7 +110,7 @@ void send_account_balance_snapshot(struct lightningd *ld) struct peer_node_id_map_iter it; snap->blockheight = get_block_height(ld->topology); - snap->timestamp = time_now().ts.tv_sec; + snap->timestamp = coinmvt_current_time(); snap->node_id = &ld->our_nodeid; /* Add the 'wallet' account balance */ diff --git a/lightningd/dual_open_control.c b/lightningd/dual_open_control.c index ab84e3f498bd..4bdf87794e69 100644 --- a/lightningd/dual_open_control.c +++ b/lightningd/dual_open_control.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -1336,7 +1337,7 @@ wallet_update_channel_commit(struct lightningd *ld, &channel->peer->id, &channel->cid, channel->scid, - time_now(), + clock_time(), DUALOPEND_OPEN_COMMIT_READY, DUALOPEND_OPEN_COMMITTED, REASON_REMOTE, @@ -1434,7 +1435,7 @@ wallet_commit_channel(struct lightningd *ld, &channel->peer->id, &channel->cid, channel->scid, - time_now(), + clock_time(), DUALOPEND_OPEN_INIT, DUALOPEND_OPEN_COMMIT_READY, REASON_REMOTE, diff --git a/lightningd/gossip_generation.c b/lightningd/gossip_generation.c index 22877c9c0596..b4dffe5ac97d 100644 --- a/lightningd/gossip_generation.c +++ b/lightningd/gossip_generation.c @@ -1,6 +1,7 @@ #include "config.h" #include #include +#include #include #include #include @@ -124,7 +125,7 @@ u8 *unsigned_channel_update(const tal_t *ctx, message_flags |= ROUTING_OPT_DONT_FORWARD; /* Make sure timestamp changes! */ - timestamp = time_now().ts.tv_sec; + timestamp = clock_time().ts.tv_sec; /* FIXME: @endothermicdev points out that our clock could be * wrong once, and now we'll keep producing future timestamps. * We could sanity check that old_timestamp is within 2 weeks and @@ -417,7 +418,7 @@ u8 *unsigned_node_announcement(const tal_t *ctx, { secp256k1_ecdsa_signature sig; const struct wireaddr *addrs; - u32 timestamp = time_now().ts.tv_sec; + u32 timestamp = clock_time().ts.tv_sec; addrs = gather_addresses(tmpctx, ld); /* Even if we're quick, don't duplicate timestamps! */ diff --git a/lightningd/htlc_end.c b/lightningd/htlc_end.c index 91d66b0c3357..77fe3074b5bb 100644 --- a/lightningd/htlc_end.c +++ b/lightningd/htlc_end.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -161,7 +162,7 @@ struct htlc_in *new_htlc_in(const tal_t *ctx, hin->we_filled = NULL; hin->payload = NULL; - hin->received_time = time_now(); + hin->received_time = clock_time(); return htlc_in_check(hin, "new_htlc_in"); } diff --git a/lightningd/invoice.c b/lightningd/invoice.c index 8c3c05663dd0..6060b6fe3a74 100644 --- a/lightningd/invoice.c +++ b/lightningd/invoice.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -1192,7 +1193,7 @@ static struct command_result *json_invoice(struct command *cmd, info->b11 = new_bolt11(info, msatoshi_val); info->b11->chain = chainparams; - info->b11->timestamp = time_now().ts.tv_sec; + info->b11->timestamp = clock_time().ts.tv_sec; info->b11->payment_hash = rhash; info->b11->receiver_id = cmd->ld->our_nodeid; info->b11->min_final_cltv_expiry = *cltv; diff --git a/lightningd/log.c b/lightningd/log.c index 9775e79f44b1..1827b202e97d 100644 --- a/lightningd/log.c +++ b/lightningd/log.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -400,7 +401,7 @@ struct log_book *new_log_book(struct lightningd *ld, size_t max_mem) log_book->prefix = tal_strdup(log_book, ""); list_head_init(&log_book->print_filters); list_head_init(&log_book->loggers); - log_book->init_time = time_now(); + log_book->init_time = clock_time(); log_book->ld = ld; log_book->cache = tal(log_book, struct node_id_map); node_id_map_init(log_book->cache); @@ -525,7 +526,7 @@ static struct log_entry *new_log_entry(struct logger *log, enum log_level level, tal_resize(&log->log_book->log, tal_count(log->log_book->log) * 2); l = &log->log_book->log[log->log_book->num_entries]; - l->time = time_now(); + l->time = clock_time(); l->level = level; l->skipped = 0; l->prefix = log_prefix_get(log->prefix); @@ -1014,7 +1015,7 @@ void log_backtrace_exit(void) int fd; char timebuf[sizeof("YYYYmmddHHMMSS")]; char logfile[sizeof("/tmp/lightning-crash.log.") + sizeof(timebuf)]; - struct timeabs time = time_now(); + struct timeabs time = clock_time(); strftime(timebuf, sizeof(timebuf), "%Y%m%d%H%M%S", gmtime(&time.ts.tv_sec)); diff --git a/lightningd/opening_control.c b/lightningd/opening_control.c index 7c12a0ffd551..c914e51dadbd 100644 --- a/lightningd/opening_control.c +++ b/lightningd/opening_control.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -243,7 +244,7 @@ wallet_commit_channel(struct lightningd *ld, wallet_channel_insert(ld->wallet, channel); /* Notify that channel state changed (from non existant to existant) */ - timestamp = time_now(); + timestamp = clock_time(); notify_channel_state_changed(ld, &channel->peer->id, &channel->cid, channel->scid, /* NULL */ diff --git a/lightningd/pay.c b/lightningd/pay.c index 2111e5b4091a..2a4e0c175e43 100644 --- a/lightningd/pay.c +++ b/lightningd/pay.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -1150,7 +1151,7 @@ send_payment_core(struct lightningd *ld, payment = wallet_add_payment(cmd, ld->wallet, - time_now().ts.tv_sec, + clock_time().ts.tv_sec, NULL, rhash, partid, @@ -1464,7 +1465,7 @@ static struct command_result *self_payment(struct lightningd *ld, payment = wallet_add_payment(tmpctx, ld->wallet, - time_now().ts.tv_sec, + clock_time().ts.tv_sec, NULL, rhash, partid, @@ -1794,7 +1795,7 @@ static void register_payment_and_waiter(struct command *cmd, { wallet_add_payment(cmd, cmd->ld->wallet, - time_now().ts.tv_sec, + clock_time().ts.tv_sec, NULL, payment_hash, partid, diff --git a/lightningd/runes.c b/lightningd/runes.c index 77be7a30a0ad..e3285b06100b 100644 --- a/lightningd/runes.c +++ b/lightningd/runes.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -946,7 +947,7 @@ static struct command_result *json_checkrune(struct command *cmd, cinfo.buf = buffer; cinfo.method = method; cinfo.params = methodparams; - cinfo.now = time_now(); + cinfo.now = clock_time(); strmap_init(&cinfo.cached_params); err = rune_is_ours(cmd->ld, ras->rune); diff --git a/lightningd/test/Makefile b/lightningd/test/Makefile index 776f963f69bd..694d1a6b6ead 100644 --- a/lightningd/test/Makefile +++ b/lightningd/test/Makefile @@ -15,6 +15,7 @@ LIGHTNINGD_TEST_COMMON_OBJS := \ common/autodata.o \ common/base32.o \ common/bech32.o \ + common/clock_time.o \ common/daemon_conn.o \ common/htlc_state.o \ common/htlc_wire.o \ diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index 7f7f2d0d50c3..de659b5d9b89 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -9,7 +9,7 @@ #include "config.h" #include #include -#include +#include #include #include #include @@ -1029,7 +1029,7 @@ static struct command_result *json_askrene_inform_channel(struct command *cmd, *amount = AMOUNT_MSAT(0); if (command_check_only(cmd)) return command_check_done(cmd); - c = layer_add_constraint(layer, scidd, time_now().ts.tv_sec, + c = layer_add_constraint(layer, scidd, clock_time().ts.tv_sec, NULL, amount); goto output; case INFORM_UNCONSTRAINED: @@ -1037,7 +1037,7 @@ static struct command_result *json_askrene_inform_channel(struct command *cmd, * that no reserves were used) */ if (command_check_only(cmd)) return command_check_done(cmd); - c = layer_add_constraint(layer, scidd, time_now().ts.tv_sec, + c = layer_add_constraint(layer, scidd, clock_time().ts.tv_sec, amount, NULL); goto output; case INFORM_SUCCEEDED: diff --git a/plugins/autoclean.c b/plugins/autoclean.c index bfd358c988c6..65a49693fc55 100644 --- a/plugins/autoclean.c +++ b/plugins/autoclean.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -502,7 +503,7 @@ static struct command_result *list_done(struct command *cmd, const struct subsystem_ops *ops = get_subsystem_ops(subsystem); const jsmntok_t *t, *inv = json_get_member(buf, result, ops->arr_name); size_t i; - u64 now = time_now().ts.tv_sec; + u64 now = clock_time().ts.tv_sec; json_for_each_arr(i, t, inv) { struct per_variant *variant; diff --git a/plugins/bkpr/bookkeeper.c b/plugins/bkpr/bookkeeper.c index 1312924de600..b84e876f48b5 100644 --- a/plugins/bkpr/bookkeeper.c +++ b/plugins/bkpr/bookkeeper.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/plugins/bkpr/incomestmt.c b/plugins/bkpr/incomestmt.c index fd3a7e452c08..f35a0e96daa4 100644 --- a/plugins/bkpr/incomestmt.c +++ b/plugins/bkpr/incomestmt.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -442,7 +443,7 @@ const char *csv_filename(const tal_t *ctx, const struct csv_fmt *fmt) { return tal_fmt(ctx, "cln_incomestmt_%s_%lu.csv", fmt->fmt_name, - (unsigned long)time_now().ts.tv_sec); + (unsigned long)clock_time().ts.tv_sec); } static void cointrack_header(FILE *csvf) diff --git a/plugins/bkpr/test/run-recorder.c b/plugins/bkpr/test/run-recorder.c index da01849f1574..8f8a2f8fc6da 100644 --- a/plugins/bkpr/test/run-recorder.c +++ b/plugins/bkpr/test/run-recorder.c @@ -4,6 +4,7 @@ #include #include +#include #include #include #include @@ -46,6 +47,12 @@ const char *chain_event_description(const struct bkpr *bkpr UNNEEDED, const char *channel_event_description(const struct bkpr *bkpr UNNEEDED, const struct channel_event *ce UNNEEDED) { fprintf(stderr, "channel_event_description called!\n"); abort(); } +/* Generated stub for clock_time_overridden */ +bool clock_time_overridden(void) +{ fprintf(stderr, "clock_time_overridden called!\n"); abort(); } +/* Generated stub for clock_time_progresses_ */ +struct timeabs clock_time_progresses_(u64 *progress UNNEEDED) +{ fprintf(stderr, "clock_time_progresses_ called!\n"); abort(); } /* Generated stub for command_fail_badparam */ struct command_result *command_fail_badparam(struct command *cmd UNNEEDED, const char *paramname UNNEEDED, diff --git a/plugins/bkpr/test/run-sql.c b/plugins/bkpr/test/run-sql.c index 8be5859adad7..dc3604d0f8f8 100644 --- a/plugins/bkpr/test/run-sql.c +++ b/plugins/bkpr/test/run-sql.c @@ -3,6 +3,7 @@ #include "plugins/bkpr/sql.c" #include "plugins/libplugin.c" +#include #include #include #include @@ -12,6 +13,12 @@ #include /* AUTOGENERATED MOCKS START */ +/* Generated stub for clock_time_overridden */ +bool clock_time_overridden(void) +{ fprintf(stderr, "clock_time_overridden called!\n"); abort(); } +/* Generated stub for clock_time_progresses_ */ +struct timeabs clock_time_progresses_(u64 *progress UNNEEDED) +{ fprintf(stderr, "clock_time_progresses_ called!\n"); abort(); } /* Generated stub for daemon_developer_mode */ bool daemon_developer_mode(char *argv[]) { fprintf(stderr, "daemon_developer_mode called!\n"); abort(); } diff --git a/plugins/chanbackup.c b/plugins/chanbackup.c index 16d6cb6189df..3e51b1436200 100644 --- a/plugins/chanbackup.c +++ b/plugins/chanbackup.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -140,7 +141,7 @@ static void write_scb(struct plugin *p, struct modern_scb_chan **scb_chan_arr) { const struct chanbackup *cb = chanbackup(p); - u32 timestamp = time_now().ts.tv_sec; + u32 timestamp = clock_time().ts.tv_sec; u8 *decrypted_scb = towire_static_chan_backup_with_tlvs(tmpctx, VERSION, diff --git a/plugins/fetchinvoice.c b/plugins/fetchinvoice.c index 31d4339b8a73..7db0827f0018 100644 --- a/plugins/fetchinvoice.c +++ b/plugins/fetchinvoice.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -754,7 +755,7 @@ static struct command_result *invreq_done(struct command *cmd, } if (base) { - u64 period_start, period_end, now = time_now().ts.tv_sec; + u64 period_start, period_end, now = clock_time().ts.tv_sec; offer_period_paywindow(recurrence, sent->invreq->offer_recurrence_paywindow, sent->invreq->offer_recurrence_base, @@ -952,7 +953,7 @@ struct command_result *json_fetchinvoice(struct command *cmd, * (i.e. continuing an existing offer with recurrence is ok) */ if (sent->offer->offer_absolute_expiry - && time_now().ts.tv_sec > *sent->offer->offer_absolute_expiry + && clock_time().ts.tv_sec > *sent->offer->offer_absolute_expiry && (!recurrence_counter || *recurrence_counter == 0)) { return command_fail(cmd, OFFER_EXPIRED, "Offer expired"); } @@ -1591,7 +1592,7 @@ struct command_result *json_sendinvoice(struct command *cmd, * `invreq_chain`. */ sent->inv->invoice_created_at = tal(sent->inv, u64); - *sent->inv->invoice_created_at = time_now().ts.tv_sec; + *sent->inv->invoice_created_at = clock_time().ts.tv_sec; /* FIXME: Support blinded paths, in which case use fake nodeid */ diff --git a/plugins/keysend.c b/plugins/keysend.c index b1b51a5f6f47..58e42e4f0ced 100644 --- a/plugins/keysend.c +++ b/plugins/keysend.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -448,7 +449,8 @@ static struct command_result *htlc_accepted_call(struct command *cmd, bigsize_t s; struct keysend_in *ki; struct out_req *req; - struct timeabs now = time_now(); + /* Even with CLN_DEV_SET_TIME, we need this to change */ + struct timeabs now = clock_time_progresses(); const char *err; u64 *allowed; size_t err_off; diff --git a/plugins/libplugin-pay.c b/plugins/libplugin-pay.c index 9cbf959811a4..ef2d0f5feeb0 100644 --- a/plugins/libplugin-pay.c +++ b/plugins/libplugin-pay.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -87,7 +88,7 @@ struct payment *payment_new(tal_t *ctx, struct command *cmd, p->modifiers = mods; p->cmd = cmd; p->finished = false; - p->start_time = time_now(); + p->start_time = clock_time(); p->result = NULL; p->why = NULL; p->getroute = tal(p, struct getroute_request); @@ -428,7 +429,7 @@ static void channel_hints_update(struct payment *p, /* Local channels must have an HTLC budget */ assert(!local || htlc_budget != NULL); - channel_hint_set_add(root->hints, time_now().ts.tv_sec, scidd, enabled, + channel_hint_set_add(root->hints, clock_time().ts.tv_sec, scidd, enabled, estimated_capacity, overall_capacity, htlc_budget); hint = channel_hint_set_find(root->hints, scidd); @@ -1637,7 +1638,7 @@ payment_waitsendpay_finished(struct command *cmd, assert(p->route != NULL); - p->end_time = time_now(); + p->end_time = clock_time(); p->result = tal_sendpay_result_from_json(p, buffer, toks); if (p->result == NULL) { @@ -2332,7 +2333,7 @@ void payment_set_step(struct payment *p, enum payment_step newstep) /* Any final state needs an end_time */ if (p->step >= PAYMENT_STEP_SPLIT) - p->end_time = time_now(); + p->end_time = clock_time(); } struct command_result *payment_continue(struct payment *p) @@ -2391,7 +2392,7 @@ struct command_result *payment_abort(struct payment *p, enum jsonrpc_errcode cod va_list ap; struct payment *root = payment_root(p); payment_set_step(p, PAYMENT_STEP_FAILED); - p->end_time = time_now(); + p->end_time = clock_time(); /* We can fail twice, it seems. */ tal_free(p->failreason); @@ -2418,7 +2419,7 @@ struct command_result *payment_abort(struct payment *p, enum jsonrpc_errcode cod struct command_result *payment_fail(struct payment *p, const char *fmt, ...) { va_list ap; - p->end_time = time_now(); + p->end_time = clock_time(); payment_set_step(p, PAYMENT_STEP_FAILED); /* We can fail twice, it seems. */ tal_free(p->failreason); @@ -2644,7 +2645,7 @@ local_channel_hints_listpeerchannels(struct command *cmd, * observations, and should re-enable some channels that would * otherwise start out as excluded and remain so until * forever. */ - channel_hint_set_update(payment_root(p)->hints, time_now()); + channel_hint_set_update(payment_root(p)->hints, clock_time()); p->mods = gossmods_from_listpeerchannels( p, p->local_id, buffer, toks, true, gossmod_add_localchan, NULL); diff --git a/plugins/offers.c b/plugins/offers.c index 575d7a8b0539..ab268dc25338 100644 --- a/plugins/offers.c +++ b/plugins/offers.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -1322,7 +1323,7 @@ static void json_add_rune(struct command *cmd, struct json_stream *js, const str u64 t = atol(alt->value); if (t) { - u64 diff, now = time_now().ts.tv_sec; + u64 diff, now = clock_time().ts.tv_sec; /* Need a non-const during construction */ char *v; diff --git a/plugins/offers_inv_hook.c b/plugins/offers_inv_hook.c index 07bc1a7ed6b6..01a4fe1a49e5 100644 --- a/plugins/offers_inv_hook.c +++ b/plugins/offers_inv_hook.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -312,7 +313,7 @@ struct command_result *handle_invoice(struct command *cmd, invexpiry = *inv->inv->invoice_created_at + *inv->inv->invoice_relative_expiry; else invexpiry = *inv->inv->invoice_created_at + BOLT12_DEFAULT_REL_EXPIRY; - if (time_now().ts.tv_sec > invexpiry) + if (clock_time().ts.tv_sec > invexpiry) return fail_inv(cmd, inv, "Expired invoice"); /* BOLT #12: diff --git a/plugins/offers_invreq_hook.c b/plugins/offers_invreq_hook.c index 690a408b5e2f..0d8544f0ea39 100644 --- a/plugins/offers_invreq_hook.c +++ b/plugins/offers_invreq_hook.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -895,7 +896,7 @@ static struct command_result *listoffers_done(struct command *cmd, if (ir->invreq->offer_absolute_expiry && (!ir->invreq->invreq_recurrence_counter || *ir->invreq->invreq_recurrence_counter == 0) - && time_now().ts.tv_sec >= *ir->invreq->offer_absolute_expiry) { + && clock_time().ts.tv_sec >= *ir->invreq->offer_absolute_expiry) { return fail_invreq(cmd, ir, "Offer expired"); } @@ -1005,7 +1006,7 @@ static struct command_result *listoffers_done(struct command *cmd, * Midnight 1 January 1970, UTC when the invoice was created. */ ir->inv->invoice_created_at = tal(ir->inv, u64); - *ir->inv->invoice_created_at = time_now().ts.tv_sec; + *ir->inv->invoice_created_at = clock_time().ts.tv_sec; /* BOLT #12: * - MUST set `invoice_payment_hash` to the SHA256 hash of the diff --git a/plugins/pay.c b/plugins/pay.c index 87ad826f1bec..087b33ccdb87 100644 --- a/plugins/pay.c +++ b/plugins/pay.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -150,7 +151,7 @@ static void paystatus_add_payment(struct json_stream *s, const struct payment *p json_add_string(s, "strategy", p->why); json_add_string(s, "start_time", timestr); json_add_u64(s, "age_in_seconds", - time_to_sec(time_between(time_now(), p->start_time))); + time_to_sec(time_between(clock_time(), p->start_time))); /* Any final state will have an end time. */ if (p->step >= PAYMENT_STEP_SPLIT) { @@ -1424,7 +1425,7 @@ static struct command_result *json_pay(struct command *cmd, p->payment_secret = NULL; } - if (time_now().ts.tv_sec > invexpiry) + if (clock_time().ts.tv_sec > invexpiry) return command_fail(cmd, PAY_INVOICE_EXPIRED, "Invoice expired"); if (invmsat) { @@ -1549,7 +1550,7 @@ static struct command_result *handle_channel_hint_update(struct command *cmd, fmt_amount_msat(tmpctx, hint->estimated_capacity), fmt_amount_msat(tmpctx, hint->capacity) ); - channel_hint_set_add(global_hints, time_now().ts.tv_sec, &hint->scid, + channel_hint_set_add(global_hints, clock_time().ts.tv_sec, &hint->scid, hint->enabled, &hint->estimated_capacity, hint->capacity, NULL); tal_free(hint); diff --git a/plugins/renepay/main.c b/plugins/renepay/main.c index 01b4d13be34c..18872c1936fe 100644 --- a/plugins/renepay/main.c +++ b/plugins/renepay/main.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -311,7 +312,7 @@ static struct command_result *json_renepay(struct command *cmd, const char *buf, /* === Is it expired? === */ - const u64 now_sec = time_now().ts.tv_sec; + const u64 now_sec = clock_time().ts.tv_sec; if (now_sec > invexpiry) return command_fail(cmd, PAY_INVOICE_EXPIRED, "Invoice expired"); diff --git a/plugins/renepay/mods.c b/plugins/renepay/mods.c index 34e505816538..30d6314a2e6c 100644 --- a/plugins/renepay/mods.c +++ b/plugins/renepay/mods.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -917,7 +918,7 @@ REGISTER_PAYMENT_MODIFIER(end, end_cb); static struct command_result *checktimeout_cb(struct payment *payment) { - if (time_after(time_now(), payment->payment_info.stop_time)) { + if (time_after(clock_time(), payment->payment_info.stop_time)) { return payment_fail(payment, PAY_STOPPED_RETRYING, "Timed out"); } return payment_continue(payment); @@ -1129,7 +1130,7 @@ REGISTER_PAYMENT_MODIFIER(pendingsendpays, pendingsendpays_cb); static struct command_result *knowledgerelax_cb(struct payment *payment) { - const u64 now_sec = time_now().ts.tv_sec; + const u64 now_sec = clock_time().ts.tv_sec; enum renepay_errorcode err = uncertainty_relax( pay_plugin->uncertainty, now_sec - pay_plugin->last_time); if (err) diff --git a/plugins/renepay/payment.c b/plugins/renepay/payment.c index 02566b01cdff..c732ecca0ae4 100644 --- a/plugins/renepay/payment.c +++ b/plugins/renepay/payment.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -96,7 +97,7 @@ bool payment_refresh(struct payment *p){ p->retry = false; p->waitresult_timer = tal_free(p->waitresult_timer); - pinfo->start_time = time_now(); + pinfo->start_time = clock_time(); pinfo->stop_time = timeabs_add(pinfo->start_time, time_from_sec(pinfo->retryfor)); diff --git a/plugins/renepay/test/run-bottleneck.c b/plugins/renepay/test/run-bottleneck.c index 67708a404811..5111892e5911 100644 --- a/plugins/renepay/test/run-bottleneck.c +++ b/plugins/renepay/test/run-bottleneck.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -225,7 +226,7 @@ int main(int argc, char *argv[]) pinfo.maxdelay = 100; pinfo.final_cltv = 5; - pinfo.start_time = time_now(); + pinfo.start_time = clock_time(); pinfo.stop_time = timeabs_add(pinfo.start_time, time_from_sec(10000)); pinfo.base_fee_penalty = 1e-5; diff --git a/plugins/test/Makefile b/plugins/test/Makefile index 341616a0915a..c7744825295e 100644 --- a/plugins/test/Makefile +++ b/plugins/test/Makefile @@ -10,6 +10,7 @@ ALL_TEST_PROGRAMS += $(PLUGIN_TEST_PROGRAMS) PLUGIN_TEST_COMMON_OBJS := \ common/amount.o \ common/autodata.o \ + common/clock_time.o \ common/pseudorand.o \ common/randbytes.o \ common/setup.o \ diff --git a/plugins/xpay/xpay.c b/plugins/xpay/xpay.c index bf5f9cb46299..f202d95e278d 100644 --- a/plugins/xpay/xpay.c +++ b/plugins/xpay/xpay.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -1869,7 +1870,7 @@ static struct command_result *xpay_core(struct command *cmd, payment->requests = tal_arr(payment, struct out_req *, 0); payment->prior_results = tal_strdup(payment, ""); payment->deadline = timemono_add(time_mono(), time_from_sec(retryfor)); - payment->start_time = time_now(); + payment->start_time = clock_time(); payment->pay_compat = as_pay; payment->invstring = tal_strdup(payment, invstring); if (layers) @@ -1977,7 +1978,7 @@ static struct command_result *xpay_core(struct command *cmd, invexpiry = b11->timestamp + b11->expiry; } - now = time_now().ts.tv_sec; + now = clock_time().ts.tv_sec; if (now > invexpiry) return command_fail(cmd, PAY_INVOICE_EXPIRED, "Invoice expired %"PRIu64" seconds ago", @@ -2094,7 +2095,7 @@ static struct command_result *age_layer(struct command *timer_cmd, void *unused) plugin_broken_cb, NULL); json_add_string(req->js, "layer", "xpay"); - json_add_u64(req->js, "cutoff", time_now().ts.tv_sec - 3600); + json_add_u64(req->js, "cutoff", clock_time().ts.tv_sec - 3600); return send_outreq(req); } diff --git a/tests/fuzz/Makefile b/tests/fuzz/Makefile index d7cdd0c9dbd2..0898e335f213 100644 --- a/tests/fuzz/Makefile +++ b/tests/fuzz/Makefile @@ -33,6 +33,7 @@ FUZZ_COMMON_OBJS := \ common/configdir.o \ common/configvar.o \ common/codex32.o \ + common/clock_time.o \ common/cryptomsg.o \ common/daemon.o \ common/daemon_conn.o \ diff --git a/tools/bench-gossipd.sh b/tools/bench-gossipd.sh index 9b4ff5269b44..4bea1552ce22 100755 --- a/tools/bench-gossipd.sh +++ b/tools/bench-gossipd.sh @@ -78,7 +78,7 @@ if ! bitcoin-cli -regtest ping >/dev/null 2>&1; then while ! bitcoin-cli -regtest ping >/dev/null 2>&1; do sleep 1; done fi -LIGHTNINGD="./lightningd/lightningd --developer --network=regtest --dev-gossip-time=1550513768" +LIGHTNINGD="CLN_DEV_SET_TIME=1550513768 ./lightningd/lightningd --developer --network=regtest" LCLI1="./cli/lightning-cli --lightning-dir=$DIR -R" if [ -z "$DIR" ]; then diff --git a/wallet/invoices.c b/wallet/invoices.c index 1655c8f96f85..ddbff6515146 100644 --- a/wallet/invoices.c +++ b/wallet/invoices.c @@ -1,5 +1,6 @@ #include "config.h" #include +#include #include #include #include @@ -179,7 +180,7 @@ static u64 *expired_ids(const tal_t *ctx, static void trigger_expiration(struct invoices *invoices) { u64 *inv_dbids; - u64 now = time_now().ts.tv_sec; + u64 now = clock_time().ts.tv_sec; struct db_stmt *stmt; /* Free current expiration timer */ @@ -214,7 +215,7 @@ static void install_expiration_timer(struct invoices *invoices) struct db_stmt *stmt; struct timerel rel; struct timeabs expiry; - struct timeabs now = time_now(); + struct timeabs now = clock_time(); assert(!invoices->expiration_timer); @@ -275,7 +276,7 @@ bool invoices_create(struct invoices *invoices, { struct db_stmt *stmt; u64 expiry_time; - u64 now = time_now().ts.tv_sec; + u64 now = clock_time().ts.tv_sec; if (invoices_find_by_label(invoices, inv_dbid, label)) { if (taken(msat)) @@ -609,7 +610,7 @@ bool invoices_resolve(struct invoices *invoices, /* Assign a pay-index. */ pay_index = get_next_pay_index(invoices->wallet->db); - paid_timestamp = time_now().ts.tv_sec; + paid_timestamp = clock_time().ts.tv_sec; /* Update database. */ stmt = db_prepare_v2(invoices->wallet->db, SQL("UPDATE invoices" diff --git a/wallet/test/Makefile b/wallet/test/Makefile index 9db6bcca3b33..5d2e6e598bc5 100644 --- a/wallet/test/Makefile +++ b/wallet/test/Makefile @@ -12,6 +12,7 @@ WALLET_TEST_COMMON_OBJS := \ common/blockheight_states.o \ common/channel_id.o \ common/channel_type.o \ + common/clock_time.o \ common/derive_basepoints.o \ common/features.o \ common/htlc_state.o \ diff --git a/wallet/wallet.c b/wallet/wallet.c index 1f7d980ac895..84fe05ca8c2f 100644 --- a/wallet/wallet.c +++ b/wallet/wallet.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -4185,7 +4186,7 @@ void wallet_payment_set_status(struct wallet *wallet, u32 completed_at = 0; if (newstatus != PAYMENT_PENDING) - completed_at = time_now().ts.tv_sec; + completed_at = clock_time().ts.tv_sec; stmt = db_prepare_v2(wallet->db, SQL("UPDATE payments SET status=?, completed_at=?, updated_index=? " @@ -5340,7 +5341,7 @@ void wallet_forwarded_payment_add(struct wallet *w, const struct htlc_in *in, if (state == FORWARD_SETTLED || state == FORWARD_FAILED) { resolved_time = tal(tmpctx, struct timeabs); - *resolved_time = time_now(); + *resolved_time = clock_time(); } else { resolved_time = NULL; } From eab9fbabfa4609420bc4c22abafdf86a7ed349ec Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Oct 2025 13:58:52 +1030 Subject: [PATCH 21/37] lightningd: introduce some changes for dual open id randomness even with CLN_DEV_ENTROPY_SEED. Signed-off-by: Rusty Russell --- lightningd/dual_open_control.c | 37 ++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/lightningd/dual_open_control.c b/lightningd/dual_open_control.c index 4bdf87794e69..14ccb306f191 100644 --- a/lightningd/dual_open_control.c +++ b/lightningd/dual_open_control.c @@ -34,6 +34,7 @@ #include #include #include +#include struct commit_rcvd { struct channel *channel; @@ -4090,6 +4091,35 @@ static void dualopen_errmsg(struct channel *channel, err_for_them ? "sent" : "received", desc); } +/* This is a hack for CLN_DEV_ENTROPY_SEED. We cannot actually use + * the same seed for each dualopend, or they choose the same ids, and we + * clash when combining the PSBTs (this is phenomenally unlikey normally). + * So we set it (for the child) to an incrementing value. */ +static const char *dev_setup_dualopend_seed(const tal_t *ctx, struct lightningd *ld) +{ + static u64 seed_incr = 0; + char seedstr[STR_MAX_CHARS(u64)]; + const char *old_seed; + + if (!ld->developer) + return NULL; + + old_seed = getenv("CLN_DEV_ENTROPY_SEED"); + if (!old_seed) + return NULL; + + old_seed = tal_strdup(tmpctx, old_seed); + seed_incr++; + snprintf(seedstr, sizeof(seedstr), "%"PRIu64, atol(old_seed) + seed_incr); + setenv("CLN_DEV_ENTROPY_SEED", seedstr, 1); + return old_seed; +} + +static void dev_restore_seed(const char *old_seed) +{ + if (old_seed) + setenv("CLN_DEV_ENTROPY_SEED", old_seed, 1); +} bool peer_start_dualopend(struct peer *peer, struct peer_fd *peer_fd, @@ -4099,6 +4129,7 @@ bool peer_start_dualopend(struct peer *peer, u32 max_to_self_delay; struct amount_msat min_effective_htlc_capacity; const u8 *msg; + const char *dev_old_seed; hsmfd = hsm_get_client_fd(peer->ld, &peer->id, channel->unsaved_dbid, HSM_PERM_COMMITMENT_POINT @@ -4112,6 +4143,7 @@ bool peer_start_dualopend(struct peer *peer, return false; } + dev_old_seed = dev_setup_dualopend_seed(tmpctx, peer->ld); channel->owner = new_channel_subd(channel, peer->ld, "lightning_dualopend", @@ -4124,6 +4156,7 @@ bool peer_start_dualopend(struct peer *peer, channel_set_billboard, take(&peer_fd->fd), take(&hsmfd), NULL); + dev_restore_seed(dev_old_seed); if (!channel->owner) { channel_internal_error(channel, @@ -4177,6 +4210,7 @@ bool peer_restart_dualopend(struct peer *peer, int hsmfd; u32 *local_shutdown_script_wallet_index; u8 *msg; + const char *dev_old_seed; if (channel_state_uncommitted(channel->state)) return peer_start_dualopend(peer, peer_fd, channel); @@ -4196,6 +4230,7 @@ bool peer_restart_dualopend(struct peer *peer, return false; } + dev_old_seed = dev_setup_dualopend_seed(tmpctx, peer->ld); channel_set_owner(channel, new_channel_subd(channel, peer->ld, "lightning_dualopend", @@ -4208,6 +4243,8 @@ bool peer_restart_dualopend(struct peer *peer, channel_set_billboard, take(&peer_fd->fd), take(&hsmfd), NULL)); + dev_restore_seed(dev_old_seed); + if (!channel->owner) { log_broken(channel->log, "Could not subdaemon channel: %s", strerror(errno)); From 638f4e45f2fc7228118b2c59ad6fc36575c1875e Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Oct 2025 13:59:52 +1030 Subject: [PATCH 22/37] wallet: make utxo order deterministic if CLN_DEV_ENTROPY_SEED set. Signed-off-by: Rusty Russell --- wallet/wallet.c | 92 +++++++++++++++++++++++++++++++++++++------------ 1 file changed, 70 insertions(+), 22 deletions(-) diff --git a/wallet/wallet.c b/wallet/wallet.c index 84fe05ca8c2f..bb56b3a00c4a 100644 --- a/wallet/wallet.c +++ b/wallet/wallet.c @@ -1,6 +1,7 @@ #include "config.h" #include #include +#include #include #include #include @@ -10,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -462,7 +464,23 @@ bool wallet_update_output_status(struct wallet *w, return changes > 0; } -static struct utxo **gather_utxos(const tal_t *ctx, struct db_stmt *stmt STEALS) +static int cmp_utxo(struct utxo *const *a, + struct utxo *const *b, + void *unused) +{ + int ret = memcmp(&(*a)->outpoint.txid, &(*b)->outpoint.txid, + sizeof((*a)->outpoint.txid)); + if (ret) + return ret; + if ((*a)->outpoint.n < (*b)->outpoint.n) + return -1; + else if ((*a)->outpoint.n > (*b)->outpoint.n) + return 1; + return 0; +} + +static struct utxo **gather_utxos(const tal_t *ctx, + struct db_stmt *stmt STEALS) { struct utxo **results; @@ -474,6 +492,10 @@ static struct utxo **gather_utxos(const tal_t *ctx, struct db_stmt *stmt STEALS) } tal_free(stmt); + /* Make sure these are in order if we're trying to remove entropy */ + if (randbytes_overridden()) + asort(results, tal_count(results), cmp_utxo, NULL); + return results; } @@ -820,27 +842,53 @@ struct utxo *wallet_find_utxo(const tal_t *ctx, struct wallet *w, struct db_stmt *stmt; struct utxo *utxo; - stmt = db_prepare_v2(w->db, SQL("SELECT" - " prev_out_tx" - ", prev_out_index" - ", value" - ", type" - ", status" - ", keyindex" - ", channel_id" - ", peer_id" - ", commitment_point" - ", option_anchor_outputs" - ", confirmation_height" - ", spend_height" - ", scriptpubkey " - ", reserved_til" - ", csv_lock" - ", is_in_coinbase" - " FROM outputs" - " WHERE status = ?" - " OR (status = ? AND reserved_til <= ?)" - "ORDER BY RANDOM();")); + /* Make sure these are in order if we're trying to remove entropy! */ + if (w->ld->developer && getenv("CLN_DEV_ENTROPY_SEED")) { + stmt = db_prepare_v2(w->db, SQL("SELECT" + " prev_out_tx" + ", prev_out_index" + ", value" + ", type" + ", status" + ", keyindex" + ", channel_id" + ", peer_id" + ", commitment_point" + ", option_anchor_outputs" + ", confirmation_height" + ", spend_height" + ", scriptpubkey " + ", reserved_til" + ", csv_lock" + ", is_in_coinbase" + " FROM outputs" + " WHERE status = ?" + " OR (status = ? AND reserved_til <= ?)" + "ORDER BY prev_out_tx, prev_out_index;")); + } else { + stmt = db_prepare_v2(w->db, SQL("SELECT" + " prev_out_tx" + ", prev_out_index" + ", value" + ", type" + ", status" + ", keyindex" + ", channel_id" + ", peer_id" + ", commitment_point" + ", option_anchor_outputs" + ", confirmation_height" + ", spend_height" + ", scriptpubkey " + ", reserved_til" + ", csv_lock" + ", is_in_coinbase" + " FROM outputs" + " WHERE status = ?" + " OR (status = ? AND reserved_til <= ?)" + "ORDER BY RANDOM();")); + } + db_bind_int(stmt, output_status_in_db(OUTPUT_STATE_AVAILABLE)); db_bind_int(stmt, output_status_in_db(OUTPUT_STATE_RESERVED)); db_bind_u64(stmt, current_blockheight); From 03aef525cc80d469376f20d973bd4880dddf956c Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Oct 2025 14:00:52 +1030 Subject: [PATCH 23/37] topology: in deterministic mode, only return one best candidate for listincoming. This ensures that bolt11/bolt12 selection of routehints/blinded paths is always the same. Signed-off-by: Rusty Russell --- plugins/topology.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/plugins/topology.c b/plugins/topology.c index 4c84d02b92c2..5447303efdc5 100644 --- a/plugins/topology.c +++ b/plugins/topology.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -462,6 +463,33 @@ static struct amount_msat peer_capacity(const struct gossmap *gossmap, return capacity; } +/* For deterministic results with bolt12/11 routes, we only return a + * single candidate: choose the one with most capacity */ +static size_t best_candidate(const struct gossmap *gossmap, + const struct gossmap_node *me) +{ + struct amount_msat best_cap = AMOUNT_MSAT(0); + size_t best_num = 0; + for (size_t i = 0; i < me->num_chans; i++) { + int dir; + struct gossmap_chan *ourchan; + struct amount_msat cap; + struct gossmap_node *peer; + + ourchan = gossmap_nth_chan(gossmap, me, i, &dir); + if (ourchan->cupdate_off[!dir] == 0) + continue; + + peer = gossmap_nth_node(gossmap, ourchan, !dir); + cap = peer_capacity(gossmap, me, peer, ourchan); + if (amount_msat_greater(cap, best_cap)) { + best_num = i; + best_cap = cap; + } + } + return best_num; +} + static struct command_result * listpeerchannels_listincoming_done(struct command *cmd, const char *method, @@ -473,6 +501,7 @@ listpeerchannels_listincoming_done(struct command *cmd, struct gossmap_node *me; struct gossmap *gossmap; struct gossmap_localmods *mods; + size_t deterministic_candidate = 0; /* Get local knowledge */ mods = gossmods_from_listpeerchannels(tmpctx, &local_id, @@ -490,6 +519,9 @@ listpeerchannels_listincoming_done(struct command *cmd, if (!me) goto done; + if (randbytes_overridden()) + deterministic_candidate = best_candidate(gossmap, me); + for (size_t i = 0; i < me->num_chans; i++) { struct node_id peer_id; int dir; @@ -502,6 +534,10 @@ listpeerchannels_listincoming_done(struct command *cmd, /* Entirely missing? Ignore. */ if (ourchan->cupdate_off[!dir] == 0) continue; + + if (randbytes_overridden() && i != deterministic_candidate) + continue; + /* We used to ignore if the peer said it was disabled, * but we have a report of LND telling us our unannounced * channel is disabled, so we still use them. */ From 7af13444c013f6abea73ce78d6f41b75a9bd24f6 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Oct 2025 14:01:52 +1030 Subject: [PATCH 24/37] lightningd: add --dev-ignore-idb to not complain about bitcoind in initialblockdownload. Signed-off-by: Rusty Russell --- plugins/bcli.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/plugins/bcli.c b/plugins/bcli.c index 198edcf70166..af232da24eae 100644 --- a/plugins/bcli.c +++ b/plugins/bcli.c @@ -66,6 +66,9 @@ struct bitcoind { /* Override in case we're developer mode for testing*/ bool dev_no_fake_fees; + + /* Override initialblockdownload (using canned blocks sets this) */ + bool dev_ignore_ibd; }; static struct bitcoind *bitcoind; @@ -458,6 +461,9 @@ static struct command_result *process_getblockchaininfo(struct bitcoin_cli *bcli if (err) return command_err_bcli_badjson(bcli, err); + if (bitcoind->dev_ignore_ibd) + ibd = false; + response = jsonrpc_stream_success(bcli->cmd); json_add_string(response, "chain", chain); json_add_u32(response, "headercount", headers); @@ -1157,6 +1163,7 @@ static struct bitcoind *new_bitcoind(const tal_t *ctx) although normal rpcclienttimeout default value is 900. */ bitcoind->rpcclienttimeout = 60; bitcoind->dev_no_fake_fees = false; + bitcoind->dev_ignore_ibd = false; return bitcoind; } @@ -1208,5 +1215,9 @@ int main(int argc, char *argv[]) "bool", "Suppress fee faking for regtest", bool_option, NULL, &bitcoind->dev_no_fake_fees), + plugin_option_dev("dev-ignore-ibd", + "bool", + "Never tell lightningd we're doing initial block download", + bool_option, NULL, &bitcoind->dev_ignore_ibd), NULL); } From 29e993d6373e7f3fdf2c2b61cf60745c5fcbb806 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Oct 2025 14:02:52 +1030 Subject: [PATCH 25/37] pyln-testing: introduce canned blocks support to bitcoind fixture. We have to add a send_and_mine_block() for cases where we want to get a txid and then mine it (for canned blocks, we mine it then figure out which tx it was!). And fix up out-by-one in saving blocks. Signed-off-by: Rusty Russell --- contrib/pyln-testing/pyln/testing/fixtures.py | 58 ++++++++-------- contrib/pyln-testing/pyln/testing/utils.py | 67 ++++++++++++++++--- 2 files changed, 88 insertions(+), 37 deletions(-) diff --git a/contrib/pyln-testing/pyln/testing/fixtures.py b/contrib/pyln-testing/pyln/testing/fixtures.py index 694189bc8abd..db4206a1279c 100644 --- a/contrib/pyln-testing/pyln/testing/fixtures.py +++ b/contrib/pyln-testing/pyln/testing/fixtures.py @@ -125,36 +125,40 @@ def node_cls(): @pytest.fixture -def bitcoind(directory, teardown_checks): +def bitcoind(request, directory, teardown_checks): chaind = network_daemons[env('TEST_NETWORK', 'regtest')] bitcoind = chaind(bitcoin_dir=directory) - try: - bitcoind.start() - except Exception: - bitcoind.stop() - raise - - info = bitcoind.rpc.getnetworkinfo() - - # FIXME: include liquid-regtest in this check after elementsd has been - # updated - if info['version'] < 200100 and env('TEST_NETWORK') != 'liquid-regtest': - bitcoind.rpc.stop() - raise ValueError("bitcoind is too old. At least version 20100 (v0.20.1)" - " is needed, current version is {}".format(info['version'])) - elif info['version'] < 160000: - bitcoind.rpc.stop() - raise ValueError("elementsd is too old. At least version 160000 (v0.16.0)" - " is needed, current version is {}".format(info['version'])) - - info = bitcoind.rpc.getblockchaininfo() - # Make sure we have some spendable funds - if info['blocks'] < 101: - bitcoind.generate_block(101 - info['blocks']) - elif bitcoind.rpc.getwalletinfo()['balance'] < 1: - logging.debug("Insufficient balance, generating 1 block") - bitcoind.generate_block(1) + # @pytest.mark.parametrize('bitcoind', [False], indirect=True) if you don't + # want bitcoind started! + if getattr(request, 'param', True): + try: + bitcoind.start() + except Exception: + bitcoind.stop() + raise + + info = bitcoind.rpc.getnetworkinfo() + + # FIXME: include liquid-regtest in this check after elementsd has been + # updated + if info['version'] < 200100 and env('TEST_NETWORK') != 'liquid-regtest': + bitcoind.rpc.stop() + raise ValueError("bitcoind is too old. At least version 20100 (v0.20.1)" + " is needed, current version is {}".format(info['version'])) + elif info['version'] < 160000: + bitcoind.rpc.stop() + raise ValueError("elementsd is too old. At least version 160000 (v0.16.0)" + " is needed, current version is {}".format(info['version'])) + + info = bitcoind.rpc.getblockchaininfo() + + # Make sure we have some spendable funds + if info['blocks'] < 101: + bitcoind.generate_block(101 - info['blocks']) + elif bitcoind.rpc.getwalletinfo()['balance'] < 1: + logging.debug("Insufficient balance, generating 1 block") + bitcoind.generate_block(1) yield bitcoind diff --git a/contrib/pyln-testing/pyln/testing/utils.py b/contrib/pyln-testing/pyln/testing/utils.py index 918b90716236..16595be224b1 100644 --- a/contrib/pyln-testing/pyln/testing/utils.py +++ b/contrib/pyln-testing/pyln/testing/utils.py @@ -411,6 +411,7 @@ def __init__(self, bitcoin_dir="/tmp/bitcoind-test", rpcport=None): self.bitcoin_dir = bitcoin_dir self.rpcport = rpcport self.prefix = 'bitcoind' + self.canned_blocks = None regtestdir = os.path.join(bitcoin_dir, 'regtest') if not os.path.exists(regtestdir): @@ -446,15 +447,18 @@ def __del__(self): if self.reserved_rpcport is not None: drop_unused_port(self.reserved_rpcport) - def start(self): + def start(self, wallet_file=None): TailableProc.start(self) self.wait_for_log("Done loading", timeout=TIMEOUT) logging.info("BitcoinD started") - try: - self.rpc.createwallet("lightningd-tests") - except JSONRPCError: - self.rpc.loadwallet("lightningd-tests") + if wallet_file: + self.rpc.restorewallet("lightningd-tests", wallet_file) + else: + try: + self.rpc.createwallet("lightningd-tests") + except JSONRPCError: + self.rpc.loadwallet("lightningd-tests") def stop(self): for p in self.proxies: @@ -468,6 +472,10 @@ def get_proxy(self): proxy.start() return proxy + def set_canned_blocks(self, blocks): + """Set blocks as an array of blocks to "generate", or None to reset""" + self.canned_blocks = blocks + # wait_for_mempool can be used to wait for the mempool before generating blocks: # True := wait for at least 1 transation # int > 0 := wait for at least N transactions @@ -482,6 +490,16 @@ def generate_block(self, numblocks=1, wait_for_mempool=0, to_addr=None, needfeer else: wait_for(lambda: len(self.rpc.getrawmempool()) >= wait_for_mempool) + # Use canned blocks if we have them (fails if we run out!). + if self.canned_blocks is not None: + ret = [] + while numblocks > 0: + self.rpc.submitblock(self.canned_blocks[0]) + ret.append(self.rpc.getbestblockhash()) + numblocks -= 1 + del self.canned_blocks[0] + return ret + mempool = self.rpc.getrawmempool(True) logging.debug("Generating {numblocks}, confirming {lenmempool} transactions: {mempool}".format( numblocks=numblocks, @@ -509,6 +527,21 @@ def generate_block(self, numblocks=1, wait_for_mempool=0, to_addr=None, needfeer return self.rpc.generatetoaddress(numblocks, to_addr) + def send_and_mine_block(self, addr, sats): + """Sometimes we want the txid. We assume it's the first tx for canned blocks""" + if self.canned_blocks: + self.generate_block(1) + # Find which non-coinbase txs sent to this address: return txid + for txid in self.rpc.getblock(self.rpc.getbestblockhash())['tx'][1:]: + for out in self.rpc.getrawtransaction(txid, 1)['vout']: + if out['scriptPubKey'].get('address') == addr: + return txid + assert False, f"No address {addr} in block {self.rpc.getblock(self.rpc.getbestblockhash())}" + + txid = self.rpc.sendtoaddress(addr, sats / 10**8) + self.generate_block(1) + return txid + def simple_reorg(self, height, shift=0): """ Reorganize chain by creating a fork at height=[height] and re-mine all mempool @@ -526,6 +559,7 @@ def simple_reorg(self, height, shift=0): forward to h1. 2. Set [height]=h2 and [shift]= h1-h2 """ + assert self.canned_blocks is None hashes = [] fee_delta = 1000000 orig_len = self.rpc.getblockcount() @@ -559,7 +593,7 @@ def save_blocks(self): """Bundle up blocks into an array, for restore_blocks""" blocks = [] numblocks = self.rpc.getblockcount() - for bnum in range(1, numblocks): + for bnum in range(1, numblocks + 1): bhash = self.rpc.getblockhash(bnum) blocks.append(self.rpc.getblock(bhash, False)) return blocks @@ -892,6 +926,10 @@ def __init__(self, node_id, lightning_dir, bitcoind, executor, valgrind, may_fai self.daemon.opts['grpc-port'] = grpc_port self.grpc_port = grpc_port or 9736 + # If bitcoind is serving canned blocks, it will keep initialblockdownload on true! + if self.bitcoin.canned_blocks is not None: + self.daemon.opts['dev-ignore-ibd'] = True + def _create_rpc(self, jsonschemas): """Prepares anything related to the RPC. """ @@ -987,10 +1025,12 @@ def openchannel(self, remote_node, capacity=FUNDAMOUNT, addrtype="bech32", confi def fundwallet(self, sats, addrtype="bech32", mine_block=True): addr = self.rpc.newaddr(addrtype)[addrtype] - txid = self.bitcoin.rpc.sendtoaddress(addr, sats / 10**8) if mine_block: - self.bitcoin.generate_block(1) + txid = self.bitcoin.send_and_mine_block(addr, sats) self.daemon.wait_for_log('Owning output .* txid {} CONFIRMED'.format(txid)) + else: + txid = self.bitcoin.rpc.sendtoaddress(addr, sats / 10**8) + return addr, txid def fundbalancedchannel(self, remote_node, total_capacity=FUNDAMOUNT, announce=True): @@ -1118,8 +1158,7 @@ def has_funds_on_addr(addr): # We should not have funds on that address yet, we just generated it. assert not has_funds_on_addr(addr) - self.bitcoin.rpc.sendtoaddress(addr, (amount + 1000000) / 10**8) - self.bitcoin.generate_block(1) + self.bitcoin.send_and_mine_block(addr, amount + 1000000) # Now we should. wait_for(lambda: has_funds_on_addr(addr)) @@ -1134,10 +1173,18 @@ def has_funds_on_addr(addr): **kwargs) blockid = self.bitcoin.generate_block(1, wait_for_mempool=res['txid'])[0] + txnum = None for i, txid in enumerate(self.bitcoin.rpc.getblock(blockid)['tx']): if txid == res['txid']: txnum = i + if txnum is None: + print(f"mempool = {self.bitcoin.rpc.getrawmempool()}") + print(f"txs:") + for txid in self.bitcoin.rpc.getblock(blockid)['tx'][1:]: + print(f"txid {txid}: {self.bitcoin.rpc.getrawtransaction(txid)} {self.bitcoin.rpc.getrawtransaction(txid, 1)}") + assert False, f"txid {res['txid']} not found" + scid = "{}x{}x{}".format(self.bitcoin.rpc.getblockcount(), txnum, res['outnum']) From 16e83b4301330e34135e42b3b69e46cc01afdcc7 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Oct 2025 14:03:52 +1030 Subject: [PATCH 26/37] autogenerate-rpc-examples.py: disable entropy for generation. Signed-off-by: Rusty Russell --- contrib/pyln-testing/pyln/testing/utils.py | 5 +++++ tests/autogenerate-rpc-examples.py | 10 +++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/contrib/pyln-testing/pyln/testing/utils.py b/contrib/pyln-testing/pyln/testing/utils.py index 16595be224b1..69216d8dcf4f 100644 --- a/contrib/pyln-testing/pyln/testing/utils.py +++ b/contrib/pyln-testing/pyln/testing/utils.py @@ -828,6 +828,7 @@ def __init__(self, node_id, lightning_dir, bitcoind, executor, valgrind, may_fai valgrind_plugins=True, executable=None, bad_notifications=False, + no_entropy=False, **kwargs): self.bitcoin = bitcoind self.executor = executor @@ -839,6 +840,7 @@ def __init__(self, node_id, lightning_dir, bitcoind, executor, valgrind, may_fai self.allow_warning = allow_warning self.db = db self.lightning_dir = Path(lightning_dir) + self.no_entropy = no_entropy # Assume successful exit self.rc = 0 @@ -892,6 +894,8 @@ def __init__(self, node_id, lightning_dir, bitcoind, executor, valgrind, may_fai # Avoid test flakes cause by this option unless explicitly set. if self.cln_version >= "v24.11": self.daemon.opts.update({"autoconnect-seeker-peers": 0}) + if no_entropy: + self.daemon.env["CLN_DEV_ENTROPY_SEED"] = str(node_id) jsondir = Path(lightning_dir) / "plugin-io" jsondir.mkdir() @@ -1666,6 +1670,7 @@ def split_options(self, opts): 'allow_bad_gossip', 'start', 'gossip_store_file', + 'no_entropy', ] node_opts = {k: v for k, v in opts.items() if k in node_opt_keys} cli_opts = {k: v for k, v in opts.items() if k not in node_opt_keys} diff --git a/tests/autogenerate-rpc-examples.py b/tests/autogenerate-rpc-examples.py index 1036adbd7a55..988fd8c2a52c 100644 --- a/tests/autogenerate-rpc-examples.py +++ b/tests/autogenerate-rpc-examples.py @@ -451,6 +451,7 @@ def setup_test_nodes(node_factory, bitcoind): 'log-level': 'debug', 'broken_log': '.*', 'dev-bitcoind-poll': 3, # Default 1; increased to avoid rpc failures + 'no_entropy': True, }.copy() for i in range(6) ] @@ -1323,6 +1324,7 @@ def generate_splice_examples(node_factory, bitcoind): 'allow_bad_gossip': True, 'broken_log': '.*', 'dev-bitcoind-poll': 3, + 'no_entropy': True, }.copy() for i in range(2) ] @@ -1397,6 +1399,7 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5): 'allow_bad_gossip': True, 'broken_log': '.*', 'dev-bitcoind-poll': 3, + 'no_entropy': True, }.copy() for i in range(2) ] @@ -1447,6 +1450,7 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5): 'allow_bad_gossip': True, 'broken_log': '.*', 'dev-bitcoind-poll': 3, + 'no_entropy': True, }.copy() for i in range(2) ] @@ -1783,7 +1787,7 @@ def generate_backup_recovery_examples(node_factory, l4, l5, l6): logger.info('Backup and Recovery Start...') # New node l13 used for recover and exposesecret examples - l13 = node_factory.get_node(options={'exposesecret-passphrase': "test_exposesecret"}) + l13 = node_factory.get_node(options={'exposesecret-passphrase': "test_exposesecret"}, no_entropy=True) update_example(node=l13, method='exposesecret', params={'passphrase': 'test_exposesecret'}) update_example(node=l13, method='exposesecret', params=['test_exposesecret', 'cln2']) @@ -2105,6 +2109,10 @@ def list_missing_examples(): logger.warning(f'This test ignores {len(IGNORE_RPCS_LIST)} rpc methods: {IGNORE_RPCS_LIST}') REGENERATING_RPCS = [rpc.strip() for rpc in os.getenv("REGENERATE").split(', ')] if os.getenv("REGENERATE") else ALL_RPC_EXAMPLES list_missing_examples() + + # We make sure everyone is on predicable time + os.environ['CLN_DEV_SET_TIME'] = '1738000000' + l1, l2, l3, l4, l5, l6, c12, c23, c25 = setup_test_nodes(node_factory, bitcoind) c23_2, c23res2, c34_2, inv_l11, inv_l21, inv_l22, inv_l31, inv_l32, inv_l34 = generate_transactions_examples(l1, l2, l3, l4, l5, c25, bitcoind) rune_l21 = generate_runes_examples(l1, l2, l3) From d0ae8e3c3618d45797dd54b960814c7d22031ea8 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Oct 2025 14:04:52 +1030 Subject: [PATCH 27/37] autogenerate-rpc-examples.py: remove example mangling. We temporarily add a flake8 exception so it doesn't complain about all the now-unused variables. Signed-off-by: Rusty Russell --- Makefile | 2 +- tests/autogenerate-rpc-examples.py | 882 +---------------------------- 2 files changed, 5 insertions(+), 879 deletions(-) diff --git a/Makefile b/Makefile index 94543238b856..3eecf73b9262 100644 --- a/Makefile +++ b/Makefile @@ -559,7 +559,7 @@ check-python-flake8: @# E731 do not assign a lambda expression, use a def @# W503: line break before binary operator @# E741: ambiguous variable name - @uv run flake8 --ignore=E501,E731,E741,W503,F541,E275 --exclude $(shell echo ${PYTHON_GENERATED} | sed 's/ \+/,/g') ${PYSRC} + @uv run flake8 --ignore=E501,E731,E741,W503,F541,E275,F841 --exclude $(shell echo ${PYTHON_GENERATED} | sed 's/ \+/,/g') ${PYSRC} check-pytest-pyln-proto: PATH=$(PYLN_PATH) PYTHONPATH=$(MY_CHECK_PYTHONPATH) uv run $(PYTEST) contrib/pyln-proto/tests/ diff --git a/tests/autogenerate-rpc-examples.py b/tests/autogenerate-rpc-examples.py index 988fd8c2a52c..44bed64ce492 100644 --- a/tests/autogenerate-rpc-examples.py +++ b/tests/autogenerate-rpc-examples.py @@ -12,7 +12,6 @@ from utils import only_one, mine_funding_to_announce, sync_blockheight, wait_for, first_scid, serialize_payload_tlv, serialize_payload_final_tlv import sys import os -import re import time import pytest import unittest @@ -32,270 +31,8 @@ ALL_RPC_EXAMPLES = {} EXAMPLES_JSON = {} LOG_FILE = './tests/autogenerate-examples-status.log' -TEMP_EXAMPLES_FILE = './tests/autogenerate-examples.json' IGNORE_RPCS_LIST = ['dev-splice', 'reckless', 'sql-template'] -# Constants for replacing values in examples -NEW_VALUES_LIST = { - 'root_dir': '/root/lightning', - 'tmp_dir': '/tmp/.lightning', - 'str_1': '1', - 'num_1': 1, - 'balance_msat_1': 202050000000, - 'fees_paid_msat_1': 5020000, - 'bytes_used': 1630000, - 'bytes_max': 10485760, - 'assocdata_1': 'assocdata0' + ('01' * 27), - 'hsm_secret_cdx_1': 'cl10leetsd35kw6r5de5kueedxyesqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqluplcg0lxenqd', - 'error_message_1': 'All addresses failed: 127.0.0.1:19736: Cryptographic handshake: peer closed connection (wrong key?). ', - 'configs_3_addr2': "127.0.0.1:19735", - 'bitcoin-rpcport': 18332, - 'grpc-port': 9736, - 'blockheight_110': 110, - 'blockheight_130': 130, - 'blockheight_160': 160, - 'script_pubkey_1': 'scriptpubkey' + ('01' * 28), - 'script_pubkey_2': 'scriptpubkey' + ('02' * 28), - 'onion_1': 'onion' + ('10' * 1363), - 'onion_2': 'onion' + ('20' * 1363), - 'onion_3': 'onion' + ('30' * 1363), - 'shared_secrets_1': ['sharedsecret' + ('10' * 26), 'sharedsecret' + ('11' * 26), 'sharedsecret' + ('12' * 26)], - 'shared_secrets_2': ['sharedsecret' + ('20' * 26), 'sharedsecret' + ('21' * 26), 'sharedsecret' + ('22' * 26)], - 'invreq_id_1': 'invreqid' + ('01' * 28), - 'invreq_id_2': 'invreqid' + ('02' * 28), - 'invreq_id_l1_l22': 'invreqid' + ('03' * 28), - 'invoice_1': 'lni1qqg0qe' + ('01' * 415), - 'invoice_2': 'lni1qqg0qe' + ('02' * 415), - 'invoice_3': 'lni1qqg0qe' + ('03' * 415), - 'funding_txid_1': 'fundingtxid001' + ('01' * 25), - 'funding_txid_2': 'fundingtxid002' + ('02' * 25), - 'signature_1': 'dcde30c4bb50bed221009d' + ('01' * 60), - 'signature_2': 'dcdepay30c4bb50bed209d' + ('02' * 60), - 'destination_1': 'bcrt1p52' + ('01' * 28), - 'destination_2': 'bcrt1qcqqv' + ('01' * 17), - 'destination_3': 'bcrt1phtprcvhz' + ('02' * 25), - 'destination_4': 'bcrt1p00' + ('02' * 28), - 'destination_5': 'bcrt1p00' + ('03' * 28), - 'destination_6': 'bcrt1p00' + ('04' * 28), - 'destination_7': 'bcrt1p338x' + ('07' * 28), - 'funding_serial_1': 17725655605188010000, - 'funding_serial_2': 17725655605188020000, - 'funding_serial_3': 17725655605188030000, - 'funding_serial_4': 17725655605188040000, - 'funding_serial_5': 17725655605188050000, - 'l1_id': 'nodeid' + ('01' * 30), - 'l2_id': 'nodeid' + ('02' * 30), - 'l3_id': 'nodeid' + ('03' * 30), - 'l4_id': 'nodeid' + ('04' * 30), - 'l5_id': 'nodeid' + ('05' * 30), - 'l10_id': 'nodeid' + ('10' * 30), - 'l12_id': 'nodeid' + ('12' * 30), - 'l1_alias': 'JUNIORBEAM', - 'l2_alias': 'SILENTARTIST', - 'l3_alias': 'HOPPINGFIRE', - 'l4_alias': 'JUNIORFELONY', - 'l2_port': 19735, - 'l3_port': 19736, - 'l1_addr': '127.0.0.1:19734', - 'l2_addr': '127.0.0.1:19735', - 'l3_addr': '127.0.0.1:19736', - 'l4_addr': '127.0.0.1:19737', - 'l5_addr': '127.0.0.1:19738', - 'l6_addr': '127.0.0.1:19739', - 'c12': '109x1x1', - 'c23': '111x1x1', - 'c23_2': '123x1x1', - 'c25': '115x1x1', - 'c34': '125x1x1', - 'c34_2': '130x1x1', - 'c35_tx': '020000000000305fundchanneltx' + ('35000' * 99), - 'c41_tx': '020000000000401fundchanneltx' + ('41000' * 99), - 'upgrade_tx': '02000000000101upgd' + ('20000' * 34), - 'close1_tx': '02000000000101cls0' + ('01' * 200), - 'close2_tx': '02000000000101cls1' + ('02' * 200), - 'send_tx_1': '02000000000101sendpt' + ('64000' * 100), - 'send_tx_2': '02000000000102sendpt' + ('65000' * 100), - 'tx_55': '02000000000155multiw' + ('55000' * 100), - 'tx_56': '02000000000155multiw' + ('56000' * 100), - 'tx_61': '02000000000155multiw' + ('61000' * 100), - 'tx_91': '020000000001wthdrw' + ('91000' * 100), - 'tx_92': '020000000002wthdrw' + ('92000' * 100), - 'unsigned_tx_1': '0200000000' + ('0002' * 66), - 'unsigned_tx_3': '0200000000' + ('0006' * 66), - 'unsigned_tx_4': '0200000000' + ('0008' * 66), - 'multi_tx_1': '02000000000101multif' + ('50000' * 100), - 'multi_tx_2': '02000000000102multif' + ('60000' * 100), - 'ocs_tx_1': '02000000000101sgpsbt' + ('11000' * 100), - 'ocs_tx_2': '02000000000101sgpsbt' + ('12000' * 100), - 'txsend_tx_1': '02000000000101txsend' + ('00011' * 100), - 'txsend_tx_2': '02000000000101txsend' + ('00022' * 100), - 'c12_txid': 'channeltxid' + ('120000' * 9), - 'c23_txid': 'channeltxid' + ('230000' * 9), - 'c23_2_txid': 'channeltxid' + ('230200' * 9), - 'c34_txid': 'channeltxid' + ('340000' * 9), - 'c34_2_txid': 'channeltxid' + ('340200' * 9), - 'c35_txid': 'channeltxid' + ('350000' * 9), - 'c41_txid': 'channeltxid' + ('410000' * 9), - 'c1112_txid': 'channeltxid' + ('111200' * 9), - 'upgrade_txid': 'txidupgrade' + ('200000' * 9), - 'close1_txid': 'txid' + ('01' * 30), - 'close2_txid': 'txid' + ('02' * 30), - 'send_txid_1': 'txid' + ('64000' * 11), - 'send_txid_2': 'txid' + ('65000' * 11), - 'txid_55': 'txid' + ('55000' * 11), - 'txid_56': 'txid' + ('56000' * 11), - 'txid_61': 'txid' + ('61000' * 11), - 'withdraw_txid_l21': 'txidwithdraw21' + ('91000' * 10), - 'withdraw_txid_l22': 'txidwithdraw22' + ('92000' * 10), - 'txprep_txid_1': 'txidtxprep0001' + ('00001' * 10), - 'txprep_txid_2': 'txidtxprep0002' + ('00002' * 10), - 'txprep_txid_3': 'txidtxprep0003' + ('00003' * 10), - 'txprep_txid_4': 'txidtxprep0004' + ('00004' * 10), - 'multi_txid_1': 'channeltxid010' + ('50000' * 10), - 'multi_txid_2': 'channeltxid020' + ('60000' * 10), - 'utxo_1': 'utxo' + ('01' * 30), - 'ocs_txid_1': 'txidocsigned10' + ('11000' * 10), - 'ocs_txid_2': 'txidocsigned10' + ('12000' * 10), - 'c12_channel_id': 'channelid0' + ('120000' * 9), - 'c23_channel_id': 'channelid0' + ('230000' * 9), - 'c23_2_channel_id': 'channelid0' + ('230200' * 9), - 'c25_channel_id': 'channelid0' + ('250000' * 9), - 'c34_channel_id': 'channelid0' + ('340000' * 9), - 'c34_2_channel_id': 'channelid0' + ('340200' * 9), - 'c35_channel_id': 'channelid0' + ('350000' * 9), - 'c41_channel_id': 'channelid0' + ('410000' * 9), - 'c78_channel_id': 'channelid0' + ('780000' * 9), - 'c1112_channel_id': 'channelid0' + ('111200' * 9), - 'c910_channel_id_1': 'channelid' + ('09101' * 11), - 'c910_channel_id_2': 'channelid' + ('09102' * 11), - 'mf_channel_id_1': 'channelid' + ('11000' * 11), - 'mf_channel_id_2': 'channelid' + ('12000' * 11), - 'mf_channel_id_3': 'channelid' + ('13000' * 11), - 'mf_channel_id_4': 'channelid' + ('15200' * 11), - 'mf_channel_id_5': 'channelid' + ('12400' * 11), - 'time_at_800': 1738000000, - 'time_at_850': 1738500000, - 'time_at_900': 1739000000, - 'bolt11_l11': 'lnbcrt100n1pnt2' + ('bolt11invl010100000000' * 10), - 'bolt11_l12': 'lnbcrt100n1pnt2' + ('bolt11invl010200000000' * 10), - 'bolt11_l13': 'lnbcrt100n1pnt2' + ('bolt11invl010300000000' * 10), - 'bolt11_l14': 'lnbcrt100n1pnt2' + ('bolt11invl010400000000' * 10), - 'bolt11_l21': 'lnbcrt100n1pnt2' + ('bolt11invl020100000000' * 10), - 'bolt11_l22': 'lnbcrt100n1pnt2' + ('bolt11invl020200000000' * 10), - 'bolt11_l23': 'lnbcrt100n1pnt2' + ('bolt11invl020300000000' * 10), - 'bolt11_l24': 'lnbcrt100n1pnt2' + ('bolt11invl020400000000' * 10), - 'bolt11_l25': 'lnbcrt100n1pnt2' + ('bolt11invl020500000000' * 10), - 'bolt11_l26': 'lnbcrt100n1pnt2' + ('bolt11invl020600000000' * 10), - 'bolt11_l27': 'lnbcrt100n1pnt2' + ('bolt11invl020700000000' * 10), - 'bolt11_l31': 'lnbcrt100n1pnt2' + ('bolt11invl030100000000' * 10), - 'bolt11_l33': 'lnbcrt100n1pnt2' + ('bolt11invl030300000000' * 10), - 'bolt11_l34': 'lnbcrt100n1pnt2' + ('bolt11invl030400000000' * 10), - 'bolt11_l41': 'lnbcrt100n1pnt2' + ('bolt11invl040100000000' * 10), - 'bolt11_l66': 'lnbcrt100n1pnt2' + ('bolt11invl060600000000' * 10), - 'bolt11_l67': 'lnbcrt100n1pnt2' + ('bolt11invl060700000000' * 10), - 'bolt11_wt_1': 'lnbcrt222n1pnt3005720bolt11wtinv' + ('01' * 160), - 'bolt11_wt_2': 'lnbcrt222n1pnt3005720bolt11wtinv' + ('02' * 160), - 'bolt11_di_1': 'lnbcrt222n1pnt3005720bolt11300' + ('01' * 170), - 'bolt11_di_2': 'lnbcrt222n1pnt3005720bolt11300' + ('01' * 170), - 'bolt11_dp_1': 'lnbcrt222n1pnt3005720bolt11400' + ('01' * 170), - 'bolt12_l21': 'lno1qgsq000bolt' + ('21000' * 24), - 'bolt12_l22': 'lno1qgsq000bolt' + ('22000' * 24), - 'bolt12_l23': 'lno1qgsq000bolt' + ('23000' * 24), - 'bolt12_l24': 'lno1qgsq000bolt' + ('24000' * 24), - 'bolt12_si_1': 'lno1qgsq000bolt' + ('si100' * 24), - 'offerid_l21': 'offeridl' + ('2100000' * 8), - 'offerid_l22': 'offeridl' + ('2200000' * 8), - 'offerid_l23': 'offeridl' + ('2300000' * 8), - 'payment_hash_l11': 'paymenthashinvl0' + ('1100' * 12), - 'payment_hash_l21': 'paymenthashinvl0' + ('2100' * 12), - 'payment_hash_l22': 'paymenthashinvl0' + ('2200' * 12), - 'payment_hash_l27': 'paymenthashinvl0' + ('2700' * 12), - 'payment_hash_l31': 'paymenthashinvl0' + ('3100' * 12), - 'payment_hash_l24': 'paymenthashinvl0' + ('2400' * 12), - 'payment_hash_l25': 'paymenthashinvl0' + ('2500' * 12), - 'payment_hash_l26': 'paymenthashinvl0' + ('2600' * 12), - 'payment_hash_l33': 'paymenthashinvl0' + ('3300' * 12), - 'payment_hash_l34': 'paymenthashinvl0' + ('3400' * 12), - 'payment_hash_key_1': 'paymenthashkey01' + ('k101' * 12), - 'payment_hash_key_2': 'paymenthashkey02' + ('k201' * 12), - 'payment_hash_key_3': 'paymenthashkey03' + ('k301' * 12), - 'payment_hash_cmd_pay_1': 'paymenthashcmdpy' + ('cp10' * 12), - 'payment_hash_si_1': 'paymenthashsdinv' + ('si10' * 12), - 'payment_hash_wspc_1': 'paymenthashwtspct2' + ('01' * 23), - 'payment_hash_winv_1': 'paymenthashwaitinv' + ('01' * 23), - 'payment_hash_winv_2': 'paymenthashwaitinv' + ('02' * 23), - 'payment_hash_di_1': 'paymenthashdelinv1' + ('01' * 23), - 'payment_hash_di_2': 'paymenthashdelinv2' + ('02' * 23), - 'payment_hash_dp_1': 'paymenthashdelpay1' + ('01' * 23), - 'payment_hash_dp_2': 'paymenthashdelpay2' + ('02' * 23), - 'payment_hash_dp_3': 'paymenthashdelpay3' + ('03' * 23), - 'payment_preimage_1': 'paymentpreimage1' + ('01' * 24), - 'payment_preimage_2': 'paymentpreimage2' + ('02' * 24), - 'payment_preimage_3': 'paymentpreimage3' + ('03' * 24), - 'payment_preimage_ep_1': 'paymentpreimagep' + ('01' * 24), - 'payment_preimage_ep_2': 'paymentpreimagep' + ('02' * 24), - 'payments_preimage_i_1': 'paymentpreimagei' + ('01' * 24), - 'payments_preimage_w_1': 'paymentpreimagew' + ('01' * 24), - 'payment_preimage_cmd_1': 'paymentpreimagec' + ('01' * 24), - 'payment_preimage_r_1': 'paymentpreimager' + ('01' * 24), - 'payment_preimage_r_2': 'paymentpreimager' + ('02' * 24), - 'payment_preimage_wi_1': 'paymentpreimagewaitinv0' + ('01' * 21), - 'payment_preimage_wi_2': 'paymentpreimagewaitinv0' + ('02' * 21), - 'payment_preimage_di_1': 'paymentpreimagedelinv01' + ('01' * 21), - 'payment_preimage_dp_1': 'paymentpreimgdp1' + ('01' * 24), - 'payment_preimage_xp_1': 'paymentpreimgxp1' + ('01' * 24), - 'payment_preimage_xp_2': 'paymentpreimgxp2' + ('02' * 24), - 'payment_preimage_io_1': 'paymentpreimgio1' + ('03' * 24), - 'payment_secret_l11': 'paymentsecretinvl00' + ('11000' * 9), - 'payment_secret_l22': 'paymentsecretinvl00' + ('22000' * 9), - 'payment_secret_l31': 'paymentsecretinvl00' + ('31000' * 9), - 'init_psbt_1': 'cHNidP8BAgpsbt10' + ('01' * 52), - 'init_psbt_2': 'cHNidP8BAgpsbt20' + ('02' * 84), - 'init_psbt_3': 'cHNidP8BAgpsbt30' + ('03' * 92), - 'upgrade_psbt_1': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('110000' * 100), - 'psbt_1': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('711000' * 120), - 'psbt_2': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('712000' * 120), - 'psbt_3': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('713000' * 120), - 'psbt_4': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('714000' * 120), - 'psbt_5_1': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('715100' * 120), - 'psbt_5_2': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('715200' * 120), - 'psbt_6_1': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('716100' * 120), - 'psbt_6_2': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('716200' * 120), - 'psbt_7': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('911000' * 40), - 'psbt_8': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('922000' * 40), - 'psbt_9': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('101000' * 40), - 'psbt_10': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('201000' * 40), - 'psbt_12': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('401000' * 40), - 'psbt_13': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('310000' * 40), - 'psbt_14': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('410000' * 40), - 'psbt_15': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('510000' * 40), - 'psbt_16': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('520000' * 40), - 'psbt_17': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('610000' * 40), - 'psbt_18': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('710000' * 40), - 'psbt_19': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('810000' * 40), - 'psbt_20': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('910000' * 40), - 'psbt_21': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('101000' * 40), - 'psbt_22': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('111000' * 40), - 'psbt_23': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('121000' * 40), - 'psbt_24': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('011100' * 40), - 'psbt_25': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('011200' * 40), - 'psbt_26': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('022200' * 40), - 'signed_psbt_1': 'cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt' + ('718000' * 120), - 'htlc_max_msat': 18446744073709552000, - 'proof_1': '0473656e64' + ('proof00001' * 10), -} - -# Used for collecting values from responses and replace them with NEW_VALUES_LIST before updating examples in schema files -REPLACE_RESPONSE_VALUES = [ - {'data_keys': ['any'], 'original_value': re.compile(re.escape(CWD)), 'new_value': NEW_VALUES_LIST['root_dir']}, - {'data_keys': ['any'], 'original_value': re.compile(r'/tmp/ltests-[^/]+/test_generate_examples_[^/]+/lightning-[^/]+'), 'new_value': NEW_VALUES_LIST['tmp_dir']}, - {'data_keys': ['outnum', 'funding_outnum', 'vout'], 'original_value': '0', 'new_value': NEW_VALUES_LIST['str_1']}, - {'data_keys': ['outnum', 'funding_outnum', 'vout'], 'original_value': 0, 'new_value': NEW_VALUES_LIST['num_1']}, - {'data_keys': ['outnum', 'funding_outnum', 'vout'], 'original_value': 2, 'new_value': NEW_VALUES_LIST['num_1']}, - {'data_keys': ['outnum', 'funding_outnum', 'vout'], 'original_value': 3, 'new_value': NEW_VALUES_LIST['num_1']}, - {'data_keys': ['type'], 'original_value': 'unilateral', 'new_value': 'mutual'}, -] - if os.path.exists(LOG_FILE): open(LOG_FILE, 'w').close() logger = logging.getLogger(__name__) @@ -305,63 +42,9 @@ class MissingExampleError(Exception): pass -def update_list_responses(data, list_key=None, slice_upto=5, update_func=None, sort=False, sort_key=None): - """Update responses received from various list rpcs to limit the number of items in the list, sort the list and update the values in the list""" - if list_key is not None: - if isinstance(data[list_key], list): - data[list_key] = data[list_key][0:slice_upto] - - if sort: - data[list_key] = sorted(data[list_key], key=lambda x: x[sort_key]) if sort_key is not None else {k: data[list_key][k] for k in sorted(data[list_key])} - - if update_func is not None and isinstance(data[list_key], list): - for i, item in enumerate(data[list_key]): - update_func(item, i) - return data - - -def replace_values_in_json(data, data_key): - """Replace values in JSON data with new values before saving them in the schema files""" - if isinstance(data, dict): - return {key: replace_values_in_json(value, key) for key, value in data.items()} - elif isinstance(data, list): - for replace_value in REPLACE_RESPONSE_VALUES: - if any(item == 'any' or item == data_key for item in replace_value['data_keys']) and data == replace_value['original_value']: - data = replace_value['new_value'] - return data - return [replace_values_in_json(item, 'listitem') for item in data] - elif isinstance(data, str): - for replace_value in REPLACE_RESPONSE_VALUES: - if any(item == data_key for item in replace_value['data_keys']) and data == replace_value['original_value']: - data = replace_value['new_value'] - break - elif any(item == 'any' for item in replace_value['data_keys']) and isinstance(replace_value['original_value'], str) and data == replace_value['original_value']: - data = data.replace(replace_value['original_value'], replace_value['new_value']) - break - elif replace_value['data_keys'] == ['any'] and isinstance(replace_value['original_value'], re.Pattern): - if re.match(replace_value['original_value'], data): - data = replace_value['original_value'].sub(replace_value['new_value'], data) - break - return data - elif isinstance(data, (int, float)): - for replace_value in REPLACE_RESPONSE_VALUES: - if any(item == 'any' or item == data_key for item in replace_value['data_keys']) and data == replace_value['original_value']: - data = replace_value['new_value'] - break - return data - else: - return data - - def update_examples_in_schema_files(): """Update examples in JSON schema files""" try: - # For testing - if os.path.exists(TEMP_EXAMPLES_FILE): - open(TEMP_EXAMPLES_FILE, 'w').close() - with open(TEMP_EXAMPLES_FILE, 'w+', encoding='utf-8') as file: - json.dump({'new_values_list': NEW_VALUES_LIST, 'replace_response_values': REPLACE_RESPONSE_VALUES[4:], 'examples_json': EXAMPLES_JSON}, file, indent=2, ensure_ascii=False) - updated_examples = {} for method, method_examples in EXAMPLES_JSON.items(): try: @@ -369,7 +52,7 @@ def update_examples_in_schema_files(): logger.info(f'Updating examples for {method} in file {file_path}') with open(file_path, 'r+', encoding='utf-8') as file: data = json.load(file) - updated_examples[method] = replace_values_in_json(method_examples, 'examples')['examples'] + updated_examples[method] = method_examples['examples'] data['examples'] = updated_examples[method] file.seek(0) json.dump(data, file, indent=2, ensure_ascii=False) @@ -385,12 +68,6 @@ def update_examples_in_schema_files(): logger.error(f'Error updating examples in schema files: {e}') raise - # For testing - if os.path.exists(TEMP_EXAMPLES_FILE): - open(TEMP_EXAMPLES_FILE, 'w').close() - with open(TEMP_EXAMPLES_FILE, 'w+', encoding='utf-8') as file: - json.dump({'new_values_list': NEW_VALUES_LIST, 'replace_response_values': REPLACE_RESPONSE_VALUES[4:], 'examples_json': EXAMPLES_JSON, 'updated_examples_json': updated_examples}, file, indent=2, ensure_ascii=False) - logger.info(f'Updated All Examples in Schema Files!') return None @@ -489,42 +166,6 @@ def setup_test_nodes(node_factory, bitcoind): l2.rpc.pay(l3.rpc.invoice('500000sat', 'lbl balance l2 to l3', 'description send some sats l2 to l3')['bolt11']) l2.rpc.pay(l5.rpc.invoice('500000sat', 'lbl balance l2 to l5', 'description send some sats l2 to l5')['bolt11']) l3.rpc.pay(l4.rpc.invoice('500000sat', 'lbl balance l3 to l4', 'description send some sats l3 to l4')['bolt11']) - REPLACE_RESPONSE_VALUES.extend([ - {'data_keys': ['any', 'id', 'pubkey', 'destination'], 'original_value': l1.info['id'], 'new_value': NEW_VALUES_LIST['l1_id']}, - {'data_keys': ['any', 'id', 'pubkey', 'destination'], 'original_value': l2.info['id'], 'new_value': NEW_VALUES_LIST['l2_id']}, - {'data_keys': ['any', 'id', 'pubkey', 'destination'], 'original_value': l3.info['id'], 'new_value': NEW_VALUES_LIST['l3_id']}, - {'data_keys': ['any', 'id', 'pubkey', 'destination'], 'original_value': l4.info['id'], 'new_value': NEW_VALUES_LIST['l4_id']}, - {'data_keys': ['any', 'id', 'pubkey', 'destination'], 'original_value': l5.info['id'], 'new_value': NEW_VALUES_LIST['l5_id']}, - {'data_keys': ['alias'], 'original_value': l1.info['alias'], 'new_value': NEW_VALUES_LIST['l1_alias']}, - {'data_keys': ['netaddr'], 'original_value': [f'127.0.0.1:{l1.info["binding"][0]["port"]}'], 'new_value': [NEW_VALUES_LIST['l1_addr']]}, - {'data_keys': ['alias'], 'original_value': l2.info['alias'], 'new_value': NEW_VALUES_LIST['l2_alias']}, - {'data_keys': ['port'], 'original_value': l2.info['binding'][0]['port'], 'new_value': NEW_VALUES_LIST['l2_port']}, - {'data_keys': ['netaddr'], 'original_value': [f'127.0.0.1:{l2.info["binding"][0]["port"]}'], 'new_value': [NEW_VALUES_LIST['l2_addr']]}, - {'data_keys': ['version'], 'original_value': getinfo_res2['version'], 'new_value': CLN_VERSION}, - {'data_keys': ['blockheight'], 'original_value': getinfo_res2['blockheight'], 'new_value': NEW_VALUES_LIST['blockheight_110']}, - {'data_keys': ['alias'], 'original_value': l3.info['alias'], 'new_value': NEW_VALUES_LIST['l3_alias']}, - {'data_keys': ['port'], 'original_value': l3.info['binding'][0]['port'], 'new_value': NEW_VALUES_LIST['l3_port']}, - {'data_keys': ['addr'], 'original_value': f'127.0.0.1:{l3.info["binding"][0]["port"]}', 'new_value': NEW_VALUES_LIST['l3_addr']}, - {'data_keys': ['netaddr'], 'original_value': [f'127.0.0.1:{l3.info["binding"][0]["port"]}'], 'new_value': [NEW_VALUES_LIST['l3_addr']]}, - {'data_keys': ['alias'], 'original_value': l4.info['alias'], 'new_value': NEW_VALUES_LIST['l4_alias']}, - {'data_keys': ['netaddr'], 'original_value': [f'127.0.0.1:{l4.info["binding"][0]["port"]}'], 'new_value': [NEW_VALUES_LIST['l4_addr']]}, - {'data_keys': ['any', 'scid', 'channel', 'short_channel_id', 'in_channel'], 'original_value': c12, 'new_value': NEW_VALUES_LIST['c12']}, - {'data_keys': ['netaddr'], 'original_value': [f'127.0.0.1:{l5.info["binding"][0]["port"]}'], 'new_value': [NEW_VALUES_LIST['l5_addr']]}, - {'data_keys': ['netaddr'], 'original_value': [f'127.0.0.1:{l6.info["binding"][0]["port"]}'], 'new_value': [NEW_VALUES_LIST['l6_addr']]}, - {'data_keys': ['txid', 'funding_txid'], 'original_value': c12res['txid'], 'new_value': NEW_VALUES_LIST['c12_txid']}, - {'data_keys': ['channel_id', 'account'], 'original_value': c12res['channel_id'], 'new_value': NEW_VALUES_LIST['c12_channel_id']}, - {'data_keys': ['scid', 'channel', 'short_channel_id', 'id', 'out_channel'], 'original_value': c23, 'new_value': NEW_VALUES_LIST['c23']}, - {'data_keys': ['txid'], 'original_value': c23res['txid'], 'new_value': NEW_VALUES_LIST['c23_txid']}, - {'data_keys': ['channel_id', 'account', 'origin', 'originating_account'], 'original_value': c23res['channel_id'], 'new_value': NEW_VALUES_LIST['c23_channel_id']}, - {'data_keys': ['scid', 'channel', 'short_channel_id'], 'original_value': c34, 'new_value': NEW_VALUES_LIST['c34']}, - {'data_keys': ['txid'], 'original_value': c34res['txid'], 'new_value': NEW_VALUES_LIST['c34_txid']}, - {'data_keys': ['channel_id', 'account', 'origin'], 'original_value': c34res['channel_id'], 'new_value': NEW_VALUES_LIST['c34_channel_id']}, - {'data_keys': ['scid', 'channel', 'short_channel_id', 'id'], 'original_value': c25, 'new_value': NEW_VALUES_LIST['c25']}, - {'data_keys': ['channel_id', 'account'], 'original_value': c25res['channel_id'], 'new_value': NEW_VALUES_LIST['c25_channel_id']}, - {'data_keys': ['tx'], 'original_value': upgrade_res2['tx'], 'new_value': NEW_VALUES_LIST['upgrade_tx']}, - {'data_keys': ['txid'], 'original_value': upgrade_res2['txid'], 'new_value': NEW_VALUES_LIST['upgrade_txid']}, - {'data_keys': ['initialpsbt', 'psbt', 'signed_psbt'], 'original_value': upgrade_res2['psbt'], 'new_value': NEW_VALUES_LIST['upgrade_psbt_1']}, - ]) return l1, l2, l3, l4, l5, l6, c12, c23, c25 except Exception as e: logger.error(f'Error in setting up nodes: {e}') @@ -552,13 +193,6 @@ def generate_transactions_examples(l1, l2, l3, l4, l5, c25, bitcoind): 'feeprop': 10, 'expirydelta': 9, }]] - example_routehints = [[{ - 'scid': NEW_VALUES_LIST['c23'], - 'id': NEW_VALUES_LIST['l2_id'], - 'feebase': '1msat', - 'feeprop': 10, - 'expirydelta': 9, - }]] keysend_res3 = update_example(node=l1, method='keysend', params={'destination': l3.info['id'], 'amount_msat': 10000, 'routehints': routehints}) inv_l11 = l1.rpc.invoice('10000msat', 'lbl_l11', 'l11 description') inv_l21 = l2.rpc.invoice('any', 'lbl_l21', 'l21 description') @@ -583,14 +217,11 @@ def generate_transactions_examples(l1, l2, l3, l4, l5, c25, bitcoind): inv = l4.rpc.invoice(amt, "lbl l4", "desc l4") first_hop = route[0] sendonion_hops = [] - example_hops = [] i = 1 for h, n in zip(route[:-1], route[1:]): sendonion_hops.append({'pubkey': h['id'], 'payload': serialize_payload_tlv(amt, 18 + 6, n['channel'], blockheight).hex()}) - example_hops.append({'pubkey': NEW_VALUES_LIST['l2_id'] if i == 1 else NEW_VALUES_LIST['l3_id'], 'payload': 'payload0' + ((str(i) + '0') * 13)}) i += 1 sendonion_hops.append({'pubkey': route[-1]['id'], 'payload': serialize_payload_final_tlv(amt, 18, amt, blockheight, inv['payment_secret']).hex()}) - example_hops.append({'pubkey': NEW_VALUES_LIST['l4_id'], 'payload': 'payload0' + ((str(i) + '0') * 13)}) onion_res1 = update_example(node=l1, method='createonion', params={'hops': sendonion_hops, 'assocdata': inv['payment_hash']}) onion_res2 = update_example(node=l1, method='createonion', params={'hops': sendonion_hops, 'assocdata': inv['payment_hash'], 'session_key': '41' * 32}) sendonion_res1 = update_example(node=l1, method='sendonion', params={'onion': onion_res1['onion'], 'first_hop': first_hop, 'payment_hash': inv['payment_hash']}) @@ -645,101 +276,6 @@ def generate_transactions_examples(l1, l2, l3, l4, l5, c25, bitcoind): 'partid': 1, 'groupid': 0}) bip353_result = update_example(node=l1, method='fetchbip353', params={'address': 'send.some@satsto.me'}, description=['Example of fetching BIP-353 payment details.']) - REPLACE_RESPONSE_VALUES.extend([ - {'data_keys': ['destination'], 'original_value': address_l41['bech32'], 'new_value': NEW_VALUES_LIST['destination_6']}, - {'data_keys': ['tx'], 'original_value': close_res1['tx'], 'new_value': NEW_VALUES_LIST['close1_tx']}, - {'data_keys': ['txs'], 'original_value': close_res1['txs'], 'new_value': [NEW_VALUES_LIST['close1_tx']]}, - {'data_keys': ['txid', 'spending_txid'], 'original_value': close_res1['txid'], 'new_value': NEW_VALUES_LIST['close1_txid']}, - {'data_keys': ['txids'], 'original_value': close_res1['txids'], 'new_value': [NEW_VALUES_LIST['close1_txid']]}, - {'data_keys': ['tx'], 'original_value': close_res2['tx'], 'new_value': NEW_VALUES_LIST['close2_tx']}, - {'data_keys': ['txs'], 'original_value': close_res2['txs'], 'new_value': [NEW_VALUES_LIST['close2_tx']]}, - {'data_keys': ['txid'], 'original_value': close_res2['txid'], 'new_value': NEW_VALUES_LIST['close2_txid']}, - {'data_keys': ['txids'], 'original_value': close_res2['txids'], 'new_value': [NEW_VALUES_LIST['close2_txid']]}, - {'data_keys': ['any', 'bolt11'], 'original_value': createinv_res1['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_l21']}, - {'data_keys': ['payment_hash'], 'original_value': createinv_res1['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_l21']}, - {'data_keys': ['expires_at'], 'original_value': createinv_res1['expires_at'], 'new_value': NEW_VALUES_LIST['time_at_900']}, - {'data_keys': ['payment_hash'], 'original_value': inv_l31['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_l31']}, - {'data_keys': ['any', 'bolt11'], 'original_value': inv_l31['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_l31']}, - {'data_keys': ['payment_secret'], 'original_value': inv_l31['payment_secret'], 'new_value': NEW_VALUES_LIST['payment_secret_l31']}, - {'data_keys': ['expires_at'], 'original_value': inv_l31['expires_at'], 'new_value': NEW_VALUES_LIST['time_at_900']}, - {'data_keys': ['payment_hash'], 'original_value': inv_l32['payment_hash'], 'new_value': 'paymenthashinvl0' + ('3200' * 12)}, - {'data_keys': ['any', 'bolt11'], 'original_value': inv_l32['bolt11'], 'new_value': 'lnbcrt100n1pnt2' + ('bolt11invl032000000000' * 10)}, - {'data_keys': ['payment_secret'], 'original_value': inv_l32['payment_secret'], 'new_value': 'paymentsecretinvl000' + ('3200' * 11)}, - {'data_keys': ['expires_at'], 'original_value': inv_l32['expires_at'], 'new_value': NEW_VALUES_LIST['time_at_900']}, - {'data_keys': ['payment_hash'], 'original_value': inv_l11['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_l11']}, - {'data_keys': ['any', 'bolt11'], 'original_value': inv_l11['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_l11']}, - {'data_keys': ['payment_secret'], 'original_value': inv_l11['payment_secret'], 'new_value': NEW_VALUES_LIST['payment_secret_l11']}, - {'data_keys': ['expires_at'], 'original_value': inv_l11['expires_at'], 'new_value': NEW_VALUES_LIST['time_at_900']}, - {'data_keys': ['payment_hash'], 'original_value': inv_l21['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_l21']}, - {'data_keys': ['any', 'bolt11'], 'original_value': inv_l21['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_l21']}, - {'data_keys': ['payment_hash'], 'original_value': inv_l22['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_l22']}, - {'data_keys': ['any', 'bolt11'], 'original_value': inv_l22['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_l22']}, - {'data_keys': ['payment_secret'], 'original_value': inv_l22['payment_secret'], 'new_value': NEW_VALUES_LIST['payment_secret_l22']}, - {'data_keys': ['payment_hash'], 'original_value': inv_l33['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_l33']}, - {'data_keys': ['any', 'bolt11'], 'original_value': inv_l33['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_l33']}, - {'data_keys': ['payment_hash'], 'original_value': inv_l34['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_l34']}, - {'data_keys': ['any', 'bolt11'], 'original_value': inv_l34['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_l34']}, - {'data_keys': ['any', 'bolt11'], 'original_value': inv_l41['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_l41']}, - {'data_keys': ['invstring'], 'original_value': inv_l14['invoice'], 'new_value': NEW_VALUES_LIST['invoice_3']}, - {'data_keys': ['hops'], 'original_value': sendonion_hops, 'new_value': example_hops}, - {'data_keys': ['any', 'assocdata'], 'original_value': inv['payment_hash'], 'new_value': NEW_VALUES_LIST['assocdata_1']}, - {'data_keys': ['onion'], 'original_value': onion_res1['onion'], 'new_value': NEW_VALUES_LIST['onion_1']}, - {'data_keys': ['shared_secrets'], 'original_value': onion_res1['shared_secrets'], 'new_value': NEW_VALUES_LIST['shared_secrets_1']}, - {'data_keys': ['any', 'onion'], 'original_value': onion_res2['onion'], 'new_value': NEW_VALUES_LIST['onion_2']}, - {'data_keys': ['shared_secrets'], 'original_value': onion_res2['shared_secrets'], 'new_value': NEW_VALUES_LIST['shared_secrets_2']}, - {'data_keys': ['onion'], 'original_value': onion_res3['onion'], 'new_value': NEW_VALUES_LIST['onion_3']}, - {'data_keys': ['any', 'bolt11'], 'original_value': inv_l27['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_l27']}, - {'data_keys': ['payment_hash'], 'original_value': inv_l27['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_l27']}, - {'data_keys': ['payment_preimage'], 'original_value': injectpaymentonion_res1['payment_preimage'], 'new_value': NEW_VALUES_LIST['payment_preimage_io_1']}, - {'data_keys': ['created_at'], 'original_value': injectpaymentonion_res1['created_at'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['completed_at'], 'original_value': injectpaymentonion_res1['completed_at'], 'new_value': NEW_VALUES_LIST['time_at_900']}, - {'data_keys': ['id', 'scid', 'channel', 'short_channel_id', 'out_channel'], 'original_value': c23_2, 'new_value': NEW_VALUES_LIST['c23_2']}, - {'data_keys': ['txid'], 'original_value': c23res2['txid'], 'new_value': NEW_VALUES_LIST['c23_2_txid']}, - {'data_keys': ['any', 'channel_id', 'account'], 'original_value': c23res2['channel_id'], 'new_value': NEW_VALUES_LIST['c23_2_channel_id']}, - {'data_keys': ['scid', 'channel', 'short_channel_id'], 'original_value': c34_2, 'new_value': NEW_VALUES_LIST['c34_2']}, - {'data_keys': ['txid'], 'original_value': c34res2['txid'], 'new_value': NEW_VALUES_LIST['c34_2_txid']}, - {'data_keys': ['channel_id', 'account'], 'original_value': c34res2['channel_id'], 'new_value': NEW_VALUES_LIST['c34_2_channel_id']}, - {'data_keys': ['any', 'bolt11'], 'original_value': inv_l12['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_l12']}, - {'data_keys': ['payment_hash'], 'original_value': inv_l24['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_l24']}, - {'data_keys': ['any', 'bolt11'], 'original_value': inv_l24['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_l24']}, - {'data_keys': ['expires_at'], 'original_value': inv_l24['expires_at'], 'new_value': NEW_VALUES_LIST['time_at_900']}, - {'data_keys': ['payment_hash'], 'original_value': inv_l25['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_l25']}, - {'data_keys': ['any', 'bolt11'], 'original_value': inv_l25['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_l25']}, - {'data_keys': ['payment_hash'], 'original_value': inv_l26['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_l26']}, - {'data_keys': ['any', 'bolt11'], 'original_value': inv_l26['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_l26']}, - {'data_keys': ['any', 'invstring', 'bolt11'], 'original_value': inv_l13['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_l13']}, - {'data_keys': ['invreq_id'], 'original_value': inv_req['invreq_id'], 'new_value': NEW_VALUES_LIST['invreq_id_1']}, - {'data_keys': ['any', 'bolt12', 'invreq'], 'original_value': inv_req['bolt12'], 'new_value': NEW_VALUES_LIST['bolt12_l21']}, - {'data_keys': ['payment_hash'], 'original_value': keysend_res1['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_key_1']}, - {'data_keys': ['created_at'], 'original_value': keysend_res1['created_at'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['payment_preimage'], 'original_value': keysend_res1['payment_preimage'], 'new_value': NEW_VALUES_LIST['payment_preimage_1']}, - {'data_keys': ['payment_hash'], 'original_value': keysend_res2['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_key_2']}, - {'data_keys': ['created_at'], 'original_value': keysend_res2['created_at'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['payment_preimage'], 'original_value': keysend_res2['payment_preimage'], 'new_value': NEW_VALUES_LIST['payment_preimage_2']}, - {'data_keys': ['payment_hash'], 'original_value': keysend_res3['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_key_3']}, - {'data_keys': ['created_at'], 'original_value': keysend_res3['created_at'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['payment_preimage'], 'original_value': keysend_res3['payment_preimage'], 'new_value': NEW_VALUES_LIST['payment_preimage_3']}, - {'data_keys': ['routehints'], 'original_value': routehints, 'new_value': example_routehints}, - {'data_keys': ['created_at'], 'original_value': pay_res1['created_at'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['payment_preimage'], 'original_value': pay_res1['payment_preimage'], 'new_value': NEW_VALUES_LIST['payment_preimage_ep_1']}, - {'data_keys': ['created_at'], 'original_value': pay_res2['created_at'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['payment_preimage'], 'original_value': pay_res2['payment_preimage'], 'new_value': NEW_VALUES_LIST['payment_preimage_ep_2']}, - {'data_keys': ['any', 'bolt12', 'invreq'], 'original_value': sendinvoice_res1['bolt12'], 'new_value': NEW_VALUES_LIST['bolt12_si_1']}, - {'data_keys': ['payment_hash'], 'original_value': sendinvoice_res1['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_si_1']}, - {'data_keys': ['payment_preimage'], 'original_value': sendinvoice_res1['payment_preimage'], 'new_value': NEW_VALUES_LIST['payments_preimage_i_1']}, - {'data_keys': ['paid_at'], 'original_value': sendinvoice_res1['paid_at'], 'new_value': NEW_VALUES_LIST['time_at_850']}, - {'data_keys': ['expires_at'], 'original_value': sendinvoice_res1['expires_at'], 'new_value': NEW_VALUES_LIST['time_at_900']}, - {'data_keys': ['created_at'], 'original_value': sendonion_res1['created_at'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['created_at'], 'original_value': sendpay_res1['created_at'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['any', 'bolt11'], 'original_value': signinv_res1['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_l66']}, - {'data_keys': ['any', 'bolt11'], 'original_value': signinv_res2['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_l67']}, - {'data_keys': ['payment_preimage'], 'original_value': waitsendpay_res1['payment_preimage'], 'new_value': NEW_VALUES_LIST['payments_preimage_w_1']}, - {'data_keys': ['created_at'], 'original_value': waitsendpay_res1['created_at'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['completed_at'], 'original_value': waitsendpay_res1['completed_at'], 'new_value': NEW_VALUES_LIST['time_at_900']}, - {'data_keys': ['payment_preimage'], 'original_value': xpay_res1['payment_preimage'], 'new_value': NEW_VALUES_LIST['payment_preimage_xp_1']}, - {'data_keys': ['payment_preimage'], 'original_value': xpay_res2['payment_preimage'], 'new_value': NEW_VALUES_LIST['payment_preimage_xp_2']}, - {'data_keys': ['proof'], 'original_value': bip353_result['proof'], 'new_value': NEW_VALUES_LIST['proof_1']}, - ]) logger.info('Simple Transactions Done!') return c23_2, c23res2, c34_2, inv_l11, inv_l21, inv_l22, inv_l31, inv_l32, inv_l34 except Exception as e: @@ -795,16 +331,6 @@ def generate_runes_examples(l1, l2, l3): update_example(node=l2, method='blacklistrune', params={'start': 3, 'relist': True}, description=['This undoes the blacklisting of rune 3 only']) - REPLACE_RESPONSE_VALUES.extend([ - {'data_keys': ['last_used'], 'original_value': showrunes_res1['runes'][0]['last_used'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['last_used'], 'original_value': showrunes_res2['runes'][1]['last_used'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['last_used'], 'original_value': showrunes_res2['runes'][2]['last_used'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['any', 'bolt11'], 'original_value': inv_l23['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_l23']}, - {'data_keys': ['p2tr'], 'original_value': commando_res1['p2tr'], 'new_value': NEW_VALUES_LIST['destination_7']}, - {'data_keys': ['created_at'], 'original_value': commando_res3['created_at'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['payment_hash'], 'original_value': commando_res3['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_cmd_pay_1']}, - {'data_keys': ['payment_preimage'], 'original_value': commando_res3['payment_preimage'], 'new_value': NEW_VALUES_LIST['payment_preimage_cmd_1']}, - ]) logger.info('Runes Done!') return rune_l21 except Exception as e: @@ -874,99 +400,13 @@ def generate_bookkeeper_examples(l2, l3, c23_2_chan_id): bkprlistaccountevents_res1 = l3.rpc.bkpr_listaccountevents(c23_2_chan_id) bkprlistaccountevents_res1['events'] = [next((event for event in bkprlistaccountevents_res1['events'] if event['tag'] == 'channel_open'), None)] - bkprlistaccountevents_res1 = update_list_responses(bkprlistaccountevents_res1, list_key='events') update_example(node=l3, method='bkpr-listaccountevents', params=[c23_2_chan_id], response=bkprlistaccountevents_res1) bkprlistaccountevents_res2 = l3.rpc.bkpr_listaccountevents() - external_event = None - wallet_event = None - channel_event = None - for bkprevent in bkprlistaccountevents_res2['events']: - event_seleted = None - if wallet_event is None and bkprevent['account'] == 'wallet': - bkprevent['blockheight'] = 141 - wallet_event = bkprevent - event_seleted = '01' - elif external_event is None and bkprevent['account'] == 'external' and bkprevent['origin'] == next((value['original_value'] for value in REPLACE_RESPONSE_VALUES if value['new_value'] == NEW_VALUES_LIST['c34_channel_id']), None): - bkprevent['blockheight'] = 142 - external_event = bkprevent - event_seleted = '02' - elif channel_event is None and bkprevent['account'] not in ['external', 'wallet']: - bkprevent['blockheight'] = 143 - channel_event = bkprevent - event_seleted = '03' - if event_seleted is not None: - bkpr_new_values = [ - {'data_keys': ['timestamp'], 'original_value': bkprevent['timestamp'], 'new_value': NEW_VALUES_LIST['time_at_850'] + (int(event_seleted) * 10000)}, - ] - if 'debit_msat' in bkprevent and bkprevent['debit_msat'] > 0: - bkpr_new_values.extend([ - {'data_keys': ['debit_msat'], 'original_value': bkprevent['debit_msat'], 'new_value': 200000000000}, - ]) - if 'txid' in bkprevent: - bkpr_new_values.extend([ - {'data_keys': ['txid'], 'original_value': bkprevent['txid'], 'new_value': 'txidbk' + (event_seleted * 29)}, - ]) - if 'outpoint' in bkprevent: - bkpr_new_values.extend([ - {'data_keys': ['outpoint'], 'original_value': bkprevent['outpoint'], 'new_value': 'txidbk' + (event_seleted * 29) + ':1'}, - ]) - if 'payment_id' in bkprevent: - bkpr_new_values.extend([ - {'data_keys': ['payment_id'], 'original_value': bkprevent['payment_id'], 'new_value': 'paymentidbk0' + (event_seleted * 26)}, - ]) - REPLACE_RESPONSE_VALUES.extend(bkpr_new_values) - if wallet_event and external_event and channel_event: - break - bkprlistaccountevents_res2['events'] = [event for event in [external_event, wallet_event, channel_event] if event is not None] update_example(node=l3, method='bkpr-listaccountevents', params={}, response=bkprlistaccountevents_res2) bkprlistincome_res1 = l3.rpc.bkpr_listincome(consolidate_fees=False) - bkprlistincome_res1 = update_list_responses(bkprlistincome_res1, list_key='income_events', slice_upto=4, update_func=lambda x, i: x.update({ - **({'timestamp': NEW_VALUES_LIST['time_at_850'] + (i * 10000)} if 'timestamp' in x else {}), - **({'payment_id': 'paymentid000' + (f"{i:02}" * 26)} if 'payment_id' in x else {}), - **({'outpoint': 'txidbk' + (f"{i:02}" * 29) + ':1'} if 'outpoint' in x else {})}), sort=True, sort_key='tag') update_example(node=l3, method='bkpr-listincome', params={'consolidate_fees': False}, response=bkprlistincome_res1) bkprlistincome_res2 = l3.rpc.bkpr_listincome() - deposit_income = None - invoice_income = None - fee_income = None - for bkprincome in bkprlistincome_res2['income_events']: - income_seleted = None - if deposit_income is None and bkprincome['tag'] == 'deposit': - deposit_income = bkprincome - income_seleted = 1 - elif invoice_income is None and bkprincome['tag'] == 'invoice': - invoice_income = bkprincome - income_seleted = 2 - elif fee_income is None and bkprincome['tag'] == 'onchain_fee' and bkprincome['txid'] == next((value['original_value'] for value in REPLACE_RESPONSE_VALUES if value['new_value'] == NEW_VALUES_LIST['c34_2_txid']), None): - fee_income = bkprincome - income_seleted = 3 - if income_seleted is not None: - REPLACE_RESPONSE_VALUES.extend([ - {'data_keys': ['timestamp'], 'original_value': bkprincome['timestamp'], 'new_value': NEW_VALUES_LIST['time_at_850'] + (income_seleted * 10000)}, - ]) - if 'debit_msat' in bkprincome and bkprincome['debit_msat'] > 0: - REPLACE_RESPONSE_VALUES.extend([ - {'data_keys': ['debit_msat'], 'original_value': bkprincome['debit_msat'], 'new_value': 6960000}, - ]) - if 'payment_id' in bkprincome: - REPLACE_RESPONSE_VALUES.extend([ - {'data_keys': ['payment_id'], 'original_value': bkprincome['payment_id'], 'new_value': 'paymentid000' + (f"{income_seleted:02}" * 26)}, - ]) - if 'outpoint' in bkprincome: - REPLACE_RESPONSE_VALUES.extend([ - {'data_keys': ['outpoint'], 'original_value': bkprincome['outpoint'], 'new_value': 'txidbk' + (f"{income_seleted:02}" * 29) + ':1'}, - ]) - if deposit_income and invoice_income and fee_income: - break - bkprlistincome_res2['income_events'] = [income for income in [deposit_income, invoice_income, fee_income] if income is not None] update_example(node=l3, method='bkpr-listincome', params={}, response=bkprlistincome_res2) - REPLACE_RESPONSE_VALUES.extend([ - {'data_keys': ['balance_msat'], 'original_value': bkprlistbal_res1['accounts'][0]['balances'][0]['balance_msat'], 'new_value': NEW_VALUES_LIST['balance_msat_1']}, - {'data_keys': ['fees_paid_msat'], 'original_value': bkprinspect_res1['txs'][0]['fees_paid_msat'], 'new_value': NEW_VALUES_LIST['fees_paid_msat_1']}, - {'data_keys': ['timestamp'], 'original_value': bkprlistaccountevents_res1['events'][0]['timestamp'], 'new_value': NEW_VALUES_LIST['time_at_850']}, - {'data_keys': ['outpoint'], 'original_value': bkprlistaccountevents_res1['events'][0]['outpoint'], 'new_value': 'txidbk' + ('01' * 29) + ':1'}, - {'data_keys': ['blockheight'], 'original_value': editdescriptionbyoutpoint_res1['updated'][0]['blockheight'], 'new_value': NEW_VALUES_LIST['blockheight_110']}, - ]) logger.info('Bookkeeper Done!') except Exception as e: logger.error(f'Error in generating bookkeeper examples: {e}') @@ -1008,22 +448,6 @@ def generate_offers_renepay_examples(l1, l2, inv_l21, inv_l34): renepay_res1 = update_example(node=l1, method='renepay', params={'invstring': inv_l21['bolt11'], 'amount_msat': 400000}) renepay_res2 = update_example(node=l2, method='renepay', params={'invstring': inv_l34['bolt11']}) update_example(node=l1, method='renepaystatus', params={'invstring': inv_l21['bolt11']}) - REPLACE_RESPONSE_VALUES.extend([ - {'data_keys': ['offer_id'], 'original_value': offer_l21['offer_id'], 'new_value': NEW_VALUES_LIST['offerid_l21']}, - {'data_keys': ['any', 'bolt12', 'invreq'], 'original_value': offer_l21['bolt12'], 'new_value': NEW_VALUES_LIST['bolt12_l21']}, - {'data_keys': ['offer_id'], 'original_value': offer_l22['offer_id'], 'new_value': NEW_VALUES_LIST['offerid_l22']}, - {'data_keys': ['any', 'bolt12', 'invreq'], 'original_value': offer_l22['bolt12'], 'new_value': NEW_VALUES_LIST['bolt12_l22']}, - {'data_keys': ['any', 'offer_id'], 'original_value': offer_l23['offer_id'], 'new_value': NEW_VALUES_LIST['offerid_l23']}, - {'data_keys': ['any', 'bolt12', 'invreq'], 'original_value': offer_l23['bolt12'], 'new_value': NEW_VALUES_LIST['bolt12_l23']}, - {'data_keys': ['invreq_id'], 'original_value': inv_req_l1_l22['invreq_id'], 'new_value': NEW_VALUES_LIST['invreq_id_2']}, - {'data_keys': ['any', 'bolt12', 'invreq'], 'original_value': disableinv_res1['bolt12'], 'new_value': NEW_VALUES_LIST['bolt12_l24']}, - {'data_keys': ['invoice'], 'original_value': fetchinv_res1['invoice'], 'new_value': NEW_VALUES_LIST['invoice_1']}, - {'data_keys': ['invoice'], 'original_value': fetchinv_res2['invoice'], 'new_value': NEW_VALUES_LIST['invoice_2']}, - {'data_keys': ['created_at'], 'original_value': renepay_res1['created_at'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['payment_preimage'], 'original_value': renepay_res1['payment_preimage'], 'new_value': NEW_VALUES_LIST['payment_preimage_r_1']}, - {'data_keys': ['created_at'], 'original_value': renepay_res2['created_at'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['payment_preimage'], 'original_value': renepay_res2['payment_preimage'], 'new_value': NEW_VALUES_LIST['payment_preimage_r_2']}, - ]) logger.info('Offers and Renepay Done!') return offer_l23, inv_req_l1_l22 except Exception as e: @@ -1063,16 +487,9 @@ def direction(src, dst): update_example(node=l1, method='askrene-reserve', params={'path': [{'short_channel_id_dir': scid12dir, 'amount_msat': 1250_000_000_000}, {'short_channel_id_dir': scid23dir, 'amount_msat': 1250_000_000_000}]}) time.sleep(2) askrene_listreservations_res1 = l1.rpc.askrene_listreservations() - askrene_listreservations_res1 = update_list_responses(askrene_listreservations_res1, list_key='reservations', slice_upto=5, update_func=lambda x, i: REPLACE_RESPONSE_VALUES.extend([{'data_keys': ['command_id'], 'original_value': x['command_id'], 'new_value': f'\"-c:askrene-reserve#6{(i + 1) * 2}/cln:askrene-reserve#12{(i + 1) * 2}\"'}]), sort=True, sort_key='amount_msat') update_example(node=l1, method='askrene-listreservations', params={}, response=askrene_listreservations_res1) update_example(node=l1, method='askrene-unreserve', params={'path': [{'short_channel_id_dir': scid12dir, 'amount_msat': 1250_000}, {'short_channel_id_dir': scid23dir, 'amount_msat': 1250_001}]}) update_example(node=l1, method='askrene-unreserve', params={'path': [{'short_channel_id_dir': scid12dir, 'amount_msat': 1250_000_000_000}, {'short_channel_id_dir': scid23dir, 'amount_msat': 1250_000_000_000}]}) - REPLACE_RESPONSE_VALUES.extend([ - {'data_keys': ['any', 'short_channel_id_dir'], 'original_value': scid12dir, 'new_value': f"{NEW_VALUES_LIST['c12']}/{direction12}"}, - {'data_keys': ['short_channel_id_dir'], 'original_value': scid23dir, 'new_value': f"{NEW_VALUES_LIST['c23_2']}/{direction23}"}, - {'data_keys': ['cutoff'], 'original_value': ts1 + 1, 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['timestamp'], 'original_value': askrene_inform_channel_res1['constraints'][0]['timestamp'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - ]) logger.info('Askrene Done!') except Exception as e: logger.error(f'Error in generating askrene examples: {e}') @@ -1142,23 +559,6 @@ def generate_wait_examples(l1, l2, bitcoind, executor): sync_blockheight(bitcoind, [l2]) wbhres = wbh.result(5) update_example(node=l2, method='waitblockheight', params={'blockheight': curr_blockheight + 1, 'timeout': 600}, response=wbhres, description=[f'This will return after the next block is mined because requested waitblockheight is one block higher than the current blockheight.']) - REPLACE_RESPONSE_VALUES.extend([ - {'data_keys': ['payment_hash'], 'original_value': wspc_res['details']['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_wspc_1']}, - {'data_keys': ['paid_at'], 'original_value': waires['paid_at'], 'new_value': NEW_VALUES_LIST['time_at_850']}, - {'data_keys': ['expires_at'], 'original_value': waires['expires_at'], 'new_value': NEW_VALUES_LIST['time_at_900']}, - {'data_keys': ['paid_at'], 'original_value': wai_pay_index_res['paid_at'], 'new_value': NEW_VALUES_LIST['time_at_850']}, - {'data_keys': ['expires_at'], 'original_value': wai_pay_index_res['expires_at'], 'new_value': NEW_VALUES_LIST['time_at_900']}, - {'data_keys': ['bolt11'], 'original_value': wi2res['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_wt_1']}, - {'data_keys': ['payment_hash'], 'original_value': wi2res['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_winv_1']}, - {'data_keys': ['payment_preimage'], 'original_value': wi2res['payment_preimage'], 'new_value': NEW_VALUES_LIST['payment_preimage_wi_1']}, - {'data_keys': ['paid_at'], 'original_value': wi2res['paid_at'], 'new_value': NEW_VALUES_LIST['time_at_850']}, - {'data_keys': ['expires_at'], 'original_value': wi2res['expires_at'], 'new_value': NEW_VALUES_LIST['time_at_900']}, - {'data_keys': ['bolt11'], 'original_value': wi3res['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_wt_2']}, - {'data_keys': ['payment_hash'], 'original_value': wi3res['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_winv_2']}, - {'data_keys': ['payment_preimage'], 'original_value': wi3res['payment_preimage'], 'new_value': NEW_VALUES_LIST['payment_preimage_wi_2']}, - {'data_keys': ['paid_at'], 'original_value': wi3res['paid_at'], 'new_value': NEW_VALUES_LIST['time_at_850']}, - {'data_keys': ['expires_at'], 'original_value': wi3res['expires_at'], 'new_value': NEW_VALUES_LIST['time_at_900']}, - ]) logger.info('Wait Done!') except Exception as e: logger.error(f'Error in generating wait examples: {e}') @@ -1203,7 +603,6 @@ def generate_utils_examples(l1, l2, l3, l4, l5, l6, c23_2, c34_2, inv_l11, inv_l funds_l2 = l2.rpc.listfunds() utxos = [f"{funds_l2['outputs'][2]['txid']}:{funds_l2['outputs'][2]['output']}"] - example_utxos = ['utxo' + ('02' * 30) + ':1'] withdraw_l22 = update_example(node=l2, method='withdraw', params={'destination': address_l22['p2tr'], 'satoshi': 'all', 'feerate': '20000perkb', 'minconf': 0, 'utxos': utxos}) bitcoind.generate_block(4, wait_for_mempool=[withdraw_l22['txid']]) multiwithdraw_res1 = update_example(node=l2, method='multiwithdraw', params={'outputs': [{l1.rpc.newaddr()['bech32']: '2222000msat'}, {l1.rpc.newaddr()['bech32']: '3333000msat'}]}) @@ -1258,53 +657,13 @@ def generate_utils_examples(l1, l2, l3, l4, l5, l6, c23_2, c34_2, inv_l11, inv_l update_example(node=l1, method='sql', params={'query': 'SELECT id FROM peers'}, description=['A simple peers selection query:']) update_example(node=l1, method='sql', params=[f"SELECT label, description, status FROM invoices WHERE label='label inv_l12'"], description=["A statement containing `=` needs `-o` in shell:"]) sql_res3 = l1.rpc.sql(f"SELECT nodeid FROM nodes WHERE nodeid != x'{l3.info['id']}'") - update_example(node=l1, method='sql', params=[f"SELECT nodeid FROM nodes WHERE nodeid != x'{NEW_VALUES_LIST['l3_id']}'"], description=['If you want to get specific nodeid values from the nodes table:'], response=sql_res3) + update_example(node=l1, method='sql', params=[f"SELECT nodeid FROM nodes WHERE nodeid != x'{l3.info['id']}'"], description=['If you want to get specific nodeid values from the nodes table:'], response=sql_res3) sql_res4 = l1.rpc.sql(f"SELECT nodeid FROM nodes WHERE nodeid IN (x'{l1.info['id']}', x'{l3.info['id']}')") - update_example(node=l1, method='sql', params=[f"SELECT nodeid FROM nodes WHERE nodeid IN (x'{NEW_VALUES_LIST['l1_id']}', x'{NEW_VALUES_LIST['l3_id']}')"], description=["If you want to compare a BLOB column, `x'hex'` or `X'hex'` are needed:"], response=sql_res4) + update_example(node=l1, method='sql', params=[f"SELECT nodeid FROM nodes WHERE nodeid IN (x'{l1.info['id']}', x'{l3.info['id']}')"], description=["If you want to compare a BLOB column, `x'hex'` or `X'hex'` are needed:"], response=sql_res4) update_example(node=l1, method='sql', params=['SELECT peer_id, to_us_msat, total_msat, peerchannels_status.status FROM peerchannels INNER JOIN peerchannels_status ON peerchannels_status.row = peerchannels.rowid'], description=['Related tables are usually referenced by JOIN:']) update_example(node=l2, method='sql', params=['SELECT COUNT(*) FROM forwards'], description=["Simple function usage, in this case COUNT. Strings inside arrays need \", and ' to protect them from the shell:"]) update_example(node=l1, method='sql', params=['SELECT * from peerchannels_features']) example_log = getlog_res1['log'] - for i, log_entry in enumerate(example_log): - if 'num_skipped' in log_entry: - log_entry['num_skipped'] = 144 + i - if 'time' in log_entry: - log_entry['time'] = f"{70.8 + i}00000000" - if 'node_id' in log_entry: - log_entry['node_id'] = 'nodeid' + ('01' * 30) - if log_entry.get('log', '').startswith('No peer channel with'): - log_entry['log'] = 'No peer channel with scid=228x1x1' - REPLACE_RESPONSE_VALUES.extend([ - {'data_keys': ['any', 'psbt', 'initialpsbt'], 'original_value': psbtoutput_res1['psbt'], 'new_value': NEW_VALUES_LIST['init_psbt_1']}, - {'data_keys': ['any', 'psbt', 'initialpsbt'], 'original_value': psbtoutput_res2['psbt'], 'new_value': NEW_VALUES_LIST['init_psbt_2']}, - {'data_keys': ['any', 'psbt', 'initialpsbt'], 'original_value': psbtoutput_res3['psbt'], 'new_value': NEW_VALUES_LIST['init_psbt_3']}, - {'data_keys': ['destination'], 'original_value': dest, 'new_value': NEW_VALUES_LIST['destination_1']}, - {'data_keys': ['created_at'], 'original_value': decode_res2['created_at'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['signature'], 'original_value': decode_res2['signature'], 'new_value': NEW_VALUES_LIST['signature_1']}, - {'data_keys': ['short_channel_id'], 'original_value': decode_res2['routes'][0][0]['short_channel_id'], 'new_value': NEW_VALUES_LIST['c23']}, - {'data_keys': ['created_at'], 'original_value': decodepay_res1['created_at'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['signature'], 'original_value': decodepay_res1['signature'], 'new_value': NEW_VALUES_LIST['signature_2']}, - {'data_keys': ['tx'], 'original_value': multiwithdraw_res1['tx'], 'new_value': NEW_VALUES_LIST['tx_55']}, - {'data_keys': ['txid'], 'original_value': multiwithdraw_res1['txid'], 'new_value': NEW_VALUES_LIST['txid_55']}, - {'data_keys': ['tx'], 'original_value': multiwithdraw_res2['tx'], 'new_value': NEW_VALUES_LIST['tx_56']}, - {'data_keys': ['txid'], 'original_value': multiwithdraw_res2['txid'], 'new_value': NEW_VALUES_LIST['txid_56']}, - {'data_keys': ['psbt'], 'original_value': signed_psbt, 'new_value': NEW_VALUES_LIST['psbt_1']}, - {'data_keys': ['tx', 'hash'], 'original_value': sendpsbt_res1['tx'], 'new_value': NEW_VALUES_LIST['tx_61']}, - {'data_keys': ['txid'], 'original_value': sendpsbt_res1['txid'], 'new_value': NEW_VALUES_LIST['txid_61']}, - {'data_keys': ['destination'], 'original_value': address_l21['bech32'], 'new_value': NEW_VALUES_LIST['destination_2']}, - {'data_keys': ['destination'], 'original_value': address_l22['p2tr'], 'new_value': NEW_VALUES_LIST['destination_3']}, - {'data_keys': ['utxos'], 'original_value': utxos, 'new_value': example_utxos}, - {'data_keys': ['tx'], 'original_value': withdraw_l21['tx'], 'new_value': NEW_VALUES_LIST['tx_91']}, - {'data_keys': ['txid'], 'original_value': withdraw_l21['txid'], 'new_value': NEW_VALUES_LIST['withdraw_txid_l21']}, - {'data_keys': ['psbt'], 'original_value': withdraw_l21['psbt'], 'new_value': NEW_VALUES_LIST['psbt_7']}, - {'data_keys': ['tx'], 'original_value': withdraw_l22['tx'], 'new_value': NEW_VALUES_LIST['tx_92']}, - {'data_keys': ['txid'], 'original_value': withdraw_l22['txid'], 'new_value': NEW_VALUES_LIST['withdraw_txid_l22']}, - {'data_keys': ['psbt'], 'original_value': withdraw_l22['psbt'], 'new_value': NEW_VALUES_LIST['psbt_8']}, - {'data_keys': ['created_at'], 'original_value': getlog_res1['created_at'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['bytes_used'], 'original_value': getlog_res1['bytes_used'], 'new_value': NEW_VALUES_LIST['bytes_used']}, - {'data_keys': ['bytes_max'], 'original_value': getlog_res1['bytes_max'], 'new_value': NEW_VALUES_LIST['bytes_max']}, - {'data_keys': ['log'], 'original_value': getlog_res1['log'], 'new_value': example_log}, - ]) logger.info('General Utils Done!') return address_l22 except Exception as e: @@ -1362,24 +721,6 @@ def generate_splice_examples(node_factory, bitcoind): spsigned_res2 = update_example(node=l7, method='splice_signed', params={'channel_id': chan_id_78, 'psbt': spupdate2_res2['psbt']}) update_example(node=l7, method='stop', params={}) - REPLACE_RESPONSE_VALUES.extend([ - {'data_keys': ['any', 'channel_id', 'account'], 'original_value': chan_id_78, 'new_value': NEW_VALUES_LIST['c78_channel_id']}, - {'data_keys': ['any', 'psbt'], 'original_value': spinit_res1['psbt'], 'new_value': NEW_VALUES_LIST['psbt_1']}, - {'data_keys': ['any', 'psbt'], 'original_value': spinit_res2['psbt'], 'new_value': NEW_VALUES_LIST['psbt_2']}, - {'data_keys': ['any', 'initialpsbt', 'psbt'], 'original_value': funds_result_1['psbt'], 'new_value': NEW_VALUES_LIST['psbt_3']}, - {'data_keys': ['any', 'initialpsbt', 'psbt'], 'original_value': funds_result_2['psbt'], 'new_value': NEW_VALUES_LIST['psbt_4']}, - {'data_keys': ['psbt'], 'original_value': spupdate2_res1['psbt'], 'new_value': NEW_VALUES_LIST['psbt_5_2']}, - {'data_keys': ['tx'], 'original_value': spsigned_res1['tx'], 'new_value': NEW_VALUES_LIST['send_tx_1']}, - {'data_keys': ['txid'], 'original_value': spsigned_res1['txid'], 'new_value': NEW_VALUES_LIST['send_txid_1']}, - {'data_keys': ['psbt'], 'original_value': spsigned_res1['psbt'], 'new_value': NEW_VALUES_LIST['psbt_1']}, - {'data_keys': ['tx'], 'original_value': spsigned_res2['tx'], 'new_value': NEW_VALUES_LIST['send_tx_2']}, - {'data_keys': ['txid'], 'original_value': spsigned_res2['txid'], 'new_value': NEW_VALUES_LIST['send_txid_2']}, - {'data_keys': ['psbt'], 'original_value': spsigned_res2['psbt'], 'new_value': NEW_VALUES_LIST['psbt_2']}, - {'data_keys': ['psbt'], 'original_value': signpsbt_res1['signed_psbt'], 'new_value': NEW_VALUES_LIST['signed_psbt_1']}, - {'data_keys': ['psbt'], 'original_value': spupdate1_res1['psbt'], 'new_value': NEW_VALUES_LIST['psbt_1']}, - {'data_keys': ['any', 'psbt'], 'original_value': spupdate1_res2['psbt'], 'new_value': NEW_VALUES_LIST['psbt_2']}, - {'data_keys': ['psbt'], 'original_value': spupdate2_res2['psbt'], 'new_value': NEW_VALUES_LIST['psbt_2']}, - ]) logger.info('Splice Done!') except Exception as e: logger.error(f'Error in generating splicing examples: {e}') @@ -1463,9 +804,8 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5): vins = bitcoind.rpc.decoderawtransaction(c1112res['tx'])['vin'] assert(only_one(vins)) prev_utxos = ["{}:{}".format(vins[0]['txid'], vins[0]['vout'])] - example_utxos = ['utxo' + ('01' * 30) + ':1'] - l11.daemon.wait_for_log(' to DUALOPEND_AWAITING_LOCKIN') + l1.daemon.wait_for_log(' to DUALOPEND_AWAITING_LOCKIN') chan = only_one(l11.rpc.listpeerchannels(l12.info['id'])['channels']) rate = int(chan['feerate']['perkw']) next_feerate = '{}perkw'.format(rate * 4) @@ -1613,77 +953,6 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5): # Close newly funded channels to bring the setup back to initial state for channel in multifund_res2['channel_ids']: l1.rpc.close(channel['channel_id']) - REPLACE_RESPONSE_VALUES.extend([ - {'data_keys': ['any', 'id', 'pubkey', 'destination'], 'original_value': l10.info['id'], 'new_value': NEW_VALUES_LIST['l10_id']}, - {'data_keys': ['any', 'id', 'pubkey', 'destination'], 'original_value': l12.info['id'], 'new_value': NEW_VALUES_LIST['l12_id']}, - {'data_keys': ['any', 'txid'], 'original_value': tx_prep_1['txid'], 'new_value': NEW_VALUES_LIST['txprep_txid_1']}, - {'data_keys': ['initialpsbt', 'psbt', 'signed_psbt'], 'original_value': tx_prep_1['psbt'], 'new_value': NEW_VALUES_LIST['psbt_9']}, - {'data_keys': ['unsigned_tx'], 'original_value': tx_prep_2['unsigned_tx'], 'new_value': NEW_VALUES_LIST['unsigned_tx_1']}, - {'data_keys': ['any', 'initialpsbt', 'psbt', 'signed_psbt'], 'original_value': tx_prep_2['psbt'], 'new_value': NEW_VALUES_LIST['psbt_10']}, - {'data_keys': ['any', 'txid'], 'original_value': tx_prep_2['txid'], 'new_value': NEW_VALUES_LIST['txprep_txid_2']}, - {'data_keys': ['any', 'txid'], 'original_value': tx_prep_3['txid'], 'new_value': NEW_VALUES_LIST['txprep_txid_3']}, - {'data_keys': ['txid'], 'original_value': tx_prep_4['txid'], 'new_value': NEW_VALUES_LIST['txprep_txid_4']}, - {'data_keys': ['initialpsbt', 'psbt', 'signed_psbt'], 'original_value': tx_prep_4['psbt'], 'new_value': NEW_VALUES_LIST['psbt_12']}, - {'data_keys': ['channel_id', 'account'], 'original_value': fcc_res1['channel_id'], 'new_value': NEW_VALUES_LIST['c910_channel_id_1']}, - {'data_keys': ['channel_id', 'account'], 'original_value': fcc_res2['channel_id'], 'new_value': NEW_VALUES_LIST['c910_channel_id_2']}, - {'data_keys': ['txid'], 'original_value': c1112res['txid'], 'new_value': NEW_VALUES_LIST['c1112_txid']}, - {'data_keys': ['channel_id', 'account'], 'original_value': c1112res['channel_id'], 'new_value': NEW_VALUES_LIST['c1112_channel_id']}, - {'data_keys': ['tx'], 'original_value': c35res['tx'], 'new_value': NEW_VALUES_LIST['c35_tx']}, - {'data_keys': ['txid'], 'original_value': c35res['txid'], 'new_value': NEW_VALUES_LIST['c35_txid']}, - {'data_keys': ['channel_id', 'account'], 'original_value': c35res['channel_id'], 'new_value': NEW_VALUES_LIST['c35_channel_id']}, - {'data_keys': ['tx'], 'original_value': c41res['tx'], 'new_value': NEW_VALUES_LIST['c41_tx']}, - {'data_keys': ['txid', 'funding_txid'], 'original_value': c41res['txid'], 'new_value': NEW_VALUES_LIST['c41_txid']}, - {'data_keys': ['channel_id', 'account'], 'original_value': c41res['channel_id'], 'new_value': NEW_VALUES_LIST['c41_channel_id']}, - {'data_keys': ['destinations'], 'original_value': destinations_1, 'new_value': example_destinations_1}, - {'data_keys': ['channel_id', 'account'], 'original_value': multifund_res1['channel_ids'][0]['channel_id'], 'new_value': NEW_VALUES_LIST['mf_channel_id_1']}, - {'data_keys': ['channel_id', 'account'], 'original_value': multifund_res1['channel_ids'][1]['channel_id'], 'new_value': NEW_VALUES_LIST['mf_channel_id_2']}, - {'data_keys': ['channel_id', 'account'], 'original_value': multifund_res1['channel_ids'][2]['channel_id'], 'new_value': NEW_VALUES_LIST['mf_channel_id_3']}, - {'data_keys': ['tx'], 'original_value': multifund_res1['tx'], 'new_value': NEW_VALUES_LIST['multi_tx_1']}, - {'data_keys': ['txid', 'funding_txid'], 'original_value': multifund_res1['txid'], 'new_value': NEW_VALUES_LIST['multi_txid_1']}, - {'data_keys': ['destinations'], 'original_value': destinations_2, 'new_value': example_destinations_2}, - {'data_keys': ['channel_id', 'account'], 'original_value': multifund_res2['channel_ids'][0]['channel_id'], 'new_value': NEW_VALUES_LIST['mf_channel_id_4']}, - {'data_keys': ['tx'], 'original_value': multifund_res2['tx'], 'new_value': NEW_VALUES_LIST['multi_tx_2']}, - {'data_keys': ['txid'], 'original_value': multifund_res2['txid'], 'new_value': NEW_VALUES_LIST['multi_txid_2']}, - {'data_keys': ['message'], 'original_value': multifund_res2['failed'][0]['error']['message'], 'new_value': NEW_VALUES_LIST['error_message_1']}, - {'data_keys': ['utxos'], 'original_value': [utxo], 'new_value': [NEW_VALUES_LIST['c35_txid'] + ':1']}, - {'data_keys': ['any', 'funding_address'], 'original_value': fund_start_res1['funding_address'], 'new_value': NEW_VALUES_LIST['destination_4']}, - {'data_keys': ['any', 'outputs'], 'original_value': outputs_1, 'new_value': example_outputs_1}, - {'data_keys': ['scriptpubkey'], 'original_value': fund_start_res1['scriptpubkey'], 'new_value': NEW_VALUES_LIST['script_pubkey_1']}, - {'data_keys': ['any', 'funding_address'], 'original_value': fund_start_res2['funding_address'], 'new_value': NEW_VALUES_LIST['destination_5']}, - {'data_keys': ['any', 'outputs'], 'original_value': outputs_2, 'new_value': example_outputs_2}, - {'data_keys': ['scriptpubkey'], 'original_value': fund_start_res2['scriptpubkey'], 'new_value': NEW_VALUES_LIST['script_pubkey_2']}, - {'data_keys': ['initialpsbt', 'psbt'], 'original_value': psbt_init_res1['psbt'], 'new_value': NEW_VALUES_LIST['psbt_13']}, - {'data_keys': ['any', 'initialpsbt', 'psbt'], 'original_value': psbt_init_res2['psbt'], 'new_value': NEW_VALUES_LIST['psbt_14']}, - {'data_keys': ['any', 'txid'], 'original_value': initpsbt_1['reservations'][0]['txid'], 'new_value': NEW_VALUES_LIST['utxo_1']}, - {'data_keys': ['any', 'initialpsbt', 'psbt'], 'original_value': initpsbt_1['psbt'], 'new_value': NEW_VALUES_LIST['psbt_15']}, - {'data_keys': ['any', 'initialpsbt', 'psbt'], 'original_value': initpsbt_2['psbt'], 'new_value': NEW_VALUES_LIST['psbt_16']}, - {'data_keys': ['any', 'txid'], 'original_value': initpsbt_2['reservations'][0]['txid'], 'new_value': NEW_VALUES_LIST['utxo_1']}, - {'data_keys': ['initialpsbt', 'psbt', 'signed_psbt'], 'original_value': openchannelinit_res1['psbt'], 'new_value': NEW_VALUES_LIST['psbt_17']}, - {'data_keys': ['funding_serial'], 'original_value': openchannelinit_res1['funding_serial'], 'new_value': NEW_VALUES_LIST['funding_serial_1']}, - {'data_keys': ['initialpsbt', 'psbt', 'signed_psbt'], 'original_value': openchannelinit_res2['psbt'], 'new_value': NEW_VALUES_LIST['psbt_18']}, - {'data_keys': ['funding_serial'], 'original_value': openchannelinit_res2['funding_serial'], 'new_value': NEW_VALUES_LIST['funding_serial_2']}, - {'data_keys': ['initialpsbt', 'psbt', 'signed_psbt'], 'original_value': openchannelbump_res1['psbt'], 'new_value': NEW_VALUES_LIST['psbt_19']}, - {'data_keys': ['initialpsbt', 'psbt', 'signed_psbt'], 'original_value': openchannelbump_res2['psbt'], 'new_value': NEW_VALUES_LIST['psbt_20']}, - {'data_keys': ['any', 'initialpsbt', 'psbt', 'signed_psbt'], 'original_value': openchannelbump_res3['psbt'], 'new_value': NEW_VALUES_LIST['psbt_21']}, - {'data_keys': ['funding_serial'], 'original_value': openchannelbump_res1['funding_serial'], 'new_value': NEW_VALUES_LIST['funding_serial_3']}, - {'data_keys': ['funding_serial'], 'original_value': openchannelbump_res2['funding_serial'], 'new_value': NEW_VALUES_LIST['funding_serial_4']}, - {'data_keys': ['funding_serial'], 'original_value': openchannelbump_res3['funding_serial'], 'new_value': NEW_VALUES_LIST['funding_serial_5']}, - {'data_keys': ['signed_psbt'], 'original_value': signed_psbt_1['signed_psbt'], 'new_value': NEW_VALUES_LIST['psbt_22']}, - {'data_keys': ['tx'], 'original_value': openchannelsigned_res1['tx'], 'new_value': NEW_VALUES_LIST['ocs_tx_1']}, - {'data_keys': ['txid'], 'original_value': openchannelsigned_res1['txid'], 'new_value': NEW_VALUES_LIST['ocs_txid_1']}, - {'data_keys': ['any', 'signed_psbt'], 'original_value': signed_psbt_2['signed_psbt'], 'new_value': NEW_VALUES_LIST['psbt_23']}, - {'data_keys': ['tx'], 'original_value': openchannelsigned_res2['tx'], 'new_value': NEW_VALUES_LIST['ocs_tx_2']}, - {'data_keys': ['txid'], 'original_value': openchannelsigned_res2['txid'], 'new_value': NEW_VALUES_LIST['ocs_txid_2']}, - {'data_keys': ['psbt'], 'original_value': psbt_1, 'new_value': NEW_VALUES_LIST['psbt_24']}, - {'data_keys': ['psbt'], 'original_value': psbt_2, 'new_value': NEW_VALUES_LIST['psbt_25']}, - {'data_keys': ['any'], 'original_value': prev_utxos, 'new_value': example_utxos}, - {'data_keys': ['unsigned_tx'], 'original_value': txdiscard_res1['unsigned_tx'], 'new_value': NEW_VALUES_LIST['unsigned_tx_3']}, - {'data_keys': ['unsigned_tx'], 'original_value': txdiscard_res2['unsigned_tx'], 'new_value': NEW_VALUES_LIST['unsigned_tx_4']}, - {'data_keys': ['tx'], 'original_value': txsend_res1['tx'], 'new_value': NEW_VALUES_LIST['txsend_tx_1']}, - {'data_keys': ['psbt'], 'original_value': txsend_res1['psbt'], 'new_value': NEW_VALUES_LIST['psbt_24']}, - {'data_keys': ['tx'], 'original_value': txsend_res2['tx'], 'new_value': NEW_VALUES_LIST['txsend_tx_2']}, - {'data_keys': ['psbt'], 'original_value': txsend_res2['psbt'], 'new_value': NEW_VALUES_LIST['psbt_26']}, - ]) l1.rpc.disconnect(l3.info['id'], True) l1.rpc.disconnect(l4.info['id'], True) l1.rpc.disconnect(l5.info['id'], True) @@ -1752,29 +1021,6 @@ def generate_autoclean_delete_examples(l1, l2, l3, l4, l5, c12, c23): update_example(node=l2, method='autoclean-once', params=['succeededpays', 1]) update_example(node=l2, method='autoclean-status', params={'subsystem': 'expiredinvoices'}) update_example(node=l2, method='autoclean-status', params={}) - REPLACE_RESPONSE_VALUES.extend([ - {'data_keys': ['any', 'bolt11'], 'original_value': delinv_res1['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_di_1']}, - {'data_keys': ['payment_hash'], 'original_value': delinv_res1['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_di_1']}, - {'data_keys': ['expires_at'], 'original_value': delinv_res1['expires_at'], 'new_value': NEW_VALUES_LIST['time_at_900']}, - {'data_keys': ['any', 'bolt11'], 'original_value': delinv_res2['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_di_2']}, - {'data_keys': ['payment_hash'], 'original_value': delinv_res2['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_di_2']}, - {'data_keys': ['paid_at'], 'original_value': delinv_res2['paid_at'], 'new_value': NEW_VALUES_LIST['time_at_850']}, - {'data_keys': ['expires_at'], 'original_value': delinv_res2['expires_at'], 'new_value': NEW_VALUES_LIST['time_at_900']}, - {'data_keys': ['payment_preimage'], 'original_value': delinv_res2['payment_preimage'], 'new_value': NEW_VALUES_LIST['payment_preimage_di_1']}, - {'data_keys': ['payment_hash'], 'original_value': delpay_res1['payments'][0]['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_dp_1']}, - {'data_keys': ['payment_preimage'], 'original_value': delpay_res1['payments'][0]['payment_preimage'], 'new_value': NEW_VALUES_LIST['payment_preimage_dp_1']}, - {'data_keys': ['any', 'bolt11'], 'original_value': delpay_res1['payments'][0]['bolt11'], 'new_value': NEW_VALUES_LIST['bolt11_dp_1']}, - {'data_keys': ['created_at'], 'original_value': delpay_res1['payments'][0]['created_at'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['completed_at'], 'original_value': delpay_res1['payments'][0]['completed_at'], 'new_value': NEW_VALUES_LIST['time_at_850']}, - {'data_keys': ['any', 'payment_hash'], 'original_value': delpay_res2['payments'][0]['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_dp_2']}, - {'data_keys': ['created_at'], 'original_value': delpay_res2['payments'][0]['created_at'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['completed_at'], 'original_value': delpay_res2['payments'][0]['completed_at'], 'new_value': NEW_VALUES_LIST['time_at_850']}, - {'data_keys': ['payment_hash'], 'original_value': delpay_res3['payments'][0]['payment_hash'], 'new_value': NEW_VALUES_LIST['payment_hash_dp_3']}, - {'data_keys': ['created_at'], 'original_value': delpay_res3['payments'][0]['created_at'], 'new_value': NEW_VALUES_LIST['time_at_800']}, - {'data_keys': ['completed_at'], 'original_value': delpay_res3['payments'][0]['completed_at'], 'new_value': NEW_VALUES_LIST['time_at_850']}, - {'data_keys': ['funding_txid'], 'original_value': dfc_res1['funding_txid'], 'new_value': NEW_VALUES_LIST['funding_txid_1']}, - {'data_keys': ['funding_txid'], 'original_value': dfc_res2['funding_txid'], 'new_value': NEW_VALUES_LIST['funding_txid_2']}, - ]) logger.info('Auto-clean and Delete Done!') except Exception as e: logger.error(f'Error in generating autoclean and delete examples: {e}') @@ -1807,14 +1053,6 @@ def generate_backup_recovery_examples(node_factory, l4, l5, l6): recoverchannel_res1 = l4.rpc.recoverchannel(backup_l4['scb']) recoverchannel_res1['stubs'].sort() update_example(node=l4, method='recoverchannel', params={'scb': backup_l4['scb']}, response=recoverchannel_res1) - example_scb = [ - '0000000000000001' + NEW_VALUES_LIST['c34_channel_id'] + NEW_VALUES_LIST['l3_id'] + '00017f000001' + ('0340' * 23) + '0003401000', - '0000000000000002' + NEW_VALUES_LIST['c34_2_channel_id'] + NEW_VALUES_LIST['l3_id'] + '00017f000001' + ('0342' * 23) + '0003401000', - '0000000000000003' + NEW_VALUES_LIST['c41_channel_id'] + NEW_VALUES_LIST['l1_id'] + '00017f000001' + ('0410' * 23) + '0003401000', - '0000000000000004' + NEW_VALUES_LIST['c12_channel_id'] + NEW_VALUES_LIST['l1_id'] + '00017f000001' + ('0120' * 23) + '0003401000', - '0000000000000005' + NEW_VALUES_LIST['mf_channel_id_4'] + NEW_VALUES_LIST['l1_id'] + '00017f000001' + ('0152' * 23) + '0003401000', - '0000000000000006' + NEW_VALUES_LIST['mf_channel_id_5'] + NEW_VALUES_LIST['l2_id'] + '00017f000001' + ('0124' * 23) + '0003401000', - ] # Emergency recover l5.stop() os.unlink(os.path.join(l5.daemon.lightning_dir, TEST_NETWORK, 'lightningd.sqlite3')) @@ -1841,11 +1079,6 @@ def get_hsm_secret(n): l13codex32, _ = get_hsm_secret(l13) update_example(node=l6, method='recover', params={'hsmsecret': l6hex}) update_example(node=l13, method='recover', params={'hsmsecret': l13codex32}) - REPLACE_RESPONSE_VALUES.extend([ - {'data_keys': ['hsmsecret'], 'original_value': l13codex32, 'new_value': NEW_VALUES_LIST['hsm_secret_cdx_1']}, - {'data_keys': ['scb'], 'original_value': backup_l4['scb'], 'new_value': example_scb}, - {'data_keys': ['channel_id', 'account'], 'original_value': backup_l4['scb'][5][16:(16 + 64)], 'new_value': NEW_VALUES_LIST['mf_channel_id_5']}, - ]) logger.info('Backup and Recovery Done!') except Exception as e: logger.error(f'Error in generating backup and recovery examples: {e}') @@ -1859,187 +1092,80 @@ def generate_list_examples(l1, l2, l3, c12, c23_2, inv_l31, inv_l32, offer_l23, # Transactions Lists FUNDS_LEN = 3 listfunds_res1 = l1.rpc.listfunds() - listfunds_res1 = update_list_responses(listfunds_res1, list_key='outputs', slice_upto=FUNDS_LEN) - listfunds_res1['channels'] = [channel for channel in listfunds_res1['channels'] if channel['peer_id'] != '0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199'] - listfunds_res1['channels'] = sorted(listfunds_res1['channels'], key=lambda x: x['peer_id']) - for i in range(1, FUNDS_LEN + 1): - lfoutput = listfunds_res1['outputs'][i - 1] - lfchannel = listfunds_res1['channels'][i - 1] - lfoutput['output'] = i + 1 - lfoutput['txid'] = 'txid' + (('0000' + str(i)) * 12) - lfoutput['scriptpubkey'] = 'scriptpubkey' + (f"{i:02}" * 28) - lfoutput['address'] = 'bcrt1p00' + ('04' * 28) - lfoutput['blockheight'] = NEW_VALUES_LIST['blockheight_160'] - lfoutput['amount_msat'] = 25000000 + (i * 1000000) - lfchannel['funding_output'] = i - lfchannel['funding_txid'] = 'txid' + (('0100' + str(i)) * 12) - lfchannel['amount_msat'] = 10000000 + (i * 1000000) - lfchannel['our_amount_msat'] = 35000000 + (i * 1000000) update_example(node=l1, method='listfunds', params={}, response=listfunds_res1) listforwards_res1 = l2.rpc.listforwards(in_channel=c12, out_channel=c23_2, status='settled') - listforwards_res1 = update_list_responses(listforwards_res1, list_key='forwards', slice_upto=5, update_func=lambda x, i: x.update({'received_time': NEW_VALUES_LIST['time_at_800'] + (i * 10000), 'resolved_time': NEW_VALUES_LIST['time_at_850'] + (i * 10000)})) update_example(node=l2, method='listforwards', params={'in_channel': c12, 'out_channel': c23_2, 'status': 'settled'}, response=listforwards_res1) listforwards_res2 = l2.rpc.listforwards() - listforwards_res2 = update_list_responses(listforwards_res2, list_key='forwards', slice_upto=5, update_func=lambda x, i: x.update({'received_time': NEW_VALUES_LIST['time_at_800'] + (i * 10000), 'resolved_time': NEW_VALUES_LIST['time_at_850'] + (i * 10000)})) update_example(node=l2, method='listforwards', params={}, response=listforwards_res2) listinvoices_res1 = l2.rpc.listinvoices(label='lbl_l21') - listinvoices_res1 = update_list_responses(listinvoices_res1, list_key='invoices', slice_upto=5, update_func=lambda x, i: x.update({'paid_at': NEW_VALUES_LIST['time_at_850'] + (i * 10000), 'expires_at': NEW_VALUES_LIST['time_at_900'] + (i * 10000)})) update_example(node=l2, method='listinvoices', params={'label': 'lbl_l21'}, response=listinvoices_res1) listinvoices_res2 = l2.rpc.listinvoices() - listinvoices_res2 = update_list_responses(listinvoices_res2, list_key='invoices', slice_upto=5, update_func=lambda x, i: x.update({'paid_at': NEW_VALUES_LIST['time_at_850'] + (i * 10000), 'expires_at': NEW_VALUES_LIST['time_at_900'] + (i * 10000)})) update_example(node=l2, method='listinvoices', params={}, response=listinvoices_res2) listhtlcs_res1 = l1.rpc.listhtlcs(c12) - listhtlcs_res1 = update_list_responses(listhtlcs_res1, list_key='htlcs') update_example(node=l1, method='listhtlcs', params=[c12], response=listhtlcs_res1) listhtlcs_res2 = l1.rpc.listhtlcs(index='created', start=4, limit=1) - listhtlcs_res2 = update_list_responses(listhtlcs_res2, list_key='htlcs') update_example(node=l1, method='listhtlcs', params={'index': 'created', 'start': 4, 'limit': 1}, response=listhtlcs_res2) listsendpays_res1 = l1.rpc.listsendpays(bolt11=inv_l31['bolt11']) - listsendpays_res1 = update_list_responses(listsendpays_res1, list_key='payments', slice_upto=5, update_func=lambda x, i: x.update({'created_at': NEW_VALUES_LIST['time_at_800'] + (i * 10000), 'completed_at': NEW_VALUES_LIST['time_at_900'] + (i * 10000)})) update_example(node=l1, method='listsendpays', params={'bolt11': inv_l31['bolt11']}, response=listsendpays_res1) listsendpays_res2 = l1.rpc.listsendpays() - listsendpays_res2 = update_list_responses(listsendpays_res2, list_key='payments', slice_upto=5, update_func=lambda x, i: x.update({'created_at': NEW_VALUES_LIST['time_at_800'] + (i * 10000), 'completed_at': NEW_VALUES_LIST['time_at_900'] + (i * 10000)})) update_example(node=l1, method='listsendpays', params={}, response=listsendpays_res2) listpays_res1 = l2.rpc.listpays(bolt11=inv_l32['bolt11']) - listpays_res1 = update_list_responses(listpays_res1, list_key='pays') update_example(node=l2, method='listpays', params={'bolt11': inv_l32['bolt11']}, response=listpays_res1) listpays_res2 = l2.rpc.listpays() - listpays_res2 = update_list_responses(listpays_res2, list_key='pays') update_example(node=l2, method='listpays', params={}, response=listpays_res2) listtransactions_res1 = l1.rpc.listtransactions() - listtransactions_res1 = update_list_responses(listtransactions_res1, list_key='transactions', slice_upto=2) - for i, transaction in enumerate(listtransactions_res1['transactions'], start=1): - transaction['hash'] = 'txid' + (('7000' + str(i)) * 11) - transaction['rawtx'] = '02000000000101lstx' + (('7000' + str(i)) * 34) - transaction['locktime'] = 549000000 + (i * 100) - transaction['inputs'] = transaction['inputs'][0:1] - transaction['inputs'][0]['txid'] = 'txid' + (('6001' + str(i)) * 12) - transaction['inputs'][0]['index'] = 1 - transaction['inputs'][0]['sequence'] = 2158510000 + (i * 1000) - for k, output in enumerate(transaction['outputs'], start=1): - output['scriptPubKey'] = 'scriptpubkey' + ((f"{i:02}" + f"{k:02}") * 14) - output['index'] = k - output['amount_msat'] = 201998900000 + (i * 1000) + (k * 100) update_example(node=l1, method='listtransactions', params={}, response=listtransactions_res1) listclosedchannels_res1 = l2.rpc.listclosedchannels() - listclosedchannels_res1 = update_list_responses(listclosedchannels_res1, list_key='closedchannels', slice_upto=2, update_func=None, sort=True, sort_key='channel_id') - for i, closedchannel in enumerate(listclosedchannels_res1['closedchannels'], start=1): - closedchannel['last_commitment_fee_msat'] = 2894000 + (i * 1000) - closedchannel['last_commitment_txid'] = 'txidcloselastcommitment0' + (('0000' + str(i)) * 8) - closedchannel['last_stable_connection'] = NEW_VALUES_LIST['time_at_850'] - closedchannel['alias'] = {'local': '12' + str(i) + 'x13' + str(i) + 'x14' + str(i), 'remote': '15' + str(i) + 'x16' + str(i) + 'x17' + str(i)} update_example(node=l2, method='listclosedchannels', params={}, response=listclosedchannels_res1) update_example(node=l2, method='listconfigs', params={'config': 'network'}) update_example(node=l2, method='listconfigs', params={'config': 'experimental-dual-fund'}) l2.rpc.jsonschemas = {} listconfigs_res3 = l2.rpc.listconfigs() - listconfigs_res3['configs']['htlc-maximum-msat']['value_msat'] = NEW_VALUES_LIST['htlc_max_msat'] - listconfigs_res3 = update_list_responses(listconfigs_res3, list_key='configs', slice_upto=len(listconfigs_res3['configs']), update_func=None, sort=True) update_example(node=l2, method='listconfigs', params={}, response=listconfigs_res3) update_example(node=l2, method='listsqlschemas', params={'table': 'offers'}) update_example(node=l2, method='listsqlschemas', params=['closedchannels']) listpeerchannels_res1 = l1.rpc.listpeerchannels(l2.info['id']) - listpeerchannels_res1 = update_list_responses(listpeerchannels_res1, list_key='channels', slice_upto=3) - for i, channel in enumerate(listpeerchannels_res1['channels'], start=1): - channel['last_stable_connection'] = NEW_VALUES_LIST['time_at_850'] + (i * 10000) - channel['scratch_txid'] = 'scratchid1' + (('0' + str(i)) * 27) - channel['alias']['local'] = '3000000' + str(i) + 'x6000000' + str(i) + 'x6000' + str(i) - channel['alias']['remote'] = '1000000' + str(i) + 'x2000000' + str(i) + 'x3000' + str(i) - channel['max_total_htlc_in_msat'] = NEW_VALUES_LIST['htlc_max_msat'] - channel['their_max_htlc_value_in_flight_msat'] = NEW_VALUES_LIST['htlc_max_msat'] - channel['our_max_htlc_value_in_flight_msat'] = NEW_VALUES_LIST['htlc_max_msat'] - for j, state in enumerate(channel['state_changes'], start=1): - state['timestamp'] = '2024-10-10T00:0' + str(j) + ':00.000Z' update_example(node=l1, method='listpeerchannels', params={'id': l2.info['id']}, response=listpeerchannels_res1) listpeerchannels_res2 = l1.rpc.listpeerchannels() - listpeerchannels_2 = None - listpeerchannels_3 = None - i = 0 - for channel in listpeerchannels_res2['channels']: - if channel['peer_id'] == l2.info['id'] or channel['peer_id'] == l3.info['id']: - i = 2 if channel['peer_id'] == l2.info['id'] else 3 - scrt_id = 'scratchid2' + (('0' + str(i)) * 27) - channel['last_stable_connection'] = NEW_VALUES_LIST['time_at_850'] + (i * 10000) - channel['scratch_txid'] = scrt_id - channel['alias']['local'] = '3000000' + str(i) + 'x6000000' + str(i) + 'x6000' + str(i) - channel['alias']['remote'] = '1000000' + str(i) + 'x2000000' + str(i) + 'x3000' + str(i) - channel['close_to_addr'] = 'bcrt1pcl' + (('000' + str(i)) * 14) - channel['close_to'] = 'db2dec31' + (('0' + str(i)) * 30) - channel['status'][0] = re.sub(r'(tx:)[a-f0-9]+', r'\1' + scrt_id, channel['status'][0]) - channel['max_total_htlc_in_msat'] = NEW_VALUES_LIST['htlc_max_msat'] - channel['their_max_htlc_value_in_flight_msat'] = NEW_VALUES_LIST['htlc_max_msat'] - channel['our_max_htlc_value_in_flight_msat'] = NEW_VALUES_LIST['htlc_max_msat'] - if 'inflight' in channel and len(channel['inflight']) > 0: - channel['inflight'][0]['scratch_txid'] = scrt_id - for j, state in enumerate(channel['state_changes'], start=1): - state['timestamp'] = '2024-10-10T00:0' + str(j) + ':00.000Z' - if channel['peer_id'] == l2.info['id']: - listpeerchannels_2 = channel - else: - listpeerchannels_3 = channel - listpeerchannels_res2['channels'] = [channel for channel in [listpeerchannels_2, listpeerchannels_3] if channel is not None] update_example(node=l1, method='listpeerchannels', params={}, response=listpeerchannels_res2) listchannels_res1 = l1.rpc.listchannels(c12) - listchannels_res1 = update_list_responses(listchannels_res1, list_key='channels', slice_upto=5, update_func=lambda x, i: x.update({'last_update': NEW_VALUES_LIST['time_at_850'] + (i * 10000), 'channel_flags': i, 'active': i % 2 == 0})) update_example(node=l1, method='listchannels', params={'short_channel_id': c12}, response=listchannels_res1) listchannels_res2 = l1.rpc.listchannels() - listchannels_res2 = update_list_responses(listchannels_res2, list_key='channels', slice_upto=5, update_func=lambda x, i: x.update({'last_update': NEW_VALUES_LIST['time_at_850'] + (i * 10000), 'channel_flags': i, 'active': i % 2 == 0})) update_example(node=l1, method='listchannels', params={}, response=listchannels_res2) listnodes_res1 = l2.rpc.listnodes(l3.info['id']) - listnodes_res1 = update_list_responses(listnodes_res1, list_key='nodes', slice_upto=5, update_func=lambda x, i: x.update({'last_timestamp': NEW_VALUES_LIST['time_at_800'] + (i * 10000)})) update_example(node=l2, method='listnodes', params={'id': l3.info['id']}, response=listnodes_res1) listnodes_res2 = l2.rpc.listnodes() - listnodes_res2 = update_list_responses(listnodes_res2, list_key='nodes', slice_upto=5, update_func=lambda x, i: x.update({'last_timestamp': NEW_VALUES_LIST['time_at_800'] + (i * 10000)})) update_example(node=l2, method='listnodes', params={}, response=listnodes_res2) listpeers_res1 = l2.rpc.listpeers(l3.info['id']) - listpeers_res1 = update_list_responses(listpeers_res1, list_key='peers', slice_upto=5, update_func=None, sort=True, sort_key='id') update_example(node=l2, method='listpeers', params={'id': l3.info['id']}, response=listpeers_res1) listpeers_res2 = l2.rpc.listpeers() - listpeers_res2 = update_list_responses(listpeers_res2, list_key='peers', slice_upto=5, update_func=None, sort=True, sort_key='id') update_example(node=l2, method='listpeers', params={}, response=listpeers_res2) update_example(node=l2, method='listdatastore', params={'key': ['employee']}) update_example(node=l2, method='listdatastore', params={'key': 'somekey'}) listoffers_res1 = l2.rpc.listoffers(active_only=True) - for i, offer in enumerate(listoffers_res1['offers'], start=1): - ofr_id = 'offerid_l2' + str(i) - bolt12_id = 'bolt12_l2' + str(i) - offer['offer_id'] = NEW_VALUES_LIST[ofr_id] - offer['bolt12'] = NEW_VALUES_LIST[bolt12_id] - listoffers_res1 = update_list_responses(listoffers_res1, list_key='offers', slice_upto=5, update_func=None, sort=True, sort_key='offer_id') update_example(node=l2, method='listoffers', params={'active_only': True}, response=listoffers_res1) listoffers_res2 = l2.rpc.listoffers(offer_id=offer_l23['offer_id']) - listoffers_res2 = update_list_responses(listoffers_res2, list_key='offers') update_example(node=l2, method='listoffers', params=[offer_l23['offer_id']], response=listoffers_res2) update_example(node=l2, method='listinvoicerequests', params=[inv_req_l1_l22['invreq_id']]) listinvoicerequests_res2 = l2.rpc.listinvoicerequests() - listinvoicerequests_res2 = update_list_responses(listinvoicerequests_res2, list_key='invoicerequests', slice_upto=len(listinvoicerequests_res2['invoicerequests']), update_func=None, sort=True, sort_key='used') update_example(node=l2, method='listinvoicerequests', params={}, response=listinvoicerequests_res2) update_example(node=l2, method='listaddresses', params=[address_l22['p2tr']]) update_example(node=l2, method='listaddresses', params={'start': 6, 'limit': 2}) - REPLACE_RESPONSE_VALUES.extend([ - {'data_keys': ['any', 'invreq_id'], 'original_value': inv_req_l1_l22['invreq_id'], 'new_value': NEW_VALUES_LIST['invreq_id_l1_l22']}, - {'data_keys': ['netaddr'], 'original_value': listpeers_res2['peers'][0]['netaddr'], 'new_value': [NEW_VALUES_LIST['l1_addr']]}, - {'data_keys': ['any'], 'original_value': listconfigs_res3['configs']['addr']['values_str'][0], 'new_value': NEW_VALUES_LIST['configs_3_addr2']}, - {'data_keys': ['value_int'], 'original_value': listconfigs_res3['configs']['bitcoin-rpcport']['value_int'], 'new_value': NEW_VALUES_LIST['bitcoin-rpcport']}, - {'data_keys': ['value_int'], 'original_value': listconfigs_res3['configs']['grpc-port']['value_int'], 'new_value': NEW_VALUES_LIST['grpc-port']}, - {'data_keys': ['value_str'], 'original_value': listconfigs_res3['configs']['alias']['value_str'], 'new_value': NEW_VALUES_LIST['l2_alias']}, - {'data_keys': ['channel_flags'], 'original_value': listchannels_res2['channels'][-1]['channel_flags'], 'new_value': 2}, - ]) logger.info('Lists Done!') except Exception as e: logger.error(f'Error in generating lists examples: {e}') From 86f923b9fe9438b0a7dd40b7c34bfabd1d1b35d6 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Oct 2025 14:05:52 +1030 Subject: [PATCH 28/37] autogenerate-rpc-examples.py: remove unused vars Signed-off-by: Rusty Russell --- Makefile | 2 +- tests/autogenerate-rpc-examples.py | 151 ++++++++++++----------------- 2 files changed, 62 insertions(+), 91 deletions(-) diff --git a/Makefile b/Makefile index 3eecf73b9262..94543238b856 100644 --- a/Makefile +++ b/Makefile @@ -559,7 +559,7 @@ check-python-flake8: @# E731 do not assign a lambda expression, use a def @# W503: line break before binary operator @# E741: ambiguous variable name - @uv run flake8 --ignore=E501,E731,E741,W503,F541,E275,F841 --exclude $(shell echo ${PYTHON_GENERATED} | sed 's/ \+/,/g') ${PYSRC} + @uv run flake8 --ignore=E501,E731,E741,W503,F541,E275 --exclude $(shell echo ${PYTHON_GENERATED} | sed 's/ \+/,/g') ${PYSRC} check-pytest-pyln-proto: PATH=$(PYLN_PATH) PYTHONPATH=$(MY_CHECK_PYTHONPATH) uv run $(PYTEST) contrib/pyln-proto/tests/ diff --git a/tests/autogenerate-rpc-examples.py b/tests/autogenerate-rpc-examples.py index 44bed64ce492..9441b89c1e5b 100644 --- a/tests/autogenerate-rpc-examples.py +++ b/tests/autogenerate-rpc-examples.py @@ -141,14 +141,14 @@ def setup_test_nodes(node_factory, bitcoind): bitcoind.generate_block(1) l1.daemon.wait_for_log('Owning output .* txid {} CONFIRMED'.format(txid)) # Doing it with 'reserved ok' should have 1. We use a big feerate so we can get over the RBF hump - upgrade_res2 = update_example(node=l1, method='upgradewallet', params={'feerate': 'urgent', 'reservedok': True}) + update_example(node=l1, method='upgradewallet', params={'feerate': 'urgent', 'reservedok': True}) # Fund node wallets for further transactions fund_nodes = [l1, l2, l3, l4, l5] for node in fund_nodes: node.fundwallet(FUND_WALLET_AMOUNT_SAT) # Connect nodes and fund channels - getinfo_res2 = update_example(node=l2, method='getinfo', params={}) + update_example(node=l2, method='getinfo', params={}) update_example(node=l1, method='connect', params={'id': l2.info['id'], 'host': 'localhost', 'port': l2.daemon.port}) update_example(node=l2, method='connect', params={'id': l3.info['id'], 'host': 'localhost', 'port': l3.daemon.port}) l3.rpc.connect(l4.info['id'], 'localhost', l4.port) @@ -181,10 +181,10 @@ def generate_transactions_examples(l1, l2, l3, l4, l5, c25, bitcoind): route_l1_l3 = update_example(node=l1, method='getroute', params={'id': l3.info['id'], 'amount_msat': 10**4, 'riskfactor': 1})['route'] inv_l32 = update_example(node=l3, method='invoice', params={'amount_msat': '50000msat', 'label': 'lbl_l32', 'description': 'l32 description'}) update_example(node=l2, method='getroute', params={'id': l4.info['id'], 'amount_msat': 500000, 'riskfactor': 10, 'cltv': 9})['route'] - sendpay_res1 = update_example(node=l1, method='sendpay', params={'route': route_l1_l3, 'payment_hash': inv_l31['payment_hash'], 'payment_secret': inv_l31['payment_secret']}) - waitsendpay_res1 = update_example(node=l1, method='waitsendpay', params={'payment_hash': inv_l31['payment_hash']}) - keysend_res1 = update_example(node=l1, method='keysend', params={'destination': l3.info['id'], 'amount_msat': 10000}) - keysend_res2 = update_example(node=l1, method='keysend', params={'destination': l4.info['id'], 'amount_msat': 10000000, 'extratlvs': {'133773310': '68656c6c6f776f726c64', '133773312': '66696c7465726d65'}}) + update_example(node=l1, method='sendpay', params={'route': route_l1_l3, 'payment_hash': inv_l31['payment_hash'], 'payment_secret': inv_l31['payment_secret']}) + update_example(node=l1, method='waitsendpay', params={'payment_hash': inv_l31['payment_hash']}) + update_example(node=l1, method='keysend', params={'destination': l3.info['id'], 'amount_msat': 10000}) + update_example(node=l1, method='keysend', params={'destination': l4.info['id'], 'amount_msat': 10000000, 'extratlvs': {'133773310': '68656c6c6f776f726c64', '133773312': '66696c7465726d65'}}) scid = only_one([channel for channel in l2.rpc.listpeerchannels()['channels'] if channel['peer_id'] == l3.info['id']])['alias']['remote'] routehints = [[{ 'scid': scid, @@ -193,20 +193,20 @@ def generate_transactions_examples(l1, l2, l3, l4, l5, c25, bitcoind): 'feeprop': 10, 'expirydelta': 9, }]] - keysend_res3 = update_example(node=l1, method='keysend', params={'destination': l3.info['id'], 'amount_msat': 10000, 'routehints': routehints}) + update_example(node=l1, method='keysend', params={'destination': l3.info['id'], 'amount_msat': 10000, 'routehints': routehints}) inv_l11 = l1.rpc.invoice('10000msat', 'lbl_l11', 'l11 description') inv_l21 = l2.rpc.invoice('any', 'lbl_l21', 'l21 description') inv_l22 = l2.rpc.invoice('200000msat', 'lbl_l22', 'l22 description') inv_l33 = l3.rpc.invoice('100000msat', 'lbl_l33', 'l33 description') inv_l34 = l3.rpc.invoice(4000, 'failed', 'failed description') - pay_res1 = update_example(node=l1, method='pay', params=[inv_l32['bolt11']]) - pay_res2 = update_example(node=l2, method='pay', params={'bolt11': inv_l33['bolt11']}) + update_example(node=l1, method='pay', params=[inv_l32['bolt11']]) + update_example(node=l2, method='pay', params={'bolt11': inv_l33['bolt11']}) inv_l41 = l4.rpc.invoice('10000msat', 'test_xpay_simple', 'test_xpay_simple bolt11') - xpay_res1 = update_example(node=l1, method='xpay', params=[inv_l41['bolt11']]) + update_example(node=l1, method='xpay', params=[inv_l41['bolt11']]) offer_l11 = l1.rpc.offer('any') inv_l14 = l1.rpc.fetchinvoice(offer_l11['bolt12'], '1000msat') - xpay_res2 = update_example(node=l1, method='xpay', params={'invstring': inv_l14['invoice']}) + update_example(node=l1, method='xpay', params={'invstring': inv_l14['invoice']}) update_example(node=l1, method='injectonionmessage', params={'message': '0002cb7cd2001e3c670d64135542dcefdf4a3f590eb142cee9277b317848471906caeabe4afeae7f4e31f6ca9c119b643d5369c5e55f892f205469a185f750697124a2bb7ccea1245ec12d76340bcf7371ba6d1c9ddfe09b4153fce524417c14a594fdbb5e7c698a5daffe77db946727a38711be2ecdebdd347d2a9f990810f2795b3c39b871d7c72a11534bd388ca2517630263d96d8cc72d146bae800638066175c85a8e8665160ea332ed7d27efc31c960604d61c3f83801c25cbb69ae3962c2ef13b1fa9adc8dcbe3dc8d9a5e27ff5669e076b02cafef8f2c88fc548e03642180d57606386ad6ce27640339747d40f26eb5b9e93881fc8c16d5896122032b64bb5f1e4be6f41f5fa4dbd7851989aeccd80b2d5f6f25427f171964146185a8eaa57891d91e49a4d378743231e19edd5994c3118c9a415958a5d9524a6ecc78c0205f5c0059a7fbcf1abad706a189b712476d112521c9a4650d0ff09890536acae755a2b07d00811044df28b288d3dc2d5ae3f8bf3cf7a2950e2167105dfad0fb8398ef08f36abcdb1bfd6aca3241c33810f0750f35bdfb7c60b1759275b7704ab1bc8f3ea375b3588eab10e4f948f12fe0a3c77b67bebeedbcced1de0f0715f9959e5497cda5f8f6ab76c15b3dcc99956465de1bf2855338930650f8e8e8c391d9bb8950125dd60d8289dade0556d9dc443761983e26adcc223412b756e2fd9ad64022859b6cab20e8ffc3cf39ae6045b2c3338b1145ee3719a098e58c425db764d7f9a5034dbb730c20202f79bc3c53fab78ecd530aa0e8f7698c9ea53cb96dc9c639282c362d31177c5b81979f46f2db6090b8e171db47287523f28c462e35ef489b51426387f2709c342083968153b5f8a51cd5716b38106bb0f21c5ccfc28dd7c74b71c8367ae8ca348f66a7996bbc535076a1f65d9109658ec042257ca7523488fb1807dc8bec42739ccae066739cf58083b4e2c65e52e1747a6ec2aa26338bb6f2c3195a2b160e26dec70a2cfde269fa7c10c45d346a8bcc313bb618324edadc0291d15f4dc00ca3a7ad7131045fdf6978ba52178f4699525efcb8d96561630e2f28eaa97c66c38c66301b6c6f0124b550db620b09f35b9d45d1441cab7d93be5e3c39b9becfab7f8d05dd3a7a6e27a1d3f23f1dd01e967f5206600619f75439181848f7f4148216c11314b4eaf64c28c268ad4b33ea821d57728e9a9e9e1b6c4bcf35d14958295fc5f92bd6846f33c46f5fa20f569b25bc916b94e554f27a37448f873497e13baef8c740a7587828cc4136dd21b8584e6983e376e91663f8f91559637738b400fb49940fc2df299dfd448604b63c2f5d1f1ec023636f3baf2be5730364afd38191726a7c0d9477b1f231da4d707aabc6ad8036488181dbdb16b48500f2333036629004504d3524f87ece6afb04c4ba03ea6fce069e98b1ab7bf51f237d7c0f40756744dd703c6023b6461b90730f701404e8dddfaff40a9a60e670be7729556241fc9cc8727a586e38b71616bff8772c873b37d920d51a6ad31219a24b12f268545e2cfeb9e662236ab639fd4ecf865612678471ff7b320c934a13ca1f2587fc6a90f839c3c81c0ff84b51330820431418918e8501844893b53c1e0de46d51a64cb769974a996c58ff06683ebdc46fd4bb8e857cecebab785a351c64fd486fb648d25936cb09327b70d22c243035d4343fa3d2d148e2df5cd928010e34ae42b0333e698142050d9405b39f3aa69cecf8a388afbc7f199077b911cb829480f0952966956fe57d815f0d2467f7b28af11f8820645b601c0e1ad72a4684ebc60287d23ec3502f4c65ca44f5a4a0d79e3a5718cd23e7538cb35c57673fb9a1173e5526e767768117c7fefc2e3718f44f790b27e61995fecc6aef05107e75355be301ebe1500c147bb655a159f', 'path_key': '03ccf3faa19e8d124f27d495e3359f4002a6622b9a02df9a51b609826d354cda52'}) @@ -223,13 +223,13 @@ def generate_transactions_examples(l1, l2, l3, l4, l5, c25, bitcoind): i += 1 sendonion_hops.append({'pubkey': route[-1]['id'], 'payload': serialize_payload_final_tlv(amt, 18, amt, blockheight, inv['payment_secret']).hex()}) onion_res1 = update_example(node=l1, method='createonion', params={'hops': sendonion_hops, 'assocdata': inv['payment_hash']}) - onion_res2 = update_example(node=l1, method='createonion', params={'hops': sendonion_hops, 'assocdata': inv['payment_hash'], 'session_key': '41' * 32}) - sendonion_res1 = update_example(node=l1, method='sendonion', params={'onion': onion_res1['onion'], 'first_hop': first_hop, 'payment_hash': inv['payment_hash']}) + update_example(node=l1, method='createonion', params={'hops': sendonion_hops, 'assocdata': inv['payment_hash'], 'session_key': '41' * 32}) + update_example(node=l1, method='sendonion', params={'onion': onion_res1['onion'], 'first_hop': first_hop, 'payment_hash': inv['payment_hash']}) # Close channels examples - close_res1 = update_example(node=l2, method='close', params={'id': l3.info['id'], 'unilateraltimeout': 1}) + update_example(node=l2, method='close', params={'id': l3.info['id'], 'unilateraltimeout': 1}) address_l41 = l4.rpc.newaddr() - close_res2 = update_example(node=l3, method='close', params={'id': l4.info['id'], 'destination': address_l41['bech32']}) + update_example(node=l3, method='close', params={'id': l4.info['id'], 'destination': address_l41['bech32']}) bitcoind.generate_block(1) sync_blockheight(bitcoind, [l1, l2, l3, l4]) @@ -251,16 +251,16 @@ def generate_transactions_examples(l1, l2, l3, l4, l5, c25, bitcoind): inv_l24 = l2.rpc.invoice(123000, 'label inv_l24', 'description inv_l24', 3600) inv_l25 = l2.rpc.invoice(124000, 'label inv_l25', 'description inv_l25', 3600) inv_l26 = l2.rpc.invoice(125000, 'label inv_l26', 'description inv_l26', 3600) - signinv_res1 = update_example(node=l2, method='signinvoice', params={'invstring': inv_l12['bolt11']}) - signinv_res2 = update_example(node=l3, method='signinvoice', params=[inv_l26['bolt11']]) + update_example(node=l2, method='signinvoice', params={'invstring': inv_l12['bolt11']}) + update_example(node=l3, method='signinvoice', params=[inv_l26['bolt11']]) update_example(node=l1, method='preapprovekeysend', params={'destination': l2.info['id'], 'payment_hash': '00' * 32, 'amount_msat': 1000}) update_example(node=l5, method='preapprovekeysend', params=[l5.info['id'], '01' * 32, 2000]) update_example(node=l1, method='preapproveinvoice', params={'bolt11': inv_l24['bolt11']}) update_example(node=l1, method='preapproveinvoice', params=[inv_l25['bolt11']]) inv_req = update_example(node=l2, method='invoicerequest', params={'amount': 1000000, 'description': 'Simple test'}) - sendinvoice_res1 = update_example(node=l1, method='sendinvoice', params={'invreq': inv_req['bolt12'], 'label': 'test sendinvoice'}) + update_example(node=l1, method='sendinvoice', params={'invreq': inv_req['bolt12'], 'label': 'test sendinvoice'}) inv_l13 = l1.rpc.invoice(amount_msat=100000, label='lbl_l13', description='l13 description', preimage='01' * 32) - createinv_res1 = update_example(node=l2, method='createinvoice', params={'invstring': inv_l13['bolt11'], 'label': 'lbl_l13', 'preimage': '01' * 32}) + update_example(node=l2, method='createinvoice', params={'invstring': inv_l13['bolt11'], 'label': 'lbl_l13', 'preimage': '01' * 32}) inv_l27 = l2.rpc.invoice(amt, 'test_injectpaymentonion1', 'test injectpaymentonion1 description') injectpaymentonion_hops = [ {'pubkey': l1.info['id'], @@ -268,14 +268,14 @@ def generate_transactions_examples(l1, l2, l3, l4, l5, c25, bitcoind): {'pubkey': l2.info['id'], 'payload': serialize_payload_final_tlv(1000, 18, 1000, blockheight, inv_l27['payment_secret']).hex()}] onion_res3 = l1.rpc.createonion(hops=injectpaymentonion_hops, assocdata=inv_l27['payment_hash']) - injectpaymentonion_res1 = update_example(node=l1, method='injectpaymentonion', params={ + update_example(node=l1, method='injectpaymentonion', params={ 'onion': onion_res3['onion'], 'payment_hash': inv_l27['payment_hash'], 'amount_msat': 1000, 'cltv_expiry': blockheight + 18 + 6, 'partid': 1, 'groupid': 0}) - bip353_result = update_example(node=l1, method='fetchbip353', params={'address': 'send.some@satsto.me'}, description=['Example of fetching BIP-353 payment details.']) + update_example(node=l1, method='fetchbip353', params={'address': 'send.some@satsto.me'}, description=['Example of fetching BIP-353 payment details.']) logger.info('Simple Transactions Done!') return c23_2, c23res2, c34_2, inv_l11, inv_l21, inv_l22, inv_l31, inv_l32, inv_l34 except Exception as e: @@ -317,14 +317,14 @@ def generate_runes_examples(l1, l2, l3): '- method/pay|pnameamount\\_msat<100000001', '- method/xpay|per=1day', '- method/xpay|pnameamount\\_msat<100000001']) - commando_res1 = update_example(node=l1, method='commando', params={'peer_id': l2.info['id'], 'rune': rune_l21['rune'], 'method': 'newaddr', 'params': {'addresstype': 'p2tr'}}) + update_example(node=l1, method='commando', params={'peer_id': l2.info['id'], 'rune': rune_l21['rune'], 'method': 'newaddr', 'params': {'addresstype': 'p2tr'}}) update_example(node=l1, method='commando', params={'peer_id': l2.info['id'], 'rune': rune_l23['rune'], 'method': 'listpeers', 'params': [l3.info['id']]}) inv_l23 = l2.rpc.invoice('any', 'lbl_l23', 'l23 description') - commando_res3 = update_example(node=l1, method='commando', params={'peer_id': l2.info['id'], 'rune': rune_l24['rune'], 'method': 'pay', 'params': {'bolt11': inv_l23['bolt11'], 'amount_msat': 9900}}) + update_example(node=l1, method='commando', params={'peer_id': l2.info['id'], 'rune': rune_l24['rune'], 'method': 'pay', 'params': {'bolt11': inv_l23['bolt11'], 'amount_msat': 9900}}) update_example(node=l2, method='checkrune', params={'nodeid': l2.info['id'], 'rune': rune_l22['rune'], 'method': 'listpeers', 'params': {}}) update_example(node=l2, method='checkrune', params={'nodeid': l2.info['id'], 'rune': rune_l24['rune'], 'method': 'pay', 'params': {'amount_msat': 9999}}) - showrunes_res1 = update_example(node=l2, method='showrunes', params={'rune': rune_l21['rune']}) - showrunes_res2 = update_example(node=l2, method='showrunes', params={}) + update_example(node=l2, method='showrunes', params={'rune': rune_l21['rune']}) + update_example(node=l2, method='showrunes', params={}) update_example(node=l2, method='blacklistrune', params={'start': 1}) update_example(node=l2, method='blacklistrune', params={'start': 0, 'end': 2}) update_example(node=l2, method='blacklistrune', params={'start': 3, 'end': 4}) @@ -364,7 +364,7 @@ def generate_bookkeeper_examples(l2, l3, c23_2_chan_id): logger.info('Bookkeeper Start...') update_example(node=l2, method='funderupdate', params={}) update_example(node=l2, method='funderupdate', params={'policy': 'fixed', 'policy_mod': '50000sat', 'min_their_funding_msat': 1000, 'per_channel_min_msat': '1000sat', 'per_channel_max_msat': '500000sat', 'fund_probability': 100, 'fuzz_percent': 0, 'leases_only': False}) - bkprinspect_res1 = update_example(node=l2, method='bkpr-inspect', params={'account': c23_2_chan_id}) + update_example(node=l2, method='bkpr-inspect', params={'account': c23_2_chan_id}) update_example(node=l2, method='bkpr-dumpincomecsv', params=['koinly', 'koinly.csv']) bkpr_channelsapy_res1 = l2.rpc.bkpr_channelsapy() fields = [ @@ -392,11 +392,11 @@ def generate_bookkeeper_examples(l2, l3, c23_2_chan_id): update_example(node=l3, method='bkpr-editdescriptionbypaymentid', params={'payment_id': invoice['payment_id'], 'description': 'edited invoice description from description send some sats l2 to l3'}) # Try to edit a payment_id that does not exist update_example(node=l3, method='bkpr-editdescriptionbypaymentid', params={'payment_id': 'c000' + ('01' * 30), 'description': 'edited invoice description for non existing payment id'}) - editdescriptionbyoutpoint_res1 = update_example(node=l3, method='bkpr-editdescriptionbyoutpoint', params={'outpoint': utxo_event['outpoint'], 'description': 'edited utxo description'}) + update_example(node=l3, method='bkpr-editdescriptionbyoutpoint', params={'outpoint': utxo_event['outpoint'], 'description': 'edited utxo description'}) # Try to edit an outpoint that does not exist update_example(node=l3, method='bkpr-editdescriptionbyoutpoint', params={'outpoint': 'abcd' + ('02' * 30) + ':1', 'description': 'edited utxo description for non existing outpoint'}) - bkprlistbal_res1 = update_example(node=l3, method='bkpr-listbalances', params={}) + update_example(node=l3, method='bkpr-listbalances', params={}) bkprlistaccountevents_res1 = l3.rpc.bkpr_listaccountevents(c23_2_chan_id) bkprlistaccountevents_res1['events'] = [next((event for event in bkprlistaccountevents_res1['events'] if event['tag'] == 'channel_open'), None)] @@ -435,18 +435,18 @@ def generate_offers_renepay_examples(l1, l2, inv_l21, inv_l34): offer_l21 = update_example(node=l2, method='offer', params={'amount': '10000msat', 'description': 'Fish sale!'}) offer_l22 = update_example(node=l2, method='offer', params={'amount': '1000sat', 'description': 'Coffee', 'quantity_max': 10}) offer_l23 = l2.rpc.offer('2000sat', 'Offer to Disable') - fetchinv_res1 = update_example(node=l1, method='fetchinvoice', params={'offer': offer_l21['bolt12'], 'payer_note': 'Thanks for the fish!'}) - fetchinv_res2 = update_example(node=l1, method='fetchinvoice', params={'offer': offer_l22['bolt12'], 'amount_msat': 2000000, 'quantity': 2}) + update_example(node=l1, method='fetchinvoice', params={'offer': offer_l21['bolt12'], 'payer_note': 'Thanks for the fish!'}) + update_example(node=l1, method='fetchinvoice', params={'offer': offer_l22['bolt12'], 'amount_msat': 2000000, 'quantity': 2}) update_example(node=l2, method='disableoffer', params={'offer_id': offer_l23['offer_id']}) update_example(node=l2, method='enableoffer', params={'offer_id': offer_l23['offer_id']}) # Invoice Requests inv_req_l1_l22 = update_example(node=l2, method='invoicerequest', params={'amount': '10000sat', 'description': 'Requesting for invoice', 'issuer': 'clightning store'}) - disableinv_res1 = update_example(node=l2, method='disableinvoicerequest', params={'invreq_id': inv_req_l1_l22['invreq_id']}) + update_example(node=l2, method='disableinvoicerequest', params={'invreq_id': inv_req_l1_l22['invreq_id']}) # Renepay - renepay_res1 = update_example(node=l1, method='renepay', params={'invstring': inv_l21['bolt11'], 'amount_msat': 400000}) - renepay_res2 = update_example(node=l2, method='renepay', params={'invstring': inv_l34['bolt11']}) + update_example(node=l1, method='renepay', params={'invstring': inv_l21['bolt11'], 'amount_msat': 400000}) + update_example(node=l2, method='renepay', params={'invstring': inv_l34['bolt11']}) update_example(node=l1, method='renepaystatus', params={'invstring': inv_l21['bolt11']}) logger.info('Offers and Renepay Done!') return offer_l23, inv_req_l1_l22 @@ -474,7 +474,7 @@ def direction(src, dst): update_example(node=l2, method='askrene-update-channel', params=['test_layers', '0x0x1/0']) update_example(node=l2, method='askrene-create-channel', params={'layer': 'test_layers', 'source': l3.info['id'], 'destination': l1.info['id'], 'short_channel_id': '0x0x1', 'capacity_msat': '1000000sat'}) update_example(node=l2, method='askrene-update-channel', params={'layer': 'test_layers', 'short_channel_id_dir': '0x0x1/0', 'htlc_minimum_msat': 100, 'htlc_maximum_msat': 900000000, 'fee_base_msat': 1, 'fee_proportional_millionths': 2, 'cltv_expiry_delta': 18}) - askrene_inform_channel_res1 = update_example(node=l2, method='askrene-inform-channel', params={'layer': 'test_layers', 'short_channel_id_dir': '0x0x1/1', 'amount_msat': 100000, 'inform': 'unconstrained'}) + update_example(node=l2, method='askrene-inform-channel', params={'layer': 'test_layers', 'short_channel_id_dir': '0x0x1/1', 'amount_msat': 100000, 'inform': 'unconstrained'}) update_example(node=l2, method='askrene-bias-channel', params={'layer': 'test_layers', 'short_channel_id_dir': scid12dir, 'bias': 1}) update_example(node=l2, method='askrene-bias-channel', params=['test_layers', scid12dir, -5, 'bigger bias']) askrene_listlayers_res1 = update_example(node=l2, method='askrene-listlayers', params=['test_layers']) @@ -605,8 +605,8 @@ def generate_utils_examples(l1, l2, l3, l4, l5, l6, c23_2, c34_2, inv_l11, inv_l utxos = [f"{funds_l2['outputs'][2]['txid']}:{funds_l2['outputs'][2]['output']}"] withdraw_l22 = update_example(node=l2, method='withdraw', params={'destination': address_l22['p2tr'], 'satoshi': 'all', 'feerate': '20000perkb', 'minconf': 0, 'utxos': utxos}) bitcoind.generate_block(4, wait_for_mempool=[withdraw_l22['txid']]) - multiwithdraw_res1 = update_example(node=l2, method='multiwithdraw', params={'outputs': [{l1.rpc.newaddr()['bech32']: '2222000msat'}, {l1.rpc.newaddr()['bech32']: '3333000msat'}]}) - multiwithdraw_res2 = update_example(node=l2, method='multiwithdraw', params={'outputs': [{l1.rpc.newaddr('p2tr')['p2tr']: 1000}, {l1.rpc.newaddr()['bech32']: 1000}, {l2.rpc.newaddr()['bech32']: 1000}, {l3.rpc.newaddr()['bech32']: 1000}, {l3.rpc.newaddr()['bech32']: 1000}, {l4.rpc.newaddr('p2tr')['p2tr']: 1000}, {l1.rpc.newaddr()['bech32']: 1000}]}) + update_example(node=l2, method='multiwithdraw', params={'outputs': [{l1.rpc.newaddr()['bech32']: '2222000msat'}, {l1.rpc.newaddr()['bech32']: '3333000msat'}]}) + update_example(node=l2, method='multiwithdraw', params={'outputs': [{l1.rpc.newaddr('p2tr')['p2tr']: 1000}, {l1.rpc.newaddr()['bech32']: 1000}, {l2.rpc.newaddr()['bech32']: 1000}, {l3.rpc.newaddr()['bech32']: 1000}, {l3.rpc.newaddr()['bech32']: 1000}, {l4.rpc.newaddr('p2tr')['p2tr']: 1000}, {l1.rpc.newaddr()['bech32']: 1000}]}) l2.rpc.connect(l4.info['id'], 'localhost', l4.port) l2.rpc.connect(l5.info['id'], 'localhost', l5.port) update_example(node=l2, method='disconnect', params={'id': l4.info['id'], 'force': False}) @@ -623,9 +623,9 @@ def generate_utils_examples(l1, l2, l3, l4, l5, l6, c23_2, c34_2, inv_l11, inv_l update_example(node=l2, method='checkmessage', params={'message': 'this is a test!', 'zbase': 'd6tqaeuonjhi98mmont9m4wag7gg4krg1f4txonug3h31e9h6p6k6nbwjondnj46dkyausobstnk7fhyy998bhgc1yr98dfmhb4k54d7'}) addr = l2.rpc.newaddr('bech32')['bech32'] update_example(node=l2, method='signmessagewithkey', params={'message': 'a test message', 'address': addr}) - decodepay_res1 = update_example(node=l2, method='decodepay', params={'bolt11': inv_l11['bolt11']}) + update_example(node=l2, method='decodepay', params={'bolt11': inv_l11['bolt11']}) update_example(node=l2, method='decode', params=[rune_l21['rune']]) - decode_res2 = update_example(node=l2, method='decode', params=[inv_l22['bolt11']]) + update_example(node=l2, method='decode', params=[inv_l22['bolt11']]) # PSBT amount1 = 1000000 @@ -635,7 +635,7 @@ def generate_utils_examples(l1, l2, l3, l4, l5, l6, c23_2, c34_2, inv_l11, inv_l psbtoutput_res2 = l1.rpc.addpsbtoutput(amount2, psbtoutput_res1['psbt']) update_example(node=l1, method='addpsbtoutput', params=[amount2, psbtoutput_res2['psbt']], response=psbtoutput_res2) dest = l1.rpc.newaddr('p2tr')['p2tr'] - psbtoutput_res3 = update_example(node=l1, method='addpsbtoutput', params={'satoshi': amount2, 'initialpsbt': psbtoutput_res2['psbt'], 'destination': dest}) + update_example(node=l1, method='addpsbtoutput', params={'satoshi': amount2, 'initialpsbt': psbtoutput_res2['psbt'], 'destination': dest}) l1.rpc.addpsbtoutput(amount2, psbtoutput_res2['psbt'], None, dest) update_example(node=l1, method='setpsbtversion', params=[psbtoutput_res2['psbt'], 2]) @@ -651,7 +651,7 @@ def generate_utils_examples(l1, l2, l3, l4, l5, l6, c23_2, c34_2, inv_l11, inv_l fullpsbt = bitcoind.rpc.joinpsbts([funding['psbt'], output_psbt]) l1.rpc.reserveinputs(fullpsbt) signed_psbt = l1.rpc.signpsbt(fullpsbt)['signed_psbt'] - sendpsbt_res1 = update_example(node=l1, method='sendpsbt', params={'psbt': signed_psbt}) + update_example(node=l1, method='sendpsbt', params={'psbt': signed_psbt}) # SQL update_example(node=l1, method='sql', params={'query': 'SELECT id FROM peers'}, description=['A simple peers selection query:']) @@ -663,7 +663,7 @@ def generate_utils_examples(l1, l2, l3, l4, l5, l6, c23_2, c34_2, inv_l11, inv_l update_example(node=l1, method='sql', params=['SELECT peer_id, to_us_msat, total_msat, peerchannels_status.status FROM peerchannels INNER JOIN peerchannels_status ON peerchannels_status.row = peerchannels.rowid'], description=['Related tables are usually referenced by JOIN:']) update_example(node=l2, method='sql', params=['SELECT COUNT(*) FROM forwards'], description=["Simple function usage, in this case COUNT. Strings inside arrays need \", and ' to protect them from the shell:"]) update_example(node=l1, method='sql', params=['SELECT * from peerchannels_features']) - example_log = getlog_res1['log'] + getlog_res1['log'] logger.info('General Utils Done!') return address_l22 except Exception as e: @@ -702,7 +702,7 @@ def generate_splice_examples(node_factory, bitcoind): spupdate2_res1 = update_example(node=l7, method='splice_update', params={'channel_id': chan_id_78, 'psbt': spupdate1_res1['psbt']}) assert(spupdate2_res1['commitments_secured'] is True) signpsbt_res1 = l7.rpc.signpsbt(spupdate2_res1['psbt']) - spsigned_res1 = update_example(node=l7, method='splice_signed', params={'channel_id': chan_id_78, 'psbt': signpsbt_res1['signed_psbt']}) + update_example(node=l7, method='splice_signed', params={'channel_id': chan_id_78, 'psbt': signpsbt_res1['signed_psbt']}) bitcoind.generate_block(1) sync_blockheight(bitcoind, [l7]) @@ -718,7 +718,7 @@ def generate_splice_examples(node_factory, bitcoind): assert(spupdate1_res2['commitments_secured'] is False) spupdate2_res2 = update_example(node=l7, method='splice_update', params=[chan_id_78, spupdate1_res2['psbt']]) assert(spupdate2_res2['commitments_secured'] is True) - spsigned_res2 = update_example(node=l7, method='splice_signed', params={'channel_id': chan_id_78, 'psbt': spupdate2_res2['psbt']}) + update_example(node=l7, method='splice_signed', params={'channel_id': chan_id_78, 'psbt': spupdate2_res2['psbt']}) update_example(node=l7, method='stop', params={}) logger.info('Splice Done!') @@ -754,16 +754,16 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5): fund_start_res1 = update_example(node=l9, method='fundchannel_start', params=[l10.info['id'], amount]) outputs_1 = [{fund_start_res1['funding_address']: amount}] - example_outputs_1 = [{'bcrt1p00' + ('02' * 28): amount}] + [{'bcrt1p00' + ('02' * 28): amount}] tx_prep_1 = update_example(node=l9, method='txprepare', params=[outputs_1]) update_example(node=l9, method='fundchannel_cancel', params=[l10.info['id']]) - txdiscard_res1 = update_example(node=l9, method='txdiscard', params=[tx_prep_1['txid']]) + update_example(node=l9, method='txdiscard', params=[tx_prep_1['txid']]) fund_start_res2 = update_example(node=l9, method='fundchannel_start', params={'id': l10.info['id'], 'amount': amount}) outputs_2 = [{fund_start_res2['funding_address']: amount}] - example_outputs_2 = [{'bcrt1p00' + ('03' * 28): amount}] + [{'bcrt1p00' + ('03' * 28): amount}] tx_prep_2 = update_example(node=l9, method='txprepare', params={'outputs': outputs_2}) - fcc_res1 = update_example(node=l9, method='fundchannel_complete', params=[l10.info['id'], tx_prep_2['psbt']]) - txsend_res1 = update_example(node=l9, method='txsend', params=[tx_prep_2['txid']]) + update_example(node=l9, method='fundchannel_complete', params=[l10.info['id'], tx_prep_2['psbt']]) + update_example(node=l9, method='txsend', params=[tx_prep_2['txid']]) l9.rpc.close(l10.info['id']) bitcoind.generate_block(1) @@ -773,11 +773,11 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5): fund_start_res3 = l9.rpc.fundchannel_start(l10.info['id'], amount) tx_prep_3 = l9.rpc.txprepare([{fund_start_res3['funding_address']: amount}]) update_example(node=l9, method='fundchannel_cancel', params={'id': l10.info['id']}) - txdiscard_res2 = update_example(node=l9, method='txdiscard', params={'txid': tx_prep_3['txid']}) + update_example(node=l9, method='txdiscard', params={'txid': tx_prep_3['txid']}) funding_addr = l9.rpc.fundchannel_start(l10.info['id'], amount)['funding_address'] tx_prep_4 = l9.rpc.txprepare([{funding_addr: amount}]) - fcc_res2 = update_example(node=l9, method='fundchannel_complete', params={'id': l10.info['id'], 'psbt': tx_prep_4['psbt']}) - txsend_res2 = update_example(node=l9, method='txsend', params={'txid': tx_prep_4['txid']}) + update_example(node=l9, method='fundchannel_complete', params={'id': l10.info['id'], 'psbt': tx_prep_4['psbt']}) + update_example(node=l9, method='txsend', params={'txid': tx_prep_4['txid']}) l9.rpc.close(l10.info['id']) # Basic setup for l11->l12 for openchannel examples @@ -813,13 +813,13 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5): # Initiate an RBF startweight = 42 + 172 initpsbt_1 = update_example(node=l11, method='utxopsbt', params=[FUND_CHANNEL_AMOUNT_SAT, next_feerate, startweight, prev_utxos, None, True, None, None, True]) - openchannelbump_res1 = update_example(node=l11, method='openchannel_bump', params=[chan_id, FUND_CHANNEL_AMOUNT_SAT, initpsbt_1['psbt'], next_feerate]) + update_example(node=l11, method='openchannel_bump', params=[chan_id, FUND_CHANNEL_AMOUNT_SAT, initpsbt_1['psbt'], next_feerate]) update_example(node=l11, method='openchannel_abort', params={'channel_id': chan_id}) openchannelbump_res2 = update_example(node=l11, method='openchannel_bump', params={'channel_id': chan_id, 'amount': FUND_CHANNEL_AMOUNT_SAT, 'initialpsbt': initpsbt_1['psbt'], 'funding_feerate': next_feerate}) openchannelupdate_res1 = update_example(node=l11, method='openchannel_update', params={'channel_id': chan_id, 'psbt': openchannelbump_res2['psbt']}) signed_psbt_1 = update_example(node=l11, method='signpsbt', params={'psbt': openchannelupdate_res1['psbt']}) - openchannelsigned_res1 = update_example(node=l11, method='openchannel_signed', params={'channel_id': chan_id, 'signed_psbt': signed_psbt_1['signed_psbt']}) + update_example(node=l11, method='openchannel_signed', params={'channel_id': chan_id, 'signed_psbt': signed_psbt_1['signed_psbt']}) # 5x the feerate to beat the min-relay fee chan = only_one(l11.rpc.listpeerchannels(l12.info['id'])['channels']) @@ -832,7 +832,7 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5): openchannelbump_res3 = update_example(node=l11, method='openchannel_bump', params=[chan_id, FUND_CHANNEL_AMOUNT_SAT * 2, initpsbt_2['psbt'], next_feerate]) openchannelupdate_res2 = update_example(node=l11, method='openchannel_update', params=[chan_id, openchannelbump_res3['psbt']]) signed_psbt_2 = update_example(node=l11, method='signpsbt', params=[openchannelupdate_res2['psbt']]) - openchannelsigned_res2 = update_example(node=l11, method='openchannel_signed', params=[chan_id, signed_psbt_2['signed_psbt']]) + update_example(node=l11, method='openchannel_signed', params=[chan_id, signed_psbt_2['signed_psbt']]) bitcoind.generate_block(1) sync_blockheight(bitcoind, [l11]) @@ -894,20 +894,6 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5): 'amount': 'all' } ] - example_destinations_1 = [ - { - 'id': 'nodeid' + ('03' * 30) + '@127.0.0.1:19736', - 'amount': '20000sat' - }, - { - 'id': 'nodeid' + ('04' * 30) + '@127.0.0.1:19737', - 'amount': '0.0003btc' - }, - { - 'id': 'nodeid' + ('05' * 30) + '@127.0.0.1:19738', - 'amount': 'all' - } - ] multifund_res1 = update_example(node=l1, method='multifundchannel', params={ 'destinations': destinations_1, 'feerate': '10000perkw', @@ -935,20 +921,6 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5): 'amount': 50000 } ] - example_destinations_2 = [ - { - 'id': f'fakenodeid' + ('03' * 28) + '@127.0.0.1:19736', - 'amount': 50000 - }, - { - 'id': 'nodeid' + ('04' * 30) + '@127.0.0.1:19737', - 'amount': 50000 - }, - { - 'id': 'nodeid' + ('01' * 30) + '@127.0.0.1:19734', - 'amount': 50000 - } - ] multifund_res2 = update_example(node=l1, method='multifundchannel', params={'destinations': destinations_2, 'minchannels': 1}) # Close newly funded channels to bring the setup back to initial state for channel in multifund_res2['channel_ids']: @@ -969,7 +941,7 @@ def generate_autoclean_delete_examples(l1, l2, l3, l4, l5, c12, c23): try: logger.info('Auto-clean and Delete Start...') l2.rpc.close(l5.info['id']) - dfc_res1 = update_example(node=l2, method='dev-forget-channel', params={'id': l5.info['id']}, description=[f'Forget a channel by peer pubkey when only one channel exists with the peer:']) + update_example(node=l2, method='dev-forget-channel', params={'id': l5.info['id']}, description=[f'Forget a channel by peer pubkey when only one channel exists with the peer:']) # Create invoices for delpay and delinvoice examples inv_l35 = l3.rpc.invoice('50000sat', 'lbl_l35', 'l35 description') @@ -994,7 +966,7 @@ def generate_autoclean_delete_examples(l1, l2, l3, l4, l5, c12, c23): # Delinvoice l1.rpc.pay(inv_l35['bolt11']) l1.rpc.pay(inv_l37['bolt11']) - delinv_res1 = update_example(node=l3, method='delinvoice', params={'label': 'lbl_l36', 'status': 'unpaid'}) + update_example(node=l3, method='delinvoice', params={'label': 'lbl_l36', 'status': 'unpaid'}) # invoice already deleted, pay will fail; used for delpay failed example with pytest.raises(RpcError): @@ -1002,10 +974,10 @@ def generate_autoclean_delete_examples(l1, l2, l3, l4, l5, c12, c23): listsendpays_l1 = l1.rpc.listsendpays()['payments'] sendpay_g1_p1 = next((x for x in listsendpays_l1 if 'groupid' in x and x['groupid'] == 1 and 'partid' in x and x['partid'] == 2), None) - delpay_res1 = update_example(node=l1, method='delpay', params={'payment_hash': listsendpays_l1[0]['payment_hash'], 'status': 'complete'}) - delpay_res2 = update_example(node=l1, method='delpay', params=[listsendpays_l1[-1]['payment_hash'], listsendpays_l1[-1]['status']]) - delpay_res3 = update_example(node=l1, method='delpay', params={'payment_hash': sendpay_g1_p1['payment_hash'], 'status': sendpay_g1_p1['status'], 'groupid': 1, 'partid': 2}) - delinv_res2 = update_example(node=l3, method='delinvoice', params={'label': 'lbl_l37', 'status': 'paid', 'desconly': True}) + update_example(node=l1, method='delpay', params={'payment_hash': listsendpays_l1[0]['payment_hash'], 'status': 'complete'}) + update_example(node=l1, method='delpay', params=[listsendpays_l1[-1]['payment_hash'], listsendpays_l1[-1]['status']]) + update_example(node=l1, method='delpay', params={'payment_hash': sendpay_g1_p1['payment_hash'], 'status': sendpay_g1_p1['status'], 'groupid': 1, 'partid': 2}) + update_example(node=l3, method='delinvoice', params={'label': 'lbl_l37', 'status': 'paid', 'desconly': True}) # Delforward failed_forwards = l2.rpc.listforwards('failed')['forwards'] @@ -1014,7 +986,7 @@ def generate_autoclean_delete_examples(l1, l2, l3, l4, l5, c12, c23): update_example(node=l2, method='delforward', params={'in_channel': c12, 'in_htlc_id': local_failed_forwards[0]['in_htlc_id'], 'status': 'local_failed'}) if len(failed_forwards) > 0 and 'in_htlc_id' in failed_forwards[0]: update_example(node=l2, method='delforward', params={'in_channel': c12, 'in_htlc_id': failed_forwards[0]['in_htlc_id'], 'status': 'failed'}) - dfc_res2 = update_example(node=l2, method='dev-forget-channel', params={'id': l3.info['id'], 'short_channel_id': c23, 'force': True}, description=[f'Forget a channel by short channel id when peer has multiple channels:']) + update_example(node=l2, method='dev-forget-channel', params={'id': l3.info['id'], 'short_channel_id': c23, 'force': True}, description=[f'Forget a channel by short channel id when peer has multiple channels:']) # Autoclean update_example(node=l2, method='autoclean-once', params=['failedpays', 1]) @@ -1090,7 +1062,6 @@ def generate_list_examples(l1, l2, l3, c12, c23_2, inv_l31, inv_l32, offer_l23, try: logger.info('Lists Start...') # Transactions Lists - FUNDS_LEN = 3 listfunds_res1 = l1.rpc.listfunds() update_example(node=l1, method='listfunds', params={}, response=listfunds_res1) From 0d935cd671e30e93abf2f3deaf9a0221a1f22cff Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Oct 2025 14:06:52 +1030 Subject: [PATCH 29/37] tests/autogenerate-rpc-examples.py: always use largest UTXO for fundchannel example. Now order has changed, the first one is insufficient; this is more robust. Signed-off-by: Rusty Russell --- tests/autogenerate-rpc-examples.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/autogenerate-rpc-examples.py b/tests/autogenerate-rpc-examples.py index 9441b89c1e5b..5f6cd571e44f 100644 --- a/tests/autogenerate-rpc-examples.py +++ b/tests/autogenerate-rpc-examples.py @@ -864,7 +864,7 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5): l3.rpc.connect(l5.info['id'], 'localhost', l5.port) l4.rpc.connect(l1.info['id'], 'localhost', l1.port) c35res = update_example(node=l3, method='fundchannel', params={'id': l5.info['id'], 'amount': FUND_CHANNEL_AMOUNT_SAT, 'announce': True}) - outputs = l4.rpc.listfunds()['outputs'] + outputs = sorted(l4.rpc.listfunds()['outputs'], key=lambda o: o["amount_msat"], reverse=True) utxo = f"{outputs[0]['txid']}:{outputs[0]['output']}" c41res = update_example(node=l4, method='fundchannel', params={'id': l1.info['id'], 'amount': 'all', 'feerate': 'normal', 'push_msat': 100000, 'utxos': [utxo]}, From e1908078af87a4c3a990e28958addf5eb92abd7c Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Oct 2025 14:07:52 +1030 Subject: [PATCH 30/37] autogenerate-rpc-examples.py: canned blocks. Unless REGENERATE_BLOCKCHAIN is true, in which case we make them. Signed-off-by: Rusty Russell --- tests/autogenerate-rpc-examples.py | 57 ++++++++++++++++++++++++------ 1 file changed, 47 insertions(+), 10 deletions(-) diff --git a/tests/autogenerate-rpc-examples.py b/tests/autogenerate-rpc-examples.py index 5f6cd571e44f..19aff7283d62 100644 --- a/tests/autogenerate-rpc-examples.py +++ b/tests/autogenerate-rpc-examples.py @@ -97,7 +97,7 @@ def update_example(node, method, params, response=None, description=None): return response -def setup_test_nodes(node_factory, bitcoind): +def setup_test_nodes(node_factory, bitcoind, regenerate_blockchain): """Sets up six test nodes for various transaction scenarios: l1, l2, l3 for transactions and forwards l4 for complex transactions (sendpayment, keysend, renepay) @@ -137,8 +137,7 @@ def setup_test_nodes(node_factory, bitcoind): # Write the data/p2sh_wallet_hsm_secret to the hsm_path, so node can spend funds at p2sh_wrapped_addr p2sh_wrapped_addr = '2N2V4ee2vMkiXe5FSkRqFjQhiS9hKqNytv3' update_example(node=l1, method='upgradewallet', params={}) - txid = bitcoind.rpc.sendtoaddress(p2sh_wrapped_addr, 20000000 / 10 ** 8) - bitcoind.generate_block(1) + txid = bitcoind.send_and_mine_block(p2sh_wrapped_addr, 20000000) l1.daemon.wait_for_log('Owning output .* txid {} CONFIRMED'.format(txid)) # Doing it with 'reserved ok' should have 1. We use a big feerate so we can get over the RBF hump update_example(node=l1, method='upgradewallet', params={'feerate': 'urgent', 'reservedok': True}) @@ -671,7 +670,7 @@ def generate_utils_examples(l1, l2, l3, l4, l5, l6, c23_2, c34_2, inv_l11, inv_l raise -def generate_splice_examples(node_factory, bitcoind): +def generate_splice_examples(node_factory, bitcoind, regenerate_blockchain): """Generates splice related examples""" try: logger.info('Splice Start...') @@ -727,7 +726,7 @@ def generate_splice_examples(node_factory, bitcoind): raise -def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5): +def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5, regenerate_blockchain): """Generates fundchannel and openchannel related examples""" try: logger.info('Channels Start...') @@ -999,7 +998,7 @@ def generate_autoclean_delete_examples(l1, l2, l3, l4, l5, c12, c23): raise -def generate_backup_recovery_examples(node_factory, l4, l5, l6): +def generate_backup_recovery_examples(node_factory, l4, l5, l6, regenerate_blockchain): """Node backup and recovery examples""" try: logger.info('Backup and Recovery Start...') @@ -1156,11 +1155,39 @@ def setup_logging(): @unittest.skipIf(not GENERATE_EXAMPLES, 'Generates examples for doc/schema/lightning-*.json files.') +@pytest.mark.parametrize('bitcoind', [False], indirect=True) def test_generate_examples(node_factory, bitcoind, executor): """Re-generates examples for doc/schema/lightning-*.json files""" + + # Change this to True to regenerate bitcoin block & wallet. + regenerate_blockchain = (os.environ.get("REGENERATE_BLOCKCHAIN") == "1") + wallet_exists = os.access("tests/data/autogenerate-bitcoind-wallet.dat", os.F_OK) try: global ALL_RPC_EXAMPLES, REGENERATING_RPCS + if regenerate_blockchain: + if wallet_exists: + bitcoind.start(wallet_file="tests/data/autogenerate-bitcoind-wallet.dat") + else: + bitcoind.start() + else: + # This was created by bitcoind.rpc.backupwallet. Probably unnecessary, + # but reduces gratuitous differences if we have to regenerate the blockchain. + bitcoind.start(wallet_file="tests/data/autogenerate-bitcoind-wallet.dat") + with open("tests/data/autogenerate-bitcoin-blocks.json", "r") as f: + canned_blocks = json.load(f) + bitcoind.set_canned_blocks(canned_blocks) + + info = bitcoind.rpc.getblockchaininfo() + assert info['blocks'] == 0 + print(bitcoind.rpc.listwallets()) + # 102 is a funny story. When we *submitblock* the first 101 blocks, + # our wallet balance is 0. When we *generate* the frist 101 blocks, + # our wallet balance is 50. + if info['blocks'] < 102: + bitcoind.generate_block(102 - info['blocks']) + assert bitcoind.rpc.getbalance() > 0 + def list_all_examples(): """list all methods used in 'update_example' calls to ensure that all methods are covered""" try: @@ -1210,7 +1237,7 @@ def list_missing_examples(): # We make sure everyone is on predicable time os.environ['CLN_DEV_SET_TIME'] = '1738000000' - l1, l2, l3, l4, l5, l6, c12, c23, c25 = setup_test_nodes(node_factory, bitcoind) + l1, l2, l3, l4, l5, l6, c12, c23, c25 = setup_test_nodes(node_factory, bitcoind, regenerate_blockchain) c23_2, c23res2, c34_2, inv_l11, inv_l21, inv_l22, inv_l31, inv_l32, inv_l34 = generate_transactions_examples(l1, l2, l3, l4, l5, c25, bitcoind) rune_l21 = generate_runes_examples(l1, l2, l3) generate_datastore_examples(l2) @@ -1220,13 +1247,23 @@ def list_missing_examples(): generate_askrene_examples(l1, l2, l3, c12, c23_2) generate_wait_examples(l1, l2, bitcoind, executor) address_l22 = generate_utils_examples(l1, l2, l3, l4, l5, l6, c23_2, c34_2, inv_l11, inv_l22, rune_l21, bitcoind) - generate_splice_examples(node_factory, bitcoind) - generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5) + generate_splice_examples(node_factory, bitcoind, regenerate_blockchain) + generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5, regenerate_blockchain) generate_autoclean_delete_examples(l1, l2, l3, l4, l5, c12, c23) - generate_backup_recovery_examples(node_factory, l4, l5, l6) + generate_backup_recovery_examples(node_factory, l4, l5, l6, regenerate_blockchain) generate_list_examples(l1, l2, l3, c12, c23_2, inv_l31, inv_l32, offer_l23, inv_req_l1_l22, address_l22) update_examples_in_schema_files() logger.info('All Done!!!') except Exception as e: logger.error(e, exc_info=True) sys.exit(1) + + if regenerate_blockchain: + with open("tests/data/autogenerate-bitcoin-blocks.json", "w") as blockfile: + print(json.dump(bitcoind.save_blocks(), blockfile)) + logger.info('tests/data/autogenerate-bitcoin-blocks.json updated') + + # Very first run, we can dump wallet too. + if not wallet_exists: + bitcoind.rpc.backupwallet("tests/data/autogenerate-bitcoind-wallet.dat") + logger.info('tests/data/autogenerate-bitcoind-wallet.dat regenerated') From 26e0188a5076a4c795e3daf859a1c5d69e9543d6 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Oct 2025 14:08:52 +1030 Subject: [PATCH 31/37] autogenerate-rpc-examples.py: ensure blockheights are consistent. This makes our transaction generation (nlocktime) consistent, as well as our htlcs for payment. Signed-off-by: Rusty Russell --- tests/autogenerate-rpc-examples.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/autogenerate-rpc-examples.py b/tests/autogenerate-rpc-examples.py index 19aff7283d62..34b295073d31 100644 --- a/tests/autogenerate-rpc-examples.py +++ b/tests/autogenerate-rpc-examples.py @@ -138,6 +138,7 @@ def setup_test_nodes(node_factory, bitcoind, regenerate_blockchain): p2sh_wrapped_addr = '2N2V4ee2vMkiXe5FSkRqFjQhiS9hKqNytv3' update_example(node=l1, method='upgradewallet', params={}) txid = bitcoind.send_and_mine_block(p2sh_wrapped_addr, 20000000) + sync_blockheight(bitcoind, [l1, l2, l3, l4, l5, l6]) l1.daemon.wait_for_log('Owning output .* txid {} CONFIRMED'.format(txid)) # Doing it with 'reserved ok' should have 1. We use a big feerate so we can get over the RBF hump update_example(node=l1, method='upgradewallet', params={'feerate': 'urgent', 'reservedok': True}) @@ -153,10 +154,14 @@ def setup_test_nodes(node_factory, bitcoind, regenerate_blockchain): l3.rpc.connect(l4.info['id'], 'localhost', l4.port) l2.rpc.connect(l5.info['id'], 'localhost', l5.port) c12, c12res = l1.fundchannel(l2, FUND_CHANNEL_AMOUNT_SAT) + sync_blockheight(bitcoind, [l1, l2, l3, l4, l5, l6]) c23, c23res = l2.fundchannel(l3, FUND_CHANNEL_AMOUNT_SAT) + sync_blockheight(bitcoind, [l1, l2, l3, l4, l5, l6]) c34, c34res = l3.fundchannel(l4, FUND_CHANNEL_AMOUNT_SAT) + sync_blockheight(bitcoind, [l1, l2, l3, l4, l5, l6]) c25, c25res = l2.fundchannel(l5, announce_channel=False) mine_funding_to_announce(bitcoind, [l1, l2, l3, l4]) + sync_blockheight(bitcoind, [l1, l2, l3, l4, l5, l6]) l1.wait_channel_active(c12) l1.wait_channel_active(c23) l1.wait_channel_active(c34) @@ -1056,10 +1061,12 @@ def get_hsm_secret(n): raise -def generate_list_examples(l1, l2, l3, c12, c23_2, inv_l31, inv_l32, offer_l23, inv_req_l1_l22, address_l22): +def generate_list_examples(bitcoind, l1, l2, l3, c12, c23_2, inv_l31, inv_l32, offer_l23, inv_req_l1_l22, address_l22): """Generates lists rpc examples""" try: logger.info('Lists Start...') + # Make sure all nodes are caught up. + sync_blockheight(bitcoind, [l1, l2, l3]) # Transactions Lists listfunds_res1 = l1.rpc.listfunds() update_example(node=l1, method='listfunds', params={}, response=listfunds_res1) @@ -1251,7 +1258,7 @@ def list_missing_examples(): generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5, regenerate_blockchain) generate_autoclean_delete_examples(l1, l2, l3, l4, l5, c12, c23) generate_backup_recovery_examples(node_factory, l4, l5, l6, regenerate_blockchain) - generate_list_examples(l1, l2, l3, c12, c23_2, inv_l31, inv_l32, offer_l23, inv_req_l1_l22, address_l22) + generate_list_examples(bitcoind, l1, l2, l3, c12, c23_2, inv_l31, inv_l32, offer_l23, inv_req_l1_l22, address_l22) update_examples_in_schema_files() logger.info('All Done!!!') except Exception as e: From 20a0f8cb85fd6bdd653c5a16716dfe00157cea10 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Oct 2025 14:09:52 +1030 Subject: [PATCH 32/37] autogenerate-rpc-examples.py: use fixed port numbers. This makes many of our information outputs consistent. Signed-off-by: Rusty Russell --- contrib/pyln-testing/pyln/testing/utils.py | 44 +++++++++++++--------- tests/autogenerate-rpc-examples.py | 25 +++++++++++- 2 files changed, 51 insertions(+), 18 deletions(-) diff --git a/contrib/pyln-testing/pyln/testing/utils.py b/contrib/pyln-testing/pyln/testing/utils.py index 69216d8dcf4f..01b66b63bc66 100644 --- a/contrib/pyln-testing/pyln/testing/utils.py +++ b/contrib/pyln-testing/pyln/testing/utils.py @@ -402,14 +402,10 @@ class BitcoinD(TailableProc): def __init__(self, bitcoin_dir="/tmp/bitcoind-test", rpcport=None): TailableProc.__init__(self, bitcoin_dir, verbose=False) - if rpcport is None: - self.reserved_rpcport = reserve_unused_port() - rpcport = self.reserved_rpcport - else: - self.reserved_rpcport = None - self.bitcoin_dir = bitcoin_dir self.rpcport = rpcport + self.reserved_rpcport = None + self.port_setup = False self.prefix = 'bitcoind' self.canned_blocks = None @@ -433,21 +429,29 @@ def __init__(self, bitcoin_dir="/tmp/bitcoind-test", rpcport=None): '-debug=validation', '-rpcthreads=20', ] - # For up to and including 0.16.1, this needs to be in main section. - BITCOIND_CONFIG['rpcport'] = rpcport - # For after 0.16.1 (eg. 3f398d7a17f136cd4a67998406ca41a124ae2966), this - # needs its own [regtest] section. - BITCOIND_REGTEST = {'rpcport': rpcport} self.conf_file = os.path.join(bitcoin_dir, 'bitcoin.conf') + + def set_port(self, rpcport): + assert self.port_setup is False + + BITCOIND_REGTEST = {'rpcport': rpcport} write_config(self.conf_file, BITCOIND_CONFIG, BITCOIND_REGTEST) - self.rpc = SimpleBitcoinProxy(btc_conf_file=self.conf_file) - self.proxies = [] + self.port_setup = True def __del__(self): if self.reserved_rpcport is not None: drop_unused_port(self.reserved_rpcport) def start(self, wallet_file=None): + if not self.port_setup: + if self.rpcport is None: + self.reserved_rpcport = reserve_unused_port() + self.rpcport = self.reserved_rpcport + self.set_port(self.rpcport) + + self.rpc = SimpleBitcoinProxy(btc_conf_file=self.conf_file) + self.proxies = [] + TailableProc.start(self) self.wait_for_log("Done loading", timeout=TIMEOUT) @@ -1671,6 +1675,7 @@ def split_options(self, opts): 'start', 'gossip_store_file', 'no_entropy', + 'base_port', ] node_opts = {k: v for k, v in opts.items() if k in node_opt_keys} cli_opts = {k: v for k, v in opts.items() if k not in node_opt_keys} @@ -1717,10 +1722,14 @@ def get_nodes(self, num_nodes, opts=None): def get_node(self, node_id=None, options=None, dbfile=None, bkpr_dbfile=None, feerates=(15000, 11000, 7500, 3750), start=True, wait_for_bitcoind_sync=True, may_fail=False, - expect_fail=False, cleandir=True, gossip_store_file=None, unused_grpc_port=True, **kwargs): + expect_fail=False, cleandir=True, gossip_store_file=None, unused_grpc_port=True, base_port=None, **kwargs): node_id = self.get_node_id() if not node_id else node_id - port = reserve_unused_port() - grpc_port = self.get_unused_port() if unused_grpc_port else None + if base_port: + port = base_port + node_id * 2 - 1 + grpc_port = base_port + node_id * 2 + else: + port = reserve_unused_port() + grpc_port = self.get_unused_port() if unused_grpc_port else None lightning_dir = os.path.join( self.directory, "lightning-{}/".format(node_id)) @@ -1744,7 +1753,8 @@ def get_node(self, node_id=None, options=None, dbfile=None, node.set_feerates(feerates, False) self.nodes.append(node) - self.reserved_ports.append(port) + if not base_port: + self.reserved_ports.append(port) if dbfile: with open(os.path.join(node.daemon.lightning_dir, TEST_NETWORK, 'lightningd.sqlite3'), 'xb') as out: diff --git a/tests/autogenerate-rpc-examples.py b/tests/autogenerate-rpc-examples.py index 34b295073d31..ca1c8f528fa2 100644 --- a/tests/autogenerate-rpc-examples.py +++ b/tests/autogenerate-rpc-examples.py @@ -10,6 +10,7 @@ from pyln.client import RpcError, Millisatoshi # type: ignore from pyln.testing.utils import GENERATE_EXAMPLES from utils import only_one, mine_funding_to_announce, sync_blockheight, wait_for, first_scid, serialize_payload_tlv, serialize_payload_final_tlv +import socket import sys import os import time @@ -32,6 +33,7 @@ EXAMPLES_JSON = {} LOG_FILE = './tests/autogenerate-examples-status.log' IGNORE_RPCS_LIST = ['dev-splice', 'reckless', 'sql-template'] +BASE_PORTNUM = 30000 if os.path.exists(LOG_FILE): open(LOG_FILE, 'w').close() @@ -42,6 +44,16 @@ class MissingExampleError(Exception): pass +def check_ports(portrange): + for port in portrange: + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + try: + s.bind(("127.0.0.1", port)) + except OSError: + logger.error(f'Port {port} in use!') + raise + + def update_examples_in_schema_files(): """Update examples in JSON schema files""" try: @@ -129,6 +141,7 @@ def setup_test_nodes(node_factory, bitcoind, regenerate_blockchain): 'broken_log': '.*', 'dev-bitcoind-poll': 3, # Default 1; increased to avoid rpc failures 'no_entropy': True, + 'base_port': BASE_PORTNUM, }.copy() for i in range(6) ] @@ -688,6 +701,7 @@ def generate_splice_examples(node_factory, bitcoind, regenerate_blockchain): 'broken_log': '.*', 'dev-bitcoind-poll': 3, 'no_entropy': True, + 'base_port': BASE_PORTNUM, }.copy() for i in range(2) ] @@ -745,6 +759,7 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5, regenerat 'broken_log': '.*', 'dev-bitcoind-poll': 3, 'no_entropy': True, + 'base_port': BASE_PORTNUM, }.copy() for i in range(2) ] @@ -796,6 +811,7 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5, regenerat 'broken_log': '.*', 'dev-bitcoind-poll': 3, 'no_entropy': True, + 'base_port': BASE_PORTNUM, }.copy() for i in range(2) ] @@ -1009,7 +1025,7 @@ def generate_backup_recovery_examples(node_factory, l4, l5, l6, regenerate_block logger.info('Backup and Recovery Start...') # New node l13 used for recover and exposesecret examples - l13 = node_factory.get_node(options={'exposesecret-passphrase': "test_exposesecret"}, no_entropy=True) + l13 = node_factory.get_node(options={'exposesecret-passphrase': "test_exposesecret"}, no_entropy=True, base_portnum=BASE_PORTNUM) update_example(node=l13, method='exposesecret', params={'passphrase': 'test_exposesecret'}) update_example(node=l13, method='exposesecret', params=['test_exposesecret', 'cln2']) @@ -1169,6 +1185,13 @@ def test_generate_examples(node_factory, bitcoind, executor): # Change this to True to regenerate bitcoin block & wallet. regenerate_blockchain = (os.environ.get("REGENERATE_BLOCKCHAIN") == "1") wallet_exists = os.access("tests/data/autogenerate-bitcoind-wallet.dat", os.F_OK) + + # Make sure we can get the ports we expect. + check_ports(range(BASE_PORTNUM + 1, BASE_PORTNUM + 40)) + + # Make sure bitcoind doesn't steal our ports! + bitcoind.set_port(BASE_PORTNUM) + try: global ALL_RPC_EXAMPLES, REGENERATING_RPCS From 4d20798adaa3ec048936a9b50fbd23143d699388 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Oct 2025 14:10:52 +1030 Subject: [PATCH 33/37] autogenerate-rpc-examples.py: more refinement. 1. Don't mangle bookkeeper events. 2. Use l3, not l1, for listtransactions: it's more stable. 3. Use l2, not l1, for listpeerchannels and listchannels. 3. Use l2, not l2, for listfunds. (l1 has a lot of variation). Signed-off-by: Rusty Russell --- tests/autogenerate-rpc-examples.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/tests/autogenerate-rpc-examples.py b/tests/autogenerate-rpc-examples.py index ca1c8f528fa2..965bf8bdc7cd 100644 --- a/tests/autogenerate-rpc-examples.py +++ b/tests/autogenerate-rpc-examples.py @@ -416,7 +416,6 @@ def generate_bookkeeper_examples(l2, l3, c23_2_chan_id): update_example(node=l3, method='bkpr-listbalances', params={}) bkprlistaccountevents_res1 = l3.rpc.bkpr_listaccountevents(c23_2_chan_id) - bkprlistaccountevents_res1['events'] = [next((event for event in bkprlistaccountevents_res1['events'] if event['tag'] == 'channel_open'), None)] update_example(node=l3, method='bkpr-listaccountevents', params=[c23_2_chan_id], response=bkprlistaccountevents_res1) bkprlistaccountevents_res2 = l3.rpc.bkpr_listaccountevents() update_example(node=l3, method='bkpr-listaccountevents', params={}, response=bkprlistaccountevents_res2) @@ -1084,8 +1083,8 @@ def generate_list_examples(bitcoind, l1, l2, l3, c12, c23_2, inv_l31, inv_l32, o # Make sure all nodes are caught up. sync_blockheight(bitcoind, [l1, l2, l3]) # Transactions Lists - listfunds_res1 = l1.rpc.listfunds() - update_example(node=l1, method='listfunds', params={}, response=listfunds_res1) + listfunds_res1 = l2.rpc.listfunds() + update_example(node=l2, method='listfunds', params={}, response=listfunds_res1) listforwards_res1 = l2.rpc.listforwards(in_channel=c12, out_channel=c23_2, status='settled') update_example(node=l2, method='listforwards', params={'in_channel': c12, 'out_channel': c23_2, 'status': 'settled'}, response=listforwards_res1) @@ -1112,8 +1111,8 @@ def generate_list_examples(bitcoind, l1, l2, l3, c12, c23_2, inv_l31, inv_l32, o listpays_res2 = l2.rpc.listpays() update_example(node=l2, method='listpays', params={}, response=listpays_res2) - listtransactions_res1 = l1.rpc.listtransactions() - update_example(node=l1, method='listtransactions', params={}, response=listtransactions_res1) + listtransactions_res3 = l3.rpc.listtransactions() + update_example(node=l3, method='listtransactions', params={}, response=listtransactions_res3) listclosedchannels_res1 = l2.rpc.listclosedchannels() update_example(node=l2, method='listclosedchannels', params={}, response=listclosedchannels_res1) @@ -1126,15 +1125,15 @@ def generate_list_examples(bitcoind, l1, l2, l3, c12, c23_2, inv_l31, inv_l32, o update_example(node=l2, method='listsqlschemas', params={'table': 'offers'}) update_example(node=l2, method='listsqlschemas', params=['closedchannels']) - listpeerchannels_res1 = l1.rpc.listpeerchannels(l2.info['id']) - update_example(node=l1, method='listpeerchannels', params={'id': l2.info['id']}, response=listpeerchannels_res1) - listpeerchannels_res2 = l1.rpc.listpeerchannels() - update_example(node=l1, method='listpeerchannels', params={}, response=listpeerchannels_res2) + listpeerchannels_res1 = l2.rpc.listpeerchannels(l1.info['id']) + update_example(node=l2, method='listpeerchannels', params={'id': l1.info['id']}, response=listpeerchannels_res1) + listpeerchannels_res2 = l2.rpc.listpeerchannels() + update_example(node=l2, method='listpeerchannels', params={}, response=listpeerchannels_res2) listchannels_res1 = l1.rpc.listchannels(c12) update_example(node=l1, method='listchannels', params={'short_channel_id': c12}, response=listchannels_res1) - listchannels_res2 = l1.rpc.listchannels() - update_example(node=l1, method='listchannels', params={}, response=listchannels_res2) + listchannels_res2 = l2.rpc.listchannels() + update_example(node=l2, method='listchannels', params={}, response=listchannels_res2) listnodes_res1 = l2.rpc.listnodes(l3.info['id']) update_example(node=l2, method='listnodes', params={'id': l3.info['id']}, response=listnodes_res1) From 52cdce653b98c1922164200804ae8748fedc5aaf Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Oct 2025 14:11:52 +1030 Subject: [PATCH 34/37] autogenerate-rpc-examples.py: more block generation and synchronization. Signed-off-by: Rusty Russell --- tests/autogenerate-rpc-examples.py | 35 ++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/tests/autogenerate-rpc-examples.py b/tests/autogenerate-rpc-examples.py index 965bf8bdc7cd..0a3b0ba18b40 100644 --- a/tests/autogenerate-rpc-examples.py +++ b/tests/autogenerate-rpc-examples.py @@ -161,6 +161,7 @@ def setup_test_nodes(node_factory, bitcoind, regenerate_blockchain): for node in fund_nodes: node.fundwallet(FUND_WALLET_AMOUNT_SAT) # Connect nodes and fund channels + sync_blockheight(bitcoind, [l1, l2, l3, l4, l5, l6]) update_example(node=l2, method='getinfo', params={}) update_example(node=l1, method='connect', params={'id': l2.info['id'], 'host': 'localhost', 'port': l2.daemon.port}) update_example(node=l2, method='connect', params={'id': l3.info['id'], 'host': 'localhost', 'port': l3.daemon.port}) @@ -247,7 +248,7 @@ def generate_transactions_examples(l1, l2, l3, l4, l5, c25, bitcoind): update_example(node=l2, method='close', params={'id': l3.info['id'], 'unilateraltimeout': 1}) address_l41 = l4.rpc.newaddr() update_example(node=l3, method='close', params={'id': l4.info['id'], 'destination': address_l41['bech32']}) - bitcoind.generate_block(1) + bitcoind.generate_block(1, wait_for_mempool=2) sync_blockheight(bitcoind, [l1, l2, l3, l4]) # Channel 2 to 3 is closed, l1->l3 payment will fail where `failed` forward will be saved on l2 @@ -263,6 +264,12 @@ def generate_transactions_examples(l1, l2, l3, l4, l5, c25, bitcoind): update_example(node=l2, method='setchannel', params={'id': c23_2, 'ignorefeelimits': True}) update_example(node=l2, method='setchannel', params={'id': c25, 'feebase': 4000, 'feeppm': 300, 'enforcedelay': 0}) + # Those involved in the channel close will instaclose, so listchannels will differ. + # Make sure everyone sees those new channels though. + for n in [l1, l2, l3, l4]: + wait_for(lambda: len(n.rpc.listchannels(c23_2)['channels']) == 2) + wait_for(lambda: len(n.rpc.listchannels(c34_2)['channels']) == 2) + # Some more invoices for signing and preapproving inv_l12 = l1.rpc.invoice(1000, 'label inv_l12', 'description inv_l12') inv_l24 = l2.rpc.invoice(123000, 'label inv_l24', 'description inv_l24', 3600) @@ -621,6 +628,7 @@ def generate_utils_examples(l1, l2, l3, l4, l5, l6, c23_2, c34_2, inv_l11, inv_l utxos = [f"{funds_l2['outputs'][2]['txid']}:{funds_l2['outputs'][2]['output']}"] withdraw_l22 = update_example(node=l2, method='withdraw', params={'destination': address_l22['p2tr'], 'satoshi': 'all', 'feerate': '20000perkb', 'minconf': 0, 'utxos': utxos}) bitcoind.generate_block(4, wait_for_mempool=[withdraw_l22['txid']]) + sync_blockheight(bitcoind, [l2]) update_example(node=l2, method='multiwithdraw', params={'outputs': [{l1.rpc.newaddr()['bech32']: '2222000msat'}, {l1.rpc.newaddr()['bech32']: '3333000msat'}]}) update_example(node=l2, method='multiwithdraw', params={'outputs': [{l1.rpc.newaddr('p2tr')['p2tr']: 1000}, {l1.rpc.newaddr()['bech32']: 1000}, {l2.rpc.newaddr()['bech32']: 1000}, {l3.rpc.newaddr()['bech32']: 1000}, {l3.rpc.newaddr()['bech32']: 1000}, {l4.rpc.newaddr('p2tr')['p2tr']: 1000}, {l1.rpc.newaddr()['bech32']: 1000}]}) l2.rpc.connect(l4.info['id'], 'localhost', l4.port) @@ -668,6 +676,9 @@ def generate_utils_examples(l1, l2, l3, l4, l5, l6, c23_2, c34_2, inv_l11, inv_l l1.rpc.reserveinputs(fullpsbt) signed_psbt = l1.rpc.signpsbt(fullpsbt)['signed_psbt'] update_example(node=l1, method='sendpsbt', params={'psbt': signed_psbt}) + # Includes two multiwithdraw calls above + bitcoind.generate_block(1, wait_for_mempool=3) + sync_blockheight(bitcoind, [l1, l2, l3, l4]) # SQL update_example(node=l1, method='sql', params={'query': 'SELECT id FROM peers'}, description=['A simple peers selection query:']) @@ -721,7 +732,7 @@ def generate_splice_examples(node_factory, bitcoind, regenerate_blockchain): signpsbt_res1 = l7.rpc.signpsbt(spupdate2_res1['psbt']) update_example(node=l7, method='splice_signed', params={'channel_id': chan_id_78, 'psbt': signpsbt_res1['signed_psbt']}) - bitcoind.generate_block(1) + bitcoind.generate_block(1, wait_for_mempool=1) sync_blockheight(bitcoind, [l7]) l7.daemon.wait_for_log(' to CHANNELD_NORMAL') time.sleep(1) @@ -736,6 +747,8 @@ def generate_splice_examples(node_factory, bitcoind, regenerate_blockchain): spupdate2_res2 = update_example(node=l7, method='splice_update', params=[chan_id_78, spupdate1_res2['psbt']]) assert(spupdate2_res2['commitments_secured'] is True) update_example(node=l7, method='splice_signed', params={'channel_id': chan_id_78, 'psbt': spupdate2_res2['psbt']}) + bitcoind.generate_block(1, wait_for_mempool=1) + sync_blockheight(bitcoind, [l7, l8]) update_example(node=l7, method='stop', params={}) logger.info('Splice Done!') @@ -766,7 +779,6 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5, regenerat amount = 2 ** 24 l9.fundwallet(amount + 10000000) - bitcoind.generate_block(1) wait_for(lambda: len(l9.rpc.listfunds()["outputs"]) != 0) l9.rpc.connect(l10.info['id'], 'localhost', l10.port) @@ -784,8 +796,8 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5, regenerat update_example(node=l9, method='txsend', params=[tx_prep_2['txid']]) l9.rpc.close(l10.info['id']) - bitcoind.generate_block(1) - sync_blockheight(bitcoind, [l9]) + bitcoind.generate_block(1, wait_for_mempool=1) + sync_blockheight(bitcoind, [l9, l10]) amount = 1000000 fund_start_res3 = l9.rpc.fundchannel_start(l10.info['id'], amount) @@ -851,10 +863,11 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5, regenerat openchannelbump_res3 = update_example(node=l11, method='openchannel_bump', params=[chan_id, FUND_CHANNEL_AMOUNT_SAT * 2, initpsbt_2['psbt'], next_feerate]) openchannelupdate_res2 = update_example(node=l11, method='openchannel_update', params=[chan_id, openchannelbump_res3['psbt']]) signed_psbt_2 = update_example(node=l11, method='signpsbt', params=[openchannelupdate_res2['psbt']]) - update_example(node=l11, method='openchannel_signed', params=[chan_id, signed_psbt_2['signed_psbt']]) + psbt2_txid = update_example(node=l11, method='openchannel_signed', params=[chan_id, signed_psbt_2['signed_psbt']])['txid'] - bitcoind.generate_block(1) - sync_blockheight(bitcoind, [l11]) + bitcoind.generate_block(1, wait_for_mempool=psbt2_txid) + sync_blockheight(bitcoind, [l11, l12]) + # FIXME: l11 doesn't remove initial transaction when it RBFs l11.daemon.wait_for_log(' to CHANNELD_NORMAL') # Fundpsbt, channelopen init, abort, unreserve @@ -869,8 +882,6 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5, regenerat update_example(node=l11, method='unreserveinputs', params=[psbt_init_res2['psbt']]) # Reserveinputs - bitcoind.generate_block(1) - sync_blockheight(bitcoind, [l11]) outputs = l11.rpc.listfunds()['outputs'] psbt_1 = bitcoind.rpc.createpsbt([{'txid': outputs[0]['txid'], 'vout': outputs[0]['output']}], []) update_example(node=l11, method='reserveinputs', params={'psbt': psbt_1}) @@ -893,6 +904,7 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5, regenerat l4.rpc.close(c41res['channel_id']) l3.rpc.disconnect(l5.info['id'], True) l4.rpc.disconnect(l1.info['id'], True) + wait_for(lambda: len(bitcoind.rpc.getrawmempool()) == 4) # Multifundchannel 2 l1.fundwallet(10**8) @@ -924,6 +936,7 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5, regenerat ]) for channel in multifund_res1['channel_ids']: l1.rpc.close(channel['channel_id']) + wait_for(lambda: len(bitcoind.rpc.getrawmempool()) == 4) l1.fundwallet(10**8) destinations_2 = [ @@ -947,7 +960,7 @@ def generate_channels_examples(node_factory, bitcoind, l1, l3, l4, l5, regenerat l1.rpc.disconnect(l3.info['id'], True) l1.rpc.disconnect(l4.info['id'], True) l1.rpc.disconnect(l5.info['id'], True) - bitcoind.generate_block(1) + bitcoind.generate_block(1, wait_for_mempool=2) sync_blockheight(bitcoind, [l1, l3, l4, l5]) logger.info('Channels Done!') except Exception as e: From 15767004c33f609e88b97591d4cea06443fef3ea Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Oct 2025 14:12:52 +1030 Subject: [PATCH 35/37] autogenerate-rpc-examples.py: rewrite problematic examples. And hand in CLN_NEXT_VERSION to replace the version string. Signed-off-by: Rusty Russell --- Makefile | 8 +- tests/autogenerate-rpc-examples.py | 161 +++++++++++++++++++++++++++++ 2 files changed, 167 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 94543238b856..b3ddec5b2b83 100644 --- a/Makefile +++ b/Makefile @@ -590,14 +590,18 @@ repeat-doc-examples: echo "----------------------------------" >> tests/autogenerate-examples-repeat.log; \ echo "Iteration $$i" >> tests/autogenerate-examples-repeat.log; \ echo "----------------------------------" >> tests/autogenerate-examples-repeat.log; \ - VALGRIND=0 TIMEOUT=40 TEST_DEBUG=1 GENERATE_EXAMPLES=1 pytest -vvv tests/autogenerate-rpc-examples.py; \ + VALGRIND=0 TIMEOUT=40 TEST_DEBUG=1 GENERATE_EXAMPLES=1 CLN_NEXT_VERSION=$(CLN_NEXT_VERSION) pytest -vvv tests/autogenerate-rpc-examples.py; \ git diff >> tests/autogenerate-examples-repeat.log; \ git reset --hard; \ echo "----------------------------------" >> tests/autogenerate-examples-repeat.log; \ done update-doc-examples: - TEST_DEBUG=1 VALGRIND=0 GENERATE_EXAMPLES=1 $(PYTEST) $(PYTEST_OPTS) --timeout=1200 tests/autogenerate-rpc-examples.py && $(MAKE) $(MSGGEN_GEN_ALL) + TEST_DEBUG=1 VALGRIND=0 GENERATE_EXAMPLES=1 CLN_NEXT_VERSION=$(CLN_NEXT_VERSION) $(PYTEST) $(PYTEST_OPTS) --timeout=1200 tests/autogenerate-rpc-examples.py && $(MAKE) $(MSGGEN_GEN_ALL) + +# If you changed tests/autogenerate-rpc-examples.py to require new blocks, you have to run this: +update-doc-examples-newchain: + TEST_DEBUG=1 VALGRIND=0 GENERATE_EXAMPLES=1 CLN_NEXT_VERSION=$(CLN_NEXT_VERSION) REGENERATE_BLOCKCHAIN=1 $(PYTEST) $(PYTEST_OPTS) --timeout=1200 tests/autogenerate-rpc-examples.py && $(MAKE) $(MSGGEN_GEN_ALL) check-doc-examples: update-doc-examples git diff --exit-code HEAD diff --git a/tests/autogenerate-rpc-examples.py b/tests/autogenerate-rpc-examples.py index 0a3b0ba18b40..c8ebecbecff2 100644 --- a/tests/autogenerate-rpc-examples.py +++ b/tests/autogenerate-rpc-examples.py @@ -9,6 +9,8 @@ from fixtures import TEST_NETWORK from pyln.client import RpcError, Millisatoshi # type: ignore from pyln.testing.utils import GENERATE_EXAMPLES +from typing import Any, Mapping, Dict, List +from dataclasses import dataclass from utils import only_one, mine_funding_to_announce, sync_blockheight, wait_for, first_scid, serialize_payload_tlv, serialize_payload_final_tlv import socket import sys @@ -54,8 +56,167 @@ def check_ports(portrange): raise +@dataclass(frozen=True) +class Rewriter: + section: str # e.g. "connect" + example_id: str # e.g. "example:connect#1" + responses: List[Mapping[str, Any]] + + +def _merge_list(dst: List[Any], patch: List[Any]) -> None: + """Element-wise list merge. Lengths must be the same""" + assert len(patch) == len(dst) + for i, pv in enumerate(patch): + dv = dst[i] + if isinstance(pv, Mapping) and isinstance(dv, dict): + _deep_update(dv, pv) + else: + dst[i] = pv + + +def _deep_update(dst: Dict[str, Any], patch: Mapping[str, Any]) -> None: + """Deep merge into dst, modifying it in place.""" + for k, v in patch.items(): + if isinstance(v, Mapping) and isinstance(dst.get(k), dict): + _deep_update(dst[k], v) + elif isinstance(v, list) and isinstance(dst.get(k), list): + _merge_list(dst[k], v) + else: + dst[k] = v + + +def rewrite_example(all_examples: Dict[str, Any], rw: Rewriter) -> None: + """Modify the examples dict in place for the specified example.""" + section = all_examples.get(rw.section) + if not section or "examples" not in section: + raise KeyError(f"Section {rw.section!r} not found") + + for ex in section["examples"]: + req = ex.get("request", {}) + resp = ex.get("response", {}) + + if req.get("id") == rw.example_id: + for resp_patch in rw.responses: + _deep_update(resp, resp_patch) + return + + raise ValueError(f"Example with id {rw.example_id!r} not found in section {rw.section!r}") + + +def fixup_listconfigs(configvars: Dict[str, Dict[str, Any]]) -> Dict[str, Dict[str, Any]]: + # Boutique: getinfo plugin paths will contain build directory: change them to /usr/local/libexec/plugins/ + for cv in configvars.values(): + if 'plugin' in cv: + cv['plugin'] = "/usr/local/libexec/plugins/" + cv['plugin'].split('/')[-1] + # And they are in plugin-response order, so sort: + return dict(sorted(configvars.items(), + key=lambda kv: (1, kv[1]["plugin"], kv[0]) if "plugin" in kv[1] else (0, "", ""))) + + +def rewrite_examples(examples: Dict[str, Any]): + """Despite being deterministic, some thing still need fixing up""" + + canned_scbs = ["0000000000000006f4e1de801de57374d5737da622611e3a1ad9f16d5df9c30fceecc11ce732eeeb022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59017f000001a95cbe3270e5e0998af5eb0a67f7bf6e8d5b3d3d43059b3e4cfbd1e4fca6152c51320000000100000000000f42400003401000000000eb015c0000fffffffffffe000000020000ffffffffffff3283fc1863a9702a8e188ed55475324e55485a8758d2068cfea35851418c55740000fffffffffffed00ec892b1739b55ddc0cca2988d8731eb33f2295c1fcc13fdbdfff9d3f85d6d038402a6939f0f9d5c7a41464169eb692b4d2d73266b3c46345cd036ca577a15bdeeaa027662682a646ce7671c3a091bf639176e87d3379022126b209ebadadae19ffc0e02c59668c64362eaeabf44ee4f10b98fc92412cbea74b6f3a917423dfdf3ca282602773e6c29472ab708e5b127e8ae1ce2d8b7f56b457299f93bb72bb73fdbcf91770501010702a5f8", + "000000000000000121bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d017f000001dcf8fdd5381f36008c3eac24cdde5ec0fea8f39240575ef0cb4406cb51ad419dd7810000000000000000000f424000034010000000011301840000fffffffffffa000000030000fffffffffffb8ff7d0df4eee78e558b4e07f82049aaa933f4f4932e13e1e7fee5cb103f7a0b50000fffffffffffa79176754ea338ffa080591b946a6ac1c47ff579ae7e45857bf01261ebe1c46ba0000fffffffffffcbdb924885293efdaa1ba8f556161f4fe525c19483def49b9af85c1623bc6d27b038402add69f29ad433cb7d4c9470f2d49d80245fd9e76a992197528a131e37711efac02c57de22185162001ffaf2e61b053b1d0e280d73ecec1b04916df2c65642d94a102cd4e1a07ee85714b6eada09d9cf81aeb15bfc72ddd003235530c58bbd0c0144902b10f36d2ebab3ce560abf15ceb1bef619491e0597a794fdafcfdf8708eec9e2d0501010702a5f8", + "00000000000000027512083907c74ed3a045e9bf772b3d72948eb93daf84a1cee57108800451aaf2035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d017f000001dcf80239a9c9f2a91e69ba01800baf71f55efe457677b2e5cbd640b888dc1c9375b40000000000000000000f42400003401000000000c301340000ffffffffffff000000010000ffffffffffff0e07b6188dd51f15bb5cb9027950bf487a612dca57e2928de3f28f6ee796978b03840330b7ddf07e5bc779ea468875371ea25b560491c5feaeeb5e229ded3820d1d69103620748b3796c4988dd0fc63b92ae011dc989f15c433a55ed38e24318a43b4c93021bfe48bb1aded55878b00a3f00c5c1bffa1010510d8ba1c6372012ac9c3205d20201604aa7056ab8926038a846014bdbe4874ceef7ce45141b8009b0e2f49e7ec70501010702a5f8", + "0000000000000003222d999f537e32e9458c5db17a63e012dcced61340de06fda5bc30566270b0aa0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f0000017531932479f6d82ee59c7aa67b99568de0a31c202f6a3ff18a6bdd1ec22683cf026500000000000000000bebb3cb00034010000000009b010c0001000000000000000000000384021f90b5f38e0c0ea50bccfcf70a32cd4395c8c544e70636b7cc41831fe33fb4ce03bcfb0d457dfa07f508f434e6a2f040dd3dd233e7002dbe1c1b5d86ed5d3efd76030a4ce755504748f47401fc016578a52e104cbbd28251f10b11e4b3e55d0fe1d303986bdd0842662b8d0d18147630a720e952a2cda624c63ef4903357d27e54f7920501000702a5f8", + "0000000000000004a4a379248e49d207cc984646e632e1a31105a85708b9d6d961a5018fdd489f5a0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f000001970c7f07a15ce1fe1519d46536c4036f1c13527fa8bf52f6a5299b860f982ba2ed7e00000001000000000000753000034010000000009b010c000100000000000000000000038402c8aabcf1224df10e9d803dc3918797892fe0abec56d3e06f121bcebbe9ab0a2c03bd181375d57b8b1d15def9c5f9007b3c3ff98a140c0a44c9dc5f54ac7ea4baf30310952e08f9960711d8142dfa171c0fc2348762acea003f3897397f6ace8454130382da2a229450c4a8e8cea70bbd147eaaf981184bff8c1d70b70c30a494d848420501010702a5f8", + "000000000000000509eb55872cd9039ecd08281af756e23b15aad4129fd6a9bcd71b472114ebf43a0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f000001970c64ed91a21c10208d715b59801b12b4a6eff9ea9e4e7d45971c298b62d90ece8e00000000000000000000c35000034010000000009b010c000100000000000000000000038402e885f38e784050b386fb32d20935acc61059d8b02b6bec0ac2bfc8b2c5cf7f3103ae69dbfc6511ba0781c13113e16e1557a875b910cb1cb1fe1ef95a7edb36135a03758d5faa8515942873911e21869b1b90a4be72af14b394bc064da6ba518b087003750b588cd1fb8d60276c12c1c3eef7e302e3772414234404289db8c10f5731320501010702a5f8"] + + rewrites = [ + # The command_id is highly caller dependent, so clean it up. + Rewriter("askrene-listreservations", + "example:askrene-listreservations#1", + [{"reservations": [{'command_id': 'examples.py:askrene-reserve#1/cln:askrene-reserve#2'}, + {'command_id': 'examples.py:askrene-reserve#2/cln:askrene-reserve#3'}, + {'command_id': 'examples.py:askrene-reserve#3/cln:askrene-reserve#4'}, + {'command_id': 'examples.py:askrene-reserve#4/cln:askrene-reserve#5'}]}]), + # The proof changes each time + Rewriter("fetchbip353", + "example:fetchbip353#1", + [{"proof": "0473656e6404736f6d650475736572105f626974636f696e2d7061796d656e740673617473746f026d65000005000100000e10002c046d6174740475736572105f626974636f696e2d7061796d656e740b6d617474636f72616c6c6f03636f6d000473656e6404736f6d650475736572105f626974636f696e2d7061796d656e740673617473746f026d6500002e000100000e10005d00050d0600000e1068cbae9b68b92483d1730673617473746f026d6500791e02a2bcc49002f748cf633b058fabf9975dce37ae6383429819624a898a0e6c7f4931fd84ca7ba8120c00f220a9a71a799c8e91acd635a34281dc4bc33e0f046d6174740475736572105f626974636f696e2d7061796d656e740b6d617474636f72616c6c6f03636f6d000010000100000e1001ecff626974636f696e3a626331717a7477793678656e337a647474377a3076726761706d6a74667a3861636a6b6670356670376c3f6c6e6f3d6c6e6f317a7235717975677167736b726b37306b716d7571377633646e7232666e6d68756b7073396e386875743438766b7170716e736b743273767371776a616b70376b36707968746b7578773779326b716d73786c777275687a7176307a736e686839713374397868783339737563367173723037656b6d3565736479756d307736366d6e783876647175777670376470356a70376a337635637036616a3077333239666e6b7171763630713936737a356e6b726335723935716666783030327135337471646beb3878396d32746d7438356a74706d63796376666e727078336c723435683267376e6133736563377867756374667a7a636d386a6a71746a3579613237746536306a303376707430767139746d326e3979786c32686e67666e6d79676573613235733475347a6c78657771707670393478743772757234726878756e776b74686b39766c79336c6d356868307071763461796d6371656a6c6773736e6c707a776c6767796b6b616a7037796a73356a76723261676b79797063646c6a323830637934366a70796e73657a72636a326b7761326c797238787664366c666b706834787278746b327863336c7071046d6174740475736572105f626974636f696e2d7061796d656e740b6d617474636f72616c6c6f03636f6d00002e000100000e10006300100d0500000e1068ccc7d068ba3db826480b6d617474636f72616c6c6f03636f6d00f68a7e7a8f8643e433f854a733dd74db2a4ae01812ffaaed6d1243d7a665d518cf5b37c101d147329e5ba45d95fd1e8ca71e77894305e1081e7b0f442d20fdc90673617473746f026d6500002b000100000e1000245b360d022333b5ea25720720a8c54553c0641e8ccb8a917af20c694f10bf7ce3851e3f6e0673617473746f026d6500002b000100000e100024c4010d02a229c6d54c38b7bb723b48a6aceab1e7fdb6ae2a22b9b57c5ca6b942ed8ea2fe0673617473746f026d6500002e000100000e100096002b080200000e1068d1697c68b5abece2ad026d65006ed35281fc11d421c48a99a7c8b822442269ba75aa723517f93bd346c11ae9c23377a4d0ca9845a09fbed97fb3684219a197fb9bc9cbd7085fb7404c40a5d8bf6deacb0f6ab7036bf5ea979b0fd000a2da96da313b5d63bbe33efe58550af3ccccd1a107b87a6ee3e61abc92e6b87a300bcafd8f12e6c6197f3d4b82116749b0026d6500002b00010000bfd80024b12808027708c8a6d5d72b63214bbff50cb54553f7e07a1fa5e9074bd8d63c43102d8559026d6500002e00010000bfd80113002b08010001518068d0594068bf27b0b5690028415c2b258249314cf220c0631e898b98c786853de415c336421fbd0e2a4a50d64aeff8a369d0c0eb79b311b4c2732c1b902987986fe1ee230142fe2deccdc09647551f094e69a6ea8a813b0688b7cbbc846ecea7683c02ac45d0ff3cc2b6fda10233afdf963fa61c58a835684c7d708fab49efc38866675dec7787dbd8066492e2d77d70e6cd50893533ab80f2a2817a6476ad054ffad9c5dfdd68ecfece3c73eecc1fa0c2ac4c130014af201f11feef6788c8e91286a4279e06b491c55824a0718a2bf1775485c4f86ee834655e32be4a2f1b500d240008da68632c1134c21463151f5c5323944e2349536db8d822636eed2ec8fedb8c0f6692fcf066b59c000030000100005da101080101030803010001acffb409bcc939f831f7a1e5ec88f7a59255ec53040be432027390a4ce896d6f9086f3c5e177fbfe118163aaec7af1462c47945944c4e2c026be5e98bbcded25978272e1e3e079c5094d573f0e83c92f02b32d3513b1550b826929c80dd0f92cac966d17769fd5867b647c3f38029abdc48152eb8f207159ecc5d232c7c1537c79f4b7ac28ff11682f21681bf6d6aba555032bf6f9f036beb2aaa5b3778d6eebfba6bf9ea191be4ab0caea759e2f773a1f9029c73ecb8d5735b9321db085f1b8e2d8038fe2941992548cee0d67dd4547e11dd63af9c9fc1c5466fb684cf009d7197c2cf79e792ab501e6a8a1ca519af2cb9b5f6367e94c0d47502451357be1b5000030000100005da101080101030803010001af7a8deba49d995a792aefc80263e991efdbc86138a931deb2c65d5682eab5d3b03738e3dfdc89d96da64c86c0224d9ce02514d285da3068b19054e5e787b2969058e98e12566c8c808c40c0b769e1db1a24a1bd9b31e303184a31fc7bb56b85bbba8abc02cd5040a444a36d47695969849e16ad856bb58e8fac8855224400319bdab224d83fc0e66aab32ff74bfeaf0f91c454e6850a1295207bbd4cdde8f6ffb08faa9755c2e3284efa01f99393e18786cb132f1e66ebc6517318e1ce8a3b7337ebb54d035ab57d9706ecd9350d4afacd825e43c8668eece89819caf6817af62dc4fbd82f0e33f6647b2b6bda175f14607f59f4635451e6b27df282ef73d87000030000100005da101080100030803010001b11b182a464c3adc6535aa59613bda7a61cac86945c20b773095941194f4b9f516e8bd924b1e50e3fe83918b51e54529d4e5a1e45303df8462241d5e05979979ae5bf9c6c598c08a496e17f3bd3732d5aebe62667b61db1bbe178f27ac99408165a230d6aee78348e6c67789541f845b2ada96667f8dd16ae44f9e260c4a138b3bb1015965ebe609434a06464bd7d29bac47c3017e83c0f89bca1a9e3bdd0813715f3484292df589bc632e27d37efc02837cb85d770d5bd53a36edc99a8294771aa93cf22406f5506c8cf850ed85c1a475dee5c2d3700b3f5631d903524b849995c20cb407ed411f70b428ae3d642716fe239335aa961a752e67fb6dca0bf729000030000100005da101080100030803010001b6aec4b48567e2925a2d9c4fa4c96e6dddf86215a9bd8dd579c38ccb1199ed1be89946a7f72fc2633909a2792d0eed1b5afb2ee4c78d865a76d6cd9369d999c96af6be0a2274b8f2e9e0a0065bd20257570f08bc14c16f5616426881a83dbce6926e391c138a2ec317efa7349264de2e791c9b7d4a6048ee6eedf27bf1ece398ff0d229f18377cb1f6b98d1228ef217b8146c0c73851b89a6fc37c621ca187e16428a743ffea0072e185ef93e39525cee3ad01e0c94d2e511c8c313322c29ab91631e1856049a36898684c3056e5997473816fb547acb0be6e660bdfa89a5cb28b3669d8625f3f018c7b3b8a4860e774ee8261811ce7f96c461bc162c1a374f300002e000100005da10113003008000002a30068cdee8068b23f004f66001c5875f402770a5fe9251e7be7783b6d0545cb59ecad7d25cb5ce75ad583c47f809ecbe168ebfc57dee0e0eca8f6b92f32fb8cf3808c95640ae8e7fcd11b57d948b3b2749ae53b799fdd665d2b37a179401afda48534952859f22884a9cb9526e147fb867b7cd1463004a0385e9ad278aa41a9b63405d636733dc822f6a8b17d9eafc00e08717d558c6d3a3315c6c2ff3479b537290fe5ce9f1b280894951c5ec31305ebfa60260354cfc340ffe8d9b809a440ea9cdd8e4e14cbefec6c7f3967ab7776f7b1bc13589596b1f6d60176d3223126bac85abb2b55cb30a5d0615d6147a5dafb841a5b7ea1c1580b1a6b3dcf7607d12e19d2971aaf8747fdab1c42bb026d65000030000100000db900880100030803010001b36eee22bd8e610570cd88bfc3fedafa006a58b9714432aa3a6f9dd39a905c4e86aa1cdf5827119c81e1245d94ee4838ae22f05cc922ca30122aefa4da19d90a965b4317071b9331187f5cf4eb570dbd8e01987c2593a85b92e0440c635d15da13405f6ca7d78289ef0d6fe4716b8b62abd18dc07b0a9edd54182353ef836539026d65000030000100000db901080101030803010001c103be3a2aa47686ab01ba1b23799ff108d0c0530dfe35cebdd320b7abc851d1abf191378d155127e17fb029628385482b34ac3b042093d6097574b36ee277e31d20003272871bc76d1762dab33397eaae97d853932da5a96886a1b7c61bc52fcd1f1f23c7026a48fa1b190cb8b97d42b45b49948c45187efec3c7867812627a0220e5497c36ee4e92452fb5c1bda2dceaebf71c0e3909a61a5d6498dfc41c71cd0412dbbf442e43c378c9fb4043a1523cfd7ce320ce29fce606db73a8c78150b9808db8bb71898858d7a48ead8870f364b6e271ac642fe3160de3bc44b5a89ccf9e21e2ae5a877253db495f611a8a16a657f7ad9aeb906d5bc9c86f2883b5ed026d65000030000100000db900880100030803010001bfe96cdfe309deee4c579edbbfb50264719c35e25f64a525f81fe2479be4a907bfa9ce8b048ec167217690a145208507367cfec4ab4f9726cf55ecb79bf287836df0e0e946463a56e01b1a7d2e98681274f42ceb5817b1e253920b50f2e63f4be1a7c41f948a4a7235259a58eb0a9e4ccca370e2b3d363e4c289b897ffa329ab026d6500002e000100000db901160030080100000e1068d1697c68b5abecb128026d65005c91285cf473abf2c412efd0459436d9a291d1462928b3fcb8b30ea6d0d817e03dc8fe06994cfffad8ce447e08d85689e8c0966eac684716d98b4d116c08004b38bdbbec00b943f0afcf1c2b98fa4c8c36ded6823d99b61d96251b337037708ab2786ae66c48f08a70cc4d00b4dfbe44ac192c6c716470de238476913ae9574693514cf6ef3cd90b072127d42a2bf12ab871332a548a73bfd9d72479b90af179692389722fab448b23cd03ca8503a5e70857e644f8a29a4a15918a5a8cd317526b1d0ec0065b15da6a3021e6543f623887e5f099df3ddf8dd75bcaa355ed03d3e3de982359a6a93eca7def06797b12e63a0ffa6dc17e620dd13b6a0d2ac25df00673617473746f026d65000030000100000c8d00440100030dedcbe3954643072571e6c4c163cfe9ef330f5e430a3e6ca5eb76a9c97d1e3fcb9cba6a6a9ea371474b27c3d8ebb3a9ad9f1006be07d5155d669fdc7cc0db4d6a0673617473746f026d65000030000100000c8d00440101030d79bca014d652db03985a4edc2ada39c35f7daf8b86656ba6cd2df96f1da8c05f81d584aad62ee3c42ac7cbd29c5d35b9fa0b3d568a556ae9794d8cb02bae1bcb0673617473746f026d6500002e000100000c8d005d00300d0200093a8068cd0e3168ba8419c4010673617473746f026d65007a17319b99137fb51bb57a513cd9fd257130de52cc9279697e727e1e95a0301653a1ea782e2d8a43d9c69528491a2e088a184128409ed0e3078597fd3732d5a30b6d617474636f72616c6c6f03636f6d00002b0001000026610024e2f50d02f0e161567d468087ff27b051abc94476178a7cb635da1aa705e05c77ca81de520b6d617474636f72616c6c6f03636f6d00002e0001000026610057002b0d020001518068c67a0468bd2f1c504103636f6d0021c40cf90af28c2fb2fd35ce8632ed73edcf43bee374fb2b54944a9e8e845d08da67afb417d3014894ac2a92cf6a73be53d7df516a298d63447af8588ccee3e703636f6d00002b00010000506600244d060d028acbb0cd28f41250a80a491389424d341522d946b0da0c0291f2d3d771d7805a03636f6d00002e0001000050660113002b08010001518068cf865068be54c0b56900a9e8604de5bb97b53b31029218bd6dce5e68cdc0bd577fd3a3def5107e17b108679df22104a4f842ecfee4ab6ee14fbd7169b9e4fc9545dd00b21b920f41f40e8b5ece643975dd26f930acdc77e9495acd4507a7b22c02c4f048dadb3d2db607d46720ede2024be8a450ab98e2cae38a594603c73bce8617b9c0ca4f303de8d09606389530fb45ec20e9e6df775a72f1b76e47ba3c3780e1a5d7a27e77645f298efe1c397f31cc9f86151216627bc7bfbf265ac5a563805db62c5df2ede65ccf1c5c3f25054d73b5b9095238d38a39e30d9c2b0ae17d8d93ed6764d452d4a3141c0355d89f261d46e1f3a37857345e5220fadbeb10c9ed234cd03adfe55a04fc03636f6d00003000010000382100440100030df17b60fb56d522f8634153e785c0a978532ea76de39d34bb356d3d042e07f29f7b992176cc83acef7b78ea750425203b18f2b8228b3cdd2bc7eb13c3e3035a7e03636f6d00003000010000382100440101030db71f0465101ddbe2bf0c9455d12fa16c1cda44f4bf1ba2553418ad1f3aa9b06973f21b84eb532cf4035ee8d4832ca26d89306a7d32560c0cb0129d450ac1083503636f6d00002e000100003821005700300d010001518068c6cafb68b3034f4d0603636f6d0096cb2d4c67b93febc13dff1cdea2ab3d7669bc767127cb975f1d2ff4a94b9c15ca83d6ae9c93bde066d08095c2d0bffde30b4aea0a94ad9902693de313cb2b390b6d617474636f72616c6c6f03636f6d00003000010000546000440100030d27ac3c16d55694869003db8f7ee177d74690a6ca1e0d719e78fe9a6a2029bb2183205b6723ca5f4d63b6bb07c5d5a35fef5907eaa22accb0435d0151e13a01cf0b6d617474636f72616c6c6f03636f6d00003000010000546000440100030d8b1cf07c86f18c19c8c3146db093893648dcc1ab5fb79e99ccbab4aa06f98d52ac27b92e215d9da98d7535f3c2ce038fbb9d41b9c63d3845d444feffc1f71ed70b6d617474636f72616c6c6f03636f6d00003000010000546000440101030dec7c1fa1752495c42d2224eace96ed74144e9cb811608dd91594974bdc723fdc5b38a37c3340f1deca68a7ec82248822954b2994de5ac99ff6e9db95fd42c94b0b6d617474636f72616c6c6f03636f6d00002e000100005460006300300d0200093a8068cd0b5a68ba8142e2f50b6d617474636f72616c6c6f03636f6d004299251a06613ed7b0d6d65c41c2df2694730e81bc9f6d7266304cbfb6721ac4cc91ba71eb1eded7d351e996c0ffaaac566829474b5bd0d9e0a0c057928d47ef"}]), + # Getinfo is version dependent and path dependent + Rewriter("getinfo", + "example:getinfo#1", + [{"alias": "SILENTARTIST-" + os.getenv('CLN_NEXT_VERSION')}, + {"version": os.getenv('CLN_NEXT_VERSION')}, + {"lightning-dir": "/home/rusty/.lightning/regtest"}]), + # Logs are high-variance + Rewriter("getlog", + "example:getlog#1", + [{"bytes_used": 3271748}, + {"log": [{"num_skipped": 177}, {}, {"num_skipped": 4562}, {"num_skipped": 4554}, {}]}]), + # listconfigs exposes lightning-dir paths, aliases + Rewriter("listconfigs", + "example:listconfigs#3", + [{"configs": {"lightning-dir": {"value_str": "/home/rusty/.lightning/regtest"}}}, + {"configs": {"alias": {"value_str": "SILENTARTIST-" + os.getenv('CLN_NEXT_VERSION')}}}, + {"configs": {"autoclean-expiredinvoices-age": {"source": "/home/rusty/.lightning/regtest/config.setconfig:2"}}}, + {"configs": {"pid-file": {"value_str": "/home/rusty/.lightning/lightningd-regtest.pid"}}}, + {"configs": {"min-capacity-sat": {"source": "/home/rusty/.lightning/regtest/config.setconfig:3"}}}, + {"configs": {"log-file": {"values_str": ["-", "/home/rusty/.lightning/log"]}}}, + {"configs": {"dev-save-plugin-io": {"value_str": "/tmp/plugin-io"}}}, + {"configs": {"bitcoin-datadir": {"value_str": "/var/lib/bitcoind"}}}, + {"configs": {"bitcoin-rpcport": {"value_int": 8332}}}]), + # setconfig also exposes paths + Rewriter("setconfig", + "example:setconfig#1", + [{"config": {"source": "/home/rusty/.lightning/regtest/config.setconfig:2"}}, + {"config": {"plugin": "/usr/local/libexec/plugins/autoclean"}}]), + Rewriter("setconfig", + "example:setconfig#2", + [{"config": {"source": "/home/rusty/.lightning/regtest/config.setconfig:3"}}]), + # listnodes' aliases are version dependent + Rewriter("listnodes", + "example:listnodes#1", + [{"nodes": [{"alias": "HOPPINGFIRE-" + os.getenv('CLN_NEXT_VERSION')}]}]), + Rewriter("listnodes", + "example:listnodes#2", + [{"nodes": [{"alias": "SILENTARTIST-" + os.getenv('CLN_NEXT_VERSION')}, + {"alias": "JUNIORBEAM-" + os.getenv('CLN_NEXT_VERSION')}, + {"alias": "HOPPINGFIRE-" + os.getenv('CLN_NEXT_VERSION')}, + {"alias": "JUNIORFELONY-" + os.getenv('CLN_NEXT_VERSION')}]}]), + # Ephemeral ports used when they connect to us + Rewriter("listpeers", + "example:listpeers#2", + [{"peers": [{}, + {"netaddr": ["127.0.0.1:54321"]}, + {}]}]), + # FIXME: SCB backup shouldn't save port for incoming connections + Rewriter("staticbackup", + "example:staticbackup#1", + [{"scb": canned_scbs}]), + # FIXME: Why do these vary? + Rewriter("listhtlcs", + "example:listhtlcs#1", + [{"htlcs": [{}] * 10 + [{"updated_index": 96}] + [{}] * 8 + [{"updated_index": 170}] + [{}] * 3}]), + # FIXME: These due to l1's different channel ordering maybe? + Rewriter("listpeerchannels", + "example:listpeerchannels#1", + [{"channels": [{"scratch_txid": "f8042b0e29badb6450d57a8065a9c05d1a86cb8cd43d775d23bd3c8e3d180bd7"}]}]), + Rewriter("listpeerchannels", + "example:listpeerchannels#2", + [{"channels": [{"scratch_txid": "f8042b0e29badb6450d57a8065a9c05d1a86cb8cd43d775d23bd3c8e3d180bd7"}, {}, {}]}]), + ] + + # Canonicalize recover_channel request: + examples['listconfigs']['examples'][0]['request']['params']['scb'] = canned_scbs + + # Canonicalize plugin paths, order of plugin options + lc_response = examples['listconfigs']['examples'][2]['response'] + lc_response['configs'] = fixup_listconfigs(lc_response['configs']) + + # Sort by scid as an arbitrary field. + lpc_response = examples['listpeerchannels']['examples'][1]['response'] + lpc_response['channels'].sort(key=lambda c: c['short_channel_id']) + + for rw in rewrites: + rewrite_example(examples, rw) + + def update_examples_in_schema_files(): """Update examples in JSON schema files""" + rewrite_examples(EXAMPLES_JSON) try: updated_examples = {} for method, method_examples in EXAMPLES_JSON.items(): From 00f8c1cc4229893da40a220e1400312bf4310147 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Oct 2025 16:13:25 +1030 Subject: [PATCH 36/37] doc: actually run the example generation. This is `make update-doc-examples-newchain`, which creates the canned blocks (and, since it's the first time, the bitcoind wallet). Signed-off-by: Rusty Russell --- contrib/msggen/msggen/schema.json | 5111 ++++++++++++----- doc/schemas/addpsbtoutput.json | 16 +- doc/schemas/askrene-age.json | 2 +- doc/schemas/askrene-bias-channel.json | 8 +- doc/schemas/askrene-create-channel.json | 4 +- doc/schemas/askrene-disable-node.json | 2 +- doc/schemas/askrene-listlayers.json | 16 +- doc/schemas/askrene-listreservations.json | 20 +- doc/schemas/askrene-reserve.json | 8 +- doc/schemas/askrene-unreserve.json | 8 +- doc/schemas/autoclean-once.json | 4 +- doc/schemas/autoclean-status.json | 2 +- doc/schemas/bkpr-channelsapy.json | 6 +- .../bkpr-editdescriptionbyoutpoint.json | 8 +- .../bkpr-editdescriptionbypaymentid.json | 8 +- doc/schemas/bkpr-inspect.json | 10 +- doc/schemas/bkpr-listaccountevents.json | 399 +- doc/schemas/bkpr-listbalances.json | 36 +- doc/schemas/bkpr-listincome.json | 290 +- doc/schemas/check.json | 8 +- doc/schemas/checkmessage.json | 2 +- doc/schemas/checkrune.json | 4 +- doc/schemas/close.json | 22 +- doc/schemas/commando.json | 24 +- doc/schemas/connect.json | 16 +- doc/schemas/createinvoice.json | 8 +- doc/schemas/createonion.json | 44 +- doc/schemas/datastoreusage.json | 2 +- doc/schemas/decode.json | 14 +- doc/schemas/decodepay.json | 14 +- doc/schemas/delforward.json | 4 +- doc/schemas/delinvoice.json | 16 +- doc/schemas/delpay.json | 30 +- doc/schemas/dev-forget-channel.json | 10 +- doc/schemas/disableinvoicerequest.json | 6 +- doc/schemas/disableoffer.json | 6 +- doc/schemas/disconnect.json | 4 +- doc/schemas/enableoffer.json | 6 +- doc/schemas/fetchbip353.json | 2 +- doc/schemas/fetchinvoice.json | 8 +- doc/schemas/fundchannel.json | 22 +- doc/schemas/fundchannel_cancel.json | 4 +- doc/schemas/fundchannel_complete.json | 12 +- doc/schemas/fundchannel_start.json | 12 +- doc/schemas/fundpsbt.json | 4 +- doc/schemas/getinfo.json | 12 +- doc/schemas/getlog.json | 21 +- doc/schemas/getroute.json | 20 +- doc/schemas/getroutes.json | 12 +- doc/schemas/injectpaymentonion.json | 10 +- doc/schemas/invoice.json | 16 +- doc/schemas/invoicerequest.json | 8 +- doc/schemas/keysend.json | 34 +- doc/schemas/listchainmoves.json | 236 +- doc/schemas/listchannelmoves.json | 80 +- doc/schemas/listchannels.json | 86 +- doc/schemas/listclosedchannels.json | 59 +- doc/schemas/listconfigs.json | 624 +- doc/schemas/listforwards.json | 154 +- doc/schemas/listfunds.json | 127 +- doc/schemas/listhtlcs.json | 236 +- doc/schemas/listinvoicerequests.json | 18 +- doc/schemas/listinvoices.json | 204 +- doc/schemas/listnodes.json | 28 +- doc/schemas/listoffers.json | 18 +- doc/schemas/listpays.json | 96 +- doc/schemas/listpeerchannels.json | 387 +- doc/schemas/listpeers.json | 16 +- doc/schemas/listsendpays.json | 273 +- doc/schemas/listtransactions.json | 475 +- doc/schemas/multifundchannel.json | 46 +- doc/schemas/multiwithdraw.json | 8 +- doc/schemas/offer.json | 8 +- doc/schemas/openchannel_abort.json | 4 +- doc/schemas/openchannel_bump.json | 26 +- doc/schemas/openchannel_init.json | 16 +- doc/schemas/openchannel_signed.json | 18 +- doc/schemas/openchannel_update.json | 14 +- doc/schemas/pay.json | 20 +- doc/schemas/ping.json | 4 +- doc/schemas/plugin.json | 94 +- doc/schemas/preapproveinvoice.json | 4 +- doc/schemas/preapprovekeysend.json | 4 +- doc/schemas/recoverchannel.json | 12 +- doc/schemas/renepay.json | 24 +- doc/schemas/renepaystatus.json | 12 +- doc/schemas/reserveinputs.json | 16 +- doc/schemas/sendcustommsg.json | 2 +- doc/schemas/sendinvoice.json | 12 +- doc/schemas/sendonion.json | 10 +- doc/schemas/sendpay.json | 16 +- doc/schemas/sendpsbt.json | 6 +- doc/schemas/setchannel.json | 16 +- doc/schemas/setconfig.json | 6 +- doc/schemas/setpsbtversion.json | 6 +- doc/schemas/showrunes.json | 16 +- doc/schemas/signinvoice.json | 8 +- doc/schemas/signpsbt.json | 8 +- doc/schemas/splice_init.json | 12 +- doc/schemas/splice_signed.json | 20 +- doc/schemas/splice_update.json | 12 +- doc/schemas/sql-template.json | 30 +- doc/schemas/staticbackup.json | 12 +- doc/schemas/txdiscard.json | 12 +- doc/schemas/txprepare.json | 16 +- doc/schemas/txsend.json | 16 +- doc/schemas/unreserveinputs.json | 4 +- doc/schemas/upgradewallet.json | 6 +- doc/schemas/utxopsbt.json | 20 +- doc/schemas/wait.json | 8 +- doc/schemas/waitanyinvoice.json | 20 +- doc/schemas/waitblockheight.json | 6 +- doc/schemas/waitinvoice.json | 20 +- doc/schemas/waitsendpay.json | 10 +- doc/schemas/withdraw.json | 18 +- doc/schemas/xpay.json | 8 +- tests/data/autogenerate-bitcoin-blocks.json | 1 + tests/data/autogenerate-bitcoind-wallet.dat | Bin 0 -> 118784 bytes 118 files changed, 7105 insertions(+), 3094 deletions(-) create mode 100644 tests/data/autogenerate-bitcoin-blocks.json create mode 100644 tests/data/autogenerate-bitcoind-wallet.dat diff --git a/contrib/msggen/msggen/schema.json b/contrib/msggen/msggen/schema.json index dadbb6ff0fd9..ac2b638fb2be 100644 --- a/contrib/msggen/msggen/schema.json +++ b/contrib/msggen/msggen/schema.json @@ -157,9 +157,9 @@ } }, "response": { - "psbt": "cHNidP8BAgpsbt1001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQABBQEBAQYBAwH7BAIAAAAAAQMIQEIPAAAAAAABBCJRIO7yw3zIUblRUcdhCLSjdFxJsYHu2s0Y29bT0bGAGdcbAA==", "estimated_added_weight": 172, - "outnum": 1 + "outnum": 0 } }, { @@ -168,11 +168,11 @@ "method": "addpsbtoutput", "params": [ 3333333, - "cHNidP8BAgpsbt20020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202" + "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQABBQECAQYBAwH7BAIAAAAAAQMIQEIPAAAAAAABBCJRIO7yw3zIUblRUcdhCLSjdFxJsYHu2s0Y29bT0bGAGdcbAAEDCNXcMgAAAAAAAQQiUSA2cYCeVGcxdSZII2urHpalr5osmF2lPbYRaw1nKyPcmQA=" ] }, "response": { - "psbt": "cHNidP8BAgpsbt20020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202", + "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQABBQECAQYBAwH7BAIAAAAAAQMIQEIPAAAAAAABBCJRIO7yw3zIUblRUcdhCLSjdFxJsYHu2s0Y29bT0bGAGdcbAAEDCNXcMgAAAAAAAQQiUSA2cYCeVGcxdSZII2urHpalr5osmF2lPbYRaw1nKyPcmQA=", "estimated_added_weight": 172, "outnum": 1 } @@ -183,14 +183,14 @@ "method": "addpsbtoutput", "params": { "satoshi": 3333333, - "initialpsbt": "cHNidP8BAgpsbt20020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202", - "destination": "bcrt1p5201010101010101010101010101010101010101010101010101010101" + "initialpsbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQABBQECAQYBAwH7BAIAAAAAAQMIQEIPAAAAAAABBCJRIO7yw3zIUblRUcdhCLSjdFxJsYHu2s0Y29bT0bGAGdcbAAEDCNXcMgAAAAAAAQQiUSA2cYCeVGcxdSZII2urHpalr5osmF2lPbYRaw1nKyPcmQA=", + "destination": "bcrt1p52spc7t99z0wu444elxahxzkcu86gakzvnfp7ugudf567am2uspsuneuq9" } }, "response": { - "psbt": "cHNidP8BAgpsbt300303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303", + "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQABBQEDAQYBAwH7BAIAAAAAAQMIQEIPAAAAAAABBCJRIO7yw3zIUblRUcdhCLSjdFxJsYHu2s0Y29bT0bGAGdcbAAEDCNXcMgAAAAAAAQQiUSA2cYCeVGcxdSZII2urHpalr5osmF2lPbYRaw1nKyPcmQABAwjV3DIAAAAAAAEEIlEgoqAceWUonu5Wtc/N25hWxw+kdsJk0h9xHGppr3dq5AMA", "estimated_added_weight": 172, - "outnum": 1 + "outnum": 2 } } ] @@ -264,7 +264,7 @@ "method": "askrene-age", "params": { "layer": "test_layers", - "cutoff": 1738000000 + "cutoff": 1738000001 } }, "response": { @@ -391,7 +391,7 @@ "method": "askrene-bias-channel", "params": { "layer": "test_layers", - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "bias": 1 } }, @@ -399,7 +399,7 @@ "biases": [ { "layer": "test_layers", - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "bias": 1 } ] @@ -411,7 +411,7 @@ "method": "askrene-bias-channel", "params": [ "test_layers", - "109x1x1/1", + "110x1x0/1", -5, "bigger bias" ] @@ -420,7 +420,7 @@ "biases": [ { "layer": "test_layers", - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "description": "bigger bias", "bias": -5 } @@ -507,8 +507,8 @@ "method": "askrene-create-channel", "params": { "layer": "test_layers", - "source": "nodeid030303030303030303030303030303030303030303030303030303030303", - "destination": "nodeid010101010101010101010101010101010101010101010101010101010101", + "source": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "destination": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "short_channel_id": "0x0x1", "capacity_msat": "1000000sat" } @@ -845,7 +845,7 @@ "method": "askrene-disable-node", "params": { "layer": "test_layers", - "node": "nodeid010101010101010101010101010101010101010101010101010101010101" + "node": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" } }, "response": {} @@ -1256,12 +1256,12 @@ "layer": "test_layers", "persistent": false, "disabled_nodes": [ - "nodeid010101010101010101010101010101010101010101010101010101010101" + "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" ], "created_channels": [ { - "source": "nodeid010101010101010101010101010101010101010101010101010101010101", - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "source": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "short_channel_id": "0x0x1", "capacity_msat": 1000000000 } @@ -1285,7 +1285,7 @@ ], "biases": [ { - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "description": "bigger bias", "bias": -5 } @@ -1306,12 +1306,12 @@ "layer": "test_layers", "persistent": false, "disabled_nodes": [ - "nodeid010101010101010101010101010101010101010101010101010101010101" + "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" ], "created_channels": [ { - "source": "nodeid010101010101010101010101010101010101010101010101010101010101", - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "source": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "short_channel_id": "0x0x1", "capacity_msat": 1000000000 } @@ -1335,7 +1335,7 @@ ], "biases": [ { - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "description": "bigger bias", "bias": -5 } @@ -1436,28 +1436,28 @@ "response": { "reservations": [ { - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "amount_msat": 1250000, "age_in_seconds": 2, - "command_id": "\"-c:askrene-reserve#62/cln:askrene-reserve#122\"" + "command_id": "examples.py:askrene-reserve#1/cln:askrene-reserve#2" }, { - "short_channel_id_dir": "123x1x1/0", - "amount_msat": 1250001, + "short_channel_id_dir": "110x1x0/1", + "amount_msat": 1250000000000, "age_in_seconds": 2, - "command_id": "\"-c:askrene-reserve#62/cln:askrene-reserve#122\"" + "command_id": "examples.py:askrene-reserve#2/cln:askrene-reserve#3" }, { - "short_channel_id_dir": "109x1x1/1", - "amount_msat": 1250000000000, + "short_channel_id_dir": "124x1x1/0", + "amount_msat": 1250001, "age_in_seconds": 2, - "command_id": "\"-c:askrene-reserve#66/cln:askrene-reserve#126\"" + "command_id": "examples.py:askrene-reserve#3/cln:askrene-reserve#4" }, { - "short_channel_id_dir": "123x1x1/0", + "short_channel_id_dir": "124x1x1/0", "amount_msat": 1250000000000, "age_in_seconds": 2, - "command_id": "\"-c:askrene-reserve#66/cln:askrene-reserve#126\"" + "command_id": "examples.py:askrene-reserve#4/cln:askrene-reserve#5" } ] } @@ -1583,11 +1583,11 @@ "params": { "path": [ { - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "amount_msat": 1250000 }, { - "short_channel_id_dir": "123x1x1/0", + "short_channel_id_dir": "124x1x1/0", "amount_msat": 1250001 } ] @@ -1602,11 +1602,11 @@ "params": { "path": [ { - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "amount_msat": 1250000000000 }, { - "short_channel_id_dir": "123x1x1/0", + "short_channel_id_dir": "124x1x1/0", "amount_msat": 1250000000000 } ] @@ -1684,11 +1684,11 @@ "params": { "path": [ { - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "amount_msat": 1250000 }, { - "short_channel_id_dir": "123x1x1/0", + "short_channel_id_dir": "124x1x1/0", "amount_msat": 1250001 } ] @@ -1703,11 +1703,11 @@ "params": { "path": [ { - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "amount_msat": 1250000000000 }, { - "short_channel_id_dir": "123x1x1/0", + "short_channel_id_dir": "124x1x1/0", "amount_msat": 1250000000000 } ] @@ -2058,8 +2058,8 @@ "response": { "autoclean": { "succeededpays": { - "cleaned": 7, - "uncleaned": 0 + "cleaned": 0, + "uncleaned": 7 } } } @@ -2538,7 +2538,7 @@ }, "succeededpays": { "enabled": false, - "cleaned": 7 + "cleaned": 0 }, "failedpays": { "enabled": false, @@ -2826,7 +2826,7 @@ "response": { "channels_apy": [ { - "account": "channelid0120000120000120000120000120000120000120000120000120000", + "account": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "routed_out_msat": 1000000, "routed_in_msat": 510091208, "lease_fee_paid_msat": 0, @@ -2846,7 +2846,7 @@ "apy_total": "0.0160%" }, { - "account": "channelid0230000230000230000230000230000230000230000230000230000", + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "routed_out_msat": 510190102, "routed_in_msat": 0, "lease_fee_paid_msat": 0, @@ -2867,7 +2867,7 @@ "apy_total_initial": "0.0161%" }, { - "account": "channelid0250000250000250000250000250000250000250000250000250000", + "account": "f8fc83a432cbfb2fffe222cc06727fdd977b5dd10ebd6707158e799e6f522d9f", "routed_out_msat": 500000000, "routed_in_msat": 0, "lease_fee_paid_msat": 0, @@ -3294,7 +3294,7 @@ "id": "example:bkpr-editdescriptionbyoutpoint#1", "method": "bkpr-editdescriptionbyoutpoint", "params": { - "outpoint": "txidbk0101010101010101010101010101010101010101010101010101010101:1", + "outpoint": "0c609c5643e2f316985989417c48044311cf2c1fb2113a03af7d7d51b4874ac5:1", "description": "edited utxo description" } }, @@ -3307,9 +3307,9 @@ "credit_msat": 200000000000, "debit_msat": 0, "currency": "bcrt", - "outpoint": "txidbk0101010101010101010101010101010101010101010101010101010101:1", - "timestamp": 1738510000, - "blockheight": 110, + "outpoint": "0c609c5643e2f316985989417c48044311cf2c1fb2113a03af7d7d51b4874ac5:1", + "timestamp": 1738000001, + "blockheight": 106, "description": "edited utxo description" } ] @@ -3597,23 +3597,23 @@ "id": "example:bkpr-editdescriptionbypaymentid#1", "method": "bkpr-editdescriptionbypaymentid", "params": { - "payment_id": "paymentid0000202020202020202020202020202020202020202020202020202", + "payment_id": "f61aef012557d6496699642e71e2bacda5670b5377c6357fa40485813facc628", "description": "edited invoice description from description send some sats l2 to l3" } }, "response": { "updated": [ { - "account": "channelid0230000230000230000230000230000230000230000230000230000", + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "type": "channel", "tag": "invoice", "credit_msat": 500000000, "debit_msat": 0, "currency": "bcrt", - "payment_id": "paymentid0000202020202020202020202020202020202020202020202020202", + "payment_id": "f61aef012557d6496699642e71e2bacda5670b5377c6357fa40485813facc628", "part_id": 0, - "timestamp": 1738520000, "description": "edited invoice description from description send some sats l2 to l3", + "timestamp": 1738000007, "is_rebalance": false } ] @@ -3849,18 +3849,18 @@ "id": "example:bkpr-inspect#1", "method": "bkpr-inspect", "params": { - "account": "channelid0230200230200230200230200230200230200230200230200230200" + "account": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3" } }, "response": { "txs": [ { - "txid": "channeltxid230200230200230200230200230200230200230200230200230200", - "blockheight": 123, - "fees_paid_msat": 5020000, + "txid": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69", + "blockheight": 124, + "fees_paid_msat": 6652000, "outputs": [ { - "account": "channelid0230200230200230200230200230200230200230200230200230200", + "account": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3", "outnum": 1, "output_tag": "channel_open", "output_value_msat": 1000000000, @@ -4152,21 +4152,21 @@ "id": "example:bkpr-listaccountevents#1", "method": "bkpr-listaccountevents", "params": [ - "channelid0230200230200230200230200230200230200230200230200230200" + "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3" ] }, "response": { "events": [ { - "account": "channelid0230200230200230200230200230200230200230200230200230200", + "account": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3", "type": "chain", "tag": "channel_open", "credit_msat": 0, "debit_msat": 0, "currency": "bcrt", - "outpoint": "txidbk0101010101010101010101010101010101010101010101010101010101:1", - "timestamp": 1738500000, - "blockheight": 123 + "outpoint": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69:1", + "timestamp": 1738000023, + "blockheight": 124 } ] } @@ -4179,40 +4179,401 @@ }, "response": { "events": [ + { + "account": "wallet", + "type": "chain", + "tag": "deposit", + "credit_msat": 200000000000, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "0c609c5643e2f316985989417c48044311cf2c1fb2113a03af7d7d51b4874ac5:1", + "timestamp": 1738000001, + "blockheight": 106, + "description": "edited utxo description" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "chain", + "tag": "channel_open", + "credit_msat": 0, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9:0", + "timestamp": 1738000002, + "blockheight": 112 + }, + { + "account": "wallet", + "type": "chain", + "tag": "deposit", + "credit_msat": 2000000000, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "c3f4a0f787b5ea11505afaba3e9599d6135943d0f562df3d6a7d3e7f372e2067:0", + "timestamp": 1738000003, + "blockheight": 113 + }, + { + "account": "wallet", + "type": "chain", + "tag": "withdrawal", + "credit_msat": 0, + "debit_msat": 2000000000, + "currency": "bcrt", + "outpoint": "c3f4a0f787b5ea11505afaba3e9599d6135943d0f562df3d6a7d3e7f372e2067:0", + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6", + "timestamp": 1738000004, + "blockheight": 114 + }, + { + "account": "wallet", + "type": "onchain_fee", + "tag": "onchain_fee", + "credit_msat": 1004927000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000004, + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6" + }, + { + "account": "wallet", + "type": "onchain_fee", + "tag": "onchain_fee", + "credit_msat": 0, + "debit_msat": 1004927000, + "currency": "bcrt", + "timestamp": 1738000004, + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6" + }, + { + "account": "wallet", + "type": "chain", + "tag": "deposit", + "credit_msat": 995073000, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6:1", + "timestamp": 1738000005, + "blockheight": 114 + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "type": "chain", + "tag": "channel_open", + "credit_msat": 1000000000, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6:0", + "timestamp": 1738000006, + "blockheight": 114 + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "type": "onchain_fee", + "tag": "onchain_fee", + "credit_msat": 4927000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000006, + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "channel", + "tag": "invoice", + "credit_msat": 500000000, + "debit_msat": 0, + "currency": "bcrt", + "payment_id": "f61aef012557d6496699642e71e2bacda5670b5377c6357fa40485813facc628", + "part_id": 0, + "description": "edited invoice description from description send some sats l2 to l3", + "timestamp": 1738000007, + "is_rebalance": false + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "type": "channel", + "tag": "invoice", + "credit_msat": 0, + "debit_msat": 500000000, + "currency": "bcrt", + "payment_id": "864ef81f03c4eabf9e3087d55b18b53beedce221f9a1bcb91d4d69767a022805", + "part_id": 0, + "description": "description send some sats l3 to l4", + "timestamp": 1738000008, + "is_rebalance": false + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "channel", + "tag": "invoice", + "credit_msat": 10000, + "debit_msat": 0, + "currency": "bcrt", + "payment_id": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", + "part_id": 0, + "description": "Invoice description l31", + "timestamp": 1738000009, + "is_rebalance": false + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "channel", + "tag": "invoice", + "credit_msat": 10000, + "debit_msat": 0, + "currency": "bcrt", + "payment_id": "097dcfa3b0bc58d499908855dae7d442854a02d4f2ffcc625f9385ed74f3256e", + "part_id": 0, + "description": "keysend", + "timestamp": 1738000010, + "is_rebalance": false + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "type": "channel", + "tag": "routed", + "credit_msat": 0, + "debit_msat": 10000000, + "fees_msat": 101, + "currency": "bcrt", + "payment_id": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584", + "part_id": 0, + "timestamp": 1738000011, + "is_rebalance": false + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "channel", + "tag": "routed", + "credit_msat": 10000101, + "debit_msat": 0, + "fees_msat": 101, + "currency": "bcrt", + "payment_id": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584", + "part_id": 0, + "timestamp": 1738000012, + "is_rebalance": false + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "channel", + "tag": "invoice", + "credit_msat": 10000, + "debit_msat": 0, + "currency": "bcrt", + "payment_id": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", + "part_id": 0, + "description": "keysend", + "timestamp": 1738000013, + "is_rebalance": false + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "channel", + "tag": "invoice", + "credit_msat": 50000, + "debit_msat": 0, + "currency": "bcrt", + "payment_id": "ab3a5a971aa3b21494f7ce646f077232c10c9917c33375935c1aebfa571fa1a1", + "part_id": 0, + "description": "l32 description", + "timestamp": 1738000014, + "is_rebalance": false + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "channel", + "tag": "invoice", + "credit_msat": 100000, + "debit_msat": 0, + "currency": "bcrt", + "payment_id": "2b1434d9e61da6c5f1252369f4a98e1ddce722b4db3bf15553b87a94d19d351d", + "part_id": 0, + "description": "l33 description", + "timestamp": 1738000015, + "is_rebalance": false + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "type": "channel", + "tag": "routed", + "credit_msat": 0, + "debit_msat": 10000, + "fees_msat": 1, + "currency": "bcrt", + "payment_id": "1bb513fb2fbde40592243877d9f404ba3668275e2eeacd9c7264f34f04d37fd1", + "part_id": 0, + "timestamp": 1738000016, + "is_rebalance": false + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "channel", + "tag": "routed", + "credit_msat": 10001, + "debit_msat": 0, + "fees_msat": 1, + "currency": "bcrt", + "payment_id": "1bb513fb2fbde40592243877d9f404ba3668275e2eeacd9c7264f34f04d37fd1", + "part_id": 0, + "timestamp": 1738000017, + "is_rebalance": false + }, + { + "account": "wallet", + "type": "chain", + "tag": "deposit", + "credit_msat": 510190000, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6:1", + "timestamp": 1738000018, + "blockheight": 122 + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "type": "chain", + "tag": "channel_close", + "credit_msat": 0, + "debit_msat": 489990000, + "currency": "bcrt", + "outpoint": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6:0", + "txid": "1aa6d7b0bb6c5d1dac62724caa4e26dc37ed8af5e747c836746987d28603fed2", + "timestamp": 1738000019, + "blockheight": 122 + }, { "account": "external", - "origin": "channelid0340000340000340000340000340000340000340000340000340000", + "origin": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", "type": "chain", "tag": "to_them", "credit_msat": 510010000, "debit_msat": 0, "currency": "bcrt", - "outpoint": "txidbk0202020202020202020202020202020202020202020202020202020202:1", - "timestamp": 1738520000, - "blockheight": 142 + "outpoint": "1aa6d7b0bb6c5d1dac62724caa4e26dc37ed8af5e747c836746987d28603fed2:1", + "timestamp": 1738000020, + "blockheight": 122 + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "chain", + "tag": "channel_close", + "credit_msat": 0, + "debit_msat": 510190102, + "currency": "bcrt", + "outpoint": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9:0", + "txid": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6", + "timestamp": 1738000021, + "blockheight": 122 + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "onchain_fee", + "tag": "onchain_fee", + "credit_msat": 102, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000021, + "txid": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6" + }, + { + "account": "external", + "origin": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "chain", + "tag": "to_them", + "credit_msat": 486914000, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6:0", + "timestamp": 1738000022, + "blockheight": 122 + }, + { + "account": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3", + "type": "chain", + "tag": "channel_open", + "credit_msat": 0, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69:1", + "timestamp": 1738000023, + "blockheight": 124 }, { "account": "wallet", "type": "chain", "tag": "deposit", - "credit_msat": 200000000000, + "credit_msat": 2000000000, "debit_msat": 0, "currency": "bcrt", - "outpoint": "txidbk0101010101010101010101010101010101010101010101010101010101:1", - "timestamp": 1738510000, - "blockheight": 141, - "description": "edited utxo description" + "outpoint": "e72c5b057eb2944ade8a57c7d1143cc5eea12f0905287ce40c2716ed7032bd29:0", + "timestamp": 1738000024, + "blockheight": 125 }, { - "account": "channelid0230000230000230000230000230000230000230000230000230000", + "account": "wallet", "type": "chain", - "tag": "channel_open", + "tag": "withdrawal", "credit_msat": 0, + "debit_msat": 2000000000, + "currency": "bcrt", + "outpoint": "e72c5b057eb2944ade8a57c7d1143cc5eea12f0905287ce40c2716ed7032bd29:0", + "txid": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2", + "timestamp": 1738000025, + "blockheight": 126 + }, + { + "account": "wallet", + "type": "onchain_fee", + "tag": "onchain_fee", + "credit_msat": 1004927000, "debit_msat": 0, "currency": "bcrt", - "outpoint": "txidbk0303030303030303030303030303030303030303030303030303030303:1", - "timestamp": 1738530000, - "blockheight": 143 + "timestamp": 1738000025, + "txid": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2" + }, + { + "account": "wallet", + "type": "onchain_fee", + "tag": "onchain_fee", + "credit_msat": 0, + "debit_msat": 1004927000, + "currency": "bcrt", + "timestamp": 1738000025, + "txid": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2" + }, + { + "account": "wallet", + "type": "chain", + "tag": "deposit", + "credit_msat": 995073000, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2:1", + "timestamp": 1738000026, + "blockheight": 126 + }, + { + "account": "7512083907c74ed3a045e9bf772b3d72948eb93daf84a1cee57108800451aaf2", + "type": "chain", + "tag": "channel_open", + "credit_msat": 1000000000, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2:0", + "timestamp": 1738000027, + "blockheight": 126 + }, + { + "account": "7512083907c74ed3a045e9bf772b3d72948eb93daf84a1cee57108800451aaf2", + "type": "onchain_fee", + "tag": "onchain_fee", + "credit_msat": 4927000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000027, + "txid": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2" } ] } @@ -4367,21 +4728,12 @@ "response": { "accounts": [ { - "account": "wallet", - "balances": [ - { - "balance_msat": 202050000000, - "coin_type": "bcrt" - } - ] - }, - { - "account": "channelid0230000230000230000230000230000230000230000230000230000", - "peer_id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "peer_id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "we_opened": false, "account_closed": true, "account_resolved": true, - "resolved_at_block": 121, + "resolved_at_block": 122, "balances": [ { "balance_msat": 0, @@ -4390,8 +4742,8 @@ ] }, { - "account": "channelid0340000340000340000340000340000340000340000340000340000", - "peer_id": "nodeid040404040404040404040404040404040404040404040404040404040404", + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "peer_id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "we_opened": true, "account_closed": true, "account_resolved": false, @@ -4403,8 +4755,8 @@ ] }, { - "account": "channelid0230200230200230200230200230200230200230200230200230200", - "peer_id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "account": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3", + "peer_id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "we_opened": false, "account_closed": false, "account_resolved": false, @@ -4416,8 +4768,8 @@ ] }, { - "account": "channelid0340200340200340200340200340200340200340200340200340200", - "peer_id": "nodeid040404040404040404040404040404040404040404040404040404040404", + "account": "7512083907c74ed3a045e9bf772b3d72948eb93daf84a1cee57108800451aaf2", + "peer_id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "we_opened": true, "account_closed": false, "account_resolved": false, @@ -4427,6 +4779,15 @@ "coin_type": "bcrt" } ] + }, + { + "account": "wallet", + "balances": [ + { + "balance_msat": 202500336000, + "coin_type": "bcrt" + } + ] } ] } @@ -4582,9 +4943,9 @@ "credit_msat": 200000000000, "debit_msat": 0, "currency": "bcrt", - "timestamp": 1738500000, + "timestamp": 1738000001, "description": "edited utxo description", - "outpoint": "txidbk0000000000000000000000000000000000000000000000000000000000:1" + "outpoint": "0c609c5643e2f316985989417c48044311cf2c1fb2113a03af7d7d51b4874ac5:1" }, { "account": "wallet", @@ -4592,8 +4953,8 @@ "credit_msat": 2000000000, "debit_msat": 0, "currency": "bcrt", - "timestamp": 1738510000, - "outpoint": "txidbk0101010101010101010101010101010101010101010101010101010101:1" + "timestamp": 1738000003, + "outpoint": "c3f4a0f787b5ea11505afaba3e9599d6135943d0f562df3d6a7d3e7f372e2067:0" }, { "account": "wallet", @@ -4601,8 +4962,8 @@ "credit_msat": 0, "debit_msat": 1004927000, "currency": "bcrt", - "timestamp": 1738520000, - "txid": "channeltxid340000340000340000340000340000340000340000340000340000" + "timestamp": 1738000004, + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6" }, { "account": "wallet", @@ -4610,8 +4971,150 @@ "credit_msat": 1004927000, "debit_msat": 0, "currency": "bcrt", - "timestamp": 1738530000, - "txid": "channeltxid340000340000340000340000340000340000340000340000340000" + "timestamp": 1738000004, + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6" + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "tag": "onchain_fee", + "credit_msat": 0, + "debit_msat": 4927000, + "currency": "bcrt", + "timestamp": 1738000006, + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 500000000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000007, + "description": "edited invoice description from description send some sats l2 to l3", + "payment_id": "f61aef012557d6496699642e71e2bacda5670b5377c6357fa40485813facc628" + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "tag": "invoice", + "credit_msat": 0, + "debit_msat": 500000000, + "currency": "bcrt", + "timestamp": 1738000008, + "description": "description send some sats l3 to l4", + "payment_id": "864ef81f03c4eabf9e3087d55b18b53beedce221f9a1bcb91d4d69767a022805" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 10000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000009, + "description": "Invoice description l31", + "payment_id": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 10000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000010, + "description": "keysend", + "payment_id": "097dcfa3b0bc58d499908855dae7d442854a02d4f2ffcc625f9385ed74f3256e" + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "tag": "routed", + "credit_msat": 101, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000011, + "payment_id": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 10000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000013, + "description": "keysend", + "payment_id": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 50000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000014, + "description": "l32 description", + "payment_id": "ab3a5a971aa3b21494f7ce646f077232c10c9917c33375935c1aebfa571fa1a1" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 100000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000015, + "description": "l33 description", + "payment_id": "2b1434d9e61da6c5f1252369f4a98e1ddce722b4db3bf15553b87a94d19d351d" + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "tag": "routed", + "credit_msat": 1, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000016, + "payment_id": "1bb513fb2fbde40592243877d9f404ba3668275e2eeacd9c7264f34f04d37fd1" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "onchain_fee", + "credit_msat": 0, + "debit_msat": 102, + "currency": "bcrt", + "timestamp": 1738000021, + "txid": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6" + }, + { + "account": "wallet", + "tag": "deposit", + "credit_msat": 2000000000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000024, + "outpoint": "e72c5b057eb2944ade8a57c7d1143cc5eea12f0905287ce40c2716ed7032bd29:0" + }, + { + "account": "wallet", + "tag": "onchain_fee", + "credit_msat": 0, + "debit_msat": 1004927000, + "currency": "bcrt", + "timestamp": 1738000025, + "txid": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2" + }, + { + "account": "wallet", + "tag": "onchain_fee", + "credit_msat": 1004927000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000025, + "txid": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2" + }, + { + "account": "7512083907c74ed3a045e9bf772b3d72948eb93daf84a1cee57108800451aaf2", + "tag": "onchain_fee", + "credit_msat": 0, + "debit_msat": 4927000, + "currency": "bcrt", + "timestamp": 1738000027, + "txid": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2" } ] } @@ -4630,28 +5133,142 @@ "credit_msat": 200000000000, "debit_msat": 0, "currency": "bcrt", - "timestamp": 1738510000, + "timestamp": 1738000001, "description": "edited utxo description", - "outpoint": "txidbk0101010101010101010101010101010101010101010101010101010101:1" + "outpoint": "0c609c5643e2f316985989417c48044311cf2c1fb2113a03af7d7d51b4874ac5:1" }, { - "account": "channelid0230000230000230000230000230000230000230000230000230000", + "account": "wallet", + "tag": "deposit", + "credit_msat": 2000000000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000003, + "outpoint": "c3f4a0f787b5ea11505afaba3e9599d6135943d0f562df3d6a7d3e7f372e2067:0" + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "tag": "onchain_fee", + "credit_msat": 0, + "debit_msat": 4927000, + "currency": "bcrt", + "timestamp": 1738000006, + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "tag": "invoice", "credit_msat": 500000000, "debit_msat": 0, "currency": "bcrt", - "timestamp": 1738520000, + "timestamp": 1738000007, "description": "edited invoice description from description send some sats l2 to l3", - "payment_id": "paymentid0000202020202020202020202020202020202020202020202020202" + "payment_id": "f61aef012557d6496699642e71e2bacda5670b5377c6357fa40485813facc628" + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "tag": "invoice", + "credit_msat": 0, + "debit_msat": 500000000, + "currency": "bcrt", + "timestamp": 1738000008, + "description": "description send some sats l3 to l4", + "payment_id": "864ef81f03c4eabf9e3087d55b18b53beedce221f9a1bcb91d4d69767a022805" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 10000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000009, + "description": "Invoice description l31", + "payment_id": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 10000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000010, + "description": "keysend", + "payment_id": "097dcfa3b0bc58d499908855dae7d442854a02d4f2ffcc625f9385ed74f3256e" + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "tag": "routed", + "credit_msat": 101, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000011, + "payment_id": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 10000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000013, + "description": "keysend", + "payment_id": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 50000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000014, + "description": "l32 description", + "payment_id": "ab3a5a971aa3b21494f7ce646f077232c10c9917c33375935c1aebfa571fa1a1" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 100000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000015, + "description": "l33 description", + "payment_id": "2b1434d9e61da6c5f1252369f4a98e1ddce722b4db3bf15553b87a94d19d351d" + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "tag": "routed", + "credit_msat": 1, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000016, + "payment_id": "1bb513fb2fbde40592243877d9f404ba3668275e2eeacd9c7264f34f04d37fd1" }, { - "account": "channelid0340200340200340200340200340200340200340200340200340200", + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "tag": "onchain_fee", "credit_msat": 0, - "debit_msat": 6960000, + "debit_msat": 102, "currency": "bcrt", - "timestamp": 1738530000, - "txid": "channeltxid340200340200340200340200340200340200340200340200340200" + "timestamp": 1738000021, + "txid": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6" + }, + { + "account": "wallet", + "tag": "deposit", + "credit_msat": 2000000000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000024, + "outpoint": "e72c5b057eb2944ade8a57c7d1143cc5eea12f0905287ce40c2716ed7032bd29:0" + }, + { + "account": "7512083907c74ed3a045e9bf772b3d72948eb93daf84a1cee57108800451aaf2", + "tag": "onchain_fee", + "credit_msat": 0, + "debit_msat": 4927000, + "currency": "bcrt", + "timestamp": 1738000027, + "txid": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2" } ] } @@ -4965,15 +5582,15 @@ "route": [ { "amount_msat": 1011, - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "delay": 20, - "channel": "123x1x1" + "channel": "124x1x1" }, { "amount_msat": 1000, - "id": "nodeid040404040404040404040404040404040404040404040404040404040404", + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "delay": 10, - "channel": "130x1x1" + "channel": "126x1x0" } ], "payment_hash": "0000000000000000000000000000000000000000000000000000000000000000" @@ -5114,7 +5731,7 @@ } }, "response": { - "pubkey": "nodeid010101010101010101010101010101010101010101010101010101010101", + "pubkey": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "verified": true } } @@ -5212,7 +5829,7 @@ "id": "example:checkrune#1", "method": "checkrune", "params": { - "nodeid": "nodeid020202020202020202020202020202020202020202020202020202020202", + "nodeid": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "rune": "_RWaZZRI7wAYU2hqlFBmYgC_dFczcpAdI_9O87YbDpg9MCZtZXRob2RebGlzdHxtZXRob2ReZ2V0fG1ldGhvZD1zdW1tYXJ5Jm1ldGhvZC9saXN0ZGF0YXN0b3Jl", "method": "listpeers", "params": {} @@ -5227,7 +5844,7 @@ "id": "example:checkrune#2", "method": "checkrune", "params": { - "nodeid": "nodeid020202020202020202020202020202020202020202020202020202020202", + "nodeid": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "rune": "QUJEYMLGgiaJvMDv_MhR2hiMKIBTbq-PrL-KxcIlirQ9MiZtZXRob2Q9cGF5JnBuYW1lYW1vdW50bXNhdDwxMDAwMA==", "method": "pay", "params": { @@ -5433,18 +6050,18 @@ "id": "example:close#1", "method": "close", "params": { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "unilateraltimeout": 1 } }, "response": { - "tx": "02000000000101cls00101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "txid": "txid010101010101010101010101010101010101010101010101010101010101", + "tx": "02000000000101a92a6508defe049b47f2420c054cb1a446198faf4bfd74bb2479b3c45075ce7c0000000000ffffffff02026e07000000000022512085d72025e78fd08bb61119f0987ab0041f50561ada6e130c645343db8c44c2afeec8070000000000225120a7583f0c421663b8ca76fa579018b40682ef8553d73fd061cd8f216ecdced6a30400473044022064d1a5480d76bc71d44ee440a47ec30e7433812292ca8d4876e5e59cd2950e4802201ece394b4bcbf6ba3f21152236822cfb2eeed8e5897d3bf3499e9d7d1a5d092e01473044022068cd05fe53fa71118b643e5340ea3cd169a3ca655c64c0b30f78d720d79a957502200f14d30de4251cf016a3db3475fe5472772335b76dfc268dc173e6541026b1830147522102d595ae92b3544c3250fb772f214ad8d4c51425033740a5bcc357190add6d7e7a2102d6063d022691b2490ab454dee73a57c6ff5d308352b461ece69f3c284f2c241252ae00000000", + "txid": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6", "txs": [ - "02000000000101cls00101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101" + "02000000000101a92a6508defe049b47f2420c054cb1a446198faf4bfd74bb2479b3c45075ce7c0000000000ffffffff02026e07000000000022512085d72025e78fd08bb61119f0987ab0041f50561ada6e130c645343db8c44c2afeec8070000000000225120a7583f0c421663b8ca76fa579018b40682ef8553d73fd061cd8f216ecdced6a30400473044022064d1a5480d76bc71d44ee440a47ec30e7433812292ca8d4876e5e59cd2950e4802201ece394b4bcbf6ba3f21152236822cfb2eeed8e5897d3bf3499e9d7d1a5d092e01473044022068cd05fe53fa71118b643e5340ea3cd169a3ca655c64c0b30f78d720d79a957502200f14d30de4251cf016a3db3475fe5472772335b76dfc268dc173e6541026b1830147522102d595ae92b3544c3250fb772f214ad8d4c51425033740a5bcc357190add6d7e7a2102d6063d022691b2490ab454dee73a57c6ff5d308352b461ece69f3c284f2c241252ae00000000" ], "txids": [ - "txid010101010101010101010101010101010101010101010101010101010101" + "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6" ], "type": "mutual" } @@ -5454,18 +6071,18 @@ "id": "example:close#2", "method": "close", "params": { - "id": "nodeid040404040404040404040404040404040404040404040404040404040404", - "destination": "bcrt1p0004040404040404040404040404040404040404040404040404040404" + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "destination": "bcrt1qwvp8fktkxp07v0fp9jyqe7yl6rcgyu585a7pzr" } }, "response": { - "tx": "02000000000101cls10202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202", - "txid": "txid020202020202020202020202020202020202020202020202020202020202", + "tx": "02000000000101b6f77750c0aae7faf2aa6e4b38a14671adc8def298a0b89ced09596f002aa5ef0000000000ffffffff026b6f070000000000160014730274d976305fe63d212c880cf89fd0f08272873ac80700000000002251202bdd81f95d64ed2cc37d2eae725de428c91bff072d7503d87446970eedc630300400473044022008dec4948db1c9e4db4dcf8c223f554117e48c6aa0aac471de67c03163a82e4a0220018bdb9889230e0048a378efad73d3bec83c330baa727323d95ca86fe36301b701473044022022cec9df9ece54e1ca89888bdc19ed84e5202a93070d05aa9b3236f9990b440d0220376f7fd6edb49ad13596cdfd51d929a92d45bc88da3f16ed0777014a28025a2801475221021c29746e4136ddff456483df3980c2d0d5f31c93ef5ded564f7294a10d7414aa2103c47b1b2afcfd68c7b86c0976adb9a4f0835bc78242fced745d78433497a867d652ae00000000", + "txid": "1aa6d7b0bb6c5d1dac62724caa4e26dc37ed8af5e747c836746987d28603fed2", "txs": [ - "02000000000101cls10202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202" + "02000000000101b6f77750c0aae7faf2aa6e4b38a14671adc8def298a0b89ced09596f002aa5ef0000000000ffffffff026b6f070000000000160014730274d976305fe63d212c880cf89fd0f08272873ac80700000000002251202bdd81f95d64ed2cc37d2eae725de428c91bff072d7503d87446970eedc630300400473044022008dec4948db1c9e4db4dcf8c223f554117e48c6aa0aac471de67c03163a82e4a0220018bdb9889230e0048a378efad73d3bec83c330baa727323d95ca86fe36301b701473044022022cec9df9ece54e1ca89888bdc19ed84e5202a93070d05aa9b3236f9990b440d0220376f7fd6edb49ad13596cdfd51d929a92d45bc88da3f16ed0777014a28025a2801475221021c29746e4136ddff456483df3980c2d0d5f31c93ef5ded564f7294a10d7414aa2103c47b1b2afcfd68c7b86c0976adb9a4f0835bc78242fced745d78433497a867d652ae00000000" ], "txids": [ - "txid020202020202020202020202020202020202020202020202020202020202" + "1aa6d7b0bb6c5d1dac62724caa4e26dc37ed8af5e747c836746987d28603fed2" ], "type": "mutual" } @@ -5564,7 +6181,7 @@ "id": "example:commando#1", "method": "commando", "params": { - "peer_id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "peer_id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "rune": "zFMd1fjhrAYxUeFA54TjloZqOt8JrA_i_nYwIgXkag49MA==", "method": "newaddr", "params": { @@ -5573,7 +6190,7 @@ } }, "response": { - "p2tr": "bcrt1p338x07070707070707070707070707070707070707070707070707070707" + "p2tr": "bcrt1pccrx7fmmdg6ssww0su65umpyzrt0w8fs39hc0tu04zm88etleqsq8t2an5" } }, { @@ -5581,22 +6198,22 @@ "id": "example:commando#2", "method": "commando", "params": { - "peer_id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "peer_id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "rune": "RXgu0DD_i0wSPEZkIDyZIWL0bSAGdhvJ_GHOQdTg04A9MSZpZF4wMjY2ZTQ1OThkMWQzYzQxNWY1NyZtZXRob2Q9bGlzdHBlZXJz", "method": "listpeers", "params": [ - "nodeid030303030303030303030303030303030303030303030303030303030303" + "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d" ] } }, "response": { "peers": [ { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "connected": true, "num_channels": 2, "netaddr": [ - "127.0.0.1:19736" + "127.0.0.1:30005" ], "features": "0898882a8a59a1" } @@ -5608,23 +6225,23 @@ "id": "example:commando#3", "method": "commando", "params": { - "peer_id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "peer_id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "rune": "QUJEYMLGgiaJvMDv_MhR2hiMKIBTbq-PrL-KxcIlirQ9MiZtZXRob2Q9cGF5JnBuYW1lYW1vdW50bXNhdDwxMDAwMA==", "method": "pay", "params": { - "bolt11": "lnbcrt100n1pnt2bolt11invl020300000000bolt11invl020300000000bolt11invl020300000000bolt11invl020300000000bolt11invl020300000000bolt11invl020300000000bolt11invl020300000000bolt11invl020300000000bolt11invl020300000000bolt11invl020300000000", + "bolt11": "lnbcrt1pne035qsp5hu0s83c7qg77lgtagcr58sf07fvrqf27j67s2ptguw9wk8ruexfqpp50ge88lv20ge4a9ny7xc7rg8p6vqvnuuzwllkk2zng6txu7sfz3cqdqcdserxgryv4ekxunfwp6xjmmwxqyjw5qcqp99qxpqysgqrwjd83fygx3zcnupx0ftnpewajss6n4vpsugju00w8hu5lu0neujqhgw8jygwmawz8jq8pp2xu6r78f3m9yld6ky7539x5g5ahvtmqqqmgfjaa", "amount_msat": 9900 } } }, "response": { - "destination": "nodeid020202020202020202020202020202020202020202020202020202020202", - "payment_hash": "paymenthashcmdpycp10cp10cp10cp10cp10cp10cp10cp10cp10cp10cp10cp10", - "created_at": 1738000000, + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "payment_hash": "7a3273fd8a7a335e9664f1b1e1a0e1d300c9f38277ff6b285346966e7a091470", + "created_at": 1738000000.0, "parts": 1, "amount_msat": 9900, "amount_sent_msat": 9900, - "payment_preimage": "paymentpreimagec010101010101010101010101010101010101010101010101", + "payment_preimage": "08377744ca985c1f08377744ca985c1f08377744ca985c1f08377744ca985c1f", "status": "complete" } } @@ -5824,19 +6441,19 @@ "id": "example:connect#1", "method": "connect", "params": { - "id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "host": "localhost", - "port": 19735 + "port": 30003 } }, "response": { - "id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "features": "0898882a8a59a1", "direction": "out", "address": { "type": "ipv4", "address": "127.0.0.1", - "port": 19735 + "port": 30003 } } }, @@ -5845,19 +6462,19 @@ "id": "example:connect#2", "method": "connect", "params": { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "host": "localhost", - "port": 19736 + "port": 30005 } }, "response": { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "features": "0898882a8a59a1", "direction": "out", "address": { "type": "ipv4", "address": "127.0.0.1", - "port": 19736 + "port": 30005 } } } @@ -6076,19 +6693,19 @@ "id": "example:createinvoice#1", "method": "createinvoice", "params": { - "invstring": "lnbcrt100n1pnt2bolt11invl010300000000bolt11invl010300000000bolt11invl010300000000bolt11invl010300000000bolt11invl010300000000bolt11invl010300000000bolt11invl010300000000bolt11invl010300000000bolt11invl010300000000bolt11invl010300000000", + "invstring": "lnbcrt1u1pne035qsp5j9w8t9p2y6an5se63n3vkpp8c20vdsthtn78sv5t2lmt57l742wqpp5wtxkappzcsrlkmgfs6g0zyct0hkhashh7hsaxz7e65slq9fkx7fsdqcdscnxgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqdcqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqckdjpyhc4cunmkllssef4lekdrf6dmg6pq4r45ftgcfyvyx3ag0k473jegm39nl9wal6ue7y8ue6xlf7wd8f0ql4xs7fx45jm47muzqq7cecak", "label": "lbl_l13", "preimage": "0101010101010101010101010101010101010101010101010101010101010101" } }, "response": { "label": "lbl_l13", - "bolt11": "lnbcrt100n1pnt2bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000", - "payment_hash": "paymenthashinvl0210021002100210021002100210021002100210021002100", + "bolt11": "lnbcrt1u1pne035qsp5j9w8t9p2y6an5se63n3vkpp8c20vdsthtn78sv5t2lmt57l742wqpp5wtxkappzcsrlkmgfs6g0zyct0hkhashh7hsaxz7e65slq9fkx7fsdqcdscnxgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqdcqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgq2dmxu8vh2mmklw3vrq0dy4a69v7ga4mauty4cswwga4j4ahx797sjtzpj0qty3qkxcvw3nndx8f9v9230y4sjyf298m6uwz8thz9rpcqz05u35", + "payment_hash": "72cd6e8422c407fb6d098690f1130b7ded7ec2f7f5e1d30bd9d521f015363793", "amount_msat": 100000, "status": "unpaid", "description": "l13 description", - "expires_at": 1739000000, + "expires_at": 1738604800, "created_index": 7 } } @@ -6204,27 +6821,27 @@ "params": { "hops": [ { - "pubkey": "nodeid020202020202020202020202020202020202020202020202020202020202", - "payload": "payload010101010101010101010101010" + "pubkey": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "payload": "11020203e804019106080000700000010000" }, { - "pubkey": "nodeid030303030303030303030303030303030303030303030303030303030303", - "payload": "payload020202020202020202020202020" + "pubkey": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "payload": "11020203e804019106080000720000010000" }, { - "pubkey": "nodeid040404040404040404040404040404040404040404040404040404040404", - "payload": "payload030303030303030303030303030" + "pubkey": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "payload": "2b020203e804018b0822d1d843a07ff04801a9c926cfef8fbd242a35d332fde5e255e6b4c92e2fc5030f03e8" } ], - "assocdata": "assocdata0010101010101010101010101010101010101010101010101010101" + "assocdata": "47c148c1746366e4c2c7496621c22002bc2711b4d9c52cbb9c7b1fdca59c8579" } }, "response": { - "onion": "onion10101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010", + "onion": "00021d5b7e75f56e8fb8c5dbbcfdf954b89d171b35fced6bf4ad929b3b6e081e16c93046493f6f0f4e6f983b424e799b9f60ae7c75fa260760393aad7958e04ec5ea5a06e11078daa9ff31a1aaeed8b04f5ce319118a4bdda9e90861829161dd4d44164816f566d0cc219da32fdd08249068cec2fd589fb216933b95adce045364fcb6d6905a4e4169346b75e6ccfecb0cfdfd74d0574eb684b952db7df8443541cc28296f42afeafbb7a34c3f8c64dce9c0ebb37f5485f66246cbf11b7a8cd4a45d64723b7e706b1ef3eff4ce6133aa86f6c044337716bd0c1173b92b13c4d11453ab850fd945c1af91d3ce41928600bbafbc81b56e3bc704a678a783e2232bc80bc4afa93f84498127123096af80ca5295bb02b6c6524720a0f4dc81075688632b9428f6f4399a0ecf6c17e5c3015c9715af5127000787cc8d7e023f96b6e0175d600911c1dffef6a0d2a8ea8059b287e9e941810de5190ce0c274d6452a8ecc06a0cb98a9550e7e80e8eebdb9c326ca2a3f25b3147daaa68b8d5f745344938645535f858f6a4484b17322b4076714994865ac1660c4f364309bb5147c55bf8458cf6aa7420896d2cb1ee0fe301c83109a102a42d41063c32732ef0366b9b9bd7516c3f7607a54eb3255fa6589bd3ea021cb9deee71b3ea33fa9e509c085216243ea6cea4acf038fee2a4e7418f4087c79423f8bc94fda1ea7de66cb06c131304e39b20634e70721f028427093e059065e6d157cbbdb1ea02476478033164cc90b7707c612897224099c8f3cae86cf0503a1fc1c21e86f4fa7c6332786cc0c44b379516032a93d1c4853453b819d30438814b28bbb14989dfb88819e3fd9b38267b84cc052637ca9c5ae2b149fb53831e4237036cde4b6dd0c0754c52551585692beba1b4228540255ad6fd6bd7912acd47816023332a52075db994decac8cc3611a0f222638084b71a3f8f4c019af28524d96a609fd7cf2e660414b8db54a2d77087087313dea24cab947c04a3ca191d3ba8ffd5ddef72fbc6ad1fc7c71e97cc3da1b677108b907c591c32cb3a41b5636292d9db891013c2d729d67162e4388bee98469f98871af9b5580768f0db885106b981274060f1b3bca8f7297287c6688f6c30054f727d7dd9baa097175fb198b3477c2f1545ea6425f0a6df732ea4be943dff9cece87a9751be426669b1f8b3cb3f7a39f2b72ee68c287e6db1c86405b782c774c22acad3a68bb377713958f6c89e7b8a3d17e52416ea9bdb959949b47af8dd6b380ebc0481873de65edf599f3c1f51c9e4abd388e4d6ad6cf48e5c279286ed7bc683523b9c016227af1cdcf856ec11b47d3f369ac4fde6cee8e19748ef6c365c5effdc81afe560e1597891256dad1b849f550ab681b0c8ba660f1172ac3f63069140c2180537d793f899ba897dae47a848b6e4b1ceac369c59257a3c1d4f2cefe0b64e84ac010397bc55d77a8f801b227ab6453770fc9775788c4a9ce7bdc5f40aa156d1b0c4f9ef41dfbb0518151809761d22e503b9b8725704bbe4f7aaaf4188f80106354743e3f605a1cee1d6d09226176a913a3f9fe9513a081377c820e582fffd534cb27146264972b9f5362dc37cacb821e64ef711eb39addbe1a747df2b1cc54f26dfc1a32ac26297b980e4a492e2242d6d745e508e65f6162ba6e28d4f1f2177c5896c9d82019a74cd6f136e04af3a01a2178e961c0d4e63235982807579ea34f306ec0ea3f0e58a8fee4dd28c2303fa9e09e45b8c9cbc6a69aba0b838473a33e2a287f0824936bfd427f72b7bb7362a40f77136ecfe53173b2acfbbdd49ec390078926d0a9a69114312fee5a9b5ad8f7b80711f76d5ffca8632593b2ea9b2caaebf219ec7586e9d6962353f98b2882fb804a34b16946453038127de73f4e827b190f6001b7a5560b7eb978f8", "shared_secrets": [ - "sharedsecret1010101010101010101010101010101010101010101010101010", - "sharedsecret1111111111111111111111111111111111111111111111111111", - "sharedsecret1212121212121212121212121212121212121212121212121212" + "f0652f245faf69100228c62e03a064bdbc7e3ac191e1c5bb094a94c1939d8b9b", + "b252680750e43ce4fdb2bc38c9b31f6b9b37d5d1bd9abf679dfcc33047154180", + "760e4382462d61429cf7ba5af877aa82516119dfc3d7172350234b5018f87626" ] } }, @@ -6235,28 +6852,28 @@ "params": { "hops": [ { - "pubkey": "nodeid020202020202020202020202020202020202020202020202020202020202", - "payload": "payload010101010101010101010101010" + "pubkey": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "payload": "11020203e804019106080000700000010000" }, { - "pubkey": "nodeid030303030303030303030303030303030303030303030303030303030303", - "payload": "payload020202020202020202020202020" + "pubkey": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "payload": "11020203e804019106080000720000010000" }, { - "pubkey": "nodeid040404040404040404040404040404040404040404040404040404040404", - "payload": "payload030303030303030303030303030" + "pubkey": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "payload": "2b020203e804018b0822d1d843a07ff04801a9c926cfef8fbd242a35d332fde5e255e6b4c92e2fc5030f03e8" } ], - "assocdata": "assocdata0010101010101010101010101010101010101010101010101010101", + "assocdata": "47c148c1746366e4c2c7496621c22002bc2711b4d9c52cbb9c7b1fdca59c8579", "session_key": "4141414141414141414141414141414141414141414141414141414141414141" } }, "response": { - "onion": "onion20202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020", + "onion": "0002eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f2836866191c78fd992adb6335814526c8f53ab57e22cd57b69c19115ac040a9b54cfee007a2aed47573c7939d15b1411605e9e0f03698d38499e802a15853122723857dbddb629cf2e16a1292a1c951ca4211efadc17b6e219e5dacfe19ee6288cc29ddd440c056ed1ea9fa2c0caea86d7b0de9338326e4f13bb1cda872a64a836a729350f2e79c3ac8618ddfacbd70d588759e8701901d74b64bf51f1c21cdc785b54dc5a6ba39fc75f956b60a372f6421a84f6001b294487baf1bb049b7bd901c5854c0999a82095874b02da90021a685f7c77f4b724a3d27489c091807b32bcdfb2c68f69b50c0b43c78288c333dbb007874f36fcf224fbc2ed89690f64a62b5ecfe6275750eb1a5575f689ca6d59c9a570689372db120cf6a29177caaace5ac671a3607d37a3048af18d1d736ac8a4dde8efc4884f8eab23cdc8cb15170471ee7b416b5cf089dee8ab8ac3eea6700a6040839c1e86f6d2b5acf9c7bac856cae96e9d1b7142f91ac4818cf0007a23100ae621470ac2552116f30948f21602237d12d29f58ca73f10f05b38f7b4b728fcfd8aafc1a82502aae3081c4bc8a77771aef16247bcf26d8569140441c405a3c21a649a8439797f45e7c37a2025318f4c88e3eba454fd4cc37e9978b59fa7b1e41af450523713fdad8070c7abdeea299474c99b2bde737e8c8ad79cb9fdd70a935ad29504d185bf100a339d203cd929030454a6450132255fea11ba0c6a520fa7cc3b8638f8032a61c492f7f9d1ec591a851f25df9238945ae467126b64019f21a71a2d3ef46cdd7b61773ad632dc77e0bda7d06b493efe940d9b975ebb85c423a83d24966f5e2ae2ec9c3b2257cc21a4989dd016d688865ba5245667c302e408dc56ffdf4282ad834f0c5af1ce49b3997fe397faf6874cac24ae346b4e72e468506c0e724efe6f805e0fd115de39b6fa29d05e11bbe2ec27548517f93ebd7b977b13237ab9c40ff5766f7263ea1f2eabba460600cd7da082fcf8d0a7bd37054abfd6040f886dde48cf600612b5b73a44026e79d46336de73f2ea5fbfc9603ccd89f6954e5093b6bfe556e6f67deb0878128049186f7ac6ef461a56c2bb4f24a9679fb386e06052c3da2f367f14bc41ec191f5b0b7b3ccad1f2cc58c863c49055c889b8b04b6b6cbaec50d0d103d4ea0da75952a730b07cea0da43914b5ab3f30b5104d9a75eb003da0b5b97bf9eb9081194cc5b50362041a972841bdafde31909929237ed5b94c88dd05126cdb3fd25add0c777c2ad021e1a0e7140d6c4c2005cb353a7a6a747ee75467c052f55faa485cbcf3758eafba7a8ef00d1481cc0f05af539116f443cb02a7b30a3de899dc66cb0781ccccf5c8d93b34be0665d11cbca55cd7a424b958124edf1289c7f4fc19c1be8fc7a861ce47c43a641bafdb195e1c74a1fbf69dbd518013f3dbf2860818b5a3e6f1dd36a5546bfd416e9714dec29818ecd1aeeb29c319b407c497621248d232680417486698a3e1262f03a8bc6441d1de40ae351dae4527a8efe25fc68a3f1571aa556edd6bfb9db7caba4d2c02bab003c43055f5d3ebf961735c3b1f4cd3e0a96038697a95cceac08c0aff084450cf571f81c95d468826aa4292997ccfeba32db77c4c22a9d3caa0a37a8a961ac2f2c8a6965687143bc93c620503839fd7bd7fc2e6d9c966586b713f824b8e9d3de55cb1b81f9204b92dfaa066920c0910e62e59650e904e05b94bde3e467d45719d6a3b85a71c8ff1dcca5a5f497928db5f64c55aad93513e87f4f0c93a6fa5a9afe929cf8223ea509f584913844044aa23a4afa4bc0ad975f4904aab5d77b5e51511460a3b7a3bfa335d623f0f5949b72174681526f075633af9234092fd1f7a5c6767292ef5", "shared_secrets": [ - "sharedsecret2020202020202020202020202020202020202020202020202020", - "sharedsecret2121212121212121212121212121212121212121212121212121", - "sharedsecret2222222222222222222222222222222222222222222222222222" + "2d7581974cde41b42da1d0a3147704aae5a71e8987fa30dc920c8cdf784b661d", + "bb599b824ce9e123c8cb27cd50a996e5035b8ae903356dcbff224496aab3a891", + "7bc4f97c2d18d5372ef572334e31590ec36b33220d7a71fa4e0fe841174eaccb" ] } } @@ -6975,7 +7592,7 @@ "response": { "datastoreusage": { "key": "[]", - "total_bytes": 2909 + "total_bytes": 2958 } } }, @@ -9442,7 +10059,7 @@ "id": "example:decode#2", "method": "decode", "params": [ - "lnbcrt100n1pnt2bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000" + "lnbcrt2u1pne035qsp5u7glcpdagz8xcw9nw4t7xjhad5fjk9vu9h6s4da9tue6cj6x772spp52jyd84j7psgd4u2tp627hsrf9ntzptcjl3ywn03v4fdsehw4s2ysdqcdserygryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqdyykau6tf258sy2g5q94ma8jqthrs7zszaj2y4wj23dznnz5rcvxvxvkkv76uj076mz5std62p3gf2kvycq29t69345667cvs0pmvzsq4lawhd" ] }, "response": { @@ -9450,25 +10067,25 @@ "currency": "bcrt", "created_at": 1738000000, "expiry": 604800, - "payee": "nodeid020202020202020202020202020202020202020202020202020202020202", + "payee": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "amount_msat": 200000, "description": "l22 description", "min_final_cltv_expiry": 5, - "payment_secret": "paymentsecretinvl00220002200022000220002200022000220002200022000", + "payment_secret": "e791fc05bd408e6c38b37557e34afd6d132b159c2df50ab7a55f33ac4b46f795", "features": "02024100", "routes": [ [ { - "pubkey": "nodeid030303030303030303030303030303030303030303030303030303030303", - "short_channel_id": "111x1x1", + "pubkey": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "short_channel_id": "112x1x0", "fee_base_msat": 1, "fee_proportional_millionths": 10, "cltv_expiry_delta": 6 } ] ], - "payment_hash": "paymenthashinvl0220022002200220022002200220022002200220022002200", - "signature": "dcde30c4bb50bed221009d010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "payment_hash": "5488d3d65e0c10daf14b0e95ebc0692cd620af12fc48e9be2caa5b0cddd58289", + "signature": "3044022069096ef34b4aa8781148a00b5df4f202ee3878501764a255d2545a29cc541e180220661996b33dae49fed6c5482dba506284aacc2600a2af458d69ad7b0c83c3b60a", "valid": true } } @@ -9749,32 +10366,32 @@ "id": "example:decodepay#1", "method": "decodepay", "params": { - "bolt11": "lnbcrt100n1pnt2bolt11invl010100000000bolt11invl010100000000bolt11invl010100000000bolt11invl010100000000bolt11invl010100000000bolt11invl010100000000bolt11invl010100000000bolt11invl010100000000bolt11invl010100000000bolt11invl010100000000" + "bolt11": "lnbcrt100n1pne035qsp57ygq6nedvja7wf8r0qlv8zfhyuk3knlhx4pcenp56z86nxcjgr8qpp5l5drs7dcy2vsh8a0u056vc0cqm0n6xkqxwk7mp6h4ptfmdt0lwsqdqcdscnzgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqdcqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgql3cft8k3t9ztqvu27r0ek2j2a8hsas62rlsuyztyn3sayxtqppmxre3vsy780lrw0uylnyks7wwn54vnj3gqmyt5nywkc4w5paepzygqym8dle" } }, "response": { "currency": "bcrt", "created_at": 1738000000, "expiry": 604800, - "payee": "nodeid010101010101010101010101010101010101010101010101010101010101", + "payee": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "amount_msat": 10000, "description": "l11 description", "min_final_cltv_expiry": 5, - "payment_secret": "paymentsecretinvl00110001100011000110001100011000110001100011000", + "payment_secret": "f1100d4f2d64bbe724e3783ec38937272d1b4ff735438ccc34d08fa99b1240ce", "features": "02024100", "routes": [ [ { - "pubkey": "nodeid020202020202020202020202020202020202020202020202020202020202", - "short_channel_id": "109x1x1", + "pubkey": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "short_channel_id": "110x1x0", "fee_base_msat": 1, "fee_proportional_millionths": 10, "cltv_expiry_delta": 6 } ] ], - "payment_hash": "paymenthashinvl0110011001100110011001100110011001100110011001100", - "signature": "dcdepay30c4bb50bed209d020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202" + "payment_hash": "fd1a3879b822990b9fafe3e9a661f806df3d1ac033aded8757a8569db56ffba0", + "signature": "3045022100fc70959ed15944b0338af0df9b2a4ae9ef0ec34a1fe1c209649c61d219600876022061e62c813c77fc6e7f09f992d0f39d3a559394500d9174991d6c55d40f721111" } } ] @@ -9982,7 +10599,7 @@ "id": "example:delforward#1", "method": "delforward", "params": { - "in_channel": "109x1x1", + "in_channel": "110x1x0", "in_htlc_id": 4, "status": "local_failed" } @@ -9994,7 +10611,7 @@ "id": "example:delforward#2", "method": "delforward", "params": { - "in_channel": "109x1x1", + "in_channel": "110x1x0", "in_htlc_id": 21, "status": "failed" } @@ -10308,12 +10925,12 @@ }, "response": { "label": "lbl_l36", - "bolt11": "lnbcrt222n1pnt3005720bolt113000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "payment_hash": "paymenthashdelinv10101010101010101010101010101010101010101010101", + "bolt11": "lnbcrt500u1pne035qsp5m5fegjlm0t8c5hfk8mkr73sz64956chjunxgjar5can3jgdc0ptqpp59p68dl5sc9sdpxle29tyd8wrelyzudnvgemvndm57fs9r02xt2tqdqcdsenvgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqq0sqqqqgqqyqqqqqpqqqqqzsqqc9qxpqysgqx5puexlrq20ducnx5wky8y0vkmu798rxa4cg704ty55hwks60yjnyfc94kdwtanrk45sydh3zp992mpg0xfuk65kl8knaqkjfpv8hvcpfa27ne", + "payment_hash": "287476fe90c160d09bf95156469dc3cfc82e366c4676c9b774f26051bd465a96", "amount_msat": 50000000, "status": "unpaid", "description": "l36 description", - "expires_at": 1739000000, + "expires_at": 1738604800, "created_index": 9 } }, @@ -10329,15 +10946,15 @@ }, "response": { "label": "lbl_l37", - "bolt11": "lnbcrt222n1pnt3005720bolt113000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "payment_hash": "paymenthashdelinv20202020202020202020202020202020202020202020202", + "bolt11": "lnbcrt500u1pne035qsp50zcqdgkx0dwzlksvkntzmmuednc9mxdnnzrghatwffw5fycnkpcqpp58x5gmhrfe9e60ygy82rh5s27m2zq3zyynfwhzawfvessg5fljg6sdqcdsenwgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqq0sqqqqgqqyqqqqqpqqqqqzsqqc9qxpqysgqxdq9h7j2xkfjvm8ansypq8w2xvawhdu5wwzpkg9ar2al66d6uae8lxzx6maekk0pgae6fzeauglsxvqplc3lw30fzv430a7nmccv0lcq0du8d6", + "payment_hash": "39a88ddc69c973a791043a877a415eda840888849a5d7175c9666104513f9235", "amount_msat": 50000000, "status": "paid", "pay_index": 9, "amount_received_msat": 50000000, - "paid_at": 1738500000, - "payment_preimage": "paymentpreimagedelinv01010101010101010101010101010101010101010101", - "expires_at": 1739000000, + "paid_at": 1738000000, + "payment_preimage": "83ffe698292fbb6583ffe698292fbb6583ffe698292fbb6583ffe698292fbb65", + "expires_at": 1738604800, "created_index": 10, "updated_index": 9 } @@ -10559,7 +11176,7 @@ "id": "example:delpay#1", "method": "delpay", "params": { - "payment_hash": "paymenthashdelpay10101010101010101010101010101010101010101010101", + "payment_hash": "342cbb1cb564e8f32eb64fe8c254abf5ec5f6b87a0f8de7909caf8e658f3bd2a", "status": "complete" } }, @@ -10568,17 +11185,17 @@ { "created_index": 1, "id": 1, - "payment_hash": "paymenthashdelpay10101010101010101010101010101010101010101010101", + "payment_hash": "342cbb1cb564e8f32eb64fe8c254abf5ec5f6b87a0f8de7909caf8e658f3bd2a", "groupid": 1, "updated_index": 1, - "destination": "nodeid020202020202020202020202020202020202020202020202020202020202", + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "amount_msat": 500000000, "amount_sent_msat": 500000000, "created_at": 1738000000, - "completed_at": 1738500000, + "completed_at": 1738000000, "status": "complete", - "payment_preimage": "paymentpreimgdp1010101010101010101010101010101010101010101010101", - "bolt11": "lnbcrt222n1pnt3005720bolt114000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101" + "payment_preimage": "08377744ca985c1808377744ca985c1808377744ca985c1808377744ca985c18", + "bolt11": "lnbcrt5m1pne035qsp5y09we8jhy4ug66c945kzkqyqzrhhqsap22q07wnawlgntwa5ca2spp5xsktk894vn50xt4kfl5vy49t7hk976u85rudu7gfetuwvk8nh54qdpcv3jhxcmjd9c8g6t0dcs8xetwvss8xmmdv5s8xct5wvsxcvfqw3hjqmpjxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqvsru69ylhpkda6980sl996q2fmld2zszepv79zf747la6zzt8mf8p0qw80w6j8d5evc72fls4d99sza23nnm6pahjqrs8kv3apdttjcq2mm2xw" } ] } @@ -10588,7 +11205,7 @@ "id": "example:delpay#2", "method": "delpay", "params": [ - "paymenthashdelpay20202020202020202020202020202020202020202020202", + "287476fe90c160d09bf95156469dc3cfc82e366c4676c9b774f26051bd465a96", "failed" ] }, @@ -10597,16 +11214,16 @@ { "created_index": 23, "id": 23, - "payment_hash": "paymenthashdelinv10101010101010101010101010101010101010101010101", + "payment_hash": "287476fe90c160d09bf95156469dc3cfc82e366c4676c9b774f26051bd465a96", "groupid": 1, "updated_index": 22, - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 50000000, "amount_sent_msat": 50000501, "created_at": 1738000000, - "completed_at": 1738500000, + "completed_at": 1738000000, "status": "failed", - "bolt11": "lnbcrt222n1pnt3005720bolt113000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101" + "bolt11": "lnbcrt500u1pne035qsp5m5fegjlm0t8c5hfk8mkr73sz64956chjunxgjar5can3jgdc0ptqpp59p68dl5sc9sdpxle29tyd8wrelyzudnvgemvndm57fs9r02xt2tqdqcdsenvgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqq0sqqqqgqqyqqqqqpqqqqqzsqqc9qxpqysgqx5puexlrq20ducnx5wky8y0vkmu798rxa4cg704ty55hwks60yjnyfc94kdwtanrk45sydh3zp992mpg0xfuk65kl8knaqkjfpv8hvcpfa27ne" } ] } @@ -10616,7 +11233,7 @@ "id": "example:delpay#3", "method": "delpay", "params": { - "payment_hash": "paymenthashdelpay30303030303030303030303030303030303030303030303", + "payment_hash": "2b924194d169a96d9cc35b66ae912507e18ace9ef679fcb5324636ff73be410a", "status": "failed", "groupid": 1, "partid": 2 @@ -10627,15 +11244,15 @@ { "created_index": 20, "id": 20, - "payment_hash": "paymenthashdelpay30303030303030303030303030303030303030303030303", + "payment_hash": "2b924194d169a96d9cc35b66ae912507e18ace9ef679fcb5324636ff73be410a", "groupid": 1, "updated_index": 19, "partid": 2, - "destination": "nodeid040404040404040404040404040404040404040404040404040404040404", + "destination": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "amount_msat": 1000000, "amount_sent_msat": 1000000, "created_at": 1738000000, - "completed_at": 1738500000, + "completed_at": 1738000000, "status": "failed" } ] @@ -10809,13 +11426,13 @@ "id": "example:dev-forget-channel#1", "method": "dev-forget-channel", "params": { - "id": "nodeid050505050505050505050505050505050505050505050505050505050505" + "id": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e" } }, "response": { "forced": false, "funding_unspent": false, - "funding_txid": "fundingtxid00101010101010101010101010101010101010101010101010101" + "funding_txid": "92dc0d9921d6c5beda83bddd3d1575fb673493f354c0a8cd91c6b139620c3155" } }, { @@ -10826,15 +11443,15 @@ "id": "example:dev-forget-channel#2", "method": "dev-forget-channel", "params": { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", - "short_channel_id": "111x1x1", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "short_channel_id": "112x1x0", "force": true } }, "response": { "forced": true, "funding_unspent": false, - "funding_txid": "fundingtxid00202020202020202020202020202020202020202020202020202" + "funding_txid": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9" } } ] @@ -11366,14 +11983,14 @@ "id": "example:disableinvoicerequest#1", "method": "disableinvoicerequest", "params": { - "invreq_id": "invreqid02020202020202020202020202020202020202020202020202020202" + "invreq_id": "c5b8ebc06bdc246d7b852ce5637be459d3c053a5b3f8f68854f97af7371c9a50" } }, "response": { - "invreq_id": "invreqid02020202020202020202020202020202020202020202020202020202", + "invreq_id": "c5b8ebc06bdc246d7b852ce5637be459d3c053a5b3f8f68854f97af7371c9a50", "active": false, "single_use": true, - "bolt12": "lno1qgsq000bolt240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000", + "bolt12": "lnr1qqg99gqg2990zl3j22sqs52279lryzsk2fjhzat9wd6xjmn8ypnx7u3qd9h8vmmfvdj3yyrrd35kw6r5de5kueeqwd6x7un92qsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzr6jqwvfdqzcyypz6g3kyz34nfrl7lm6c3rushzxey3a55ecjgs6qp2vz8q78j336k0sgr76j2yl0lrljzljjdz8ztcpryunwgfk4hzz3sle3mhaw8v2gc4dn9map7v6dlpya98jy2mcrwe27qcsywlfqp6dhh30l54sj0e8tqsk", "used": false } } @@ -11474,14 +12091,14 @@ "id": "example:disableoffer#1", "method": "disableoffer", "params": { - "offer_id": "offeridl23000002300000230000023000002300000230000023000002300000" + "offer_id": "b791f88cebf775853112c30828e116487f4d6c252d669372532b468bc7de8a24" } }, "response": { - "offer_id": "offeridl23000002300000230000023000002300000230000023000002300000", + "offer_id": "b791f88cebf775853112c30828e116487f4d6c252d669372532b468bc7de8a24", "active": false, "single_use": false, - "bolt12": "lno1qgsq000bolt230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000", + "bolt12": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqv0gfqq2zp8kven9wgs8gmeqg35hxctzd3j3vggz953rvg9rtxj8lalh43z8epwydjfrmffn3y3p5qz5cywpu09rr4vs", "used": false } } @@ -11541,7 +12158,7 @@ "id": "example:disconnect#1", "method": "disconnect", "params": { - "id": "nodeid040404040404040404040404040404040404040404040404040404040404", + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "force": false } }, @@ -11552,7 +12169,7 @@ "id": "example:disconnect#2", "method": "disconnect", "params": { - "id": "nodeid050505050505050505050505050505050505050505050505050505050505", + "id": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e", "force": true } }, @@ -11727,14 +12344,14 @@ "id": "example:enableoffer#1", "method": "enableoffer", "params": { - "offer_id": "offeridl23000002300000230000023000002300000230000023000002300000" + "offer_id": "b791f88cebf775853112c30828e116487f4d6c252d669372532b468bc7de8a24" } }, "response": { - "offer_id": "offeridl23000002300000230000023000002300000230000023000002300000", + "offer_id": "b791f88cebf775853112c30828e116487f4d6c252d669372532b468bc7de8a24", "active": true, "single_use": false, - "bolt12": "lno1qgsq000bolt230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000", + "bolt12": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqv0gfqq2zp8kven9wgs8gmeqg35hxctzd3j3vggz953rvg9rtxj8lalh43z8epwydjfrmffn3y3p5qz5cywpu09rr4vs", "used": false } } @@ -12426,7 +13043,7 @@ "offer": "lno1zr5qyugqgskrk70kqmuq7v3dnr2fnmhukps9n8hut48vkqpqnskt2svsqwjakp7k6pyhtkuxw7y2kqmsxlwruhzqv0zsnhh9q3t9xhx39suc6qsr07ekm5esdyum0w66mnx8vdquwvp7dp5jp7j3v5cp6aj0w329fnkqqv60q96sz5nkrc5r95qffx002q53tqdk8x9m2tmt85jtpmcycvfnrpx3lr45h2g7na3sec7xguctfzzcm8jjqtj5ya27te60j03vpt0vq9tm2n9yxl2hngfnmygesa25s4u4zlxewqpvp94xt7rur4rhxunwkthk9vly3lm5hh0pqv4aymcqejlgssnlpzwlggykkajp7yjs5jvr2agkyypcdlj280cy46jpynsezrcj2kwa2lyr8xvd6lfkph4xrxtk2xc3lpq" } ], - "proof": "0473656e64proof00001proof00001proof00001proof00001proof00001proof00001proof00001proof00001proof00001proof00001" + "proof": "0473656e6404736f6d650475736572105f626974636f696e2d7061796d656e740673617473746f026d65000005000100000e10002c046d6174740475736572105f626974636f696e2d7061796d656e740b6d617474636f72616c6c6f03636f6d000473656e6404736f6d650475736572105f626974636f696e2d7061796d656e740673617473746f026d6500002e000100000e10005d00050d0600000e1068cbae9b68b92483d1730673617473746f026d6500791e02a2bcc49002f748cf633b058fabf9975dce37ae6383429819624a898a0e6c7f4931fd84ca7ba8120c00f220a9a71a799c8e91acd635a34281dc4bc33e0f046d6174740475736572105f626974636f696e2d7061796d656e740b6d617474636f72616c6c6f03636f6d000010000100000e1001ecff626974636f696e3a626331717a7477793678656e337a647474377a3076726761706d6a74667a3861636a6b6670356670376c3f6c6e6f3d6c6e6f317a7235717975677167736b726b37306b716d7571377633646e7232666e6d68756b7073396e386875743438766b7170716e736b743273767371776a616b70376b36707968746b7578773779326b716d73786c777275687a7176307a736e686839713374397868783339737563367173723037656b6d3565736479756d307736366d6e783876647175777670376470356a70376a337635637036616a3077333239666e6b7171763630713936737a356e6b726335723935716666783030327135337471646beb3878396d32746d7438356a74706d63796376666e727078336c723435683267376e6133736563377867756374667a7a636d386a6a71746a3579613237746536306a303376707430767139746d326e3979786c32686e67666e6d79676573613235733475347a6c78657771707670393478743772757234726878756e776b74686b39766c79336c6d356868307071763461796d6371656a6c6773736e6c707a776c6767796b6b616a7037796a73356a76723261676b79797063646c6a323830637934366a70796e73657a72636a326b7761326c797238787664366c666b706834787278746b327863336c7071046d6174740475736572105f626974636f696e2d7061796d656e740b6d617474636f72616c6c6f03636f6d00002e000100000e10006300100d0500000e1068ccc7d068ba3db826480b6d617474636f72616c6c6f03636f6d00f68a7e7a8f8643e433f854a733dd74db2a4ae01812ffaaed6d1243d7a665d518cf5b37c101d147329e5ba45d95fd1e8ca71e77894305e1081e7b0f442d20fdc90673617473746f026d6500002b000100000e1000245b360d022333b5ea25720720a8c54553c0641e8ccb8a917af20c694f10bf7ce3851e3f6e0673617473746f026d6500002b000100000e100024c4010d02a229c6d54c38b7bb723b48a6aceab1e7fdb6ae2a22b9b57c5ca6b942ed8ea2fe0673617473746f026d6500002e000100000e100096002b080200000e1068d1697c68b5abece2ad026d65006ed35281fc11d421c48a99a7c8b822442269ba75aa723517f93bd346c11ae9c23377a4d0ca9845a09fbed97fb3684219a197fb9bc9cbd7085fb7404c40a5d8bf6deacb0f6ab7036bf5ea979b0fd000a2da96da313b5d63bbe33efe58550af3ccccd1a107b87a6ee3e61abc92e6b87a300bcafd8f12e6c6197f3d4b82116749b0026d6500002b00010000bfd80024b12808027708c8a6d5d72b63214bbff50cb54553f7e07a1fa5e9074bd8d63c43102d8559026d6500002e00010000bfd80113002b08010001518068d0594068bf27b0b5690028415c2b258249314cf220c0631e898b98c786853de415c336421fbd0e2a4a50d64aeff8a369d0c0eb79b311b4c2732c1b902987986fe1ee230142fe2deccdc09647551f094e69a6ea8a813b0688b7cbbc846ecea7683c02ac45d0ff3cc2b6fda10233afdf963fa61c58a835684c7d708fab49efc38866675dec7787dbd8066492e2d77d70e6cd50893533ab80f2a2817a6476ad054ffad9c5dfdd68ecfece3c73eecc1fa0c2ac4c130014af201f11feef6788c8e91286a4279e06b491c55824a0718a2bf1775485c4f86ee834655e32be4a2f1b500d240008da68632c1134c21463151f5c5323944e2349536db8d822636eed2ec8fedb8c0f6692fcf066b59c000030000100005da101080101030803010001acffb409bcc939f831f7a1e5ec88f7a59255ec53040be432027390a4ce896d6f9086f3c5e177fbfe118163aaec7af1462c47945944c4e2c026be5e98bbcded25978272e1e3e079c5094d573f0e83c92f02b32d3513b1550b826929c80dd0f92cac966d17769fd5867b647c3f38029abdc48152eb8f207159ecc5d232c7c1537c79f4b7ac28ff11682f21681bf6d6aba555032bf6f9f036beb2aaa5b3778d6eebfba6bf9ea191be4ab0caea759e2f773a1f9029c73ecb8d5735b9321db085f1b8e2d8038fe2941992548cee0d67dd4547e11dd63af9c9fc1c5466fb684cf009d7197c2cf79e792ab501e6a8a1ca519af2cb9b5f6367e94c0d47502451357be1b5000030000100005da101080101030803010001af7a8deba49d995a792aefc80263e991efdbc86138a931deb2c65d5682eab5d3b03738e3dfdc89d96da64c86c0224d9ce02514d285da3068b19054e5e787b2969058e98e12566c8c808c40c0b769e1db1a24a1bd9b31e303184a31fc7bb56b85bbba8abc02cd5040a444a36d47695969849e16ad856bb58e8fac8855224400319bdab224d83fc0e66aab32ff74bfeaf0f91c454e6850a1295207bbd4cdde8f6ffb08faa9755c2e3284efa01f99393e18786cb132f1e66ebc6517318e1ce8a3b7337ebb54d035ab57d9706ecd9350d4afacd825e43c8668eece89819caf6817af62dc4fbd82f0e33f6647b2b6bda175f14607f59f4635451e6b27df282ef73d87000030000100005da101080100030803010001b11b182a464c3adc6535aa59613bda7a61cac86945c20b773095941194f4b9f516e8bd924b1e50e3fe83918b51e54529d4e5a1e45303df8462241d5e05979979ae5bf9c6c598c08a496e17f3bd3732d5aebe62667b61db1bbe178f27ac99408165a230d6aee78348e6c67789541f845b2ada96667f8dd16ae44f9e260c4a138b3bb1015965ebe609434a06464bd7d29bac47c3017e83c0f89bca1a9e3bdd0813715f3484292df589bc632e27d37efc02837cb85d770d5bd53a36edc99a8294771aa93cf22406f5506c8cf850ed85c1a475dee5c2d3700b3f5631d903524b849995c20cb407ed411f70b428ae3d642716fe239335aa961a752e67fb6dca0bf729000030000100005da101080100030803010001b6aec4b48567e2925a2d9c4fa4c96e6dddf86215a9bd8dd579c38ccb1199ed1be89946a7f72fc2633909a2792d0eed1b5afb2ee4c78d865a76d6cd9369d999c96af6be0a2274b8f2e9e0a0065bd20257570f08bc14c16f5616426881a83dbce6926e391c138a2ec317efa7349264de2e791c9b7d4a6048ee6eedf27bf1ece398ff0d229f18377cb1f6b98d1228ef217b8146c0c73851b89a6fc37c621ca187e16428a743ffea0072e185ef93e39525cee3ad01e0c94d2e511c8c313322c29ab91631e1856049a36898684c3056e5997473816fb547acb0be6e660bdfa89a5cb28b3669d8625f3f018c7b3b8a4860e774ee8261811ce7f96c461bc162c1a374f300002e000100005da10113003008000002a30068cdee8068b23f004f66001c5875f402770a5fe9251e7be7783b6d0545cb59ecad7d25cb5ce75ad583c47f809ecbe168ebfc57dee0e0eca8f6b92f32fb8cf3808c95640ae8e7fcd11b57d948b3b2749ae53b799fdd665d2b37a179401afda48534952859f22884a9cb9526e147fb867b7cd1463004a0385e9ad278aa41a9b63405d636733dc822f6a8b17d9eafc00e08717d558c6d3a3315c6c2ff3479b537290fe5ce9f1b280894951c5ec31305ebfa60260354cfc340ffe8d9b809a440ea9cdd8e4e14cbefec6c7f3967ab7776f7b1bc13589596b1f6d60176d3223126bac85abb2b55cb30a5d0615d6147a5dafb841a5b7ea1c1580b1a6b3dcf7607d12e19d2971aaf8747fdab1c42bb026d65000030000100000db900880100030803010001b36eee22bd8e610570cd88bfc3fedafa006a58b9714432aa3a6f9dd39a905c4e86aa1cdf5827119c81e1245d94ee4838ae22f05cc922ca30122aefa4da19d90a965b4317071b9331187f5cf4eb570dbd8e01987c2593a85b92e0440c635d15da13405f6ca7d78289ef0d6fe4716b8b62abd18dc07b0a9edd54182353ef836539026d65000030000100000db901080101030803010001c103be3a2aa47686ab01ba1b23799ff108d0c0530dfe35cebdd320b7abc851d1abf191378d155127e17fb029628385482b34ac3b042093d6097574b36ee277e31d20003272871bc76d1762dab33397eaae97d853932da5a96886a1b7c61bc52fcd1f1f23c7026a48fa1b190cb8b97d42b45b49948c45187efec3c7867812627a0220e5497c36ee4e92452fb5c1bda2dceaebf71c0e3909a61a5d6498dfc41c71cd0412dbbf442e43c378c9fb4043a1523cfd7ce320ce29fce606db73a8c78150b9808db8bb71898858d7a48ead8870f364b6e271ac642fe3160de3bc44b5a89ccf9e21e2ae5a877253db495f611a8a16a657f7ad9aeb906d5bc9c86f2883b5ed026d65000030000100000db900880100030803010001bfe96cdfe309deee4c579edbbfb50264719c35e25f64a525f81fe2479be4a907bfa9ce8b048ec167217690a145208507367cfec4ab4f9726cf55ecb79bf287836df0e0e946463a56e01b1a7d2e98681274f42ceb5817b1e253920b50f2e63f4be1a7c41f948a4a7235259a58eb0a9e4ccca370e2b3d363e4c289b897ffa329ab026d6500002e000100000db901160030080100000e1068d1697c68b5abecb128026d65005c91285cf473abf2c412efd0459436d9a291d1462928b3fcb8b30ea6d0d817e03dc8fe06994cfffad8ce447e08d85689e8c0966eac684716d98b4d116c08004b38bdbbec00b943f0afcf1c2b98fa4c8c36ded6823d99b61d96251b337037708ab2786ae66c48f08a70cc4d00b4dfbe44ac192c6c716470de238476913ae9574693514cf6ef3cd90b072127d42a2bf12ab871332a548a73bfd9d72479b90af179692389722fab448b23cd03ca8503a5e70857e644f8a29a4a15918a5a8cd317526b1d0ec0065b15da6a3021e6543f623887e5f099df3ddf8dd75bcaa355ed03d3e3de982359a6a93eca7def06797b12e63a0ffa6dc17e620dd13b6a0d2ac25df00673617473746f026d65000030000100000c8d00440100030dedcbe3954643072571e6c4c163cfe9ef330f5e430a3e6ca5eb76a9c97d1e3fcb9cba6a6a9ea371474b27c3d8ebb3a9ad9f1006be07d5155d669fdc7cc0db4d6a0673617473746f026d65000030000100000c8d00440101030d79bca014d652db03985a4edc2ada39c35f7daf8b86656ba6cd2df96f1da8c05f81d584aad62ee3c42ac7cbd29c5d35b9fa0b3d568a556ae9794d8cb02bae1bcb0673617473746f026d6500002e000100000c8d005d00300d0200093a8068cd0e3168ba8419c4010673617473746f026d65007a17319b99137fb51bb57a513cd9fd257130de52cc9279697e727e1e95a0301653a1ea782e2d8a43d9c69528491a2e088a184128409ed0e3078597fd3732d5a30b6d617474636f72616c6c6f03636f6d00002b0001000026610024e2f50d02f0e161567d468087ff27b051abc94476178a7cb635da1aa705e05c77ca81de520b6d617474636f72616c6c6f03636f6d00002e0001000026610057002b0d020001518068c67a0468bd2f1c504103636f6d0021c40cf90af28c2fb2fd35ce8632ed73edcf43bee374fb2b54944a9e8e845d08da67afb417d3014894ac2a92cf6a73be53d7df516a298d63447af8588ccee3e703636f6d00002b00010000506600244d060d028acbb0cd28f41250a80a491389424d341522d946b0da0c0291f2d3d771d7805a03636f6d00002e0001000050660113002b08010001518068cf865068be54c0b56900a9e8604de5bb97b53b31029218bd6dce5e68cdc0bd577fd3a3def5107e17b108679df22104a4f842ecfee4ab6ee14fbd7169b9e4fc9545dd00b21b920f41f40e8b5ece643975dd26f930acdc77e9495acd4507a7b22c02c4f048dadb3d2db607d46720ede2024be8a450ab98e2cae38a594603c73bce8617b9c0ca4f303de8d09606389530fb45ec20e9e6df775a72f1b76e47ba3c3780e1a5d7a27e77645f298efe1c397f31cc9f86151216627bc7bfbf265ac5a563805db62c5df2ede65ccf1c5c3f25054d73b5b9095238d38a39e30d9c2b0ae17d8d93ed6764d452d4a3141c0355d89f261d46e1f3a37857345e5220fadbeb10c9ed234cd03adfe55a04fc03636f6d00003000010000382100440100030df17b60fb56d522f8634153e785c0a978532ea76de39d34bb356d3d042e07f29f7b992176cc83acef7b78ea750425203b18f2b8228b3cdd2bc7eb13c3e3035a7e03636f6d00003000010000382100440101030db71f0465101ddbe2bf0c9455d12fa16c1cda44f4bf1ba2553418ad1f3aa9b06973f21b84eb532cf4035ee8d4832ca26d89306a7d32560c0cb0129d450ac1083503636f6d00002e000100003821005700300d010001518068c6cafb68b3034f4d0603636f6d0096cb2d4c67b93febc13dff1cdea2ab3d7669bc767127cb975f1d2ff4a94b9c15ca83d6ae9c93bde066d08095c2d0bffde30b4aea0a94ad9902693de313cb2b390b6d617474636f72616c6c6f03636f6d00003000010000546000440100030d27ac3c16d55694869003db8f7ee177d74690a6ca1e0d719e78fe9a6a2029bb2183205b6723ca5f4d63b6bb07c5d5a35fef5907eaa22accb0435d0151e13a01cf0b6d617474636f72616c6c6f03636f6d00003000010000546000440100030d8b1cf07c86f18c19c8c3146db093893648dcc1ab5fb79e99ccbab4aa06f98d52ac27b92e215d9da98d7535f3c2ce038fbb9d41b9c63d3845d444feffc1f71ed70b6d617474636f72616c6c6f03636f6d00003000010000546000440101030dec7c1fa1752495c42d2224eace96ed74144e9cb811608dd91594974bdc723fdc5b38a37c3340f1deca68a7ec82248822954b2994de5ac99ff6e9db95fd42c94b0b6d617474636f72616c6c6f03636f6d00002e000100005460006300300d0200093a8068cd0b5a68ba8142e2f50b6d617474636f72616c6c6f03636f6d004299251a06613ed7b0d6d65c41c2df2694730e81bc9f6d7266304cbfb6721ac4cc91ba71eb1eded7d351e996c0ffaaac566829474b5bd0d9e0a0c057928d47ef" } } ] @@ -12643,12 +13260,12 @@ "id": "example:fetchinvoice#1", "method": "fetchinvoice", "params": { - "offer": "lno1qgsq000bolt210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000", + "offer": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqgn3qzs2ge5hx6pqwdskcefpzcssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e", "payer_note": "Thanks for the fish!" } }, "response": { - "invoice": "lni1qqg0qe01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "invoice": "lni1qqgvq8khp6uam2tfcq0dwr4emk5kjq3qqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy8ssq38zq9q53nfwd5zqumpd3jjz93pqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4j5pqqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy84gqzcyyplllzjsfmquljkz4awm4wl8r9x6n4zjulzul8umgjr4jya6lxkgc2ez32xsctwddejqen0wgs8g6r9ypnxjumgyxsfsq3dygmzpg6e53ll0aavg37gt3rvjg762vufygdqq4xprs0regcatyp6swcycfh92s4s0p3wl6j0xj7pa7egpvvw2gq9z4sc376mekc9vacpqvzl0njg9k5sfn0pxlx4au5s95yhxczx2fah5zzmnfg9kvzdle5avqpj4l72lall4s8xrfvpu9f4xapfxl08j964jswavxw0exauk50zhw2l5alvyfucu82fx6qlszy7gett90z85gwqqqqqqqqqqqqqqqzsqqqqqqqqqqqqr5jt9hav2gqqqqqq5szx097xsz5zphg5v7yg8wedzgpk7h6dzc7vlw9h2wfa6dmzrey9m6fkeh89uz684gpzwy9wqvpqqq9syypz6g3kyz34nfrl7lm6c3rushzxey3a55ecjgs6qp2vz8q78j336k0sgzsvy6lf3le6zmjl4254r4xxf0urw8dky5d2dwtwjzt8ec7hg6jh88kx88fru0fhvxfjkje7ccg6qg5zv7dm64zxttg7epxx4yyw90c3", "changes": {} } }, @@ -12657,13 +13274,13 @@ "id": "example:fetchinvoice#2", "method": "fetchinvoice", "params": { - "offer": "lno1qgsq000bolt220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000", + "offer": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqv85ysq2qepk7enxv4j3gqg2zcssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e", "amount_msat": 2000000, "quantity": 2 } }, "response": { - "invoice": "lni1qqg0qe02020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202", + "invoice": "lni1qqgvq8khp6uam2ttcq0dwr4emk5kkq3qqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy8ssqc0gfqq5pjrdanxvet9zsqs593pqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4j5pqqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy84yqc7sjq9gqzkqyp9sggz49w9z7eh6nlfq34fk2k8n5f968ltz60us8usdtmzp7euxkqrc0h2pxqz953rvg9rtxj8lalh43z8epwydjfrmffn3y3p5qz5cywpu09rr4vs92azp4mahnnht95k3j5c8gegy3003d45pkz0gawdj82vt7eqvpk8qypn2rsgaytxvr0nnhkwhjgeq5u2vavm8hm6muxlpl7pe57v99fwm3qqxt472dkvvw27qy6992kvqc5ztgfv20w3uy5swlraheles4havnkg7nafrqr0ej8m4gakh9n338xa86784w3pcqqqqqqqqqqqqqqq2qqqqqqqqqqqqqwjfvkl43fqqqqqqzjqgeuhc6q2sg94wlwt9m7hlq7gljm764vv7dureaqxklvgmjzlq9hxe8jxlaa4064qx85yszhqxqsqqzczzq3dygmzpg6e53ll0aavg37gt3rvjg762vufygdqq4xprs0regcat8cyq8h97cpp3rznnvtvsmu0lzvfgu3c39z7t5m4f9t4w62kt0zqy4yxajhdrqh0g6th0rfhxk583zxllzukn4h3426dxp005n8mpwc6pl3s", "changes": {} } } @@ -12914,15 +13531,15 @@ "id": "example:fundchannel#1", "method": "fundchannel", "params": { - "id": "nodeid050505050505050505050505050505050505050505050505050505050505", + "id": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e", "amount": 1000000, "announce": true } }, "response": { - "tx": "020000000000305fundchanneltx350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000", - "txid": "channeltxid350000350000350000350000350000350000350000350000350000", - "channel_id": "channelid0350000350000350000350000350000350000350000350000350000", + "tx": "02000000000102b6f77750c0aae7faf2aa6e4b38a14671adc8def298a0b89ced09596f002aa5ef0100000000fdffffffc54a87b4517d7daf033a11b21f2ccf114304487c4189599816f3e243569c600c0100000000fdffffff0240420f0000000000220020b41521751a8eb257315f73a531763071cc39b7cece470f630fd5149fe7b7057ac594eb0b00000000225120a5410daebf4fc3cba618a840af497fbec4c3a084534f2b7b6a7d30bf35f8f5660140528e20b424e1ac7f2ae067093552f424dade1321ec396a7d382866be7bba9ba5a3faf375dc9b39d676d8adab67c30df596bca1412c3871bb9538fc00265c35bf02473044022003304f0d559771fe9d4b06dccecacbef7eaef5a97c7618b567de1ba53e7146ef02207f7138b9cd7fca8ea13498e6fed96b225873131c45b5c46e4e78c7fe45d5b3e9012102c8a8f25ed135cd671c88bd4e407bb3746678cfacbcf65ce89f8efc2aa0abe5359b000000", + "txid": "f9e2ca6abf9450803ef6a1a75964277dd39b2f35f77acffc3a5978437b421aec", + "channel_id": "1267da6521b372d7c6407a74066f7a3a5bc3489bbda5eb9f0e990e1e913e2eb9", "channel_type": { "bits": [ 12, @@ -12933,7 +13550,7 @@ "anchors/even" ] }, - "outnum": 1 + "outnum": 0 } }, { @@ -12944,19 +13561,19 @@ "id": "example:fundchannel#2", "method": "fundchannel", "params": { - "id": "nodeid010101010101010101010101010101010101010101010101010101010101", + "id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "amount": "all", "feerate": "normal", "push_msat": 100000, "utxos": [ - "channeltxid350000350000350000350000350000350000350000350000350000:1" + "0a6d0006bf4a5e5aa67504c5333a6017d1dc18820d2295aef0a89bd6f2c0f1f1:0" ] } }, "response": { - "tx": "020000000000401fundchanneltx410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000", - "txid": "channeltxid410000410000410000410000410000410000410000410000410000", - "channel_id": "channelid0410000410000410000410000410000410000410000410000410000", + "tx": "02000000000101f1f1c0f2d69ba8f0ae95220d8218dcd117603a33c50475a65a5e4abf06006d0a0000000000fdffffff01cbb3eb0b00000000220020752dd5af63b98ff64fedf94683b0306c43f6eec74fbfe917639735b305e1b6d9024730440220082e14f48e21020a18fa8076ede8d7fc459df2d13dafb55e84dfaeb53843cff30220342483bf1d343af8a5473383de0d128ea92f97ea48f86fc40c74061b106ed0ff0121024740cce0e548f4ffe80c9914e43444d8e66ee8991dc9d93ec56dff4c56b933159b000000", + "txid": "91b6b6b744662172cf8cb068923bb20311522a5afa08406f79b37cf3e6f4c370", + "channel_id": "222d999f537e32e9458c5db17a63e012dcced61340de06fda5bc30566270b0aa", "channel_type": { "bits": [ 12, @@ -12967,7 +13584,7 @@ "anchors/even" ] }, - "outnum": 1 + "outnum": 0 } } ] @@ -13043,7 +13660,7 @@ "id": "example:fundchannel_cancel#1", "method": "fundchannel_cancel", "params": [ - "nodeid101010101010101010101010101010101010101010101010101010101010" + "027ba5906fad81fcdbb774b4c806eb572b7fac3bee4720b12c44e7f70931d4b7cc" ] }, "response": { @@ -13055,7 +13672,7 @@ "id": "example:fundchannel_cancel#2", "method": "fundchannel_cancel", "params": { - "id": "nodeid101010101010101010101010101010101010101010101010101010101010" + "id": "027ba5906fad81fcdbb774b4c806eb572b7fac3bee4720b12c44e7f70931d4b7cc" } }, "response": { @@ -13152,12 +13769,12 @@ "id": "example:fundchannel_complete#1", "method": "fundchannel_complete", "params": [ - "nodeid101010101010101010101010101010101010101010101010101010101010", - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000" + "027ba5906fad81fcdbb774b4c806eb572b7fac3bee4720b12c44e7f70931d4b7cc", + "cHNidP8BAgQCAAAAAQMEmAAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAAAAAAA/f///wKAlpgBAAAAABYAFP+FM+rwsTm8Bz0qImOObKCgg3zVXuPf3gAAAAAWABTdQ3+1uuxIN+FttkktoVc11r7FM5cAAAABAR+AlpgBAAAAABYAFP+FM+rwsTm8Bz0qImOObKCgg3zVAQ4g+wnUg4jUSt7ZSoGLTSFJkEiVi4BORL5XG9PScQI1uHoBDwQAAAAAARAE/f///wABAwgAAAABAAAAAAEEIgAgrcWu1QvOE7IcR/Pw6wFIFh6/TLwoeKjo5eUoi7suzsEAAQMIQYOYAAAAAAABBCJRIIHaDT4wURNaieL52F4urfZh+Vm/sF5nEJeFRnLP0Kx9AA==" ] }, "response": { - "channel_id": "channelid0910109101091010910109101091010910109101091010910109101", + "channel_id": "1e9779a9313702a91a6d48a813f3bdae967f61ae55f2409c83d6e822164fb1e8", "commitments_secured": true } }, @@ -13166,12 +13783,12 @@ "id": "example:fundchannel_complete#2", "method": "fundchannel_complete", "params": { - "id": "nodeid101010101010101010101010101010101010101010101010101010101010", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000" + "id": "027ba5906fad81fcdbb774b4c806eb572b7fac3bee4720b12c44e7f70931d4b7cc", + "psbt": "cHNidP8BAgQCAAAAAQMEmQAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBeAgAAAAEel3mpMTcCqRptSKgT872uln9hrlXyQJyD1ugiFk+x6AAAAAAA/////wE29/8AAAAAACJRIBBn+sE76BrhkJwdcl10AW73v27fGwM4fUYbSSX4NuhVAAAAAAEBKzb3/wAAAAAAIlEgEGf6wTvoGuGQnB1yXXQBbve/bt8bAzh9RhtJJfg26FUBDiAICQ7H8zN5Qh9H/ScdBg0OKYab3l+sgjCzpH59ib1snwEPBAAAAAABEAT9////AAEDCEBCDwAAAAAAAQQiACDJ6ixlyozcJ7wTD+EfXlLhdUdeDjG2RbHcw4MtxPfnjQABAwjqovAAAAAAAAEEIlEgd0scKptLCp3OQ7RjlZQNogARFdQA+jZnkJ7Ial02UYsA" } }, "response": { - "channel_id": "channelid0910209102091020910209102091020910209102091020910209102", + "channel_id": "55d53486d003c5ba4b8eb9a3f5da04333acdb5d0023204d507e3e09127feeb90", "commitments_secured": true } } @@ -13391,13 +14008,13 @@ "id": "example:fundchannel_start#1", "method": "fundchannel_start", "params": [ - "nodeid101010101010101010101010101010101010101010101010101010101010", + "027ba5906fad81fcdbb774b4c806eb572b7fac3bee4720b12c44e7f70931d4b7cc", 16777216 ] }, "response": { - "funding_address": "bcrt1p0002020202020202020202020202020202020202020202020202020202", - "scriptpubkey": "scriptpubkey01010101010101010101010101010101010101010101010101010101", + "funding_address": "bcrt1q5ptrvwlgcldm2ygf3nzsl09zfpp7dmtduqlczer97xvc4x5z5zwsc2ulv4", + "scriptpubkey": "0020a056363be8c7dbb511098cc50fbca24843e6ed6de03f816465f1998a9a82a09d", "channel_type": { "bits": [ 12, @@ -13416,13 +14033,13 @@ "id": "example:fundchannel_start#2", "method": "fundchannel_start", "params": { - "id": "nodeid101010101010101010101010101010101010101010101010101010101010", + "id": "027ba5906fad81fcdbb774b4c806eb572b7fac3bee4720b12c44e7f70931d4b7cc", "amount": 16777216 } }, "response": { - "funding_address": "bcrt1p0003030303030303030303030303030303030303030303030303030303", - "scriptpubkey": "scriptpubkey02020202020202020202020202020202020202020202020202020202", + "funding_address": "bcrt1q4hz6a4gtecfmy8z870cwkq2gzc0t7n9u9pu23689u55ghwewemqsv4v2zs", + "scriptpubkey": "0020adc5aed50bce13b21c47f3f0eb0148161ebf4cbc2878a8e8e5e5288bbb2ecec1", "channel_type": { "bits": [ 12, @@ -13992,7 +14609,7 @@ } }, "response": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000", + "psbt": "cHNidP8BAF4CAAAAARxvUMSNjH7EKMXzxKwycdOSZ64xHQfWS7JFe0pAwIPCAAAAAAD9////AahhAAAAAAAAIlEg+3d9jpNmK0getyg5W+Mp31CPIRDKcJg/mZs/uaVrQ+GbAAAAAAEAiQIAAAAB8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0AAAAAAP3///8CYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aICEHgAAAAAAIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd+aAAAAAQErYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aAAA", "feerate_per_kw": 253, "estimated_final_weight": 652, "excess_msat": 196962518000, @@ -14013,7 +14630,7 @@ } }, "response": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000", + "psbt": "cHNidP8BAF4CAAAAARxvUMSNjH7EKMXzxKwycdOSZ64xHQfWS7JFe0pAwIPCAAAAAAD9////AetRxQsAAAAAIlEg21kTTo7K2doCG6F2JqgaDjc1kRCrH7AL08oPVVJhuE+bAAAAAAEAiQIAAAAB8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0AAAAAAP3///8CYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aICEHgAAAAAAIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd+aAAAAAQErYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aAAA", "feerate_per_kw": 11000, "estimated_final_weight": 613, "excess_msat": 0, @@ -14466,8 +15083,8 @@ "params": {} }, "response": { - "id": "nodeid020202020202020202020202020202020202020202020202020202020202", - "alias": "SILENTARTIST", + "id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "alias": "SILENTARTIST-v25.12", "color": "022d22", "num_peers": 0, "num_pending_channels": 0, @@ -14478,14 +15095,14 @@ { "type": "ipv4", "address": "127.0.0.1", - "port": 19735 + "port": 30003 } ], - "version": "v25.05", - "blockheight": 110, + "version": "v25.12", + "blockheight": 108, "network": "regtest", "fees_collected_msat": 0, - "lightning-dir": "/tmp/.lightning/regtest", + "lightning-dir": "/home/rusty/.lightning/regtest", "our_features": { "init": "0898882a8a59a1", "node": "8898882a8a59a1", @@ -14739,36 +15356,37 @@ } }, "response": { - "created_at": 1738000000, - "bytes_used": 1630000, + "created_at": "1738000000.000000000", + "bytes_used": 3271748, "bytes_max": 10485760, "log": [ { "type": "SKIPPED", - "num_skipped": 144 + "num_skipped": 177 }, { "type": "UNUSUAL", - "time": "71.800000000", + "time": "0.000000000", "source": "plugin-bookkeeper", "log": "topic 'utxo_deposit' is not a known notification topic" }, { "type": "UNUSUAL", - "time": "72.800000000", + "time": "0.000000000", "source": "plugin-bookkeeper", - "log": "topic 'utxo_spend' is not a known notification topic" + "log": "topic 'utxo_spend' is not a known notification topic", + "num_skipped": 4562 }, { "type": "SKIPPED", - "num_skipped": 147 + "num_skipped": 4554 }, { "type": "UNUSUAL", - "time": "74.800000000", - "node_id": "nodeid010101010101010101010101010101010101010101010101010101010101", + "time": "0.000000000", + "node_id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "source": "chan#1", - "log": "No peer channel with scid=228x1x1" + "log": "No peer channel with scid=9351983x2726118x65411" } ] } @@ -15149,7 +15767,7 @@ "id": "example:getroute#1", "method": "getroute", "params": { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000, "riskfactor": 1 } @@ -15157,16 +15775,16 @@ "response": { "route": [ { - "id": "nodeid020202020202020202020202020202020202020202020202020202020202", - "channel": "109x1x1", + "id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "channel": "110x1x0", "direction": 1, "amount_msat": 10001, "delay": 15, "style": "tlv" }, { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", - "channel": "111x1x1", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "channel": "112x1x0", "direction": 0, "amount_msat": 10000, "delay": 9, @@ -15180,7 +15798,7 @@ "id": "example:getroute#2", "method": "getroute", "params": { - "id": "nodeid040404040404040404040404040404040404040404040404040404040404", + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "amount_msat": 500000, "riskfactor": 10, "cltv": 9 @@ -15189,16 +15807,16 @@ "response": { "route": [ { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", - "channel": "111x1x1", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "channel": "112x1x0", "direction": 0, "amount_msat": 500006, "delay": 15, "style": "tlv" }, { - "id": "nodeid040404040404040404040404040404040404040404040404040404040404", - "channel": "125x1x1", + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "channel": "114x1x0", "direction": 0, "amount_msat": 500000, "delay": 9, @@ -15406,8 +16024,8 @@ "id": "example:getroutes#1", "method": "getroutes", "params": { - "source": "nodeid010101010101010101010101010101010101010101010101010101010101", - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "source": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 1250000, "layers": [], "maxfee_msat": 125000, @@ -15423,14 +16041,14 @@ "final_cltv": 0, "path": [ { - "short_channel_id_dir": "109x1x1/1", - "next_node_id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "short_channel_id_dir": "110x1x0/1", + "next_node_id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "amount_msat": 1250026, "delay": 12 }, { - "short_channel_id_dir": "123x1x1/0", - "next_node_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "short_channel_id_dir": "124x1x1/0", + "next_node_id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 1250013, "delay": 6 } @@ -15754,10 +16372,10 @@ "id": "example:injectpaymentonion#1", "method": "injectpaymentonion", "params": { - "onion": "onion30303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030", - "payment_hash": "paymenthashinvl0270027002700270027002700270027002700270027002700", + "onion": "0003e37337e2f488ed89a79030fb54f4f3bda09a28f80623adc2864fbf1aee71ff50c460e4e973dea414931035804e7ef03a4bdad4e3729bf85f16b6710a83fa2a3ae94332e0ba70e1d1b69100256a9e4b6144948e835c0738918afe33aac4714bc27c5c70a81e314428e8d17017c4cdc5df2ed3ec75d45cf7b5bb38547c5dd4a34134f390e516f82e97843754fd6ecbfeb1cf2e7d9ad520854592226c05210e2ddc3fb059bc6ed28e393b748be02572bd4bed4721cbc26219ad0714b4cbd329f21a727626545e9c5e9bf84cc7ed94729efdc47828560ace966b698b745d688605c390f62b67a1e0eaa84585bbb4440c442513128ff259729c9bc5dfb42c461afb5fa9f29bf04fbc04f479b0445be49f44bb15b29d79ff0bd38032f2df870dd6da61754202a1cb495df5609898c0a22582b53cb794d84a8d2931602d647b66d5b37bc122200c77b88000d7465fd51e12a825e7987844c0e36ec0c4f3a6a6b513039d4d4173e6fbea8ab68391eee74579c25b92f874e562666291997b36032f72a999bec029c99cf09941884594c32df37aa08c4bfa7ced0291251b49f9ff1814c48389da17800b8230f896d26fe1ca1d5ae7a06d195ba68fd6fdd7e92539d02107a7b72edb841fc27c526e8c5479066fd4bd8ccf955906372d4343e07f131bc9bdc2dfab65c9425e8522bcb2086e650f53d0fed6b3d24a8929a0e2420cf2239ea4bd0fb74a9fae6475d3a6a9efc70c24b0695231477d194bcedce540f763d749e075f63f8307f712e1c2e2705b43b2bed53dd928467ef2f1fd426b9a350981909cfdfd95fc2ba5a8ab90c3afb48a988ad0220716770e8bde7d21b89cbc1621cf6dc223cdfb74cdb5344526eaa72bd2ad1da482cb87f4ddae7f9f753b95a1a09b83478688b5f4a0eb7015ff469334e2491a9f50d7e265811f3776c7282cda704d99c343353a7955798f08dc30cf7e7fcb70c3901767e6e0db48b39f79ef65ddd0493bf40145a014b52dbf6eb7a5b51537580eeff790fe75f4fa9b9cbc5c9efa54561738b03aaa2ad07495f49552fcd26b1b1015e92d8fdbd22661d01215140a62416f6df1a33c0dbd55d46ee86a8e366f5ab2bd27ff7e12194784a3429ac5aa750c6084c379bd17b9e27ea1007a277ede2c9069daa0267f3cf9249284b456b4860fb7a3004943c06f644f1c5d60a46566812b3450450a484a2893eefccbbcc1c99258c727300000b7fa4f2d26e8895b3beee8a4fa98a1b96870d6ef81053b03632494d2a1face2d380711c20c74b2b3b040f18a765a0e8222e0b42f8358949d4645aa710a796ebce90669b5059584badc56d410476e67977f991fdc7b1ffce860407cbd73469b56af18cc00d0a38001f716b85a4b7225709195c8e1a6fdda5b6259700cc5cd29ac6ef0d2f091e0e07205adc604512ba288641516faa68c9f5bd65e2bc31c1a8ba478e60645837fde18339d606658d43fae0e99b9a39c4a8d517b0ed065e024617deb893b8d25f4e6feacca47fecedd07426e0194ec57b6011ea1f8ad0d528ad5db8f16c501b9fd15b3e9369cb9df5b1ef13500a9858e906b50ecbd9584190d3d9e971d539a4489201317acf4a6b1fa9caf281d40194955cfe3b6005ff1855d46de0a228509d241159a069a9e35a6d0b69033daa362096c8cfa2dbbf0ade2a91e0456f23314cbfe8f961d3703fbaf9e3928cea19b4a7d4a27188f633bdfa57fcecd8a4d793ff6f34cd3137f647a2edeaacac4bd493769c4d69f984d1c3aa8d5ee33956fe9abeef052170ca29c56233e1a8181af9364819c508bcea77aeb2d7cbe24a457c341e00dac875d7caf8898ff0c6c8679ebee963a454f92451da43308b2fbec5621521737f90b35c891c038f94e89ece44f53760ffa4e43b9abaf52070e4185c6e723041a947c536b8027608144", + "payment_hash": "ff498c3300881ea7a3c04193e43f123444c644662008108c23229da3511bedd1", "amount_msat": 1000, - "cltv_expiry": 144, + "cltv_expiry": 145, "partid": 1, "groupid": 0 } @@ -15765,8 +16383,8 @@ "response": { "created_index": 12, "created_at": 1738000000, - "completed_at": 1739000000, - "payment_preimage": "paymentpreimgio1030303030303030303030303030303030303030303030303" + "completed_at": 1738000000, + "payment_preimage": "08377744ca985c1e08377744ca985c1e08377744ca985c1e08377744ca985c1e" } } ] @@ -15985,10 +16603,10 @@ } }, "response": { - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", - "expires_at": 1739000000, - "bolt11": "lnbcrt100n1pnt2bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000", - "payment_secret": "paymentsecretinvl00310003100031000310003100031000310003100031000", + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", + "expires_at": 1738604800, + "bolt11": "lnbcrt100n1pne035qsp5ct5g9265vn4k2zn8ecuk6pxe0anszfl3uy4w5vukrvl4emm9w28qpp5j43wux8fg2cwkt3kq5xpprhukdxtqljum03g6zxjdwm34u24dshsdp9f9h8vmmfvdjjqer9wd3hy6tsw35k7m3qdsenzxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqflkpcezmaphptn08syzk9wh4rfkdzj3syan9ng9fzzv94htydujx6qut2tdgsmq2rg5utlmwcyce30fcqth7r68tc5mpqm7k4dfvy7gp0xletu", + "payment_secret": "c2e882ab5464eb650a67ce396d04d97f670127f1e12aea33961b3f5cef65728e", "created_index": 2 } }, @@ -16003,10 +16621,10 @@ } }, "response": { - "payment_hash": "paymenthashinvl0320032003200320032003200320032003200320032003200", - "expires_at": 1739000000, - "bolt11": "lnbcrt100n1pnt2bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000", - "payment_secret": "paymentsecretinvl00032003200320032003200320032003200320032003200", + "payment_hash": "ab3a5a971aa3b21494f7ce646f077232c10c9917c33375935c1aebfa571fa1a1", + "expires_at": 1738604800, + "bolt11": "lnbcrt500n1pne035qsp5kk6w4wjl0wudssp0pze5lgkz9hcav6ql523hjxc92knt398y2csqpp54va949c65wepf98heejx7pmjxtqsexghcvehty6urt4l54cl5xssdqcdsenygryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqgrjzax5dyj6dqqhgrt7t53hrmw4xvjs56kdy450c8jdv53fzf3n4kmersmgydpyyam87jrnu9wrcn78zy6w53zx3lqv45js6sa6rspqqa07y46", + "payment_secret": "b5b4eaba5f7bb8d8402f08b34fa2c22df1d6681fa2a3791b0555a6b894e45620", "created_index": 3 } } @@ -16147,10 +16765,10 @@ } }, "response": { - "invreq_id": "invreqid01010101010101010101010101010101010101010101010101010101", + "invreq_id": "22c3d45d0a9640a827ed1fefb9a07c947e38fa4c086f1f16d94882848e264868", "active": true, "single_use": true, - "bolt12": "lno1qgsq000bolt210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000", + "bolt12": "lnr1qqg99gqg2990zl3322sqs52279lrzzst2d5k6urvv5s8getnw3gzqp3zderpzxstt8927ynqg044h0egcd8n5h3n9g0u0v4h8ncc3yg02gps7sjqtqssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e7pqfylfzzhcux84v2552lt7p2ekunuamtsdgyk34a86m4zklkdjjdzt757t4sp0m8cp9tdj6hfe67mcuwl3q7zr4sr4z4gn2fvksykkn5g", "used": false } }, @@ -16165,10 +16783,10 @@ } }, "response": { - "invreq_id": "invreqid02020202020202020202020202020202020202020202020202020202", + "invreq_id": "c5b8ebc06bdc246d7b852ce5637be459d3c053a5b3f8f68854f97af7371c9a50", "active": true, "single_use": true, - "bolt12": "lno1qgsq000bolt240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000", + "bolt12": "lnr1qqg99gqg2990zl3j22sqs52279lryzsk2fjhzat9wd6xjmn8ypnx7u3qd9h8vmmfvdj3yyrrd35kw6r5de5kueeqwd6x7un92qsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzr6jqwvfdqzcyypz6g3kyz34nfrl7lm6c3rushzxey3a55ecjgs6qp2vz8q78j336k0sgr76j2yl0lrljzljjdz8ztcpryunwgfk4hzz3sle3mhaw8v2gc4dn9map7v6dlpya98jy2mcrwe27qcsywlfqp6dhh30l54sj0e8tqsk", "used": false } } @@ -16413,18 +17031,18 @@ "id": "example:keysend#1", "method": "keysend", "params": { - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000 } }, "response": { - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", - "payment_hash": "paymenthashkey01k101k101k101k101k101k101k101k101k101k101k101k101", - "created_at": 1738000000, + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "payment_hash": "097dcfa3b0bc58d499908855dae7d442854a02d4f2ffcc625f9385ed74f3256e", + "created_at": 1738000000.0, "parts": 1, "amount_msat": 10000, "amount_sent_msat": 10001, - "payment_preimage": "paymentpreimage1010101010101010101010101010101010101010101010101", + "payment_preimage": "0193052c8999a10f0193052c8999a10f0193052c8999a10f0193052c8999a10f", "status": "complete" } }, @@ -16433,7 +17051,7 @@ "id": "example:keysend#2", "method": "keysend", "params": { - "destination": "nodeid040404040404040404040404040404040404040404040404040404040404", + "destination": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "amount_msat": 10000000, "extratlvs": { "133773310": "68656c6c6f776f726c64", @@ -16442,13 +17060,13 @@ } }, "response": { - "destination": "nodeid040404040404040404040404040404040404040404040404040404040404", - "payment_hash": "paymenthashkey02k201k201k201k201k201k201k201k201k201k201k201k201", - "created_at": 1738000000, + "destination": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "payment_hash": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584", + "created_at": 1738000000.0, "parts": 1, "amount_msat": 10000000, "amount_sent_msat": 10000202, - "payment_preimage": "paymentpreimage2020202020202020202020202020202020202020202020202", + "payment_preimage": "0193052c8999a1110193052c8999a1110193052c8999a1110193052c8999a111", "status": "complete" } }, @@ -16457,13 +17075,13 @@ "id": "example:keysend#3", "method": "keysend", "params": { - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000, "routehints": [ [ { - "scid": "111x1x1", - "id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "scid": "9351983x2726118x65411", + "id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "feebase": "1msat", "feeprop": 10, "expirydelta": 9 @@ -16473,13 +17091,13 @@ } }, "response": { - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", - "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", - "created_at": 1738000000, + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "payment_hash": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", + "created_at": 1738000000.0, "parts": 2, "amount_msat": 10000, "amount_sent_msat": 10001, - "payment_preimage": "paymentpreimage3030303030303030303030303030303030303030303030303", + "payment_preimage": "0193052c8999a1130193052c8999a1130193052c8999a1130193052c8999a113", "status": "complete" } } @@ -16827,220 +17445,233 @@ "account_id": "wallet", "credit_msat": 200000000000, "debit_msat": 0, - "timestamp": 1758192762, + "timestamp": 1738000001, "primary_tag": "deposit", "extra_tags": [], - "utxo": "994185cba7723715c0aa1d1859ce2781116776cea917035c90f8f04c9f4e095e:1", + "utxo": "89126fb6a9c3b0cbddb31ee6501f3582a3f991f5cbcd07b895a4e31ac120d8b3:1", "output_msat": 200000000000, - "blockheight": 104 + "blockheight": 105 }, { "created_index": 2, "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 0, "debit_msat": 0, - "timestamp": 1758192777, + "timestamp": 1738000002, "primary_tag": "channel_open", "extra_tags": [], - "utxo": "542906c8a9d90596592459a9484f4286a3200f6540599c83b43af2ac4166c6ca:1", - "peer_id": "nodeid010101010101010101010101010101010101010101010101010101010101", + "utxo": "63f74346eda6b8620ec24f86e2f8982ef3dade95f8efd00b372a75b2893b6f0d:0", + "peer_id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "output_msat": 1000000000, - "blockheight": 109 + "blockheight": 110 }, { "created_index": 3, "account_id": "wallet", "credit_msat": 2000000000, "debit_msat": 0, - "timestamp": 1758192780, + "timestamp": 1738000003, "primary_tag": "deposit", "extra_tags": [], - "utxo": "19e9e42f2f2097ea1dc18d7eb670bc53c90cbe31bb1daba8e94abf3c6b60d2dc:1", + "utxo": "d84db03fd012a98de6776fb10ee1c1de23282c33518aa32fdd5a15600f535ace:0", "output_msat": 2000000000, - "blockheight": 110 + "blockheight": 111 }, { "created_index": 4, "account_id": "wallet", "credit_msat": 0, "debit_msat": 200000000000, - "timestamp": 1738530000, + "timestamp": 1738000004, "primary_tag": "withdrawal", "extra_tags": [], - "utxo": "994185cba7723715c0aa1d1859ce2781116776cea917035c90f8f04c9f4e095e:1", - "spending_txid": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc", + "utxo": "89126fb6a9c3b0cbddb31ee6501f3582a3f991f5cbcd07b895a4e31ac120d8b3:1", + "spending_txid": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9", "output_msat": 200000000000, - "blockheight": 111 + "blockheight": 112 }, { "created_index": 5, "account_id": "wallet", "credit_msat": 198995073000, "debit_msat": 0, - "timestamp": 1738530000, + "timestamp": 1738000005, "primary_tag": "deposit", "extra_tags": [], - "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:1", + "utxo": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9:1", "output_msat": 198995073000, - "blockheight": 111 + "blockheight": 112 }, { "created_index": 6, "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 1000000000, "debit_msat": 0, - "timestamp": 1738530000, + "timestamp": 1738000006, "primary_tag": "channel_open", "extra_tags": [ "opener" ], - "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:0", - "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "utxo": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9:0", + "peer_id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "output_msat": 1000000000, - "blockheight": 111 + "blockheight": 112 }, { "created_index": 7, "account_id": "wallet", "credit_msat": 2000000000, "debit_msat": 0, - "timestamp": 1758192792, + "timestamp": 1738000007, "primary_tag": "deposit", "extra_tags": [], - "utxo": "b6d0090efbeb347fa59f90b321d6906cdf86779c15477582979fa427249f71f5:1", + "utxo": "254dc18f69af1f3ee1ed64a81782b524455efe7f04cb9873059c667fbcffe56d:1", "output_msat": 2000000000, - "blockheight": 114 + "blockheight": 115 }, { "created_index": 8, "account_id": "wallet", "credit_msat": 0, - "debit_msat": 198995073000, - "timestamp": 1758192795, + "debit_msat": 2000000000, + "timestamp": 1738000008, "primary_tag": "withdrawal", "extra_tags": [], - "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:1", - "spending_txid": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec", - "output_msat": 198995073000, - "blockheight": 115 + "utxo": "254dc18f69af1f3ee1ed64a81782b524455efe7f04cb9873059c667fbcffe56d:1", + "spending_txid": "92dc0d9921d6c5beda83bddd3d1575fb673493f354c0a8cd91c6b139620c3155", + "output_msat": 2000000000, + "blockheight": 116 }, { "created_index": 9, "account_id": "wallet", - "credit_msat": 197990453000, + "credit_msat": 995073000, "debit_msat": 0, - "timestamp": 1758192795, + "timestamp": 1738000009, "primary_tag": "deposit", "extra_tags": [], - "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:0", - "output_msat": 197990453000, - "blockheight": 115 + "utxo": "92dc0d9921d6c5beda83bddd3d1575fb673493f354c0a8cd91c6b139620c3155:0", + "output_msat": 995073000, + "blockheight": 116 }, { "created_index": 10, "account_id": "f8fc83a432cbfb2fffe222cc06727fdd977b5dd10ebd6707158e799e6f522d9f", "credit_msat": 1000000000, "debit_msat": 0, - "timestamp": 1758192795, + "timestamp": 1738000010, "primary_tag": "channel_open", "extra_tags": [ "opener" ], - "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:1", - "peer_id": "nodeid050505050505050505050505050505050505050505050505050505050505", + "utxo": "92dc0d9921d6c5beda83bddd3d1575fb673493f354c0a8cd91c6b139620c3155:1", + "peer_id": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e", "output_msat": 1000000000, - "blockheight": 115 + "blockheight": 116 }, { "created_index": 11, "account_id": "wallet", "credit_msat": 486914000, "debit_msat": 0, - "timestamp": 1738520000, + "timestamp": 1738000027, "primary_tag": "deposit", "extra_tags": [], - "utxo": "874b26d4c523a902fdc44b88ec000eb5c3fe8754c9d44190a140561e24e77781:0", + "utxo": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6:0", "output_msat": 486914000, - "blockheight": 121 + "blockheight": 122 }, { "created_index": 12, "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 489809898, - "timestamp": 1738520000, + "timestamp": 1738000028, "primary_tag": "channel_close", "extra_tags": [], - "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:0", - "spending_txid": "txid010101010101010101010101010101010101010101010101010101010101", + "utxo": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9:0", + "spending_txid": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6", "output_msat": 1000000000, "output_count": 2, - "blockheight": 121 + "blockheight": 122 }, { "created_index": 13, "account_id": "external", "credit_msat": 510190000, "debit_msat": 0, - "timestamp": 1738520000, + "timestamp": 1738000029, "primary_tag": "to_them", "extra_tags": [], - "utxo": "874b26d4c523a902fdc44b88ec000eb5c3fe8754c9d44190a140561e24e77781:1", - "originating_account": "channelid0230000230000230000230000230000230000230000230000230000", + "utxo": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6:1", + "originating_account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "output_msat": 510190000, - "blockheight": 121 + "blockheight": 122 }, { "created_index": 14, "account_id": "wallet", "credit_msat": 2000000000, "debit_msat": 0, - "timestamp": 1758192808, + "timestamp": 1738000030, "primary_tag": "deposit", "extra_tags": [], - "utxo": "c9c9bec064382b6a6fb2a30d8923949b3c9f732465542b96e9ad1b5eebda4c7d:0", + "utxo": "ed937e020220370aab16a6f2f54b8b2230681f3991e46c2dccb21fea510533a7:1", "output_msat": 2000000000, - "blockheight": 122 + "blockheight": 123 }, { "created_index": 15, "account_id": "wallet", "credit_msat": 0, - "debit_msat": 197990453000, - "timestamp": 1738500000, + "debit_msat": 995073000, + "timestamp": 1738000031, "primary_tag": "withdrawal", "extra_tags": [], - "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:0", - "spending_txid": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682", - "output_msat": 197990453000, - "blockheight": 123 + "utxo": "92dc0d9921d6c5beda83bddd3d1575fb673493f354c0a8cd91c6b139620c3155:0", + "spending_txid": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69", + "output_msat": 995073000, + "blockheight": 124 }, { "created_index": 16, "account_id": "wallet", - "credit_msat": 196985833000, + "credit_msat": 0, + "debit_msat": 2000000000, + "timestamp": 1738000032, + "primary_tag": "withdrawal", + "extra_tags": [], + "utxo": "ed937e020220370aab16a6f2f54b8b2230681f3991e46c2dccb21fea510533a7:1", + "spending_txid": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69", + "output_msat": 2000000000, + "blockheight": 124 + }, + { + "created_index": 17, + "account_id": "wallet", + "credit_msat": 1988421000, "debit_msat": 0, - "timestamp": 1738500000, + "timestamp": 1738000033, "primary_tag": "deposit", "extra_tags": [], - "utxo": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682:1", - "output_msat": 196985833000, - "blockheight": 123 + "utxo": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69:0", + "output_msat": 1988421000, + "blockheight": 124 }, { - "created_index": 17, - "account_id": "channelid0230200230200230200230200230200230200230200230200230200", + "created_index": 18, + "account_id": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3", "credit_msat": 1000000000, "debit_msat": 0, - "timestamp": 1738500000, + "timestamp": 1738000034, "primary_tag": "channel_open", "extra_tags": [ "opener" ], - "utxo": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682:0", - "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "utxo": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69:1", + "peer_id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "output_msat": 1000000000, - "blockheight": 123 + "blockheight": 124 } ] } @@ -17061,106 +17692,119 @@ "account_id": "f8fc83a432cbfb2fffe222cc06727fdd977b5dd10ebd6707158e799e6f522d9f", "credit_msat": 1000000000, "debit_msat": 0, - "timestamp": 1758192795, + "timestamp": 1738000010, "primary_tag": "channel_open", "extra_tags": [ "opener" ], - "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:1", - "peer_id": "nodeid050505050505050505050505050505050505050505050505050505050505", + "utxo": "92dc0d9921d6c5beda83bddd3d1575fb673493f354c0a8cd91c6b139620c3155:1", + "peer_id": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e", "output_msat": 1000000000, - "blockheight": 115 + "blockheight": 116 }, { "created_index": 11, "account_id": "wallet", "credit_msat": 486914000, "debit_msat": 0, - "timestamp": 1738520000, + "timestamp": 1738000027, "primary_tag": "deposit", "extra_tags": [], - "utxo": "874b26d4c523a902fdc44b88ec000eb5c3fe8754c9d44190a140561e24e77781:0", + "utxo": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6:0", "output_msat": 486914000, - "blockheight": 121 + "blockheight": 122 }, { "created_index": 12, "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 489809898, - "timestamp": 1738520000, + "timestamp": 1738000028, "primary_tag": "channel_close", "extra_tags": [], - "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:0", - "spending_txid": "txid010101010101010101010101010101010101010101010101010101010101", + "utxo": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9:0", + "spending_txid": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6", "output_msat": 1000000000, "output_count": 2, - "blockheight": 121 + "blockheight": 122 }, { "created_index": 13, "account_id": "external", "credit_msat": 510190000, "debit_msat": 0, - "timestamp": 1738520000, + "timestamp": 1738000029, "primary_tag": "to_them", "extra_tags": [], - "utxo": "874b26d4c523a902fdc44b88ec000eb5c3fe8754c9d44190a140561e24e77781:1", - "originating_account": "channelid0230000230000230000230000230000230000230000230000230000", + "utxo": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6:1", + "originating_account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "output_msat": 510190000, - "blockheight": 121 + "blockheight": 122 }, { "created_index": 14, "account_id": "wallet", "credit_msat": 2000000000, "debit_msat": 0, - "timestamp": 1758192808, + "timestamp": 1738000030, "primary_tag": "deposit", "extra_tags": [], - "utxo": "c9c9bec064382b6a6fb2a30d8923949b3c9f732465542b96e9ad1b5eebda4c7d:0", + "utxo": "ed937e020220370aab16a6f2f54b8b2230681f3991e46c2dccb21fea510533a7:1", "output_msat": 2000000000, - "blockheight": 122 + "blockheight": 123 }, { "created_index": 15, "account_id": "wallet", "credit_msat": 0, - "debit_msat": 197990453000, - "timestamp": 1738500000, + "debit_msat": 995073000, + "timestamp": 1738000031, "primary_tag": "withdrawal", "extra_tags": [], - "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:0", - "spending_txid": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682", - "output_msat": 197990453000, - "blockheight": 123 + "utxo": "92dc0d9921d6c5beda83bddd3d1575fb673493f354c0a8cd91c6b139620c3155:0", + "spending_txid": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69", + "output_msat": 995073000, + "blockheight": 124 }, { "created_index": 16, "account_id": "wallet", - "credit_msat": 196985833000, + "credit_msat": 0, + "debit_msat": 2000000000, + "timestamp": 1738000032, + "primary_tag": "withdrawal", + "extra_tags": [], + "utxo": "ed937e020220370aab16a6f2f54b8b2230681f3991e46c2dccb21fea510533a7:1", + "spending_txid": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69", + "output_msat": 2000000000, + "blockheight": 124 + }, + { + "created_index": 17, + "account_id": "wallet", + "credit_msat": 1988421000, "debit_msat": 0, - "timestamp": 1738500000, + "timestamp": 1738000033, "primary_tag": "deposit", "extra_tags": [], - "utxo": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682:1", - "output_msat": 196985833000, - "blockheight": 123 + "utxo": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69:0", + "output_msat": 1988421000, + "blockheight": 124 }, { - "created_index": 17, - "account_id": "channelid0230200230200230200230200230200230200230200230200230200", + "created_index": 18, + "account_id": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3", "credit_msat": 1000000000, "debit_msat": 0, - "timestamp": 1738500000, + "timestamp": 1738000034, "primary_tag": "channel_open", "extra_tags": [ "opener" ], - "utxo": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682:0", - "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "utxo": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69:1", + "peer_id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "output_msat": 1000000000, - "blockheight": 123 + "blockheight": 124 } ] } @@ -17329,9 +17973,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 500000000, "debit_msat": 0, - "timestamp": 1738520000, + "timestamp": 1738000011, "primary_tag": "invoice", - "payment_hash": "paymenthashdelpay10101010101010101010101010101010101010101010101", + "payment_hash": "342cbb1cb564e8f32eb64fe8c254abf5ec5f6b87a0f8de7909caf8e658f3bd2a", "fees_msat": 0 }, { @@ -17339,9 +17983,9 @@ "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 500000000, - "timestamp": 1738520000, + "timestamp": 1738000012, "primary_tag": "invoice", - "payment_hash": "8a46ab91013146df39e98ad7c89505fbb5419f110e928f7a393e8304f3057df7", + "payment_hash": "f61aef012557d6496699642e71e2bacda5670b5377c6357fa40485813facc628", "part_id": 0, "group_id": 1, "fees_msat": 0 @@ -17351,9 +17995,9 @@ "account_id": "f8fc83a432cbfb2fffe222cc06727fdd977b5dd10ebd6707158e799e6f522d9f", "credit_msat": 0, "debit_msat": 500000000, - "timestamp": 1758192801, + "timestamp": 1738000013, "primary_tag": "invoice", - "payment_hash": "88969daaf02214a1928e6eb62a237a8ee557f3da93b2c44f3901432c88f4334b", + "payment_hash": "f65a1de794267be304d915d60a9257d2e8f43f3e897e6894b619493e4c20d94e", "part_id": 0, "group_id": 1, "fees_msat": 0 @@ -17363,9 +18007,9 @@ "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 10000, - "timestamp": 1758192801, + "timestamp": 1738000014, "primary_tag": "routed", - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", "fees_msat": 1 }, { @@ -17373,9 +18017,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 10001, "debit_msat": 0, - "timestamp": 1758192801, + "timestamp": 1738000015, "primary_tag": "routed", - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", "fees_msat": 1 }, { @@ -17383,9 +18027,9 @@ "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 10000, - "timestamp": 1758192801, + "timestamp": 1738000016, "primary_tag": "routed", - "payment_hash": "paymenthashkey01k101k101k101k101k101k101k101k101k101k101k101k101", + "payment_hash": "097dcfa3b0bc58d499908855dae7d442854a02d4f2ffcc625f9385ed74f3256e", "fees_msat": 1 }, { @@ -17393,9 +18037,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 10001, "debit_msat": 0, - "timestamp": 1758192801, + "timestamp": 1738000017, "primary_tag": "routed", - "payment_hash": "paymenthashkey01k101k101k101k101k101k101k101k101k101k101k101k101", + "payment_hash": "097dcfa3b0bc58d499908855dae7d442854a02d4f2ffcc625f9385ed74f3256e", "fees_msat": 1 }, { @@ -17403,9 +18047,9 @@ "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 10000101, - "timestamp": 1758192802, + "timestamp": 1738000018, "primary_tag": "routed", - "payment_hash": "paymenthashkey02k201k201k201k201k201k201k201k201k201k201k201k201", + "payment_hash": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584", "fees_msat": 101 }, { @@ -17413,9 +18057,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 10000202, "debit_msat": 0, - "timestamp": 1758192802, + "timestamp": 1738000019, "primary_tag": "routed", - "payment_hash": "paymenthashkey02k201k201k201k201k201k201k201k201k201k201k201k201", + "payment_hash": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584", "fees_msat": 101 }, { @@ -17423,9 +18067,9 @@ "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 10000, - "timestamp": 1758192802, + "timestamp": 1738000020, "primary_tag": "routed", - "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "payment_hash": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", "fees_msat": 1 }, { @@ -17433,9 +18077,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 10001, "debit_msat": 0, - "timestamp": 1758192802, + "timestamp": 1738000021, "primary_tag": "routed", - "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "payment_hash": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", "fees_msat": 1 }, { @@ -17443,9 +18087,9 @@ "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 50000, - "timestamp": 1758192802, + "timestamp": 1738000022, "primary_tag": "routed", - "payment_hash": "paymenthashinvl0320032003200320032003200320032003200320032003200", + "payment_hash": "ab3a5a971aa3b21494f7ce646f077232c10c9917c33375935c1aebfa571fa1a1", "fees_msat": 1 }, { @@ -17453,9 +18097,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 50001, "debit_msat": 0, - "timestamp": 1758192802, + "timestamp": 1738000023, "primary_tag": "routed", - "payment_hash": "paymenthashinvl0320032003200320032003200320032003200320032003200", + "payment_hash": "ab3a5a971aa3b21494f7ce646f077232c10c9917c33375935c1aebfa571fa1a1", "fees_msat": 1 }, { @@ -17463,9 +18107,9 @@ "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 100000, - "timestamp": 1758192803, + "timestamp": 1738000024, "primary_tag": "invoice", - "payment_hash": "paymenthashinvl0330033003300330033003300330033003300330033003300", + "payment_hash": "2b1434d9e61da6c5f1252369f4a98e1ddce722b4db3bf15553b87a94d19d351d", "part_id": 0, "group_id": 1, "fees_msat": 0 @@ -17475,9 +18119,9 @@ "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 10001, - "timestamp": 1758192803, + "timestamp": 1738000025, "primary_tag": "routed", - "payment_hash": "61b929204f4db4f38e0412b2bd4c3c03668dad3575fb05f4e15a2214046c2bff", + "payment_hash": "1bb513fb2fbde40592243877d9f404ba3668275e2eeacd9c7264f34f04d37fd1", "fees_msat": 1 }, { @@ -17485,9 +18129,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 10002, "debit_msat": 0, - "timestamp": 1758192803, + "timestamp": 1738000026, "primary_tag": "routed", - "payment_hash": "61b929204f4db4f38e0412b2bd4c3c03668dad3575fb05f4e15a2214046c2bff", + "payment_hash": "1bb513fb2fbde40592243877d9f404ba3668275e2eeacd9c7264f34f04d37fd1", "fees_msat": 1 }, { @@ -17495,9 +18139,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 0, "debit_msat": 1000000, - "timestamp": 1758192821, + "timestamp": 1738000035, "primary_tag": "invoice", - "payment_hash": "paymenthashsdinvsi10si10si10si10si10si10si10si10si10si10si10si10", + "payment_hash": "cedc7bf0a9109bd3cd86c5a0c90faa812b8a0ca3d65671c8b4001aae2647349f", "part_id": 0, "group_id": 1, "fees_msat": 0 @@ -17507,9 +18151,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 1000, "debit_msat": 0, - "timestamp": 1758192821, + "timestamp": 1738000036, "primary_tag": "invoice", - "payment_hash": "paymenthashinvl0270027002700270027002700270027002700270027002700", + "payment_hash": "ff498c3300881ea7a3c04193e43f123444c644662008108c23229da3511bedd1", "fees_msat": 0 } ] @@ -17532,9 +18176,9 @@ "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 10000, - "timestamp": 1758192802, + "timestamp": 1738000020, "primary_tag": "routed", - "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "payment_hash": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", "fees_msat": 1 }, { @@ -17542,9 +18186,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 10001, "debit_msat": 0, - "timestamp": 1758192802, + "timestamp": 1738000021, "primary_tag": "routed", - "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "payment_hash": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", "fees_msat": 1 } ] @@ -17745,22 +18389,22 @@ "id": "example:listchannels#1", "method": "listchannels", "params": { - "short_channel_id": "109x1x1" + "short_channel_id": "110x1x0" } }, "response": { "channels": [ { - "source": "nodeid020202020202020202020202020202020202020202020202020202020202", - "destination": "nodeid010101010101010101010101010101010101010101010101010101010101", - "short_channel_id": "109x1x1", + "source": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "destination": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "short_channel_id": "110x1x0", "direction": 0, "public": true, "amount_msat": 1000000000, "message_flags": 1, "channel_flags": 0, "active": true, - "last_update": 1738500000, + "last_update": 1738000001, "base_fee_millisatoshi": 1, "fee_per_millionth": 10, "delay": 6, @@ -17769,16 +18413,16 @@ "features": "" }, { - "source": "nodeid010101010101010101010101010101010101010101010101010101010101", - "destination": "nodeid020202020202020202020202020202020202020202020202020202020202", - "short_channel_id": "109x1x1", + "source": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "short_channel_id": "110x1x0", "direction": 1, "public": true, "amount_msat": 1000000000, "message_flags": 1, "channel_flags": 1, - "active": false, - "last_update": 1738510000, + "active": true, + "last_update": 1738000001, "base_fee_millisatoshi": 1, "fee_per_millionth": 10, "delay": 6, @@ -17798,16 +18442,16 @@ "response": { "channels": [ { - "source": "nodeid020202020202020202020202020202020202020202020202020202020202", - "destination": "nodeid010101010101010101010101010101010101010101010101010101010101", - "short_channel_id": "109x1x1", + "source": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "destination": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "short_channel_id": "110x1x0", "direction": 0, "public": true, "amount_msat": 1000000000, "message_flags": 1, "channel_flags": 0, "active": true, - "last_update": 1738500000, + "last_update": 1738000001, "base_fee_millisatoshi": 1, "fee_per_millionth": 10, "delay": 6, @@ -17816,16 +18460,16 @@ "features": "" }, { - "source": "nodeid010101010101010101010101010101010101010101010101010101010101", - "destination": "nodeid020202020202020202020202020202020202020202020202020202020202", - "short_channel_id": "109x1x1", + "source": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "short_channel_id": "110x1x0", "direction": 1, "public": true, "amount_msat": 1000000000, "message_flags": 1, "channel_flags": 1, - "active": false, - "last_update": 1738510000, + "active": true, + "last_update": 1738000001, "base_fee_millisatoshi": 1, "fee_per_millionth": 10, "delay": 6, @@ -17834,16 +18478,16 @@ "features": "" }, { - "source": "nodeid020202020202020202020202020202020202020202020202020202020202", - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", - "short_channel_id": "123x1x1", + "source": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "short_channel_id": "124x1x1", "direction": 0, "public": true, "amount_msat": 1000000000, "message_flags": 1, - "channel_flags": 2, + "channel_flags": 0, "active": true, - "last_update": 1738520000, + "last_update": 1738000001, "base_fee_millisatoshi": 1, "fee_per_millionth": 10, "delay": 6, @@ -17852,16 +18496,16 @@ "features": "" }, { - "source": "nodeid030303030303030303030303030303030303030303030303030303030303", - "destination": "nodeid020202020202020202020202020202020202020202020202020202020202", - "short_channel_id": "123x1x1", + "source": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "short_channel_id": "124x1x1", "direction": 1, "public": true, "amount_msat": 1000000000, "message_flags": 1, - "channel_flags": 3, - "active": false, - "last_update": 1738530000, + "channel_flags": 1, + "active": true, + "last_update": 1738000001, "base_fee_millisatoshi": 1, "fee_per_millionth": 10, "delay": 6, @@ -17870,16 +18514,34 @@ "features": "" }, { - "source": "nodeid030303030303030303030303030303030303030303030303030303030303", - "destination": "nodeid040404040404040404040404040404040404040404040404040404040404", - "short_channel_id": "130x1x1", + "source": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "destination": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "short_channel_id": "126x1x0", "direction": 0, "public": true, "amount_msat": 1000000000, "message_flags": 1, "channel_flags": 2, + "active": false, + "last_update": 1738000002, + "base_fee_millisatoshi": 1, + "fee_per_millionth": 10, + "delay": 6, + "htlc_minimum_msat": 0, + "htlc_maximum_msat": 990000000, + "features": "" + }, + { + "source": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "short_channel_id": "126x1x0", + "direction": 1, + "public": true, + "amount_msat": 1000000000, + "message_flags": 1, + "channel_flags": 1, "active": true, - "last_update": 1738540000, + "last_update": 1738000001, "base_fee_millisatoshi": 1, "fee_per_millionth": 10, "delay": 6, @@ -18192,16 +18854,16 @@ "response": { "closedchannels": [ { - "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", - "channel_id": "channelid0230000230000230000230000230000230000230000230000230000", - "short_channel_id": "111x1x1", + "peer_id": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e", + "channel_id": "f8fc83a432cbfb2fffe222cc06727fdd977b5dd10ebd6707158e799e6f522d9f", + "short_channel_id": "116x1x1", "alias": { - "local": "121x131x141", - "remote": "151x161x171" + "local": "6443160x13255799x14088", + "remote": "12585125x15062924x5208" }, "opener": "local", "closer": "local", - "private": false, + "private": true, "channel_type": { "bits": [ 12, @@ -18212,32 +18874,31 @@ "anchors/even" ] }, - "total_local_commitments": 16, - "total_remote_commitments": 16, - "total_htlcs_sent": 8, - "funding_txid": "fundingtxid00202020202020202020202020202020202020202020202020202", + "total_local_commitments": 2, + "total_remote_commitments": 2, + "total_htlcs_sent": 1, + "funding_txid": "92dc0d9921d6c5beda83bddd3d1575fb673493f354c0a8cd91c6b139620c3155", "funding_outnum": 1, "leased": false, "total_msat": 1000000000, - "final_to_us_msat": 489809898, - "min_to_us_msat": 489809898, + "final_to_us_msat": 500000000, + "min_to_us_msat": 500000000, "max_to_us_msat": 1000000000, - "last_commitment_txid": "txidcloselastcommitment00000100001000010000100001000010000100001", + "last_commitment_txid": "19fec0dedc91354817beacd4155a6303a5ceaad0be36219b3d6e77836c8092a0", "last_commitment_fee_msat": 2895000, - "close_cause": "user", - "last_stable_connection": 1738500000 + "close_cause": "user" }, { - "peer_id": "nodeid050505050505050505050505050505050505050505050505050505050505", - "channel_id": "channelid0250000250000250000250000250000250000250000250000250000", - "short_channel_id": "115x1x1", + "peer_id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "channel_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "short_channel_id": "112x1x0", "alias": { - "local": "122x132x142", - "remote": "152x162x172" + "local": "6377624x13255799x14088", + "remote": "9351983x2726118x65411" }, "opener": "local", "closer": "local", - "private": true, + "private": false, "channel_type": { "bits": [ 12, @@ -18248,20 +18909,20 @@ "anchors/even" ] }, - "total_local_commitments": 2, - "total_remote_commitments": 2, - "total_htlcs_sent": 1, - "funding_txid": "fundingtxid00101010101010101010101010101010101010101010101010101", - "funding_outnum": 1, + "total_local_commitments": 16, + "total_remote_commitments": 16, + "total_htlcs_sent": 8, + "funding_txid": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9", + "funding_outnum": 0, "leased": false, "total_msat": 1000000000, - "final_to_us_msat": 500000000, - "min_to_us_msat": 500000000, + "final_to_us_msat": 489809898, + "min_to_us_msat": 489809898, "max_to_us_msat": 1000000000, - "last_commitment_txid": "txidcloselastcommitment00000200002000020000200002000020000200002", + "last_commitment_txid": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6", "last_commitment_fee_msat": 2896000, "close_cause": "user", - "last_stable_connection": 1738500000 + "last_stable_connection": 1738000000 } ] } @@ -19992,7 +20653,15 @@ "id": "example:listconfigs#1", "method": "listconfigs", "params": { - "config": "network" + "config": "network", + "scb": [ + "0000000000000006f4e1de801de57374d5737da622611e3a1ad9f16d5df9c30fceecc11ce732eeeb022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59017f000001a95cbe3270e5e0998af5eb0a67f7bf6e8d5b3d3d43059b3e4cfbd1e4fca6152c51320000000100000000000f42400003401000000000eb015c0000fffffffffffe000000020000ffffffffffff3283fc1863a9702a8e188ed55475324e55485a8758d2068cfea35851418c55740000fffffffffffed00ec892b1739b55ddc0cca2988d8731eb33f2295c1fcc13fdbdfff9d3f85d6d038402a6939f0f9d5c7a41464169eb692b4d2d73266b3c46345cd036ca577a15bdeeaa027662682a646ce7671c3a091bf639176e87d3379022126b209ebadadae19ffc0e02c59668c64362eaeabf44ee4f10b98fc92412cbea74b6f3a917423dfdf3ca282602773e6c29472ab708e5b127e8ae1ce2d8b7f56b457299f93bb72bb73fdbcf91770501010702a5f8", + "000000000000000121bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d017f000001dcf8fdd5381f36008c3eac24cdde5ec0fea8f39240575ef0cb4406cb51ad419dd7810000000000000000000f424000034010000000011301840000fffffffffffa000000030000fffffffffffb8ff7d0df4eee78e558b4e07f82049aaa933f4f4932e13e1e7fee5cb103f7a0b50000fffffffffffa79176754ea338ffa080591b946a6ac1c47ff579ae7e45857bf01261ebe1c46ba0000fffffffffffcbdb924885293efdaa1ba8f556161f4fe525c19483def49b9af85c1623bc6d27b038402add69f29ad433cb7d4c9470f2d49d80245fd9e76a992197528a131e37711efac02c57de22185162001ffaf2e61b053b1d0e280d73ecec1b04916df2c65642d94a102cd4e1a07ee85714b6eada09d9cf81aeb15bfc72ddd003235530c58bbd0c0144902b10f36d2ebab3ce560abf15ceb1bef619491e0597a794fdafcfdf8708eec9e2d0501010702a5f8", + "00000000000000027512083907c74ed3a045e9bf772b3d72948eb93daf84a1cee57108800451aaf2035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d017f000001dcf80239a9c9f2a91e69ba01800baf71f55efe457677b2e5cbd640b888dc1c9375b40000000000000000000f42400003401000000000c301340000ffffffffffff000000010000ffffffffffff0e07b6188dd51f15bb5cb9027950bf487a612dca57e2928de3f28f6ee796978b03840330b7ddf07e5bc779ea468875371ea25b560491c5feaeeb5e229ded3820d1d69103620748b3796c4988dd0fc63b92ae011dc989f15c433a55ed38e24318a43b4c93021bfe48bb1aded55878b00a3f00c5c1bffa1010510d8ba1c6372012ac9c3205d20201604aa7056ab8926038a846014bdbe4874ceef7ce45141b8009b0e2f49e7ec70501010702a5f8", + "0000000000000003222d999f537e32e9458c5db17a63e012dcced61340de06fda5bc30566270b0aa0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f0000017531932479f6d82ee59c7aa67b99568de0a31c202f6a3ff18a6bdd1ec22683cf026500000000000000000bebb3cb00034010000000009b010c0001000000000000000000000384021f90b5f38e0c0ea50bccfcf70a32cd4395c8c544e70636b7cc41831fe33fb4ce03bcfb0d457dfa07f508f434e6a2f040dd3dd233e7002dbe1c1b5d86ed5d3efd76030a4ce755504748f47401fc016578a52e104cbbd28251f10b11e4b3e55d0fe1d303986bdd0842662b8d0d18147630a720e952a2cda624c63ef4903357d27e54f7920501000702a5f8", + "0000000000000004a4a379248e49d207cc984646e632e1a31105a85708b9d6d961a5018fdd489f5a0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f000001970c7f07a15ce1fe1519d46536c4036f1c13527fa8bf52f6a5299b860f982ba2ed7e00000001000000000000753000034010000000009b010c000100000000000000000000038402c8aabcf1224df10e9d803dc3918797892fe0abec56d3e06f121bcebbe9ab0a2c03bd181375d57b8b1d15def9c5f9007b3c3ff98a140c0a44c9dc5f54ac7ea4baf30310952e08f9960711d8142dfa171c0fc2348762acea003f3897397f6ace8454130382da2a229450c4a8e8cea70bbd147eaaf981184bff8c1d70b70c30a494d848420501010702a5f8", + "000000000000000509eb55872cd9039ecd08281af756e23b15aad4129fd6a9bcd71b472114ebf43a0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f000001970c64ed91a21c10208d715b59801b12b4a6eff9ea9e4e7d45971c298b62d90ece8e00000000000000000000c35000034010000000009b010c000100000000000000000000038402e885f38e784050b386fb32d20935acc61059d8b02b6bec0ac2bfc8b2c5cf7f3103ae69dbfc6511ba0781c13113e16e1557a875b910cb1cb1fe1ef95a7edb36135a03758d5faa8515942873911e21869b1b90a4be72af14b394bc064da6ba518b087003750b588cd1fb8d60276c12c1c3eef7e302e3772414234404289db8c10f5731320501010702a5f8" + ] } }, "response": { @@ -20029,30 +20698,175 @@ }, "response": { "configs": { - "accept-htlc-tlv-type": { - "values_int": [], - "sources": [] + "developer": { + "set": true, + "source": "cmdline" }, - "addr": { - "values_str": [ - "127.0.0.1:19735" - ], - "sources": [ - "cmdline" - ] + "lightning-dir": { + "value_str": "/home/rusty/.lightning/regtest", + "source": "cmdline" }, - "alias": { - "value_str": "SILENTARTIST", + "network": { + "value_str": "regtest", + "source": "cmdline" + }, + "testnet": { + "set": false, + "source": "default" + }, + "testnet4": { + "set": false, + "source": "default" + }, + "signet": { + "set": false, + "source": "default" + }, + "mainnet": { + "set": false, + "source": "default" + }, + "regtest": { + "set": false, + "source": "default" + }, + "rpc-file": { + "value_str": "lightning-rpc", "source": "default" }, "allow-deprecated-apis": { "value_bool": true, "source": "cmdline" }, + "plugin": { + "values_str": [], + "sources": [] + }, + "plugin-dir": { + "values_str": [], + "sources": [] + }, + "clear-plugins": { + "set": false, + "source": "default" + }, + "disable-plugin": { + "values_str": [], + "sources": [] + }, + "important-plugin": { + "values_str": [], + "sources": [] + }, "always-use-proxy": { "value_bool": false, "source": "default" }, + "daemon": { + "set": false, + "source": "default" + }, + "experimental-dual-fund": { + "set": true, + "source": "cmdline" + }, + "experimental-splicing": { + "set": false, + "source": "default" + }, + "experimental-shutdown-wrong-funding": { + "set": false, + "source": "default" + }, + "experimental-quiesce": { + "set": false, + "source": "default" + }, + "rgb": { + "value_str": "022d22", + "source": "default" + }, + "alias": { + "value_str": "SILENTARTIST-v25.12", + "source": "default" + }, + "pid-file": { + "value_str": "/home/rusty/.lightning/lightningd-regtest.pid", + "source": "default" + }, + "ignore-fee-limits": { + "value_bool": false, + "source": "cmdline" + }, + "watchtime-blocks": { + "value_int": 5, + "source": "cmdline" + }, + "funding-confirms": { + "value_int": 1, + "source": "default" + }, + "require-confirmed-inputs": { + "value_bool": false, + "source": "default" + }, + "cltv-delta": { + "value_int": 6, + "source": "cmdline" + }, + "cltv-final": { + "value_int": 5, + "source": "cmdline" + }, + "commit-time": { + "value_int": 10, + "source": "default" + }, + "fee-base": { + "value_int": 1, + "source": "default" + }, + "rescan": { + "value_int": 1, + "source": "cmdline" + }, + "fee-per-satoshi": { + "value_int": 10, + "source": "default" + }, + "htlc-minimum-msat": { + "value_msat": 0, + "source": "default" + }, + "htlc-maximum-msat": { + "value_msat": 18446744073709551615, + "source": "default" + }, + "max-concurrent-htlcs": { + "value_int": 483, + "source": "default" + }, + "max-dust-htlc-exposure-msat": { + "value_msat": 50000000, + "source": "default" + }, + "min-capacity-sat": { + "value_int": 500000, + "source": "/home/rusty/.lightning/regtest/config.setconfig:3", + "dynamic": true + }, + "addr": { + "values_str": [ + "127.0.0.1:30003" + ], + "sources": [ + "cmdline" + ] + }, + "bind-addr": { + "values_str": [], + "sources": [] + }, "announce-addr": { "values_str": [], "sources": [] @@ -20065,407 +20879,266 @@ "value_int": 19846, "source": "default" }, + "offline": { + "set": false, + "source": "default" + }, + "autolisten": { + "value_bool": false, + "source": "default" + }, + "accept-htlc-tlv-type": { + "values_int": [], + "sources": [] + }, + "disable-dns": { + "set": true, + "source": "cmdline" + }, + "encrypted-hsm": { + "set": false, + "source": "default" + }, + "rpc-file-mode": { + "value_str": "0600", + "source": "default" + }, + "commit-fee": { + "value_int": 100, + "source": "default" + }, + "commit-feerate-offset": { + "value_int": 5, + "source": "default" + }, + "min-emergency-msat": { + "value_msat": 25000000, + "source": "default" + }, + "subdaemon": { + "values_str": [], + "sources": [] + }, + "invoices-onchain-fallback": { + "set": false, + "source": "default" + }, + "i-promise-to-fix-broken-api-user": { + "values_str": [], + "sources": [] + }, + "log-level": { + "value_str": "debug", + "source": "cmdline" + }, + "log-timestamps": { + "value_bool": true, + "source": "default" + }, + "log-prefix": { + "value_str": "lightningd-2 ", + "source": "cmdline" + }, + "log-file": { + "values_str": [ + "-", + "/home/rusty/.lightning/log" + ], + "sources": [ + "cmdline", + "cmdline" + ] + }, + "dev-no-plugin-checksum": { + "set": true, + "source": "cmdline" + }, + "dev-fail-on-subdaemon-fail": { + "set": true, + "source": "cmdline" + }, + "dev-bitcoind-poll": { + "value_int": 3, + "source": "cmdline" + }, + "dev-fast-gossip": { + "set": true, + "source": "cmdline" + }, + "dev-no-version-checks": { + "set": true, + "source": "cmdline" + }, + "dev-hsmd-no-preapprove-check": { + "set": true, + "source": "cmdline" + }, + "autoconnect-seeker-peers": { + "value_int": 0, + "source": "cmdline" + }, + "dev-crash-after": { + "value_str": "3600", + "source": "cmdline" + }, + "dev-save-plugin-io": { + "value_str": "/tmp/plugin-io", + "source": "cmdline" + }, "autoclean-cycle": { "value_int": 3600, "source": "default", - "plugin": "/root/lightning/plugins/autoclean", + "plugin": "/usr/local/libexec/plugins/autoclean", "dynamic": true }, "autoclean-expiredinvoices-age": { "value_int": 300, - "source": "/tmp/.lightning/regtest/config.setconfig:2", - "plugin": "/root/lightning/plugins/autoclean", + "source": "/home/rusty/.lightning/regtest/config.setconfig:2", + "plugin": "/usr/local/libexec/plugins/autoclean", "dynamic": true }, - "autoconnect-seeker-peers": { - "value_int": 0, - "source": "cmdline" - }, - "autolisten": { - "value_bool": false, - "source": "default" - }, - "bind-addr": { - "values_str": [], - "sources": [] + "dev-autoclean-max-batch": { + "value_int": 100, + "source": "default", + "plugin": "/usr/local/libexec/plugins/autoclean", + "dynamic": true }, "bitcoin-datadir": { - "value_str": "/tmp/.lightning/", + "value_str": "/var/lib/bitcoind", "source": "cmdline", - "plugin": "/root/lightning/plugins/bcli" + "plugin": "/usr/local/libexec/plugins/bcli" }, "bitcoin-retry-timeout": { "value_int": 60, "source": "default", - "plugin": "/root/lightning/plugins/bcli" + "plugin": "/usr/local/libexec/plugins/bcli" }, "bitcoin-rpcclienttimeout": { "value_int": 60, "source": "default", - "plugin": "/root/lightning/plugins/bcli" + "plugin": "/usr/local/libexec/plugins/bcli" }, "bitcoin-rpcpassword": { "value_str": "rpcpass", "source": "cmdline", - "plugin": "/root/lightning/plugins/bcli" + "plugin": "/usr/local/libexec/plugins/bcli" }, "bitcoin-rpcport": { - "value_int": 18332, + "value_int": 8332, "source": "cmdline", - "plugin": "/root/lightning/plugins/bcli" + "plugin": "/usr/local/libexec/plugins/bcli" }, "bitcoin-rpcuser": { "value_str": "rpcuser", "source": "cmdline", - "plugin": "/root/lightning/plugins/bcli" + "plugin": "/usr/local/libexec/plugins/bcli" }, - "clear-plugins": { - "set": false, - "source": "default" - }, - "cltv-delta": { - "value_int": 6, - "source": "cmdline" - }, - "cltv-final": { - "value_int": 5, - "source": "cmdline" - }, - "commit-fee": { - "value_int": 100, - "source": "default" - }, - "commit-feerate-offset": { - "value_int": 5, - "source": "default" - }, - "commit-time": { - "value_int": 10, - "source": "default" - }, - "daemon": { - "set": false, - "source": "default" - }, - "dev-autoclean-max-batch": { - "value_int": 100, + "grpc-host": { + "value_str": "127.0.0.1", "source": "default", - "plugin": "/root/lightning/plugins/autoclean", - "dynamic": true - }, - "dev-bitcoind-poll": { - "value_int": 3, - "source": "cmdline" - }, - "dev-crash-after": { - "value_str": "3600", - "source": "cmdline" - }, - "dev-fail-on-subdaemon-fail": { - "set": true, - "source": "cmdline" - }, - "dev-fast-gossip": { - "set": true, - "source": "cmdline" + "plugin": "/usr/local/libexec/plugins/cln-grpc" }, - "dev-hsmd-no-preapprove-check": { - "set": true, - "source": "cmdline" - }, - "dev-invoice-bpath-scid": { - "set": false, + "grpc-msg-buffer-size": { + "value_int": 1024, "source": "default", - "plugin": "/root/lightning/plugins/offers" - }, - "dev-no-plugin-checksum": { - "set": true, - "source": "cmdline" - }, - "dev-no-version-checks": { - "set": true, - "source": "cmdline" - }, - "developer": { - "set": true, - "source": "cmdline" + "plugin": "/usr/local/libexec/plugins/cln-grpc" }, - "disable-dns": { - "set": true, - "source": "cmdline" + "grpc-port": { + "value_int": 30004, + "source": "cmdline", + "plugin": "/usr/local/libexec/plugins/cln-grpc" }, - "disable-mpp": { + "renepay-debug-mcf": { "set": false, "source": "default", - "plugin": "/root/lightning/plugins/pay" - }, - "disable-plugin": { - "values_str": [], - "sources": [] - }, - "encrypted-hsm": { - "set": false, - "source": "default" - }, - "experimental-dual-fund": { - "set": true, - "source": "cmdline" + "plugin": "/usr/local/libexec/plugins/cln-renepay" }, - "experimental-quiesce": { + "renepay-debug-payflow": { "set": false, - "source": "default" + "source": "default", + "plugin": "/usr/local/libexec/plugins/cln-renepay" }, - "experimental-shutdown-wrong-funding": { - "set": false, - "source": "default" + "xpay-handle-pay": { + "value_bool": false, + "source": "default", + "plugin": "/usr/local/libexec/plugins/cln-xpay", + "dynamic": true }, - "experimental-splicing": { - "set": false, - "source": "default" + "xpay-slow-mode": { + "value_bool": false, + "source": "default", + "plugin": "/usr/local/libexec/plugins/cln-xpay", + "dynamic": true }, "exposesecret-passphrase": { "value_str": "...", "source": "default", - "plugin": "/root/lightning/plugins/exposesecret" - }, - "fee-base": { - "value_int": 1, - "source": "default" - }, - "fee-per-satoshi": { - "value_int": 10, - "source": "default" - }, - "fetchinvoice-noconnect": { - "set": false, - "source": "default", - "plugin": "/root/lightning/plugins/offers" + "plugin": "/usr/local/libexec/plugins/exposesecret" }, "funder-fund-probability": { "value_int": 100, "source": "default", - "plugin": "/root/lightning/plugins/funder" + "plugin": "/usr/local/libexec/plugins/funder" }, "funder-fuzz-percent": { "value_int": 0, "source": "default", - "plugin": "/root/lightning/plugins/funder" + "plugin": "/usr/local/libexec/plugins/funder" }, "funder-lease-requests-only": { "value_bool": true, "source": "default", - "plugin": "/root/lightning/plugins/funder" + "plugin": "/usr/local/libexec/plugins/funder" }, "funder-max-their-funding": { "value_str": "4294967295sat", "source": "default", - "plugin": "/root/lightning/plugins/funder" + "plugin": "/usr/local/libexec/plugins/funder" }, "funder-min-their-funding": { "value_str": "10000sat", "source": "default", - "plugin": "/root/lightning/plugins/funder" + "plugin": "/usr/local/libexec/plugins/funder" }, "funder-per-channel-max": { "value_str": "4294967295sat", "source": "default", - "plugin": "/root/lightning/plugins/funder" + "plugin": "/usr/local/libexec/plugins/funder" }, "funder-per-channel-min": { "value_str": "10000sat", "source": "default", - "plugin": "/root/lightning/plugins/funder" + "plugin": "/usr/local/libexec/plugins/funder" }, "funder-policy": { "value_str": "fixed", "source": "default", - "plugin": "/root/lightning/plugins/funder" + "plugin": "/usr/local/libexec/plugins/funder" }, "funder-policy-mod": { "value_str": "0", "source": "default", - "plugin": "/root/lightning/plugins/funder" + "plugin": "/usr/local/libexec/plugins/funder" }, "funder-reserve-tank": { "value_str": "0sat", "source": "default", - "plugin": "/root/lightning/plugins/funder" - }, - "funding-confirms": { - "value_int": 1, - "source": "default" - }, - "grpc-host": { - "value_str": "127.0.0.1", - "source": "default", - "plugin": "/root/lightning/plugins/cln-grpc" - }, - "grpc-msg-buffer-size": { - "value_int": 1024, - "source": "default", - "plugin": "/root/lightning/plugins/cln-grpc" - }, - "grpc-port": { - "value_int": 9736, - "source": "cmdline", - "plugin": "/root/lightning/plugins/cln-grpc" - }, - "htlc-maximum-msat": { - "value_msat": 18446744073709552000, - "source": "default" - }, - "htlc-minimum-msat": { - "value_msat": 0, - "source": "default" - }, - "i-promise-to-fix-broken-api-user": { - "values_str": [], - "sources": [] - }, - "ignore-fee-limits": { - "value_bool": false, - "source": "cmdline" - }, - "important-plugin": { - "values_str": [], - "sources": [] - }, - "invoices-onchain-fallback": { - "set": false, - "source": "default" - }, - "lightning-dir": { - "value_str": "/tmp/.lightning/", - "source": "cmdline" - }, - "log-file": { - "values_str": [ - "-", - "/tmp/.lightning/log" - ], - "sources": [ - "cmdline", - "cmdline" - ] - }, - "log-level": { - "value_str": "debug", - "source": "cmdline" - }, - "log-prefix": { - "value_str": "lightningd-2 ", - "source": "cmdline" + "plugin": "/usr/local/libexec/plugins/funder" }, - "log-timestamps": { - "value_bool": true, - "source": "default" - }, - "mainnet": { - "set": false, - "source": "default" - }, - "max-concurrent-htlcs": { - "value_int": 483, - "source": "default" - }, - "max-dust-htlc-exposure-msat": { - "value_msat": 50000000, - "source": "default" - }, - "min-capacity-sat": { - "value_int": 500000, - "source": "/tmp/.lightning/regtest/config.setconfig:3", - "dynamic": true - }, - "min-emergency-msat": { - "value_msat": 25000000, - "source": "default" - }, - "network": { - "value_str": "regtest", - "source": "cmdline" - }, - "offline": { - "set": false, - "source": "default" - }, - "pid-file": { - "value_str": "/tmp/.lightning/lightningd-regtest.pid", - "source": "default" - }, - "plugin": { - "values_str": [], - "sources": [] - }, - "plugin-dir": { - "values_str": [], - "sources": [] - }, - "regtest": { - "set": false, - "source": "default" - }, - "renepay-debug-mcf": { + "dev-invoice-bpath-scid": { "set": false, "source": "default", - "plugin": "/root/lightning/plugins/cln-renepay" + "plugin": "/usr/local/libexec/plugins/offers" }, - "renepay-debug-payflow": { + "fetchinvoice-noconnect": { "set": false, "source": "default", - "plugin": "/root/lightning/plugins/cln-renepay" - }, - "require-confirmed-inputs": { - "value_bool": false, - "source": "default" - }, - "rescan": { - "value_int": 1, - "source": "cmdline" - }, - "rgb": { - "value_str": "022d22", - "source": "default" - }, - "rpc-file": { - "value_str": "lightning-rpc", - "source": "default" - }, - "rpc-file-mode": { - "value_str": "0600", - "source": "default" - }, - "signet": { - "set": false, - "source": "default" - }, - "subdaemon": { - "values_str": [], - "sources": [] - }, - "testnet": { - "set": false, - "source": "default" + "plugin": "/usr/local/libexec/plugins/offers" }, - "testnet4": { + "disable-mpp": { "set": false, - "source": "default" - }, - "watchtime-blocks": { - "value_int": 5, - "source": "cmdline" - }, - "xpay-handle-pay": { - "value_bool": false, "source": "default", - "plugin": "/root/lightning/plugins/cln-xpay", - "dynamic": true - }, - "xpay-slow-mode": { - "value_bool": false, - "source": "default", - "plugin": "/root/lightning/plugins/cln-xpay", - "dynamic": true + "plugin": "/usr/local/libexec/plugins/pay" } } } @@ -21001,8 +21674,8 @@ "id": "example:listforwards#1", "method": "listforwards", "params": { - "in_channel": "109x1x1", - "out_channel": "123x1x1", + "in_channel": "110x1x0", + "out_channel": "124x1x1", "status": "settled" } }, @@ -21011,32 +21684,32 @@ { "created_index": 12, "updated_index": 7, - "in_channel": "109x1x1", + "in_channel": "110x1x0", "in_htlc_id": 19, - "out_channel": "123x1x1", + "out_channel": "124x1x1", "out_htlc_id": 2, "in_msat": 50000501, "out_msat": 50000000, "fee_msat": 501, "status": "settled", "style": "tlv", - "received_time": 1738000000, - "resolved_time": 1738500000 + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 }, { "created_index": 13, "updated_index": 8, - "in_channel": "109x1x1", + "in_channel": "110x1x0", "in_htlc_id": 20, - "out_channel": "123x1x1", + "out_channel": "124x1x1", "out_htlc_id": 3, "in_msat": 50000501, "out_msat": 50000000, "fee_msat": 501, "status": "settled", "style": "tlv", - "received_time": 1738010000, - "resolved_time": 1738510000 + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 } ] } @@ -21052,77 +21725,171 @@ { "created_index": 1, "updated_index": 1, - "in_channel": "109x1x1", + "in_channel": "110x1x0", "in_htlc_id": 1, - "out_channel": "111x1x1", + "out_channel": "112x1x0", "out_htlc_id": 1, "in_msat": 10001, "out_msat": 10000, "fee_msat": 1, "status": "settled", "style": "tlv", - "received_time": 1738000000, - "resolved_time": 1738500000 + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 }, { "created_index": 2, "updated_index": 2, - "in_channel": "109x1x1", + "in_channel": "110x1x0", "in_htlc_id": 2, - "out_channel": "111x1x1", + "out_channel": "112x1x0", "out_htlc_id": 2, "in_msat": 10001, "out_msat": 10000, "fee_msat": 1, "status": "settled", "style": "tlv", - "received_time": 1738010000, - "resolved_time": 1738510000 + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 }, { "created_index": 3, "updated_index": 3, - "in_channel": "109x1x1", + "in_channel": "110x1x0", "in_htlc_id": 3, - "out_channel": "111x1x1", + "out_channel": "112x1x0", "out_htlc_id": 3, "in_msat": 10000202, "out_msat": 10000101, "fee_msat": 101, "status": "settled", "style": "tlv", - "received_time": 1738020000, - "resolved_time": 1738520000 + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 }, { "created_index": 5, "updated_index": 4, - "in_channel": "109x1x1", + "in_channel": "110x1x0", "in_htlc_id": 5, - "out_channel": "111x1x1", + "out_channel": "112x1x0", "out_htlc_id": 4, "in_msat": 10001, "out_msat": 10000, "fee_msat": 1, "status": "settled", "style": "tlv", - "received_time": 1738030000, - "resolved_time": 1738530000 + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 }, { "created_index": 6, "updated_index": 5, - "in_channel": "109x1x1", + "in_channel": "110x1x0", "in_htlc_id": 6, - "out_channel": "111x1x1", + "out_channel": "112x1x0", "out_htlc_id": 5, "in_msat": 50001, "out_msat": 50000, "fee_msat": 1, "status": "settled", "style": "tlv", - "received_time": 1738040000, - "resolved_time": 1738540000 + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 + }, + { + "created_index": 7, + "updated_index": 6, + "in_channel": "110x1x0", + "in_htlc_id": 7, + "out_channel": "112x1x0", + "out_htlc_id": 7, + "in_msat": 10002, + "out_msat": 10001, + "fee_msat": 1, + "status": "settled", + "style": "tlv", + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 + }, + { + "created_index": 8, + "in_channel": "110x1x0", + "in_htlc_id": 8, + "out_channel": "112x1x0", + "in_msat": 1002, + "status": "local_failed", + "failcode": 16394, + "failreason": "WIRE_UNKNOWN_NEXT_PEER", + "style": "tlv", + "received_time": 1738000000.0 + }, + { + "created_index": 9, + "in_channel": "110x1x0", + "in_htlc_id": 9, + "out_channel": "112x1x0", + "in_msat": 10001, + "status": "local_failed", + "failcode": 16394, + "failreason": "WIRE_UNKNOWN_NEXT_PEER", + "style": "tlv", + "received_time": 1738000000.0 + }, + { + "created_index": 10, + "in_channel": "110x1x0", + "in_htlc_id": 18, + "out_channel": "160x1x1", + "in_msat": 1000000, + "status": "local_failed", + "failcode": 16394, + "failreason": "WIRE_UNKNOWN_NEXT_PEER", + "style": "tlv", + "received_time": 1738000000.0 + }, + { + "created_index": 11, + "in_channel": "110x1x0", + "in_htlc_id": 17, + "out_channel": "124x1x1", + "out_htlc_id": 1, + "in_msat": 4000082, + "out_msat": 4000041, + "fee_msat": 41, + "status": "offered", + "style": "tlv", + "received_time": 1738000000.0 + }, + { + "created_index": 12, + "updated_index": 7, + "in_channel": "110x1x0", + "in_htlc_id": 19, + "out_channel": "124x1x1", + "out_htlc_id": 2, + "in_msat": 50000501, + "out_msat": 50000000, + "fee_msat": 501, + "status": "settled", + "style": "tlv", + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 + }, + { + "created_index": 13, + "updated_index": 8, + "in_channel": "110x1x0", + "in_htlc_id": 20, + "out_channel": "124x1x1", + "out_htlc_id": 3, + "in_msat": 50000501, + "out_msat": 50000000, + "fee_msat": 501, + "status": "settled", + "style": "tlv", + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 } ] } @@ -21491,67 +22258,118 @@ "response": { "outputs": [ { - "txid": "txid000010000100001000010000100001000010000100001000010000100001", - "output": 2, - "amount_msat": 26000000, - "scriptpubkey": "scriptpubkey01010101010101010101010101010101010101010101010101010101", - "address": "bcrt1p0004040404040404040404040404040404040404040404040404040404", + "txid": "59d7273c7dde3b2786f7325da08a303779ee718443aaa25d03db19c9e909591b", + "output": 6, + "amount_msat": 1000000, + "scriptpubkey": "00146a1845bb0ea1f8efa63f00f325641db7350dcd5b", + "address": "bcrt1qdgvytwcw58uwlf3lqrej2eqaku6smn2mdvkycp", "status": "confirmed", - "blockheight": 160, + "blockheight": 141, "reserved": false }, { - "txid": "txid000020000200002000020000200002000020000200002000020000200002", - "output": 3, - "amount_msat": 27000000, - "scriptpubkey": "scriptpubkey02020202020202020202020202020202020202020202020202020202", - "address": "bcrt1p0004040404040404040404040404040404040404040404040404040404", + "txid": "1c863d8172c0a588a7d34426b7249d4a939f04d4ca4bad6c28d5913ed2dff12a", + "output": 0, + "amount_msat": 949204000, + "scriptpubkey": "5120ec722e1af72c414e9967d22b9809e96127fea27702c78dd7821b1c5aa9f08f59", + "address": "bcrt1pa3ezuxhh93q5axt86g4esz0fvynlagnhqtrcm4uzrvw9420s3avsck2pku", "status": "confirmed", "blockheight": 160, "reserved": false }, { - "txid": "txid000030000300003000030000300003000030000300003000030000300003", - "output": 4, - "amount_msat": 28000000, - "scriptpubkey": "scriptpubkey03030303030303030303030303030303030303030303030303030303", - "address": "bcrt1p0004040404040404040404040404040404040404040404040404040404", + "txid": "8ef1ed98891f7cf81b74c330a68de9fcff802870f91cf04a69c5db02118bc78e", + "output": 0, + "amount_msat": 497105000, + "scriptpubkey": "51205c063fe945e1a1e3a81072584a44d0c838919293953405f8e7ef9552788f94be", + "address": "bcrt1ptsrrl629uxs782qswfvy53xsequfry5nj56qt788a724y7y0jjlqxzv28f", + "status": "unconfirmed", + "reserved": false + }, + { + "txid": "19fec0dedc91354817beacd4155a6303a5ceaad0be36219b3d6e77836c8092a0", + "output": 0, + "amount_msat": 497105000, + "scriptpubkey": "5120370bae2303e8b17792a34ee04ada86a6b2b84fd76a01143babd899c7ed9e8372", + "address": "bcrt1pxu96ugcrazch0y4rfmsy4k5x56etsn7hdgq3gwatmzvu0mv7sdeql5x9qe", "status": "confirmed", - "blockheight": 160, + "blockheight": 159, + "reserved": false + }, + { + "txid": "4fc8702cec5b92e269cd5bf25f90559ee09f96b481e18cf7e2f5aca43394e7b7", + "output": 1, + "amount_msat": 2000000000, + "scriptpubkey": "00149edfbe21c9e3afb797debd0aeb518a9d97793ea8", + "address": "bcrt1qnm0mugwfuwhm0977h59wk5v2nkthj04gcw9vvh", + "status": "confirmed", + "blockheight": 159, + "reserved": false + }, + { + "txid": "d84db03fd012a98de6776fb10ee1c1de23282c33518aa32fdd5a15600f535ace", + "output": 0, + "amount_msat": 2000000000, + "scriptpubkey": "001461ed06c0632af284ec9e192e97758fc04692c829", + "address": "bcrt1qv8ksdsrr9tegfmy7ryhfwav0cprf9jpfqdfr4m", + "status": "confirmed", + "blockheight": 111, + "reserved": false + }, + { + "txid": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6", + "output": 0, + "amount_msat": 486914000, + "scriptpubkey": "512085d72025e78fd08bb61119f0987ab0041f50561ada6e130c645343db8c44c2af", + "address": "bcrt1pshtjqf083lgghds3r8cfs74sqs04q4s6mfhpxrry2dpahrzyc2hslyvm7n", + "status": "confirmed", + "blockheight": 122, + "reserved": false + }, + { + "txid": "6430642958a9aaa5c380bb9ea5048ae920557df4e8c8f959ee745f87f03662ed", + "output": 0, + "amount_msat": 198992853000, + "scriptpubkey": "512052021c61da23b2eda3d5000c6d812d0c9b088c237ed2a510abd94d8c3f7c421d", + "address": "bcrt1p2gppccw6ywewmg74qqxxmqfdpjds3rpr0mf22y9tm9xcc0muggwsea9nkf", + "status": "confirmed", + "blockheight": 137, "reserved": false } ], "channels": [ { - "peer_id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "peer_id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "connected": true, "state": "CHANNELD_NORMAL", - "channel_id": "channelid0120000120000120000120000120000120000120000120000120000", - "short_channel_id": "109x1x1", - "our_amount_msat": 36000000, - "amount_msat": 11000000, - "funding_txid": "txid010010100101001010010100101001010010100101001010010100101001", + "channel_id": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3", + "short_channel_id": "124x1x1", + "our_amount_msat": 899996000, + "amount_msat": 1000000000, + "funding_txid": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69", "funding_output": 1 }, { - "peer_id": "nodeid050505050505050505050505050505050505050505050505050505050505", - "connected": false, - "state": "ONCHAIN", - "channel_id": "channelid1300013000130001300013000130001300013000130001300013000", - "our_amount_msat": 37000000, - "amount_msat": 12000000, - "funding_txid": "txid010020100201002010020100201002010020100201002010020100201002", - "funding_output": 2 + "peer_id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "connected": true, + "state": "CHANNELD_NORMAL", + "channel_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "short_channel_id": "110x1x0", + "our_amount_msat": 609507210, + "amount_msat": 1000000000, + "funding_txid": "63f74346eda6b8620ec24f86e2f8982ef3dade95f8efd00b372a75b2893b6f0d", + "funding_output": 0 }, { - "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "peer_id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "connected": false, - "state": "ONCHAIN", - "channel_id": "channelid1100011000110001100011000110001100011000110001100011000", - "our_amount_msat": 38000000, - "amount_msat": 13000000, - "funding_txid": "txid010030100301003010030100301003010030100301003010030100301003", - "funding_output": 3 + "state": "CLOSINGD_COMPLETE", + "channel_id": "f4e1de801de57374d5737da622611e3a1ad9f16d5df9c30fceecc11ce732eeeb", + "short_channel_id": "160x1x1", + "our_amount_msat": 500000000, + "amount_msat": 1000000000, + "funding_txid": "1c863d8172c0a588a7d34426b7249d4a939f04d4ca4bad6c28d5913ed2dff12a", + "funding_output": 1 } ] } @@ -21731,7 +22549,7 @@ "id": "example:listhtlcs#1", "method": "listhtlcs", "params": [ - "109x1x1" + "110x1x0" ] }, "response": { @@ -21739,56 +22557,254 @@ { "created_index": 1, "updated_index": 9, - "short_channel_id": "109x1x1", + "short_channel_id": "110x1x0", "id": 0, - "expiry": 126, + "expiry": 127, "direction": "out", "amount_msat": 500000000, - "payment_hash": "paymenthashdelpay10101010101010101010101010101010101010101010101", + "payment_hash": "342cbb1cb564e8f32eb64fe8c254abf5ec5f6b87a0f8de7909caf8e658f3bd2a", "state": "RCVD_REMOVE_ACK_REVOCATION" }, { "created_index": 2, "updated_index": 18, - "short_channel_id": "109x1x1", + "short_channel_id": "110x1x0", "id": 1, - "expiry": 135, + "expiry": 137, "direction": "out", "amount_msat": 10001, - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", "state": "RCVD_REMOVE_ACK_REVOCATION" }, { "created_index": 3, "updated_index": 27, - "short_channel_id": "109x1x1", + "short_channel_id": "110x1x0", "id": 2, - "expiry": 149, + "expiry": 150, "direction": "out", "amount_msat": 10001, - "payment_hash": "paymenthashkey01k101k101k101k101k101k101k101k101k101k101k101k101", + "payment_hash": "097dcfa3b0bc58d499908855dae7d442854a02d4f2ffcc625f9385ed74f3256e", "state": "RCVD_REMOVE_ACK_REVOCATION" }, { "created_index": 4, "updated_index": 36, - "short_channel_id": "109x1x1", + "short_channel_id": "110x1x0", "id": 3, - "expiry": 155, + "expiry": 156, "direction": "out", "amount_msat": 10000202, - "payment_hash": "paymenthashkey02k201k201k201k201k201k201k201k201k201k201k201k201", + "payment_hash": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584", "state": "RCVD_REMOVE_ACK_REVOCATION" }, { "created_index": 5, "updated_index": 44, - "short_channel_id": "109x1x1", + "short_channel_id": "110x1x0", "id": 4, - "expiry": 152, + "expiry": 153, "direction": "out", "amount_msat": 10001, - "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "payment_hash": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 6, + "updated_index": 53, + "short_channel_id": "110x1x0", + "id": 5, + "expiry": 150, + "direction": "out", + "amount_msat": 10001, + "payment_hash": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 7, + "updated_index": 62, + "short_channel_id": "110x1x0", + "id": 6, + "expiry": 133, + "direction": "out", + "amount_msat": 50001, + "payment_hash": "ab3a5a971aa3b21494f7ce646f077232c10c9917c33375935c1aebfa571fa1a1", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 8, + "updated_index": 71, + "short_channel_id": "110x1x0", + "id": 7, + "expiry": 139, + "direction": "out", + "amount_msat": 10002, + "payment_hash": "1bb513fb2fbde40592243877d9f404ba3668275e2eeacd9c7264f34f04d37fd1", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 9, + "updated_index": 79, + "short_channel_id": "110x1x0", + "id": 8, + "expiry": 143, + "direction": "out", + "amount_msat": 1002, + "payment_hash": "47c148c1746366e4c2c7496621c22002bc2711b4d9c52cbb9c7b1fdca59c8579", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 10, + "updated_index": 87, + "short_channel_id": "110x1x0", + "id": 9, + "expiry": 138, + "direction": "out", + "amount_msat": 10001, + "payment_hash": "53a72d006c295bac2f2f81e6b82dd67193555a1859f7c90f84678b57ce6d10e2", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 11, + "updated_index": 96, + "short_channel_id": "110x1x0", + "id": 0, + "expiry": 137, + "direction": "in", + "amount_msat": 1000000, + "payment_hash": "cedc7bf0a9109bd3cd86c5a0c90faa812b8a0ca3d65671c8b4001aae2647349f", + "state": "SENT_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 12, + "updated_index": 104, + "short_channel_id": "110x1x0", + "id": 10, + "expiry": 145, + "direction": "out", + "amount_msat": 1000, + "payment_hash": "ff498c3300881ea7a3c04193e43f123444c644662008108c23229da3511bedd1", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 13, + "updated_index": 113, + "short_channel_id": "110x1x0", + "id": 11, + "expiry": 269, + "direction": "out", + "amount_msat": 400000, + "payment_hash": "e0b5658ef8e23cab6546ea5f7794a8c760483abf3613b34f401df4128944afae", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 14, + "updated_index": 122, + "short_channel_id": "110x1x0", + "id": 12, + "expiry": 137, + "direction": "out", + "amount_msat": 2000, + "payment_hash": "2a25861f15614825bdfd154d422342f159446f0d54dc24e8385d31520023f8cb", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 15, + "updated_index": 131, + "short_channel_id": "110x1x0", + "id": 13, + "expiry": 137, + "direction": "out", + "amount_msat": 3000, + "payment_hash": "36a32c9d7ee7baf5c15d1b9b27d085dce9c697fb427d0ce68342acce00e1586f", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 16, + "updated_index": 140, + "short_channel_id": "110x1x0", + "id": 14, + "expiry": 137, + "direction": "out", + "amount_msat": 5000, + "payment_hash": "8e3ea1fb26e3e5e8627064e68e424713e3393752457ffe19a565fea54f6307d6", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 17, + "updated_index": 149, + "short_channel_id": "110x1x0", + "id": 15, + "expiry": 137, + "direction": "out", + "amount_msat": 4000, + "payment_hash": "09963074ab0fc38044f890c763c658e7ea4f8b31ccbcfc6a0191163f5cdc4360", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 18, + "updated_index": 158, + "short_channel_id": "110x1x0", + "id": 16, + "expiry": 137, + "direction": "out", + "amount_msat": 1000, + "payment_hash": "9a33e433faddc3371f6a56a34146c82629d567520ddaf28244bd9f196288af71", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 19, + "updated_index": 165, + "short_channel_id": "110x1x0", + "id": 17, + "expiry": 182, + "direction": "out", + "amount_msat": 4000082, + "payment_hash": "2b924194d169a96d9cc35b66ae912507e18ace9ef679fcb5324636ff73be410a", + "state": "SENT_ADD_ACK_REVOCATION" + }, + { + "created_index": 20, + "updated_index": 170, + "short_channel_id": "110x1x0", + "id": 18, + "expiry": 166, + "direction": "out", + "amount_msat": 1000000, + "payment_hash": "2b924194d169a96d9cc35b66ae912507e18ace9ef679fcb5324636ff73be410a", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 21, + "updated_index": 179, + "short_channel_id": "110x1x0", + "id": 19, + "expiry": 172, + "direction": "out", + "amount_msat": 50000501, + "payment_hash": "1d3a502d4b52d3c22af20f93605cadec2194da2e077b9fbbd15fa379c6bfbbdd", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 22, + "updated_index": 188, + "short_channel_id": "110x1x0", + "id": 20, + "expiry": 172, + "direction": "out", + "amount_msat": 50000501, + "payment_hash": "39a88ddc69c973a791043a877a415eda840888849a5d7175c9666104513f9235", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 23, + "updated_index": 196, + "short_channel_id": "110x1x0", + "id": 21, + "expiry": 172, + "direction": "out", + "amount_msat": 50000501, + "payment_hash": "287476fe90c160d09bf95156469dc3cfc82e366c4676c9b774f26051bd465a96", "state": "RCVD_REMOVE_ACK_REVOCATION" } ] @@ -21809,12 +22825,12 @@ { "created_index": 4, "updated_index": 36, - "short_channel_id": "109x1x1", + "short_channel_id": "110x1x0", "id": 3, - "expiry": 155, + "expiry": 156, "direction": "out", "amount_msat": 10000202, - "payment_hash": "paymenthashkey02k201k201k201k201k201k201k201k201k201k201k201k201", + "payment_hash": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584", "state": "RCVD_REMOVE_ACK_REVOCATION" } ] @@ -21929,16 +22945,16 @@ "id": "example:listinvoicerequests#1", "method": "listinvoicerequests", "params": [ - "invreqid03030303030303030303030303030303030303030303030303030303" + "c5b8ebc06bdc246d7b852ce5637be459d3c053a5b3f8f68854f97af7371c9a50" ] }, "response": { "invoicerequests": [ { - "invreq_id": "invreqid02020202020202020202020202020202020202020202020202020202", + "invreq_id": "c5b8ebc06bdc246d7b852ce5637be459d3c053a5b3f8f68854f97af7371c9a50", "active": false, "single_use": true, - "bolt12": "lno1qgsq000bolt240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000", + "bolt12": "lnr1qqg99gqg2990zl3j22sqs52279lryzsk2fjhzat9wd6xjmn8ypnx7u3qd9h8vmmfvdj3yyrrd35kw6r5de5kueeqwd6x7un92qsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzr6jqwvfdqzcyypz6g3kyz34nfrl7lm6c3rushzxey3a55ecjgs6qp2vz8q78j336k0sgr76j2yl0lrljzljjdz8ztcpryunwgfk4hzz3sle3mhaw8v2gc4dn9map7v6dlpya98jy2mcrwe27qcsywlfqp6dhh30l54sj0e8tqsk", "used": false } ] @@ -21953,18 +22969,18 @@ "response": { "invoicerequests": [ { - "invreq_id": "invreqid02020202020202020202020202020202020202020202020202020202", + "invreq_id": "22c3d45d0a9640a827ed1fefb9a07c947e38fa4c086f1f16d94882848e264868", "active": false, "single_use": true, - "bolt12": "lno1qgsq000bolt240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000", - "used": false + "bolt12": "lnr1qqg99gqg2990zl3322sqs52279lrzzst2d5k6urvv5s8getnw3gzqp3zderpzxstt8927ynqg044h0egcd8n5h3n9g0u0v4h8ncc3yg02gps7sjqtqssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e7pqfylfzzhcux84v2552lt7p2ekunuamtsdgyk34a86m4zklkdjjdzt757t4sp0m8cp9tdj6hfe67mcuwl3q7zr4sr4z4gn2fvksykkn5g", + "used": true }, { - "invreq_id": "invreqid01010101010101010101010101010101010101010101010101010101", + "invreq_id": "c5b8ebc06bdc246d7b852ce5637be459d3c053a5b3f8f68854f97af7371c9a50", "active": false, "single_use": true, - "bolt12": "lno1qgsq000bolt210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000", - "used": true + "bolt12": "lnr1qqg99gqg2990zl3j22sqs52279lryzsk2fjhzat9wd6xjmn8ypnx7u3qd9h8vmmfvdj3yyrrd35kw6r5de5kueeqwd6x7un92qsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzr6jqwvfdqzcyypz6g3kyz34nfrl7lm6c3rushzxey3a55ecjgs6qp2vz8q78j336k0sgr76j2yl0lrljzljjdz8ztcpryunwgfk4hzz3sle3mhaw8v2gc4dn9map7v6dlpya98jy2mcrwe27qcsywlfqp6dhh30l54sj0e8tqsk", + "used": false } ] } @@ -22289,15 +23305,15 @@ "invoices": [ { "label": "lbl_l21", - "bolt11": "lnbcrt100n1pnt2bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000", - "payment_hash": "paymenthashinvl0210021002100210021002100210021002100210021002100", + "bolt11": "lnbcrt1pne035qsp5j7czxfpnquxg9vcw9crqh87raxz0glv8n6gx88jwdsp28pmfk68qpp5uz6ktrhcug72ke2xaf0h099gcasysw4lxcfmxn6qrh6p9z2y47hqdqcdserzgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqn7ge40jwkslz0j0vhfzy743lathy2sqy2dfyyahalxszs979d9s5v89ten2zcrna3xlxhkerk7p9k7a6u5fdddx5dzzas4ye2yp6desq3zwkg2", + "payment_hash": "e0b5658ef8e23cab6546ea5f7794a8c760483abf3613b34f401df4128944afae", "status": "paid", "pay_index": 4, "amount_received_msat": 400000, - "paid_at": 1738500000, - "payment_preimage": "paymentpreimager010101010101010101010101010101010101010101010101", + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c1908377744ca985c1908377744ca985c1908377744ca985c19", "description": "l21 description", - "expires_at": 1739000000, + "expires_at": 1738604800, "created_index": 2, "updated_index": 4 } @@ -22314,65 +23330,209 @@ "invoices": [ { "label": "lbl balance l1 to l2", - "bolt11": "lnbcrt222n1pnt3005720bolt114000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "payment_hash": "paymenthashdelpay10101010101010101010101010101010101010101010101", + "bolt11": "lnbcrt5m1pne035qsp5y09we8jhy4ug66c945kzkqyqzrhhqsap22q07wnawlgntwa5ca2spp5xsktk894vn50xt4kfl5vy49t7hk976u85rudu7gfetuwvk8nh54qdpcv3jhxcmjd9c8g6t0dcs8xetwvss8xmmdv5s8xct5wvsxcvfqw3hjqmpjxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqvsru69ylhpkda6980sl996q2fmld2zszepv79zf747la6zzt8mf8p0qw80w6j8d5evc72fls4d99sza23nnm6pahjqrs8kv3apdttjcq2mm2xw", + "payment_hash": "342cbb1cb564e8f32eb64fe8c254abf5ec5f6b87a0f8de7909caf8e658f3bd2a", "amount_msat": 500000000, "status": "paid", "pay_index": 1, "amount_received_msat": 500000000, - "paid_at": 1738500000, - "payment_preimage": "paymentpreimgdp1010101010101010101010101010101010101010101010101", + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c1808377744ca985c1808377744ca985c1808377744ca985c18", "description": "description send some sats l1 to l2", - "expires_at": 1739000000, + "expires_at": 1738604800, "created_index": 1, "updated_index": 1 }, { "label": "lbl_l21", - "bolt11": "lnbcrt100n1pnt2bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000", - "payment_hash": "paymenthashinvl0210021002100210021002100210021002100210021002100", + "bolt11": "lnbcrt1pne035qsp5j7czxfpnquxg9vcw9crqh87raxz0glv8n6gx88jwdsp28pmfk68qpp5uz6ktrhcug72ke2xaf0h099gcasysw4lxcfmxn6qrh6p9z2y47hqdqcdserzgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqn7ge40jwkslz0j0vhfzy743lathy2sqy2dfyyahalxszs979d9s5v89ten2zcrna3xlxhkerk7p9k7a6u5fdddx5dzzas4ye2yp6desq3zwkg2", + "payment_hash": "e0b5658ef8e23cab6546ea5f7794a8c760483abf3613b34f401df4128944afae", "status": "paid", "pay_index": 4, "amount_received_msat": 400000, - "paid_at": 1738510000, - "payment_preimage": "paymentpreimager010101010101010101010101010101010101010101010101", + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c1908377744ca985c1908377744ca985c1908377744ca985c19", "description": "l21 description", - "expires_at": 1739010000, + "expires_at": 1738604800, "created_index": 2, "updated_index": 4 }, { "label": "lbl_l22", - "bolt11": "lnbcrt100n1pnt2bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000", - "payment_hash": "paymenthashinvl0220022002200220022002200220022002200220022002200", + "bolt11": "lnbcrt2u1pne035qsp5u7glcpdagz8xcw9nw4t7xjhad5fjk9vu9h6s4da9tue6cj6x772spp52jyd84j7psgd4u2tp627hsrf9ntzptcjl3ywn03v4fdsehw4s2ysdqcdserygryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqdyykau6tf258sy2g5q94ma8jqthrs7zszaj2y4wj23dznnz5rcvxvxvkkv76uj076mz5std62p3gf2kvycq29t69345667cvs0pmvzsq4lawhd", + "payment_hash": "5488d3d65e0c10daf14b0e95ebc0692cd620af12fc48e9be2caa5b0cddd58289", "amount_msat": 200000, "status": "unpaid", "description": "l22 description", - "expires_at": 1739020000, - "created_index": 3, - "paid_at": 1738520000 + "expires_at": 1738604800, + "created_index": 3 }, { "label": "label inv_l24", - "bolt11": "lnbcrt100n1pnt2bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000", - "payment_hash": "paymenthashinvl0240024002400240024002400240024002400240024002400", + "bolt11": "lnbcrt1230n1pne035qsp5s2tkvc25q0p9qu5ghf6pal04thl4kl9q9jggx0fetq5tx7szc0gspp5mmpxzxv7tkpxjhvwyztwky6qlsw3umd87h7x7dvn0hck5t0lc84sdqlv3jhxcmjd9c8g6t0dcsxjmnktakrydqcqp99qxpqysgqa9q3g64xjfq3wqpyxn378zzs3grvlvhmpvtcedvzf0rq0ycu4xgr0ly93ut0wjdyfgfaldteev97qqt6q539qy7ktng4ylfj85kzmkqp5lsp6u", + "payment_hash": "dec261199e5d82695d8e2096eb1340fc1d1e6da7f5fc6f35937df16a2dffc1eb", "amount_msat": 123000, "status": "unpaid", "description": "description inv_l24", - "expires_at": 1739030000, - "created_index": 4, - "paid_at": 1738530000 + "expires_at": 1738003600, + "created_index": 4 }, { "label": "label inv_l25", - "bolt11": "lnbcrt100n1pnt2bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000", - "payment_hash": "paymenthashinvl0250025002500250025002500250025002500250025002500", + "bolt11": "lnbcrt1240n1pne035qsp590nuq4ek3zp48qm5rve22ye75jc6y564fh8qjrlr0j8at7egmtuqpp5ms3uy3duktelvxj02h6nrdzhge83uu5xumyrmxwu4akpezzv80hsdqlv3jhxcmjd9c8g6t0dcsxjmnktakrydgcqp99qxpqysgqad46gpve6njtqr9zsvrz8a56ndz953s88kedwuzge3d4tgv8gfk8u8al36nwmnchrkr7wwy7vc04fdvnewhusxcp457jucl5a5lt4dsqzr7sj8", + "payment_hash": "dc23c245bcb2f3f61a4f55f531b457464f1e7286e6c83d99dcaf6c1c884c3bef", "amount_msat": 124000, "status": "unpaid", "description": "description inv_l25", - "expires_at": 1739040000, - "created_index": 5, - "paid_at": 1738540000 + "expires_at": 1738003600, + "created_index": 5 + }, + { + "label": "label inv_l26", + "bolt11": "lnbcrt1250n1pne035qsp57thr33aj04aek8738nm42nntaydcaw4zswr047ja0gxy5sea8egqpp58veqg20enh8z5w8avz0jyznsfgnxdgs9km2mlugn62nvypjhwj5sdqlv3jhxcmjd9c8g6t0dcsxjmnktakrydscqp99qxpqysgq9569pf2lk3desk0xz8l90eeanhkz2j4e4yk8wlzwsy8efmm07mdn5n62ymlymt73yvxwyc4zuj45vwka2ta0rmntwxu4m2qp46h2yfcq5muart", + "payment_hash": "3b320429f99dce2a38fd609f220a704a2666a205b6d5bff113d2a6c2065774a9", + "amount_msat": 125000, + "status": "unpaid", + "description": "description inv_l26", + "expires_at": 1738003600, + "created_index": 6 + }, + { + "label": "lbl_l13", + "bolt11": "lnbcrt1u1pne035qsp5j9w8t9p2y6an5se63n3vkpp8c20vdsthtn78sv5t2lmt57l742wqpp5wtxkappzcsrlkmgfs6g0zyct0hkhashh7hsaxz7e65slq9fkx7fsdqcdscnxgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqdcqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgq2dmxu8vh2mmklw3vrq0dy4a69v7ga4mauty4cswwga4j4ahx797sjtzpj0qty3qkxcvw3nndx8f9v9230y4sjyf298m6uwz8thz9rpcqz05u35", + "payment_hash": "72cd6e8422c407fb6d098690f1130b7ded7ec2f7f5e1d30bd9d521f015363793", + "amount_msat": 100000, + "status": "unpaid", + "description": "l13 description", + "expires_at": 1738604800, + "created_index": 7 + }, + { + "label": "test_injectpaymentonion1", + "bolt11": "lnbcrt10n1pne035qsp5qwyv8rs63ramlntxnjyqfyl3usj9fcvw2wcekvssera3c674p2aspp5layccvcq3q020g7qgxf7g0cjx3zvv3rxyqypprpry2w6x5gmahgsdp6w3jhxapqd9hx5etrw3cxz7tdv4h8gmmwd9hkuvfqv3jhxcmjd9c8g6t0dcxqyjw5qcqp99qxpqysgqanlwwp0fnysrz8wgx44kdupzfv4l9x0l8daxa9zyqcwwx4de5rv4s3udrmgc6w03dtn0h3kcvwhv602fpryz06wrnk9k5d5z6qtx4mqqyhqgf2", + "payment_hash": "ff498c3300881ea7a3c04193e43f123444c644662008108c23229da3511bedd1", + "amount_msat": 1000, + "status": "paid", + "pay_index": 2, + "amount_received_msat": 1000, + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c1e08377744ca985c1e08377744ca985c1e08377744ca985c1e", + "description": "test injectpaymentonion1 description", + "expires_at": 1738604800, + "created_index": 8, + "updated_index": 2 + }, + { + "label": "lbl_l23", + "bolt11": "lnbcrt1pne035qsp5hu0s83c7qg77lgtagcr58sf07fvrqf27j67s2ptguw9wk8ruexfqpp50ge88lv20ge4a9ny7xc7rg8p6vqvnuuzwllkk2zng6txu7sfz3cqdqcdserxgryv4ekxunfwp6xjmmwxqyjw5qcqp99qxpqysgqrwjd83fygx3zcnupx0ftnpewajss6n4vpsugju00w8hu5lu0neujqhgw8jygwmawz8jq8pp2xu6r78f3m9yld6ky7539x5g5ahvtmqqqmgfjaa", + "payment_hash": "7a3273fd8a7a335e9664f1b1e1a0e1d300c9f38277ff6b285346966e7a091470", + "status": "paid", + "pay_index": 3, + "amount_received_msat": 9900, + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c1f08377744ca985c1f08377744ca985c1f08377744ca985c1f", + "description": "l23 description", + "expires_at": 1738604800, + "created_index": 9, + "updated_index": 3 + }, + { + "label": "dca9774ba2925b48c42eb12e599c09389d9d80d44445c4d0c944556c7228746e-03fffc5282760e7e56157aedd5df38ca6d4ea2973e2e7cfcda243ac89dd7cd6461-0", + "bolt12": "lni1qqgvq8khp6uam2tfcq0dwr4emk5kjq3qqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy8ssq38zq9q53nfwd5zqumpd3jjz93pqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4j5pqqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy84gqzcyyplllzjsfmquljkz4awm4wl8r9x6n4zjulzul8umgjr4jya6lxkgc2ez32xsctwddejqen0wgs8g6r9ypnxjumgyxsfsq3dygmzpg6e53ll0aavg37gt3rvjg762vufygdqq4xprs0regcatyp6swcycfh92s4s0p3wl6j0xj7pa7egpvvw2gq9z4sc376mekc9vacpqvzl0njg9k5sfn0pxlx4au5s95yhxczx2fah5zzmnfg9kvzdle5avqpj4l72lall4s8xrfvpu9f4xapfxl08j964jswavxw0exauk50zhw2l5alvyfucu82fx6qlszy7gett90z85gwqqqqqqqqqqqqqqqzsqqqqqqqqqqqqr5jt9hav2gqqqqqq5szx097xsz5zphg5v7yg8wedzgpk7h6dzc7vlw9h2wfa6dmzrey9m6fkeh89uz684gpzwy9wqvpqqq9syypz6g3kyz34nfrl7lm6c3rushzxey3a55ecjgs6qp2vz8q78j336k0sgzsvy6lf3le6zmjl4254r4xxf0urw8dky5d2dwtwjzt8ec7hg6jh88kx88fru0fhvxfjkje7ccg6qg5zv7dm64zxttg7epxx4yyw90c3", + "payment_hash": "dd14678883bb2d12036f5f4d163ccfb8b75393dd37621e485de936cdce5e0b47", + "amount_msat": 10000, + "status": "unpaid", + "description": "Fish sale!", + "expires_at": 1738007200, + "local_offer_id": "dca9774ba2925b48c42eb12e599c09389d9d80d44445c4d0c944556c7228746e", + "invreq_payer_note": "Thanks for the fish!", + "created_index": 10 + }, + { + "label": "f901018768e13ea2da95f437749e24d22d47b2a6ea3030ef66ae0281df49d94b-02a95c517b37d4fe9046a9b2ac79d125d1feb169fc81f906af620fb3c35803c3ee-0", + "bolt12": "lni1qqgvq8khp6uam2ttcq0dwr4emk5kkq3qqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy8ssqc0gfqq5pjrdanxvet9zsqs593pqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4j5pqqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy84yqc7sjq9gqzkqyp9sggz49w9z7eh6nlfq34fk2k8n5f968ltz60us8usdtmzp7euxkqrc0h2pxqz953rvg9rtxj8lalh43z8epwydjfrmffn3y3p5qz5cywpu09rr4vs92azp4mahnnht95k3j5c8gegy3003d45pkz0gawdj82vt7eqvpk8qypn2rsgaytxvr0nnhkwhjgeq5u2vavm8hm6muxlpl7pe57v99fwm3qqxt472dkvvw27qy6992kvqc5ztgfv20w3uy5swlraheles4havnkg7nafrqr0ej8m4gakh9n338xa86784w3pcqqqqqqqqqqqqqqq2qqqqqqqqqqqqqwjfvkl43fqqqqqqzjqgeuhc6q2sg94wlwt9m7hlq7gljm764vv7dureaqxklvgmjzlq9hxe8jxlaa4064qx85yszhqxqsqqzczzq3dygmzpg6e53ll0aavg37gt3rvjg762vufygdqq4xprs0regcat8cyq8h97cpp3rznnvtvsmu0lzvfgu3c39z7t5m4f9t4w62kt0zqy4yxajhdrqh0g6th0rfhxk583zxllzukn4h3426dxp005n8mpwc6pl3s", + "payment_hash": "b577dcb2efd7f83c8fcb7ed558cf3783cf406b7d88dc85f016e6c9e46ff7b57e", + "amount_msat": 2000000, + "status": "unpaid", + "description": "Coffee", + "expires_at": 1738007200, + "local_offer_id": "f901018768e13ea2da95f437749e24d22d47b2a6ea3030ef66ae0281df49d94b", + "created_index": 11 + }, + { + "label": "inv1", + "bolt11": "lnbcrt10n1pne035qsp507am6rmsdfe5vsutmpt77ldp5r9k9pkreya4zuxquatt3vy3s5zqpp5nge7gvl6mhpnw8m22635z3kgyc5a2e6jphd09qjyhk03jc5g4acsdq8d9h8vvgxqyjw5qcqp99qxpqysgq6l4n2kmhhu3y78cmhwn8davtxlc9cd050hldsdk55p30nxav2xcsv0x5u8ccznpcq6akj5c2u7fnceuzg5rvnjcq4sfgc4n0ukklc7sq2e0gtf", + "payment_hash": "9a33e433faddc3371f6a56a34146c82629d567520ddaf28244bd9f196288af71", + "amount_msat": 1000, + "status": "paid", + "pay_index": 9, + "amount_received_msat": 1000, + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c2008377744ca985c2008377744ca985c2008377744ca985c20", + "description": "inv1", + "expires_at": 1738604800, + "created_index": 12, + "updated_index": 9 + }, + { + "label": "inv2", + "bolt11": "lnbcrt20n1pne035qsp5793kaek9ahcmxn00ttvkmrhafa5v33wtju4dz5lvyjr0pwwgdd2qpp59gjcv8c4v9yzt00az4x5yg6z79v5gmcd2nwzf6pct5c4yqprlr9sdq8d9h8vvsxqyjw5qcqp99qxpqysgq7ygtu605e0yx749rczhlqaw4crl746rmzc3nkpxn5vrey34m2uxx0658c3e85gvvdcp8r5nlfdnxspl9tlj5xhckrx5vszxxa4zneggp8dynay", + "payment_hash": "2a25861f15614825bdfd154d422342f159446f0d54dc24e8385d31520023f8cb", + "amount_msat": 2000, + "status": "paid", + "pay_index": 5, + "amount_received_msat": 2000, + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c2108377744ca985c2108377744ca985c2108377744ca985c21", + "description": "inv2", + "expires_at": 1738604800, + "created_index": 13, + "updated_index": 5 + }, + { + "label": "inv3", + "bolt11": "lnbcrt30n1pne035qsp588xrpk37hul6xfyr8u6lkyggh0mkvfzhyex8wwts7dpckxt2j2yspp5x63je8t7u7a0ts2arwdj05y9mn5ud9lmgf7see5rg2kvuq8ptphsdq8d9h8vvcxqyjw5qcqp99qxpqysgqw97pk464fhkxp6umgtzhh3njznhnw06cwun58szk06v7a2wvvppz6kg95ufarq443nrqgue6u3s59up4tqkmm943pfyp3hqutx6vgugqgd8jsu", + "payment_hash": "36a32c9d7ee7baf5c15d1b9b27d085dce9c697fb427d0ce68342acce00e1586f", + "amount_msat": 3000, + "status": "paid", + "pay_index": 6, + "amount_received_msat": 3000, + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c2208377744ca985c2208377744ca985c2208377744ca985c22", + "description": "inv3", + "expires_at": 1738604800, + "created_index": 14, + "updated_index": 6 + }, + { + "label": "inv4", + "bolt11": "lnbcrt40n1pne035qsp5q4tjztd7kdgg22eewphyfcf3ew9ag6d53nsm3yfu8280ygsxnp3qpp5pxtrqa9tplpcq38cjrrk83jcul4ylze3ej70c6spjytr7hxugdsqdq8d9h8vdqxqyjw5qcqp99qxpqysgq0g9jk5lpfjyg6ryulnhav6qsfmua9uajgkpa8cl4k9mrds0wdavqd8sg26us9gr93uvnz8s9znmyk2g3sytgqgfl6ych0re7sujky3sq78nj5l", + "payment_hash": "09963074ab0fc38044f890c763c658e7ea4f8b31ccbcfc6a0191163f5cdc4360", + "amount_msat": 4000, + "status": "paid", + "pay_index": 8, + "amount_received_msat": 4000, + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c2308377744ca985c2308377744ca985c2308377744ca985c23", + "description": "inv4", + "expires_at": 1738604800, + "created_index": 15, + "updated_index": 8 + }, + { + "label": "inv5", + "bolt11": "lnbcrt50n1pne035qsp59qq7k6yprpf2hw49aqqx6tcv4dhldr4jh8r45n8vk9deyff2q55spp53cl2r7exu0j7scnsvnngusj8z03njd6jg4lluxd9vhl22nmrqltqdq8d9h8vdgxqyjw5qcqp99qxpqysgqcrnpc3ms8p3nqzyvfp5y0l78nlgm3lexm0v5xty0yd9fudk5mk8ydzvkfuxuef74cytlajjj6ykjsannfdapna7xudpf4xwtauhvcrqqxkwwsq", + "payment_hash": "8e3ea1fb26e3e5e8627064e68e424713e3393752457ffe19a565fea54f6307d6", + "amount_msat": 5000, + "status": "paid", + "pay_index": 7, + "amount_received_msat": 5000, + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c2408377744ca985c2408377744ca985c2408377744ca985c24", + "description": "inv5", + "expires_at": 1738604800, + "created_index": 16, + "updated_index": 7 } ] } @@ -22651,14 +23811,14 @@ "id": "example:listnodes#1", "method": "listnodes", "params": { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303" + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d" } }, "response": { "nodes": [ { - "nodeid": "nodeid030303030303030303030303030303030303030303030303030303030303", - "alias": "HOPPINGFIRE", + "nodeid": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "alias": "HOPPINGFIRE-v25.12", "color": "035d2b", "last_timestamp": 1738000000, "features": "8898882a8a59a1", @@ -22676,34 +23836,34 @@ "response": { "nodes": [ { - "nodeid": "nodeid020202020202020202020202020202020202020202020202020202020202", - "alias": "SILENTARTIST", + "nodeid": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "alias": "SILENTARTIST-v25.12", "color": "022d22", "last_timestamp": 1738000000, "features": "8898882a8a59a1", "addresses": [] }, { - "nodeid": "nodeid010101010101010101010101010101010101010101010101010101010101", - "alias": "JUNIORBEAM", + "nodeid": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "alias": "JUNIORBEAM-v25.12", "color": "0266e4", - "last_timestamp": 1738010000, + "last_timestamp": 1738000000, "features": "8898882a8a59a1", "addresses": [] }, { - "nodeid": "nodeid030303030303030303030303030303030303030303030303030303030303", - "alias": "HOPPINGFIRE", + "nodeid": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "alias": "HOPPINGFIRE-v25.12", "color": "035d2b", - "last_timestamp": 1738020000, + "last_timestamp": 1738000000, "features": "8898882a8a59a1", "addresses": [] }, { - "nodeid": "nodeid040404040404040404040404040404040404040404040404040404040404", - "alias": "JUNIORFELONY", + "nodeid": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "alias": "JUNIORFELONY-v25.12", "color": "0382ce", - "last_timestamp": 1738030000, + "last_timestamp": 1738000000, "features": "8898882a8a59a1", "addresses": [] } @@ -22823,24 +23983,24 @@ "response": { "offers": [ { - "offer_id": "offeridl21000002100000210000021000002100000210000021000002100000", + "offer_id": "b791f88cebf775853112c30828e116487f4d6c252d669372532b468bc7de8a24", "active": true, "single_use": false, - "bolt12": "lno1qgsq000bolt210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000", + "bolt12": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqv0gfqq2zp8kven9wgs8gmeqg35hxctzd3j3vggz953rvg9rtxj8lalh43z8epwydjfrmffn3y3p5qz5cywpu09rr4vs", "used": false }, { - "offer_id": "offeridl22000002200000220000022000002200000220000022000002200000", + "offer_id": "dca9774ba2925b48c42eb12e599c09389d9d80d44445c4d0c944556c7228746e", "active": true, "single_use": false, - "bolt12": "lno1qgsq000bolt220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000", + "bolt12": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqgn3qzs2ge5hx6pqwdskcefpzcssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e", "used": false }, { - "offer_id": "offeridl23000002300000230000023000002300000230000023000002300000", + "offer_id": "f901018768e13ea2da95f437749e24d22d47b2a6ea3030ef66ae0281df49d94b", "active": true, "single_use": false, - "bolt12": "lno1qgsq000bolt230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000", + "bolt12": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqv85ysq2qepk7enxv4j3gqg2zcssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e", "used": false } ] @@ -22851,16 +24011,16 @@ "id": "example:listoffers#2", "method": "listoffers", "params": [ - "offeridl23000002300000230000023000002300000230000023000002300000" + "b791f88cebf775853112c30828e116487f4d6c252d669372532b468bc7de8a24" ] }, "response": { "offers": [ { - "offer_id": "offeridl23000002300000230000023000002300000230000023000002300000", + "offer_id": "b791f88cebf775853112c30828e116487f4d6c252d669372532b468bc7de8a24", "active": true, "single_use": false, - "bolt12": "lno1qgsq000bolt230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000", + "bolt12": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqv0gfqq2zp8kven9wgs8gmeqg35hxctzd3j3vggz953rvg9rtxj8lalh43z8epwydjfrmffn3y3p5qz5cywpu09rr4vs", "used": false } ] @@ -23149,7 +24309,7 @@ "id": "example:listpays#1", "method": "listpays", "params": { - "bolt11": "lnbcrt100n1pnt2bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000" + "bolt11": "lnbcrt500n1pne035qsp5kk6w4wjl0wudssp0pze5lgkz9hcav6ql523hjxc92knt398y2csqpp54va949c65wepf98heejx7pmjxtqsexghcvehty6urt4l54cl5xssdqcdsenygryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqgrjzax5dyj6dqqhgrt7t53hrmw4xvjs56kdy450c8jdv53fzf3n4kmersmgydpyyam87jrnu9wrcn78zy6w53zx3lqv45js6sa6rspqqa07y46" } }, "response": { @@ -23163,7 +24323,99 @@ "params": {} }, "response": { - "pays": [] + "pays": [ + { + "bolt11": "lnbcrt5m1pne035qsp53ecfkxsrle7hea7ckvd62cdjyvq3r9vp8dj88fwawl220ljmda3spp57cdw7qf92ltyje5evsh8rc46ekjkwz6nwlrr2layqjzcz0avcc5qdpcv3jhxcmjd9c8g6t0dcs8xetwvss8xmmdv5s8xct5wvsxcv3qw3hjqmpnxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgq5ang73w7jamq8nwwceyutacvktrm59qclwnrdd54q4qcr8a5n9r9jnxvg4k3s80frd3lt4tcv4dxz4yhsewnp8ujjd50mgevtwz4wmcq7glcsk", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "payment_hash": "f61aef012557d6496699642e71e2bacda5670b5377c6357fa40485813facc628", + "status": "complete", + "created_at": 1738000000, + "completed_at": 1738000000, + "preimage": "83ffe698292fbb5e83ffe698292fbb5e83ffe698292fbb5e83ffe698292fbb5e", + "amount_msat": 500000000, + "amount_sent_msat": 500000000, + "created_index": 1, + "updated_index": 1 + }, + { + "bolt11": "lnbcrt5m1pne035qsp5qu4w4mj43n9up0ze7cq39rrqd7aqygw82cyma64mnzne69kzphfqpp57edpmeu5yea7xpxezhtq4yjh6t50g0e739lx399kr9ynunpqm98qdpcv3jhxcmjd9c8g6t0dcs8xetwvss8xmmdv5s8xct5wvsxcv3qw3hjqmp4xqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jcjsnr9ygaehpqqqqqqpqqqqqzsqqc9qxpqysgqsm86gyada8m86wr0sz33tnclnyawtvtaegqhdwcwyrzu0p8hxuuxyh9teph87urkxu4g7x4ug4gjswahjwfjufl22msvlv7mv790z6gp9vrhs7", + "destination": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e", + "payment_hash": "f65a1de794267be304d915d60a9257d2e8f43f3e897e6894b619493e4c20d94e", + "status": "complete", + "created_at": 1738000000, + "completed_at": 1738000000, + "preimage": "58148cd7e5a50ca858148cd7e5a50ca858148cd7e5a50ca858148cd7e5a50ca8", + "amount_msat": 500000000, + "amount_sent_msat": 500000000, + "created_index": 2, + "updated_index": 2 + }, + { + "bolt11": "lnbcrt1u1pne035qsp5xl6xj5nrlrwfadkw89p0htfcqlkt0qrnykpc4kh3vlyr69cglv5qpp59v2rfk0xrknvtuf9yd5lf2vwrhwwwg45mvalz42nhpaff5vax5wsdqcdsenxgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgq04xpv4pju07a2mt3d02rf5u8ptj8h8vy7qxtc74z6y609x8rwrkhvq2elv8v5mrwac42scc70c7nnyu4xrxu9c8wcsync9dd5dnqdfqqrngrdv", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "payment_hash": "2b1434d9e61da6c5f1252369f4a98e1ddce722b4db3bf15553b87a94d19d351d", + "status": "complete", + "created_at": 1738000000, + "completed_at": 1738000000, + "preimage": "83ffe698292fbb6183ffe698292fbb6183ffe698292fbb6183ffe698292fbb61", + "amount_msat": 100000, + "amount_sent_msat": 100000, + "created_index": 3, + "updated_index": 3 + }, + { + "bolt12": "lni1qqg99gqg2990zl3322sqs52279lrzzst2d5k6urvv5s8getnw3gzqp3zderpzxstt8927ynqg044h0egcd8n5h3n9g0u0v4h8ncc3yg02gps7sjqtqssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e5zvqyehytxx360zptatj4pygsv9kpal8gnkeyd0tpvd6jv5rkv2uqdgcq204pv4whvd37qg3dg48n0nudvgfw0du46nveyle5q4a2tvru2g4gqgrstm06rld7qk9d5sjtajxztd0lua3zfujsv8lve3wg9px5f34c4wqqvh4pp0dfkr98pur2v55d6ae3cakhn6s9jxn8waf9l00g06g236ymyefu6engjwaqsj4w7cgpkg9naq6kf4zrsqqqqqqqqqqqqqqq5qqqqqqqqqqqqqayjedltzjqqqqqq9yq3ne035q5cq442pqemw8hu9fzzda8nvxcksvjra2sy4c5r9r6et8rj95qqd2ufj8xj065qc0gfq2uqczqqqtqggzvmj9nrga83q474e2sjygxzmq7ln5fmvjxh4skxafx2pmx9wqx5v0qsxsy7vmh0323083refvd9fwvm7r5klg8hjftuqqzygswxl9lfkvlcj72lhlw643qv2gwmfadfydpdwvhydnvgnxmhlgjaxd7nw06y7rx", + "destination": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "payment_hash": "cedc7bf0a9109bd3cd86c5a0c90faa812b8a0ca3d65671c8b4001aae2647349f", + "status": "complete", + "created_at": 1738000000, + "completed_at": 1738000000, + "preimage": "c01ed70eb9ddb906c01ed70eb9ddb906c01ed70eb9ddb906c01ed70eb9ddb906", + "amount_msat": 1000000, + "amount_sent_msat": 1000000, + "created_index": 4, + "updated_index": 4 + }, + { + "bolt11": "lnbcrt1pne035qsp5hu0s83c7qg77lgtagcr58sf07fvrqf27j67s2ptguw9wk8ruexfqpp50ge88lv20ge4a9ny7xc7rg8p6vqvnuuzwllkk2zng6txu7sfz3cqdqcdserxgryv4ekxunfwp6xjmmwxqyjw5qcqp99qxpqysgqrwjd83fygx3zcnupx0ftnpewajss6n4vpsugju00w8hu5lu0neujqhgw8jygwmawz8jq8pp2xu6r78f3m9yld6ky7539x5g5ahvtmqqqmgfjaa", + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "payment_hash": "7a3273fd8a7a335e9664f1b1e1a0e1d300c9f38277ff6b285346966e7a091470", + "status": "complete", + "created_at": 1738000000, + "completed_at": 1738000000, + "preimage": "08377744ca985c1f08377744ca985c1f08377744ca985c1f08377744ca985c1f", + "amount_msat": 9900, + "amount_sent_msat": 9900, + "created_index": 5, + "updated_index": 5 + }, + { + "bolt11": "lnbcrt40n1pne035qsp5pwtnqs2trxfwwkl8vaycu6fmvud0edagevz4eahvy6ls30u7cfrqpp52wnj6qrv99d6cte0s8ntstwkwxf42ksct8mujruyv7940nndzr3qdqaveskjmr9vssxgetnvdexjur5d9hkuxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgq6sh90jk5uuccyzrdlnd5xyd92hxre78kupcpmlg0uerm35855xlklh5zlsmahpad6x8cv4ky2u6p394p270vyetlzx2u6ypyg22xn0qq0z6fuh", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "payment_hash": "53a72d006c295bac2f2f81e6b82dd67193555a1859f7c90f84678b57ce6d10e2", + "status": "complete", + "created_at": 1738000000, + "completed_at": 1738000000, + "preimage": "83ffe698292fbb6283ffe698292fbb6283ffe698292fbb6283ffe698292fbb62", + "amount_msat": 4000, + "amount_sent_msat": 4000, + "created_index": 6, + "updated_index": 6 + }, + { + "bolt11": "lnbcrt5m1pne035qsp5qv7vwr9zt8sq94wzqdy2sg2cdddqfgh93vvsvfuxk0rdse47layqpp5z8v4uystpd9mvgwxm4zzr9w0q3dqep398jpkn6fdr24f2umgxcvqdpcv3jhxcmjd9c8g6t0dcs8xetwvss8xmmdv5s8xct5wvsxcv3qw3hjqmp5xqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqq5qqqqqgqqyqqqqqpqqqqqzsqqc9qxpqysgq9rl64vhvye4p8er9mld6jhuw56e0uf62w2r69e93hdy7js8a8y59esgp5ze7r9lnpt26tyh437t9c9g3m02eulm9fjrxepkghvvwyncp7wn4n3", + "destination": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "payment_hash": "11d95e120b0b4bb621c6dd442195cf045a0c86253c8369e92d1aaa9573683618", + "status": "complete", + "created_at": 1738000000, + "completed_at": 1738000000, + "preimage": "a23af6838ba877f9a23af6838ba877f9a23af6838ba877f9a23af6838ba877f9", + "amount_msat": 500000000, + "amount_sent_msat": 500000000, + "created_index": 7, + "updated_index": 7 + } + ] } } ] @@ -24626,13 +25878,13 @@ "id": "example:listpeerchannels#1", "method": "listpeerchannels", "params": { - "id": "nodeid020202020202020202020202020202020202020202020202020202020202" + "id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" } }, "response": { "channels": [ { - "peer_id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "peer_id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "peer_connected": true, "reestablished": true, "channel_type": { @@ -24661,9 +25913,9 @@ "fee_proportional_millionths": 10 } }, - "last_stable_connection": 1738510000, + "last_stable_connection": 1738000000, "state": "CHANNELD_NORMAL", - "scratch_txid": "scratchid1010101010101010101010101010101010101010101010101010101", + "scratch_txid": "f8042b0e29badb6450d57a8065a9c05d1a86cb8cd43d775d23bd3c8e3d180bd7", "last_tx_fee_msat": 4867000, "lost_state": false, "feerate": { @@ -24671,43 +25923,42 @@ "perkb": 15020 }, "owner": "channeld", - "short_channel_id": "109x1x1", - "direction": 1, - "channel_id": "channelid0120000120000120000120000120000120000120000120000120000", - "funding_txid": "channeltxid120000120000120000120000120000120000120000120000120000", - "funding_outnum": 1, - "close_to_addr": "bcrt1p8c0ku4mpxq3443rss8e6rjwamztvv8yxvmxtetal5d0n6v39rlwqvfqy6n", - "close_to": "51203e1f6e576130235ac47081f3a1c9ddd896c61c8666ccbcafbfa35f3d32251fdc", + "short_channel_id": "110x1x0", + "direction": 0, + "channel_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "funding_txid": "63f74346eda6b8620ec24f86e2f8982ef3dade95f8efd00b372a75b2893b6f0d", + "funding_outnum": 0, + "close_to_addr": "bcrt1pmeuewfgl24n06v9868kts5v92494zexrvg0hc0sdmgwwnxm6t9sqdwfqjx", + "close_to": "5120de7997251f5566fd30a7d1ecb85185554b5164c3621f7c3e0dda1ce99b7a5960", "private": false, - "opener": "local", + "opener": "remote", "alias": { - "local": "30000001x60000001x60001", - "remote": "10000001x20000001x30001" + "local": "6312088x13255799x14088", + "remote": "5597735x1767569x15541" }, "features": [ "option_static_remotekey", - "option_anchors_zero_fee_htlc_tx", "option_anchors" ], "funding": { - "local_funds_msat": 1000000000, - "remote_funds_msat": 0, + "local_funds_msat": 0, + "remote_funds_msat": 1000000000, "pushed_msat": 0 }, - "to_us_msat": 390492790, - "min_to_us_msat": 390492790, - "max_to_us_msat": 1000000000, + "to_us_msat": 609507210, + "min_to_us_msat": 0, + "max_to_us_msat": 609507210, "total_msat": 1000000000, "fee_base_msat": 1, "fee_proportional_millionths": 10, "dust_limit_msat": 546000, - "max_total_htlc_in_msat": 18446744073709552000, - "their_max_htlc_value_in_flight_msat": 18446744073709552000, - "our_max_htlc_value_in_flight_msat": 18446744073709552000, + "max_total_htlc_in_msat": 18446744073709551615, + "their_max_htlc_value_in_flight_msat": 18446744073709551615, + "our_max_htlc_value_in_flight_msat": 18446744073709551615, "their_reserve_msat": 10000000, "our_reserve_msat": 10000000, - "spendable_msat": 363951708, - "receivable_msat": 599507210, + "spendable_msat": 599507210, + "receivable_msat": 363951708, "minimum_htlc_in_msat": 0, "minimum_htlc_out_msat": 0, "maximum_htlc_out_msat": 990000000, @@ -24716,39 +25967,39 @@ "max_accepted_htlcs": 483, "state_changes": [ { - "timestamp": "2024-10-10T00:01:00.000Z", + "timestamp": "2025-01-27T17:46:40.000Z", "old_state": "DUALOPEND_OPEN_COMMITTED", "new_state": "DUALOPEND_AWAITING_LOCKIN", - "cause": "user", + "cause": "remote", "message": "Sigs exchanged, waiting for lock-in" }, { - "timestamp": "2024-10-10T00:02:00.000Z", + "timestamp": "2025-01-27T17:46:40.000Z", "old_state": "DUALOPEND_AWAITING_LOCKIN", "new_state": "CHANNELD_NORMAL", - "cause": "user", + "cause": "remote", "message": "Lockin complete" } ], "status": [ "CHANNELD_NORMAL:Channel ready for use." ], - "in_payments_offered": 1, - "in_offered_msat": 1000000, - "in_payments_fulfilled": 1, - "in_fulfilled_msat": 1000000, - "out_payments_offered": 22, - "out_offered_msat": 665528797, - "out_payments_fulfilled": 16, - "out_fulfilled_msat": 610507210, + "in_payments_offered": 22, + "in_offered_msat": 665528797, + "in_payments_fulfilled": 16, + "in_fulfilled_msat": 610507210, + "out_payments_offered": 1, + "out_offered_msat": 1000000, + "out_payments_fulfilled": 1, + "out_fulfilled_msat": 1000000, "htlcs": [ { - "direction": "out", + "direction": "in", "id": 17, "amount_msat": 4000082, - "expiry": 181, - "payment_hash": "paymenthashdelpay30303030303030303030303030303030303030303030303", - "state": "SENT_ADD_ACK_REVOCATION" + "expiry": 182, + "payment_hash": "2b924194d169a96d9cc35b66ae912507e18ace9ef679fcb5324636ff73be410a", + "state": "RCVD_ADD_ACK_REVOCATION" } ] } @@ -24764,7 +26015,7 @@ "response": { "channels": [ { - "peer_id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "peer_id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "peer_connected": true, "reestablished": true, "channel_type": { @@ -24793,9 +26044,9 @@ "fee_proportional_millionths": 10 } }, - "last_stable_connection": 1738520000, + "last_stable_connection": 1738000000, "state": "CHANNELD_NORMAL", - "scratch_txid": "scratchid2020202020202020202020202020202020202020202020202020202", + "scratch_txid": "f8042b0e29badb6450d57a8065a9c05d1a86cb8cd43d775d23bd3c8e3d180bd7", "last_tx_fee_msat": 4867000, "lost_state": false, "feerate": { @@ -24803,22 +26054,142 @@ "perkb": 15020 }, "owner": "channeld", - "short_channel_id": "109x1x1", - "direction": 1, - "channel_id": "channelid0120000120000120000120000120000120000120000120000120000", - "funding_txid": "channeltxid120000120000120000120000120000120000120000120000120000", + "short_channel_id": "110x1x0", + "direction": 0, + "channel_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "funding_txid": "63f74346eda6b8620ec24f86e2f8982ef3dade95f8efd00b372a75b2893b6f0d", + "funding_outnum": 0, + "close_to_addr": "bcrt1pmeuewfgl24n06v9868kts5v92494zexrvg0hc0sdmgwwnxm6t9sqdwfqjx", + "close_to": "5120de7997251f5566fd30a7d1ecb85185554b5164c3621f7c3e0dda1ce99b7a5960", + "private": false, + "opener": "remote", + "alias": { + "local": "6312088x13255799x14088", + "remote": "5597735x1767569x15541" + }, + "features": [ + "option_static_remotekey", + "option_anchors" + ], + "funding": { + "local_funds_msat": 0, + "remote_funds_msat": 1000000000, + "pushed_msat": 0 + }, + "to_us_msat": 609507210, + "min_to_us_msat": 0, + "max_to_us_msat": 609507210, + "total_msat": 1000000000, + "fee_base_msat": 1, + "fee_proportional_millionths": 10, + "dust_limit_msat": 546000, + "max_total_htlc_in_msat": 18446744073709551615, + "their_max_htlc_value_in_flight_msat": 18446744073709551615, + "our_max_htlc_value_in_flight_msat": 18446744073709551615, + "their_reserve_msat": 10000000, + "our_reserve_msat": 10000000, + "spendable_msat": 599507210, + "receivable_msat": 363951708, + "minimum_htlc_in_msat": 0, + "minimum_htlc_out_msat": 0, + "maximum_htlc_out_msat": 990000000, + "their_to_self_delay": 5, + "our_to_self_delay": 5, + "max_accepted_htlcs": 483, + "state_changes": [ + { + "timestamp": "2025-01-27T17:46:40.000Z", + "old_state": "DUALOPEND_OPEN_COMMITTED", + "new_state": "DUALOPEND_AWAITING_LOCKIN", + "cause": "remote", + "message": "Sigs exchanged, waiting for lock-in" + }, + { + "timestamp": "2025-01-27T17:46:40.000Z", + "old_state": "DUALOPEND_AWAITING_LOCKIN", + "new_state": "CHANNELD_NORMAL", + "cause": "remote", + "message": "Lockin complete" + } + ], + "status": [ + "CHANNELD_NORMAL:Channel ready for use." + ], + "in_payments_offered": 22, + "in_offered_msat": 665528797, + "in_payments_fulfilled": 16, + "in_fulfilled_msat": 610507210, + "out_payments_offered": 1, + "out_offered_msat": 1000000, + "out_payments_fulfilled": 1, + "out_fulfilled_msat": 1000000, + "htlcs": [ + { + "direction": "in", + "id": 17, + "amount_msat": 4000082, + "expiry": 182, + "payment_hash": "2b924194d169a96d9cc35b66ae912507e18ace9ef679fcb5324636ff73be410a", + "state": "RCVD_ADD_ACK_REVOCATION" + } + ] + }, + { + "peer_id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "peer_connected": true, + "reestablished": true, + "channel_type": { + "bits": [ + 12, + 22 + ], + "names": [ + "static_remotekey/even", + "anchors/even" + ] + }, + "ignore_fee_limits": true, + "updates": { + "local": { + "htlc_minimum_msat": 0, + "htlc_maximum_msat": 990000000, + "cltv_expiry_delta": 6, + "fee_base_msat": 1, + "fee_proportional_millionths": 10 + }, + "remote": { + "htlc_minimum_msat": 0, + "htlc_maximum_msat": 990000000, + "cltv_expiry_delta": 6, + "fee_base_msat": 1, + "fee_proportional_millionths": 10 + } + }, + "last_stable_connection": 1738000000, + "state": "CHANNELD_NORMAL", + "scratch_txid": "3112fa1a0797156ebc8861de490811659c0526d66554188ea22e8abca8d69778", + "last_tx_fee_msat": 4867000, + "lost_state": false, + "feerate": { + "perkw": 3755, + "perkb": 15020 + }, + "owner": "channeld", + "short_channel_id": "124x1x1", + "direction": 0, + "channel_id": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3", + "funding_txid": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69", "funding_outnum": 1, - "close_to_addr": "bcrt1pcl00020002000200020002000200020002000200020002000200020002", - "close_to": "db2dec31020202020202020202020202020202020202020202020202020202020202", + "close_to_addr": "bcrt1pvn0zt2s8cv6shrtx8yd0zh90hwx4wpuqjrplfzpucnmde7kr4q3qx3fjfh", + "close_to": "512064de25aa07c3350b8d66391af15cafbb8d57078090c3f4883cc4f6dcfac3a822", "private": false, "opener": "local", "alias": { - "local": "30000002x60000002x60002", - "remote": "10000002x20000002x30002" + "local": "6508696x13255799x14088", + "remote": "9483055x2726118x65411" }, "features": [ "option_static_remotekey", - "option_anchors_zero_fee_htlc_tx", "option_anchors" ], "funding": { @@ -24826,20 +26197,20 @@ "remote_funds_msat": 0, "pushed_msat": 0 }, - "to_us_msat": 390492790, - "min_to_us_msat": 390492790, + "to_us_msat": 899996000, + "min_to_us_msat": 899996000, "max_to_us_msat": 1000000000, "total_msat": 1000000000, "fee_base_msat": 1, "fee_proportional_millionths": 10, "dust_limit_msat": 546000, - "max_total_htlc_in_msat": 18446744073709552000, - "their_max_htlc_value_in_flight_msat": 18446744073709552000, - "our_max_htlc_value_in_flight_msat": 18446744073709552000, + "max_total_htlc_in_msat": 18446744073709551615, + "their_max_htlc_value_in_flight_msat": 18446744073709551615, + "our_max_htlc_value_in_flight_msat": 18446744073709551615, "their_reserve_msat": 10000000, "our_reserve_msat": 10000000, - "spendable_msat": 363951708, - "receivable_msat": 599507210, + "spendable_msat": 873454959, + "receivable_msat": 90004000, "minimum_htlc_in_msat": 0, "minimum_htlc_out_msat": 0, "maximum_htlc_out_msat": 990000000, @@ -24848,14 +26219,14 @@ "max_accepted_htlcs": 483, "state_changes": [ { - "timestamp": "2024-10-10T00:01:00.000Z", + "timestamp": "2025-01-27T17:46:40.000Z", "old_state": "DUALOPEND_OPEN_COMMITTED", "new_state": "DUALOPEND_AWAITING_LOCKIN", "cause": "user", "message": "Sigs exchanged, waiting for lock-in" }, { - "timestamp": "2024-10-10T00:02:00.000Z", + "timestamp": "2025-01-27T17:46:40.000Z", "old_state": "DUALOPEND_AWAITING_LOCKIN", "new_state": "CHANNELD_NORMAL", "cause": "user", @@ -24865,27 +26236,27 @@ "status": [ "CHANNELD_NORMAL:Channel ready for use." ], - "in_payments_offered": 1, - "in_offered_msat": 1000000, - "in_payments_fulfilled": 1, - "in_fulfilled_msat": 1000000, - "out_payments_offered": 22, - "out_offered_msat": 665528797, - "out_payments_fulfilled": 16, - "out_fulfilled_msat": 610507210, + "in_payments_offered": 0, + "in_offered_msat": 0, + "in_payments_fulfilled": 0, + "in_fulfilled_msat": 0, + "out_payments_offered": 5, + "out_offered_msat": 154004041, + "out_payments_fulfilled": 3, + "out_fulfilled_msat": 100004000, "htlcs": [ { "direction": "out", - "id": 17, - "amount_msat": 4000082, - "expiry": 181, - "payment_hash": "paymenthashdelpay30303030303030303030303030303030303030303030303", + "id": 1, + "amount_msat": 4000041, + "expiry": 176, + "payment_hash": "2b924194d169a96d9cc35b66ae912507e18ace9ef679fcb5324636ff73be410a", "state": "SENT_ADD_ACK_REVOCATION" } ] }, { - "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "peer_id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "peer_connected": false, "channel_type": { "bits": [ @@ -24900,137 +26271,119 @@ "updates": { "local": { "htlc_minimum_msat": 0, - "htlc_maximum_msat": 19454000, + "htlc_maximum_msat": 990000000, + "cltv_expiry_delta": 6, + "fee_base_msat": 1, + "fee_proportional_millionths": 10 + }, + "remote": { + "htlc_minimum_msat": 0, + "htlc_maximum_msat": 990000000, "cltv_expiry_delta": 6, "fee_base_msat": 1, "fee_proportional_millionths": 10 } }, - "state": "ONCHAIN", - "scratch_txid": "scratchid2030303030303030303030303030303030303030303030303030303", - "last_tx_fee_msat": 2250000, + "state": "CLOSINGD_COMPLETE", + "scratch_txid": "8ef1ed98891f7cf81b74c330a68de9fcff802870f91cf04a69c5db02118bc78e", + "last_tx_fee_msat": 2895000, "lost_state": false, "feerate": { - "perkw": 3750, - "perkb": 15000 + "perkw": 3755, + "perkb": 15020 }, - "owner": "onchaind", + "short_channel_id": "160x1x1", "direction": 0, - "channel_id": "channelid1100011000110001100011000110001100011000110001100011000", - "funding_txid": "channeltxid01050000500005000050000500005000050000500005000050000", + "channel_id": "f4e1de801de57374d5737da622611e3a1ad9f16d5df9c30fceecc11ce732eeeb", + "funding_txid": "1c863d8172c0a588a7d34426b7249d4a939f04d4ca4bad6c28d5913ed2dff12a", "funding_outnum": 1, - "initial_feerate": "10000perkw", - "last_feerate": "10000perkw", - "next_feerate": "10416perkw", - "inflight": [ - { - "funding_txid": "channeltxid01050000500005000050000500005000050000500005000050000", - "funding_outnum": 1, - "feerate": "10000perkw", - "total_funding_msat": 20000000, - "our_funding_msat": 20000000, - "splice_amount": 0, - "scratch_txid": "scratchid2030303030303030303030303030303030303030303030303030303" - } - ], - "close_to_addr": "bcrt1pcl00030003000300030003000300030003000300030003000300030003", - "close_to": "db2dec31030303030303030303030303030303030303030303030303030303030303", + "close_to_addr": "bcrt1ptsrrl629uxs782qswfvy53xsequfry5nj56qt788a724y7y0jjlqxzv28f", + "close_to": "51205c063fe945e1a1e3a81072584a44d0c838919293953405f8e7ef9552788f94be", "private": false, "opener": "local", "closer": "local", "alias": { - "local": "30000003x60000003x60003", - "remote": "10000003x20000003x30003" + "local": "6574232x13255799x14088", + "remote": "1209512x9143286x15010" }, "features": [ "option_static_remotekey", - "option_anchors_zero_fee_htlc_tx", "option_anchors" ], "funding": { - "local_funds_msat": 20000000, + "local_funds_msat": 1000000000, "remote_funds_msat": 0, "pushed_msat": 0 }, - "to_us_msat": 20000000, - "min_to_us_msat": 20000000, - "max_to_us_msat": 20000000, - "total_msat": 20000000, + "to_us_msat": 500000000, + "min_to_us_msat": 500000000, + "max_to_us_msat": 1000000000, + "total_msat": 1000000000, "fee_base_msat": 1, "fee_proportional_millionths": 10, "dust_limit_msat": 546000, - "max_total_htlc_in_msat": 18446744073709552000, - "their_max_htlc_value_in_flight_msat": 18446744073709552000, - "our_max_htlc_value_in_flight_msat": 18446744073709552000, - "their_reserve_msat": 546000, - "our_reserve_msat": 546000, - "spendable_msat": 8172000, - "receivable_msat": 0, + "max_total_htlc_in_msat": 18446744073709551615, + "their_max_htlc_value_in_flight_msat": 18446744073709551615, + "our_max_htlc_value_in_flight_msat": 18446744073709551615, + "their_reserve_msat": 10000000, + "our_reserve_msat": 10000000, + "spendable_msat": 478705000, + "receivable_msat": 490000000, "minimum_htlc_in_msat": 0, "minimum_htlc_out_msat": 0, - "maximum_htlc_out_msat": 19454000, + "maximum_htlc_out_msat": 990000000, "their_to_self_delay": 5, "our_to_self_delay": 5, "max_accepted_htlcs": 483, "state_changes": [ { - "timestamp": "2024-10-10T00:01:00.000Z", + "timestamp": "2025-01-27T17:46:40.000Z", "old_state": "DUALOPEND_OPEN_COMMITTED", "new_state": "DUALOPEND_AWAITING_LOCKIN", "cause": "user", "message": "Sigs exchanged, waiting for lock-in" }, { - "timestamp": "2024-10-10T00:02:00.000Z", + "timestamp": "2025-01-27T17:46:40.000Z", "old_state": "DUALOPEND_AWAITING_LOCKIN", + "new_state": "CHANNELD_NORMAL", + "cause": "user", + "message": "Lockin complete" + }, + { + "timestamp": "2025-01-27T17:46:40.000Z", + "old_state": "CHANNELD_NORMAL", "new_state": "CHANNELD_SHUTTING_DOWN", "cause": "user", "message": "User or plugin invoked close command" }, { - "timestamp": "2024-10-10T00:03:00.000Z", + "timestamp": "2025-01-27T17:46:40.000Z", "old_state": "CHANNELD_SHUTTING_DOWN", "new_state": "CLOSINGD_SIGEXCHANGE", "cause": "user", "message": "Start closingd" }, { - "timestamp": "2024-10-10T00:04:00.000Z", + "timestamp": "2025-01-27T17:46:40.000Z", "old_state": "CLOSINGD_SIGEXCHANGE", "new_state": "CLOSINGD_COMPLETE", "cause": "user", "message": "Closing complete" - }, - { - "timestamp": "2024-10-10T00:05:00.000Z", - "old_state": "CLOSINGD_COMPLETE", - "new_state": "FUNDING_SPEND_SEEN", - "cause": "user", - "message": "Onchain funding spend" - }, - { - "timestamp": "2024-10-10T00:06:00.000Z", - "old_state": "FUNDING_SPEND_SEEN", - "new_state": "ONCHAIN", - "cause": "user", - "message": "Onchain init reply" } ], "status": [ - "CLOSINGD_SIGEXCHANGE:We agreed on a closing fee of 2250 satoshi for tx:scratchid2030303030303030303030303030303030303030303030303030303", - "ONCHAIN:Tracking mutual close transaction", - "ONCHAIN:All outputs resolved: waiting 96 more blocks before forgetting channel" + "CLOSINGD_SIGEXCHANGE:We agreed on a closing fee of 2895 satoshi for tx:8ef1ed98891f7cf81b74c330a68de9fcff802870f91cf04a69c5db02118bc78e" ], "in_payments_offered": 0, "in_offered_msat": 0, "in_payments_fulfilled": 0, "in_fulfilled_msat": 0, - "out_payments_offered": 0, - "out_offered_msat": 0, - "out_payments_fulfilled": 0, - "out_fulfilled_msat": 0, - "htlcs": [], - "last_stable_connection": 1738530000 + "out_payments_offered": 1, + "out_offered_msat": 500000000, + "out_payments_fulfilled": 1, + "out_fulfilled_msat": 500000000, + "htlcs": [] } ] } @@ -25369,17 +26722,17 @@ "id": "example:listpeers#1", "method": "listpeers", "params": { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303" + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d" } }, "response": { "peers": [ { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "connected": true, "num_channels": 1, "netaddr": [ - "127.0.0.1:19736" + "127.0.0.1:30005" ], "features": "0898882a8a59a1" } @@ -25395,25 +26748,25 @@ "response": { "peers": [ { - "id": "nodeid010101010101010101010101010101010101010101010101010101010101", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "connected": true, "num_channels": 1, "netaddr": [ - "127.0.0.1:19734" + "127.0.0.1:30005" ], "features": "0898882a8a59a1" }, { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "connected": true, "num_channels": 1, "netaddr": [ - "127.0.0.1:19736" + "127.0.0.1:54321" ], "features": "0898882a8a59a1" }, { - "id": "nodeid040404040404040404040404040404040404040404040404040404040404", + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "connected": false, "num_channels": 1, "features": "0898882a8a59a1" @@ -25771,7 +27124,7 @@ "id": "example:listsendpays#1", "method": "listsendpays", "params": { - "bolt11": "lnbcrt100n1pnt2bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000" + "bolt11": "lnbcrt100n1pne035qsp5ct5g9265vn4k2zn8ecuk6pxe0anszfl3uy4w5vukrvl4emm9w28qpp5j43wux8fg2cwkt3kq5xpprhukdxtqljum03g6zxjdwm34u24dshsdp9f9h8vmmfvdjjqer9wd3hy6tsw35k7m3qdsenzxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqflkpcezmaphptn08syzk9wh4rfkdzj3syan9ng9fzzv94htydujx6qut2tdgsmq2rg5utlmwcyce30fcqth7r68tc5mpqm7k4dfvy7gp0xletu" } }, "response": { @@ -25779,16 +27132,16 @@ { "created_index": 2, "id": 2, - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", "groupid": 1, "updated_index": 2, - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000, "amount_sent_msat": 10001, "created_at": 1738000000, - "completed_at": 1739000000, + "completed_at": 1738000000, "status": "complete", - "payment_preimage": "paymentpreimagew010101010101010101010101010101010101010101010101" + "payment_preimage": "83ffe698292fbb5f83ffe698292fbb5f83ffe698292fbb5f83ffe698292fbb5f" } ] } @@ -25804,72 +27157,289 @@ { "created_index": 2, "id": 2, - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", "groupid": 1, "updated_index": 2, - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000, "amount_sent_msat": 10001, "created_at": 1738000000, - "completed_at": 1739000000, + "completed_at": 1738000000, "status": "complete", - "payment_preimage": "paymentpreimagew010101010101010101010101010101010101010101010101" + "payment_preimage": "83ffe698292fbb5f83ffe698292fbb5f83ffe698292fbb5f83ffe698292fbb5f" }, { "created_index": 3, "id": 3, - "payment_hash": "paymenthashkey01k101k101k101k101k101k101k101k101k101k101k101k101", + "payment_hash": "097dcfa3b0bc58d499908855dae7d442854a02d4f2ffcc625f9385ed74f3256e", "groupid": 0, "updated_index": 3, - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000, "amount_sent_msat": 10001, - "created_at": 1738010000, - "completed_at": 1739010000, + "created_at": 1738000000, + "completed_at": 1738000000, "status": "complete", - "payment_preimage": "paymentpreimage1010101010101010101010101010101010101010101010101" + "payment_preimage": "0193052c8999a10f0193052c8999a10f0193052c8999a10f0193052c8999a10f" }, { "created_index": 4, "id": 4, - "payment_hash": "paymenthashkey02k201k201k201k201k201k201k201k201k201k201k201k201", + "payment_hash": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584", "groupid": 0, "updated_index": 4, - "destination": "nodeid040404040404040404040404040404040404040404040404040404040404", + "destination": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "amount_msat": 10000000, "amount_sent_msat": 10000202, - "created_at": 1738020000, - "completed_at": 1739020000, + "created_at": 1738000000, + "completed_at": 1738000000, "status": "complete", - "payment_preimage": "paymentpreimage2020202020202020202020202020202020202020202020202" + "payment_preimage": "0193052c8999a1110193052c8999a1110193052c8999a1110193052c8999a111" }, { "created_index": 5, "id": 5, - "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "payment_hash": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", "groupid": 0, "updated_index": 5, - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000, "amount_sent_msat": 10001, - "created_at": 1738030000, - "completed_at": 1739030000, + "created_at": 1738000000, + "completed_at": 1738000000, "status": "failed" }, { "created_index": 6, "id": 6, - "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "payment_hash": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", "groupid": 0, "updated_index": 6, "partid": 1, - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000, "amount_sent_msat": 10001, - "created_at": 1738040000, - "completed_at": 1739040000, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "0193052c8999a1130193052c8999a1130193052c8999a1130193052c8999a113" + }, + { + "created_index": 7, + "id": 7, + "payment_hash": "ab3a5a971aa3b21494f7ce646f077232c10c9917c33375935c1aebfa571fa1a1", + "groupid": 1, + "updated_index": 7, + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "amount_msat": 50000, + "amount_sent_msat": 50001, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "83ffe698292fbb6083ffe698292fbb6083ffe698292fbb6083ffe698292fbb60", + "bolt11": "lnbcrt500n1pne035qsp5kk6w4wjl0wudssp0pze5lgkz9hcav6ql523hjxc92knt398y2csqpp54va949c65wepf98heejx7pmjxtqsexghcvehty6urt4l54cl5xssdqcdsenygryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqgrjzax5dyj6dqqhgrt7t53hrmw4xvjs56kdy450c8jdv53fzf3n4kmersmgydpyyam87jrnu9wrcn78zy6w53zx3lqv45js6sa6rspqqa07y46" + }, + { + "created_index": 8, + "id": 8, + "payment_hash": "1bb513fb2fbde40592243877d9f404ba3668275e2eeacd9c7264f34f04d37fd1", + "groupid": 1607584456767009425, + "updated_index": 8, + "partid": 1, + "destination": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "amount_msat": 10000, + "amount_sent_msat": 10002, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "a23af6838ba877f6a23af6838ba877f6a23af6838ba877f6a23af6838ba877f6", + "bolt11": "lnbcrt100n1pne035qsp572t5efk76vr3rdkt5zu2qcduqapdj40mhrs7pgpthufgw3tvtwrqpp5rw6387e0hhjqty3y8pmanaqyhgmxsf679m4vm8rjvne57pxn0lgsdp9w3jhxazl0pcxz72lwd5k6urvv5sxymmvwscnzxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwgqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqh986ypquaysut7ed57nr8pum0x6u5hg3lnsf6j840l0cn6e28zcyqk76xpxkxjzlkhj8cx7zapyct6zdz2ff7nt3lym376k8ff0u9egq2wf5mk" + }, + { + "created_index": 9, + "id": 9, + "payment_hash": "f4a6597c41a3ae138fc1269e3bb0c28eb992a24e5eb007c5e65f39b1b89ed561", + "groupid": 1751699644842865297, + "updated_index": 9, + "partid": 1, + "destination": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "amount_msat": 1000, + "amount_sent_msat": 1000, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "c01ed70eb9ddb51ec01ed70eb9ddb51ec01ed70eb9ddb51ec01ed70eb9ddb51e", + "bolt12": "lni1qqgvq8khp6uam2t8cq0dwr4emk5kwq3qqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy83pmsz953rvg9rtxj8lalh43z8epwydjfrmffn3y3p5qz5cywpu09rr4vsyc4ltgrq50wep0hruykzdz8kjmlaymfx3gn3c0gcrcwn08fary4aqgplwhkgurkjc3rj42v0ntzhw0gr9dl4vwt2l3meh378fzjx5cc7mhgqxdva9ffx3l879amqjdk7np3nyfq6wjtp4weyzhdgq447vakcu0sh4dh0gxszhvffjfqcy8h77mjzguszhtfqy9glqvpm0sp32vgtlw2rh8mwuzedxn3z4d44zq7g8pkz6906ysj9qqe9eqccms4thz8tgy4vu7fdnqt0yaeky4a4pkdprcykm7vj4sz2pqeuguj820h2d6vwh0j7cdypzeg7ffnpvggzvmj9nrga83q474e2sjygxzmq7ln5fmvjxh4skxafx2pmx9wqx5v9qgqxyfhyvyg6pdvu4tcjvpp7kkal9rp57wj7xv4pl3ajku70rzy3pafqyqlg2sq9sggz3x54wmukps9ppjdvu9axg8l62dkkv5975l6zlt37ts4szjaem7c6pxqzvmj9nrga83q474e2sjygxzmq7ln5fmvjxh4skxafx2pmx9wqx5vqyhckl6y7ulcampu0ezz5qqx4cs3fwt6kyrfjc08dju8hc3lr30d7qyp5e6kp2jd30yr8husmmcfzxe797vler28r4hv6ehyy29lljue6ljqqxtxjzt8sw08wk4vx2j6wwv94myujhvzg09mx9xnh9fmvewnm0ex4mkal4sfm00gep0srey7pz6vt3cd82k3pcqqqqqqqqqqqqqqq2qqqqqqqqqqqqqwjfvkl43fqqqqqqzjqgeuhc6q2sg855evhcsdr4cfclsfxncamps5whxf2ynj7kqrutejl8xcm38k4vx4qyqlg4cpsyqqqkqssyehytxx360zptatj4pygsv9kpal8gnkeyd0tpvd6jv5rkv2uqdgc7pqzjd09ca3y6jytvgzva9jcyxavkyzvjujh4g4dz6qv5gjp95ld7sxy4yrpuc937lvmvrwm6qycexdzsmmtlzyskmzqm5e8uevw6d4nxc" + }, + { + "created_index": 10, + "id": 10, + "payment_hash": "47c148c1746366e4c2c7496621c22002bc2711b4d9c52cbb9c7b1fdca59c8579", + "groupid": 1, + "updated_index": 10, + "amount_sent_msat": 1002, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "failed", + "erroronion": "9bd15bb4312d17efe8130e67d2013e5baa83d46bc370883e1499e59299647d62cb6665189d7046467e6820a1f1248e0318805cf6e6d72e4b1da85492577e3606e81c8671a56493a6699eaf5e0d14c7bc2a23a23c5a0712e87faa51325a207f041e5e340e10ac9c61c77101345e527964d8aa7d5e953dfcef7a73dbf156738034d9c589f8592181132d6424112e7c991aa288da1bfa6da93d4c32572417d94c2956b95a4f5a0fc3d4e95019b24a87e890c7ef74444191de7428d979415b63d7de7a492e41be004cdfb7b567557dec95c4ac3e7ba3fb038dea146625551649d7991f0b4b5aa10c96b8a789cbfaaf8c1cc021cbb58516c7fd47644f4b2df9b5495a3e22f113a725e4b5315f1b7aff390d1f5b02ac37809e799bfbe8a078a1882d5f9d6f1d63" + }, + { + "created_index": 11, + "id": 11, + "payment_hash": "53a72d006c295bac2f2f81e6b82dd67193555a1859f7c90f84678b57ce6d10e2", + "groupid": 1, + "updated_index": 11, + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "amount_msat": 10000, + "amount_sent_msat": 10001, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "failed" + }, + { + "created_index": 12, + "id": 12, + "payment_hash": "ff498c3300881ea7a3c04193e43f123444c644662008108c23229da3511bedd1", + "groupid": 0, + "updated_index": 12, + "partid": 1, + "amount_sent_msat": 1000, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "08377744ca985c1e08377744ca985c1e08377744ca985c1e08377744ca985c1e" + }, + { + "created_index": 13, + "id": 13, + "payment_hash": "e0b5658ef8e23cab6546ea5f7794a8c760483abf3613b34f401df4128944afae", + "groupid": 1, + "updated_index": 13, + "partid": 1, + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "amount_msat": 400000, + "amount_sent_msat": 400000, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "08377744ca985c1908377744ca985c1908377744ca985c1908377744ca985c19", + "bolt11": "lnbcrt1pne035qsp5j7czxfpnquxg9vcw9crqh87raxz0glv8n6gx88jwdsp28pmfk68qpp5uz6ktrhcug72ke2xaf0h099gcasysw4lxcfmxn6qrh6p9z2y47hqdqcdserzgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqn7ge40jwkslz0j0vhfzy743lathy2sqy2dfyyahalxszs979d9s5v89ten2zcrna3xlxhkerk7p9k7a6u5fdddx5dzzas4ye2yp6desq3zwkg2" + }, + { + "created_index": 14, + "id": 14, + "payment_hash": "2a25861f15614825bdfd154d422342f159446f0d54dc24e8385d31520023f8cb", + "groupid": 1, + "updated_index": 14, + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "amount_msat": 2000, + "amount_sent_msat": 2000, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "08377744ca985c2108377744ca985c2108377744ca985c2108377744ca985c21", + "bolt11": "lnbcrt20n1pne035qsp5793kaek9ahcmxn00ttvkmrhafa5v33wtju4dz5lvyjr0pwwgdd2qpp59gjcv8c4v9yzt00az4x5yg6z79v5gmcd2nwzf6pct5c4yqprlr9sdq8d9h8vvsxqyjw5qcqp99qxpqysgq7ygtu605e0yx749rczhlqaw4crl746rmzc3nkpxn5vrey34m2uxx0658c3e85gvvdcp8r5nlfdnxspl9tlj5xhckrx5vszxxa4zneggp8dynay" + }, + { + "created_index": 15, + "id": 15, + "payment_hash": "36a32c9d7ee7baf5c15d1b9b27d085dce9c697fb427d0ce68342acce00e1586f", + "groupid": 1, + "updated_index": 15, + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "amount_msat": 3000, + "amount_sent_msat": 3000, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "08377744ca985c2208377744ca985c2208377744ca985c2208377744ca985c22", + "bolt11": "lnbcrt30n1pne035qsp588xrpk37hul6xfyr8u6lkyggh0mkvfzhyex8wwts7dpckxt2j2yspp5x63je8t7u7a0ts2arwdj05y9mn5ud9lmgf7see5rg2kvuq8ptphsdq8d9h8vvcxqyjw5qcqp99qxpqysgqw97pk464fhkxp6umgtzhh3njznhnw06cwun58szk06v7a2wvvppz6kg95ufarq443nrqgue6u3s59up4tqkmm943pfyp3hqutx6vgugqgd8jsu" + }, + { + "created_index": 16, + "id": 16, + "payment_hash": "8e3ea1fb26e3e5e8627064e68e424713e3393752457ffe19a565fea54f6307d6", + "groupid": 1, + "updated_index": 16, + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "amount_msat": 5000, + "amount_sent_msat": 5000, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "08377744ca985c2408377744ca985c2408377744ca985c2408377744ca985c24", + "bolt11": "lnbcrt50n1pne035qsp59qq7k6yprpf2hw49aqqx6tcv4dhldr4jh8r45n8vk9deyff2q55spp53cl2r7exu0j7scnsvnngusj8z03njd6jg4lluxd9vhl22nmrqltqdq8d9h8vdgxqyjw5qcqp99qxpqysgqcrnpc3ms8p3nqzyvfp5y0l78nlgm3lexm0v5xty0yd9fudk5mk8ydzvkfuxuef74cytlajjj6ykjsannfdapna7xudpf4xwtauhvcrqqxkwwsq" + }, + { + "created_index": 17, + "id": 17, + "payment_hash": "09963074ab0fc38044f890c763c658e7ea4f8b31ccbcfc6a0191163f5cdc4360", + "groupid": 1, + "updated_index": 17, + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "amount_msat": 4000, + "amount_sent_msat": 4000, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "08377744ca985c2308377744ca985c2308377744ca985c2308377744ca985c23", + "bolt11": "lnbcrt40n1pne035qsp5q4tjztd7kdgg22eewphyfcf3ew9ag6d53nsm3yfu8280ygsxnp3qpp5pxtrqa9tplpcq38cjrrk83jcul4ylze3ej70c6spjytr7hxugdsqdq8d9h8vdqxqyjw5qcqp99qxpqysgq0g9jk5lpfjyg6ryulnhav6qsfmua9uajgkpa8cl4k9mrds0wdavqd8sg26us9gr93uvnz8s9znmyk2g3sytgqgfl6ych0re7sujky3sq78nj5l" + }, + { + "created_index": 18, + "id": 18, + "payment_hash": "9a33e433faddc3371f6a56a34146c82629d567520ddaf28244bd9f196288af71", + "groupid": 1, + "updated_index": 18, + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "amount_msat": 1000, + "amount_sent_msat": 1000, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "08377744ca985c2008377744ca985c2008377744ca985c2008377744ca985c20" + }, + { + "created_index": 19, + "id": 19, + "payment_hash": "2b924194d169a96d9cc35b66ae912507e18ace9ef679fcb5324636ff73be410a", + "groupid": 1, + "partid": 1, + "destination": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "amount_msat": 4000000, + "amount_sent_msat": 4000082, + "created_at": 1738000000, + "status": "pending" + }, + { + "created_index": 21, + "id": 21, + "payment_hash": "1d3a502d4b52d3c22af20f93605cadec2194da2e077b9fbbd15fa379c6bfbbdd", + "groupid": 1, + "updated_index": 20, + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "amount_msat": 50000000, + "amount_sent_msat": 50000501, + "created_at": 1738000000, + "completed_at": 1738000000, "status": "complete", - "payment_preimage": "paymentpreimage3030303030303030303030303030303030303030303030303" + "payment_preimage": "83ffe698292fbb6383ffe698292fbb6383ffe698292fbb6383ffe698292fbb63", + "bolt11": "lnbcrt500u1pne035qsp5pt69qwurs28wt0ttmlyhwnsuajc8sxf0at8vd83m98m3hhkcw9yspp5r5a9qt2t2tfuy2hjp7fkqh9dassefk3wqaaelw73t73hn34lh0wsdqcdsen2gryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqq0sqqqqgqqyqqqqqpqqqqqzsqqc9qxpqysgqufkzp6k7jev4r0k95s4m3m0j3vcyg5z2zxpw98tm9fcml0xud0ws0q9g44g9cz56lnc97xxy9q6mt8h6xxh4h2fah8qypk7h7mmwd3gqsdtqr0" + }, + { + "created_index": 22, + "id": 22, + "payment_hash": "39a88ddc69c973a791043a877a415eda840888849a5d7175c9666104513f9235", + "groupid": 1, + "updated_index": 21, + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "amount_msat": 50000000, + "amount_sent_msat": 50000501, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "83ffe698292fbb6583ffe698292fbb6583ffe698292fbb6583ffe698292fbb65", + "bolt11": "lnbcrt500u1pne035qsp50zcqdgkx0dwzlksvkntzmmuednc9mxdnnzrghatwffw5fycnkpcqpp58x5gmhrfe9e60ygy82rh5s27m2zq3zyynfwhzawfvessg5fljg6sdqcdsenwgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqq0sqqqqgqqyqqqqqpqqqqqzsqqc9qxpqysgqxdq9h7j2xkfjvm8ansypq8w2xvawhdu5wwzpkg9ar2al66d6uae8lxzx6maekk0pgae6fzeauglsxvqplc3lw30fzv430a7nmccv0lcq0du8d6" } ] } @@ -26338,51 +27908,492 @@ "response": { "transactions": [ { - "hash": "txid7000170001700017000170001700017000170001700017000170001", - "rawtx": "02000000000101lstx70001700017000170001700017000170001700017000170001700017000170001700017000170001700017000170001700017000170001700017000170001700017000170001700017000170001700017000170001", + "hash": "cb847df46f5e3ae4df631b2eca529264f0551c08497a23a8b36eab6a43752a19", + "rawtx": "02000000000101f24a23ab5e7a9a3301a77294bd78b17c1f99ae8a46f91c7784170325735c87a70000000000fce87280044a0100000000000022002021576c2f5f13ba292fdb27447b38f1a583a579f26d3f4de69949f399a68269e34a0100000000000022002084e64aa53fb1193cdd99b7892f2d2f1f1a472f2b1bb1b85c447beba739003b2ea00f0000000000002200208f5cc510822867e8c786438caacf26a796f0561a147b4cb4950e4ae5fd0f5b6a0a1d0f00000000002200200fc54c870d234c36914a970b066e35be3f70af615d521189922794127e5eda8f0400473044022065d513e52ad62ae187985ffdc063591ca4fd3122b64f93f8173804d71a4c4bf802200e2f6abd1e958930f5535af6d193ad50f48632e832952dde93d25b64d9e4a9ae01473044022016be9e3950d45956afea61824dc637dff6708789859ca8ab62d475849e8ea3af02204beec8cc69f1238866e0768770b64fe381b53badc64b8a6fde2cca49e0b1baf10147522102c4c58e0dd892bdc984a69d87a39e33a837926d8886282e27d0a6cdfab5a563742103ebc3fd1aeca86f47406b5c43daf43ce7337d0d59923891ad4e276e168c2bc11452ae1a77ae20", "blockheight": 0, "txindex": 0, - "locktime": 549000100, + "locktime": 548304666, + "version": 2, + "inputs": [ + { + "txid": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2", + "index": 0, + "sequence": 2155014396 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 330000, + "scriptPubKey": "002021576c2f5f13ba292fdb27447b38f1a583a579f26d3f4de69949f399a68269e3" + }, + { + "index": 1, + "amount_msat": 330000, + "scriptPubKey": "002084e64aa53fb1193cdd99b7892f2d2f1f1a472f2b1bb1b85c447beba739003b2e" + }, + { + "index": 2, + "amount_msat": 4000000, + "scriptPubKey": "00208f5cc510822867e8c786438caacf26a796f0561a147b4cb4950e4ae5fd0f5b6a" + }, + { + "index": 3, + "amount_msat": 990474000, + "scriptPubKey": "00200fc54c870d234c36914a970b066e35be3f70af615d521189922794127e5eda8f" + } + ] + }, + { + "hash": "0c609c5643e2f316985989417c48044311cf2c1fb2113a03af7d7d51b4874ac5", + "rawtx": "02000000000101b3d820c11ae3a495b807cdcbf591f9a382351f50e61eb3ddcbb0c3a9b66f12890000000000fdffffff02b37c110501000000160014d67d8942d0b25380051198e292a12c48369c94ca00c2eb0b00000000160014d0eac62fdcee2d1881259be9cda4c43de9050db802473044022042141044c5fa69877c5a6d641cd96693828c77b8593fbba4df3008c56c54c3c502202e743899c8469993e28011de683f68f2f66c64b23f1ac62be7167563f762f8a40121031552bdf1173629284565431fb75296ec15c49649f97bb418ce3f509601b9b77469000000", + "blockheight": 106, + "txindex": 1, + "locktime": 105, + "version": 2, + "inputs": [ + { + "txid": "89126fb6a9c3b0cbddb31ee6501f3582a3f991f5cbcd07b895a4e31ac120d8b3", + "index": 0, + "sequence": 4294967293 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 4379999411000, + "scriptPubKey": "0014d67d8942d0b25380051198e292a12c48369c94ca" + }, + { + "index": 1, + "amount_msat": 200000000000, + "scriptPubKey": "0014d0eac62fdcee2d1881259be9cda4c43de9050db8" + } + ] + }, + { + "hash": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9", + "rawtx": "02000000000101b3d820c11ae3a495b807cdcbf591f9a382351f50e61eb3ddcbb0c3a9b66f12890100000000fdffffff0240420f00000000002200208698658a01efb001e1cc4df6a8b6f3adb461fa3e679385fdaae400bd73996b32816cdc0b000000002251208a73bb281433f2b5db5461c6778aa2afd28e011de6bd04799a5991662c61d7a80247304402204ae8e90efd38fe67b7dacd7b673c5de869a802feab60b17ce55c91c5bdffcfa60220100e9a1ee2e0f0a0e157feb12ee4e5e2b9ca4c78384097b085d476722f2dd9e101210207ec2b35534712d86ae030dd9bfaec08e2ddea1ec1cecffb9725ed7acb12ab6633000000", + "blockheight": 112, + "txindex": 1, + "locktime": 51, + "version": 2, + "inputs": [ + { + "txid": "89126fb6a9c3b0cbddb31ee6501f3582a3f991f5cbcd07b895a4e31ac120d8b3", + "index": 1, + "sequence": 4294967293 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 1000000000, + "scriptPubKey": "00208698658a01efb001e1cc4df6a8b6f3adb461fa3e679385fdaae400bd73996b32" + }, + { + "index": 1, + "amount_msat": 198995073000, + "scriptPubKey": "51208a73bb281433f2b5db5461c6778aa2afd28e011de6bd04799a5991662c61d7a8" + } + ] + }, + { + "hash": "c3f4a0f787b5ea11505afaba3e9599d6135943d0f562df3d6a7d3e7f372e2067", + "rawtx": "02000000000101ce5a530f60155add2fa38a51332c2823dec1e10eb16f77e68da912d03fb04dd80100000000fdffffff0280841e0000000000160014774b1c651a1b409213057783547e2bd37a7173127268deec00000000160014dc1e0ee8ce8e59d06ff533cc79b1e3809b4eba99024730440220483a8cc01437562b2dc7e83397e145f427fcbdbe7afb6d83c63ad3c8d18cc31d0220502b2d3f36a6b6cc42bb1714c8907b1b9c9a80788784599c33d19242e29061330121022facafa438adcdc64818ac87168a8ff6cc0c1f986475f3edac935f037bcc962b15000000", + "blockheight": 113, + "txindex": 1, + "locktime": 21, + "version": 2, + "inputs": [ + { + "txid": "d84db03fd012a98de6776fb10ee1c1de23282c33518aa32fdd5a15600f535ace", + "index": 1, + "sequence": 4294967293 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 2000000000, + "scriptPubKey": "0014774b1c651a1b409213057783547e2bd37a717312" + }, + { + "index": 1, + "amount_msat": 3973998706000, + "scriptPubKey": "0014dc1e0ee8ce8e59d06ff533cc79b1e3809b4eba99" + } + ] + }, + { + "hash": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6", + "rawtx": "0200000000010167202e377f3e7d6a3ddf62f5d0435913d699953ebafa5a5011eab587f7a0f4c30000000000fdffffff0240420f00000000002200205f743123f9584a76058bac1142ec2bc6c60b4b2af1d3145e74418d41ae51009e012f0f0000000000225120974c19d5ed96a62a1bd10ad187fee5c2e3146f772228c5ae7a42b36e74cf24cf024730440220707db46964e57ba4767951d6f03491f75468fd263dc84868d02352d74b91b4f102200a06e7213acde73c8a89751a1d915cfd72a849c850093b53c0415759144740cd012103f1f9d3a06cf2ae9b87dc178b5f3717b6c9b56e539189f11dc0d9ad1b227cc97f71000000", + "blockheight": 114, + "txindex": 1, + "locktime": 113, + "version": 2, + "inputs": [ + { + "txid": "c3f4a0f787b5ea11505afaba3e9599d6135943d0f562df3d6a7d3e7f372e2067", + "index": 0, + "sequence": 4294967293 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 1000000000, + "scriptPubKey": "00205f743123f9584a76058bac1142ec2bc6c60b4b2af1d3145e74418d41ae51009e" + }, + { + "index": 1, + "amount_msat": 995073000, + "scriptPubKey": "5120974c19d5ed96a62a1bd10ad187fee5c2e3146f772228c5ae7a42b36e74cf24cf" + } + ] + }, + { + "hash": "1aa6d7b0bb6c5d1dac62724caa4e26dc37ed8af5e747c836746987d28603fed2", + "rawtx": "02000000000101b6f77750c0aae7faf2aa6e4b38a14671adc8def298a0b89ced09596f002aa5ef0000000000ffffffff026b6f070000000000160014730274d976305fe63d212c880cf89fd0f08272873ac80700000000002251202bdd81f95d64ed2cc37d2eae725de428c91bff072d7503d87446970eedc630300400473044022008dec4948db1c9e4db4dcf8c223f554117e48c6aa0aac471de67c03163a82e4a0220018bdb9889230e0048a378efad73d3bec83c330baa727323d95ca86fe36301b701473044022022cec9df9ece54e1ca89888bdc19ed84e5202a93070d05aa9b3236f9990b440d0220376f7fd6edb49ad13596cdfd51d929a92d45bc88da3f16ed0777014a28025a2801475221021c29746e4136ddff456483df3980c2d0d5f31c93ef5ded564f7294a10d7414aa2103c47b1b2afcfd68c7b86c0976adb9a4f0835bc78242fced745d78433497a867d652ae00000000", + "blockheight": 122, + "txindex": 1, + "locktime": 0, + "version": 2, + "inputs": [ + { + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6", + "index": 0, + "sequence": 4294967295 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 487275000, + "scriptPubKey": "0014730274d976305fe63d212c880cf89fd0f0827287" + }, + { + "index": 1, + "amount_msat": 510010000, + "scriptPubKey": "51202bdd81f95d64ed2cc37d2eae725de428c91bff072d7503d87446970eedc63030" + } + ] + }, + { + "hash": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6", + "rawtx": "02000000000101a92a6508defe049b47f2420c054cb1a446198faf4bfd74bb2479b3c45075ce7c0000000000ffffffff02026e07000000000022512085d72025e78fd08bb61119f0987ab0041f50561ada6e130c645343db8c44c2afeec8070000000000225120a7583f0c421663b8ca76fa579018b40682ef8553d73fd061cd8f216ecdced6a30400473044022064d1a5480d76bc71d44ee440a47ec30e7433812292ca8d4876e5e59cd2950e4802201ece394b4bcbf6ba3f21152236822cfb2eeed8e5897d3bf3499e9d7d1a5d092e01473044022068cd05fe53fa71118b643e5340ea3cd169a3ca655c64c0b30f78d720d79a957502200f14d30de4251cf016a3db3475fe5472772335b76dfc268dc173e6541026b1830147522102d595ae92b3544c3250fb772f214ad8d4c51425033740a5bcc357190add6d7e7a2102d6063d022691b2490ab454dee73a57c6ff5d308352b461ece69f3c284f2c241252ae00000000", + "blockheight": 122, + "txindex": 2, + "locktime": 0, + "version": 2, + "inputs": [ + { + "txid": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9", + "index": 0, + "sequence": 4294967295 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 486914000, + "scriptPubKey": "512085d72025e78fd08bb61119f0987ab0041f50561ada6e130c645343db8c44c2af" + }, + { + "index": 1, + "amount_msat": 510190000, + "scriptPubKey": "5120a7583f0c421663b8ca76fa579018b40682ef8553d73fd061cd8f216ecdced6a3" + } + ] + }, + { + "hash": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69", + "rawtx": "0200000000010255310c6239b1c691cda8c054f3933467fb75153dddbd83dabec5d621990ddc920000000000fdffffffa7330551ea1fb2cc2d6ce491391f6830228b4bf5f2a616ab0a372002027e93ed0100000000fdffffff0245571e0000000000225120fdab7c01fae70c08e0b1f9acacca110a53121e75dc54a25e7542416f342aeaf740420f00000000002200209655e2a7330cd86dc69f8ed1845af5580dd06b15a794034c9571e53d5639b397014051b8117b0f4726cb33d05a6289f25addc41f5cf4a572b1a00aa494e88c3d9771729e9473eb8bb3679eac5a13964260269e317924cbf0e55c5aba600dbbc4af1002473044022049960f9cc0d1c77c8b85614adb8ed91b2a0a55a3e4bdac12a3de90880485f5e2022012e7ccc5f87ca3e0f485b2b16a95cc026079b18358dcb20fb0cd44348105751a01210330a75acaed258be6bc02da9fab058abbe0e770caceb7c6496eaaea7014c3d39b7b000000", + "blockheight": 124, + "txindex": 1, + "locktime": 123, + "version": 2, + "inputs": [ + { + "txid": "92dc0d9921d6c5beda83bddd3d1575fb673493f354c0a8cd91c6b139620c3155", + "index": 0, + "sequence": 4294967293 + }, + { + "txid": "ed937e020220370aab16a6f2f54b8b2230681f3991e46c2dccb21fea510533a7", + "index": 1, + "sequence": 4294967293 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 1988421000, + "scriptPubKey": "5120fdab7c01fae70c08e0b1f9acacca110a53121e75dc54a25e7542416f342aeaf7" + }, + { + "index": 1, + "amount_msat": 1000000000, + "scriptPubKey": "00209655e2a7330cd86dc69f8ed1845af5580dd06b15a794034c9571e53d5639b397" + } + ] + }, + { + "hash": "e72c5b057eb2944ade8a57c7d1143cc5eea12f0905287ce40c2716ed7032bd29", + "rawtx": "02000000000101a7330551ea1fb2cc2d6ce491391f6830228b4bf5f2a616ab0a372002027e93ed0000000000fdffffff0280841e000000000016001449acd7d82366c662bc8fef84bd3900b09bafbba54bd982ec0000000016001423c5939000b149132489269b028c1a596d96af480247304402204b0db0024b5141333d9e95410d91fcd3f8f3e60a2b26a7572694b0c094bae64e022062dad17af68f819b3463f57e75b3e93d257ed73b66f8045eed8d3bfd7252908501210387ee92224b3c95d3a3af78c32cec2b07b1c250e3bdb80a2e80dadc02e684040c7c000000", + "blockheight": 125, + "txindex": 1, + "locktime": 124, + "version": 2, + "inputs": [ + { + "txid": "ed937e020220370aab16a6f2f54b8b2230681f3991e46c2dccb21fea510533a7", + "index": 0, + "sequence": 4294967293 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 2000000000, + "scriptPubKey": "001449acd7d82366c662bc8fef84bd3900b09bafbba5" + }, + { + "index": 1, + "amount_msat": 3967998283000, + "scriptPubKey": "001423c5939000b149132489269b028c1a596d96af48" + } + ] + }, + { + "hash": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2", + "rawtx": "0200000000010129bd3270ed16270ce47c2805092fa1eec53c14d1c7578ade4a94b27e055b2ce70000000000fdffffff0240420f0000000000220020dd2b22d7f86c0cb8edca4d979b316aa5a8a390a37440b3f387edfa6e3efb630d012f0f00000000002251207b8ca7b7f827d8f94a2846c4e5d84fbae1a5b7453ff03ca1859f25888325b80a02473044022038b791a95551665f80a79e75cd2b53035913a1e3314c8135d2e1e2d60ef253df02202a80e65020cd2c160830a8d93cde5fc9ec92299104df83a59c41420370daf20001210235953f2aa25835f70cc1da3418d935b88a9f95a134dd86636bf018f532d282fe7d000000", + "blockheight": 126, + "txindex": 1, + "locktime": 125, + "version": 2, + "inputs": [ + { + "txid": "e72c5b057eb2944ade8a57c7d1143cc5eea12f0905287ce40c2716ed7032bd29", + "index": 0, + "sequence": 4294967293 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 1000000000, + "scriptPubKey": "0020dd2b22d7f86c0cb8edca4d979b316aa5a8a390a37440b3f387edfa6e3efb630d" + }, + { + "index": 1, + "amount_msat": 995073000, + "scriptPubKey": "51207b8ca7b7f827d8f94a2846c4e5d84fbae1a5b7453ff03ca1859f25888325b80a" + } + ] + }, + { + "hash": "59d7273c7dde3b2786f7325da08a303779ee718443aaa25d03db19c9e909591b", + "rawtx": "0200000000010190ee63cdc0e3f2b01c954abef709af77c0d966ca3f45b6b39ab9cfb6546c7a790100000000fdffffff08e803000000000000160014a43b821a9790f880e113a395b717a0f354b9d9c6e687150000000000225120327b99fbacbcc3bbcf9489bf7f3dac2642d933685754f558586afbacd17f9c26e8030000000000002251202f843ba0c8de9d0c41a63a25d4cab22032be4fabf24931dab82214316be218cae8030000000000002251200978ea47f31ad6561d96ceee14e85192726536c4e1e59d09f217f3b5762b0630e80300000000000016001407905c6189c1ae8aff12566b03f35ff516d17e84e803000000000000160014d1dc90a7bb3af91ed69e933dc38f555b580fad09e8030000000000001600146a1845bb0ea1f8efa63f00f325641db7350dcd5be803000000000000160014dfadaae18d57e4ef50e15b863d9e648bf9af67b10140eeb15b713763a95f40db82138b6f02a8ae8e49aad37ab3647d943a27713069f87376087de9ba49b7a477581f02cf4b4de25a468ee611b7a1ca2e71c3b1e179748c000000", + "blockheight": 141, + "txindex": 1, + "locktime": 140, + "version": 2, + "inputs": [ + { + "txid": "797a6c54b6cfb99ab3b6453fca66d9c077af09f7be4a951cb0f2e3c0cd63ee90", + "index": 1, + "sequence": 4294967293 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 1000000, + "scriptPubKey": "0014a43b821a9790f880e113a395b717a0f354b9d9c6" + }, + { + "index": 1, + "amount_msat": 1411046000, + "scriptPubKey": "5120327b99fbacbcc3bbcf9489bf7f3dac2642d933685754f558586afbacd17f9c26" + }, + { + "index": 2, + "amount_msat": 1000000, + "scriptPubKey": "51202f843ba0c8de9d0c41a63a25d4cab22032be4fabf24931dab82214316be218ca" + }, + { + "index": 3, + "amount_msat": 1000000, + "scriptPubKey": "51200978ea47f31ad6561d96ceee14e85192726536c4e1e59d09f217f3b5762b0630" + }, + { + "index": 4, + "amount_msat": 1000000, + "scriptPubKey": "001407905c6189c1ae8aff12566b03f35ff516d17e84" + }, + { + "index": 5, + "amount_msat": 1000000, + "scriptPubKey": "0014d1dc90a7bb3af91ed69e933dc38f555b580fad09" + }, + { + "index": 6, + "amount_msat": 1000000, + "scriptPubKey": "00146a1845bb0ea1f8efa63f00f325641db7350dcd5b" + }, + { + "index": 7, + "amount_msat": 1000000, + "scriptPubKey": "0014dfadaae18d57e4ef50e15b863d9e648bf9af67b1" + } + ] + }, + { + "hash": "f9e2ca6abf9450803ef6a1a75964277dd39b2f35f77acffc3a5978437b421aec", + "rawtx": "02000000000102b6f77750c0aae7faf2aa6e4b38a14671adc8def298a0b89ced09596f002aa5ef0100000000fdffffffc54a87b4517d7daf033a11b21f2ccf114304487c4189599816f3e243569c600c0100000000fdffffff0240420f0000000000220020b41521751a8eb257315f73a531763071cc39b7cece470f630fd5149fe7b7057ac594eb0b00000000225120a5410daebf4fc3cba618a840af497fbec4c3a084534f2b7b6a7d30bf35f8f5660140528e20b424e1ac7f2ae067093552f424dade1321ec396a7d382866be7bba9ba5a3faf375dc9b39d676d8adab67c30df596bca1412c3871bb9538fc00265c35bf02473044022003304f0d559771fe9d4b06dccecacbef7eaef5a97c7618b567de1ba53e7146ef02207f7138b9cd7fca8ea13498e6fed96b225873131c45b5c46e4e78c7fe45d5b3e9012102c8a8f25ed135cd671c88bd4e407bb3746678cfacbcf65ce89f8efc2aa0abe5359b000000", + "blockheight": 156, + "txindex": 1, + "locktime": 155, "version": 2, "inputs": [ { - "txid": "txid600116001160011600116001160011600116001160011600116001160011", + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6", "index": 1, - "sequence": 2158511000 + "sequence": 4294967293 + }, + { + "txid": "0c609c5643e2f316985989417c48044311cf2c1fb2113a03af7d7d51b4874ac5", + "index": 1, + "sequence": 4294967293 } ], "outputs": [ + { + "index": 0, + "amount_msat": 1000000000, + "scriptPubKey": "0020b41521751a8eb257315f73a531763071cc39b7cece470f630fd5149fe7b7057a" + }, { "index": 1, - "amount_msat": 201998901100, - "scriptPubKey": "scriptpubkey01010101010101010101010101010101010101010101010101010101" + "amount_msat": 199988421000, + "scriptPubKey": "5120a5410daebf4fc3cba618a840af497fbec4c3a084534f2b7b6a7d30bf35f8f566" + } + ] + }, + { + "hash": "a5e7471ae03d284673ac3189164522587568bf47179e94a90cc0f043cff39bb5", + "rawtx": "02000000000101ec1a427b4378593afccf7af7352f9bd37d276459a7a1f63e805094bf6acae2f90000000000ffffffff0176390f0000000000225120ebc29bf1526b5c18e4d14bdc0c2425e683d81ea0036c6834b98f5b04cdcb9d95040047304402206bb171775ea5334c9e604505eccd5010025e0bbfd65186e2e4f976a15dbce329022072d784a17bb46a4439b90a45d18f8cf2c28d80ff4388f4fe94740919cc6db2cf014730440220719782d4dba4b5024b5d35d7d590f84df275b1b921ec77e71cd98e55d677d702022042c25f4975c8eece9e5d0a820eed0a91a87fa063f9f584316c9838542a3f850001475221030c3fc0add8628ae8acc7befa2b833c455db3868be6de7add97b945a1e506f7fe21036c8bee77fa3632abc7a5df76cf029650eea826896024a70eaa64cac8a0131c1c52ae00000000", + "blockheight": 156, + "txindex": 5, + "locktime": 0, + "version": 2, + "inputs": [ + { + "txid": "f9e2ca6abf9450803ef6a1a75964277dd39b2f35f77acffc3a5978437b421aec", + "index": 0, + "sequence": 4294967295 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 997750000, + "scriptPubKey": "5120ebc29bf1526b5c18e4d14bdc0c2425e683d81ea0036c6834b98f5b04cdcb9d95" } ] }, { - "hash": "txid7000270002700027000270002700027000270002700027000270002", - "rawtx": "02000000000101lstx70002700027000270002700027000270002700027000270002700027000270002700027000270002700027000270002700027000270002700027000270002700027000270002700027000270002700027000270002", - "blockheight": 102, + "hash": "34e8ce026401c205cf74556beb2c11b9d9243fd4d74902127e739c11d865021b", + "rawtx": "020000000001080ca195cdd7b29ead524961e05456441fa5e2c97c8262739ecdb6d2228b29353b0000000000fdffffff0ca195cdd7b29ead524961e05456441fa5e2c97c8262739ecdb6d2228b29353b0200000000fdffffff1b5909e9c919db035da2aa438471ee7937308aa05d32f786273bde7d3c27d7590000000000fdffffff1b5909e9c919db035da2aa438471ee7937308aa05d32f786273bde7d3c27d7590200000000fdffffff1b5909e9c919db035da2aa438471ee7937308aa05d32f786273bde7d3c27d7590700000000fdffffff9a8c6de235929d0b3850ec06560bf60d252718a1aadfe8e0718218af4878d1790100000000fdffffffb17766dac493e0b215e2255ae236477dd453cad94560d7f418face046fd6c3f80100000000fdffffffd7dbbaa1e20d2efed3c4241e554bd38be7b87b97dab1024d7880b72a862d584c0000000000fdffffff04204e000000000000220020369444aad3ac8c5452be625479f761587c42fbf66fecf644447daabc73c498223075000000000000220020d90c23ede7b77f89f4cae93da9326ba176d158a0b65faeaede5684c3c0f7c8392808440700000000220020f7bbe8f915381b4b9b1ca14cccbfd156eea19888550d01a5014f977e98c7fc8ca86100000000000022512018ece00b736f9ed77ed3a87426643c242223e3d6116a4cd6d90946f73de2ce71024730440220426dde8016515f8f897454cc37361219c5414f5e21cf91598047f12e3ad2fb8102202602d18876f20eb58a593b93e782b820cb68347d7beba839113a3a1d5b31a9400121028a599168d3c97debc71bc66e6270ecf054f300d888309ba05471a482175dd93002473044022069681451f9469ec6e7b4a62db78999e9ded9b2eb1682b0d90895f0fe67cedb8e02204d80c50638d043a9a8cdb34259774e7b9a474047c178b61ec4ded0ae186c1602012102272a9a25f1ffed52fab04a2cc88aeab135b53723856a8f1481c26417f88a922e0247304402204a2f0bb65bfafd85a6ffeaf9e75ec9dbe20f5d9bc50d8d98126942c00951aa2802203877c0326e64585cf4c767e57398eaff58a279542e9fd16a223d1f507d1bfdbb01210267f4468ffafe6f919ae871f57f09690467f494e83e0358dc64d10472f9072f4c01405cac3f8d65efa45a8e253c40cdfe97d8bc182e8ea04de2ecdd3fe488c6a9fe6508cf336ac742417a80ca805f069e088d4e8ad79575cf5d8dade454f69645ce6b0247304402206a5d75ef2bedb452594a97c52277b8532725cf5804b62669872d97c0cb499c03022011aff97f2c87ce8d99eda0f9a2f73f2668a82aea6e0acfe3b7b01893f05fc403012103d034f788f410c2ec2d89d161df3c3715f965248aa53eace463d10eca443eb1f20247304402203605a17cf717f57d125b999fac579064cb576c214a2204a4b8a106695607b4bd02201e41c14bcc19af1083d7a716a1aa33fe8b23b3b07eda3d30074146b4146834f60121029da47016812598be384212ce15793496c0ec2176a87e81c6432dae964f87c9870247304402201f4bb570df0095b4c5f1c35c5db787e9e2d289ae3cc9d0b75decbc7bb41e25c00220789c3d68621f25bf1fa30e72652591354c71aa8397fd1fa18442a0ffa037900f01210328cc8fc978e209f1695fa5b5655061db1aab2311b524176945bf1015ef2d4b89014024629ca4144d02f2f414e30644b1b7800d19d07ccf88e6c25cc3c5bd208f16c71c0deda1230d7df241f63a25b4e32a3036ff20168564e24b816693dda22b44d89c000000", + "blockheight": 157, "txindex": 1, - "locktime": 549000200, + "locktime": 156, "version": 2, "inputs": [ { - "txid": "txid600126001260012600126001260012600126001260012600126001260012", + "txid": "3b35298b22d2b6cd9e7362827cc9e2a51f445654e0614952ad9eb2d7cd95a10c", + "index": 0, + "sequence": 4294967293 + }, + { + "txid": "3b35298b22d2b6cd9e7362827cc9e2a51f445654e0614952ad9eb2d7cd95a10c", + "index": 2, + "sequence": 4294967293 + }, + { + "txid": "59d7273c7dde3b2786f7325da08a303779ee718443aaa25d03db19c9e909591b", + "index": 0, + "sequence": 4294967293 + }, + { + "txid": "59d7273c7dde3b2786f7325da08a303779ee718443aaa25d03db19c9e909591b", + "index": 2, + "sequence": 4294967293 + }, + { + "txid": "59d7273c7dde3b2786f7325da08a303779ee718443aaa25d03db19c9e909591b", + "index": 7, + "sequence": 4294967293 + }, + { + "txid": "79d17848af188271e0e8dfaaa11827250df60b5606ec50380b9d9235e26d8c9a", + "index": 1, + "sequence": 4294967293 + }, + { + "txid": "f8c3d66f04cefa18f4d76045d9ca53d47d4736e25a25e215b2e093c4da6677b1", "index": 1, - "sequence": 2158512000 + "sequence": 4294967293 + }, + { + "txid": "4c582d862ab780784d02b1da977bb8e78bd34b551e24c4d3fe2e0de2a1badbd7", + "index": 0, + "sequence": 4294967293 } ], "outputs": [ + { + "index": 0, + "amount_msat": 20000000, + "scriptPubKey": "0020369444aad3ac8c5452be625479f761587c42fbf66fecf644447daabc73c49822" + }, { "index": 1, - "amount_msat": 201998902100, - "scriptPubKey": "scriptpubkey02010201020102010201020102010201020102010201020102010201" + "amount_msat": 30000000, + "scriptPubKey": "0020d90c23ede7b77f89f4cae93da9326ba176d158a0b65faeaede5684c3c0f7c839" }, { "index": 2, - "amount_msat": 201998902200, - "scriptPubKey": "scriptpubkey02020202020202020202020202020202020202020202020202020202" + "amount_msat": 121899048000, + "scriptPubKey": "0020f7bbe8f915381b4b9b1ca14cccbfd156eea19888550d01a5014f977e98c7fc8c" + }, + { + "index": 3, + "amount_msat": 25000000, + "scriptPubKey": "512018ece00b736f9ed77ed3a87426643c242223e3d6116a4cd6d90946f73de2ce71" + } + ] + }, + { + "hash": "bb23aa273032a5f997312034dcc92b09ba6ff343ab8b1fa76796710db0177b79", + "rawtx": "020000000001011b0265d8119c737e120249d7d43f24d9b9112ceb6b5574cf05c2016402cee8340000000000ffffffff0156450000000000002251208de5a3aa566cb6dc9037206bc73530ce6d7d8ea2dd1c488aec5862cb8b8e860e04004730440220173a7f31ffc8ff5925c7b5248078acfcd484bb83ce0364ab18cca92dbe3be06202201516c8cb93e17d653c2bd66d02cb82635cb0ff12779c7062b5514f0ea65db3ea01473044022061f9b595763ffffd1c33e7fc3004fc8054031eedb45fe11941592d0f854dbfb5022043660a53fe00e56b93bd284e24337fff4501d06108b66cf07efd3cb13576dae30147522102f52c0210d5b05d38a0c01f316be27ad07fadb10015f497accfa78b7c3cdb5cb621038f2a5514a8fd540d306215ea47cded68140a4d1346f0b8dc35b4261701f7ec6952ae00000000", + "blockheight": 157, + "txindex": 4, + "locktime": 0, + "version": 2, + "inputs": [ + { + "txid": "34e8ce026401c205cf74556beb2c11b9d9243fd4d74902127e739c11d865021b", + "index": 0, + "sequence": 4294967295 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 17750000, + "scriptPubKey": "51208de5a3aa566cb6dc9037206bc73530ce6d7d8ea2dd1c488aec5862cb8b8e860e" } ] } @@ -26815,15 +28826,15 @@ "params": { "destinations": [ { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303@127.0.0.1:19736", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d@127.0.0.1:30005", "amount": "20000sat" }, { - "id": "nodeid040404040404040404040404040404040404040404040404040404040404@127.0.0.1:19737", + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199@127.0.0.1:30007", "amount": "0.0003btc" }, { - "id": "nodeid050505050505050505050505050505050505050505050505050505050505@127.0.0.1:19738", + "id": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e@127.0.0.1:30009", "amount": "all" } ], @@ -26832,12 +28843,12 @@ } }, "response": { - "tx": "02000000000101multif50000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000", - "txid": "channeltxid01050000500005000050000500005000050000500005000050000", + "tx": "020000000001080ca195cdd7b29ead524961e05456441fa5e2c97c8262739ecdb6d2228b29353b0000000000fdffffff0ca195cdd7b29ead524961e05456441fa5e2c97c8262739ecdb6d2228b29353b0200000000fdffffff1b5909e9c919db035da2aa438471ee7937308aa05d32f786273bde7d3c27d7590000000000fdffffff1b5909e9c919db035da2aa438471ee7937308aa05d32f786273bde7d3c27d7590200000000fdffffff1b5909e9c919db035da2aa438471ee7937308aa05d32f786273bde7d3c27d7590700000000fdffffff9a8c6de235929d0b3850ec06560bf60d252718a1aadfe8e0718218af4878d1790100000000fdffffffb17766dac493e0b215e2255ae236477dd453cad94560d7f418face046fd6c3f80100000000fdffffffd7dbbaa1e20d2efed3c4241e554bd38be7b87b97dab1024d7880b72a862d584c0000000000fdffffff04204e000000000000220020369444aad3ac8c5452be625479f761587c42fbf66fecf644447daabc73c498223075000000000000220020d90c23ede7b77f89f4cae93da9326ba176d158a0b65faeaede5684c3c0f7c8392808440700000000220020f7bbe8f915381b4b9b1ca14cccbfd156eea19888550d01a5014f977e98c7fc8ca86100000000000022512018ece00b736f9ed77ed3a87426643c242223e3d6116a4cd6d90946f73de2ce71024730440220426dde8016515f8f897454cc37361219c5414f5e21cf91598047f12e3ad2fb8102202602d18876f20eb58a593b93e782b820cb68347d7beba839113a3a1d5b31a9400121028a599168d3c97debc71bc66e6270ecf054f300d888309ba05471a482175dd93002473044022069681451f9469ec6e7b4a62db78999e9ded9b2eb1682b0d90895f0fe67cedb8e02204d80c50638d043a9a8cdb34259774e7b9a474047c178b61ec4ded0ae186c1602012102272a9a25f1ffed52fab04a2cc88aeab135b53723856a8f1481c26417f88a922e0247304402204a2f0bb65bfafd85a6ffeaf9e75ec9dbe20f5d9bc50d8d98126942c00951aa2802203877c0326e64585cf4c767e57398eaff58a279542e9fd16a223d1f507d1bfdbb01210267f4468ffafe6f919ae871f57f09690467f494e83e0358dc64d10472f9072f4c01405cac3f8d65efa45a8e253c40cdfe97d8bc182e8ea04de2ecdd3fe488c6a9fe6508cf336ac742417a80ca805f069e088d4e8ad79575cf5d8dade454f69645ce6b0247304402206a5d75ef2bedb452594a97c52277b8532725cf5804b62669872d97c0cb499c03022011aff97f2c87ce8d99eda0f9a2f73f2668a82aea6e0acfe3b7b01893f05fc403012103d034f788f410c2ec2d89d161df3c3715f965248aa53eace463d10eca443eb1f20247304402203605a17cf717f57d125b999fac579064cb576c214a2204a4b8a106695607b4bd02201e41c14bcc19af1083d7a716a1aa33fe8b23b3b07eda3d30074146b4146834f60121029da47016812598be384212ce15793496c0ec2176a87e81c6432dae964f87c9870247304402201f4bb570df0095b4c5f1c35c5db787e9e2d289ae3cc9d0b75decbc7bb41e25c00220789c3d68621f25bf1fa30e72652591354c71aa8397fd1fa18442a0ffa037900f01210328cc8fc978e209f1695fa5b5655061db1aab2311b524176945bf1015ef2d4b89014024629ca4144d02f2f414e30644b1b7800d19d07ccf88e6c25cc3c5bd208f16c71c0deda1230d7df241f63a25b4e32a3036ff20168564e24b816693dda22b44d89c000000", + "txid": "34e8ce026401c205cf74556beb2c11b9d9243fd4d74902127e739c11d865021b", "channel_ids": [ { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", - "channel_id": "channelid1100011000110001100011000110001100011000110001100011000", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "channel_id": "a9c39915cfa357205e3597ec62d92c541a2be7f44b9c6292e126aeddb11bf97e", "channel_type": { "bits": [ 12, @@ -26848,11 +28859,11 @@ "anchors/even" ] }, - "outnum": 1 + "outnum": 0 }, { - "id": "nodeid040404040404040404040404040404040404040404040404040404040404", - "channel_id": "channelid1200012000120001200012000120001200012000120001200012000", + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "channel_id": "a4a379248e49d207cc984646e632e1a31105a85708b9d6d961a5018fdd489f5a", "channel_type": { "bits": [ 12, @@ -26866,8 +28877,8 @@ "outnum": 1 }, { - "id": "nodeid050505050505050505050505050505050505050505050505050505050505", - "channel_id": "channelid1300013000130001300013000130001300013000130001300013000", + "id": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e", + "channel_id": "e13472d6512413eb1bf03b9a0bb391d0e4152fd337fa6d1014e3de5e131918d9", "channel_type": { "bits": [ 12, @@ -26878,7 +28889,7 @@ "anchors/even" ] }, - "outnum": 1 + "outnum": 2 } ], "failed": [] @@ -26891,15 +28902,15 @@ "params": { "destinations": [ { - "id": "fakenodeid03030303030303030303030303030303030303030303030303030303@127.0.0.1:19736", + "id": "03a389b3a2f7aa6f9f4ccc19f2bd7a2eba83596699e86b715caaaa147fc37f3144@127.0.0.1:30005", "amount": 50000 }, { - "id": "nodeid040404040404040404040404040404040404040404040404040404040404@127.0.0.1:19737", + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199@127.0.0.1:30007", "amount": 50000 }, { - "id": "nodeid010101010101010101010101010101010101010101010101010101010101@127.0.0.1:19734", + "id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518@127.0.0.1:30001", "amount": 50000 } ], @@ -26907,12 +28918,12 @@ } }, "response": { - "tx": "02000000000102multif60000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000", - "txid": "channeltxid02060000600006000060000600006000060000600006000060000", + "tx": "020000000001021b0265d8119c737e120249d7d43f24d9b9112ceb6b5574cf05c2016402cee8340300000000fdffffff7375f9b47d75c6e3af621018a50fa2c8b9094f08f4aae0873c7f183eb7941ec10000000000fdffffff0250c30000000000002200209bd3269fda069b7ee0584622d458bb437635b3a179265dee3843ef18f42f35c6ed84430700000000225120def24e878a66b695c4d5b414b42b7ce94471dac985bb0afb0367e8bbb92c5a5201403801494402ede78cdce356dbcef09aec5e2f27284d899a7f580392c4af28ec6de04447e5cac3549b3648a3a55e2e5eefeba4fe98d23d3a84f1e7c61265bf5e5e01406ec83566298057fd8b0d18e0056148e33ea2846e83086bc1d409191b0820c51a9f3e6e144d4eac7f2e1bea9ba1f60ba2cc43b0e1b0de3dff293f6ad577275d709d000000", + "txid": "a19c811497b26bb270b9a80fb75ceda91c12049faf4b83facfb12e7738a1eadf", "channel_ids": [ { - "id": "nodeid040404040404040404040404040404040404040404040404040404040404", - "channel_id": "channelid1520015200152001520015200152001520015200152001520015200", + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "channel_id": "09eb55872cd9039ecd08281af756e23b15aad4129fd6a9bcd71b472114ebf43a", "channel_type": { "bits": [ 12, @@ -26923,7 +28934,7 @@ "anchors/even" ] }, - "outnum": 1 + "outnum": 0 } ], "failed": [ @@ -26932,11 +28943,11 @@ "method": "connect", "error": { "code": 401, - "message": "All addresses failed: 127.0.0.1:19736: Cryptographic handshake: peer closed connection (wrong key?). " + "message": "All addresses failed: 127.0.0.1:30005: Cryptographic handshake: peer closed connection (wrong key?). " } }, { - "id": "nodeid010101010101010101010101010101010101010101010101010101010101", + "id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "method": "connect", "error": { "code": 402, @@ -27054,8 +29065,8 @@ } }, "response": { - "tx": "02000000000155multiw55000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000", - "txid": "txid5500055000550005500055000550005500055000550005500055000" + "tx": "0200000000010190ee63cdc0e3f2b01c954abef709af77c0d966ca3f45b6b39ab9cfb6546c7a790000000000fdffffff03ae080000000000001600143d43d226bcc27019ade52d7a3dc52a7ac1be28b8f74e080000000000225120875b3dfe08354212207c94733807164505835a44100738a9c27a62bd5deef480050d000000000000160014d55c493983db651e10477455b1d408c31e7e9e310247304402205fad492ec062feca17e59887dabbea8100f2e4ec7fcfe5abeb7f88457c4cf4a10220445a0b8813843f05c1c87571e25dfebe6c54cb91dd80560e383b0de90d78b788012103a26fcdff9cd9ce50aefbe3efcb26788cee5808e312d1d6d35603a368ded1d68c2c000000", + "txid": "3b35298b22d2b6cd9e7362827cc9e2a51f445654e0614952ad9eb2d7cd95a10c" } }, { @@ -27089,8 +29100,8 @@ } }, "response": { - "tx": "02000000000155multiw56000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000", - "txid": "txid5600056000560005600056000560005600056000560005600056000" + "tx": "0200000000010190ee63cdc0e3f2b01c954abef709af77c0d966ca3f45b6b39ab9cfb6546c7a790100000000fdffffff08e803000000000000160014a43b821a9790f880e113a395b717a0f354b9d9c6e687150000000000225120327b99fbacbcc3bbcf9489bf7f3dac2642d933685754f558586afbacd17f9c26e8030000000000002251202f843ba0c8de9d0c41a63a25d4cab22032be4fabf24931dab82214316be218cae8030000000000002251200978ea47f31ad6561d96ceee14e85192726536c4e1e59d09f217f3b5762b0630e80300000000000016001407905c6189c1ae8aff12566b03f35ff516d17e84e803000000000000160014d1dc90a7bb3af91ed69e933dc38f555b580fad09e8030000000000001600146a1845bb0ea1f8efa63f00f325641db7350dcd5be803000000000000160014dfadaae18d57e4ef50e15b863d9e648bf9af67b10140eeb15b713763a95f40db82138b6f02a8ae8e49aad37ab3647d943a27713069f87376087de9ba49b7a477581f02cf4b4de25a468ee611b7a1ca2e71c3b1e179748c000000", + "txid": "59d7273c7dde3b2786f7325da08a303779ee718443aaa25d03db19c9e909591b" } } ] @@ -27478,10 +29489,10 @@ } }, "response": { - "offer_id": "offeridl21000002100000210000021000002100000210000021000002100000", + "offer_id": "dca9774ba2925b48c42eb12e599c09389d9d80d44445c4d0c944556c7228746e", "active": true, "single_use": false, - "bolt12": "lno1qgsq000bolt210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000", + "bolt12": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqgn3qzs2ge5hx6pqwdskcefpzcssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e", "used": false, "created": true } @@ -27497,10 +29508,10 @@ } }, "response": { - "offer_id": "offeridl22000002200000220000022000002200000220000022000002200000", + "offer_id": "f901018768e13ea2da95f437749e24d22d47b2a6ea3030ef66ae0281df49d94b", "active": true, "single_use": false, - "bolt12": "lno1qgsq000bolt220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000", + "bolt12": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqv85ysq2qepk7enxv4j3gqg2zcssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e", "used": false, "created": true } @@ -27590,11 +29601,11 @@ "id": "example:openchannel_abort#1", "method": "openchannel_abort", "params": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200" + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5" } }, "response": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200", + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", "channel_canceled": false, "reason": "Abort requested" } @@ -27782,13 +29793,13 @@ "params": [ "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", 1000000, - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000", + "cHNidP8BAF4CAAAAAfFzeDEZi+pD6TLIJPXz4vliVqLRobrIby/0l1ZyiZ2dAAAAAAD9////AUFZ3AsAAAAAIlEgO+E35aPNS3YQRaiMByjTJDUYNvBO1Z39o3m42EZGUreaAAAAAAEAcQIAAAAB+wnUg4jUSt7ZSoGLTSFJkEiVi4BORL5XG9PScQI1uHoBAAAAAP3///8CAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAYT9NIAAAAAFgAUIowMzAOV9xHOQM4YHS2bZ5k6oe2HAAAAAQEfAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAAA", "15000perkw" ] }, "response": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000", + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", + "psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcAQ4g8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0BDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEICu/Rzf4eie4AAQMIQVncCwAAAAABBCJRIDvhN+WjzUt2EEWojAco0yQ1GDbwTtWd/aN5uNhGRlK3DPwJbGlnaHRuaW5nAQgM79HN/h6J7gABAwhAQg8AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCHcug9YGu7NYAA==", "channel_type": { "bits": [ 12, @@ -27800,7 +29811,7 @@ ] }, "commitments_secured": false, - "funding_serial": 17725655605188030000, + "funding_serial": 8587946494701319000, "requires_confirmed_inputs": false } }, @@ -27809,15 +29820,15 @@ "id": "example:openchannel_bump#2", "method": "openchannel_bump", "params": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200", + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", "amount": 1000000, - "initialpsbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000", + "initialpsbt": "cHNidP8BAF4CAAAAAfFzeDEZi+pD6TLIJPXz4vliVqLRobrIby/0l1ZyiZ2dAAAAAAD9////AUFZ3AsAAAAAIlEgO+E35aPNS3YQRaiMByjTJDUYNvBO1Z39o3m42EZGUreaAAAAAAEAcQIAAAAB+wnUg4jUSt7ZSoGLTSFJkEiVi4BORL5XG9PScQI1uHoBAAAAAP3///8CAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAYT9NIAAAAAFgAUIowMzAOV9xHOQM4YHS2bZ5k6oe2HAAAAAQEfAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAAA", "funding_feerate": "15000perkw" } }, "response": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000", + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", + "psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcAQ4g8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0BDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIEu/Rzf4eie4AAQMIQVncCwAAAAABBCJRIDvhN+WjzUt2EEWojAco0yQ1GDbwTtWd/aN5uNhGRlK3DPwJbGlnaHRuaW5nAQgU79HN/h6J7gABAwhAQg8AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJlh/FQRnSXyAA==", "channel_type": { "bits": [ 12, @@ -27829,7 +29840,7 @@ ] }, "commitments_secured": false, - "funding_serial": 17725655605188040000, + "funding_serial": 11052392398546871794, "requires_confirmed_inputs": false } }, @@ -27840,13 +29851,13 @@ "params": [ "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", 2000000, - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000", + "cHNidP8BAF4CAAAAAfFzeDEZi+pD6TLIJPXz4vliVqLRobrIby/0l1ZyiZ2dAAAAAAD9////AWINzQsAAAAAIlEgyRg+3pEh88b9FJiCLEenYCcyJ2ackJUIhDusW72BP2iaAAAAAAEAcQIAAAAB+wnUg4jUSt7ZSoGLTSFJkEiVi4BORL5XG9PScQI1uHoBAAAAAP3///8CAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAYT9NIAAAAAFgAUIowMzAOV9xHOQM4YHS2bZ5k6oe2HAAAAAQEfAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAAA", "18750perkw" ] }, "response": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000", + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", + "psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcAQ4g8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0BDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIGu/Rzf4eie4AAQMIYg3NCwAAAAABBCJRIMkYPt6RIfPG/RSYgixHp2AnMidmnJCVCIQ7rFu9gT9oDPwJbGlnaHRuaW5nAQgc79HN/h6J7gABAwiAhB4AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJth/FQRnSXyAA==", "channel_type": { "bits": [ 12, @@ -27858,7 +29869,7 @@ ] }, "commitments_secured": false, - "funding_serial": 17725655605188050000, + "funding_serial": 11196507586622727666, "requires_confirmed_inputs": false } } @@ -28085,14 +30096,14 @@ "id": "example:openchannel_init#1", "method": "openchannel_init", "params": { - "id": "nodeid121212121212121212121212121212121212121212121212121212121212", + "id": "03a00f49374e4bb876e766e9305e5fefa86e53dbc89a4f27d794b02f59ca316426", "amount": 1000000, - "initialpsbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000" + "initialpsbt": "cHNidP8BAF4CAAAAARxvUMSNjH7EKMXzxKwycdOSZ64xHQfWS7JFe0pAwIPCAAAAAAD9////AahhAAAAAAAAIlEg+3d9jpNmK0getyg5W+Mp31CPIRDKcJg/mZs/uaVrQ+GbAAAAAAEAiQIAAAAB8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0AAAAAAP3///8CYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aICEHgAAAAAAIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd+aAAAAAQErYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aAAA" } }, "response": { "channel_id": "a5be438539f73c018a98a4b9dd557d62430881c56552025b5579d180cc3887ed", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000", + "psbt": "cHNidP8BAgQCAAAAAQMEmwAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQCJAgAAAAHxc3gxGYvqQ+kyyCT18+L5Ylai0aG6yG8v9JdWcomdnQAAAAAA/f///wJiDc0LAAAAACJRIMkYPt6RIfPG/RSYgixHp2AnMidmnJCVCIQ7rFu9gT9ogIQeAAAAAAAiACDJvFwGPK7796bHgUQHtWJ7T4GotW7L6TLGgvnLrA0Z35oAAAABAStiDc0LAAAAACJRIMkYPt6RIfPG/RSYgixHp2AnMidmnJCVCIQ7rFu9gT9oAQ4gHG9QxI2MfsQoxfPErDJx05JnrjEdB9ZLskV7SkDAg8IBDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIIu/Rzf4eie4AAQMIqGEAAAAAAAABBCJRIPt3fY6TZitIHrcoOVvjKd9QjyEQynCYP5mbP7mla0PhDPwJbGlnaHRuaW5nAQgk79HN/h6J7gABAwhAQg8AAAAAAAEEIgAgBkixRgS2irzkjzD4bs/Wm7V/PQFNNgUvPR5aBVpSJHoM/AlsaWdodG5pbmcBCJtVC0YlHyOoAA==", "channel_type": { "bits": [ 12, @@ -28104,7 +30115,7 @@ ] }, "commitments_secured": false, - "funding_serial": 17725655605188010000, + "funding_serial": 11192864844797649832, "requires_confirmed_inputs": false } }, @@ -28113,14 +30124,14 @@ "id": "example:openchannel_init#2", "method": "openchannel_init", "params": [ - "nodeid121212121212121212121212121212121212121212121212121212121212", + "03a00f49374e4bb876e766e9305e5fefa86e53dbc89a4f27d794b02f59ca316426", 500000, - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000" + "cHNidP8BAF4CAAAAARxvUMSNjH7EKMXzxKwycdOSZ64xHQfWS7JFe0pAwIPCAAAAAAD9////AetRxQsAAAAAIlEg21kTTo7K2doCG6F2JqgaDjc1kRCrH7AL08oPVVJhuE+bAAAAAAEAiQIAAAAB8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0AAAAAAP3///8CYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aICEHgAAAAAAIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd+aAAAAAQErYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aAAA" ] }, "response": { "channel_id": "b3b2e46371876858784cd1b87ecf406e32d8f98b7a44b7f436d1dca317ce0f1b", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000", + "psbt": "cHNidP8BAgQCAAAAAQMEmwAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQCJAgAAAAHxc3gxGYvqQ+kyyCT18+L5Ylai0aG6yG8v9JdWcomdnQAAAAAA/f///wJiDc0LAAAAACJRIMkYPt6RIfPG/RSYgixHp2AnMidmnJCVCIQ7rFu9gT9ogIQeAAAAAAAiACDJvFwGPK7796bHgUQHtWJ7T4GotW7L6TLGgvnLrA0Z35oAAAABAStiDc0LAAAAACJRIMkYPt6RIfPG/RSYgixHp2AnMidmnJCVCIQ7rFu9gT9oAQ4gHG9QxI2MfsQoxfPErDJx05JnrjEdB9ZLskV7SkDAg8IBDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIKu/Rzf4eie4AAQMI61HFCwAAAAABBCJRINtZE06OytnaAhuhdiaoGg43NZEQqx+wC9PKD1VSYbhPDPwJbGlnaHRuaW5nAQgs79HN/h6J7gABAwggoQcAAAAAAAEEIgAgwbQfi9x464yTOq8b2y9CaCVPKAtJ32SfSqtAVGakS8gM/AlsaWdodG5pbmcBCEl4ogWzGZoyAA==", "channel_type": { "bits": [ 12, @@ -28132,7 +30143,7 @@ ] }, "commitments_secured": false, - "funding_serial": 17725655605188020000, + "funding_serial": 5294159507337353778, "requires_confirmed_inputs": false } } @@ -28234,14 +30245,14 @@ "id": "example:openchannel_signed#1", "method": "openchannel_signed", "params": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200", - "signed_psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000" + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", + "signed_psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcIgICRz15z0oQ57qDTAJqrEPqGLCn+3Xs2lGEv6+oxGYV9rdHMEQCID20o7OkdrA186bhtl5XxvomAgLw5qTckxZ94vSI8teaAiAIfpvcxym7FktDtx2ApNv/Tgz0EOxLEtpXp8HgO8/pqQEiBgJHPXnPShDnuoNMAmqsQ+oYsKf7dezaUYS/r6jEZhX2twgDz+yHAAAAAAEOIPFzeDEZi+pD6TLIJPXz4vliVqLRobrIby/0l1ZyiZ2dAQ8EAAAAAAEQBP3///8M/AlsaWdodG5pbmcBCBLv0c3+HonuAAEDCEFZ3AsAAAAAAQQiUSA74Tflo81LdhBFqIwHKNMkNRg28E7Vnf2jebjYRkZStyEHE0cioCqqq2UZ2npxQi9Q6DXNZheODM6F4GjHHS3XScEJAG/ctUwEAAAADPwJbGlnaHRuaW5nAQgU79HN/h6J7gABAwhAQg8AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJlh/FQRnSXyAA==" } }, "response": { - "tx": "02000000000101sgpsbt11000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000", - "txid": "txidocsigned1011000110001100011000110001100011000110001100011000", - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200" + "tx": "02000000000101f1737831198bea43e932c824f5f3e2f96256a2d1a1bac86f2ff4975672899d9d0000000000fdffffff024159dc0b000000002251203be137e5a3cd4b761045a88c0728d324351836f04ed59dfda379b8d8464652b740420f0000000000220020c9bc5c063caefbf7a6c7814407b5627b4f81a8b56ecbe932c682f9cbac0d19df0247304402203db4a3b3a476b035f3a6e1b65e57c6fa260202f0e6a4dc93167de2f488f2d79a0220087e9bdcc729bb164b43b71d80a4dbff4e0cf410ec4b12da57a7c1e03bcfe9a9012102473d79cf4a10e7ba834c026aac43ea18b0a7fb75ecda5184bfafa8c46615f6b79a000000", + "txid": "96239136e3ac09f93976cc24142edb8f40139b1d5f50b19263649de5d8433962", + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5" } }, { @@ -28250,13 +30261,13 @@ "method": "openchannel_signed", "params": [ "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000" + "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcIgICRz15z0oQ57qDTAJqrEPqGLCn+3Xs2lGEv6+oxGYV9rdHMEQCIFl+CUBKJcswA/8DnqzPrYolo0k0uUfRJv60eB4niMmJAiA169wRBmliX5GL7+hqb2OHZ5i81V0lkIJylHfvkn933QEiBgJHPXnPShDnuoNMAmqsQ+oYsKf7dezaUYS/r6jEZhX2twgDz+yHAAAAAAEOIPFzeDEZi+pD6TLIJPXz4vliVqLRobrIby/0l1ZyiZ2dAQ8EAAAAAAEQBP3///8M/AlsaWdodG5pbmcBCBrv0c3+HonuAAEDCGINzQsAAAAAAQQiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aCEHn35PoCbJlSMQ2fFCjyoCQfQi72lK/cajhKIKcycdYWwJABIqDc8FAAAADPwJbGlnaHRuaW5nAQgc79HN/h6J7gABAwiAhB4AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJth/FQRnSXyAA==" ] }, "response": { - "tx": "02000000000101sgpsbt12000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000", - "txid": "txidocsigned1012000120001200012000120001200012000120001200012000", - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200" + "tx": "02000000000101f1737831198bea43e932c824f5f3e2f96256a2d1a1bac86f2ff4975672899d9d0000000000fdffffff02620dcd0b00000000225120c9183ede9121f3c6fd1498822c47a760273227669c909508843bac5bbd813f6880841e0000000000220020c9bc5c063caefbf7a6c7814407b5627b4f81a8b56ecbe932c682f9cbac0d19df024730440220597e09404a25cb3003ff039eaccfad8a25a34934b947d126feb4781e2788c989022035ebdc110669625f918befe86a6f63876798bcd55d259082729477ef927f77dd012102473d79cf4a10e7ba834c026aac43ea18b0a7fb75ecda5184bfafa8c46615f6b79a000000", + "txid": "c283c0404a7b45b24bd6071d31ae6792d37132acc4f3c528c47e8c8dc4506f1c", + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5" } } ] @@ -28474,13 +30485,13 @@ "id": "example:openchannel_update#1", "method": "openchannel_update", "params": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000" + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", + "psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcAQ4g8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0BDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIEu/Rzf4eie4AAQMIQVncCwAAAAABBCJRIDvhN+WjzUt2EEWojAco0yQ1GDbwTtWd/aN5uNhGRlK3DPwJbGlnaHRuaW5nAQgU79HN/h6J7gABAwhAQg8AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJlh/FQRnSXyAA==" } }, "response": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000", + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", + "psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcAQ4g8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0BDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIEu/Rzf4eie4AAQMIQVncCwAAAAABBCJRIDvhN+WjzUt2EEWojAco0yQ1GDbwTtWd/aN5uNhGRlK3DPwJbGlnaHRuaW5nAQgU79HN/h6J7gABAwhAQg8AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJlh/FQRnSXyAA==", "channel_type": { "bits": [ 12, @@ -28502,12 +30513,12 @@ "method": "openchannel_update", "params": [ "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000" + "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcAQ4g8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0BDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIGu/Rzf4eie4AAQMIYg3NCwAAAAABBCJRIMkYPt6RIfPG/RSYgixHp2AnMidmnJCVCIQ7rFu9gT9oDPwJbGlnaHRuaW5nAQgc79HN/h6J7gABAwiAhB4AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJth/FQRnSXyAA==" ] }, "response": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000", + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", + "psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcAQ4g8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0BDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIGu/Rzf4eie4AAQMIYg3NCwAAAAABBCJRIMkYPt6RIfPG/RSYgixHp2AnMidmnJCVCIQ7rFu9gT9oDPwJbGlnaHRuaW5nAQgc79HN/h6J7gABAwiAhB4AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJth/FQRnSXyAA==", "channel_type": { "bits": [ 12, @@ -28868,17 +30879,17 @@ "id": "example:pay#1", "method": "pay", "params": [ - "lnbcrt100n1pnt2bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000" + "lnbcrt500n1pne035qsp5kk6w4wjl0wudssp0pze5lgkz9hcav6ql523hjxc92knt398y2csqpp54va949c65wepf98heejx7pmjxtqsexghcvehty6urt4l54cl5xssdqcdsenygryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqgrjzax5dyj6dqqhgrt7t53hrmw4xvjs56kdy450c8jdv53fzf3n4kmersmgydpyyam87jrnu9wrcn78zy6w53zx3lqv45js6sa6rspqqa07y46" ] }, "response": { - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", - "payment_hash": "paymenthashinvl0320032003200320032003200320032003200320032003200", - "created_at": 1738000000, + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "payment_hash": "ab3a5a971aa3b21494f7ce646f077232c10c9917c33375935c1aebfa571fa1a1", + "created_at": 1738000000.0, "parts": 1, "amount_msat": 50000, "amount_sent_msat": 50001, - "payment_preimage": "paymentpreimagep010101010101010101010101010101010101010101010101", + "payment_preimage": "83ffe698292fbb6083ffe698292fbb6083ffe698292fbb6083ffe698292fbb60", "status": "complete" } }, @@ -28887,17 +30898,17 @@ "id": "example:pay#2", "method": "pay", "params": { - "bolt11": "lnbcrt100n1pnt2bolt11invl030300000000bolt11invl030300000000bolt11invl030300000000bolt11invl030300000000bolt11invl030300000000bolt11invl030300000000bolt11invl030300000000bolt11invl030300000000bolt11invl030300000000bolt11invl030300000000" + "bolt11": "lnbcrt1u1pne035qsp5xl6xj5nrlrwfadkw89p0htfcqlkt0qrnykpc4kh3vlyr69cglv5qpp59v2rfk0xrknvtuf9yd5lf2vwrhwwwg45mvalz42nhpaff5vax5wsdqcdsenxgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgq04xpv4pju07a2mt3d02rf5u8ptj8h8vy7qxtc74z6y609x8rwrkhvq2elv8v5mrwac42scc70c7nnyu4xrxu9c8wcsync9dd5dnqdfqqrngrdv" } }, "response": { - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", - "payment_hash": "paymenthashinvl0330033003300330033003300330033003300330033003300", - "created_at": 1738000000, + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "payment_hash": "2b1434d9e61da6c5f1252369f4a98e1ddce722b4db3bf15553b87a94d19d351d", + "created_at": 1738000000.0, "parts": 1, "amount_msat": 100000, "amount_sent_msat": 100000, - "payment_preimage": "paymentpreimagep020202020202020202020202020202020202020202020202", + "payment_preimage": "83ffe698292fbb6183ffe698292fbb6183ffe698292fbb6183ffe698292fbb61", "status": "complete" } } @@ -28974,7 +30985,7 @@ "id": "example:ping#1", "method": "ping", "params": { - "id": "nodeid010101010101010101010101010101010101010101010101010101010101", + "id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "len": 128, "pongbytes": 128 } @@ -28988,7 +30999,7 @@ "id": "example:ping#2", "method": "ping", "params": { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "len": 1000, "pongbytes": 65535 } @@ -29197,124 +31208,124 @@ "method": "plugin", "params": { "subcommand": "start", - "plugin": "/root/lightning/tests/plugins/allow_even_msgs.py" + "plugin": "/home/rusty/devel/cvs/lightning/tests/plugins/allow_even_msgs.py" } }, "response": { "command": "start", "plugins": [ { - "name": "/root/lightning/plugins/autoclean", + "name": "/home/rusty/devel/cvs/lightning/plugins/autoclean", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/chanbackup", + "name": "/home/rusty/devel/cvs/lightning/plugins/chanbackup", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/bcli", + "name": "/home/rusty/devel/cvs/lightning/plugins/bcli", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/commando", + "name": "/home/rusty/devel/cvs/lightning/plugins/commando", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/funder", + "name": "/home/rusty/devel/cvs/lightning/plugins/funder", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/topology", + "name": "/home/rusty/devel/cvs/lightning/plugins/topology", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/exposesecret", + "name": "/home/rusty/devel/cvs/lightning/plugins/exposesecret", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/keysend", + "name": "/home/rusty/devel/cvs/lightning/plugins/keysend", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/offers", + "name": "/home/rusty/devel/cvs/lightning/plugins/offers", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/pay", + "name": "/home/rusty/devel/cvs/lightning/plugins/pay", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/recklessrpc", + "name": "/home/rusty/devel/cvs/lightning/plugins/recklessrpc", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/recover", + "name": "/home/rusty/devel/cvs/lightning/plugins/recover", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/txprepare", + "name": "/home/rusty/devel/cvs/lightning/plugins/txprepare", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/cln-renepay", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-renepay", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/cln-xpay", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-xpay", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/spenderp", + "name": "/home/rusty/devel/cvs/lightning/plugins/spenderp", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/cln-askrene", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-askrene", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/sql", + "name": "/home/rusty/devel/cvs/lightning/plugins/sql", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/cln-grpc", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-grpc", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/cln-lsps-client", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-lsps-client", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/cln-bip353", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-bip353", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/bookkeeper", + "name": "/home/rusty/devel/cvs/lightning/plugins/bookkeeper", "active": true, "dynamic": false }, { - "name": "/root/lightning/tests/plugins/allow_even_msgs.py", + "name": "/home/rusty/devel/cvs/lightning/tests/plugins/allow_even_msgs.py", "active": true, "dynamic": true } @@ -29327,7 +31338,7 @@ "method": "plugin", "params": { "subcommand": "stop", - "plugin": "/root/lightning/tests/plugins/allow_even_msgs.py" + "plugin": "/home/rusty/devel/cvs/lightning/tests/plugins/allow_even_msgs.py" } }, "response": { @@ -29347,112 +31358,112 @@ "command": "list", "plugins": [ { - "name": "/root/lightning/plugins/autoclean", + "name": "/home/rusty/devel/cvs/lightning/plugins/autoclean", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/chanbackup", + "name": "/home/rusty/devel/cvs/lightning/plugins/chanbackup", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/bcli", + "name": "/home/rusty/devel/cvs/lightning/plugins/bcli", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/commando", + "name": "/home/rusty/devel/cvs/lightning/plugins/commando", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/funder", + "name": "/home/rusty/devel/cvs/lightning/plugins/funder", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/topology", + "name": "/home/rusty/devel/cvs/lightning/plugins/topology", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/exposesecret", + "name": "/home/rusty/devel/cvs/lightning/plugins/exposesecret", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/keysend", + "name": "/home/rusty/devel/cvs/lightning/plugins/keysend", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/offers", + "name": "/home/rusty/devel/cvs/lightning/plugins/offers", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/pay", + "name": "/home/rusty/devel/cvs/lightning/plugins/pay", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/recklessrpc", + "name": "/home/rusty/devel/cvs/lightning/plugins/recklessrpc", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/recover", + "name": "/home/rusty/devel/cvs/lightning/plugins/recover", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/txprepare", + "name": "/home/rusty/devel/cvs/lightning/plugins/txprepare", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/cln-renepay", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-renepay", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/cln-xpay", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-xpay", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/spenderp", + "name": "/home/rusty/devel/cvs/lightning/plugins/spenderp", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/cln-askrene", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-askrene", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/sql", + "name": "/home/rusty/devel/cvs/lightning/plugins/sql", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/cln-grpc", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-grpc", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/cln-lsps-client", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-lsps-client", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/cln-bip353", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-bip353", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/bookkeeper", + "name": "/home/rusty/devel/cvs/lightning/plugins/bookkeeper", "active": true, "dynamic": false } @@ -29512,7 +31523,7 @@ "id": "example:preapproveinvoice#1", "method": "preapproveinvoice", "params": { - "bolt11": "lnbcrt100n1pnt2bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000" + "bolt11": "lnbcrt1230n1pne035qsp5s2tkvc25q0p9qu5ghf6pal04thl4kl9q9jggx0fetq5tx7szc0gspp5mmpxzxv7tkpxjhvwyztwky6qlsw3umd87h7x7dvn0hck5t0lc84sdqlv3jhxcmjd9c8g6t0dcsxjmnktakrydqcqp99qxpqysgqa9q3g64xjfq3wqpyxn378zzs3grvlvhmpvtcedvzf0rq0ycu4xgr0ly93ut0wjdyfgfaldteev97qqt6q539qy7ktng4ylfj85kzmkqp5lsp6u" } }, "response": {} @@ -29522,7 +31533,7 @@ "id": "example:preapproveinvoice#2", "method": "preapproveinvoice", "params": [ - "lnbcrt100n1pnt2bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000" + "lnbcrt1240n1pne035qsp590nuq4ek3zp48qm5rve22ye75jc6y564fh8qjrlr0j8at7egmtuqpp5ms3uy3duktelvxj02h6nrdzhge83uu5xumyrmxwu4akpezzv80hsdqlv3jhxcmjd9c8g6t0dcsxjmnktakrydgcqp99qxpqysgqad46gpve6njtqr9zsvrz8a56ndz953s88kedwuzge3d4tgv8gfk8u8al36nwmnchrkr7wwy7vc04fdvnewhusxcp457jucl5a5lt4dsqzr7sj8" ] }, "response": {} @@ -29598,7 +31609,7 @@ "id": "example:preapprovekeysend#1", "method": "preapprovekeysend", "params": { - "destination": "nodeid020202020202020202020202020202020202020202020202020202020202", + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "payment_hash": "0000000000000000000000000000000000000000000000000000000000000000", "amount_msat": 1000 } @@ -29610,7 +31621,7 @@ "id": "example:preapprovekeysend#2", "method": "preapprovekeysend", "params": [ - "nodeid050505050505050505050505050505050505050505050505050505050505", + "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e", "0101010101010101010101010101010101010101010101010101010101010101", 2000 ] @@ -29948,12 +31959,12 @@ "method": "recoverchannel", "params": { "scb": [ - "0000000000000001channelid0340000340000340000340000340000340000340000340000340000nodeid03030303030303030303030303030303030303030303030303030303030300017f000001034003400340034003400340034003400340034003400340034003400340034003400340034003400340034003400003401000", - "0000000000000002channelid0340200340200340200340200340200340200340200340200340200nodeid03030303030303030303030303030303030303030303030303030303030300017f000001034203420342034203420342034203420342034203420342034203420342034203420342034203420342034203420003401000", - "0000000000000003channelid0410000410000410000410000410000410000410000410000410000nodeid01010101010101010101010101010101010101010101010101010101010100017f000001041004100410041004100410041004100410041004100410041004100410041004100410041004100410041004100003401000", - "0000000000000004channelid0120000120000120000120000120000120000120000120000120000nodeid01010101010101010101010101010101010101010101010101010101010100017f000001012001200120012001200120012001200120012001200120012001200120012001200120012001200120012001200003401000", - "0000000000000005channelid1520015200152001520015200152001520015200152001520015200nodeid01010101010101010101010101010101010101010101010101010101010100017f000001015201520152015201520152015201520152015201520152015201520152015201520152015201520152015201520003401000", - "0000000000000006channelid1240012400124001240012400124001240012400124001240012400nodeid02020202020202020202020202020202020202020202020202020202020200017f000001012401240124012401240124012401240124012401240124012401240124012401240124012401240124012401240003401000" + "0000000000000006f4e1de801de57374d5737da622611e3a1ad9f16d5df9c30fceecc11ce732eeeb022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59017f000001a95cbe3270e5e0998af5eb0a67f7bf6e8d5b3d3d43059b3e4cfbd1e4fca6152c51320000000100000000000f42400003401000000000eb015c0000fffffffffffe000000020000ffffffffffff3283fc1863a9702a8e188ed55475324e55485a8758d2068cfea35851418c55740000fffffffffffed00ec892b1739b55ddc0cca2988d8731eb33f2295c1fcc13fdbdfff9d3f85d6d038402a6939f0f9d5c7a41464169eb692b4d2d73266b3c46345cd036ca577a15bdeeaa027662682a646ce7671c3a091bf639176e87d3379022126b209ebadadae19ffc0e02c59668c64362eaeabf44ee4f10b98fc92412cbea74b6f3a917423dfdf3ca282602773e6c29472ab708e5b127e8ae1ce2d8b7f56b457299f93bb72bb73fdbcf91770501010702a5f8", + "000000000000000121bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d017f000001dcf8fdd5381f36008c3eac24cdde5ec0fea8f39240575ef0cb4406cb51ad419dd7810000000000000000000f424000034010000000011301840000fffffffffffa000000030000fffffffffffb8ff7d0df4eee78e558b4e07f82049aaa933f4f4932e13e1e7fee5cb103f7a0b50000fffffffffffa79176754ea338ffa080591b946a6ac1c47ff579ae7e45857bf01261ebe1c46ba0000fffffffffffcbdb924885293efdaa1ba8f556161f4fe525c19483def49b9af85c1623bc6d27b038402add69f29ad433cb7d4c9470f2d49d80245fd9e76a992197528a131e37711efac02c57de22185162001ffaf2e61b053b1d0e280d73ecec1b04916df2c65642d94a102cd4e1a07ee85714b6eada09d9cf81aeb15bfc72ddd003235530c58bbd0c0144902b10f36d2ebab3ce560abf15ceb1bef619491e0597a794fdafcfdf8708eec9e2d0501010702a5f8", + "00000000000000027512083907c74ed3a045e9bf772b3d72948eb93daf84a1cee57108800451aaf2035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d017f000001dcf80239a9c9f2a91e69ba01800baf71f55efe457677b2e5cbd640b888dc1c9375b40000000000000000000f42400003401000000000c301340000ffffffffffff000000010000ffffffffffff0e07b6188dd51f15bb5cb9027950bf487a612dca57e2928de3f28f6ee796978b03840330b7ddf07e5bc779ea468875371ea25b560491c5feaeeb5e229ded3820d1d69103620748b3796c4988dd0fc63b92ae011dc989f15c433a55ed38e24318a43b4c93021bfe48bb1aded55878b00a3f00c5c1bffa1010510d8ba1c6372012ac9c3205d20201604aa7056ab8926038a846014bdbe4874ceef7ce45141b8009b0e2f49e7ec70501010702a5f8", + "0000000000000003222d999f537e32e9458c5db17a63e012dcced61340de06fda5bc30566270b0aa0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f0000017531932479f6d82ee59c7aa67b99568de0a31c202f6a3ff18a6bdd1ec22683cf026500000000000000000bebb3cb00034010000000009b010c0001000000000000000000000384021f90b5f38e0c0ea50bccfcf70a32cd4395c8c544e70636b7cc41831fe33fb4ce03bcfb0d457dfa07f508f434e6a2f040dd3dd233e7002dbe1c1b5d86ed5d3efd76030a4ce755504748f47401fc016578a52e104cbbd28251f10b11e4b3e55d0fe1d303986bdd0842662b8d0d18147630a720e952a2cda624c63ef4903357d27e54f7920501000702a5f8", + "0000000000000004a4a379248e49d207cc984646e632e1a31105a85708b9d6d961a5018fdd489f5a0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f000001970c7f07a15ce1fe1519d46536c4036f1c13527fa8bf52f6a5299b860f982ba2ed7e00000001000000000000753000034010000000009b010c000100000000000000000000038402c8aabcf1224df10e9d803dc3918797892fe0abec56d3e06f121bcebbe9ab0a2c03bd181375d57b8b1d15def9c5f9007b3c3ff98a140c0a44c9dc5f54ac7ea4baf30310952e08f9960711d8142dfa171c0fc2348762acea003f3897397f6ace8454130382da2a229450c4a8e8cea70bbd147eaaf981184bff8c1d70b70c30a494d848420501010702a5f8", + "000000000000000509eb55872cd9039ecd08281af756e23b15aad4129fd6a9bcd71b472114ebf43a0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f000001970c64ed91a21c10208d715b59801b12b4a6eff9ea9e4e7d45971c298b62d90ece8e00000000000000000000c35000034010000000009b010c000100000000000000000000038402e885f38e784050b386fb32d20935acc61059d8b02b6bec0ac2bfc8b2c5cf7f3103ae69dbfc6511ba0781c13113e16e1557a875b910cb1cb1fe1ef95a7edb36135a03758d5faa8515942873911e21869b1b90a4be72af14b394bc064da6ba518b087003750b588cd1fb8d60276c12c1c3eef7e302e3772414234404289db8c10f5731320501010702a5f8" ] } }, @@ -30192,20 +32203,20 @@ "id": "example:renepay#1", "method": "renepay", "params": { - "invstring": "lnbcrt100n1pnt2bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000", + "invstring": "lnbcrt1pne035qsp5j7czxfpnquxg9vcw9crqh87raxz0glv8n6gx88jwdsp28pmfk68qpp5uz6ktrhcug72ke2xaf0h099gcasysw4lxcfmxn6qrh6p9z2y47hqdqcdserzgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqn7ge40jwkslz0j0vhfzy743lathy2sqy2dfyyahalxszs979d9s5v89ten2zcrna3xlxhkerk7p9k7a6u5fdddx5dzzas4ye2yp6desq3zwkg2", "amount_msat": 400000 } }, "response": { - "bolt11": "lnbcrt100n1pnt2bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000", + "bolt11": "lnbcrt1pne035qsp5j7czxfpnquxg9vcw9crqh87raxz0glv8n6gx88jwdsp28pmfk68qpp5uz6ktrhcug72ke2xaf0h099gcasysw4lxcfmxn6qrh6p9z2y47hqdqcdserzgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqn7ge40jwkslz0j0vhfzy743lathy2sqy2dfyyahalxszs979d9s5v89ten2zcrna3xlxhkerk7p9k7a6u5fdddx5dzzas4ye2yp6desq3zwkg2", "amount_msat": 400000, - "payment_hash": "paymenthashinvl0210021002100210021002100210021002100210021002100", - "destination": "nodeid020202020202020202020202020202020202020202020202020202020202", - "created_at": 1738000000, + "payment_hash": "e0b5658ef8e23cab6546ea5f7794a8c760483abf3613b34f401df4128944afae", + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "created_at": 1738000000.0, "groupid": 1, "parts": 2, "status": "complete", - "payment_preimage": "paymentpreimager010101010101010101010101010101010101010101010101", + "payment_preimage": "08377744ca985c1908377744ca985c1908377744ca985c1908377744ca985c19", "amount_sent_msat": 400000 } }, @@ -30214,19 +32225,19 @@ "id": "example:renepay#2", "method": "renepay", "params": { - "invstring": "lnbcrt100n1pnt2bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000" + "invstring": "lnbcrt40n1pne035qsp5pwtnqs2trxfwwkl8vaycu6fmvud0edagevz4eahvy6ls30u7cfrqpp52wnj6qrv99d6cte0s8ntstwkwxf42ksct8mujruyv7940nndzr3qdqaveskjmr9vssxgetnvdexjur5d9hkuxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgq6sh90jk5uuccyzrdlnd5xyd92hxre78kupcpmlg0uerm35855xlklh5zlsmahpad6x8cv4ky2u6p394p270vyetlzx2u6ypyg22xn0qq0z6fuh" } }, "response": { - "bolt11": "lnbcrt100n1pnt2bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000", + "bolt11": "lnbcrt40n1pne035qsp5pwtnqs2trxfwwkl8vaycu6fmvud0edagevz4eahvy6ls30u7cfrqpp52wnj6qrv99d6cte0s8ntstwkwxf42ksct8mujruyv7940nndzr3qdqaveskjmr9vssxgetnvdexjur5d9hkuxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgq6sh90jk5uuccyzrdlnd5xyd92hxre78kupcpmlg0uerm35855xlklh5zlsmahpad6x8cv4ky2u6p394p270vyetlzx2u6ypyg22xn0qq0z6fuh", "amount_msat": 4000, - "payment_hash": "paymenthashinvl0340034003400340034003400340034003400340034003400", - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", - "created_at": 1738000000, + "payment_hash": "53a72d006c295bac2f2f81e6b82dd67193555a1859f7c90f84678b57ce6d10e2", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "created_at": 1738000000.0, "groupid": 1, "parts": 2, "status": "complete", - "payment_preimage": "paymentpreimager020202020202020202020202020202020202020202020202", + "payment_preimage": "83ffe698292fbb6283ffe698292fbb6283ffe698292fbb6283ffe698292fbb62", "amount_sent_msat": 4000 } } @@ -30376,21 +32387,21 @@ "id": "example:renepaystatus#1", "method": "renepaystatus", "params": { - "invstring": "lnbcrt100n1pnt2bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000" + "invstring": "lnbcrt1pne035qsp5j7czxfpnquxg9vcw9crqh87raxz0glv8n6gx88jwdsp28pmfk68qpp5uz6ktrhcug72ke2xaf0h099gcasysw4lxcfmxn6qrh6p9z2y47hqdqcdserzgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqn7ge40jwkslz0j0vhfzy743lathy2sqy2dfyyahalxszs979d9s5v89ten2zcrna3xlxhkerk7p9k7a6u5fdddx5dzzas4ye2yp6desq3zwkg2" } }, "response": { "paystatus": [ { - "bolt11": "lnbcrt100n1pnt2bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000", + "bolt11": "lnbcrt1pne035qsp5j7czxfpnquxg9vcw9crqh87raxz0glv8n6gx88jwdsp28pmfk68qpp5uz6ktrhcug72ke2xaf0h099gcasysw4lxcfmxn6qrh6p9z2y47hqdqcdserzgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqn7ge40jwkslz0j0vhfzy743lathy2sqy2dfyyahalxszs979d9s5v89ten2zcrna3xlxhkerk7p9k7a6u5fdddx5dzzas4ye2yp6desq3zwkg2", "amount_msat": 400000, - "payment_hash": "paymenthashinvl0210021002100210021002100210021002100210021002100", - "destination": "nodeid020202020202020202020202020202020202020202020202020202020202", - "created_at": 1738000000, + "payment_hash": "e0b5658ef8e23cab6546ea5f7794a8c760483abf3613b34f401df4128944afae", + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "created_at": 1738000000.0, "groupid": 1, "parts": 2, "status": "complete", - "payment_preimage": "paymentpreimager010101010101010101010101010101010101010101010101", + "payment_preimage": "08377744ca985c1908377744ca985c1908377744ca985c1908377744ca985c19", "amount_sent_msat": 400000 } ] @@ -30513,17 +32524,17 @@ "id": "example:reserveinputs#1", "method": "reserveinputs", "params": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100" + "psbt": "cHNidP8BADMCAAAAARxvUMSNjH7EKMXzxKwycdOSZ64xHQfWS7JFe0pAwIPCAAAAAAD9////AAAAAAAAAA==" } }, "response": { "reservations": [ { - "txid": "channeltxid111200111200111200111200111200111200111200111200111200", - "vout": 1, + "txid": "c283c0404a7b45b24bd6071d31ae6792d37132acc4f3c528c47e8c8dc4506f1c", + "vout": 0, "was_reserved": false, "reserved": true, - "reserved_to_block": 226 + "reserved_to_block": 227 } ] } @@ -30533,17 +32544,17 @@ "id": "example:reserveinputs#2", "method": "reserveinputs", "params": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200" + "psbt": "cHNidP8BADMCAAAAAWI5Q9jlnWRjkrFQXx2bE0CP2y4UJMx2OfkJrOM2kSOWAAAAAAD9////AAAAAAAAAA==" } }, "response": { "reservations": [ { - "txid": "txidocsigned1011000110001100011000110001100011000110001100011000", - "vout": 1, + "txid": "96239136e3ac09f93976cc24142edb8f40139b1d5f50b19263649de5d8433962", + "vout": 0, "was_reserved": false, "reserved": true, - "reserved_to_block": 226 + "reserved_to_block": 227 } ] } @@ -30617,7 +32628,7 @@ "id": "example:sendcustommsg#1", "method": "sendcustommsg", "params": { - "node_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "node_id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "msg": "77770012" } }, @@ -30840,22 +32851,22 @@ "id": "example:sendinvoice#1", "method": "sendinvoice", "params": { - "invreq": "lno1qgsq000bolt210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000", + "invreq": "lnr1qqg99gqg2990zl3322sqs52279lrzzst2d5k6urvv5s8getnw3gzqp3zderpzxstt8927ynqg044h0egcd8n5h3n9g0u0v4h8ncc3yg02gps7sjqtqssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e7pqfylfzzhcux84v2552lt7p2ekunuamtsdgyk34a86m4zklkdjjdzt757t4sp0m8cp9tdj6hfe67mcuwl3q7zr4sr4z4gn2fvksykkn5g", "label": "test sendinvoice" } }, "response": { "label": "test sendinvoice", - "bolt12": "lno1qgsq000boltsi100si100si100si100si100si100si100si100si100si100si100si100si100si100si100si100si100si100si100si100si100si100si100si100", - "payment_hash": "paymenthashsdinvsi10si10si10si10si10si10si10si10si10si10si10si10", + "bolt12": "lni1qqg99gqg2990zl3322sqs52279lrzzst2d5k6urvv5s8getnw3gzqp3zderpzxstt8927ynqg044h0egcd8n5h3n9g0u0v4h8ncc3yg02gps7sjqtqssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e5zvqyehytxx360zptatj4pygsv9kpal8gnkeyd0tpvd6jv5rkv2uqdgcq204pv4whvd37qg3dg48n0nudvgfw0du46nveyle5q4a2tvru2g4gqgrstm06rld7qk9d5sjtajxztd0lua3zfujsv8lve3wg9px5f34c4wqqvh4pp0dfkr98pur2v55d6ae3cakhn6s9jxn8waf9l00g06g236ymyefu6engjwaqsj4w7cgpkg9naq6kf4zrsqqqqqqqqqqqqqqq5qqqqqqqqqqqqqayjedltzjqqqqqq9yq3ne035q5cq442pqemw8hu9fzzda8nvxcksvjra2sy4c5r9r6et8rj95qqd2ufj8xj065qc0gfq2uqczqqqtqggzvmj9nrga83q474e2sjygxzmq7ln5fmvjxh4skxafx2pmx9wqx5v0qsxsy7vmh0323083refvd9fwvm7r5klg8hjftuqqzygswxl9lfkvlcj72lhlw643qv2gwmfadfydpdwvhydnvgnxmhlgjaxd7nw06y7rx", + "payment_hash": "cedc7bf0a9109bd3cd86c5a0c90faa812b8a0ca3d65671c8b4001aae2647349f", "amount_msat": 1000000, "status": "paid", "pay_index": 2, "amount_received_msat": 1000000, - "paid_at": 1738500000, - "payment_preimage": "paymentpreimagei010101010101010101010101010101010101010101010101", + "paid_at": 1738000000, + "payment_preimage": "c01ed70eb9ddb906c01ed70eb9ddb906c01ed70eb9ddb906c01ed70eb9ddb906", "description": "Simple test", - "expires_at": 1739000000, + "expires_at": 1738000090, "created_index": 4, "updated_index": 2 } @@ -31210,23 +33221,23 @@ "id": "example:sendonion#1", "method": "sendonion", "params": { - "onion": "onion10101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010", + "onion": "00021d5b7e75f56e8fb8c5dbbcfdf954b89d171b35fced6bf4ad929b3b6e081e16c93046493f6f0f4e6f983b424e799b9f60ae7c75fa260760393aad7958e04ec5ea5a06e11078daa9ff31a1aaeed8b04f5ce319118a4bdda9e90861829161dd4d44164816f566d0cc219da32fdd08249068cec2fd589fb216933b95adce045364fcb6d6905a4e4169346b75e6ccfecb0cfdfd74d0574eb684b952db7df8443541cc28296f42afeafbb7a34c3f8c64dce9c0ebb37f5485f66246cbf11b7a8cd4a45d64723b7e706b1ef3eff4ce6133aa86f6c044337716bd0c1173b92b13c4d11453ab850fd945c1af91d3ce41928600bbafbc81b56e3bc704a678a783e2232bc80bc4afa93f84498127123096af80ca5295bb02b6c6524720a0f4dc81075688632b9428f6f4399a0ecf6c17e5c3015c9715af5127000787cc8d7e023f96b6e0175d600911c1dffef6a0d2a8ea8059b287e9e941810de5190ce0c274d6452a8ecc06a0cb98a9550e7e80e8eebdb9c326ca2a3f25b3147daaa68b8d5f745344938645535f858f6a4484b17322b4076714994865ac1660c4f364309bb5147c55bf8458cf6aa7420896d2cb1ee0fe301c83109a102a42d41063c32732ef0366b9b9bd7516c3f7607a54eb3255fa6589bd3ea021cb9deee71b3ea33fa9e509c085216243ea6cea4acf038fee2a4e7418f4087c79423f8bc94fda1ea7de66cb06c131304e39b20634e70721f028427093e059065e6d157cbbdb1ea02476478033164cc90b7707c612897224099c8f3cae86cf0503a1fc1c21e86f4fa7c6332786cc0c44b379516032a93d1c4853453b819d30438814b28bbb14989dfb88819e3fd9b38267b84cc052637ca9c5ae2b149fb53831e4237036cde4b6dd0c0754c52551585692beba1b4228540255ad6fd6bd7912acd47816023332a52075db994decac8cc3611a0f222638084b71a3f8f4c019af28524d96a609fd7cf2e660414b8db54a2d77087087313dea24cab947c04a3ca191d3ba8ffd5ddef72fbc6ad1fc7c71e97cc3da1b677108b907c591c32cb3a41b5636292d9db891013c2d729d67162e4388bee98469f98871af9b5580768f0db885106b981274060f1b3bca8f7297287c6688f6c30054f727d7dd9baa097175fb198b3477c2f1545ea6425f0a6df732ea4be943dff9cece87a9751be426669b1f8b3cb3f7a39f2b72ee68c287e6db1c86405b782c774c22acad3a68bb377713958f6c89e7b8a3d17e52416ea9bdb959949b47af8dd6b380ebc0481873de65edf599f3c1f51c9e4abd388e4d6ad6cf48e5c279286ed7bc683523b9c016227af1cdcf856ec11b47d3f369ac4fde6cee8e19748ef6c365c5effdc81afe560e1597891256dad1b849f550ab681b0c8ba660f1172ac3f63069140c2180537d793f899ba897dae47a848b6e4b1ceac369c59257a3c1d4f2cefe0b64e84ac010397bc55d77a8f801b227ab6453770fc9775788c4a9ce7bdc5f40aa156d1b0c4f9ef41dfbb0518151809761d22e503b9b8725704bbe4f7aaaf4188f80106354743e3f605a1cee1d6d09226176a913a3f9fe9513a081377c820e582fffd534cb27146264972b9f5362dc37cacb821e64ef711eb39addbe1a747df2b1cc54f26dfc1a32ac26297b980e4a492e2242d6d745e508e65f6162ba6e28d4f1f2177c5896c9d82019a74cd6f136e04af3a01a2178e961c0d4e63235982807579ea34f306ec0ea3f0e58a8fee4dd28c2303fa9e09e45b8c9cbc6a69aba0b838473a33e2a287f0824936bfd427f72b7bb7362a40f77136ecfe53173b2acfbbdd49ec390078926d0a9a69114312fee5a9b5ad8f7b80711f76d5ffca8632593b2ea9b2caaebf219ec7586e9d6962353f98b2882fb804a34b16946453038127de73f4e827b190f6001b7a5560b7eb978f8", "first_hop": { - "id": "nodeid020202020202020202020202020202020202020202020202020202020202", - "channel": "109x1x1", + "id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "channel": "110x1x0", "direction": 1, "amount_msat": 1002, "delay": 21, "style": "tlv" }, - "payment_hash": "assocdata0010101010101010101010101010101010101010101010101010101" + "payment_hash": "47c148c1746366e4c2c7496621c22002bc2711b4d9c52cbb9c7b1fdca59c8579" } }, "response": { "message": "Monitor status with listpays or waitsendpay", "created_index": 10, "id": 10, - "payment_hash": "assocdata0010101010101010101010101010101010101010101010101010101", + "payment_hash": "47c148c1746366e4c2c7496621c22002bc2711b4d9c52cbb9c7b1fdca59c8579", "groupid": 1, "amount_sent_msat": 1002, "created_at": 1738000000, @@ -31604,33 +33615,33 @@ "params": { "route": [ { - "id": "nodeid020202020202020202020202020202020202020202020202020202020202", - "channel": "109x1x1", + "id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "channel": "110x1x0", "direction": 1, "amount_msat": 10001, "delay": 15, "style": "tlv" }, { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", - "channel": "111x1x1", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "channel": "112x1x0", "direction": 0, "amount_msat": 10000, "delay": 9, "style": "tlv" } ], - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", - "payment_secret": "paymentsecretinvl00310003100031000310003100031000310003100031000" + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", + "payment_secret": "c2e882ab5464eb650a67ce396d04d97f670127f1e12aea33961b3f5cef65728e" } }, "response": { "message": "Monitor status with listpays or waitsendpay", "created_index": 2, "id": 2, - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", "groupid": 1, - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000, "amount_sent_msat": 10001, "created_at": 1738000000, @@ -31712,12 +33723,12 @@ "id": "example:sendpsbt#1", "method": "sendpsbt", "params": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000" + "psbt": "cHNidP8BAFICAAAAAQ1vO4mydSo3C9Dv+JXe2vMumPjihk/CDmK4pu1GQ/djAQAAAAD9////AYNq3AsAAAAAFgAUyQltQ/QI6lJgICYsza18hRa5KoEAAAAAAAEAiQIAAAABcQX3ZThhSZo4YV9hEj8LW7d9UHdclBO/07zDnLhKQ3cAAAAAAP3///8CQEIPAAAAAAAiACBbjNO5FM9nzdj6YnPJMDU902R2c0+9liECwt9TuQiAzYFs3AsAAAAAIlEgNfEYT2tHDJ3zR9pixLKOfsnuELIgusOszSIgne8ANuptAAAAAQErgWzcCwAAAAAiUSA18RhPa0cMnfNH2mLEso5+ye4QsiC6w6zNIiCd7wA26gETQBOuwDbikxRfXPyMoEFg8RBu/Cq3cA3e0BvaCpZh9KsZ/1MtTpOODzI+tQwEhSmssFh3TNMkYceyQM6fIQAC4eYhFp/BzQHy0ncLgoHiurwaTCRe3Te7ctEuIHI6ad9PXwH2CQDBIO1CAAAAAAAA" } }, "response": { - "tx": "02000000000155multiw61000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000", - "txid": "txid6100061000610006100061000610006100061000610006100061000" + "tx": "020000000001010d6f3b89b2752a370bd0eff895dedaf32e98f8e2864fc20e62b8a6ed4643f7630100000000fdffffff01836adc0b00000000160014c9096d43f408ea526020262ccdad7c8516b92a81014013aec036e293145f5cfc8ca04160f1106efc2ab7700dded01bda0a9661f4ab19ff532d4e938e0f323eb50c048529acb058774cd32461c7b240ce9f210002e1e600000000", + "txid": "88a8ebd201ffda3ff8cfad1829ed8506656ef52298d91f5c06558748f56a6402" } } ] @@ -31900,16 +33911,16 @@ "id": "example:setchannel#1", "method": "setchannel", "params": { - "id": "123x1x1", + "id": "124x1x1", "ignorefeelimits": true } }, "response": { "channels": [ { - "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", - "channel_id": "channelid0230200230200230200230200230200230200230200230200230200", - "short_channel_id": "123x1x1", + "peer_id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "channel_id": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3", + "short_channel_id": "124x1x1", "fee_base_msat": 1, "fee_proportional_millionths": 10, "minimum_htlc_out_msat": 0, @@ -31924,7 +33935,7 @@ "id": "example:setchannel#2", "method": "setchannel", "params": { - "id": "115x1x1", + "id": "116x1x1", "feebase": 4000, "feeppm": 300, "enforcedelay": 0 @@ -31933,9 +33944,9 @@ "response": { "channels": [ { - "peer_id": "nodeid050505050505050505050505050505050505050505050505050505050505", - "channel_id": "channelid0250000250000250000250000250000250000250000250000250000", - "short_channel_id": "115x1x1", + "peer_id": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e", + "channel_id": "f8fc83a432cbfb2fffe222cc06727fdd977b5dd10ebd6707158e799e6f522d9f", + "short_channel_id": "116x1x1", "fee_base_msat": 4000, "fee_proportional_millionths": 300, "minimum_htlc_out_msat": 0, @@ -32106,8 +34117,8 @@ "config": { "config": "autoclean-expiredinvoices-age", "value_int": 300, - "source": "/tmp/.lightning/regtest/config.setconfig:2", - "plugin": "/root/lightning/plugins/autoclean", + "source": "/home/rusty/.lightning/regtest/config.setconfig:2", + "plugin": "/usr/local/libexec/plugins/autoclean", "dynamic": true } } @@ -32125,7 +34136,7 @@ "config": { "config": "min-capacity-sat", "value_int": 500000, - "source": "/tmp/.lightning/regtest/config.setconfig:3", + "source": "/home/rusty/.lightning/regtest/config.setconfig:3", "dynamic": true } } @@ -32197,7 +34208,7 @@ "id": "example:setpsbtversion#1", "method": "setpsbtversion", "params": { - "psbt": "cHNidP8BAgpsbt1001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQABBQEBAQYBAwH7BAIAAAAAAQMIQEIPAAAAAAABBCJRIO7yw3zIUblRUcdhCLSjdFxJsYHu2s0Y29bT0bGAGdcbAA==", "version": 0 } }, @@ -32210,12 +34221,12 @@ "id": "example:setpsbtversion#2", "method": "setpsbtversion", "params": [ - "cHNidP8BAgpsbt20020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202", + "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQABBQECAQYBAwH7BAIAAAAAAQMIQEIPAAAAAAABBCJRIO7yw3zIUblRUcdhCLSjdFxJsYHu2s0Y29bT0bGAGdcbAAEDCNXcMgAAAAAAAQQiUSA2cYCeVGcxdSZII2urHpalr5osmF2lPbYRaw1nKyPcmQA=", 2 ] }, "response": { - "psbt": "cHNidP8BAgpsbt20020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202" + "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQABBQECAQYBAwH7BAIAAAAAAQMIQEIPAAAAAAABBCJRIO7yw3zIUblRUcdhCLSjdFxJsYHu2s0Y29bT0bGAGdcbAAEDCNXcMgAAAAAAAQQiUSA2cYCeVGcxdSZII2urHpalr5osmF2lPbYRaw1nKyPcmQA=" } } ] @@ -32400,7 +34411,7 @@ "runes": [ { "rune": "zFMd1fjhrAYxUeFA54TjloZqOt8JrA_i_nYwIgXkag49MA==", - "last_used": 1738000000, + "last_used": 1738000000.0, "unique_id": "0", "restrictions": [], "restrictions_as_english": "" @@ -32418,14 +34429,14 @@ "runes": [ { "rune": "zFMd1fjhrAYxUeFA54TjloZqOt8JrA_i_nYwIgXkag49MA==", - "last_used": 1738000000, + "last_used": 1738000000.0, "unique_id": "0", "restrictions": [], "restrictions_as_english": "" }, { "rune": "RXgu0DD_i0wSPEZkIDyZIWL0bSAGdhvJ_GHOQdTg04A9MSZpZF4wMjY2ZTQ1OThkMWQzYzQxNWY1NyZtZXRob2Q9bGlzdHBlZXJz", - "last_used": 1738000000, + "last_used": 1738000000.0, "unique_id": "1", "restrictions": [ { @@ -32455,7 +34466,7 @@ }, { "rune": "QUJEYMLGgiaJvMDv_MhR2hiMKIBTbq-PrL-KxcIlirQ9MiZtZXRob2Q9cGF5JnBuYW1lYW1vdW50bXNhdDwxMDAwMA==", - "last_used": 1738000000, + "last_used": 1738000000.0, "unique_id": "2", "restrictions": [ { @@ -32491,7 +34502,7 @@ "alternatives": [ { "fieldname": "id", - "value": "nodeid010101010101010101010101010101010101010101010101010101010101", + "value": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "condition": "=", "english": "id equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" } @@ -32524,13 +34535,13 @@ "alternatives": [ { "fieldname": "pnameid", - "value": "nodeid010101010101010101010101010101010101010101010101010101010101", + "value": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "condition": "=", "english": "pnameid equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" }, { "fieldname": "parr0", - "value": "nodeid010101010101010101010101010101010101010101010101010101010101", + "value": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "condition": "=", "english": "parr0 equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" } @@ -32548,7 +34559,7 @@ "alternatives": [ { "fieldname": "id", - "value": "nodeid010101010101010101010101010101010101010101010101010101010101", + "value": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "condition": "=", "english": "id equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" } @@ -32786,11 +34797,11 @@ "id": "example:signinvoice#1", "method": "signinvoice", "params": { - "invstring": "lnbcrt100n1pnt2bolt11invl010200000000bolt11invl010200000000bolt11invl010200000000bolt11invl010200000000bolt11invl010200000000bolt11invl010200000000bolt11invl010200000000bolt11invl010200000000bolt11invl010200000000bolt11invl010200000000" + "invstring": "lnbcrt10n1pne035qsp5am7uy92zzz7drzwnfjuu2w74hw2s0qjutwtc3jnz778ufwn50cgspp5pmul004jv6lukkje3pg2qw607sf56v7leqvdk0gkn83z67u0q9aqdqlv3jhxcmjd9c8g6t0dcsxjmnktakrzvsxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqdcqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqavy48snxm0pu3hp2eeszumfntnuuzmzsr67t94g9q2crgpp3n0t42q7lya6gja9246k5eluu0twg3n7qntxugqv8yuw99ckte32xvmspc9vnf0" } }, "response": { - "bolt11": "lnbcrt100n1pnt2bolt11invl060600000000bolt11invl060600000000bolt11invl060600000000bolt11invl060600000000bolt11invl060600000000bolt11invl060600000000bolt11invl060600000000bolt11invl060600000000bolt11invl060600000000bolt11invl060600000000" + "bolt11": "lnbcrt10n1pne035qsp5am7uy92zzz7drzwnfjuu2w74hw2s0qjutwtc3jnz778ufwn50cgspp5pmul004jv6lukkje3pg2qw607sf56v7leqvdk0gkn83z67u0q9aqdqlv3jhxcmjd9c8g6t0dcsxjmnktakrzvsxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqdcqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgq9vxe6l9fs0n0t3lzecwsmqmwuen2v0ugddya6ays98d7y3kcusvjfee5zcgf274wpm54ta8w6sa8tlkn5w4rckj4tv7qrv2j9dz2kyspj0776q" } }, { @@ -32798,11 +34809,11 @@ "id": "example:signinvoice#2", "method": "signinvoice", "params": [ - "lnbcrt100n1pnt2bolt11invl020600000000bolt11invl020600000000bolt11invl020600000000bolt11invl020600000000bolt11invl020600000000bolt11invl020600000000bolt11invl020600000000bolt11invl020600000000bolt11invl020600000000bolt11invl020600000000" + "lnbcrt1250n1pne035qsp57thr33aj04aek8738nm42nntaydcaw4zswr047ja0gxy5sea8egqpp58veqg20enh8z5w8avz0jyznsfgnxdgs9km2mlugn62nvypjhwj5sdqlv3jhxcmjd9c8g6t0dcsxjmnktakrydscqp99qxpqysgq9569pf2lk3desk0xz8l90eeanhkz2j4e4yk8wlzwsy8efmm07mdn5n62ymlymt73yvxwyc4zuj45vwka2ta0rmntwxu4m2qp46h2yfcq5muart" ] }, "response": { - "bolt11": "lnbcrt100n1pnt2bolt11invl060700000000bolt11invl060700000000bolt11invl060700000000bolt11invl060700000000bolt11invl060700000000bolt11invl060700000000bolt11invl060700000000bolt11invl060700000000bolt11invl060700000000bolt11invl060700000000" + "bolt11": "lnbcrt1250n1pne035qsp57thr33aj04aek8738nm42nntaydcaw4zswr047ja0gxy5sea8egqpp58veqg20enh8z5w8avz0jyznsfgnxdgs9km2mlugn62nvypjhwj5sdqlv3jhxcmjd9c8g6t0dcsxjmnktakrydscqp99qxpqysgq0m4mht376q42hx4m9jw5fkrjlhg0uan3rpcrnvz6lyanawfnaqd34d8g0g4x2rmfqcxezgaywj9h55te97g8x4umqr0y8p9j8r897xgq4cuq98" } } ] @@ -33067,11 +35078,11 @@ "id": "example:signpsbt#1", "method": "signpsbt", "params": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000" + "psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcAQ4g8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0BDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIEu/Rzf4eie4AAQMIQVncCwAAAAABBCJRIDvhN+WjzUt2EEWojAco0yQ1GDbwTtWd/aN5uNhGRlK3DPwJbGlnaHRuaW5nAQgU79HN/h6J7gABAwhAQg8AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJlh/FQRnSXyAA==" } }, "response": { - "signed_psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000" + "signed_psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcIgICRz15z0oQ57qDTAJqrEPqGLCn+3Xs2lGEv6+oxGYV9rdHMEQCID20o7OkdrA186bhtl5XxvomAgLw5qTckxZ94vSI8teaAiAIfpvcxym7FktDtx2ApNv/Tgz0EOxLEtpXp8HgO8/pqQEiBgJHPXnPShDnuoNMAmqsQ+oYsKf7dezaUYS/r6jEZhX2twgDz+yHAAAAAAEOIPFzeDEZi+pD6TLIJPXz4vliVqLRobrIby/0l1ZyiZ2dAQ8EAAAAAAEQBP3///8M/AlsaWdodG5pbmcBCBLv0c3+HonuAAEDCEFZ3AsAAAAAAQQiUSA74Tflo81LdhBFqIwHKNMkNRg28E7Vnf2jebjYRkZStyEHE0cioCqqq2UZ2npxQi9Q6DXNZheODM6F4GjHHS3XScEJAG/ctUwEAAAADPwJbGlnaHRuaW5nAQgU79HN/h6J7gABAwhAQg8AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJlh/FQRnSXyAA==" } }, { @@ -33079,11 +35090,11 @@ "id": "example:signpsbt#2", "method": "signpsbt", "params": [ - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000" + "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcAQ4g8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0BDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIGu/Rzf4eie4AAQMIYg3NCwAAAAABBCJRIMkYPt6RIfPG/RSYgixHp2AnMidmnJCVCIQ7rFu9gT9oDPwJbGlnaHRuaW5nAQgc79HN/h6J7gABAwiAhB4AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJth/FQRnSXyAA==" ] }, "response": { - "signed_psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000" + "signed_psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcIgICRz15z0oQ57qDTAJqrEPqGLCn+3Xs2lGEv6+oxGYV9rdHMEQCIFl+CUBKJcswA/8DnqzPrYolo0k0uUfRJv60eB4niMmJAiA169wRBmliX5GL7+hqb2OHZ5i81V0lkIJylHfvkn933QEiBgJHPXnPShDnuoNMAmqsQ+oYsKf7dezaUYS/r6jEZhX2twgDz+yHAAAAAAEOIPFzeDEZi+pD6TLIJPXz4vliVqLRobrIby/0l1ZyiZ2dAQ8EAAAAAAEQBP3///8M/AlsaWdodG5pbmcBCBrv0c3+HonuAAEDCGINzQsAAAAAAQQiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aCEHn35PoCbJlSMQ2fFCjyoCQfQi72lK/cajhKIKcycdYWwJABIqDc8FAAAADPwJbGlnaHRuaW5nAQgc79HN/h6J7gABAwiAhB4AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJth/FQRnSXyAA==" } } ] @@ -33206,13 +35217,13 @@ "id": "example:splice_init#1", "method": "splice_init", "params": { - "channel_id": "channelid0780000780000780000780000780000780000780000780000780000", + "channel_id": "8c69f1817bfe5402d7759cd829ae89ed7b16f0004fec1f3df9f5a5d3961f5f29", "relative_amount": 100000, - "initialpsbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000" + "initialpsbt": "cHNidP8BAF4CAAAAAYxp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAQAAAAD9////Aed8DQAAAAAAIlEgj47URidVfbzMQq4BipxUdKmRKFeSxMqJHB9ZxWZdNGCVAAAAAAEAiQIAAAABe8lhdLWTt3QqdEAA+Ye+EPU6s0fgfj6uSlpNyrejJXQBAAAAAP3///8CQEIPAAAAAAAiACCT3t0MJlvKhoV20+4uWe67sg68KW5Y9+3Kk9XursCJlgEvDwAAAAAAIlEgW7Q7f9oXFdDdAUFoJaGFIqLX7LFkdbiHgOj6/Bxz74mPAAAAAQErAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviQAA" } }, "response": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000" + "psbt": "cHNidP8BALICAAAAAoxp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAQAAAAD9////jGnxgXv+VALXdZzYKa6J7XsW8ABP7B89+fWl05YfXykAAAAAAAAAAAAC53wNAAAAAAAiUSCPjtRGJ1V9vMxCrgGKnFR0qZEoV5LEyokcH1nFZl00YODIEAAAAAAAIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZaVAAAAAAEAiQIAAAABe8lhdLWTt3QqdEAA+Ye+EPU6s0fgfj6uSlpNyrejJXQBAAAAAP3///8CQEIPAAAAAAAiACCT3t0MJlvKhoV20+4uWe67sg68KW5Y9+3Kk9XursCJlgEvDwAAAAAAIlEgW7Q7f9oXFdDdAUFoJaGFIqLX7LFkdbiHgOj6/Bxz74mPAAAAAQErAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviQz8CWxpZ2h0bmluZwEI2+v9SbbITVQAAQCJAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAEAAAAA/f///wJAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviY8AAAABAStAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWAQVHUiECVw7AtutUVmMwIYOmLqx10I/e62TzE1IZIGXWAcjKUh0hAmaGfDQrglCra07axtuuL95TeCtpzRcTmUn71PIISH/yUq4M/AlsaWdodG5pbmcBCN3r/Um2yE1UAAz8CWxpZ2h0bmluZwEI3+v9SbbITVQADPwJbGlnaHRuaW5nAQjh6/1JtshNVAA=" } }, { @@ -33220,13 +35231,13 @@ "id": "example:splice_init#2", "method": "splice_init", "params": [ - "channelid0780000780000780000780000780000780000780000780000780000", + "8c69f1817bfe5402d7759cd829ae89ed7b16f0004fec1f3df9f5a5d3961f5f29", -105000, - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000" + "cHNidP8BAgQCAAAAAQMElgAAAAEEAQABBQEBAQYBAwH7BAIAAAAAAQMIoIYBAAAAAAABBCJRIMTSgkFfmoHRjgi2GaGdEWuGVssb9JPl9UC797egWEzaAA==" ] }, "response": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000" + "psbt": "cHNidP8BAgQCAAAAAQMElgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQCyAgAAAAKMafGBe/5UAtd1nNgprontexbwAE/sHz359aXTlh9fKQEAAAAA/f///4xp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAAAAAAAAAAAAAud8DQAAAAAAIlEgj47URidVfbzMQq4BipxUdKmRKFeSxMqJHB9ZxWZdNGDgyBAAAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWlQAAAAEBK+DIEAAAAAAAIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZYBBUdSIQJXDsC261RWYzAhg6YurHXQj97rZPMTUhkgZdYByMpSHSECZoZ8NCuCUKtrTtrG264v3lN4K2nNFxOZSfvU8ghIf/JSrgEOIKKgpcI9Q+wEsS7RSRmjmYdS6mp201YJrWSI+o3lUYXdAQ8EAQAAAAEQBAAAAAAM/AlsaWdodG5pbmcBCOPr/Um2yE1UAAEDCKCGAQAAAAAAAQQiUSDE0oJBX5qB0Y4IthmhnRFrhlbLG/ST5fVAu/e3oFhM2gz8CWxpZ2h0bmluZwEI5ev9SbbITVQAAQMIuC4PAAAAAAABBCIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWDPwJbGlnaHRuaW5nAQjn6/1JtshNVAA=" } } ] @@ -33370,15 +35381,15 @@ "id": "example:splice_signed#1", "method": "splice_signed", "params": { - "channel_id": "channelid0780000780000780000780000780000780000780000780000780000", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000" + "channel_id": "8c69f1817bfe5402d7759cd829ae89ed7b16f0004fec1f3df9f5a5d3961f5f29", + "psbt": "cHNidP8BALICAAAAAoxp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAQAAAAD9////jGnxgXv+VALXdZzYKa6J7XsW8ABP7B89+fWl05YfXykAAAAAAAAAAAAC53wNAAAAAAAiUSCPjtRGJ1V9vMxCrgGKnFR0qZEoV5LEyokcH1nFZl00YODIEAAAAAAAIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZaVAAAAAAEAiQIAAAABe8lhdLWTt3QqdEAA+Ye+EPU6s0fgfj6uSlpNyrejJXQBAAAAAP3///8CQEIPAAAAAAAiACCT3t0MJlvKhoV20+4uWe67sg68KW5Y9+3Kk9XursCJlgEvDwAAAAAAIlEgW7Q7f9oXFdDdAUFoJaGFIqLX7LFkdbiHgOj6/Bxz74mPAAAAAQErAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviQETQLTBb3GLDHPmgJT+hDwc0lDwZiQ2XhntW4Utl0NU4wIUH17uYSeZn452jYgOtBefZzeh/10BLuF5nKig8JZ0afwhFvTEPeeTGXjlJSGiyNDqLm+lpUC+f31Q3j7YhyeyShxZCQD2T+TUAAAAAAz8CWxpZ2h0bmluZwEI2+v9SbbITVQAAQCJAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAEAAAAA/f///wJAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviY8AAAABAStAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWIgICVw7AtutUVmMwIYOmLqx10I/e62TzE1IZIGXWAcjKUh1HMEQCIB7dMSfLrXShtRe8zeHg+W1vLd8clWNtXWvLwOdeROcdAiADnsWDCAyq1tGn0qCOzzn5vnFDlLJHFj61W+YhPfQRHgEiAgJmhnw0K4JQq2tO2sbbri/eU3grac0XE5lJ+9TyCEh/8kcwRAIgNA4j/beg90ET4TwzJptoXqhtR7dr4/cgcShy6I4UpSACIDUY6E6eQvCmlMZ394cS1+fwijE94o2jS408fjuHRSPyAQEDBAEAAAABBUdSIQJXDsC261RWYzAhg6YurHXQj97rZPMTUhkgZdYByMpSHSECZoZ8NCuCUKtrTtrG264v3lN4K2nNFxOZSfvU8ghIf/JSrgz8CWxpZ2h0bmluZwEI3ev9SbbITVQAIQf4l/XsahrhZhlxJbtZN6e213tQQFKbPCTiBwSf3CvcvAkA9Hbq9AUAAAAM/AlsaWdodG5pbmcBCN/r/Um2yE1UAAz8CWxpZ2h0bmluZwEI4ev9SbbITVQA" } }, "response": { - "tx": "02000000000101sendpt64000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000", - "txid": "txid6400064000640006400064000640006400064000640006400064000", + "tx": "020000000001028c69f1817bfe5402d7759cd829ae89ed7b16f0004fec1f3df9f5a5d3961f5f290100000000fdffffff8c69f1817bfe5402d7759cd829ae89ed7b16f0004fec1f3df9f5a5d3961f5f2900000000000000000002e77c0d00000000002251208f8ed44627557dbccc42ae018a9c5474a991285792c4ca891c1f59c5665d3460e0c810000000000022002093dedd0c265bca868576d3ee2e59eebbb20ebc296e58f7edca93d5eeaec089960140b4c16f718b0c73e68094fe843c1cd250f06624365e19ed5b852d974354e302141f5eee6127999f8e768d880eb4179f6737a1ff5d012ee1799ca8a0f0967469fc040047304402201edd3127cbad74a1b517bccde1e0f96d6f2ddf1c95636d5d6bcbc0e75e44e71d0220039ec583080caad6d1a7d2a08ecf39f9be714394b247163eb55be6213df4111e014730440220340e23fdb7a0f74113e13c33269b685ea86d47b76be3f720712872e88e14a52002203518e84e9e42f0a694c677f78712d7e7f08a313de28da34b8d3c7e3b874523f20147522102570ec0b6eb545663302183a62eac75d08fdeeb64f31352192065d601c8ca521d210266867c342b8250ab6b4edac6dbae2fde53782b69cd17139949fbd4f208487ff252ae95000000", + "txid": "dd8551e58dfa8864ad0956d3766aea528799a31949d12eb104ec433dc2a5a0a2", "outnum": 1, - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000" + "psbt": "cHNidP8BAgQCAAAAAQMElQAAAAEEAQIBBQECAQYBAwH7BAIAAAAAAQCJAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAEAAAAA/f///wJAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviY8AAAABASsBLw8AAAAAACJRIFu0O3/aFxXQ3QFBaCWhhSKi1+yxZHW4h4Do+vwcc++JAQhCAUC0wW9xiwxz5oCU/oQ8HNJQ8GYkNl4Z7VuFLZdDVOMCFB9e7mEnmZ+Odo2IDrQXn2c3of9dAS7heZyooPCWdGn8AQ4gjGnxgXv+VALXdZzYKa6J7XsW8ABP7B89+fWl05YfXykBDwQBAAAAARAE/f///wz8CWxpZ2h0bmluZwEI2+v9SbbITVQAAQCJAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAEAAAAA/f///wJAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviY8AAAABAStAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWAQjaBABHMEQCIB7dMSfLrXShtRe8zeHg+W1vLd8clWNtXWvLwOdeROcdAiADnsWDCAyq1tGn0qCOzzn5vnFDlLJHFj61W+YhPfQRHgFHMEQCIDQOI/23oPdBE+E8MyabaF6obUe3a+P3IHEocuiOFKUgAiA1GOhOnkLwppTGd/eHEtfn8IoxPeKNo0uNPH47h0Uj8gFHUiECVw7AtutUVmMwIYOmLqx10I/e62TzE1IZIGXWAcjKUh0hAmaGfDQrglCra07axtuuL95TeCtpzRcTmUn71PIISH/yUq4BDiCMafGBe/5UAtd1nNgprontexbwAE/sHz359aXTlh9fKQEPBAAAAAABEAQAAAAADPwJbGlnaHRuaW5nAQjd6/1JtshNVAABAwjnfA0AAAAAAAEEIlEgj47URidVfbzMQq4BipxUdKmRKFeSxMqJHB9ZxWZdNGAhB/iX9exqGuFmGXElu1k3p7bXe1BAUps8JOIHBJ/cK9y8CQD0dur0BQAAAAz8CWxpZ2h0bmluZwEI3+v9SbbITVQAAQMI4MgQAAAAAAABBCIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWDPwJbGlnaHRuaW5nAQjh6/1JtshNVAA=" } }, { @@ -33386,15 +35397,15 @@ "id": "example:splice_signed#2", "method": "splice_signed", "params": { - "channel_id": "channelid0780000780000780000780000780000780000780000780000780000", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000" + "channel_id": "8c69f1817bfe5402d7759cd829ae89ed7b16f0004fec1f3df9f5a5d3961f5f29", + "psbt": "cHNidP8BAgQCAAAAAQMElgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQCyAgAAAAKMafGBe/5UAtd1nNgprontexbwAE/sHz359aXTlh9fKQEAAAAA/f///4xp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAAAAAAAAAAAAAud8DQAAAAAAIlEgj47URidVfbzMQq4BipxUdKmRKFeSxMqJHB9ZxWZdNGDgyBAAAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWlQAAAAEBK+DIEAAAAAAAIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZYiAgJXDsC261RWYzAhg6YurHXQj97rZPMTUhkgZdYByMpSHUcwRAIgHbSqe2swZI4NmH8Cd/8gnOu1gpTvjTOm3DnFa8F0jqUCIA6TKkE+sHorpv9rFt1kaF8susqwjIwnSpviEfQj4EnpASICAmaGfDQrglCra07axtuuL95TeCtpzRcTmUn71PIISH/yRzBEAiAjs9cgsaoFzMWW7C34aGWMEEtzBSbkl2oNBqTbASGeHwIgWFJGWFWqUFMpe28YbhGBQHshcyD7LR3Rf3bM/q3Ty2IBAQMEAQAAAAEFR1IhAlcOwLbrVFZjMCGDpi6sddCP3utk8xNSGSBl1gHIylIdIQJmhnw0K4JQq2tO2sbbri/eU3grac0XE5lJ+9TyCEh/8lKuAQ4goqClwj1D7ASxLtFJGaOZh1LqanbTVgmtZIj6jeVRhd0BDwQBAAAAARAEAAAAAAz8CWxpZ2h0bmluZwEI4+v9SbbITVQAAQMIoIYBAAAAAAABBCJRIMTSgkFfmoHRjgi2GaGdEWuGVssb9JPl9UC797egWEzaDPwJbGlnaHRuaW5nAQjl6/1JtshNVAABAwi4Lg8AAAAAAAEEIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZYM/AlsaWdodG5pbmcBCOfr/Um2yE1UAA==" } }, "response": { - "tx": "02000000000102sendpt65000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000", - "txid": "txid6500065000650006500065000650006500065000650006500065000", + "tx": "02000000000101a2a0a5c23d43ec04b12ed14919a3998752ea6a76d35609ad6488fa8de55185dd01000000000000000002a086010000000000225120c4d282415f9a81d18e08b619a19d116b8656cb1bf493e5f540bbf7b7a0584cdab82e0f000000000022002093dedd0c265bca868576d3ee2e59eebbb20ebc296e58f7edca93d5eeaec08996040047304402201db4aa7b6b30648e0d987f0277ff209cebb58294ef8d33a6dc39c56bc1748ea502200e932a413eb07a2ba6ff6b16dd64685f2cbacab08c8c274a9be211f423e049e901473044022023b3d720b1aa05ccc596ec2df868658c104b730526e4976a0d06a4db01219e1f02205852465855aa5053297b6f186e1181407b217320fb2d1dd17f76ccfeadd3cb620147522102570ec0b6eb545663302183a62eac75d08fdeeb64f31352192065d601c8ca521d210266867c342b8250ab6b4edac6dbae2fde53782b69cd17139949fbd4f208487ff252ae96000000", + "txid": "738c9b7d3bb47dcfe6bed43c999d2e2f177c476d2bc7d3ffb49bd25ee21c68a7", "outnum": 1, - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000" + "psbt": "cHNidP8BAgQCAAAAAQMElgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQCyAgAAAAKMafGBe/5UAtd1nNgprontexbwAE/sHz359aXTlh9fKQEAAAAA/f///4xp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAAAAAAAAAAAAAud8DQAAAAAAIlEgj47URidVfbzMQq4BipxUdKmRKFeSxMqJHB9ZxWZdNGDgyBAAAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWlQAAAAEBK+DIEAAAAAAAIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZYBCNoEAEcwRAIgHbSqe2swZI4NmH8Cd/8gnOu1gpTvjTOm3DnFa8F0jqUCIA6TKkE+sHorpv9rFt1kaF8susqwjIwnSpviEfQj4EnpAUcwRAIgI7PXILGqBczFluwt+GhljBBLcwUm5JdqDQak2wEhnh8CIFhSRlhVqlBTKXtvGG4RgUB7IXMg+y0d0X92zP6t08tiAUdSIQJXDsC261RWYzAhg6YurHXQj97rZPMTUhkgZdYByMpSHSECZoZ8NCuCUKtrTtrG264v3lN4K2nNFxOZSfvU8ghIf/JSrgEOIKKgpcI9Q+wEsS7RSRmjmYdS6mp201YJrWSI+o3lUYXdAQ8EAQAAAAEQBAAAAAAM/AlsaWdodG5pbmcBCOPr/Um2yE1UAAEDCKCGAQAAAAAAAQQiUSDE0oJBX5qB0Y4IthmhnRFrhlbLG/ST5fVAu/e3oFhM2gz8CWxpZ2h0bmluZwEI5ev9SbbITVQAAQMIuC4PAAAAAAABBCIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWDPwJbGlnaHRuaW5nAQjn6/1JtshNVAA=" } } ] @@ -33538,12 +35549,12 @@ "id": "example:splice_update#1", "method": "splice_update", "params": { - "channel_id": "channelid0780000780000780000780000780000780000780000780000780000", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000" + "channel_id": "8c69f1817bfe5402d7759cd829ae89ed7b16f0004fec1f3df9f5a5d3961f5f29", + "psbt": "cHNidP8BALICAAAAAoxp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAQAAAAD9////jGnxgXv+VALXdZzYKa6J7XsW8ABP7B89+fWl05YfXykAAAAAAAAAAAAC53wNAAAAAAAiUSCPjtRGJ1V9vMxCrgGKnFR0qZEoV5LEyokcH1nFZl00YODIEAAAAAAAIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZaVAAAAAAEAiQIAAAABe8lhdLWTt3QqdEAA+Ye+EPU6s0fgfj6uSlpNyrejJXQBAAAAAP3///8CQEIPAAAAAAAiACCT3t0MJlvKhoV20+4uWe67sg68KW5Y9+3Kk9XursCJlgEvDwAAAAAAIlEgW7Q7f9oXFdDdAUFoJaGFIqLX7LFkdbiHgOj6/Bxz74mPAAAAAQErAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviQz8CWxpZ2h0bmluZwEI2+v9SbbITVQAAQCJAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAEAAAAA/f///wJAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviY8AAAABAStAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWAQVHUiECVw7AtutUVmMwIYOmLqx10I/e62TzE1IZIGXWAcjKUh0hAmaGfDQrglCra07axtuuL95TeCtpzRcTmUn71PIISH/yUq4M/AlsaWdodG5pbmcBCN3r/Um2yE1UAAz8CWxpZ2h0bmluZwEI3+v9SbbITVQADPwJbGlnaHRuaW5nAQjh6/1JtshNVAA=" } }, "response": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200", + "psbt": "cHNidP8BALICAAAAAoxp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAQAAAAD9////jGnxgXv+VALXdZzYKa6J7XsW8ABP7B89+fWl05YfXykAAAAAAAAAAAAC53wNAAAAAAAiUSCPjtRGJ1V9vMxCrgGKnFR0qZEoV5LEyokcH1nFZl00YODIEAAAAAAAIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZaVAAAAAAEAiQIAAAABe8lhdLWTt3QqdEAA+Ye+EPU6s0fgfj6uSlpNyrejJXQBAAAAAP3///8CQEIPAAAAAAAiACCT3t0MJlvKhoV20+4uWe67sg68KW5Y9+3Kk9XursCJlgEvDwAAAAAAIlEgW7Q7f9oXFdDdAUFoJaGFIqLX7LFkdbiHgOj6/Bxz74mPAAAAAQErAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviQz8CWxpZ2h0bmluZwEI2+v9SbbITVQAAQCJAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAEAAAAA/f///wJAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviY8AAAABAStAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWIgICVw7AtutUVmMwIYOmLqx10I/e62TzE1IZIGXWAcjKUh1HMEQCIB7dMSfLrXShtRe8zeHg+W1vLd8clWNtXWvLwOdeROcdAiADnsWDCAyq1tGn0qCOzzn5vnFDlLJHFj61W+YhPfQRHgEiAgJmhnw0K4JQq2tO2sbbri/eU3grac0XE5lJ+9TyCEh/8kcwRAIgNA4j/beg90ET4TwzJptoXqhtR7dr4/cgcShy6I4UpSACIDUY6E6eQvCmlMZ394cS1+fwijE94o2jS408fjuHRSPyAQEDBAEAAAABBUdSIQJXDsC261RWYzAhg6YurHXQj97rZPMTUhkgZdYByMpSHSECZoZ8NCuCUKtrTtrG264v3lN4K2nNFxOZSfvU8ghIf/JSrgz8CWxpZ2h0bmluZwEI3ev9SbbITVQADPwJbGlnaHRuaW5nAQjf6/1JtshNVAAM/AlsaWdodG5pbmcBCOHr/Um2yE1UAA==", "commitments_secured": true, "signatures_secured": true } @@ -33553,12 +35564,12 @@ "id": "example:splice_update#2", "method": "splice_update", "params": [ - "channelid0780000780000780000780000780000780000780000780000780000", - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000" + "8c69f1817bfe5402d7759cd829ae89ed7b16f0004fec1f3df9f5a5d3961f5f29", + "cHNidP8BAgQCAAAAAQMElgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQCyAgAAAAKMafGBe/5UAtd1nNgprontexbwAE/sHz359aXTlh9fKQEAAAAA/f///4xp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAAAAAAAAAAAAAud8DQAAAAAAIlEgj47URidVfbzMQq4BipxUdKmRKFeSxMqJHB9ZxWZdNGDgyBAAAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWlQAAAAEBK+DIEAAAAAAAIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZYBBUdSIQJXDsC261RWYzAhg6YurHXQj97rZPMTUhkgZdYByMpSHSECZoZ8NCuCUKtrTtrG264v3lN4K2nNFxOZSfvU8ghIf/JSrgEOIKKgpcI9Q+wEsS7RSRmjmYdS6mp201YJrWSI+o3lUYXdAQ8EAQAAAAEQBAAAAAAM/AlsaWdodG5pbmcBCOPr/Um2yE1UAAEDCKCGAQAAAAAAAQQiUSDE0oJBX5qB0Y4IthmhnRFrhlbLG/ST5fVAu/e3oFhM2gz8CWxpZ2h0bmluZwEI5ev9SbbITVQAAQMIuC4PAAAAAAABBCIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWDPwJbGlnaHRuaW5nAQjn6/1JtshNVAA=" ] }, "response": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000", + "psbt": "cHNidP8BAgQCAAAAAQMElgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQCyAgAAAAKMafGBe/5UAtd1nNgprontexbwAE/sHz359aXTlh9fKQEAAAAA/f///4xp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAAAAAAAAAAAAAud8DQAAAAAAIlEgj47URidVfbzMQq4BipxUdKmRKFeSxMqJHB9ZxWZdNGDgyBAAAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWlQAAAAEBK+DIEAAAAAAAIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZYiAgJXDsC261RWYzAhg6YurHXQj97rZPMTUhkgZdYByMpSHUcwRAIgHbSqe2swZI4NmH8Cd/8gnOu1gpTvjTOm3DnFa8F0jqUCIA6TKkE+sHorpv9rFt1kaF8susqwjIwnSpviEfQj4EnpASICAmaGfDQrglCra07axtuuL95TeCtpzRcTmUn71PIISH/yRzBEAiAjs9cgsaoFzMWW7C34aGWMEEtzBSbkl2oNBqTbASGeHwIgWFJGWFWqUFMpe28YbhGBQHshcyD7LR3Rf3bM/q3Ty2IBAQMEAQAAAAEFR1IhAlcOwLbrVFZjMCGDpi6sddCP3utk8xNSGSBl1gHIylIdIQJmhnw0K4JQq2tO2sbbri/eU3grac0XE5lJ+9TyCEh/8lKuAQ4goqClwj1D7ASxLtFJGaOZh1LqanbTVgmtZIj6jeVRhd0BDwQBAAAAARAEAAAAAAz8CWxpZ2h0bmluZwEI4+v9SbbITVQAAQMIoIYBAAAAAAABBCJRIMTSgkFfmoHRjgi2GaGdEWuGVssb9JPl9UC797egWEzaDPwJbGlnaHRuaW5nAQjl6/1JtshNVAABAwi4Lg8AAAAAAAEEIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZYM/AlsaWdodG5pbmcBCOfr/Um2yE1UAA==", "commitments_secured": true, "signatures_secured": true } @@ -33722,7 +35733,7 @@ "response": { "rows": [ [ - "nodeid020202020202020202020202020202020202020202020202020202020202" + "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59" ] ] } @@ -33756,19 +35767,19 @@ "id": "example:sql#3", "method": "sql", "params": [ - "SELECT nodeid FROM nodes WHERE nodeid != x'nodeid030303030303030303030303030303030303030303030303030303030303'" + "SELECT nodeid FROM nodes WHERE nodeid != x'035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d'" ] }, "response": { "rows": [ [ - "nodeid020202020202020202020202020202020202020202020202020202020202" + "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59" ], [ - "nodeid010101010101010101010101010101010101010101010101010101010101" + "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" ], [ - "nodeid040404040404040404040404040404040404040404040404040404040404" + "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199" ] ] } @@ -33781,16 +35792,16 @@ "id": "example:sql#4", "method": "sql", "params": [ - "SELECT nodeid FROM nodes WHERE nodeid IN (x'nodeid010101010101010101010101010101010101010101010101010101010101', x'nodeid030303030303030303030303030303030303030303030303030303030303')" + "SELECT nodeid FROM nodes WHERE nodeid IN (x'0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518', x'035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d')" ] }, "response": { "rows": [ [ - "nodeid010101010101010101010101010101010101010101010101010101010101" + "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" ], [ - "nodeid030303030303030303030303030303030303030303030303030303030303" + "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d" ] ] } @@ -33809,7 +35820,7 @@ "response": { "rows": [ [ - "nodeid020202020202020202020202020202020202020202020202020202020202", + "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", 490493792, 1000000000, "CHANNELD_NORMAL:Channel ready for use." @@ -33847,21 +35858,15 @@ "response": { "rows": [ [ - 28, - 23, + 22, + 17, 0, "option_static_remotekey" ], [ - 29, 23, + 17, 1, - "option_anchors_zero_fee_htlc_tx" - ], - [ - 30, - 23, - 2, "option_anchors" ] ] @@ -33917,12 +35922,12 @@ }, "response": { "scb": [ - "0000000000000001channelid0340000340000340000340000340000340000340000340000340000nodeid03030303030303030303030303030303030303030303030303030303030300017f000001034003400340034003400340034003400340034003400340034003400340034003400340034003400340034003400003401000", - "0000000000000002channelid0340200340200340200340200340200340200340200340200340200nodeid03030303030303030303030303030303030303030303030303030303030300017f000001034203420342034203420342034203420342034203420342034203420342034203420342034203420342034203420003401000", - "0000000000000003channelid0410000410000410000410000410000410000410000410000410000nodeid01010101010101010101010101010101010101010101010101010101010100017f000001041004100410041004100410041004100410041004100410041004100410041004100410041004100410041004100003401000", - "0000000000000004channelid0120000120000120000120000120000120000120000120000120000nodeid01010101010101010101010101010101010101010101010101010101010100017f000001012001200120012001200120012001200120012001200120012001200120012001200120012001200120012001200003401000", - "0000000000000005channelid1520015200152001520015200152001520015200152001520015200nodeid01010101010101010101010101010101010101010101010101010101010100017f000001015201520152015201520152015201520152015201520152015201520152015201520152015201520152015201520003401000", - "0000000000000006channelid1240012400124001240012400124001240012400124001240012400nodeid02020202020202020202020202020202020202020202020202020202020200017f000001012401240124012401240124012401240124012401240124012401240124012401240124012401240124012401240003401000" + "0000000000000006f4e1de801de57374d5737da622611e3a1ad9f16d5df9c30fceecc11ce732eeeb022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59017f000001a95cbe3270e5e0998af5eb0a67f7bf6e8d5b3d3d43059b3e4cfbd1e4fca6152c51320000000100000000000f42400003401000000000eb015c0000fffffffffffe000000020000ffffffffffff3283fc1863a9702a8e188ed55475324e55485a8758d2068cfea35851418c55740000fffffffffffed00ec892b1739b55ddc0cca2988d8731eb33f2295c1fcc13fdbdfff9d3f85d6d038402a6939f0f9d5c7a41464169eb692b4d2d73266b3c46345cd036ca577a15bdeeaa027662682a646ce7671c3a091bf639176e87d3379022126b209ebadadae19ffc0e02c59668c64362eaeabf44ee4f10b98fc92412cbea74b6f3a917423dfdf3ca282602773e6c29472ab708e5b127e8ae1ce2d8b7f56b457299f93bb72bb73fdbcf91770501010702a5f8", + "000000000000000121bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d017f000001dcf8fdd5381f36008c3eac24cdde5ec0fea8f39240575ef0cb4406cb51ad419dd7810000000000000000000f424000034010000000011301840000fffffffffffa000000030000fffffffffffb8ff7d0df4eee78e558b4e07f82049aaa933f4f4932e13e1e7fee5cb103f7a0b50000fffffffffffa79176754ea338ffa080591b946a6ac1c47ff579ae7e45857bf01261ebe1c46ba0000fffffffffffcbdb924885293efdaa1ba8f556161f4fe525c19483def49b9af85c1623bc6d27b038402add69f29ad433cb7d4c9470f2d49d80245fd9e76a992197528a131e37711efac02c57de22185162001ffaf2e61b053b1d0e280d73ecec1b04916df2c65642d94a102cd4e1a07ee85714b6eada09d9cf81aeb15bfc72ddd003235530c58bbd0c0144902b10f36d2ebab3ce560abf15ceb1bef619491e0597a794fdafcfdf8708eec9e2d0501010702a5f8", + "00000000000000027512083907c74ed3a045e9bf772b3d72948eb93daf84a1cee57108800451aaf2035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d017f000001dcf80239a9c9f2a91e69ba01800baf71f55efe457677b2e5cbd640b888dc1c9375b40000000000000000000f42400003401000000000c301340000ffffffffffff000000010000ffffffffffff0e07b6188dd51f15bb5cb9027950bf487a612dca57e2928de3f28f6ee796978b03840330b7ddf07e5bc779ea468875371ea25b560491c5feaeeb5e229ded3820d1d69103620748b3796c4988dd0fc63b92ae011dc989f15c433a55ed38e24318a43b4c93021bfe48bb1aded55878b00a3f00c5c1bffa1010510d8ba1c6372012ac9c3205d20201604aa7056ab8926038a846014bdbe4874ceef7ce45141b8009b0e2f49e7ec70501010702a5f8", + "0000000000000003222d999f537e32e9458c5db17a63e012dcced61340de06fda5bc30566270b0aa0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f0000017531932479f6d82ee59c7aa67b99568de0a31c202f6a3ff18a6bdd1ec22683cf026500000000000000000bebb3cb00034010000000009b010c0001000000000000000000000384021f90b5f38e0c0ea50bccfcf70a32cd4395c8c544e70636b7cc41831fe33fb4ce03bcfb0d457dfa07f508f434e6a2f040dd3dd233e7002dbe1c1b5d86ed5d3efd76030a4ce755504748f47401fc016578a52e104cbbd28251f10b11e4b3e55d0fe1d303986bdd0842662b8d0d18147630a720e952a2cda624c63ef4903357d27e54f7920501000702a5f8", + "0000000000000004a4a379248e49d207cc984646e632e1a31105a85708b9d6d961a5018fdd489f5a0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f000001970c7f07a15ce1fe1519d46536c4036f1c13527fa8bf52f6a5299b860f982ba2ed7e00000001000000000000753000034010000000009b010c000100000000000000000000038402c8aabcf1224df10e9d803dc3918797892fe0abec56d3e06f121bcebbe9ab0a2c03bd181375d57b8b1d15def9c5f9007b3c3ff98a140c0a44c9dc5f54ac7ea4baf30310952e08f9960711d8142dfa171c0fc2348762acea003f3897397f6ace8454130382da2a229450c4a8e8cea70bbd147eaaf981184bff8c1d70b70c30a494d848420501010702a5f8", + "000000000000000509eb55872cd9039ecd08281af756e23b15aad4129fd6a9bcd71b472114ebf43a0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f000001970c64ed91a21c10208d715b59801b12b4a6eff9ea9e4e7d45971c298b62d90ece8e00000000000000000000c35000034010000000009b010c000100000000000000000000038402e885f38e784050b386fb32d20935acc61059d8b02b6bec0ac2bfc8b2c5cf7f3103ae69dbfc6511ba0781c13113e16e1557a875b910cb1cb1fe1ef95a7edb36135a03758d5faa8515942873911e21869b1b90a4be72af14b394bc064da6ba518b087003750b588cd1fb8d60276c12c1c3eef7e302e3772414234404289db8c10f5731320501010702a5f8" ] } } @@ -34043,12 +36048,12 @@ "id": "example:txdiscard#1", "method": "txdiscard", "params": [ - "txidtxprep000100001000010000100001000010000100001000010000100001" + "2b52249cc84f3698d6b324dab40f97d7b11812cf9bad3384ff775621e86df856" ] }, "response": { - "unsigned_tx": "0200000000000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006", - "txid": "txidtxprep000100001000010000100001000010000100001000010000100001" + "unsigned_tx": "0200000001fb09d48388d44aded94a818b4d21499048958b804e44be571bd3d2710235b87a0000000000fdffffff020000000100000000220020a056363be8c7dbb511098cc50fbca24843e6ed6de03f816465f1998a9a82a09d4183980000000000225120f1393467c717cd50de2760167d4311141a8f750c89f54fd2c900601a7da8434c98000000", + "txid": "2b52249cc84f3698d6b324dab40f97d7b11812cf9bad3384ff775621e86df856" } }, { @@ -34056,12 +36061,12 @@ "id": "example:txdiscard#2", "method": "txdiscard", "params": { - "txid": "txidtxprep000300003000030000300003000030000300003000030000300003" + "txid": "215dcab7a090082d977159212a49895a7951789b71869e6f09e13b7923c7a393" } }, "response": { - "unsigned_tx": "0200000000000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008", - "txid": "txidtxprep000300003000030000300003000030000300003000030000300003" + "unsigned_tx": "020000000108090ec7f33379421f47fd271d060d0e29869bde5fac8230b3a47e7d89bd6c9f0000000000fdffffff0240420f00000000002200200fefd5034808bec0c94b857b7a3ddeeece7cae1b2101b2f23f1c114b14073f31eaa2f000000000002251205c54c6ff7b25c08e66a91d4256a5ca2c374ab1faf56377e8d65466cf997614ce99000000", + "txid": "215dcab7a090082d977159212a49895a7951789b71869e6f09e13b7923c7a393" } } ] @@ -34171,15 +36176,15 @@ "params": [ [ { - "bcrt1p0002020202020202020202020202020202020202020202020202020202": 16777216 + "bcrt1q5ptrvwlgcldm2ygf3nzsl09zfpp7dmtduqlczer97xvc4x5z5zwsc2ulv4": 16777216 } ] ] }, "response": { - "unsigned_tx": "0200000000000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006", - "txid": "txidtxprep000100001000010000100001000010000100001000010000100001", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000" + "unsigned_tx": "0200000001fb09d48388d44aded94a818b4d21499048958b804e44be571bd3d2710235b87a0000000000fdffffff020000000100000000220020a056363be8c7dbb511098cc50fbca24843e6ed6de03f816465f1998a9a82a09d4183980000000000225120f1393467c717cd50de2760167d4311141a8f750c89f54fd2c900601a7da8434c98000000", + "txid": "2b52249cc84f3698d6b324dab40f97d7b11812cf9bad3384ff775621e86df856", + "psbt": "cHNidP8BAgQCAAAAAQMEmAAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAAAAAAA/f///wKAlpgBAAAAABYAFP+FM+rwsTm8Bz0qImOObKCgg3zVXuPf3gAAAAAWABTdQ3+1uuxIN+FttkktoVc11r7FM5cAAAABAR+AlpgBAAAAABYAFP+FM+rwsTm8Bz0qImOObKCgg3zVAQ4g+wnUg4jUSt7ZSoGLTSFJkEiVi4BORL5XG9PScQI1uHoBDwQAAAAAARAE/f///wABAwgAAAABAAAAAAEEIgAgoFY2O+jH27URCYzFD7yiSEPm7W3gP4FkZfGZipqCoJ0AAQMIQYOYAAAAAAABBCJRIPE5NGfHF81Q3idgFn1DERQaj3UMifVP0skAYBp9qENMAA==" } }, { @@ -34189,15 +36194,15 @@ "params": { "outputs": [ { - "bcrt1p0003030303030303030303030303030303030303030303030303030303": 16777216 + "bcrt1q4hz6a4gtecfmy8z870cwkq2gzc0t7n9u9pu23689u55ghwewemqsv4v2zs": 16777216 } ] } }, "response": { - "unsigned_tx": "0200000000000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002", - "txid": "txidtxprep000200002000020000200002000020000200002000020000200002", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000" + "unsigned_tx": "0200000001fb09d48388d44aded94a818b4d21499048958b804e44be571bd3d2710235b87a0000000000fdffffff020000000100000000220020adc5aed50bce13b21c47f3f0eb0148161ebf4cbc2878a8e8e5e5288bbb2ecec1418398000000000022512081da0d3e3051135a89e2f9d85e2eadf661f959bfb05e671097854672cfd0ac7d98000000", + "txid": "e8b14f1622e8d6839c40f255ae617f96aebdf313a8486d1aa9023731a979971e", + "psbt": "cHNidP8BAgQCAAAAAQMEmAAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAAAAAAA/f///wKAlpgBAAAAABYAFP+FM+rwsTm8Bz0qImOObKCgg3zVXuPf3gAAAAAWABTdQ3+1uuxIN+FttkktoVc11r7FM5cAAAABAR+AlpgBAAAAABYAFP+FM+rwsTm8Bz0qImOObKCgg3zVAQ4g+wnUg4jUSt7ZSoGLTSFJkEiVi4BORL5XG9PScQI1uHoBDwQAAAAAARAE/f///wABAwgAAAABAAAAAAEEIgAgrcWu1QvOE7IcR/Pw6wFIFh6/TLwoeKjo5eUoi7suzsEAAQMIQYOYAAAAAAABBCJRIIHaDT4wURNaieL52F4urfZh+Vm/sF5nEJeFRnLP0Kx9AA==" } } ] @@ -34273,13 +36278,13 @@ "id": "example:txsend#1", "method": "txsend", "params": [ - "txidtxprep000200002000020000200002000020000200002000020000200002" + "e8b14f1622e8d6839c40f255ae617f96aebdf313a8486d1aa9023731a979971e" ] }, "response": { - "tx": "02000000000101txsend00011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011", - "txid": "txidtxprep000200002000020000200002000020000200002000020000200002", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100" + "tx": "0200000001fb09d48388d44aded94a818b4d21499048958b804e44be571bd3d2710235b87a0000000000fdffffff020000000100000000220020adc5aed50bce13b21c47f3f0eb0148161ebf4cbc2878a8e8e5e5288bbb2ecec1418398000000000022512081da0d3e3051135a89e2f9d85e2eadf661f959bfb05e671097854672cfd0ac7d98000000", + "txid": "e8b14f1622e8d6839c40f255ae617f96aebdf313a8486d1aa9023731a979971e", + "psbt": "cHNidP8BAgQCAAAAAQMEmAAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAAAAAAA/f///wKAlpgBAAAAABYAFP+FM+rwsTm8Bz0qImOObKCgg3zVXuPf3gAAAAAWABTdQ3+1uuxIN+FttkktoVc11r7FM5cAAAABAR+AlpgBAAAAABYAFP+FM+rwsTm8Bz0qImOObKCgg3zVIgICrdS+fDe+nFDye7Mp6i6PaAV6YeEglyQM1Lypkk6qiU5HMEQCIGJjEwHrdV/d8Js4XmPT9eMXGes2vodTrV2KtnjUqREkAiBAt68NmL8o32UfDR+YX2yiGZd5DRUF++ppU4YnCE+7WQEiBgKt1L58N76cUPJ7synqLo9oBXph4SCXJAzUvKmSTqqJTgj/hTPqAAAAAAEOIPsJ1IOI1Ere2UqBi00hSZBIlYuATkS+VxvT0nECNbh6AQ8EAAAAAAEQBP3///8AAQMIAAAAAQAAAAABBCIAIK3FrtULzhOyHEfz8OsBSBYev0y8KHio6OXlKIu7Ls7BAAEDCEGDmAAAAAAAAQQiUSCB2g0+MFETWoni+dheLq32YflZv7BeZxCXhUZyz9CsfSEHPXxCgubxwYgC9mDabmKYMY13V5d4yQepeZJ7VCvUFqIJAEDR+iMDAAAAAA==" } }, { @@ -34287,13 +36292,13 @@ "id": "example:txsend#2", "method": "txsend", "params": { - "txid": "txidtxprep000400004000040000400004000040000400004000040000400004" + "txid": "90ebfe2791e0e307d5043202d0b5cd3a3304daf5a3b98e4bbac503d08634d555" } }, "response": { - "tx": "02000000000101txsend00022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022", - "txid": "txidtxprep000400004000040000400004000040000400004000040000400004", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200" + "tx": "020000000108090ec7f33379421f47fd271d060d0e29869bde5fac8230b3a47e7d89bd6c9f0000000000fdffffff0240420f0000000000220020c9ea2c65ca8cdc27bc130fe11f5e52e175475e0e31b645b1dcc3832dc4f7e78deaa2f00000000000225120774b1c2a9b4b0a9dce43b46395940da2001115d400fa3667909ec86a5d36518b99000000", + "txid": "90ebfe2791e0e307d5043202d0b5cd3a3304daf5a3b98e4bbac503d08634d555", + "psbt": "cHNidP8BAgQCAAAAAQMEmQAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBeAgAAAAEel3mpMTcCqRptSKgT872uln9hrlXyQJyD1ugiFk+x6AAAAAAA/////wE29/8AAAAAACJRIBBn+sE76BrhkJwdcl10AW73v27fGwM4fUYbSSX4NuhVAAAAAAEBKzb3/wAAAAAAIlEgEGf6wTvoGuGQnB1yXXQBbve/bt8bAzh9RhtJJfg26FUBDiAICQ7H8zN5Qh9H/ScdBg0OKYab3l+sgjCzpH59ib1snwEPBAAAAAABEAT9////ARNA7qgVSILWVeJ3iVq2cHwuHp28MdIw4CbgJKilEaXgaFJuhJFdQaJzeJ3YOgvOpRA+ENj9RHXIv/24sYuKIr62gyEWSGn5H1BOLW1cQuaAXwZz7OyTu4UYInxyYnJzwKCebrUJAJcA1qsAAAAAAAEDCEBCDwAAAAAAAQQiACDJ6ixlyozcJ7wTD+EfXlLhdUdeDjG2RbHcw4MtxPfnjQABAwjqovAAAAAAAAEEIlEgd0scKptLCp3OQ7RjlZQNogARFdQA+jZnkJ7Ial02UYshB4QxwPeJGASKpKclGmF+KkCt89LyZ37UONUy9HdStTzDCQDVZoJDBgAAAAA=" } } ] @@ -34428,7 +36433,7 @@ "id": "example:unreserveinputs#1", "method": "unreserveinputs", "params": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000", + "psbt": "cHNidP8BAF4CAAAAARxvUMSNjH7EKMXzxKwycdOSZ64xHQfWS7JFe0pAwIPCAAAAAAD9////AahhAAAAAAAAIlEg+3d9jpNmK0getyg5W+Mp31CPIRDKcJg/mZs/uaVrQ+GbAAAAAAEAiQIAAAAB8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0AAAAAAP3///8CYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aICEHgAAAAAAIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd+aAAAAAQErYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aAAA", "reserve": 200 } }, @@ -34441,7 +36446,7 @@ "id": "example:unreserveinputs#2", "method": "unreserveinputs", "params": [ - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000" + "cHNidP8BAF4CAAAAARxvUMSNjH7EKMXzxKwycdOSZ64xHQfWS7JFe0pAwIPCAAAAAAD9////AetRxQsAAAAAIlEg21kTTo7K2doCG6F2JqgaDjc1kRCrH7AL08oPVVJhuE+bAAAAAAEAiQIAAAAB8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0AAAAAAP3///8CYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aICEHgAAAAAAIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd+aAAAAAQErYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aAAA" ] }, "response": { @@ -34552,9 +36557,9 @@ } }, "response": { - "tx": "02000000000101upgd20000200002000020000200002000020000200002000020000200002000020000200002000020000200002000020000200002000020000200002000020000200002000020000200002000020000200002000020000", - "txid": "txidupgrade200000200000200000200000200000200000200000200000200000", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000", + "tx": "0200000001f74032b51c3aeec264de1e41228db610127098f70d31e28d91569b13a2eda1090100000000fdffffff0135143101000000002251206c27e1956acfa61e68292c80908880e813450f754132e8a2ac471a86bf1326b567000000", + "txid": "58d7e19cd533038fefb7085822fa42f78fac7b7bbdad5439cc748eb2a37f53cb", + "psbt": "cHNidP8BAgQCAAAAAQMEZwAAAAEEAQEBBQEBAQYBAwH7BAIAAAAAAQBzAgAAAAGnLEWbriFxVrxyaD9GGIXPwYs7lkx3nIQmKKzZx1ONvAAAAAAA/f///wJxxNQoAQAAABepFIIMEhvBkPKuK79E5Hw+MqTQP5ubhwAtMQEAAAAAF6kUZVco82z+NtAapQ0yNnBEafhKVUCHZgAAAAEBIAAtMQEAAAAAF6kUZVco82z+NtAapQ0yNnBEafhKVUCHIgICucDGhE4SpTHJaOVcVQeOwW2b92vpKQ/YfRzKcrSDmhdHMEQCIHUzolkCb3kn5oFBsprLwfRU0r2TMuUqVlKHAVeEzwZhAiAJoUyO3JIEy76Le2UdvCjNd5uQ4VO2pTSJC0kv8CHfTAEBBBYAFNa5adNt/9rZhpGT9mPuSA39xzSIIgYCucDGhE4SpTHJaOVcVQeOwW2b92vpKQ/YfRzKcrSDmhcI1rlp0wAAAAABDiD3QDK1HDruwmTeHkEijbYQEnCY9w0x4o2RVpsTou2hCQEPBAEAAAABEAT9////AAEDCDUUMQEAAAAAAQQiUSBsJ+GVas+mHmgpLICQiIDoE0UPdUEy6KKsRxqGvxMmtSEHWnm7u0BtS8KN8F+mqHMoz7AqfhN0O+zc0d/P4HHC4BAJAH0I2ZcFAAAAAA==", "upgraded_outs": 1 } } @@ -34774,7 +36779,7 @@ "15000perkw", 214, [ - "utxo010101010101010101010101010101010101010101010101010101010101:1" + "9d9d89725697f42f6fc8baa1d1a25662f9e2f3f524c832e943ea8b19317873f1:0" ], null, true, @@ -34784,18 +36789,18 @@ ] }, "response": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000", + "psbt": "cHNidP8BAF4CAAAAAfFzeDEZi+pD6TLIJPXz4vliVqLRobrIby/0l1ZyiZ2dAAAAAAD9////AUFZ3AsAAAAAIlEgO+E35aPNS3YQRaiMByjTJDUYNvBO1Z39o3m42EZGUreaAAAAAAEAcQIAAAAB+wnUg4jUSt7ZSoGLTSFJkEiVi4BORL5XG9PScQI1uHoBAAAAAP3///8CAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAYT9NIAAAAAFgAUIowMzAOV9xHOQM4YHS2bZ5k6oe2HAAAAAQEfAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAAA", "feerate_per_kw": 15000, "estimated_final_weight": 657, "excess_msat": 0, "change_outnum": 0, "reservations": [ { - "txid": "utxo010101010101010101010101010101010101010101010101010101010101", - "vout": 1, + "txid": "9d9d89725697f42f6fc8baa1d1a25662f9e2f3f524c832e943ea8b19317873f1", + "vout": 0, "was_reserved": true, "reserved": true, - "reserved_to_block": 2240 + "reserved_to_block": 2242 } ] } @@ -34809,25 +36814,25 @@ "feerate": "18750perkw", "startweight": 214, "utxos": [ - "utxo010101010101010101010101010101010101010101010101010101010101:1" + "9d9d89725697f42f6fc8baa1d1a25662f9e2f3f524c832e943ea8b19317873f1:0" ], "reservedok": true, "excess_as_change": true } }, "response": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000", + "psbt": "cHNidP8BAF4CAAAAAfFzeDEZi+pD6TLIJPXz4vliVqLRobrIby/0l1ZyiZ2dAAAAAAD9////AWINzQsAAAAAIlEgyRg+3pEh88b9FJiCLEenYCcyJ2ackJUIhDusW72BP2iaAAAAAAEAcQIAAAAB+wnUg4jUSt7ZSoGLTSFJkEiVi4BORL5XG9PScQI1uHoBAAAAAP3///8CAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAYT9NIAAAAAFgAUIowMzAOV9xHOQM4YHS2bZ5k6oe2HAAAAAQEfAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAAA", "feerate_per_kw": 18750, "estimated_final_weight": 657, "excess_msat": 0, "change_outnum": 0, "reservations": [ { - "txid": "utxo010101010101010101010101010101010101010101010101010101010101", - "vout": 1, + "txid": "9d9d89725697f42f6fc8baa1d1a25662f9e2f3f524c832e943ea8b19317873f1", + "vout": 0, "was_reserved": true, "reserved": true, - "reserved_to_block": 2312 + "reserved_to_block": 2314 } ] } @@ -35560,13 +37565,13 @@ "status": "pending", "partid": 0, "groupid": 1, - "payment_hash": "paymenthashwtspct20101010101010101010101010101010101010101010101" + "payment_hash": "9a33e433faddc3371f6a56a34146c82629d567520ddaf28244bd9f196288af71" }, "sendpays": { "status": "pending", "partid": 0, "groupid": 1, - "payment_hash": "paymenthashwtspct20101010101010101010101010101010101010101010101" + "payment_hash": "9a33e433faddc3371f6a56a34146c82629d567520ddaf28244bd9f196288af71" } } }, @@ -35587,13 +37592,13 @@ "status": "complete", "partid": 0, "groupid": 1, - "payment_hash": "paymenthashwtspct20101010101010101010101010101010101010101010101" + "payment_hash": "9a33e433faddc3371f6a56a34146c82629d567520ddaf28244bd9f196288af71" }, "sendpays": { "status": "complete", "partid": 0, "groupid": 1, - "payment_hash": "paymenthashwtspct20101010101010101010101010101010101010101010101" + "payment_hash": "9a33e433faddc3371f6a56a34146c82629d567520ddaf28244bd9f196288af71" } } } @@ -35836,16 +37841,16 @@ }, "response": { "label": "lbl balance l1 to l2", - "bolt11": "lnbcrt222n1pnt3005720bolt114000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "payment_hash": "paymenthashdelpay10101010101010101010101010101010101010101010101", + "bolt11": "lnbcrt5m1pne035qsp5y09we8jhy4ug66c945kzkqyqzrhhqsap22q07wnawlgntwa5ca2spp5xsktk894vn50xt4kfl5vy49t7hk976u85rudu7gfetuwvk8nh54qdpcv3jhxcmjd9c8g6t0dcs8xetwvss8xmmdv5s8xct5wvsxcvfqw3hjqmpjxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqvsru69ylhpkda6980sl996q2fmld2zszepv79zf747la6zzt8mf8p0qw80w6j8d5evc72fls4d99sza23nnm6pahjqrs8kv3apdttjcq2mm2xw", + "payment_hash": "342cbb1cb564e8f32eb64fe8c254abf5ec5f6b87a0f8de7909caf8e658f3bd2a", "amount_msat": 500000000, "status": "paid", "pay_index": 1, "amount_received_msat": 500000000, - "paid_at": 1738500000, - "payment_preimage": "paymentpreimgdp1010101010101010101010101010101010101010101010101", + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c1808377744ca985c1808377744ca985c1808377744ca985c18", "description": "description send some sats l1 to l2", - "expires_at": 1739000000, + "expires_at": 1738604800, "created_index": 1, "updated_index": 1 } @@ -35861,16 +37866,16 @@ }, "response": { "label": "test_injectpaymentonion1", - "bolt11": "lnbcrt100n1pnt2bolt11invl020700000000bolt11invl020700000000bolt11invl020700000000bolt11invl020700000000bolt11invl020700000000bolt11invl020700000000bolt11invl020700000000bolt11invl020700000000bolt11invl020700000000bolt11invl020700000000", - "payment_hash": "paymenthashinvl0270027002700270027002700270027002700270027002700", + "bolt11": "lnbcrt10n1pne035qsp5qwyv8rs63ramlntxnjyqfyl3usj9fcvw2wcekvssera3c674p2aspp5layccvcq3q020g7qgxf7g0cjx3zvv3rxyqypprpry2w6x5gmahgsdp6w3jhxapqd9hx5etrw3cxz7tdv4h8gmmwd9hkuvfqv3jhxcmjd9c8g6t0dcxqyjw5qcqp99qxpqysgqanlwwp0fnysrz8wgx44kdupzfv4l9x0l8daxa9zyqcwwx4de5rv4s3udrmgc6w03dtn0h3kcvwhv602fpryz06wrnk9k5d5z6qtx4mqqyhqgf2", + "payment_hash": "ff498c3300881ea7a3c04193e43f123444c644662008108c23229da3511bedd1", "amount_msat": 1000, "status": "paid", "pay_index": 2, "amount_received_msat": 1000, - "paid_at": 1738500000, - "payment_preimage": "paymentpreimgio1030303030303030303030303030303030303030303030303", + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c1e08377744ca985c1e08377744ca985c1e08377744ca985c1e", "description": "test injectpaymentonion1 description", - "expires_at": 1739000000, + "expires_at": 1738604800, "created_index": 8, "updated_index": 2 } @@ -35947,7 +37952,7 @@ } }, "response": { - "blockheight": 130 + "blockheight": 131 } }, { @@ -35958,12 +37963,12 @@ "id": "example:waitblockheight#2", "method": "waitblockheight", "params": { - "blockheight": 131, + "blockheight": 132, "timeout": 600 } }, "response": { - "blockheight": 131 + "blockheight": 132 } } ] @@ -36210,16 +38215,16 @@ }, "response": { "label": "inv2", - "bolt11": "lnbcrt222n1pnt3005720bolt11wtinv01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "payment_hash": "paymenthashwaitinv0101010101010101010101010101010101010101010101", + "bolt11": "lnbcrt20n1pne035qsp5793kaek9ahcmxn00ttvkmrhafa5v33wtju4dz5lvyjr0pwwgdd2qpp59gjcv8c4v9yzt00az4x5yg6z79v5gmcd2nwzf6pct5c4yqprlr9sdq8d9h8vvsxqyjw5qcqp99qxpqysgq7ygtu605e0yx749rczhlqaw4crl746rmzc3nkpxn5vrey34m2uxx0658c3e85gvvdcp8r5nlfdnxspl9tlj5xhckrx5vszxxa4zneggp8dynay", + "payment_hash": "2a25861f15614825bdfd154d422342f159446f0d54dc24e8385d31520023f8cb", "amount_msat": 2000, "status": "paid", "pay_index": 5, "amount_received_msat": 2000, - "paid_at": 1738500000, - "payment_preimage": "paymentpreimagewaitinv0010101010101010101010101010101010101010101", + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c2108377744ca985c2108377744ca985c2108377744ca985c21", "description": "inv2", - "expires_at": 1739000000, + "expires_at": 1738604800, "created_index": 13, "updated_index": 5 } @@ -36234,16 +38239,16 @@ }, "response": { "label": "inv3", - "bolt11": "lnbcrt222n1pnt3005720bolt11wtinv02020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202", - "payment_hash": "paymenthashwaitinv0202020202020202020202020202020202020202020202", + "bolt11": "lnbcrt30n1pne035qsp588xrpk37hul6xfyr8u6lkyggh0mkvfzhyex8wwts7dpckxt2j2yspp5x63je8t7u7a0ts2arwdj05y9mn5ud9lmgf7see5rg2kvuq8ptphsdq8d9h8vvcxqyjw5qcqp99qxpqysgqw97pk464fhkxp6umgtzhh3njznhnw06cwun58szk06v7a2wvvppz6kg95ufarq443nrqgue6u3s59up4tqkmm943pfyp3hqutx6vgugqgd8jsu", + "payment_hash": "36a32c9d7ee7baf5c15d1b9b27d085dce9c697fb427d0ce68342acce00e1586f", "amount_msat": 3000, "status": "paid", "pay_index": 6, "amount_received_msat": 3000, - "paid_at": 1738500000, - "payment_preimage": "paymentpreimagewaitinv0020202020202020202020202020202020202020202", + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c2208377744ca985c2208377744ca985c2208377744ca985c22", "description": "inv3", - "expires_at": 1739000000, + "expires_at": 1738604800, "created_index": 14, "updated_index": 6 } @@ -36490,22 +38495,22 @@ "id": "example:waitsendpay#1", "method": "waitsendpay", "params": { - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100" + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f" } }, "response": { "created_index": 2, "id": 2, - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", "groupid": 1, "updated_index": 2, - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000, "amount_sent_msat": 10001, "created_at": 1738000000, - "completed_at": 1739000000, + "completed_at": 1738000000, "status": "complete", - "payment_preimage": "paymentpreimagew010101010101010101010101010101010101010101010101" + "payment_preimage": "83ffe698292fbb5f83ffe698292fbb5f83ffe698292fbb5f83ffe698292fbb5f" } } ] @@ -36617,14 +38622,14 @@ "id": "example:withdraw#1", "method": "withdraw", "params": { - "destination": "bcrt1qcqqv0101010101010101010101010101010101", + "destination": "bcrt1qwx6am26cuw38y4863pd6swrce2g8mzhaxr9xp8", "satoshi": 555555 } }, "response": { - "tx": "020000000001wthdrw91000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000", - "txid": "txidwithdraw2191000910009100091000910009100091000910009100091000", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000" + "tx": "020000000169baded91234f208471fe0b7efd048560a4ec2aca6ac1df00ae4729a6c368a140000000000fdffffff02237a08000000000016001471b5ddab58e3a27254fa885ba83878ca907d8afd7ecc1500000000002251202b5dd0613b6e534f572dbcf4311b66e6cc8bb07e285928ddb6fa5791e473787484000000", + "txid": "797a6c54b6cfb99ab3b6453fca66d9c077af09f7be4a951cb0f2e3c0cd63ee90", + "psbt": "cHNidP8BAgQCAAAAAQMEhAAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQCyAgAAAAJVMQxiObHGkc2owFTzkzRn+3UVPd29g9q+xdYhmQ3ckgAAAAAA/f///6czBVHqH7LMLWzkkTkfaDAii0v18qYWqwo3IAICfpPtAQAAAAD9////AkVXHgAAAAAAIlEg/at8AfrnDAjgsfmsrMoRClMSHnXcVKJedUJBbzQq6vdAQg8AAAAAACIAIJZV4qczDNhtxp+O0YRa9VgN0GsVp5QDTJVx5T1WObOXewAAAAEBK0VXHgAAAAAAIlEg/at8AfrnDAjgsfmsrMoRClMSHnXcVKJedUJBbzQq6vcBDiBput7ZEjTyCEcf4Lfv0EhWCk7CrKasHfAK5HKabDaKFAEPBAAAAAABEAT9////ARNAHO2bgSAdOnELjVnpbsTz7m7rgxRnyUQ9cRVtMF7bR2ZbWWuexz11UjfIoiQsBhK3rp+KkxJLGo8xXnRN0hK72iEWvZI/zJ5gMwIKRWhwvhoONSpzuE+hMin+5LvMB/uiSToJAMrfGCgAAAAAACICA6Jvzf+c2c5Qrvvj78smeIzuWAjjEtHW01YDo2je0daMCHG13asNAAAAAQMII3oIAAAAAAABBBYAFHG13atY46JyVPqIW6g4eMqQfYr9DPwJbGlnaHRuaW5nBAIAAQABAwh+zBUAAAAAAAEEIlEgK13QYTtuU09XLbz0MRtm5syLsH4oWSjdtvpXkeRzeHQhB/ezBtxauw6UTQFvjhaT8ztqh+dAYi+W2/WHIEQ/e965CQBPad/3DwAAAAA=" } }, { @@ -36632,19 +38637,19 @@ "id": "example:withdraw#2", "method": "withdraw", "params": { - "destination": "bcrt1phtprcvhz02020202020202020202020202020202020202020202020202", + "destination": "bcrt1p2gppccw6ywewmg74qqxxmqfdpjds3rpr0mf22y9tm9xcc0muggwsea9nkf", "satoshi": "all", "feerate": "20000perkb", "minconf": 0, "utxos": [ - "utxo020202020202020202020202020202020202020202020202020202020202:1" + "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9:1" ] } }, "response": { - "tx": "020000000002wthdrw92000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000", - "txid": "txidwithdraw2292000920009200092000920009200092000920009200092000", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000" + "tx": "0200000001a92a6508defe049b47f2420c054cb1a446198faf4bfd74bb2479b3c45075ce7c0100000000fdffffff01d563dc0b0000000022512052021c61da23b2eda3d5000c6d812d0c9b088c237ed2a510abd94d8c3f7c421d88000000", + "txid": "6430642958a9aaa5c380bb9ea5048ae920557df4e8c8f959ee745f87f03662ed", + "psbt": "cHNidP8BAgQCAAAAAQMEiAAAAAEEAQEBBQEBAQYBAwH7BAIAAAAAAQCJAgAAAAGz2CDBGuOklbgHzcv1kfmjgjUfUOYes93LsMOptm8SiQEAAAAA/f///wJAQg8AAAAAACIAIIaYZYoB77AB4cxN9qi28620Yfo+Z5OF/arkAL1zmWsygWzcCwAAAAAiUSCKc7soFDPytdtUYcZ3iqKv0o4BHea9BHmaWZFmLGHXqDMAAAABASuBbNwLAAAAACJRIIpzuygUM/K121RhxneKoq/SjgEd5r0EeZpZkWYsYdeoAQ4gqSplCN7+BJtH8kIMBUyxpEYZj69L/XS7JHmzxFB1znwBDwQBAAAAARAE/f///wETQGrLBJ5XFyUx9B4SItbcP7L5MdB2XyQHymoi/1innyYnSSmUVvkqQYn/wckxggReFS6+BydfZ2/aB/1TRMJyl70hFi55mhYqTXiAV2eIrXh1Nrfu0+eScntk4eo0QWenuG5SCQC6dkxmAAAAAAABAwjVY9wLAAAAAAEEIlEgUgIcYdojsu2j1QAMbYEtDJsIjCN+0qUQq9lNjD98Qh0hB8SkNSQBiTs1cYIq8kWiODRmmFlnt+VkoODlBh1PjXFxCQCLx6pcDgAAAAz8CWxpZ2h0bmluZwQCAAEA" } } ] @@ -36786,11 +38791,11 @@ "id": "example:xpay#1", "method": "xpay", "params": [ - "lnbcrt100n1pnt2bolt11invl040100000000bolt11invl040100000000bolt11invl040100000000bolt11invl040100000000bolt11invl040100000000bolt11invl040100000000bolt11invl040100000000bolt11invl040100000000bolt11invl040100000000bolt11invl040100000000" + "lnbcrt100n1pne035qsp572t5efk76vr3rdkt5zu2qcduqapdj40mhrs7pgpthufgw3tvtwrqpp5rw6387e0hhjqty3y8pmanaqyhgmxsf679m4vm8rjvne57pxn0lgsdp9w3jhxazl0pcxz72lwd5k6urvv5sxymmvwscnzxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwgqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqh986ypquaysut7ed57nr8pum0x6u5hg3lnsf6j840l0cn6e28zcyqk76xpxkxjzlkhj8cx7zapyct6zdz2ff7nt3lym376k8ff0u9egq2wf5mk" ] }, "response": { - "payment_preimage": "paymentpreimgxp1010101010101010101010101010101010101010101010101", + "payment_preimage": "a23af6838ba877f6a23af6838ba877f6a23af6838ba877f6a23af6838ba877f6", "amount_msat": 10000, "amount_sent_msat": 10002, "failed_parts": 0, @@ -36802,11 +38807,11 @@ "id": "example:xpay#2", "method": "xpay", "params": { - "invstring": "lni1qqg0qe03030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303" + "invstring": "lni1qqgvq8khp6uam2t8cq0dwr4emk5kwq3qqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy83pmsz953rvg9rtxj8lalh43z8epwydjfrmffn3y3p5qz5cywpu09rr4vsyc4ltgrq50wep0hruykzdz8kjmlaymfx3gn3c0gcrcwn08fary4aqgplwhkgurkjc3rj42v0ntzhw0gr9dl4vwt2l3meh378fzjx5cc7mhgqxdva9ffx3l879amqjdk7np3nyfq6wjtp4weyzhdgq447vakcu0sh4dh0gxszhvffjfqcy8h77mjzguszhtfqy9glqvpm0sp32vgtlw2rh8mwuzedxn3z4d44zq7g8pkz6906ysj9qqe9eqccms4thz8tgy4vu7fdnqt0yaeky4a4pkdprcykm7vj4sz2pqeuguj820h2d6vwh0j7cdypzeg7ffnpvggzvmj9nrga83q474e2sjygxzmq7ln5fmvjxh4skxafx2pmx9wqx5v9qgqxyfhyvyg6pdvu4tcjvpp7kkal9rp57wj7xv4pl3ajku70rzy3pafqyqlg2sq9sggz3x54wmukps9ppjdvu9axg8l62dkkv5975l6zlt37ts4szjaem7c6pxqzvmj9nrga83q474e2sjygxzmq7ln5fmvjxh4skxafx2pmx9wqx5vqyhckl6y7ulcampu0ezz5qqx4cs3fwt6kyrfjc08dju8hc3lr30d7qyp5e6kp2jd30yr8husmmcfzxe797vler28r4hv6ehyy29lljue6ljqqxtxjzt8sw08wk4vx2j6wwv94myujhvzg09mx9xnh9fmvewnm0ex4mkal4sfm00gep0srey7pz6vt3cd82k3pcqqqqqqqqqqqqqqq2qqqqqqqqqqqqqwjfvkl43fqqqqqqzjqgeuhc6q2sg855evhcsdr4cfclsfxncamps5whxf2ynj7kqrutejl8xcm38k4vx4qyqlg4cpsyqqqkqssyehytxx360zptatj4pygsv9kpal8gnkeyd0tpvd6jv5rkv2uqdgc7pqzjd09ca3y6jytvgzva9jcyxavkyzvjujh4g4dz6qv5gjp95ld7sxy4yrpuc937lvmvrwm6qycexdzsmmtlzyskmzqm5e8uevw6d4nxc" } }, "response": { - "payment_preimage": "paymentpreimgxp2020202020202020202020202020202020202020202020202", + "payment_preimage": "c01ed70eb9ddb51ec01ed70eb9ddb51ec01ed70eb9ddb51ec01ed70eb9ddb51e", "amount_msat": 1000, "amount_sent_msat": 1000, "failed_parts": 0, diff --git a/doc/schemas/addpsbtoutput.json b/doc/schemas/addpsbtoutput.json index 27117b05c259..dd56156fbd2d 100644 --- a/doc/schemas/addpsbtoutput.json +++ b/doc/schemas/addpsbtoutput.json @@ -93,9 +93,9 @@ } }, "response": { - "psbt": "cHNidP8BAgpsbt1001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQABBQEBAQYBAwH7BAIAAAAAAQMIQEIPAAAAAAABBCJRIO7yw3zIUblRUcdhCLSjdFxJsYHu2s0Y29bT0bGAGdcbAA==", "estimated_added_weight": 172, - "outnum": 1 + "outnum": 0 } }, { @@ -104,11 +104,11 @@ "method": "addpsbtoutput", "params": [ 3333333, - "cHNidP8BAgpsbt20020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202" + "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQABBQECAQYBAwH7BAIAAAAAAQMIQEIPAAAAAAABBCJRIO7yw3zIUblRUcdhCLSjdFxJsYHu2s0Y29bT0bGAGdcbAAEDCNXcMgAAAAAAAQQiUSA2cYCeVGcxdSZII2urHpalr5osmF2lPbYRaw1nKyPcmQA=" ] }, "response": { - "psbt": "cHNidP8BAgpsbt20020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202", + "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQABBQECAQYBAwH7BAIAAAAAAQMIQEIPAAAAAAABBCJRIO7yw3zIUblRUcdhCLSjdFxJsYHu2s0Y29bT0bGAGdcbAAEDCNXcMgAAAAAAAQQiUSA2cYCeVGcxdSZII2urHpalr5osmF2lPbYRaw1nKyPcmQA=", "estimated_added_weight": 172, "outnum": 1 } @@ -119,14 +119,14 @@ "method": "addpsbtoutput", "params": { "satoshi": 3333333, - "initialpsbt": "cHNidP8BAgpsbt20020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202", - "destination": "bcrt1p5201010101010101010101010101010101010101010101010101010101" + "initialpsbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQABBQECAQYBAwH7BAIAAAAAAQMIQEIPAAAAAAABBCJRIO7yw3zIUblRUcdhCLSjdFxJsYHu2s0Y29bT0bGAGdcbAAEDCNXcMgAAAAAAAQQiUSA2cYCeVGcxdSZII2urHpalr5osmF2lPbYRaw1nKyPcmQA=", + "destination": "bcrt1p52spc7t99z0wu444elxahxzkcu86gakzvnfp7ugudf567am2uspsuneuq9" } }, "response": { - "psbt": "cHNidP8BAgpsbt300303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303", + "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQABBQEDAQYBAwH7BAIAAAAAAQMIQEIPAAAAAAABBCJRIO7yw3zIUblRUcdhCLSjdFxJsYHu2s0Y29bT0bGAGdcbAAEDCNXcMgAAAAAAAQQiUSA2cYCeVGcxdSZII2urHpalr5osmF2lPbYRaw1nKyPcmQABAwjV3DIAAAAAAAEEIlEgoqAceWUonu5Wtc/N25hWxw+kdsJk0h9xHGppr3dq5AMA", "estimated_added_weight": 172, - "outnum": 1 + "outnum": 2 } } ] diff --git a/doc/schemas/askrene-age.json b/doc/schemas/askrene-age.json index a274673c40fa..655910b0802b 100644 --- a/doc/schemas/askrene-age.json +++ b/doc/schemas/askrene-age.json @@ -67,7 +67,7 @@ "method": "askrene-age", "params": { "layer": "test_layers", - "cutoff": 1738000000 + "cutoff": 1738000001 } }, "response": { diff --git a/doc/schemas/askrene-bias-channel.json b/doc/schemas/askrene-bias-channel.json index 73eddb5bf952..563bf2527936 100644 --- a/doc/schemas/askrene-bias-channel.json +++ b/doc/schemas/askrene-bias-channel.json @@ -115,7 +115,7 @@ "method": "askrene-bias-channel", "params": { "layer": "test_layers", - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "bias": 1 } }, @@ -123,7 +123,7 @@ "biases": [ { "layer": "test_layers", - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "bias": 1 } ] @@ -135,7 +135,7 @@ "method": "askrene-bias-channel", "params": [ "test_layers", - "109x1x1/1", + "110x1x0/1", -5, "bigger bias" ] @@ -144,7 +144,7 @@ "biases": [ { "layer": "test_layers", - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "description": "bigger bias", "bias": -5 } diff --git a/doc/schemas/askrene-create-channel.json b/doc/schemas/askrene-create-channel.json index deb1376361a1..62efedecd552 100644 --- a/doc/schemas/askrene-create-channel.json +++ b/doc/schemas/askrene-create-channel.json @@ -76,8 +76,8 @@ "method": "askrene-create-channel", "params": { "layer": "test_layers", - "source": "nodeid030303030303030303030303030303030303030303030303030303030303", - "destination": "nodeid010101010101010101010101010101010101010101010101010101010101", + "source": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "destination": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "short_channel_id": "0x0x1", "capacity_msat": "1000000sat" } diff --git a/doc/schemas/askrene-disable-node.json b/doc/schemas/askrene-disable-node.json index 2dc13f06a9e6..e71a838cb595 100644 --- a/doc/schemas/askrene-disable-node.json +++ b/doc/schemas/askrene-disable-node.json @@ -53,7 +53,7 @@ "method": "askrene-disable-node", "params": { "layer": "test_layers", - "node": "nodeid010101010101010101010101010101010101010101010101010101010101" + "node": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" } }, "response": {} diff --git a/doc/schemas/askrene-listlayers.json b/doc/schemas/askrene-listlayers.json index c20a0d090524..417148f6cad5 100644 --- a/doc/schemas/askrene-listlayers.json +++ b/doc/schemas/askrene-listlayers.json @@ -263,12 +263,12 @@ "layer": "test_layers", "persistent": false, "disabled_nodes": [ - "nodeid010101010101010101010101010101010101010101010101010101010101" + "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" ], "created_channels": [ { - "source": "nodeid010101010101010101010101010101010101010101010101010101010101", - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "source": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "short_channel_id": "0x0x1", "capacity_msat": 1000000000 } @@ -292,7 +292,7 @@ ], "biases": [ { - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "description": "bigger bias", "bias": -5 } @@ -313,12 +313,12 @@ "layer": "test_layers", "persistent": false, "disabled_nodes": [ - "nodeid010101010101010101010101010101010101010101010101010101010101" + "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" ], "created_channels": [ { - "source": "nodeid010101010101010101010101010101010101010101010101010101010101", - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "source": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "short_channel_id": "0x0x1", "capacity_msat": 1000000000 } @@ -342,7 +342,7 @@ ], "biases": [ { - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "description": "bigger bias", "bias": -5 } diff --git a/doc/schemas/askrene-listreservations.json b/doc/schemas/askrene-listreservations.json index f72a1ee8e620..721da35369c8 100644 --- a/doc/schemas/askrene-listreservations.json +++ b/doc/schemas/askrene-listreservations.json @@ -79,28 +79,28 @@ "response": { "reservations": [ { - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "amount_msat": 1250000, "age_in_seconds": 2, - "command_id": "\"-c:askrene-reserve#62/cln:askrene-reserve#122\"" + "command_id": "examples.py:askrene-reserve#1/cln:askrene-reserve#2" }, { - "short_channel_id_dir": "123x1x1/0", - "amount_msat": 1250001, + "short_channel_id_dir": "110x1x0/1", + "amount_msat": 1250000000000, "age_in_seconds": 2, - "command_id": "\"-c:askrene-reserve#62/cln:askrene-reserve#122\"" + "command_id": "examples.py:askrene-reserve#2/cln:askrene-reserve#3" }, { - "short_channel_id_dir": "109x1x1/1", - "amount_msat": 1250000000000, + "short_channel_id_dir": "124x1x1/0", + "amount_msat": 1250001, "age_in_seconds": 2, - "command_id": "\"-c:askrene-reserve#66/cln:askrene-reserve#126\"" + "command_id": "examples.py:askrene-reserve#3/cln:askrene-reserve#4" }, { - "short_channel_id_dir": "123x1x1/0", + "short_channel_id_dir": "124x1x1/0", "amount_msat": 1250000000000, "age_in_seconds": 2, - "command_id": "\"-c:askrene-reserve#66/cln:askrene-reserve#126\"" + "command_id": "examples.py:askrene-reserve#4/cln:askrene-reserve#5" } ] } diff --git a/doc/schemas/askrene-reserve.json b/doc/schemas/askrene-reserve.json index f73e41867561..b2a0e30a1c0e 100644 --- a/doc/schemas/askrene-reserve.json +++ b/doc/schemas/askrene-reserve.json @@ -66,11 +66,11 @@ "params": { "path": [ { - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "amount_msat": 1250000 }, { - "short_channel_id_dir": "123x1x1/0", + "short_channel_id_dir": "124x1x1/0", "amount_msat": 1250001 } ] @@ -85,11 +85,11 @@ "params": { "path": [ { - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "amount_msat": 1250000000000 }, { - "short_channel_id_dir": "123x1x1/0", + "short_channel_id_dir": "124x1x1/0", "amount_msat": 1250000000000 } ] diff --git a/doc/schemas/askrene-unreserve.json b/doc/schemas/askrene-unreserve.json index 982db753f871..bcad60fd4418 100644 --- a/doc/schemas/askrene-unreserve.json +++ b/doc/schemas/askrene-unreserve.json @@ -66,11 +66,11 @@ "params": { "path": [ { - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "amount_msat": 1250000 }, { - "short_channel_id_dir": "123x1x1/0", + "short_channel_id_dir": "124x1x1/0", "amount_msat": 1250001 } ] @@ -85,11 +85,11 @@ "params": { "path": [ { - "short_channel_id_dir": "109x1x1/1", + "short_channel_id_dir": "110x1x0/1", "amount_msat": 1250000000000 }, { - "short_channel_id_dir": "123x1x1/0", + "short_channel_id_dir": "124x1x1/0", "amount_msat": 1250000000000 } ] diff --git a/doc/schemas/autoclean-once.json b/doc/schemas/autoclean-once.json index ecb6476c5fee..f2de4b069dab 100644 --- a/doc/schemas/autoclean-once.json +++ b/doc/schemas/autoclean-once.json @@ -228,8 +228,8 @@ "response": { "autoclean": { "succeededpays": { - "cleaned": 7, - "uncleaned": 0 + "cleaned": 0, + "uncleaned": 7 } } } diff --git a/doc/schemas/autoclean-status.json b/doc/schemas/autoclean-status.json index b29d250d5bb6..844a6fc884fd 100644 --- a/doc/schemas/autoclean-status.json +++ b/doc/schemas/autoclean-status.json @@ -470,7 +470,7 @@ }, "succeededpays": { "enabled": false, - "cleaned": 7 + "cleaned": 0 }, "failedpays": { "enabled": false, diff --git a/doc/schemas/bkpr-channelsapy.json b/doc/schemas/bkpr-channelsapy.json index a1644ebee518..6e125aca21c5 100644 --- a/doc/schemas/bkpr-channelsapy.json +++ b/doc/schemas/bkpr-channelsapy.json @@ -215,7 +215,7 @@ "response": { "channels_apy": [ { - "account": "channelid0120000120000120000120000120000120000120000120000120000", + "account": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "routed_out_msat": 1000000, "routed_in_msat": 510091208, "lease_fee_paid_msat": 0, @@ -235,7 +235,7 @@ "apy_total": "0.0160%" }, { - "account": "channelid0230000230000230000230000230000230000230000230000230000", + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "routed_out_msat": 510190102, "routed_in_msat": 0, "lease_fee_paid_msat": 0, @@ -256,7 +256,7 @@ "apy_total_initial": "0.0161%" }, { - "account": "channelid0250000250000250000250000250000250000250000250000250000", + "account": "f8fc83a432cbfb2fffe222cc06727fdd977b5dd10ebd6707158e799e6f522d9f", "routed_out_msat": 500000000, "routed_in_msat": 0, "lease_fee_paid_msat": 0, diff --git a/doc/schemas/bkpr-editdescriptionbyoutpoint.json b/doc/schemas/bkpr-editdescriptionbyoutpoint.json index 256a50b7ea38..153a8ed6a5f8 100644 --- a/doc/schemas/bkpr-editdescriptionbyoutpoint.json +++ b/doc/schemas/bkpr-editdescriptionbyoutpoint.json @@ -271,7 +271,7 @@ "id": "example:bkpr-editdescriptionbyoutpoint#1", "method": "bkpr-editdescriptionbyoutpoint", "params": { - "outpoint": "txidbk0101010101010101010101010101010101010101010101010101010101:1", + "outpoint": "0c609c5643e2f316985989417c48044311cf2c1fb2113a03af7d7d51b4874ac5:1", "description": "edited utxo description" } }, @@ -284,9 +284,9 @@ "credit_msat": 200000000000, "debit_msat": 0, "currency": "bcrt", - "outpoint": "txidbk0101010101010101010101010101010101010101010101010101010101:1", - "timestamp": 1738510000, - "blockheight": 110, + "outpoint": "0c609c5643e2f316985989417c48044311cf2c1fb2113a03af7d7d51b4874ac5:1", + "timestamp": 1738000001, + "blockheight": 106, "description": "edited utxo description" } ] diff --git a/doc/schemas/bkpr-editdescriptionbypaymentid.json b/doc/schemas/bkpr-editdescriptionbypaymentid.json index 4578c0b40fe2..4becee4cb0d7 100644 --- a/doc/schemas/bkpr-editdescriptionbypaymentid.json +++ b/doc/schemas/bkpr-editdescriptionbypaymentid.json @@ -265,23 +265,23 @@ "id": "example:bkpr-editdescriptionbypaymentid#1", "method": "bkpr-editdescriptionbypaymentid", "params": { - "payment_id": "paymentid0000202020202020202020202020202020202020202020202020202", + "payment_id": "f61aef012557d6496699642e71e2bacda5670b5377c6357fa40485813facc628", "description": "edited invoice description from description send some sats l2 to l3" } }, "response": { "updated": [ { - "account": "channelid0230000230000230000230000230000230000230000230000230000", + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "type": "channel", "tag": "invoice", "credit_msat": 500000000, "debit_msat": 0, "currency": "bcrt", - "payment_id": "paymentid0000202020202020202020202020202020202020202020202020202", + "payment_id": "f61aef012557d6496699642e71e2bacda5670b5377c6357fa40485813facc628", "part_id": 0, - "timestamp": 1738520000, "description": "edited invoice description from description send some sats l2 to l3", + "timestamp": 1738000007, "is_rebalance": false } ] diff --git a/doc/schemas/bkpr-inspect.json b/doc/schemas/bkpr-inspect.json index dc731b389f80..698b8003498d 100644 --- a/doc/schemas/bkpr-inspect.json +++ b/doc/schemas/bkpr-inspect.json @@ -213,18 +213,18 @@ "id": "example:bkpr-inspect#1", "method": "bkpr-inspect", "params": { - "account": "channelid0230200230200230200230200230200230200230200230200230200" + "account": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3" } }, "response": { "txs": [ { - "txid": "channeltxid230200230200230200230200230200230200230200230200230200", - "blockheight": 123, - "fees_paid_msat": 5020000, + "txid": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69", + "blockheight": 124, + "fees_paid_msat": 6652000, "outputs": [ { - "account": "channelid0230200230200230200230200230200230200230200230200230200", + "account": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3", "outnum": 1, "output_tag": "channel_open", "output_value_msat": 1000000000, diff --git a/doc/schemas/bkpr-listaccountevents.json b/doc/schemas/bkpr-listaccountevents.json index d66499437171..8a2e59ca17e6 100644 --- a/doc/schemas/bkpr-listaccountevents.json +++ b/doc/schemas/bkpr-listaccountevents.json @@ -276,21 +276,21 @@ "id": "example:bkpr-listaccountevents#1", "method": "bkpr-listaccountevents", "params": [ - "channelid0230200230200230200230200230200230200230200230200230200" + "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3" ] }, "response": { "events": [ { - "account": "channelid0230200230200230200230200230200230200230200230200230200", + "account": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3", "type": "chain", "tag": "channel_open", "credit_msat": 0, "debit_msat": 0, "currency": "bcrt", - "outpoint": "txidbk0101010101010101010101010101010101010101010101010101010101:1", - "timestamp": 1738500000, - "blockheight": 123 + "outpoint": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69:1", + "timestamp": 1738000023, + "blockheight": 124 } ] } @@ -303,40 +303,401 @@ }, "response": { "events": [ + { + "account": "wallet", + "type": "chain", + "tag": "deposit", + "credit_msat": 200000000000, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "0c609c5643e2f316985989417c48044311cf2c1fb2113a03af7d7d51b4874ac5:1", + "timestamp": 1738000001, + "blockheight": 106, + "description": "edited utxo description" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "chain", + "tag": "channel_open", + "credit_msat": 0, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9:0", + "timestamp": 1738000002, + "blockheight": 112 + }, + { + "account": "wallet", + "type": "chain", + "tag": "deposit", + "credit_msat": 2000000000, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "c3f4a0f787b5ea11505afaba3e9599d6135943d0f562df3d6a7d3e7f372e2067:0", + "timestamp": 1738000003, + "blockheight": 113 + }, + { + "account": "wallet", + "type": "chain", + "tag": "withdrawal", + "credit_msat": 0, + "debit_msat": 2000000000, + "currency": "bcrt", + "outpoint": "c3f4a0f787b5ea11505afaba3e9599d6135943d0f562df3d6a7d3e7f372e2067:0", + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6", + "timestamp": 1738000004, + "blockheight": 114 + }, + { + "account": "wallet", + "type": "onchain_fee", + "tag": "onchain_fee", + "credit_msat": 1004927000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000004, + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6" + }, + { + "account": "wallet", + "type": "onchain_fee", + "tag": "onchain_fee", + "credit_msat": 0, + "debit_msat": 1004927000, + "currency": "bcrt", + "timestamp": 1738000004, + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6" + }, + { + "account": "wallet", + "type": "chain", + "tag": "deposit", + "credit_msat": 995073000, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6:1", + "timestamp": 1738000005, + "blockheight": 114 + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "type": "chain", + "tag": "channel_open", + "credit_msat": 1000000000, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6:0", + "timestamp": 1738000006, + "blockheight": 114 + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "type": "onchain_fee", + "tag": "onchain_fee", + "credit_msat": 4927000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000006, + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "channel", + "tag": "invoice", + "credit_msat": 500000000, + "debit_msat": 0, + "currency": "bcrt", + "payment_id": "f61aef012557d6496699642e71e2bacda5670b5377c6357fa40485813facc628", + "part_id": 0, + "description": "edited invoice description from description send some sats l2 to l3", + "timestamp": 1738000007, + "is_rebalance": false + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "type": "channel", + "tag": "invoice", + "credit_msat": 0, + "debit_msat": 500000000, + "currency": "bcrt", + "payment_id": "864ef81f03c4eabf9e3087d55b18b53beedce221f9a1bcb91d4d69767a022805", + "part_id": 0, + "description": "description send some sats l3 to l4", + "timestamp": 1738000008, + "is_rebalance": false + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "channel", + "tag": "invoice", + "credit_msat": 10000, + "debit_msat": 0, + "currency": "bcrt", + "payment_id": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", + "part_id": 0, + "description": "Invoice description l31", + "timestamp": 1738000009, + "is_rebalance": false + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "channel", + "tag": "invoice", + "credit_msat": 10000, + "debit_msat": 0, + "currency": "bcrt", + "payment_id": "097dcfa3b0bc58d499908855dae7d442854a02d4f2ffcc625f9385ed74f3256e", + "part_id": 0, + "description": "keysend", + "timestamp": 1738000010, + "is_rebalance": false + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "type": "channel", + "tag": "routed", + "credit_msat": 0, + "debit_msat": 10000000, + "fees_msat": 101, + "currency": "bcrt", + "payment_id": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584", + "part_id": 0, + "timestamp": 1738000011, + "is_rebalance": false + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "channel", + "tag": "routed", + "credit_msat": 10000101, + "debit_msat": 0, + "fees_msat": 101, + "currency": "bcrt", + "payment_id": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584", + "part_id": 0, + "timestamp": 1738000012, + "is_rebalance": false + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "channel", + "tag": "invoice", + "credit_msat": 10000, + "debit_msat": 0, + "currency": "bcrt", + "payment_id": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", + "part_id": 0, + "description": "keysend", + "timestamp": 1738000013, + "is_rebalance": false + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "channel", + "tag": "invoice", + "credit_msat": 50000, + "debit_msat": 0, + "currency": "bcrt", + "payment_id": "ab3a5a971aa3b21494f7ce646f077232c10c9917c33375935c1aebfa571fa1a1", + "part_id": 0, + "description": "l32 description", + "timestamp": 1738000014, + "is_rebalance": false + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "channel", + "tag": "invoice", + "credit_msat": 100000, + "debit_msat": 0, + "currency": "bcrt", + "payment_id": "2b1434d9e61da6c5f1252369f4a98e1ddce722b4db3bf15553b87a94d19d351d", + "part_id": 0, + "description": "l33 description", + "timestamp": 1738000015, + "is_rebalance": false + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "type": "channel", + "tag": "routed", + "credit_msat": 0, + "debit_msat": 10000, + "fees_msat": 1, + "currency": "bcrt", + "payment_id": "1bb513fb2fbde40592243877d9f404ba3668275e2eeacd9c7264f34f04d37fd1", + "part_id": 0, + "timestamp": 1738000016, + "is_rebalance": false + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "channel", + "tag": "routed", + "credit_msat": 10001, + "debit_msat": 0, + "fees_msat": 1, + "currency": "bcrt", + "payment_id": "1bb513fb2fbde40592243877d9f404ba3668275e2eeacd9c7264f34f04d37fd1", + "part_id": 0, + "timestamp": 1738000017, + "is_rebalance": false + }, + { + "account": "wallet", + "type": "chain", + "tag": "deposit", + "credit_msat": 510190000, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6:1", + "timestamp": 1738000018, + "blockheight": 122 + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "type": "chain", + "tag": "channel_close", + "credit_msat": 0, + "debit_msat": 489990000, + "currency": "bcrt", + "outpoint": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6:0", + "txid": "1aa6d7b0bb6c5d1dac62724caa4e26dc37ed8af5e747c836746987d28603fed2", + "timestamp": 1738000019, + "blockheight": 122 + }, { "account": "external", - "origin": "channelid0340000340000340000340000340000340000340000340000340000", + "origin": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", "type": "chain", "tag": "to_them", "credit_msat": 510010000, "debit_msat": 0, "currency": "bcrt", - "outpoint": "txidbk0202020202020202020202020202020202020202020202020202020202:1", - "timestamp": 1738520000, - "blockheight": 142 + "outpoint": "1aa6d7b0bb6c5d1dac62724caa4e26dc37ed8af5e747c836746987d28603fed2:1", + "timestamp": 1738000020, + "blockheight": 122 + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "chain", + "tag": "channel_close", + "credit_msat": 0, + "debit_msat": 510190102, + "currency": "bcrt", + "outpoint": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9:0", + "txid": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6", + "timestamp": 1738000021, + "blockheight": 122 + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "onchain_fee", + "tag": "onchain_fee", + "credit_msat": 102, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000021, + "txid": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6" + }, + { + "account": "external", + "origin": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "type": "chain", + "tag": "to_them", + "credit_msat": 486914000, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6:0", + "timestamp": 1738000022, + "blockheight": 122 + }, + { + "account": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3", + "type": "chain", + "tag": "channel_open", + "credit_msat": 0, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69:1", + "timestamp": 1738000023, + "blockheight": 124 }, { "account": "wallet", "type": "chain", "tag": "deposit", - "credit_msat": 200000000000, + "credit_msat": 2000000000, "debit_msat": 0, "currency": "bcrt", - "outpoint": "txidbk0101010101010101010101010101010101010101010101010101010101:1", - "timestamp": 1738510000, - "blockheight": 141, - "description": "edited utxo description" + "outpoint": "e72c5b057eb2944ade8a57c7d1143cc5eea12f0905287ce40c2716ed7032bd29:0", + "timestamp": 1738000024, + "blockheight": 125 }, { - "account": "channelid0230000230000230000230000230000230000230000230000230000", + "account": "wallet", "type": "chain", - "tag": "channel_open", + "tag": "withdrawal", "credit_msat": 0, + "debit_msat": 2000000000, + "currency": "bcrt", + "outpoint": "e72c5b057eb2944ade8a57c7d1143cc5eea12f0905287ce40c2716ed7032bd29:0", + "txid": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2", + "timestamp": 1738000025, + "blockheight": 126 + }, + { + "account": "wallet", + "type": "onchain_fee", + "tag": "onchain_fee", + "credit_msat": 1004927000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000025, + "txid": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2" + }, + { + "account": "wallet", + "type": "onchain_fee", + "tag": "onchain_fee", + "credit_msat": 0, + "debit_msat": 1004927000, + "currency": "bcrt", + "timestamp": 1738000025, + "txid": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2" + }, + { + "account": "wallet", + "type": "chain", + "tag": "deposit", + "credit_msat": 995073000, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2:1", + "timestamp": 1738000026, + "blockheight": 126 + }, + { + "account": "7512083907c74ed3a045e9bf772b3d72948eb93daf84a1cee57108800451aaf2", + "type": "chain", + "tag": "channel_open", + "credit_msat": 1000000000, + "debit_msat": 0, + "currency": "bcrt", + "outpoint": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2:0", + "timestamp": 1738000027, + "blockheight": 126 + }, + { + "account": "7512083907c74ed3a045e9bf772b3d72948eb93daf84a1cee57108800451aaf2", + "type": "onchain_fee", + "tag": "onchain_fee", + "credit_msat": 4927000, "debit_msat": 0, "currency": "bcrt", - "outpoint": "txidbk0303030303030303030303030303030303030303030303030303030303:1", - "timestamp": 1738530000, - "blockheight": 143 + "timestamp": 1738000027, + "txid": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2" } ] } diff --git a/doc/schemas/bkpr-listbalances.json b/doc/schemas/bkpr-listbalances.json index ee81c2f5f1e6..5ee751768b7e 100644 --- a/doc/schemas/bkpr-listbalances.json +++ b/doc/schemas/bkpr-listbalances.json @@ -146,21 +146,12 @@ "response": { "accounts": [ { - "account": "wallet", - "balances": [ - { - "balance_msat": 202050000000, - "coin_type": "bcrt" - } - ] - }, - { - "account": "channelid0230000230000230000230000230000230000230000230000230000", - "peer_id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "peer_id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "we_opened": false, "account_closed": true, "account_resolved": true, - "resolved_at_block": 121, + "resolved_at_block": 122, "balances": [ { "balance_msat": 0, @@ -169,8 +160,8 @@ ] }, { - "account": "channelid0340000340000340000340000340000340000340000340000340000", - "peer_id": "nodeid040404040404040404040404040404040404040404040404040404040404", + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "peer_id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "we_opened": true, "account_closed": true, "account_resolved": false, @@ -182,8 +173,8 @@ ] }, { - "account": "channelid0230200230200230200230200230200230200230200230200230200", - "peer_id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "account": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3", + "peer_id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "we_opened": false, "account_closed": false, "account_resolved": false, @@ -195,8 +186,8 @@ ] }, { - "account": "channelid0340200340200340200340200340200340200340200340200340200", - "peer_id": "nodeid040404040404040404040404040404040404040404040404040404040404", + "account": "7512083907c74ed3a045e9bf772b3d72948eb93daf84a1cee57108800451aaf2", + "peer_id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "we_opened": true, "account_closed": false, "account_resolved": false, @@ -206,6 +197,15 @@ "coin_type": "bcrt" } ] + }, + { + "account": "wallet", + "balances": [ + { + "balance_msat": 202500336000, + "coin_type": "bcrt" + } + ] } ] } diff --git a/doc/schemas/bkpr-listincome.json b/doc/schemas/bkpr-listincome.json index 180a210a509d..b51bfbc6b0af 100644 --- a/doc/schemas/bkpr-listincome.json +++ b/doc/schemas/bkpr-listincome.json @@ -147,9 +147,9 @@ "credit_msat": 200000000000, "debit_msat": 0, "currency": "bcrt", - "timestamp": 1738500000, + "timestamp": 1738000001, "description": "edited utxo description", - "outpoint": "txidbk0000000000000000000000000000000000000000000000000000000000:1" + "outpoint": "0c609c5643e2f316985989417c48044311cf2c1fb2113a03af7d7d51b4874ac5:1" }, { "account": "wallet", @@ -157,8 +157,8 @@ "credit_msat": 2000000000, "debit_msat": 0, "currency": "bcrt", - "timestamp": 1738510000, - "outpoint": "txidbk0101010101010101010101010101010101010101010101010101010101:1" + "timestamp": 1738000003, + "outpoint": "c3f4a0f787b5ea11505afaba3e9599d6135943d0f562df3d6a7d3e7f372e2067:0" }, { "account": "wallet", @@ -166,8 +166,8 @@ "credit_msat": 0, "debit_msat": 1004927000, "currency": "bcrt", - "timestamp": 1738520000, - "txid": "channeltxid340000340000340000340000340000340000340000340000340000" + "timestamp": 1738000004, + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6" }, { "account": "wallet", @@ -175,8 +175,150 @@ "credit_msat": 1004927000, "debit_msat": 0, "currency": "bcrt", - "timestamp": 1738530000, - "txid": "channeltxid340000340000340000340000340000340000340000340000340000" + "timestamp": 1738000004, + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6" + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "tag": "onchain_fee", + "credit_msat": 0, + "debit_msat": 4927000, + "currency": "bcrt", + "timestamp": 1738000006, + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 500000000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000007, + "description": "edited invoice description from description send some sats l2 to l3", + "payment_id": "f61aef012557d6496699642e71e2bacda5670b5377c6357fa40485813facc628" + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "tag": "invoice", + "credit_msat": 0, + "debit_msat": 500000000, + "currency": "bcrt", + "timestamp": 1738000008, + "description": "description send some sats l3 to l4", + "payment_id": "864ef81f03c4eabf9e3087d55b18b53beedce221f9a1bcb91d4d69767a022805" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 10000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000009, + "description": "Invoice description l31", + "payment_id": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 10000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000010, + "description": "keysend", + "payment_id": "097dcfa3b0bc58d499908855dae7d442854a02d4f2ffcc625f9385ed74f3256e" + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "tag": "routed", + "credit_msat": 101, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000011, + "payment_id": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 10000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000013, + "description": "keysend", + "payment_id": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 50000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000014, + "description": "l32 description", + "payment_id": "ab3a5a971aa3b21494f7ce646f077232c10c9917c33375935c1aebfa571fa1a1" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 100000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000015, + "description": "l33 description", + "payment_id": "2b1434d9e61da6c5f1252369f4a98e1ddce722b4db3bf15553b87a94d19d351d" + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "tag": "routed", + "credit_msat": 1, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000016, + "payment_id": "1bb513fb2fbde40592243877d9f404ba3668275e2eeacd9c7264f34f04d37fd1" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "onchain_fee", + "credit_msat": 0, + "debit_msat": 102, + "currency": "bcrt", + "timestamp": 1738000021, + "txid": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6" + }, + { + "account": "wallet", + "tag": "deposit", + "credit_msat": 2000000000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000024, + "outpoint": "e72c5b057eb2944ade8a57c7d1143cc5eea12f0905287ce40c2716ed7032bd29:0" + }, + { + "account": "wallet", + "tag": "onchain_fee", + "credit_msat": 0, + "debit_msat": 1004927000, + "currency": "bcrt", + "timestamp": 1738000025, + "txid": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2" + }, + { + "account": "wallet", + "tag": "onchain_fee", + "credit_msat": 1004927000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000025, + "txid": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2" + }, + { + "account": "7512083907c74ed3a045e9bf772b3d72948eb93daf84a1cee57108800451aaf2", + "tag": "onchain_fee", + "credit_msat": 0, + "debit_msat": 4927000, + "currency": "bcrt", + "timestamp": 1738000027, + "txid": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2" } ] } @@ -195,28 +337,142 @@ "credit_msat": 200000000000, "debit_msat": 0, "currency": "bcrt", - "timestamp": 1738510000, + "timestamp": 1738000001, "description": "edited utxo description", - "outpoint": "txidbk0101010101010101010101010101010101010101010101010101010101:1" + "outpoint": "0c609c5643e2f316985989417c48044311cf2c1fb2113a03af7d7d51b4874ac5:1" + }, + { + "account": "wallet", + "tag": "deposit", + "credit_msat": 2000000000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000003, + "outpoint": "c3f4a0f787b5ea11505afaba3e9599d6135943d0f562df3d6a7d3e7f372e2067:0" + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "tag": "onchain_fee", + "credit_msat": 0, + "debit_msat": 4927000, + "currency": "bcrt", + "timestamp": 1738000006, + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6" }, { - "account": "channelid0230000230000230000230000230000230000230000230000230000", + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "tag": "invoice", "credit_msat": 500000000, "debit_msat": 0, "currency": "bcrt", - "timestamp": 1738520000, + "timestamp": 1738000007, "description": "edited invoice description from description send some sats l2 to l3", - "payment_id": "paymentid0000202020202020202020202020202020202020202020202020202" + "payment_id": "f61aef012557d6496699642e71e2bacda5670b5377c6357fa40485813facc628" + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "tag": "invoice", + "credit_msat": 0, + "debit_msat": 500000000, + "currency": "bcrt", + "timestamp": 1738000008, + "description": "description send some sats l3 to l4", + "payment_id": "864ef81f03c4eabf9e3087d55b18b53beedce221f9a1bcb91d4d69767a022805" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 10000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000009, + "description": "Invoice description l31", + "payment_id": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 10000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000010, + "description": "keysend", + "payment_id": "097dcfa3b0bc58d499908855dae7d442854a02d4f2ffcc625f9385ed74f3256e" + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "tag": "routed", + "credit_msat": 101, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000011, + "payment_id": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 10000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000013, + "description": "keysend", + "payment_id": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 50000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000014, + "description": "l32 description", + "payment_id": "ab3a5a971aa3b21494f7ce646f077232c10c9917c33375935c1aebfa571fa1a1" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "invoice", + "credit_msat": 100000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000015, + "description": "l33 description", + "payment_id": "2b1434d9e61da6c5f1252369f4a98e1ddce722b4db3bf15553b87a94d19d351d" + }, + { + "account": "21bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357", + "tag": "routed", + "credit_msat": 1, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000016, + "payment_id": "1bb513fb2fbde40592243877d9f404ba3668275e2eeacd9c7264f34f04d37fd1" + }, + { + "account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "tag": "onchain_fee", + "credit_msat": 0, + "debit_msat": 102, + "currency": "bcrt", + "timestamp": 1738000021, + "txid": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6" + }, + { + "account": "wallet", + "tag": "deposit", + "credit_msat": 2000000000, + "debit_msat": 0, + "currency": "bcrt", + "timestamp": 1738000024, + "outpoint": "e72c5b057eb2944ade8a57c7d1143cc5eea12f0905287ce40c2716ed7032bd29:0" }, { - "account": "channelid0340200340200340200340200340200340200340200340200340200", + "account": "7512083907c74ed3a045e9bf772b3d72948eb93daf84a1cee57108800451aaf2", "tag": "onchain_fee", "credit_msat": 0, - "debit_msat": 6960000, + "debit_msat": 4927000, "currency": "bcrt", - "timestamp": 1738530000, - "txid": "channeltxid340200340200340200340200340200340200340200340200340200" + "timestamp": 1738000027, + "txid": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2" } ] } diff --git a/doc/schemas/check.json b/doc/schemas/check.json index cb787b6cf0f7..c461ad059eac 100644 --- a/doc/schemas/check.json +++ b/doc/schemas/check.json @@ -54,15 +54,15 @@ "route": [ { "amount_msat": 1011, - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "delay": 20, - "channel": "123x1x1" + "channel": "124x1x1" }, { "amount_msat": 1000, - "id": "nodeid040404040404040404040404040404040404040404040404040404040404", + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "delay": 10, - "channel": "130x1x1" + "channel": "126x1x0" } ], "payment_hash": "0000000000000000000000000000000000000000000000000000000000000000" diff --git a/doc/schemas/checkmessage.json b/doc/schemas/checkmessage.json index fb744735d6cd..1c583d2eb56a 100644 --- a/doc/schemas/checkmessage.json +++ b/doc/schemas/checkmessage.json @@ -100,7 +100,7 @@ } }, "response": { - "pubkey": "nodeid010101010101010101010101010101010101010101010101010101010101", + "pubkey": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "verified": true } } diff --git a/doc/schemas/checkrune.json b/doc/schemas/checkrune.json index 643e29826948..973b72b78078 100644 --- a/doc/schemas/checkrune.json +++ b/doc/schemas/checkrune.json @@ -90,7 +90,7 @@ "id": "example:checkrune#1", "method": "checkrune", "params": { - "nodeid": "nodeid020202020202020202020202020202020202020202020202020202020202", + "nodeid": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "rune": "_RWaZZRI7wAYU2hqlFBmYgC_dFczcpAdI_9O87YbDpg9MCZtZXRob2RebGlzdHxtZXRob2ReZ2V0fG1ldGhvZD1zdW1tYXJ5Jm1ldGhvZC9saXN0ZGF0YXN0b3Jl", "method": "listpeers", "params": {} @@ -105,7 +105,7 @@ "id": "example:checkrune#2", "method": "checkrune", "params": { - "nodeid": "nodeid020202020202020202020202020202020202020202020202020202020202", + "nodeid": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "rune": "QUJEYMLGgiaJvMDv_MhR2hiMKIBTbq-PrL-KxcIlirQ9MiZtZXRob2Q9cGF5JnBuYW1lYW1vdW50bXNhdDwxMDAwMA==", "method": "pay", "params": { diff --git a/doc/schemas/close.json b/doc/schemas/close.json index 2b30fa463a32..2b19109d288f 100644 --- a/doc/schemas/close.json +++ b/doc/schemas/close.json @@ -190,18 +190,18 @@ "id": "example:close#1", "method": "close", "params": { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "unilateraltimeout": 1 } }, "response": { - "tx": "02000000000101cls00101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "txid": "txid010101010101010101010101010101010101010101010101010101010101", + "tx": "02000000000101a92a6508defe049b47f2420c054cb1a446198faf4bfd74bb2479b3c45075ce7c0000000000ffffffff02026e07000000000022512085d72025e78fd08bb61119f0987ab0041f50561ada6e130c645343db8c44c2afeec8070000000000225120a7583f0c421663b8ca76fa579018b40682ef8553d73fd061cd8f216ecdced6a30400473044022064d1a5480d76bc71d44ee440a47ec30e7433812292ca8d4876e5e59cd2950e4802201ece394b4bcbf6ba3f21152236822cfb2eeed8e5897d3bf3499e9d7d1a5d092e01473044022068cd05fe53fa71118b643e5340ea3cd169a3ca655c64c0b30f78d720d79a957502200f14d30de4251cf016a3db3475fe5472772335b76dfc268dc173e6541026b1830147522102d595ae92b3544c3250fb772f214ad8d4c51425033740a5bcc357190add6d7e7a2102d6063d022691b2490ab454dee73a57c6ff5d308352b461ece69f3c284f2c241252ae00000000", + "txid": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6", "txs": [ - "02000000000101cls00101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101" + "02000000000101a92a6508defe049b47f2420c054cb1a446198faf4bfd74bb2479b3c45075ce7c0000000000ffffffff02026e07000000000022512085d72025e78fd08bb61119f0987ab0041f50561ada6e130c645343db8c44c2afeec8070000000000225120a7583f0c421663b8ca76fa579018b40682ef8553d73fd061cd8f216ecdced6a30400473044022064d1a5480d76bc71d44ee440a47ec30e7433812292ca8d4876e5e59cd2950e4802201ece394b4bcbf6ba3f21152236822cfb2eeed8e5897d3bf3499e9d7d1a5d092e01473044022068cd05fe53fa71118b643e5340ea3cd169a3ca655c64c0b30f78d720d79a957502200f14d30de4251cf016a3db3475fe5472772335b76dfc268dc173e6541026b1830147522102d595ae92b3544c3250fb772f214ad8d4c51425033740a5bcc357190add6d7e7a2102d6063d022691b2490ab454dee73a57c6ff5d308352b461ece69f3c284f2c241252ae00000000" ], "txids": [ - "txid010101010101010101010101010101010101010101010101010101010101" + "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6" ], "type": "mutual" } @@ -211,18 +211,18 @@ "id": "example:close#2", "method": "close", "params": { - "id": "nodeid040404040404040404040404040404040404040404040404040404040404", - "destination": "bcrt1p0004040404040404040404040404040404040404040404040404040404" + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "destination": "bcrt1qwvp8fktkxp07v0fp9jyqe7yl6rcgyu585a7pzr" } }, "response": { - "tx": "02000000000101cls10202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202", - "txid": "txid020202020202020202020202020202020202020202020202020202020202", + "tx": "02000000000101b6f77750c0aae7faf2aa6e4b38a14671adc8def298a0b89ced09596f002aa5ef0000000000ffffffff026b6f070000000000160014730274d976305fe63d212c880cf89fd0f08272873ac80700000000002251202bdd81f95d64ed2cc37d2eae725de428c91bff072d7503d87446970eedc630300400473044022008dec4948db1c9e4db4dcf8c223f554117e48c6aa0aac471de67c03163a82e4a0220018bdb9889230e0048a378efad73d3bec83c330baa727323d95ca86fe36301b701473044022022cec9df9ece54e1ca89888bdc19ed84e5202a93070d05aa9b3236f9990b440d0220376f7fd6edb49ad13596cdfd51d929a92d45bc88da3f16ed0777014a28025a2801475221021c29746e4136ddff456483df3980c2d0d5f31c93ef5ded564f7294a10d7414aa2103c47b1b2afcfd68c7b86c0976adb9a4f0835bc78242fced745d78433497a867d652ae00000000", + "txid": "1aa6d7b0bb6c5d1dac62724caa4e26dc37ed8af5e747c836746987d28603fed2", "txs": [ - "02000000000101cls10202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202" + "02000000000101b6f77750c0aae7faf2aa6e4b38a14671adc8def298a0b89ced09596f002aa5ef0000000000ffffffff026b6f070000000000160014730274d976305fe63d212c880cf89fd0f08272873ac80700000000002251202bdd81f95d64ed2cc37d2eae725de428c91bff072d7503d87446970eedc630300400473044022008dec4948db1c9e4db4dcf8c223f554117e48c6aa0aac471de67c03163a82e4a0220018bdb9889230e0048a378efad73d3bec83c330baa727323d95ca86fe36301b701473044022022cec9df9ece54e1ca89888bdc19ed84e5202a93070d05aa9b3236f9990b440d0220376f7fd6edb49ad13596cdfd51d929a92d45bc88da3f16ed0777014a28025a2801475221021c29746e4136ddff456483df3980c2d0d5f31c93ef5ded564f7294a10d7414aa2103c47b1b2afcfd68c7b86c0976adb9a4f0835bc78242fced745d78433497a867d652ae00000000" ], "txids": [ - "txid020202020202020202020202020202020202020202020202020202020202" + "1aa6d7b0bb6c5d1dac62724caa4e26dc37ed8af5e747c836746987d28603fed2" ], "type": "mutual" } diff --git a/doc/schemas/commando.json b/doc/schemas/commando.json index 6919d344337c..13d1df4f4737 100644 --- a/doc/schemas/commando.json +++ b/doc/schemas/commando.json @@ -90,7 +90,7 @@ "id": "example:commando#1", "method": "commando", "params": { - "peer_id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "peer_id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "rune": "zFMd1fjhrAYxUeFA54TjloZqOt8JrA_i_nYwIgXkag49MA==", "method": "newaddr", "params": { @@ -99,7 +99,7 @@ } }, "response": { - "p2tr": "bcrt1p338x07070707070707070707070707070707070707070707070707070707" + "p2tr": "bcrt1pccrx7fmmdg6ssww0su65umpyzrt0w8fs39hc0tu04zm88etleqsq8t2an5" } }, { @@ -107,22 +107,22 @@ "id": "example:commando#2", "method": "commando", "params": { - "peer_id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "peer_id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "rune": "RXgu0DD_i0wSPEZkIDyZIWL0bSAGdhvJ_GHOQdTg04A9MSZpZF4wMjY2ZTQ1OThkMWQzYzQxNWY1NyZtZXRob2Q9bGlzdHBlZXJz", "method": "listpeers", "params": [ - "nodeid030303030303030303030303030303030303030303030303030303030303" + "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d" ] } }, "response": { "peers": [ { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "connected": true, "num_channels": 2, "netaddr": [ - "127.0.0.1:19736" + "127.0.0.1:30005" ], "features": "0898882a8a59a1" } @@ -134,23 +134,23 @@ "id": "example:commando#3", "method": "commando", "params": { - "peer_id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "peer_id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "rune": "QUJEYMLGgiaJvMDv_MhR2hiMKIBTbq-PrL-KxcIlirQ9MiZtZXRob2Q9cGF5JnBuYW1lYW1vdW50bXNhdDwxMDAwMA==", "method": "pay", "params": { - "bolt11": "lnbcrt100n1pnt2bolt11invl020300000000bolt11invl020300000000bolt11invl020300000000bolt11invl020300000000bolt11invl020300000000bolt11invl020300000000bolt11invl020300000000bolt11invl020300000000bolt11invl020300000000bolt11invl020300000000", + "bolt11": "lnbcrt1pne035qsp5hu0s83c7qg77lgtagcr58sf07fvrqf27j67s2ptguw9wk8ruexfqpp50ge88lv20ge4a9ny7xc7rg8p6vqvnuuzwllkk2zng6txu7sfz3cqdqcdserxgryv4ekxunfwp6xjmmwxqyjw5qcqp99qxpqysgqrwjd83fygx3zcnupx0ftnpewajss6n4vpsugju00w8hu5lu0neujqhgw8jygwmawz8jq8pp2xu6r78f3m9yld6ky7539x5g5ahvtmqqqmgfjaa", "amount_msat": 9900 } } }, "response": { - "destination": "nodeid020202020202020202020202020202020202020202020202020202020202", - "payment_hash": "paymenthashcmdpycp10cp10cp10cp10cp10cp10cp10cp10cp10cp10cp10cp10", - "created_at": 1738000000, + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "payment_hash": "7a3273fd8a7a335e9664f1b1e1a0e1d300c9f38277ff6b285346966e7a091470", + "created_at": 1738000000.0, "parts": 1, "amount_msat": 9900, "amount_sent_msat": 9900, - "payment_preimage": "paymentpreimagec010101010101010101010101010101010101010101010101", + "payment_preimage": "08377744ca985c1f08377744ca985c1f08377744ca985c1f08377744ca985c1f", "status": "complete" } } diff --git a/doc/schemas/connect.json b/doc/schemas/connect.json index 0587d90f3790..6079bf9e2699 100644 --- a/doc/schemas/connect.json +++ b/doc/schemas/connect.json @@ -192,19 +192,19 @@ "id": "example:connect#1", "method": "connect", "params": { - "id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "host": "localhost", - "port": 19735 + "port": 30003 } }, "response": { - "id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "features": "0898882a8a59a1", "direction": "out", "address": { "type": "ipv4", "address": "127.0.0.1", - "port": 19735 + "port": 30003 } } }, @@ -213,19 +213,19 @@ "id": "example:connect#2", "method": "connect", "params": { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "host": "localhost", - "port": 19736 + "port": 30005 } }, "response": { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "features": "0898882a8a59a1", "direction": "out", "address": { "type": "ipv4", "address": "127.0.0.1", - "port": 19736 + "port": 30005 } } } diff --git a/doc/schemas/createinvoice.json b/doc/schemas/createinvoice.json index 3ca4e9ec545a..75ef871005ef 100644 --- a/doc/schemas/createinvoice.json +++ b/doc/schemas/createinvoice.json @@ -211,19 +211,19 @@ "id": "example:createinvoice#1", "method": "createinvoice", "params": { - "invstring": "lnbcrt100n1pnt2bolt11invl010300000000bolt11invl010300000000bolt11invl010300000000bolt11invl010300000000bolt11invl010300000000bolt11invl010300000000bolt11invl010300000000bolt11invl010300000000bolt11invl010300000000bolt11invl010300000000", + "invstring": "lnbcrt1u1pne035qsp5j9w8t9p2y6an5se63n3vkpp8c20vdsthtn78sv5t2lmt57l742wqpp5wtxkappzcsrlkmgfs6g0zyct0hkhashh7hsaxz7e65slq9fkx7fsdqcdscnxgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqdcqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqckdjpyhc4cunmkllssef4lekdrf6dmg6pq4r45ftgcfyvyx3ag0k473jegm39nl9wal6ue7y8ue6xlf7wd8f0ql4xs7fx45jm47muzqq7cecak", "label": "lbl_l13", "preimage": "0101010101010101010101010101010101010101010101010101010101010101" } }, "response": { "label": "lbl_l13", - "bolt11": "lnbcrt100n1pnt2bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000", - "payment_hash": "paymenthashinvl0210021002100210021002100210021002100210021002100", + "bolt11": "lnbcrt1u1pne035qsp5j9w8t9p2y6an5se63n3vkpp8c20vdsthtn78sv5t2lmt57l742wqpp5wtxkappzcsrlkmgfs6g0zyct0hkhashh7hsaxz7e65slq9fkx7fsdqcdscnxgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqdcqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgq2dmxu8vh2mmklw3vrq0dy4a69v7ga4mauty4cswwga4j4ahx797sjtzpj0qty3qkxcvw3nndx8f9v9230y4sjyf298m6uwz8thz9rpcqz05u35", + "payment_hash": "72cd6e8422c407fb6d098690f1130b7ded7ec2f7f5e1d30bd9d521f015363793", "amount_msat": 100000, "status": "unpaid", "description": "l13 description", - "expires_at": 1739000000, + "expires_at": 1738604800, "created_index": 7 } } diff --git a/doc/schemas/createonion.json b/doc/schemas/createonion.json index d6c2d22ce941..79c06c1fa1e7 100644 --- a/doc/schemas/createonion.json +++ b/doc/schemas/createonion.json @@ -108,27 +108,27 @@ "params": { "hops": [ { - "pubkey": "nodeid020202020202020202020202020202020202020202020202020202020202", - "payload": "payload010101010101010101010101010" + "pubkey": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "payload": "11020203e804019106080000700000010000" }, { - "pubkey": "nodeid030303030303030303030303030303030303030303030303030303030303", - "payload": "payload020202020202020202020202020" + "pubkey": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "payload": "11020203e804019106080000720000010000" }, { - "pubkey": "nodeid040404040404040404040404040404040404040404040404040404040404", - "payload": "payload030303030303030303030303030" + "pubkey": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "payload": "2b020203e804018b0822d1d843a07ff04801a9c926cfef8fbd242a35d332fde5e255e6b4c92e2fc5030f03e8" } ], - "assocdata": "assocdata0010101010101010101010101010101010101010101010101010101" + "assocdata": "47c148c1746366e4c2c7496621c22002bc2711b4d9c52cbb9c7b1fdca59c8579" } }, "response": { - "onion": "onion10101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010", + "onion": "00021d5b7e75f56e8fb8c5dbbcfdf954b89d171b35fced6bf4ad929b3b6e081e16c93046493f6f0f4e6f983b424e799b9f60ae7c75fa260760393aad7958e04ec5ea5a06e11078daa9ff31a1aaeed8b04f5ce319118a4bdda9e90861829161dd4d44164816f566d0cc219da32fdd08249068cec2fd589fb216933b95adce045364fcb6d6905a4e4169346b75e6ccfecb0cfdfd74d0574eb684b952db7df8443541cc28296f42afeafbb7a34c3f8c64dce9c0ebb37f5485f66246cbf11b7a8cd4a45d64723b7e706b1ef3eff4ce6133aa86f6c044337716bd0c1173b92b13c4d11453ab850fd945c1af91d3ce41928600bbafbc81b56e3bc704a678a783e2232bc80bc4afa93f84498127123096af80ca5295bb02b6c6524720a0f4dc81075688632b9428f6f4399a0ecf6c17e5c3015c9715af5127000787cc8d7e023f96b6e0175d600911c1dffef6a0d2a8ea8059b287e9e941810de5190ce0c274d6452a8ecc06a0cb98a9550e7e80e8eebdb9c326ca2a3f25b3147daaa68b8d5f745344938645535f858f6a4484b17322b4076714994865ac1660c4f364309bb5147c55bf8458cf6aa7420896d2cb1ee0fe301c83109a102a42d41063c32732ef0366b9b9bd7516c3f7607a54eb3255fa6589bd3ea021cb9deee71b3ea33fa9e509c085216243ea6cea4acf038fee2a4e7418f4087c79423f8bc94fda1ea7de66cb06c131304e39b20634e70721f028427093e059065e6d157cbbdb1ea02476478033164cc90b7707c612897224099c8f3cae86cf0503a1fc1c21e86f4fa7c6332786cc0c44b379516032a93d1c4853453b819d30438814b28bbb14989dfb88819e3fd9b38267b84cc052637ca9c5ae2b149fb53831e4237036cde4b6dd0c0754c52551585692beba1b4228540255ad6fd6bd7912acd47816023332a52075db994decac8cc3611a0f222638084b71a3f8f4c019af28524d96a609fd7cf2e660414b8db54a2d77087087313dea24cab947c04a3ca191d3ba8ffd5ddef72fbc6ad1fc7c71e97cc3da1b677108b907c591c32cb3a41b5636292d9db891013c2d729d67162e4388bee98469f98871af9b5580768f0db885106b981274060f1b3bca8f7297287c6688f6c30054f727d7dd9baa097175fb198b3477c2f1545ea6425f0a6df732ea4be943dff9cece87a9751be426669b1f8b3cb3f7a39f2b72ee68c287e6db1c86405b782c774c22acad3a68bb377713958f6c89e7b8a3d17e52416ea9bdb959949b47af8dd6b380ebc0481873de65edf599f3c1f51c9e4abd388e4d6ad6cf48e5c279286ed7bc683523b9c016227af1cdcf856ec11b47d3f369ac4fde6cee8e19748ef6c365c5effdc81afe560e1597891256dad1b849f550ab681b0c8ba660f1172ac3f63069140c2180537d793f899ba897dae47a848b6e4b1ceac369c59257a3c1d4f2cefe0b64e84ac010397bc55d77a8f801b227ab6453770fc9775788c4a9ce7bdc5f40aa156d1b0c4f9ef41dfbb0518151809761d22e503b9b8725704bbe4f7aaaf4188f80106354743e3f605a1cee1d6d09226176a913a3f9fe9513a081377c820e582fffd534cb27146264972b9f5362dc37cacb821e64ef711eb39addbe1a747df2b1cc54f26dfc1a32ac26297b980e4a492e2242d6d745e508e65f6162ba6e28d4f1f2177c5896c9d82019a74cd6f136e04af3a01a2178e961c0d4e63235982807579ea34f306ec0ea3f0e58a8fee4dd28c2303fa9e09e45b8c9cbc6a69aba0b838473a33e2a287f0824936bfd427f72b7bb7362a40f77136ecfe53173b2acfbbdd49ec390078926d0a9a69114312fee5a9b5ad8f7b80711f76d5ffca8632593b2ea9b2caaebf219ec7586e9d6962353f98b2882fb804a34b16946453038127de73f4e827b190f6001b7a5560b7eb978f8", "shared_secrets": [ - "sharedsecret1010101010101010101010101010101010101010101010101010", - "sharedsecret1111111111111111111111111111111111111111111111111111", - "sharedsecret1212121212121212121212121212121212121212121212121212" + "f0652f245faf69100228c62e03a064bdbc7e3ac191e1c5bb094a94c1939d8b9b", + "b252680750e43ce4fdb2bc38c9b31f6b9b37d5d1bd9abf679dfcc33047154180", + "760e4382462d61429cf7ba5af877aa82516119dfc3d7172350234b5018f87626" ] } }, @@ -139,28 +139,28 @@ "params": { "hops": [ { - "pubkey": "nodeid020202020202020202020202020202020202020202020202020202020202", - "payload": "payload010101010101010101010101010" + "pubkey": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "payload": "11020203e804019106080000700000010000" }, { - "pubkey": "nodeid030303030303030303030303030303030303030303030303030303030303", - "payload": "payload020202020202020202020202020" + "pubkey": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "payload": "11020203e804019106080000720000010000" }, { - "pubkey": "nodeid040404040404040404040404040404040404040404040404040404040404", - "payload": "payload030303030303030303030303030" + "pubkey": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "payload": "2b020203e804018b0822d1d843a07ff04801a9c926cfef8fbd242a35d332fde5e255e6b4c92e2fc5030f03e8" } ], - "assocdata": "assocdata0010101010101010101010101010101010101010101010101010101", + "assocdata": "47c148c1746366e4c2c7496621c22002bc2711b4d9c52cbb9c7b1fdca59c8579", "session_key": "4141414141414141414141414141414141414141414141414141414141414141" } }, "response": { - "onion": "onion20202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020", + "onion": "0002eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f2836866191c78fd992adb6335814526c8f53ab57e22cd57b69c19115ac040a9b54cfee007a2aed47573c7939d15b1411605e9e0f03698d38499e802a15853122723857dbddb629cf2e16a1292a1c951ca4211efadc17b6e219e5dacfe19ee6288cc29ddd440c056ed1ea9fa2c0caea86d7b0de9338326e4f13bb1cda872a64a836a729350f2e79c3ac8618ddfacbd70d588759e8701901d74b64bf51f1c21cdc785b54dc5a6ba39fc75f956b60a372f6421a84f6001b294487baf1bb049b7bd901c5854c0999a82095874b02da90021a685f7c77f4b724a3d27489c091807b32bcdfb2c68f69b50c0b43c78288c333dbb007874f36fcf224fbc2ed89690f64a62b5ecfe6275750eb1a5575f689ca6d59c9a570689372db120cf6a29177caaace5ac671a3607d37a3048af18d1d736ac8a4dde8efc4884f8eab23cdc8cb15170471ee7b416b5cf089dee8ab8ac3eea6700a6040839c1e86f6d2b5acf9c7bac856cae96e9d1b7142f91ac4818cf0007a23100ae621470ac2552116f30948f21602237d12d29f58ca73f10f05b38f7b4b728fcfd8aafc1a82502aae3081c4bc8a77771aef16247bcf26d8569140441c405a3c21a649a8439797f45e7c37a2025318f4c88e3eba454fd4cc37e9978b59fa7b1e41af450523713fdad8070c7abdeea299474c99b2bde737e8c8ad79cb9fdd70a935ad29504d185bf100a339d203cd929030454a6450132255fea11ba0c6a520fa7cc3b8638f8032a61c492f7f9d1ec591a851f25df9238945ae467126b64019f21a71a2d3ef46cdd7b61773ad632dc77e0bda7d06b493efe940d9b975ebb85c423a83d24966f5e2ae2ec9c3b2257cc21a4989dd016d688865ba5245667c302e408dc56ffdf4282ad834f0c5af1ce49b3997fe397faf6874cac24ae346b4e72e468506c0e724efe6f805e0fd115de39b6fa29d05e11bbe2ec27548517f93ebd7b977b13237ab9c40ff5766f7263ea1f2eabba460600cd7da082fcf8d0a7bd37054abfd6040f886dde48cf600612b5b73a44026e79d46336de73f2ea5fbfc9603ccd89f6954e5093b6bfe556e6f67deb0878128049186f7ac6ef461a56c2bb4f24a9679fb386e06052c3da2f367f14bc41ec191f5b0b7b3ccad1f2cc58c863c49055c889b8b04b6b6cbaec50d0d103d4ea0da75952a730b07cea0da43914b5ab3f30b5104d9a75eb003da0b5b97bf9eb9081194cc5b50362041a972841bdafde31909929237ed5b94c88dd05126cdb3fd25add0c777c2ad021e1a0e7140d6c4c2005cb353a7a6a747ee75467c052f55faa485cbcf3758eafba7a8ef00d1481cc0f05af539116f443cb02a7b30a3de899dc66cb0781ccccf5c8d93b34be0665d11cbca55cd7a424b958124edf1289c7f4fc19c1be8fc7a861ce47c43a641bafdb195e1c74a1fbf69dbd518013f3dbf2860818b5a3e6f1dd36a5546bfd416e9714dec29818ecd1aeeb29c319b407c497621248d232680417486698a3e1262f03a8bc6441d1de40ae351dae4527a8efe25fc68a3f1571aa556edd6bfb9db7caba4d2c02bab003c43055f5d3ebf961735c3b1f4cd3e0a96038697a95cceac08c0aff084450cf571f81c95d468826aa4292997ccfeba32db77c4c22a9d3caa0a37a8a961ac2f2c8a6965687143bc93c620503839fd7bd7fc2e6d9c966586b713f824b8e9d3de55cb1b81f9204b92dfaa066920c0910e62e59650e904e05b94bde3e467d45719d6a3b85a71c8ff1dcca5a5f497928db5f64c55aad93513e87f4f0c93a6fa5a9afe929cf8223ea509f584913844044aa23a4afa4bc0ad975f4904aab5d77b5e51511460a3b7a3bfa335d623f0f5949b72174681526f075633af9234092fd1f7a5c6767292ef5", "shared_secrets": [ - "sharedsecret2020202020202020202020202020202020202020202020202020", - "sharedsecret2121212121212121212121212121212121212121212121212121", - "sharedsecret2222222222222222222222222222222222222222222222222222" + "2d7581974cde41b42da1d0a3147704aae5a71e8987fa30dc920c8cdf784b661d", + "bb599b824ce9e123c8cb27cd50a996e5035b8ae903356dcbff224496aab3a891", + "7bc4f97c2d18d5372ef572334e31590ec36b33220d7a71fa4e0fe841174eaccb" ] } } diff --git a/doc/schemas/datastoreusage.json b/doc/schemas/datastoreusage.json index c86f10326785..d71b0ba57aa5 100644 --- a/doc/schemas/datastoreusage.json +++ b/doc/schemas/datastoreusage.json @@ -84,7 +84,7 @@ "response": { "datastoreusage": { "key": "[]", - "total_bytes": 2909 + "total_bytes": 2958 } } }, diff --git a/doc/schemas/decode.json b/doc/schemas/decode.json index 4a7ed03dc460..5ed696b869c3 100644 --- a/doc/schemas/decode.json +++ b/doc/schemas/decode.json @@ -2426,7 +2426,7 @@ "id": "example:decode#2", "method": "decode", "params": [ - "lnbcrt100n1pnt2bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000" + "lnbcrt2u1pne035qsp5u7glcpdagz8xcw9nw4t7xjhad5fjk9vu9h6s4da9tue6cj6x772spp52jyd84j7psgd4u2tp627hsrf9ntzptcjl3ywn03v4fdsehw4s2ysdqcdserygryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqdyykau6tf258sy2g5q94ma8jqthrs7zszaj2y4wj23dznnz5rcvxvxvkkv76uj076mz5std62p3gf2kvycq29t69345667cvs0pmvzsq4lawhd" ] }, "response": { @@ -2434,25 +2434,25 @@ "currency": "bcrt", "created_at": 1738000000, "expiry": 604800, - "payee": "nodeid020202020202020202020202020202020202020202020202020202020202", + "payee": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "amount_msat": 200000, "description": "l22 description", "min_final_cltv_expiry": 5, - "payment_secret": "paymentsecretinvl00220002200022000220002200022000220002200022000", + "payment_secret": "e791fc05bd408e6c38b37557e34afd6d132b159c2df50ab7a55f33ac4b46f795", "features": "02024100", "routes": [ [ { - "pubkey": "nodeid030303030303030303030303030303030303030303030303030303030303", - "short_channel_id": "111x1x1", + "pubkey": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "short_channel_id": "112x1x0", "fee_base_msat": 1, "fee_proportional_millionths": 10, "cltv_expiry_delta": 6 } ] ], - "payment_hash": "paymenthashinvl0220022002200220022002200220022002200220022002200", - "signature": "dcde30c4bb50bed221009d010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "payment_hash": "5488d3d65e0c10daf14b0e95ebc0692cd620af12fc48e9be2caa5b0cddd58289", + "signature": "3044022069096ef34b4aa8781148a00b5df4f202ee3878501764a255d2545a29cc541e180220661996b33dae49fed6c5482dba506284aacc2600a2af458d69ad7b0c83c3b60a", "valid": true } } diff --git a/doc/schemas/decodepay.json b/doc/schemas/decodepay.json index 5ebcd289f727..2ae28c0fadbb 100644 --- a/doc/schemas/decodepay.json +++ b/doc/schemas/decodepay.json @@ -273,32 +273,32 @@ "id": "example:decodepay#1", "method": "decodepay", "params": { - "bolt11": "lnbcrt100n1pnt2bolt11invl010100000000bolt11invl010100000000bolt11invl010100000000bolt11invl010100000000bolt11invl010100000000bolt11invl010100000000bolt11invl010100000000bolt11invl010100000000bolt11invl010100000000bolt11invl010100000000" + "bolt11": "lnbcrt100n1pne035qsp57ygq6nedvja7wf8r0qlv8zfhyuk3knlhx4pcenp56z86nxcjgr8qpp5l5drs7dcy2vsh8a0u056vc0cqm0n6xkqxwk7mp6h4ptfmdt0lwsqdqcdscnzgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqdcqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgql3cft8k3t9ztqvu27r0ek2j2a8hsas62rlsuyztyn3sayxtqppmxre3vsy780lrw0uylnyks7wwn54vnj3gqmyt5nywkc4w5paepzygqym8dle" } }, "response": { "currency": "bcrt", "created_at": 1738000000, "expiry": 604800, - "payee": "nodeid010101010101010101010101010101010101010101010101010101010101", + "payee": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "amount_msat": 10000, "description": "l11 description", "min_final_cltv_expiry": 5, - "payment_secret": "paymentsecretinvl00110001100011000110001100011000110001100011000", + "payment_secret": "f1100d4f2d64bbe724e3783ec38937272d1b4ff735438ccc34d08fa99b1240ce", "features": "02024100", "routes": [ [ { - "pubkey": "nodeid020202020202020202020202020202020202020202020202020202020202", - "short_channel_id": "109x1x1", + "pubkey": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "short_channel_id": "110x1x0", "fee_base_msat": 1, "fee_proportional_millionths": 10, "cltv_expiry_delta": 6 } ] ], - "payment_hash": "paymenthashinvl0110011001100110011001100110011001100110011001100", - "signature": "dcdepay30c4bb50bed209d020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202" + "payment_hash": "fd1a3879b822990b9fafe3e9a661f806df3d1ac033aded8757a8569db56ffba0", + "signature": "3045022100fc70959ed15944b0338af0df9b2a4ae9ef0ec34a1fe1c209649c61d219600876022061e62c813c77fc6e7f09f992d0f39d3a559394500d9174991d6c55d40f721111" } } ] diff --git a/doc/schemas/delforward.json b/doc/schemas/delforward.json index 9f9b24169922..60d473742e55 100644 --- a/doc/schemas/delforward.json +++ b/doc/schemas/delforward.json @@ -66,7 +66,7 @@ "id": "example:delforward#1", "method": "delforward", "params": { - "in_channel": "109x1x1", + "in_channel": "110x1x0", "in_htlc_id": 4, "status": "local_failed" } @@ -78,7 +78,7 @@ "id": "example:delforward#2", "method": "delforward", "params": { - "in_channel": "109x1x1", + "in_channel": "110x1x0", "in_htlc_id": 21, "status": "failed" } diff --git a/doc/schemas/delinvoice.json b/doc/schemas/delinvoice.json index f564d4890851..6e2e855451a8 100644 --- a/doc/schemas/delinvoice.json +++ b/doc/schemas/delinvoice.json @@ -303,12 +303,12 @@ }, "response": { "label": "lbl_l36", - "bolt11": "lnbcrt222n1pnt3005720bolt113000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "payment_hash": "paymenthashdelinv10101010101010101010101010101010101010101010101", + "bolt11": "lnbcrt500u1pne035qsp5m5fegjlm0t8c5hfk8mkr73sz64956chjunxgjar5can3jgdc0ptqpp59p68dl5sc9sdpxle29tyd8wrelyzudnvgemvndm57fs9r02xt2tqdqcdsenvgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqq0sqqqqgqqyqqqqqpqqqqqzsqqc9qxpqysgqx5puexlrq20ducnx5wky8y0vkmu798rxa4cg704ty55hwks60yjnyfc94kdwtanrk45sydh3zp992mpg0xfuk65kl8knaqkjfpv8hvcpfa27ne", + "payment_hash": "287476fe90c160d09bf95156469dc3cfc82e366c4676c9b774f26051bd465a96", "amount_msat": 50000000, "status": "unpaid", "description": "l36 description", - "expires_at": 1739000000, + "expires_at": 1738604800, "created_index": 9 } }, @@ -324,15 +324,15 @@ }, "response": { "label": "lbl_l37", - "bolt11": "lnbcrt222n1pnt3005720bolt113000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "payment_hash": "paymenthashdelinv20202020202020202020202020202020202020202020202", + "bolt11": "lnbcrt500u1pne035qsp50zcqdgkx0dwzlksvkntzmmuednc9mxdnnzrghatwffw5fycnkpcqpp58x5gmhrfe9e60ygy82rh5s27m2zq3zyynfwhzawfvessg5fljg6sdqcdsenwgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqq0sqqqqgqqyqqqqqpqqqqqzsqqc9qxpqysgqxdq9h7j2xkfjvm8ansypq8w2xvawhdu5wwzpkg9ar2al66d6uae8lxzx6maekk0pgae6fzeauglsxvqplc3lw30fzv430a7nmccv0lcq0du8d6", + "payment_hash": "39a88ddc69c973a791043a877a415eda840888849a5d7175c9666104513f9235", "amount_msat": 50000000, "status": "paid", "pay_index": 9, "amount_received_msat": 50000000, - "paid_at": 1738500000, - "payment_preimage": "paymentpreimagedelinv01010101010101010101010101010101010101010101", - "expires_at": 1739000000, + "paid_at": 1738000000, + "payment_preimage": "83ffe698292fbb6583ffe698292fbb6583ffe698292fbb6583ffe698292fbb65", + "expires_at": 1738604800, "created_index": 10, "updated_index": 9 } diff --git a/doc/schemas/delpay.json b/doc/schemas/delpay.json index 4966a9190edd..f2d22a68bff4 100644 --- a/doc/schemas/delpay.json +++ b/doc/schemas/delpay.json @@ -213,7 +213,7 @@ "id": "example:delpay#1", "method": "delpay", "params": { - "payment_hash": "paymenthashdelpay10101010101010101010101010101010101010101010101", + "payment_hash": "342cbb1cb564e8f32eb64fe8c254abf5ec5f6b87a0f8de7909caf8e658f3bd2a", "status": "complete" } }, @@ -222,17 +222,17 @@ { "created_index": 1, "id": 1, - "payment_hash": "paymenthashdelpay10101010101010101010101010101010101010101010101", + "payment_hash": "342cbb1cb564e8f32eb64fe8c254abf5ec5f6b87a0f8de7909caf8e658f3bd2a", "groupid": 1, "updated_index": 1, - "destination": "nodeid020202020202020202020202020202020202020202020202020202020202", + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "amount_msat": 500000000, "amount_sent_msat": 500000000, "created_at": 1738000000, - "completed_at": 1738500000, + "completed_at": 1738000000, "status": "complete", - "payment_preimage": "paymentpreimgdp1010101010101010101010101010101010101010101010101", - "bolt11": "lnbcrt222n1pnt3005720bolt114000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101" + "payment_preimage": "08377744ca985c1808377744ca985c1808377744ca985c1808377744ca985c18", + "bolt11": "lnbcrt5m1pne035qsp5y09we8jhy4ug66c945kzkqyqzrhhqsap22q07wnawlgntwa5ca2spp5xsktk894vn50xt4kfl5vy49t7hk976u85rudu7gfetuwvk8nh54qdpcv3jhxcmjd9c8g6t0dcs8xetwvss8xmmdv5s8xct5wvsxcvfqw3hjqmpjxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqvsru69ylhpkda6980sl996q2fmld2zszepv79zf747la6zzt8mf8p0qw80w6j8d5evc72fls4d99sza23nnm6pahjqrs8kv3apdttjcq2mm2xw" } ] } @@ -242,7 +242,7 @@ "id": "example:delpay#2", "method": "delpay", "params": [ - "paymenthashdelpay20202020202020202020202020202020202020202020202", + "287476fe90c160d09bf95156469dc3cfc82e366c4676c9b774f26051bd465a96", "failed" ] }, @@ -251,16 +251,16 @@ { "created_index": 23, "id": 23, - "payment_hash": "paymenthashdelinv10101010101010101010101010101010101010101010101", + "payment_hash": "287476fe90c160d09bf95156469dc3cfc82e366c4676c9b774f26051bd465a96", "groupid": 1, "updated_index": 22, - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 50000000, "amount_sent_msat": 50000501, "created_at": 1738000000, - "completed_at": 1738500000, + "completed_at": 1738000000, "status": "failed", - "bolt11": "lnbcrt222n1pnt3005720bolt113000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101" + "bolt11": "lnbcrt500u1pne035qsp5m5fegjlm0t8c5hfk8mkr73sz64956chjunxgjar5can3jgdc0ptqpp59p68dl5sc9sdpxle29tyd8wrelyzudnvgemvndm57fs9r02xt2tqdqcdsenvgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqq0sqqqqgqqyqqqqqpqqqqqzsqqc9qxpqysgqx5puexlrq20ducnx5wky8y0vkmu798rxa4cg704ty55hwks60yjnyfc94kdwtanrk45sydh3zp992mpg0xfuk65kl8knaqkjfpv8hvcpfa27ne" } ] } @@ -270,7 +270,7 @@ "id": "example:delpay#3", "method": "delpay", "params": { - "payment_hash": "paymenthashdelpay30303030303030303030303030303030303030303030303", + "payment_hash": "2b924194d169a96d9cc35b66ae912507e18ace9ef679fcb5324636ff73be410a", "status": "failed", "groupid": 1, "partid": 2 @@ -281,15 +281,15 @@ { "created_index": 20, "id": 20, - "payment_hash": "paymenthashdelpay30303030303030303030303030303030303030303030303", + "payment_hash": "2b924194d169a96d9cc35b66ae912507e18ace9ef679fcb5324636ff73be410a", "groupid": 1, "updated_index": 19, "partid": 2, - "destination": "nodeid040404040404040404040404040404040404040404040404040404040404", + "destination": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "amount_msat": 1000000, "amount_sent_msat": 1000000, "created_at": 1738000000, - "completed_at": 1738500000, + "completed_at": 1738000000, "status": "failed" } ] diff --git a/doc/schemas/dev-forget-channel.json b/doc/schemas/dev-forget-channel.json index 3421e79b59a9..6b51ebf39c4a 100644 --- a/doc/schemas/dev-forget-channel.json +++ b/doc/schemas/dev-forget-channel.json @@ -99,13 +99,13 @@ "id": "example:dev-forget-channel#1", "method": "dev-forget-channel", "params": { - "id": "nodeid050505050505050505050505050505050505050505050505050505050505" + "id": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e" } }, "response": { "forced": false, "funding_unspent": false, - "funding_txid": "fundingtxid00101010101010101010101010101010101010101010101010101" + "funding_txid": "92dc0d9921d6c5beda83bddd3d1575fb673493f354c0a8cd91c6b139620c3155" } }, { @@ -116,15 +116,15 @@ "id": "example:dev-forget-channel#2", "method": "dev-forget-channel", "params": { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", - "short_channel_id": "111x1x1", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "short_channel_id": "112x1x0", "force": true } }, "response": { "forced": true, "funding_unspent": false, - "funding_txid": "fundingtxid00202020202020202020202020202020202020202020202020202" + "funding_txid": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9" } } ] diff --git a/doc/schemas/disableinvoicerequest.json b/doc/schemas/disableinvoicerequest.json index 3ff2bda21548..ef58df75fe90 100644 --- a/doc/schemas/disableinvoicerequest.json +++ b/doc/schemas/disableinvoicerequest.json @@ -93,14 +93,14 @@ "id": "example:disableinvoicerequest#1", "method": "disableinvoicerequest", "params": { - "invreq_id": "invreqid02020202020202020202020202020202020202020202020202020202" + "invreq_id": "c5b8ebc06bdc246d7b852ce5637be459d3c053a5b3f8f68854f97af7371c9a50" } }, "response": { - "invreq_id": "invreqid02020202020202020202020202020202020202020202020202020202", + "invreq_id": "c5b8ebc06bdc246d7b852ce5637be459d3c053a5b3f8f68854f97af7371c9a50", "active": false, "single_use": true, - "bolt12": "lno1qgsq000bolt240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000", + "bolt12": "lnr1qqg99gqg2990zl3j22sqs52279lryzsk2fjhzat9wd6xjmn8ypnx7u3qd9h8vmmfvdj3yyrrd35kw6r5de5kueeqwd6x7un92qsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzr6jqwvfdqzcyypz6g3kyz34nfrl7lm6c3rushzxey3a55ecjgs6qp2vz8q78j336k0sgr76j2yl0lrljzljjdz8ztcpryunwgfk4hzz3sle3mhaw8v2gc4dn9map7v6dlpya98jy2mcrwe27qcsywlfqp6dhh30l54sj0e8tqsk", "used": false } } diff --git a/doc/schemas/disableoffer.json b/doc/schemas/disableoffer.json index 8274e097ffcf..78168474b153 100644 --- a/doc/schemas/disableoffer.json +++ b/doc/schemas/disableoffer.json @@ -93,14 +93,14 @@ "id": "example:disableoffer#1", "method": "disableoffer", "params": { - "offer_id": "offeridl23000002300000230000023000002300000230000023000002300000" + "offer_id": "b791f88cebf775853112c30828e116487f4d6c252d669372532b468bc7de8a24" } }, "response": { - "offer_id": "offeridl23000002300000230000023000002300000230000023000002300000", + "offer_id": "b791f88cebf775853112c30828e116487f4d6c252d669372532b468bc7de8a24", "active": false, "single_use": false, - "bolt12": "lno1qgsq000bolt230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000", + "bolt12": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqv0gfqq2zp8kven9wgs8gmeqg35hxctzd3j3vggz953rvg9rtxj8lalh43z8epwydjfrmffn3y3p5qz5cywpu09rr4vs", "used": false } } diff --git a/doc/schemas/disconnect.json b/doc/schemas/disconnect.json index 3331d599978b..e2f7e10844e8 100644 --- a/doc/schemas/disconnect.json +++ b/doc/schemas/disconnect.json @@ -52,7 +52,7 @@ "id": "example:disconnect#1", "method": "disconnect", "params": { - "id": "nodeid040404040404040404040404040404040404040404040404040404040404", + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "force": false } }, @@ -63,7 +63,7 @@ "id": "example:disconnect#2", "method": "disconnect", "params": { - "id": "nodeid050505050505050505050505050505050505050505050505050505050505", + "id": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e", "force": true } }, diff --git a/doc/schemas/enableoffer.json b/doc/schemas/enableoffer.json index 0d83766a4266..bd759c3313a3 100644 --- a/doc/schemas/enableoffer.json +++ b/doc/schemas/enableoffer.json @@ -97,14 +97,14 @@ "id": "example:enableoffer#1", "method": "enableoffer", "params": { - "offer_id": "offeridl23000002300000230000023000002300000230000023000002300000" + "offer_id": "b791f88cebf775853112c30828e116487f4d6c252d669372532b468bc7de8a24" } }, "response": { - "offer_id": "offeridl23000002300000230000023000002300000230000023000002300000", + "offer_id": "b791f88cebf775853112c30828e116487f4d6c252d669372532b468bc7de8a24", "active": true, "single_use": false, - "bolt12": "lno1qgsq000bolt230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000", + "bolt12": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqv0gfqq2zp8kven9wgs8gmeqg35hxctzd3j3vggz953rvg9rtxj8lalh43z8epwydjfrmffn3y3p5qz5cywpu09rr4vs", "used": false } } diff --git a/doc/schemas/fetchbip353.json b/doc/schemas/fetchbip353.json index aca65232428d..58df1d98fe9c 100644 --- a/doc/schemas/fetchbip353.json +++ b/doc/schemas/fetchbip353.json @@ -107,7 +107,7 @@ "offer": "lno1zr5qyugqgskrk70kqmuq7v3dnr2fnmhukps9n8hut48vkqpqnskt2svsqwjakp7k6pyhtkuxw7y2kqmsxlwruhzqv0zsnhh9q3t9xhx39suc6qsr07ekm5esdyum0w66mnx8vdquwvp7dp5jp7j3v5cp6aj0w329fnkqqv60q96sz5nkrc5r95qffx002q53tqdk8x9m2tmt85jtpmcycvfnrpx3lr45h2g7na3sec7xguctfzzcm8jjqtj5ya27te60j03vpt0vq9tm2n9yxl2hngfnmygesa25s4u4zlxewqpvp94xt7rur4rhxunwkthk9vly3lm5hh0pqv4aymcqejlgssnlpzwlggykkajp7yjs5jvr2agkyypcdlj280cy46jpynsezrcj2kwa2lyr8xvd6lfkph4xrxtk2xc3lpq" } ], - "proof": "0473656e64proof00001proof00001proof00001proof00001proof00001proof00001proof00001proof00001proof00001proof00001" + "proof": "0473656e6404736f6d650475736572105f626974636f696e2d7061796d656e740673617473746f026d65000005000100000e10002c046d6174740475736572105f626974636f696e2d7061796d656e740b6d617474636f72616c6c6f03636f6d000473656e6404736f6d650475736572105f626974636f696e2d7061796d656e740673617473746f026d6500002e000100000e10005d00050d0600000e1068cbae9b68b92483d1730673617473746f026d6500791e02a2bcc49002f748cf633b058fabf9975dce37ae6383429819624a898a0e6c7f4931fd84ca7ba8120c00f220a9a71a799c8e91acd635a34281dc4bc33e0f046d6174740475736572105f626974636f696e2d7061796d656e740b6d617474636f72616c6c6f03636f6d000010000100000e1001ecff626974636f696e3a626331717a7477793678656e337a647474377a3076726761706d6a74667a3861636a6b6670356670376c3f6c6e6f3d6c6e6f317a7235717975677167736b726b37306b716d7571377633646e7232666e6d68756b7073396e386875743438766b7170716e736b743273767371776a616b70376b36707968746b7578773779326b716d73786c777275687a7176307a736e686839713374397868783339737563367173723037656b6d3565736479756d307736366d6e783876647175777670376470356a70376a337635637036616a3077333239666e6b7171763630713936737a356e6b726335723935716666783030327135337471646beb3878396d32746d7438356a74706d63796376666e727078336c723435683267376e6133736563377867756374667a7a636d386a6a71746a3579613237746536306a303376707430767139746d326e3979786c32686e67666e6d79676573613235733475347a6c78657771707670393478743772757234726878756e776b74686b39766c79336c6d356868307071763461796d6371656a6c6773736e6c707a776c6767796b6b616a7037796a73356a76723261676b79797063646c6a323830637934366a70796e73657a72636a326b7761326c797238787664366c666b706834787278746b327863336c7071046d6174740475736572105f626974636f696e2d7061796d656e740b6d617474636f72616c6c6f03636f6d00002e000100000e10006300100d0500000e1068ccc7d068ba3db826480b6d617474636f72616c6c6f03636f6d00f68a7e7a8f8643e433f854a733dd74db2a4ae01812ffaaed6d1243d7a665d518cf5b37c101d147329e5ba45d95fd1e8ca71e77894305e1081e7b0f442d20fdc90673617473746f026d6500002b000100000e1000245b360d022333b5ea25720720a8c54553c0641e8ccb8a917af20c694f10bf7ce3851e3f6e0673617473746f026d6500002b000100000e100024c4010d02a229c6d54c38b7bb723b48a6aceab1e7fdb6ae2a22b9b57c5ca6b942ed8ea2fe0673617473746f026d6500002e000100000e100096002b080200000e1068d1697c68b5abece2ad026d65006ed35281fc11d421c48a99a7c8b822442269ba75aa723517f93bd346c11ae9c23377a4d0ca9845a09fbed97fb3684219a197fb9bc9cbd7085fb7404c40a5d8bf6deacb0f6ab7036bf5ea979b0fd000a2da96da313b5d63bbe33efe58550af3ccccd1a107b87a6ee3e61abc92e6b87a300bcafd8f12e6c6197f3d4b82116749b0026d6500002b00010000bfd80024b12808027708c8a6d5d72b63214bbff50cb54553f7e07a1fa5e9074bd8d63c43102d8559026d6500002e00010000bfd80113002b08010001518068d0594068bf27b0b5690028415c2b258249314cf220c0631e898b98c786853de415c336421fbd0e2a4a50d64aeff8a369d0c0eb79b311b4c2732c1b902987986fe1ee230142fe2deccdc09647551f094e69a6ea8a813b0688b7cbbc846ecea7683c02ac45d0ff3cc2b6fda10233afdf963fa61c58a835684c7d708fab49efc38866675dec7787dbd8066492e2d77d70e6cd50893533ab80f2a2817a6476ad054ffad9c5dfdd68ecfece3c73eecc1fa0c2ac4c130014af201f11feef6788c8e91286a4279e06b491c55824a0718a2bf1775485c4f86ee834655e32be4a2f1b500d240008da68632c1134c21463151f5c5323944e2349536db8d822636eed2ec8fedb8c0f6692fcf066b59c000030000100005da101080101030803010001acffb409bcc939f831f7a1e5ec88f7a59255ec53040be432027390a4ce896d6f9086f3c5e177fbfe118163aaec7af1462c47945944c4e2c026be5e98bbcded25978272e1e3e079c5094d573f0e83c92f02b32d3513b1550b826929c80dd0f92cac966d17769fd5867b647c3f38029abdc48152eb8f207159ecc5d232c7c1537c79f4b7ac28ff11682f21681bf6d6aba555032bf6f9f036beb2aaa5b3778d6eebfba6bf9ea191be4ab0caea759e2f773a1f9029c73ecb8d5735b9321db085f1b8e2d8038fe2941992548cee0d67dd4547e11dd63af9c9fc1c5466fb684cf009d7197c2cf79e792ab501e6a8a1ca519af2cb9b5f6367e94c0d47502451357be1b5000030000100005da101080101030803010001af7a8deba49d995a792aefc80263e991efdbc86138a931deb2c65d5682eab5d3b03738e3dfdc89d96da64c86c0224d9ce02514d285da3068b19054e5e787b2969058e98e12566c8c808c40c0b769e1db1a24a1bd9b31e303184a31fc7bb56b85bbba8abc02cd5040a444a36d47695969849e16ad856bb58e8fac8855224400319bdab224d83fc0e66aab32ff74bfeaf0f91c454e6850a1295207bbd4cdde8f6ffb08faa9755c2e3284efa01f99393e18786cb132f1e66ebc6517318e1ce8a3b7337ebb54d035ab57d9706ecd9350d4afacd825e43c8668eece89819caf6817af62dc4fbd82f0e33f6647b2b6bda175f14607f59f4635451e6b27df282ef73d87000030000100005da101080100030803010001b11b182a464c3adc6535aa59613bda7a61cac86945c20b773095941194f4b9f516e8bd924b1e50e3fe83918b51e54529d4e5a1e45303df8462241d5e05979979ae5bf9c6c598c08a496e17f3bd3732d5aebe62667b61db1bbe178f27ac99408165a230d6aee78348e6c67789541f845b2ada96667f8dd16ae44f9e260c4a138b3bb1015965ebe609434a06464bd7d29bac47c3017e83c0f89bca1a9e3bdd0813715f3484292df589bc632e27d37efc02837cb85d770d5bd53a36edc99a8294771aa93cf22406f5506c8cf850ed85c1a475dee5c2d3700b3f5631d903524b849995c20cb407ed411f70b428ae3d642716fe239335aa961a752e67fb6dca0bf729000030000100005da101080100030803010001b6aec4b48567e2925a2d9c4fa4c96e6dddf86215a9bd8dd579c38ccb1199ed1be89946a7f72fc2633909a2792d0eed1b5afb2ee4c78d865a76d6cd9369d999c96af6be0a2274b8f2e9e0a0065bd20257570f08bc14c16f5616426881a83dbce6926e391c138a2ec317efa7349264de2e791c9b7d4a6048ee6eedf27bf1ece398ff0d229f18377cb1f6b98d1228ef217b8146c0c73851b89a6fc37c621ca187e16428a743ffea0072e185ef93e39525cee3ad01e0c94d2e511c8c313322c29ab91631e1856049a36898684c3056e5997473816fb547acb0be6e660bdfa89a5cb28b3669d8625f3f018c7b3b8a4860e774ee8261811ce7f96c461bc162c1a374f300002e000100005da10113003008000002a30068cdee8068b23f004f66001c5875f402770a5fe9251e7be7783b6d0545cb59ecad7d25cb5ce75ad583c47f809ecbe168ebfc57dee0e0eca8f6b92f32fb8cf3808c95640ae8e7fcd11b57d948b3b2749ae53b799fdd665d2b37a179401afda48534952859f22884a9cb9526e147fb867b7cd1463004a0385e9ad278aa41a9b63405d636733dc822f6a8b17d9eafc00e08717d558c6d3a3315c6c2ff3479b537290fe5ce9f1b280894951c5ec31305ebfa60260354cfc340ffe8d9b809a440ea9cdd8e4e14cbefec6c7f3967ab7776f7b1bc13589596b1f6d60176d3223126bac85abb2b55cb30a5d0615d6147a5dafb841a5b7ea1c1580b1a6b3dcf7607d12e19d2971aaf8747fdab1c42bb026d65000030000100000db900880100030803010001b36eee22bd8e610570cd88bfc3fedafa006a58b9714432aa3a6f9dd39a905c4e86aa1cdf5827119c81e1245d94ee4838ae22f05cc922ca30122aefa4da19d90a965b4317071b9331187f5cf4eb570dbd8e01987c2593a85b92e0440c635d15da13405f6ca7d78289ef0d6fe4716b8b62abd18dc07b0a9edd54182353ef836539026d65000030000100000db901080101030803010001c103be3a2aa47686ab01ba1b23799ff108d0c0530dfe35cebdd320b7abc851d1abf191378d155127e17fb029628385482b34ac3b042093d6097574b36ee277e31d20003272871bc76d1762dab33397eaae97d853932da5a96886a1b7c61bc52fcd1f1f23c7026a48fa1b190cb8b97d42b45b49948c45187efec3c7867812627a0220e5497c36ee4e92452fb5c1bda2dceaebf71c0e3909a61a5d6498dfc41c71cd0412dbbf442e43c378c9fb4043a1523cfd7ce320ce29fce606db73a8c78150b9808db8bb71898858d7a48ead8870f364b6e271ac642fe3160de3bc44b5a89ccf9e21e2ae5a877253db495f611a8a16a657f7ad9aeb906d5bc9c86f2883b5ed026d65000030000100000db900880100030803010001bfe96cdfe309deee4c579edbbfb50264719c35e25f64a525f81fe2479be4a907bfa9ce8b048ec167217690a145208507367cfec4ab4f9726cf55ecb79bf287836df0e0e946463a56e01b1a7d2e98681274f42ceb5817b1e253920b50f2e63f4be1a7c41f948a4a7235259a58eb0a9e4ccca370e2b3d363e4c289b897ffa329ab026d6500002e000100000db901160030080100000e1068d1697c68b5abecb128026d65005c91285cf473abf2c412efd0459436d9a291d1462928b3fcb8b30ea6d0d817e03dc8fe06994cfffad8ce447e08d85689e8c0966eac684716d98b4d116c08004b38bdbbec00b943f0afcf1c2b98fa4c8c36ded6823d99b61d96251b337037708ab2786ae66c48f08a70cc4d00b4dfbe44ac192c6c716470de238476913ae9574693514cf6ef3cd90b072127d42a2bf12ab871332a548a73bfd9d72479b90af179692389722fab448b23cd03ca8503a5e70857e644f8a29a4a15918a5a8cd317526b1d0ec0065b15da6a3021e6543f623887e5f099df3ddf8dd75bcaa355ed03d3e3de982359a6a93eca7def06797b12e63a0ffa6dc17e620dd13b6a0d2ac25df00673617473746f026d65000030000100000c8d00440100030dedcbe3954643072571e6c4c163cfe9ef330f5e430a3e6ca5eb76a9c97d1e3fcb9cba6a6a9ea371474b27c3d8ebb3a9ad9f1006be07d5155d669fdc7cc0db4d6a0673617473746f026d65000030000100000c8d00440101030d79bca014d652db03985a4edc2ada39c35f7daf8b86656ba6cd2df96f1da8c05f81d584aad62ee3c42ac7cbd29c5d35b9fa0b3d568a556ae9794d8cb02bae1bcb0673617473746f026d6500002e000100000c8d005d00300d0200093a8068cd0e3168ba8419c4010673617473746f026d65007a17319b99137fb51bb57a513cd9fd257130de52cc9279697e727e1e95a0301653a1ea782e2d8a43d9c69528491a2e088a184128409ed0e3078597fd3732d5a30b6d617474636f72616c6c6f03636f6d00002b0001000026610024e2f50d02f0e161567d468087ff27b051abc94476178a7cb635da1aa705e05c77ca81de520b6d617474636f72616c6c6f03636f6d00002e0001000026610057002b0d020001518068c67a0468bd2f1c504103636f6d0021c40cf90af28c2fb2fd35ce8632ed73edcf43bee374fb2b54944a9e8e845d08da67afb417d3014894ac2a92cf6a73be53d7df516a298d63447af8588ccee3e703636f6d00002b00010000506600244d060d028acbb0cd28f41250a80a491389424d341522d946b0da0c0291f2d3d771d7805a03636f6d00002e0001000050660113002b08010001518068cf865068be54c0b56900a9e8604de5bb97b53b31029218bd6dce5e68cdc0bd577fd3a3def5107e17b108679df22104a4f842ecfee4ab6ee14fbd7169b9e4fc9545dd00b21b920f41f40e8b5ece643975dd26f930acdc77e9495acd4507a7b22c02c4f048dadb3d2db607d46720ede2024be8a450ab98e2cae38a594603c73bce8617b9c0ca4f303de8d09606389530fb45ec20e9e6df775a72f1b76e47ba3c3780e1a5d7a27e77645f298efe1c397f31cc9f86151216627bc7bfbf265ac5a563805db62c5df2ede65ccf1c5c3f25054d73b5b9095238d38a39e30d9c2b0ae17d8d93ed6764d452d4a3141c0355d89f261d46e1f3a37857345e5220fadbeb10c9ed234cd03adfe55a04fc03636f6d00003000010000382100440100030df17b60fb56d522f8634153e785c0a978532ea76de39d34bb356d3d042e07f29f7b992176cc83acef7b78ea750425203b18f2b8228b3cdd2bc7eb13c3e3035a7e03636f6d00003000010000382100440101030db71f0465101ddbe2bf0c9455d12fa16c1cda44f4bf1ba2553418ad1f3aa9b06973f21b84eb532cf4035ee8d4832ca26d89306a7d32560c0cb0129d450ac1083503636f6d00002e000100003821005700300d010001518068c6cafb68b3034f4d0603636f6d0096cb2d4c67b93febc13dff1cdea2ab3d7669bc767127cb975f1d2ff4a94b9c15ca83d6ae9c93bde066d08095c2d0bffde30b4aea0a94ad9902693de313cb2b390b6d617474636f72616c6c6f03636f6d00003000010000546000440100030d27ac3c16d55694869003db8f7ee177d74690a6ca1e0d719e78fe9a6a2029bb2183205b6723ca5f4d63b6bb07c5d5a35fef5907eaa22accb0435d0151e13a01cf0b6d617474636f72616c6c6f03636f6d00003000010000546000440100030d8b1cf07c86f18c19c8c3146db093893648dcc1ab5fb79e99ccbab4aa06f98d52ac27b92e215d9da98d7535f3c2ce038fbb9d41b9c63d3845d444feffc1f71ed70b6d617474636f72616c6c6f03636f6d00003000010000546000440101030dec7c1fa1752495c42d2224eace96ed74144e9cb811608dd91594974bdc723fdc5b38a37c3340f1deca68a7ec82248822954b2994de5ac99ff6e9db95fd42c94b0b6d617474636f72616c6c6f03636f6d00002e000100005460006300300d0200093a8068cd0b5a68ba8142e2f50b6d617474636f72616c6c6f03636f6d004299251a06613ed7b0d6d65c41c2df2694730e81bc9f6d7266304cbfb6721ac4cc91ba71eb1eded7d351e996c0ffaaac566829474b5bd0d9e0a0c057928d47ef" } } ] diff --git a/doc/schemas/fetchinvoice.json b/doc/schemas/fetchinvoice.json index 0a68a3712420..eec782136ad2 100644 --- a/doc/schemas/fetchinvoice.json +++ b/doc/schemas/fetchinvoice.json @@ -210,12 +210,12 @@ "id": "example:fetchinvoice#1", "method": "fetchinvoice", "params": { - "offer": "lno1qgsq000bolt210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000", + "offer": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqgn3qzs2ge5hx6pqwdskcefpzcssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e", "payer_note": "Thanks for the fish!" } }, "response": { - "invoice": "lni1qqg0qe01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "invoice": "lni1qqgvq8khp6uam2tfcq0dwr4emk5kjq3qqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy8ssq38zq9q53nfwd5zqumpd3jjz93pqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4j5pqqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy84gqzcyyplllzjsfmquljkz4awm4wl8r9x6n4zjulzul8umgjr4jya6lxkgc2ez32xsctwddejqen0wgs8g6r9ypnxjumgyxsfsq3dygmzpg6e53ll0aavg37gt3rvjg762vufygdqq4xprs0regcatyp6swcycfh92s4s0p3wl6j0xj7pa7egpvvw2gq9z4sc376mekc9vacpqvzl0njg9k5sfn0pxlx4au5s95yhxczx2fah5zzmnfg9kvzdle5avqpj4l72lall4s8xrfvpu9f4xapfxl08j964jswavxw0exauk50zhw2l5alvyfucu82fx6qlszy7gett90z85gwqqqqqqqqqqqqqqqzsqqqqqqqqqqqqr5jt9hav2gqqqqqq5szx097xsz5zphg5v7yg8wedzgpk7h6dzc7vlw9h2wfa6dmzrey9m6fkeh89uz684gpzwy9wqvpqqq9syypz6g3kyz34nfrl7lm6c3rushzxey3a55ecjgs6qp2vz8q78j336k0sgzsvy6lf3le6zmjl4254r4xxf0urw8dky5d2dwtwjzt8ec7hg6jh88kx88fru0fhvxfjkje7ccg6qg5zv7dm64zxttg7epxx4yyw90c3", "changes": {} } }, @@ -224,13 +224,13 @@ "id": "example:fetchinvoice#2", "method": "fetchinvoice", "params": { - "offer": "lno1qgsq000bolt220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000", + "offer": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqv85ysq2qepk7enxv4j3gqg2zcssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e", "amount_msat": 2000000, "quantity": 2 } }, "response": { - "invoice": "lni1qqg0qe02020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202", + "invoice": "lni1qqgvq8khp6uam2ttcq0dwr4emk5kkq3qqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy8ssqc0gfqq5pjrdanxvet9zsqs593pqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4j5pqqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy84yqc7sjq9gqzkqyp9sggz49w9z7eh6nlfq34fk2k8n5f968ltz60us8usdtmzp7euxkqrc0h2pxqz953rvg9rtxj8lalh43z8epwydjfrmffn3y3p5qz5cywpu09rr4vs92azp4mahnnht95k3j5c8gegy3003d45pkz0gawdj82vt7eqvpk8qypn2rsgaytxvr0nnhkwhjgeq5u2vavm8hm6muxlpl7pe57v99fwm3qqxt472dkvvw27qy6992kvqc5ztgfv20w3uy5swlraheles4havnkg7nafrqr0ej8m4gakh9n338xa86784w3pcqqqqqqqqqqqqqqq2qqqqqqqqqqqqqwjfvkl43fqqqqqqzjqgeuhc6q2sg94wlwt9m7hlq7gljm764vv7dureaqxklvgmjzlq9hxe8jxlaa4064qx85yszhqxqsqqzczzq3dygmzpg6e53ll0aavg37gt3rvjg762vufygdqq4xprs0regcat8cyq8h97cpp3rznnvtvsmu0lzvfgu3c39z7t5m4f9t4w62kt0zqy4yxajhdrqh0g6th0rfhxk583zxllzukn4h3426dxp005n8mpwc6pl3s", "changes": {} } } diff --git a/doc/schemas/fundchannel.json b/doc/schemas/fundchannel.json index 51ef8301ddda..391600e7533d 100644 --- a/doc/schemas/fundchannel.json +++ b/doc/schemas/fundchannel.json @@ -243,15 +243,15 @@ "id": "example:fundchannel#1", "method": "fundchannel", "params": { - "id": "nodeid050505050505050505050505050505050505050505050505050505050505", + "id": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e", "amount": 1000000, "announce": true } }, "response": { - "tx": "020000000000305fundchanneltx350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000350003500035000", - "txid": "channeltxid350000350000350000350000350000350000350000350000350000", - "channel_id": "channelid0350000350000350000350000350000350000350000350000350000", + "tx": "02000000000102b6f77750c0aae7faf2aa6e4b38a14671adc8def298a0b89ced09596f002aa5ef0100000000fdffffffc54a87b4517d7daf033a11b21f2ccf114304487c4189599816f3e243569c600c0100000000fdffffff0240420f0000000000220020b41521751a8eb257315f73a531763071cc39b7cece470f630fd5149fe7b7057ac594eb0b00000000225120a5410daebf4fc3cba618a840af497fbec4c3a084534f2b7b6a7d30bf35f8f5660140528e20b424e1ac7f2ae067093552f424dade1321ec396a7d382866be7bba9ba5a3faf375dc9b39d676d8adab67c30df596bca1412c3871bb9538fc00265c35bf02473044022003304f0d559771fe9d4b06dccecacbef7eaef5a97c7618b567de1ba53e7146ef02207f7138b9cd7fca8ea13498e6fed96b225873131c45b5c46e4e78c7fe45d5b3e9012102c8a8f25ed135cd671c88bd4e407bb3746678cfacbcf65ce89f8efc2aa0abe5359b000000", + "txid": "f9e2ca6abf9450803ef6a1a75964277dd39b2f35f77acffc3a5978437b421aec", + "channel_id": "1267da6521b372d7c6407a74066f7a3a5bc3489bbda5eb9f0e990e1e913e2eb9", "channel_type": { "bits": [ 12, @@ -262,7 +262,7 @@ "anchors/even" ] }, - "outnum": 1 + "outnum": 0 } }, { @@ -273,19 +273,19 @@ "id": "example:fundchannel#2", "method": "fundchannel", "params": { - "id": "nodeid010101010101010101010101010101010101010101010101010101010101", + "id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "amount": "all", "feerate": "normal", "push_msat": 100000, "utxos": [ - "channeltxid350000350000350000350000350000350000350000350000350000:1" + "0a6d0006bf4a5e5aa67504c5333a6017d1dc18820d2295aef0a89bd6f2c0f1f1:0" ] } }, "response": { - "tx": "020000000000401fundchanneltx410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000410004100041000", - "txid": "channeltxid410000410000410000410000410000410000410000410000410000", - "channel_id": "channelid0410000410000410000410000410000410000410000410000410000", + "tx": "02000000000101f1f1c0f2d69ba8f0ae95220d8218dcd117603a33c50475a65a5e4abf06006d0a0000000000fdffffff01cbb3eb0b00000000220020752dd5af63b98ff64fedf94683b0306c43f6eec74fbfe917639735b305e1b6d9024730440220082e14f48e21020a18fa8076ede8d7fc459df2d13dafb55e84dfaeb53843cff30220342483bf1d343af8a5473383de0d128ea92f97ea48f86fc40c74061b106ed0ff0121024740cce0e548f4ffe80c9914e43444d8e66ee8991dc9d93ec56dff4c56b933159b000000", + "txid": "91b6b6b744662172cf8cb068923bb20311522a5afa08406f79b37cf3e6f4c370", + "channel_id": "222d999f537e32e9458c5db17a63e012dcced61340de06fda5bc30566270b0aa", "channel_type": { "bits": [ 12, @@ -296,7 +296,7 @@ "anchors/even" ] }, - "outnum": 1 + "outnum": 0 } } ] diff --git a/doc/schemas/fundchannel_cancel.json b/doc/schemas/fundchannel_cancel.json index fd18ad11e7e7..1e8c7eb7e54c 100644 --- a/doc/schemas/fundchannel_cancel.json +++ b/doc/schemas/fundchannel_cancel.json @@ -69,7 +69,7 @@ "id": "example:fundchannel_cancel#1", "method": "fundchannel_cancel", "params": [ - "nodeid101010101010101010101010101010101010101010101010101010101010" + "027ba5906fad81fcdbb774b4c806eb572b7fac3bee4720b12c44e7f70931d4b7cc" ] }, "response": { @@ -81,7 +81,7 @@ "id": "example:fundchannel_cancel#2", "method": "fundchannel_cancel", "params": { - "id": "nodeid101010101010101010101010101010101010101010101010101010101010" + "id": "027ba5906fad81fcdbb774b4c806eb572b7fac3bee4720b12c44e7f70931d4b7cc" } }, "response": { diff --git a/doc/schemas/fundchannel_complete.json b/doc/schemas/fundchannel_complete.json index d064026b1d6c..2aac485a3014 100644 --- a/doc/schemas/fundchannel_complete.json +++ b/doc/schemas/fundchannel_complete.json @@ -86,12 +86,12 @@ "id": "example:fundchannel_complete#1", "method": "fundchannel_complete", "params": [ - "nodeid101010101010101010101010101010101010101010101010101010101010", - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000" + "027ba5906fad81fcdbb774b4c806eb572b7fac3bee4720b12c44e7f70931d4b7cc", + "cHNidP8BAgQCAAAAAQMEmAAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAAAAAAA/f///wKAlpgBAAAAABYAFP+FM+rwsTm8Bz0qImOObKCgg3zVXuPf3gAAAAAWABTdQ3+1uuxIN+FttkktoVc11r7FM5cAAAABAR+AlpgBAAAAABYAFP+FM+rwsTm8Bz0qImOObKCgg3zVAQ4g+wnUg4jUSt7ZSoGLTSFJkEiVi4BORL5XG9PScQI1uHoBDwQAAAAAARAE/f///wABAwgAAAABAAAAAAEEIgAgrcWu1QvOE7IcR/Pw6wFIFh6/TLwoeKjo5eUoi7suzsEAAQMIQYOYAAAAAAABBCJRIIHaDT4wURNaieL52F4urfZh+Vm/sF5nEJeFRnLP0Kx9AA==" ] }, "response": { - "channel_id": "channelid0910109101091010910109101091010910109101091010910109101", + "channel_id": "1e9779a9313702a91a6d48a813f3bdae967f61ae55f2409c83d6e822164fb1e8", "commitments_secured": true } }, @@ -100,12 +100,12 @@ "id": "example:fundchannel_complete#2", "method": "fundchannel_complete", "params": { - "id": "nodeid101010101010101010101010101010101010101010101010101010101010", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000" + "id": "027ba5906fad81fcdbb774b4c806eb572b7fac3bee4720b12c44e7f70931d4b7cc", + "psbt": "cHNidP8BAgQCAAAAAQMEmQAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBeAgAAAAEel3mpMTcCqRptSKgT872uln9hrlXyQJyD1ugiFk+x6AAAAAAA/////wE29/8AAAAAACJRIBBn+sE76BrhkJwdcl10AW73v27fGwM4fUYbSSX4NuhVAAAAAAEBKzb3/wAAAAAAIlEgEGf6wTvoGuGQnB1yXXQBbve/bt8bAzh9RhtJJfg26FUBDiAICQ7H8zN5Qh9H/ScdBg0OKYab3l+sgjCzpH59ib1snwEPBAAAAAABEAT9////AAEDCEBCDwAAAAAAAQQiACDJ6ixlyozcJ7wTD+EfXlLhdUdeDjG2RbHcw4MtxPfnjQABAwjqovAAAAAAAAEEIlEgd0scKptLCp3OQ7RjlZQNogARFdQA+jZnkJ7Ial02UYsA" } }, "response": { - "channel_id": "channelid0910209102091020910209102091020910209102091020910209102", + "channel_id": "55d53486d003c5ba4b8eb9a3f5da04333acdb5d0023204d507e3e09127feeb90", "commitments_secured": true } } diff --git a/doc/schemas/fundchannel_start.json b/doc/schemas/fundchannel_start.json index 3dde937df0b3..1fa8e8a73ec9 100644 --- a/doc/schemas/fundchannel_start.json +++ b/doc/schemas/fundchannel_start.json @@ -212,13 +212,13 @@ "id": "example:fundchannel_start#1", "method": "fundchannel_start", "params": [ - "nodeid101010101010101010101010101010101010101010101010101010101010", + "027ba5906fad81fcdbb774b4c806eb572b7fac3bee4720b12c44e7f70931d4b7cc", 16777216 ] }, "response": { - "funding_address": "bcrt1p0002020202020202020202020202020202020202020202020202020202", - "scriptpubkey": "scriptpubkey01010101010101010101010101010101010101010101010101010101", + "funding_address": "bcrt1q5ptrvwlgcldm2ygf3nzsl09zfpp7dmtduqlczer97xvc4x5z5zwsc2ulv4", + "scriptpubkey": "0020a056363be8c7dbb511098cc50fbca24843e6ed6de03f816465f1998a9a82a09d", "channel_type": { "bits": [ 12, @@ -237,13 +237,13 @@ "id": "example:fundchannel_start#2", "method": "fundchannel_start", "params": { - "id": "nodeid101010101010101010101010101010101010101010101010101010101010", + "id": "027ba5906fad81fcdbb774b4c806eb572b7fac3bee4720b12c44e7f70931d4b7cc", "amount": 16777216 } }, "response": { - "funding_address": "bcrt1p0003030303030303030303030303030303030303030303030303030303", - "scriptpubkey": "scriptpubkey02020202020202020202020202020202020202020202020202020202", + "funding_address": "bcrt1q4hz6a4gtecfmy8z870cwkq2gzc0t7n9u9pu23689u55ghwewemqsv4v2zs", + "scriptpubkey": "0020adc5aed50bce13b21c47f3f0eb0148161ebf4cbc2878a8e8e5e5288bbb2ecec1", "channel_type": { "bits": [ 12, diff --git a/doc/schemas/fundpsbt.json b/doc/schemas/fundpsbt.json index 5416ba46fee3..e93d12052879 100644 --- a/doc/schemas/fundpsbt.json +++ b/doc/schemas/fundpsbt.json @@ -220,7 +220,7 @@ } }, "response": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000", + "psbt": "cHNidP8BAF4CAAAAARxvUMSNjH7EKMXzxKwycdOSZ64xHQfWS7JFe0pAwIPCAAAAAAD9////AahhAAAAAAAAIlEg+3d9jpNmK0getyg5W+Mp31CPIRDKcJg/mZs/uaVrQ+GbAAAAAAEAiQIAAAAB8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0AAAAAAP3///8CYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aICEHgAAAAAAIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd+aAAAAAQErYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aAAA", "feerate_per_kw": 253, "estimated_final_weight": 652, "excess_msat": 196962518000, @@ -241,7 +241,7 @@ } }, "response": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000", + "psbt": "cHNidP8BAF4CAAAAARxvUMSNjH7EKMXzxKwycdOSZ64xHQfWS7JFe0pAwIPCAAAAAAD9////AetRxQsAAAAAIlEg21kTTo7K2doCG6F2JqgaDjc1kRCrH7AL08oPVVJhuE+bAAAAAAEAiQIAAAAB8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0AAAAAAP3///8CYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aICEHgAAAAAAIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd+aAAAAAQErYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aAAA", "feerate_per_kw": 11000, "estimated_final_weight": 613, "excess_msat": 0, diff --git a/doc/schemas/getinfo.json b/doc/schemas/getinfo.json index 74218970753b..cf59ffd294ee 100644 --- a/doc/schemas/getinfo.json +++ b/doc/schemas/getinfo.json @@ -395,8 +395,8 @@ "params": {} }, "response": { - "id": "nodeid020202020202020202020202020202020202020202020202020202020202", - "alias": "SILENTARTIST", + "id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "alias": "SILENTARTIST-v25.12", "color": "022d22", "num_peers": 0, "num_pending_channels": 0, @@ -407,14 +407,14 @@ { "type": "ipv4", "address": "127.0.0.1", - "port": 19735 + "port": 30003 } ], - "version": "v25.05", - "blockheight": 110, + "version": "v25.12", + "blockheight": 108, "network": "regtest", "fees_collected_msat": 0, - "lightning-dir": "/tmp/.lightning/regtest", + "lightning-dir": "/home/rusty/.lightning/regtest", "our_features": { "init": "0898882a8a59a1", "node": "8898882a8a59a1", diff --git a/doc/schemas/getlog.json b/doc/schemas/getlog.json index 7a81024091ce..e694db08b9e9 100644 --- a/doc/schemas/getlog.json +++ b/doc/schemas/getlog.json @@ -241,36 +241,37 @@ } }, "response": { - "created_at": 1738000000, - "bytes_used": 1630000, + "created_at": "1738000000.000000000", + "bytes_used": 3271748, "bytes_max": 10485760, "log": [ { "type": "SKIPPED", - "num_skipped": 144 + "num_skipped": 177 }, { "type": "UNUSUAL", - "time": "71.800000000", + "time": "0.000000000", "source": "plugin-bookkeeper", "log": "topic 'utxo_deposit' is not a known notification topic" }, { "type": "UNUSUAL", - "time": "72.800000000", + "time": "0.000000000", "source": "plugin-bookkeeper", - "log": "topic 'utxo_spend' is not a known notification topic" + "log": "topic 'utxo_spend' is not a known notification topic", + "num_skipped": 4562 }, { "type": "SKIPPED", - "num_skipped": 147 + "num_skipped": 4554 }, { "type": "UNUSUAL", - "time": "74.800000000", - "node_id": "nodeid010101010101010101010101010101010101010101010101010101010101", + "time": "0.000000000", + "node_id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "source": "chan#1", - "log": "No peer channel with scid=228x1x1" + "log": "No peer channel with scid=9351983x2726118x65411" } ] } diff --git a/doc/schemas/getroute.json b/doc/schemas/getroute.json index abf28601b9ca..3e16e4d60eed 100644 --- a/doc/schemas/getroute.json +++ b/doc/schemas/getroute.json @@ -372,7 +372,7 @@ "id": "example:getroute#1", "method": "getroute", "params": { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000, "riskfactor": 1 } @@ -380,16 +380,16 @@ "response": { "route": [ { - "id": "nodeid020202020202020202020202020202020202020202020202020202020202", - "channel": "109x1x1", + "id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "channel": "110x1x0", "direction": 1, "amount_msat": 10001, "delay": 15, "style": "tlv" }, { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", - "channel": "111x1x1", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "channel": "112x1x0", "direction": 0, "amount_msat": 10000, "delay": 9, @@ -403,7 +403,7 @@ "id": "example:getroute#2", "method": "getroute", "params": { - "id": "nodeid040404040404040404040404040404040404040404040404040404040404", + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "amount_msat": 500000, "riskfactor": 10, "cltv": 9 @@ -412,16 +412,16 @@ "response": { "route": [ { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", - "channel": "111x1x1", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "channel": "112x1x0", "direction": 0, "amount_msat": 500006, "delay": 15, "style": "tlv" }, { - "id": "nodeid040404040404040404040404040404040404040404040404040404040404", - "channel": "125x1x1", + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "channel": "114x1x0", "direction": 0, "amount_msat": 500000, "delay": 9, diff --git a/doc/schemas/getroutes.json b/doc/schemas/getroutes.json index 13099ad787e9..532cd129357b 100644 --- a/doc/schemas/getroutes.json +++ b/doc/schemas/getroutes.json @@ -195,8 +195,8 @@ "id": "example:getroutes#1", "method": "getroutes", "params": { - "source": "nodeid010101010101010101010101010101010101010101010101010101010101", - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "source": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 1250000, "layers": [], "maxfee_msat": 125000, @@ -212,14 +212,14 @@ "final_cltv": 0, "path": [ { - "short_channel_id_dir": "109x1x1/1", - "next_node_id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "short_channel_id_dir": "110x1x0/1", + "next_node_id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "amount_msat": 1250026, "delay": 12 }, { - "short_channel_id_dir": "123x1x1/0", - "next_node_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "short_channel_id_dir": "124x1x1/0", + "next_node_id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 1250013, "delay": 6 } diff --git a/doc/schemas/injectpaymentonion.json b/doc/schemas/injectpaymentonion.json index ca515ea7ed41..3834ba1ebfa2 100644 --- a/doc/schemas/injectpaymentonion.json +++ b/doc/schemas/injectpaymentonion.json @@ -147,10 +147,10 @@ "id": "example:injectpaymentonion#1", "method": "injectpaymentonion", "params": { - "onion": "onion30303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030", - "payment_hash": "paymenthashinvl0270027002700270027002700270027002700270027002700", + "onion": "0003e37337e2f488ed89a79030fb54f4f3bda09a28f80623adc2864fbf1aee71ff50c460e4e973dea414931035804e7ef03a4bdad4e3729bf85f16b6710a83fa2a3ae94332e0ba70e1d1b69100256a9e4b6144948e835c0738918afe33aac4714bc27c5c70a81e314428e8d17017c4cdc5df2ed3ec75d45cf7b5bb38547c5dd4a34134f390e516f82e97843754fd6ecbfeb1cf2e7d9ad520854592226c05210e2ddc3fb059bc6ed28e393b748be02572bd4bed4721cbc26219ad0714b4cbd329f21a727626545e9c5e9bf84cc7ed94729efdc47828560ace966b698b745d688605c390f62b67a1e0eaa84585bbb4440c442513128ff259729c9bc5dfb42c461afb5fa9f29bf04fbc04f479b0445be49f44bb15b29d79ff0bd38032f2df870dd6da61754202a1cb495df5609898c0a22582b53cb794d84a8d2931602d647b66d5b37bc122200c77b88000d7465fd51e12a825e7987844c0e36ec0c4f3a6a6b513039d4d4173e6fbea8ab68391eee74579c25b92f874e562666291997b36032f72a999bec029c99cf09941884594c32df37aa08c4bfa7ced0291251b49f9ff1814c48389da17800b8230f896d26fe1ca1d5ae7a06d195ba68fd6fdd7e92539d02107a7b72edb841fc27c526e8c5479066fd4bd8ccf955906372d4343e07f131bc9bdc2dfab65c9425e8522bcb2086e650f53d0fed6b3d24a8929a0e2420cf2239ea4bd0fb74a9fae6475d3a6a9efc70c24b0695231477d194bcedce540f763d749e075f63f8307f712e1c2e2705b43b2bed53dd928467ef2f1fd426b9a350981909cfdfd95fc2ba5a8ab90c3afb48a988ad0220716770e8bde7d21b89cbc1621cf6dc223cdfb74cdb5344526eaa72bd2ad1da482cb87f4ddae7f9f753b95a1a09b83478688b5f4a0eb7015ff469334e2491a9f50d7e265811f3776c7282cda704d99c343353a7955798f08dc30cf7e7fcb70c3901767e6e0db48b39f79ef65ddd0493bf40145a014b52dbf6eb7a5b51537580eeff790fe75f4fa9b9cbc5c9efa54561738b03aaa2ad07495f49552fcd26b1b1015e92d8fdbd22661d01215140a62416f6df1a33c0dbd55d46ee86a8e366f5ab2bd27ff7e12194784a3429ac5aa750c6084c379bd17b9e27ea1007a277ede2c9069daa0267f3cf9249284b456b4860fb7a3004943c06f644f1c5d60a46566812b3450450a484a2893eefccbbcc1c99258c727300000b7fa4f2d26e8895b3beee8a4fa98a1b96870d6ef81053b03632494d2a1face2d380711c20c74b2b3b040f18a765a0e8222e0b42f8358949d4645aa710a796ebce90669b5059584badc56d410476e67977f991fdc7b1ffce860407cbd73469b56af18cc00d0a38001f716b85a4b7225709195c8e1a6fdda5b6259700cc5cd29ac6ef0d2f091e0e07205adc604512ba288641516faa68c9f5bd65e2bc31c1a8ba478e60645837fde18339d606658d43fae0e99b9a39c4a8d517b0ed065e024617deb893b8d25f4e6feacca47fecedd07426e0194ec57b6011ea1f8ad0d528ad5db8f16c501b9fd15b3e9369cb9df5b1ef13500a9858e906b50ecbd9584190d3d9e971d539a4489201317acf4a6b1fa9caf281d40194955cfe3b6005ff1855d46de0a228509d241159a069a9e35a6d0b69033daa362096c8cfa2dbbf0ade2a91e0456f23314cbfe8f961d3703fbaf9e3928cea19b4a7d4a27188f633bdfa57fcecd8a4d793ff6f34cd3137f647a2edeaacac4bd493769c4d69f984d1c3aa8d5ee33956fe9abeef052170ca29c56233e1a8181af9364819c508bcea77aeb2d7cbe24a457c341e00dac875d7caf8898ff0c6c8679ebee963a454f92451da43308b2fbec5621521737f90b35c891c038f94e89ece44f53760ffa4e43b9abaf52070e4185c6e723041a947c536b8027608144", + "payment_hash": "ff498c3300881ea7a3c04193e43f123444c644662008108c23229da3511bedd1", "amount_msat": 1000, - "cltv_expiry": 144, + "cltv_expiry": 145, "partid": 1, "groupid": 0 } @@ -158,8 +158,8 @@ "response": { "created_index": 12, "created_at": 1738000000, - "completed_at": 1739000000, - "payment_preimage": "paymentpreimgio1030303030303030303030303030303030303030303030303" + "completed_at": 1738000000, + "payment_preimage": "08377744ca985c1e08377744ca985c1e08377744ca985c1e08377744ca985c1e" } } ] diff --git a/doc/schemas/invoice.json b/doc/schemas/invoice.json index 3aa08c139b9a..a1629fac81c7 100644 --- a/doc/schemas/invoice.json +++ b/doc/schemas/invoice.json @@ -212,10 +212,10 @@ } }, "response": { - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", - "expires_at": 1739000000, - "bolt11": "lnbcrt100n1pnt2bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000", - "payment_secret": "paymentsecretinvl00310003100031000310003100031000310003100031000", + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", + "expires_at": 1738604800, + "bolt11": "lnbcrt100n1pne035qsp5ct5g9265vn4k2zn8ecuk6pxe0anszfl3uy4w5vukrvl4emm9w28qpp5j43wux8fg2cwkt3kq5xpprhukdxtqljum03g6zxjdwm34u24dshsdp9f9h8vmmfvdjjqer9wd3hy6tsw35k7m3qdsenzxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqflkpcezmaphptn08syzk9wh4rfkdzj3syan9ng9fzzv94htydujx6qut2tdgsmq2rg5utlmwcyce30fcqth7r68tc5mpqm7k4dfvy7gp0xletu", + "payment_secret": "c2e882ab5464eb650a67ce396d04d97f670127f1e12aea33961b3f5cef65728e", "created_index": 2 } }, @@ -230,10 +230,10 @@ } }, "response": { - "payment_hash": "paymenthashinvl0320032003200320032003200320032003200320032003200", - "expires_at": 1739000000, - "bolt11": "lnbcrt100n1pnt2bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000", - "payment_secret": "paymentsecretinvl00032003200320032003200320032003200320032003200", + "payment_hash": "ab3a5a971aa3b21494f7ce646f077232c10c9917c33375935c1aebfa571fa1a1", + "expires_at": 1738604800, + "bolt11": "lnbcrt500n1pne035qsp5kk6w4wjl0wudssp0pze5lgkz9hcav6ql523hjxc92knt398y2csqpp54va949c65wepf98heejx7pmjxtqsexghcvehty6urt4l54cl5xssdqcdsenygryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqgrjzax5dyj6dqqhgrt7t53hrmw4xvjs56kdy450c8jdv53fzf3n4kmersmgydpyyam87jrnu9wrcn78zy6w53zx3lqv45js6sa6rspqqa07y46", + "payment_secret": "b5b4eaba5f7bb8d8402f08b34fa2c22df1d6681fa2a3791b0555a6b894e45620", "created_index": 3 } } diff --git a/doc/schemas/invoicerequest.json b/doc/schemas/invoicerequest.json index f4d57b139fbf..0764c712c679 100644 --- a/doc/schemas/invoicerequest.json +++ b/doc/schemas/invoicerequest.json @@ -133,10 +133,10 @@ } }, "response": { - "invreq_id": "invreqid01010101010101010101010101010101010101010101010101010101", + "invreq_id": "22c3d45d0a9640a827ed1fefb9a07c947e38fa4c086f1f16d94882848e264868", "active": true, "single_use": true, - "bolt12": "lno1qgsq000bolt210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000", + "bolt12": "lnr1qqg99gqg2990zl3322sqs52279lrzzst2d5k6urvv5s8getnw3gzqp3zderpzxstt8927ynqg044h0egcd8n5h3n9g0u0v4h8ncc3yg02gps7sjqtqssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e7pqfylfzzhcux84v2552lt7p2ekunuamtsdgyk34a86m4zklkdjjdzt757t4sp0m8cp9tdj6hfe67mcuwl3q7zr4sr4z4gn2fvksykkn5g", "used": false } }, @@ -151,10 +151,10 @@ } }, "response": { - "invreq_id": "invreqid02020202020202020202020202020202020202020202020202020202", + "invreq_id": "c5b8ebc06bdc246d7b852ce5637be459d3c053a5b3f8f68854f97af7371c9a50", "active": true, "single_use": true, - "bolt12": "lno1qgsq000bolt240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000", + "bolt12": "lnr1qqg99gqg2990zl3j22sqs52279lryzsk2fjhzat9wd6xjmn8ypnx7u3qd9h8vmmfvdj3yyrrd35kw6r5de5kueeqwd6x7un92qsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzr6jqwvfdqzcyypz6g3kyz34nfrl7lm6c3rushzxey3a55ecjgs6qp2vz8q78j336k0sgr76j2yl0lrljzljjdz8ztcpryunwgfk4hzz3sle3mhaw8v2gc4dn9map7v6dlpya98jy2mcrwe27qcsywlfqp6dhh30l54sj0e8tqsk", "used": false } } diff --git a/doc/schemas/keysend.json b/doc/schemas/keysend.json index a5c92b8b2289..fae9353c5e84 100644 --- a/doc/schemas/keysend.json +++ b/doc/schemas/keysend.json @@ -237,18 +237,18 @@ "id": "example:keysend#1", "method": "keysend", "params": { - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000 } }, "response": { - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", - "payment_hash": "paymenthashkey01k101k101k101k101k101k101k101k101k101k101k101k101", - "created_at": 1738000000, + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "payment_hash": "097dcfa3b0bc58d499908855dae7d442854a02d4f2ffcc625f9385ed74f3256e", + "created_at": 1738000000.0, "parts": 1, "amount_msat": 10000, "amount_sent_msat": 10001, - "payment_preimage": "paymentpreimage1010101010101010101010101010101010101010101010101", + "payment_preimage": "0193052c8999a10f0193052c8999a10f0193052c8999a10f0193052c8999a10f", "status": "complete" } }, @@ -257,7 +257,7 @@ "id": "example:keysend#2", "method": "keysend", "params": { - "destination": "nodeid040404040404040404040404040404040404040404040404040404040404", + "destination": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "amount_msat": 10000000, "extratlvs": { "133773310": "68656c6c6f776f726c64", @@ -266,13 +266,13 @@ } }, "response": { - "destination": "nodeid040404040404040404040404040404040404040404040404040404040404", - "payment_hash": "paymenthashkey02k201k201k201k201k201k201k201k201k201k201k201k201", - "created_at": 1738000000, + "destination": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "payment_hash": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584", + "created_at": 1738000000.0, "parts": 1, "amount_msat": 10000000, "amount_sent_msat": 10000202, - "payment_preimage": "paymentpreimage2020202020202020202020202020202020202020202020202", + "payment_preimage": "0193052c8999a1110193052c8999a1110193052c8999a1110193052c8999a111", "status": "complete" } }, @@ -281,13 +281,13 @@ "id": "example:keysend#3", "method": "keysend", "params": { - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000, "routehints": [ [ { - "scid": "111x1x1", - "id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "scid": "9351983x2726118x65411", + "id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "feebase": "1msat", "feeprop": 10, "expirydelta": 9 @@ -297,13 +297,13 @@ } }, "response": { - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", - "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", - "created_at": 1738000000, + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "payment_hash": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", + "created_at": 1738000000.0, "parts": 2, "amount_msat": 10000, "amount_sent_msat": 10001, - "payment_preimage": "paymentpreimage3030303030303030303030303030303030303030303030303", + "payment_preimage": "0193052c8999a1130193052c8999a1130193052c8999a1130193052c8999a113", "status": "complete" } } diff --git a/doc/schemas/listchainmoves.json b/doc/schemas/listchainmoves.json index eeec3e6b902e..b13b2b1273ae 100644 --- a/doc/schemas/listchainmoves.json +++ b/doc/schemas/listchainmoves.json @@ -212,220 +212,233 @@ "account_id": "wallet", "credit_msat": 200000000000, "debit_msat": 0, - "timestamp": 1758192762, + "timestamp": 1738000001, "primary_tag": "deposit", "extra_tags": [], - "utxo": "994185cba7723715c0aa1d1859ce2781116776cea917035c90f8f04c9f4e095e:1", + "utxo": "89126fb6a9c3b0cbddb31ee6501f3582a3f991f5cbcd07b895a4e31ac120d8b3:1", "output_msat": 200000000000, - "blockheight": 104 + "blockheight": 105 }, { "created_index": 2, "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 0, "debit_msat": 0, - "timestamp": 1758192777, + "timestamp": 1738000002, "primary_tag": "channel_open", "extra_tags": [], - "utxo": "542906c8a9d90596592459a9484f4286a3200f6540599c83b43af2ac4166c6ca:1", - "peer_id": "nodeid010101010101010101010101010101010101010101010101010101010101", + "utxo": "63f74346eda6b8620ec24f86e2f8982ef3dade95f8efd00b372a75b2893b6f0d:0", + "peer_id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "output_msat": 1000000000, - "blockheight": 109 + "blockheight": 110 }, { "created_index": 3, "account_id": "wallet", "credit_msat": 2000000000, "debit_msat": 0, - "timestamp": 1758192780, + "timestamp": 1738000003, "primary_tag": "deposit", "extra_tags": [], - "utxo": "19e9e42f2f2097ea1dc18d7eb670bc53c90cbe31bb1daba8e94abf3c6b60d2dc:1", + "utxo": "d84db03fd012a98de6776fb10ee1c1de23282c33518aa32fdd5a15600f535ace:0", "output_msat": 2000000000, - "blockheight": 110 + "blockheight": 111 }, { "created_index": 4, "account_id": "wallet", "credit_msat": 0, "debit_msat": 200000000000, - "timestamp": 1738530000, + "timestamp": 1738000004, "primary_tag": "withdrawal", "extra_tags": [], - "utxo": "994185cba7723715c0aa1d1859ce2781116776cea917035c90f8f04c9f4e095e:1", - "spending_txid": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc", + "utxo": "89126fb6a9c3b0cbddb31ee6501f3582a3f991f5cbcd07b895a4e31ac120d8b3:1", + "spending_txid": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9", "output_msat": 200000000000, - "blockheight": 111 + "blockheight": 112 }, { "created_index": 5, "account_id": "wallet", "credit_msat": 198995073000, "debit_msat": 0, - "timestamp": 1738530000, + "timestamp": 1738000005, "primary_tag": "deposit", "extra_tags": [], - "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:1", + "utxo": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9:1", "output_msat": 198995073000, - "blockheight": 111 + "blockheight": 112 }, { "created_index": 6, "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 1000000000, "debit_msat": 0, - "timestamp": 1738530000, + "timestamp": 1738000006, "primary_tag": "channel_open", "extra_tags": [ "opener" ], - "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:0", - "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "utxo": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9:0", + "peer_id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "output_msat": 1000000000, - "blockheight": 111 + "blockheight": 112 }, { "created_index": 7, "account_id": "wallet", "credit_msat": 2000000000, "debit_msat": 0, - "timestamp": 1758192792, + "timestamp": 1738000007, "primary_tag": "deposit", "extra_tags": [], - "utxo": "b6d0090efbeb347fa59f90b321d6906cdf86779c15477582979fa427249f71f5:1", + "utxo": "254dc18f69af1f3ee1ed64a81782b524455efe7f04cb9873059c667fbcffe56d:1", "output_msat": 2000000000, - "blockheight": 114 + "blockheight": 115 }, { "created_index": 8, "account_id": "wallet", "credit_msat": 0, - "debit_msat": 198995073000, - "timestamp": 1758192795, + "debit_msat": 2000000000, + "timestamp": 1738000008, "primary_tag": "withdrawal", "extra_tags": [], - "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:1", - "spending_txid": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec", - "output_msat": 198995073000, - "blockheight": 115 + "utxo": "254dc18f69af1f3ee1ed64a81782b524455efe7f04cb9873059c667fbcffe56d:1", + "spending_txid": "92dc0d9921d6c5beda83bddd3d1575fb673493f354c0a8cd91c6b139620c3155", + "output_msat": 2000000000, + "blockheight": 116 }, { "created_index": 9, "account_id": "wallet", - "credit_msat": 197990453000, + "credit_msat": 995073000, "debit_msat": 0, - "timestamp": 1758192795, + "timestamp": 1738000009, "primary_tag": "deposit", "extra_tags": [], - "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:0", - "output_msat": 197990453000, - "blockheight": 115 + "utxo": "92dc0d9921d6c5beda83bddd3d1575fb673493f354c0a8cd91c6b139620c3155:0", + "output_msat": 995073000, + "blockheight": 116 }, { "created_index": 10, "account_id": "f8fc83a432cbfb2fffe222cc06727fdd977b5dd10ebd6707158e799e6f522d9f", "credit_msat": 1000000000, "debit_msat": 0, - "timestamp": 1758192795, + "timestamp": 1738000010, "primary_tag": "channel_open", "extra_tags": [ "opener" ], - "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:1", - "peer_id": "nodeid050505050505050505050505050505050505050505050505050505050505", + "utxo": "92dc0d9921d6c5beda83bddd3d1575fb673493f354c0a8cd91c6b139620c3155:1", + "peer_id": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e", "output_msat": 1000000000, - "blockheight": 115 + "blockheight": 116 }, { "created_index": 11, "account_id": "wallet", "credit_msat": 486914000, "debit_msat": 0, - "timestamp": 1738520000, + "timestamp": 1738000027, "primary_tag": "deposit", "extra_tags": [], - "utxo": "874b26d4c523a902fdc44b88ec000eb5c3fe8754c9d44190a140561e24e77781:0", + "utxo": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6:0", "output_msat": 486914000, - "blockheight": 121 + "blockheight": 122 }, { "created_index": 12, "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 489809898, - "timestamp": 1738520000, + "timestamp": 1738000028, "primary_tag": "channel_close", "extra_tags": [], - "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:0", - "spending_txid": "txid010101010101010101010101010101010101010101010101010101010101", + "utxo": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9:0", + "spending_txid": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6", "output_msat": 1000000000, "output_count": 2, - "blockheight": 121 + "blockheight": 122 }, { "created_index": 13, "account_id": "external", "credit_msat": 510190000, "debit_msat": 0, - "timestamp": 1738520000, + "timestamp": 1738000029, "primary_tag": "to_them", "extra_tags": [], - "utxo": "874b26d4c523a902fdc44b88ec000eb5c3fe8754c9d44190a140561e24e77781:1", - "originating_account": "channelid0230000230000230000230000230000230000230000230000230000", + "utxo": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6:1", + "originating_account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "output_msat": 510190000, - "blockheight": 121 + "blockheight": 122 }, { "created_index": 14, "account_id": "wallet", "credit_msat": 2000000000, "debit_msat": 0, - "timestamp": 1758192808, + "timestamp": 1738000030, "primary_tag": "deposit", "extra_tags": [], - "utxo": "c9c9bec064382b6a6fb2a30d8923949b3c9f732465542b96e9ad1b5eebda4c7d:0", + "utxo": "ed937e020220370aab16a6f2f54b8b2230681f3991e46c2dccb21fea510533a7:1", "output_msat": 2000000000, - "blockheight": 122 + "blockheight": 123 }, { "created_index": 15, "account_id": "wallet", "credit_msat": 0, - "debit_msat": 197990453000, - "timestamp": 1738500000, + "debit_msat": 995073000, + "timestamp": 1738000031, "primary_tag": "withdrawal", "extra_tags": [], - "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:0", - "spending_txid": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682", - "output_msat": 197990453000, - "blockheight": 123 + "utxo": "92dc0d9921d6c5beda83bddd3d1575fb673493f354c0a8cd91c6b139620c3155:0", + "spending_txid": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69", + "output_msat": 995073000, + "blockheight": 124 }, { "created_index": 16, "account_id": "wallet", - "credit_msat": 196985833000, + "credit_msat": 0, + "debit_msat": 2000000000, + "timestamp": 1738000032, + "primary_tag": "withdrawal", + "extra_tags": [], + "utxo": "ed937e020220370aab16a6f2f54b8b2230681f3991e46c2dccb21fea510533a7:1", + "spending_txid": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69", + "output_msat": 2000000000, + "blockheight": 124 + }, + { + "created_index": 17, + "account_id": "wallet", + "credit_msat": 1988421000, "debit_msat": 0, - "timestamp": 1738500000, + "timestamp": 1738000033, "primary_tag": "deposit", "extra_tags": [], - "utxo": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682:1", - "output_msat": 196985833000, - "blockheight": 123 + "utxo": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69:0", + "output_msat": 1988421000, + "blockheight": 124 }, { - "created_index": 17, - "account_id": "channelid0230200230200230200230200230200230200230200230200230200", + "created_index": 18, + "account_id": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3", "credit_msat": 1000000000, "debit_msat": 0, - "timestamp": 1738500000, + "timestamp": 1738000034, "primary_tag": "channel_open", "extra_tags": [ "opener" ], - "utxo": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682:0", - "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "utxo": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69:1", + "peer_id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "output_msat": 1000000000, - "blockheight": 123 + "blockheight": 124 } ] } @@ -446,106 +459,119 @@ "account_id": "f8fc83a432cbfb2fffe222cc06727fdd977b5dd10ebd6707158e799e6f522d9f", "credit_msat": 1000000000, "debit_msat": 0, - "timestamp": 1758192795, + "timestamp": 1738000010, "primary_tag": "channel_open", "extra_tags": [ "opener" ], - "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:1", - "peer_id": "nodeid050505050505050505050505050505050505050505050505050505050505", + "utxo": "92dc0d9921d6c5beda83bddd3d1575fb673493f354c0a8cd91c6b139620c3155:1", + "peer_id": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e", "output_msat": 1000000000, - "blockheight": 115 + "blockheight": 116 }, { "created_index": 11, "account_id": "wallet", "credit_msat": 486914000, "debit_msat": 0, - "timestamp": 1738520000, + "timestamp": 1738000027, "primary_tag": "deposit", "extra_tags": [], - "utxo": "874b26d4c523a902fdc44b88ec000eb5c3fe8754c9d44190a140561e24e77781:0", + "utxo": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6:0", "output_msat": 486914000, - "blockheight": 121 + "blockheight": 122 }, { "created_index": 12, "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 489809898, - "timestamp": 1738520000, + "timestamp": 1738000028, "primary_tag": "channel_close", "extra_tags": [], - "utxo": "94418b652c9a0d79129552d317dcc37cb55afda1387257a22c7f16aa3981b7bc:0", - "spending_txid": "txid010101010101010101010101010101010101010101010101010101010101", + "utxo": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9:0", + "spending_txid": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6", "output_msat": 1000000000, "output_count": 2, - "blockheight": 121 + "blockheight": 122 }, { "created_index": 13, "account_id": "external", "credit_msat": 510190000, "debit_msat": 0, - "timestamp": 1738520000, + "timestamp": 1738000029, "primary_tag": "to_them", "extra_tags": [], - "utxo": "874b26d4c523a902fdc44b88ec000eb5c3fe8754c9d44190a140561e24e77781:1", - "originating_account": "channelid0230000230000230000230000230000230000230000230000230000", + "utxo": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6:1", + "originating_account": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "output_msat": 510190000, - "blockheight": 121 + "blockheight": 122 }, { "created_index": 14, "account_id": "wallet", "credit_msat": 2000000000, "debit_msat": 0, - "timestamp": 1758192808, + "timestamp": 1738000030, "primary_tag": "deposit", "extra_tags": [], - "utxo": "c9c9bec064382b6a6fb2a30d8923949b3c9f732465542b96e9ad1b5eebda4c7d:0", + "utxo": "ed937e020220370aab16a6f2f54b8b2230681f3991e46c2dccb21fea510533a7:1", "output_msat": 2000000000, - "blockheight": 122 + "blockheight": 123 }, { "created_index": 15, "account_id": "wallet", "credit_msat": 0, - "debit_msat": 197990453000, - "timestamp": 1738500000, + "debit_msat": 995073000, + "timestamp": 1738000031, "primary_tag": "withdrawal", "extra_tags": [], - "utxo": "32de3d1592062670eb8630875a28705cc1988b7f83f8c712bf9d39be2152efec:0", - "spending_txid": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682", - "output_msat": 197990453000, - "blockheight": 123 + "utxo": "92dc0d9921d6c5beda83bddd3d1575fb673493f354c0a8cd91c6b139620c3155:0", + "spending_txid": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69", + "output_msat": 995073000, + "blockheight": 124 }, { "created_index": 16, "account_id": "wallet", - "credit_msat": 196985833000, + "credit_msat": 0, + "debit_msat": 2000000000, + "timestamp": 1738000032, + "primary_tag": "withdrawal", + "extra_tags": [], + "utxo": "ed937e020220370aab16a6f2f54b8b2230681f3991e46c2dccb21fea510533a7:1", + "spending_txid": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69", + "output_msat": 2000000000, + "blockheight": 124 + }, + { + "created_index": 17, + "account_id": "wallet", + "credit_msat": 1988421000, "debit_msat": 0, - "timestamp": 1738500000, + "timestamp": 1738000033, "primary_tag": "deposit", "extra_tags": [], - "utxo": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682:1", - "output_msat": 196985833000, - "blockheight": 123 + "utxo": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69:0", + "output_msat": 1988421000, + "blockheight": 124 }, { - "created_index": 17, - "account_id": "channelid0230200230200230200230200230200230200230200230200230200", + "created_index": 18, + "account_id": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3", "credit_msat": 1000000000, "debit_msat": 0, - "timestamp": 1738500000, + "timestamp": 1738000034, "primary_tag": "channel_open", "extra_tags": [ "opener" ], - "utxo": "0137213d852e76d48f0270a78218d2f562ac0a8974f814cab66376537cfd1682:0", - "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "utxo": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69:1", + "peer_id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "output_msat": 1000000000, - "blockheight": 123 + "blockheight": 124 } ] } diff --git a/doc/schemas/listchannelmoves.json b/doc/schemas/listchannelmoves.json index eba0f45a35db..efe64dedda19 100644 --- a/doc/schemas/listchannelmoves.json +++ b/doc/schemas/listchannelmoves.json @@ -160,9 +160,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 500000000, "debit_msat": 0, - "timestamp": 1738520000, + "timestamp": 1738000011, "primary_tag": "invoice", - "payment_hash": "paymenthashdelpay10101010101010101010101010101010101010101010101", + "payment_hash": "342cbb1cb564e8f32eb64fe8c254abf5ec5f6b87a0f8de7909caf8e658f3bd2a", "fees_msat": 0 }, { @@ -170,9 +170,9 @@ "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 500000000, - "timestamp": 1738520000, + "timestamp": 1738000012, "primary_tag": "invoice", - "payment_hash": "8a46ab91013146df39e98ad7c89505fbb5419f110e928f7a393e8304f3057df7", + "payment_hash": "f61aef012557d6496699642e71e2bacda5670b5377c6357fa40485813facc628", "part_id": 0, "group_id": 1, "fees_msat": 0 @@ -182,9 +182,9 @@ "account_id": "f8fc83a432cbfb2fffe222cc06727fdd977b5dd10ebd6707158e799e6f522d9f", "credit_msat": 0, "debit_msat": 500000000, - "timestamp": 1758192801, + "timestamp": 1738000013, "primary_tag": "invoice", - "payment_hash": "88969daaf02214a1928e6eb62a237a8ee557f3da93b2c44f3901432c88f4334b", + "payment_hash": "f65a1de794267be304d915d60a9257d2e8f43f3e897e6894b619493e4c20d94e", "part_id": 0, "group_id": 1, "fees_msat": 0 @@ -194,9 +194,9 @@ "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 10000, - "timestamp": 1758192801, + "timestamp": 1738000014, "primary_tag": "routed", - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", "fees_msat": 1 }, { @@ -204,9 +204,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 10001, "debit_msat": 0, - "timestamp": 1758192801, + "timestamp": 1738000015, "primary_tag": "routed", - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", "fees_msat": 1 }, { @@ -214,9 +214,9 @@ "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 10000, - "timestamp": 1758192801, + "timestamp": 1738000016, "primary_tag": "routed", - "payment_hash": "paymenthashkey01k101k101k101k101k101k101k101k101k101k101k101k101", + "payment_hash": "097dcfa3b0bc58d499908855dae7d442854a02d4f2ffcc625f9385ed74f3256e", "fees_msat": 1 }, { @@ -224,9 +224,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 10001, "debit_msat": 0, - "timestamp": 1758192801, + "timestamp": 1738000017, "primary_tag": "routed", - "payment_hash": "paymenthashkey01k101k101k101k101k101k101k101k101k101k101k101k101", + "payment_hash": "097dcfa3b0bc58d499908855dae7d442854a02d4f2ffcc625f9385ed74f3256e", "fees_msat": 1 }, { @@ -234,9 +234,9 @@ "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 10000101, - "timestamp": 1758192802, + "timestamp": 1738000018, "primary_tag": "routed", - "payment_hash": "paymenthashkey02k201k201k201k201k201k201k201k201k201k201k201k201", + "payment_hash": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584", "fees_msat": 101 }, { @@ -244,9 +244,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 10000202, "debit_msat": 0, - "timestamp": 1758192802, + "timestamp": 1738000019, "primary_tag": "routed", - "payment_hash": "paymenthashkey02k201k201k201k201k201k201k201k201k201k201k201k201", + "payment_hash": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584", "fees_msat": 101 }, { @@ -254,9 +254,9 @@ "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 10000, - "timestamp": 1758192802, + "timestamp": 1738000020, "primary_tag": "routed", - "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "payment_hash": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", "fees_msat": 1 }, { @@ -264,9 +264,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 10001, "debit_msat": 0, - "timestamp": 1758192802, + "timestamp": 1738000021, "primary_tag": "routed", - "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "payment_hash": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", "fees_msat": 1 }, { @@ -274,9 +274,9 @@ "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 50000, - "timestamp": 1758192802, + "timestamp": 1738000022, "primary_tag": "routed", - "payment_hash": "paymenthashinvl0320032003200320032003200320032003200320032003200", + "payment_hash": "ab3a5a971aa3b21494f7ce646f077232c10c9917c33375935c1aebfa571fa1a1", "fees_msat": 1 }, { @@ -284,9 +284,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 50001, "debit_msat": 0, - "timestamp": 1758192802, + "timestamp": 1738000023, "primary_tag": "routed", - "payment_hash": "paymenthashinvl0320032003200320032003200320032003200320032003200", + "payment_hash": "ab3a5a971aa3b21494f7ce646f077232c10c9917c33375935c1aebfa571fa1a1", "fees_msat": 1 }, { @@ -294,9 +294,9 @@ "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 100000, - "timestamp": 1758192803, + "timestamp": 1738000024, "primary_tag": "invoice", - "payment_hash": "paymenthashinvl0330033003300330033003300330033003300330033003300", + "payment_hash": "2b1434d9e61da6c5f1252369f4a98e1ddce722b4db3bf15553b87a94d19d351d", "part_id": 0, "group_id": 1, "fees_msat": 0 @@ -306,9 +306,9 @@ "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 10001, - "timestamp": 1758192803, + "timestamp": 1738000025, "primary_tag": "routed", - "payment_hash": "61b929204f4db4f38e0412b2bd4c3c03668dad3575fb05f4e15a2214046c2bff", + "payment_hash": "1bb513fb2fbde40592243877d9f404ba3668275e2eeacd9c7264f34f04d37fd1", "fees_msat": 1 }, { @@ -316,9 +316,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 10002, "debit_msat": 0, - "timestamp": 1758192803, + "timestamp": 1738000026, "primary_tag": "routed", - "payment_hash": "61b929204f4db4f38e0412b2bd4c3c03668dad3575fb05f4e15a2214046c2bff", + "payment_hash": "1bb513fb2fbde40592243877d9f404ba3668275e2eeacd9c7264f34f04d37fd1", "fees_msat": 1 }, { @@ -326,9 +326,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 0, "debit_msat": 1000000, - "timestamp": 1758192821, + "timestamp": 1738000035, "primary_tag": "invoice", - "payment_hash": "paymenthashsdinvsi10si10si10si10si10si10si10si10si10si10si10si10", + "payment_hash": "cedc7bf0a9109bd3cd86c5a0c90faa812b8a0ca3d65671c8b4001aae2647349f", "part_id": 0, "group_id": 1, "fees_msat": 0 @@ -338,9 +338,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 1000, "debit_msat": 0, - "timestamp": 1758192821, + "timestamp": 1738000036, "primary_tag": "invoice", - "payment_hash": "paymenthashinvl0270027002700270027002700270027002700270027002700", + "payment_hash": "ff498c3300881ea7a3c04193e43f123444c644662008108c23229da3511bedd1", "fees_msat": 0 } ] @@ -363,9 +363,9 @@ "account_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", "credit_msat": 0, "debit_msat": 10000, - "timestamp": 1758192802, + "timestamp": 1738000020, "primary_tag": "routed", - "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "payment_hash": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", "fees_msat": 1 }, { @@ -373,9 +373,9 @@ "account_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", "credit_msat": 10001, "debit_msat": 0, - "timestamp": 1758192802, + "timestamp": 1738000021, "primary_tag": "routed", - "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "payment_hash": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", "fees_msat": 1 } ] diff --git a/doc/schemas/listchannels.json b/doc/schemas/listchannels.json index f21e1f80f4af..d1e03f9e3824 100644 --- a/doc/schemas/listchannels.json +++ b/doc/schemas/listchannels.json @@ -191,22 +191,22 @@ "id": "example:listchannels#1", "method": "listchannels", "params": { - "short_channel_id": "109x1x1" + "short_channel_id": "110x1x0" } }, "response": { "channels": [ { - "source": "nodeid020202020202020202020202020202020202020202020202020202020202", - "destination": "nodeid010101010101010101010101010101010101010101010101010101010101", - "short_channel_id": "109x1x1", + "source": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "destination": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "short_channel_id": "110x1x0", "direction": 0, "public": true, "amount_msat": 1000000000, "message_flags": 1, "channel_flags": 0, "active": true, - "last_update": 1738500000, + "last_update": 1738000001, "base_fee_millisatoshi": 1, "fee_per_millionth": 10, "delay": 6, @@ -215,16 +215,16 @@ "features": "" }, { - "source": "nodeid010101010101010101010101010101010101010101010101010101010101", - "destination": "nodeid020202020202020202020202020202020202020202020202020202020202", - "short_channel_id": "109x1x1", + "source": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "short_channel_id": "110x1x0", "direction": 1, "public": true, "amount_msat": 1000000000, "message_flags": 1, "channel_flags": 1, - "active": false, - "last_update": 1738510000, + "active": true, + "last_update": 1738000001, "base_fee_millisatoshi": 1, "fee_per_millionth": 10, "delay": 6, @@ -244,16 +244,16 @@ "response": { "channels": [ { - "source": "nodeid020202020202020202020202020202020202020202020202020202020202", - "destination": "nodeid010101010101010101010101010101010101010101010101010101010101", - "short_channel_id": "109x1x1", + "source": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "destination": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "short_channel_id": "110x1x0", "direction": 0, "public": true, "amount_msat": 1000000000, "message_flags": 1, "channel_flags": 0, "active": true, - "last_update": 1738500000, + "last_update": 1738000001, "base_fee_millisatoshi": 1, "fee_per_millionth": 10, "delay": 6, @@ -262,16 +262,16 @@ "features": "" }, { - "source": "nodeid010101010101010101010101010101010101010101010101010101010101", - "destination": "nodeid020202020202020202020202020202020202020202020202020202020202", - "short_channel_id": "109x1x1", + "source": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "short_channel_id": "110x1x0", "direction": 1, "public": true, "amount_msat": 1000000000, "message_flags": 1, "channel_flags": 1, - "active": false, - "last_update": 1738510000, + "active": true, + "last_update": 1738000001, "base_fee_millisatoshi": 1, "fee_per_millionth": 10, "delay": 6, @@ -280,16 +280,16 @@ "features": "" }, { - "source": "nodeid020202020202020202020202020202020202020202020202020202020202", - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", - "short_channel_id": "123x1x1", + "source": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "short_channel_id": "124x1x1", "direction": 0, "public": true, "amount_msat": 1000000000, "message_flags": 1, - "channel_flags": 2, + "channel_flags": 0, "active": true, - "last_update": 1738520000, + "last_update": 1738000001, "base_fee_millisatoshi": 1, "fee_per_millionth": 10, "delay": 6, @@ -298,16 +298,16 @@ "features": "" }, { - "source": "nodeid030303030303030303030303030303030303030303030303030303030303", - "destination": "nodeid020202020202020202020202020202020202020202020202020202020202", - "short_channel_id": "123x1x1", + "source": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "short_channel_id": "124x1x1", "direction": 1, "public": true, "amount_msat": 1000000000, "message_flags": 1, - "channel_flags": 3, - "active": false, - "last_update": 1738530000, + "channel_flags": 1, + "active": true, + "last_update": 1738000001, "base_fee_millisatoshi": 1, "fee_per_millionth": 10, "delay": 6, @@ -316,16 +316,34 @@ "features": "" }, { - "source": "nodeid030303030303030303030303030303030303030303030303030303030303", - "destination": "nodeid040404040404040404040404040404040404040404040404040404040404", - "short_channel_id": "130x1x1", + "source": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "destination": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "short_channel_id": "126x1x0", "direction": 0, "public": true, "amount_msat": 1000000000, "message_flags": 1, "channel_flags": 2, + "active": false, + "last_update": 1738000002, + "base_fee_millisatoshi": 1, + "fee_per_millionth": 10, + "delay": 6, + "htlc_minimum_msat": 0, + "htlc_maximum_msat": 990000000, + "features": "" + }, + { + "source": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "short_channel_id": "126x1x0", + "direction": 1, + "public": true, + "amount_msat": 1000000000, + "message_flags": 1, + "channel_flags": 1, "active": true, - "last_update": 1738540000, + "last_update": 1738000001, "base_fee_millisatoshi": 1, "fee_per_millionth": 10, "delay": 6, diff --git a/doc/schemas/listclosedchannels.json b/doc/schemas/listclosedchannels.json index becf033e692d..9bb7a5cbe18b 100644 --- a/doc/schemas/listclosedchannels.json +++ b/doc/schemas/listclosedchannels.json @@ -298,16 +298,16 @@ "response": { "closedchannels": [ { - "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", - "channel_id": "channelid0230000230000230000230000230000230000230000230000230000", - "short_channel_id": "111x1x1", + "peer_id": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e", + "channel_id": "f8fc83a432cbfb2fffe222cc06727fdd977b5dd10ebd6707158e799e6f522d9f", + "short_channel_id": "116x1x1", "alias": { - "local": "121x131x141", - "remote": "151x161x171" + "local": "6443160x13255799x14088", + "remote": "12585125x15062924x5208" }, "opener": "local", "closer": "local", - "private": false, + "private": true, "channel_type": { "bits": [ 12, @@ -318,32 +318,31 @@ "anchors/even" ] }, - "total_local_commitments": 16, - "total_remote_commitments": 16, - "total_htlcs_sent": 8, - "funding_txid": "fundingtxid00202020202020202020202020202020202020202020202020202", + "total_local_commitments": 2, + "total_remote_commitments": 2, + "total_htlcs_sent": 1, + "funding_txid": "92dc0d9921d6c5beda83bddd3d1575fb673493f354c0a8cd91c6b139620c3155", "funding_outnum": 1, "leased": false, "total_msat": 1000000000, - "final_to_us_msat": 489809898, - "min_to_us_msat": 489809898, + "final_to_us_msat": 500000000, + "min_to_us_msat": 500000000, "max_to_us_msat": 1000000000, - "last_commitment_txid": "txidcloselastcommitment00000100001000010000100001000010000100001", + "last_commitment_txid": "19fec0dedc91354817beacd4155a6303a5ceaad0be36219b3d6e77836c8092a0", "last_commitment_fee_msat": 2895000, - "close_cause": "user", - "last_stable_connection": 1738500000 + "close_cause": "user" }, { - "peer_id": "nodeid050505050505050505050505050505050505050505050505050505050505", - "channel_id": "channelid0250000250000250000250000250000250000250000250000250000", - "short_channel_id": "115x1x1", + "peer_id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "channel_id": "a397dd9b3e44afcb67f3f3ce1d649b74a8ade63e35505985e4cc1828634f69a2", + "short_channel_id": "112x1x0", "alias": { - "local": "122x132x142", - "remote": "152x162x172" + "local": "6377624x13255799x14088", + "remote": "9351983x2726118x65411" }, "opener": "local", "closer": "local", - "private": true, + "private": false, "channel_type": { "bits": [ 12, @@ -354,20 +353,20 @@ "anchors/even" ] }, - "total_local_commitments": 2, - "total_remote_commitments": 2, - "total_htlcs_sent": 1, - "funding_txid": "fundingtxid00101010101010101010101010101010101010101010101010101", - "funding_outnum": 1, + "total_local_commitments": 16, + "total_remote_commitments": 16, + "total_htlcs_sent": 8, + "funding_txid": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9", + "funding_outnum": 0, "leased": false, "total_msat": 1000000000, - "final_to_us_msat": 500000000, - "min_to_us_msat": 500000000, + "final_to_us_msat": 489809898, + "min_to_us_msat": 489809898, "max_to_us_msat": 1000000000, - "last_commitment_txid": "txidcloselastcommitment00000200002000020000200002000020000200002", + "last_commitment_txid": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6", "last_commitment_fee_msat": 2896000, "close_cause": "user", - "last_stable_connection": 1738500000 + "last_stable_connection": 1738000000 } ] } diff --git a/doc/schemas/listconfigs.json b/doc/schemas/listconfigs.json index dc750b5808d1..f5d863cdb858 100644 --- a/doc/schemas/listconfigs.json +++ b/doc/schemas/listconfigs.json @@ -1722,7 +1722,15 @@ "id": "example:listconfigs#1", "method": "listconfigs", "params": { - "config": "network" + "config": "network", + "scb": [ + "0000000000000006f4e1de801de57374d5737da622611e3a1ad9f16d5df9c30fceecc11ce732eeeb022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59017f000001a95cbe3270e5e0998af5eb0a67f7bf6e8d5b3d3d43059b3e4cfbd1e4fca6152c51320000000100000000000f42400003401000000000eb015c0000fffffffffffe000000020000ffffffffffff3283fc1863a9702a8e188ed55475324e55485a8758d2068cfea35851418c55740000fffffffffffed00ec892b1739b55ddc0cca2988d8731eb33f2295c1fcc13fdbdfff9d3f85d6d038402a6939f0f9d5c7a41464169eb692b4d2d73266b3c46345cd036ca577a15bdeeaa027662682a646ce7671c3a091bf639176e87d3379022126b209ebadadae19ffc0e02c59668c64362eaeabf44ee4f10b98fc92412cbea74b6f3a917423dfdf3ca282602773e6c29472ab708e5b127e8ae1ce2d8b7f56b457299f93bb72bb73fdbcf91770501010702a5f8", + "000000000000000121bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d017f000001dcf8fdd5381f36008c3eac24cdde5ec0fea8f39240575ef0cb4406cb51ad419dd7810000000000000000000f424000034010000000011301840000fffffffffffa000000030000fffffffffffb8ff7d0df4eee78e558b4e07f82049aaa933f4f4932e13e1e7fee5cb103f7a0b50000fffffffffffa79176754ea338ffa080591b946a6ac1c47ff579ae7e45857bf01261ebe1c46ba0000fffffffffffcbdb924885293efdaa1ba8f556161f4fe525c19483def49b9af85c1623bc6d27b038402add69f29ad433cb7d4c9470f2d49d80245fd9e76a992197528a131e37711efac02c57de22185162001ffaf2e61b053b1d0e280d73ecec1b04916df2c65642d94a102cd4e1a07ee85714b6eada09d9cf81aeb15bfc72ddd003235530c58bbd0c0144902b10f36d2ebab3ce560abf15ceb1bef619491e0597a794fdafcfdf8708eec9e2d0501010702a5f8", + "00000000000000027512083907c74ed3a045e9bf772b3d72948eb93daf84a1cee57108800451aaf2035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d017f000001dcf80239a9c9f2a91e69ba01800baf71f55efe457677b2e5cbd640b888dc1c9375b40000000000000000000f42400003401000000000c301340000ffffffffffff000000010000ffffffffffff0e07b6188dd51f15bb5cb9027950bf487a612dca57e2928de3f28f6ee796978b03840330b7ddf07e5bc779ea468875371ea25b560491c5feaeeb5e229ded3820d1d69103620748b3796c4988dd0fc63b92ae011dc989f15c433a55ed38e24318a43b4c93021bfe48bb1aded55878b00a3f00c5c1bffa1010510d8ba1c6372012ac9c3205d20201604aa7056ab8926038a846014bdbe4874ceef7ce45141b8009b0e2f49e7ec70501010702a5f8", + "0000000000000003222d999f537e32e9458c5db17a63e012dcced61340de06fda5bc30566270b0aa0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f0000017531932479f6d82ee59c7aa67b99568de0a31c202f6a3ff18a6bdd1ec22683cf026500000000000000000bebb3cb00034010000000009b010c0001000000000000000000000384021f90b5f38e0c0ea50bccfcf70a32cd4395c8c544e70636b7cc41831fe33fb4ce03bcfb0d457dfa07f508f434e6a2f040dd3dd233e7002dbe1c1b5d86ed5d3efd76030a4ce755504748f47401fc016578a52e104cbbd28251f10b11e4b3e55d0fe1d303986bdd0842662b8d0d18147630a720e952a2cda624c63ef4903357d27e54f7920501000702a5f8", + "0000000000000004a4a379248e49d207cc984646e632e1a31105a85708b9d6d961a5018fdd489f5a0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f000001970c7f07a15ce1fe1519d46536c4036f1c13527fa8bf52f6a5299b860f982ba2ed7e00000001000000000000753000034010000000009b010c000100000000000000000000038402c8aabcf1224df10e9d803dc3918797892fe0abec56d3e06f121bcebbe9ab0a2c03bd181375d57b8b1d15def9c5f9007b3c3ff98a140c0a44c9dc5f54ac7ea4baf30310952e08f9960711d8142dfa171c0fc2348762acea003f3897397f6ace8454130382da2a229450c4a8e8cea70bbd147eaaf981184bff8c1d70b70c30a494d848420501010702a5f8", + "000000000000000509eb55872cd9039ecd08281af756e23b15aad4129fd6a9bcd71b472114ebf43a0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f000001970c64ed91a21c10208d715b59801b12b4a6eff9ea9e4e7d45971c298b62d90ece8e00000000000000000000c35000034010000000009b010c000100000000000000000000038402e885f38e784050b386fb32d20935acc61059d8b02b6bec0ac2bfc8b2c5cf7f3103ae69dbfc6511ba0781c13113e16e1557a875b910cb1cb1fe1ef95a7edb36135a03758d5faa8515942873911e21869b1b90a4be72af14b394bc064da6ba518b087003750b588cd1fb8d60276c12c1c3eef7e302e3772414234404289db8c10f5731320501010702a5f8" + ] } }, "response": { @@ -1759,98 +1767,116 @@ }, "response": { "configs": { - "accept-htlc-tlv-type": { - "values_int": [], - "sources": [] + "developer": { + "set": true, + "source": "cmdline" }, - "addr": { - "values_str": [ - "127.0.0.1:19735" - ], - "sources": [ - "cmdline" - ] + "lightning-dir": { + "value_str": "/home/rusty/.lightning/regtest", + "source": "cmdline" }, - "alias": { - "value_str": "SILENTARTIST", + "network": { + "value_str": "regtest", + "source": "cmdline" + }, + "testnet": { + "set": false, + "source": "default" + }, + "testnet4": { + "set": false, + "source": "default" + }, + "signet": { + "set": false, + "source": "default" + }, + "mainnet": { + "set": false, + "source": "default" + }, + "regtest": { + "set": false, + "source": "default" + }, + "rpc-file": { + "value_str": "lightning-rpc", "source": "default" }, "allow-deprecated-apis": { "value_bool": true, "source": "cmdline" }, - "always-use-proxy": { - "value_bool": false, - "source": "default" + "plugin": { + "values_str": [], + "sources": [] }, - "announce-addr": { + "plugin-dir": { "values_str": [], "sources": [] }, - "announce-addr-discovered": { - "value_str": "auto", + "clear-plugins": { + "set": false, "source": "default" }, - "announce-addr-discovered-port": { - "value_int": 19846, - "source": "default" + "disable-plugin": { + "values_str": [], + "sources": [] }, - "autoclean-cycle": { - "value_int": 3600, - "source": "default", - "plugin": "/root/lightning/plugins/autoclean", - "dynamic": true + "important-plugin": { + "values_str": [], + "sources": [] }, - "autoclean-expiredinvoices-age": { - "value_int": 300, - "source": "/tmp/.lightning/regtest/config.setconfig:2", - "plugin": "/root/lightning/plugins/autoclean", - "dynamic": true + "always-use-proxy": { + "value_bool": false, + "source": "default" }, - "autoconnect-seeker-peers": { - "value_int": 0, + "daemon": { + "set": false, + "source": "default" + }, + "experimental-dual-fund": { + "set": true, "source": "cmdline" }, - "autolisten": { - "value_bool": false, + "experimental-splicing": { + "set": false, "source": "default" }, - "bind-addr": { - "values_str": [], - "sources": [] + "experimental-shutdown-wrong-funding": { + "set": false, + "source": "default" }, - "bitcoin-datadir": { - "value_str": "/tmp/.lightning/", - "source": "cmdline", - "plugin": "/root/lightning/plugins/bcli" + "experimental-quiesce": { + "set": false, + "source": "default" }, - "bitcoin-retry-timeout": { - "value_int": 60, - "source": "default", - "plugin": "/root/lightning/plugins/bcli" + "rgb": { + "value_str": "022d22", + "source": "default" }, - "bitcoin-rpcclienttimeout": { - "value_int": 60, - "source": "default", - "plugin": "/root/lightning/plugins/bcli" + "alias": { + "value_str": "SILENTARTIST-v25.12", + "source": "default" }, - "bitcoin-rpcpassword": { - "value_str": "rpcpass", - "source": "cmdline", - "plugin": "/root/lightning/plugins/bcli" + "pid-file": { + "value_str": "/home/rusty/.lightning/lightningd-regtest.pid", + "source": "default" }, - "bitcoin-rpcport": { - "value_int": 18332, - "source": "cmdline", - "plugin": "/root/lightning/plugins/bcli" + "ignore-fee-limits": { + "value_bool": false, + "source": "cmdline" }, - "bitcoin-rpcuser": { - "value_str": "rpcuser", - "source": "cmdline", - "plugin": "/root/lightning/plugins/bcli" + "watchtime-blocks": { + "value_int": 5, + "source": "cmdline" }, - "clear-plugins": { - "set": false, + "funding-confirms": { + "value_int": 1, + "source": "default" + }, + "require-confirmed-inputs": { + "value_bool": false, "source": "default" }, "cltv-delta": { @@ -1861,6 +1887,91 @@ "value_int": 5, "source": "cmdline" }, + "commit-time": { + "value_int": 10, + "source": "default" + }, + "fee-base": { + "value_int": 1, + "source": "default" + }, + "rescan": { + "value_int": 1, + "source": "cmdline" + }, + "fee-per-satoshi": { + "value_int": 10, + "source": "default" + }, + "htlc-minimum-msat": { + "value_msat": 0, + "source": "default" + }, + "htlc-maximum-msat": { + "value_msat": 18446744073709551615, + "source": "default" + }, + "max-concurrent-htlcs": { + "value_int": 483, + "source": "default" + }, + "max-dust-htlc-exposure-msat": { + "value_msat": 50000000, + "source": "default" + }, + "min-capacity-sat": { + "value_int": 500000, + "source": "/home/rusty/.lightning/regtest/config.setconfig:3", + "dynamic": true + }, + "addr": { + "values_str": [ + "127.0.0.1:30003" + ], + "sources": [ + "cmdline" + ] + }, + "bind-addr": { + "values_str": [], + "sources": [] + }, + "announce-addr": { + "values_str": [], + "sources": [] + }, + "announce-addr-discovered": { + "value_str": "auto", + "source": "default" + }, + "announce-addr-discovered-port": { + "value_int": 19846, + "source": "default" + }, + "offline": { + "set": false, + "source": "default" + }, + "autolisten": { + "value_bool": false, + "source": "default" + }, + "accept-htlc-tlv-type": { + "values_int": [], + "sources": [] + }, + "disable-dns": { + "set": true, + "source": "cmdline" + }, + "encrypted-hsm": { + "set": false, + "source": "default" + }, + "rpc-file-mode": { + "value_str": "0600", + "source": "default" + }, "commit-fee": { "value_int": 100, "source": "default" @@ -1869,333 +1980,234 @@ "value_int": 5, "source": "default" }, - "commit-time": { - "value_int": 10, + "min-emergency-msat": { + "value_msat": 25000000, "source": "default" }, - "daemon": { + "subdaemon": { + "values_str": [], + "sources": [] + }, + "invoices-onchain-fallback": { "set": false, "source": "default" }, - "dev-autoclean-max-batch": { - "value_int": 100, - "source": "default", - "plugin": "/root/lightning/plugins/autoclean", - "dynamic": true + "i-promise-to-fix-broken-api-user": { + "values_str": [], + "sources": [] + }, + "log-level": { + "value_str": "debug", + "source": "cmdline" + }, + "log-timestamps": { + "value_bool": true, + "source": "default" + }, + "log-prefix": { + "value_str": "lightningd-2 ", + "source": "cmdline" + }, + "log-file": { + "values_str": [ + "-", + "/home/rusty/.lightning/log" + ], + "sources": [ + "cmdline", + "cmdline" + ] + }, + "dev-no-plugin-checksum": { + "set": true, + "source": "cmdline" + }, + "dev-fail-on-subdaemon-fail": { + "set": true, + "source": "cmdline" }, "dev-bitcoind-poll": { "value_int": 3, "source": "cmdline" }, + "dev-fast-gossip": { + "set": true, + "source": "cmdline" + }, + "dev-no-version-checks": { + "set": true, + "source": "cmdline" + }, + "dev-hsmd-no-preapprove-check": { + "set": true, + "source": "cmdline" + }, + "autoconnect-seeker-peers": { + "value_int": 0, + "source": "cmdline" + }, "dev-crash-after": { "value_str": "3600", "source": "cmdline" }, - "dev-fail-on-subdaemon-fail": { - "set": true, + "dev-save-plugin-io": { + "value_str": "/tmp/plugin-io", "source": "cmdline" }, - "dev-fast-gossip": { - "set": true, - "source": "cmdline" + "autoclean-cycle": { + "value_int": 3600, + "source": "default", + "plugin": "/usr/local/libexec/plugins/autoclean", + "dynamic": true }, - "dev-hsmd-no-preapprove-check": { - "set": true, - "source": "cmdline" + "autoclean-expiredinvoices-age": { + "value_int": 300, + "source": "/home/rusty/.lightning/regtest/config.setconfig:2", + "plugin": "/usr/local/libexec/plugins/autoclean", + "dynamic": true }, - "dev-invoice-bpath-scid": { - "set": false, + "dev-autoclean-max-batch": { + "value_int": 100, "source": "default", - "plugin": "/root/lightning/plugins/offers" + "plugin": "/usr/local/libexec/plugins/autoclean", + "dynamic": true }, - "dev-no-plugin-checksum": { - "set": true, - "source": "cmdline" + "bitcoin-datadir": { + "value_str": "/var/lib/bitcoind", + "source": "cmdline", + "plugin": "/usr/local/libexec/plugins/bcli" }, - "dev-no-version-checks": { - "set": true, - "source": "cmdline" + "bitcoin-retry-timeout": { + "value_int": 60, + "source": "default", + "plugin": "/usr/local/libexec/plugins/bcli" }, - "developer": { - "set": true, - "source": "cmdline" + "bitcoin-rpcclienttimeout": { + "value_int": 60, + "source": "default", + "plugin": "/usr/local/libexec/plugins/bcli" }, - "disable-dns": { - "set": true, - "source": "cmdline" + "bitcoin-rpcpassword": { + "value_str": "rpcpass", + "source": "cmdline", + "plugin": "/usr/local/libexec/plugins/bcli" }, - "disable-mpp": { - "set": false, - "source": "default", - "plugin": "/root/lightning/plugins/pay" + "bitcoin-rpcport": { + "value_int": 8332, + "source": "cmdline", + "plugin": "/usr/local/libexec/plugins/bcli" }, - "disable-plugin": { - "values_str": [], - "sources": [] + "bitcoin-rpcuser": { + "value_str": "rpcuser", + "source": "cmdline", + "plugin": "/usr/local/libexec/plugins/bcli" }, - "encrypted-hsm": { - "set": false, - "source": "default" + "grpc-host": { + "value_str": "127.0.0.1", + "source": "default", + "plugin": "/usr/local/libexec/plugins/cln-grpc" }, - "experimental-dual-fund": { - "set": true, - "source": "cmdline" + "grpc-msg-buffer-size": { + "value_int": 1024, + "source": "default", + "plugin": "/usr/local/libexec/plugins/cln-grpc" }, - "experimental-quiesce": { - "set": false, - "source": "default" + "grpc-port": { + "value_int": 30004, + "source": "cmdline", + "plugin": "/usr/local/libexec/plugins/cln-grpc" }, - "experimental-shutdown-wrong-funding": { + "renepay-debug-mcf": { "set": false, - "source": "default" + "source": "default", + "plugin": "/usr/local/libexec/plugins/cln-renepay" }, - "experimental-splicing": { + "renepay-debug-payflow": { "set": false, - "source": "default" - }, - "exposesecret-passphrase": { - "value_str": "...", "source": "default", - "plugin": "/root/lightning/plugins/exposesecret" + "plugin": "/usr/local/libexec/plugins/cln-renepay" }, - "fee-base": { - "value_int": 1, - "source": "default" + "xpay-handle-pay": { + "value_bool": false, + "source": "default", + "plugin": "/usr/local/libexec/plugins/cln-xpay", + "dynamic": true }, - "fee-per-satoshi": { - "value_int": 10, - "source": "default" + "xpay-slow-mode": { + "value_bool": false, + "source": "default", + "plugin": "/usr/local/libexec/plugins/cln-xpay", + "dynamic": true }, - "fetchinvoice-noconnect": { - "set": false, + "exposesecret-passphrase": { + "value_str": "...", "source": "default", - "plugin": "/root/lightning/plugins/offers" + "plugin": "/usr/local/libexec/plugins/exposesecret" }, "funder-fund-probability": { "value_int": 100, "source": "default", - "plugin": "/root/lightning/plugins/funder" + "plugin": "/usr/local/libexec/plugins/funder" }, "funder-fuzz-percent": { "value_int": 0, "source": "default", - "plugin": "/root/lightning/plugins/funder" + "plugin": "/usr/local/libexec/plugins/funder" }, "funder-lease-requests-only": { "value_bool": true, "source": "default", - "plugin": "/root/lightning/plugins/funder" + "plugin": "/usr/local/libexec/plugins/funder" }, "funder-max-their-funding": { "value_str": "4294967295sat", "source": "default", - "plugin": "/root/lightning/plugins/funder" + "plugin": "/usr/local/libexec/plugins/funder" }, "funder-min-their-funding": { "value_str": "10000sat", "source": "default", - "plugin": "/root/lightning/plugins/funder" + "plugin": "/usr/local/libexec/plugins/funder" }, "funder-per-channel-max": { "value_str": "4294967295sat", "source": "default", - "plugin": "/root/lightning/plugins/funder" + "plugin": "/usr/local/libexec/plugins/funder" }, "funder-per-channel-min": { "value_str": "10000sat", "source": "default", - "plugin": "/root/lightning/plugins/funder" + "plugin": "/usr/local/libexec/plugins/funder" }, "funder-policy": { "value_str": "fixed", "source": "default", - "plugin": "/root/lightning/plugins/funder" + "plugin": "/usr/local/libexec/plugins/funder" }, "funder-policy-mod": { "value_str": "0", "source": "default", - "plugin": "/root/lightning/plugins/funder" + "plugin": "/usr/local/libexec/plugins/funder" }, "funder-reserve-tank": { "value_str": "0sat", "source": "default", - "plugin": "/root/lightning/plugins/funder" - }, - "funding-confirms": { - "value_int": 1, - "source": "default" - }, - "grpc-host": { - "value_str": "127.0.0.1", - "source": "default", - "plugin": "/root/lightning/plugins/cln-grpc" - }, - "grpc-msg-buffer-size": { - "value_int": 1024, - "source": "default", - "plugin": "/root/lightning/plugins/cln-grpc" - }, - "grpc-port": { - "value_int": 9736, - "source": "cmdline", - "plugin": "/root/lightning/plugins/cln-grpc" - }, - "htlc-maximum-msat": { - "value_msat": 18446744073709552000, - "source": "default" - }, - "htlc-minimum-msat": { - "value_msat": 0, - "source": "default" - }, - "i-promise-to-fix-broken-api-user": { - "values_str": [], - "sources": [] - }, - "ignore-fee-limits": { - "value_bool": false, - "source": "cmdline" - }, - "important-plugin": { - "values_str": [], - "sources": [] - }, - "invoices-onchain-fallback": { - "set": false, - "source": "default" - }, - "lightning-dir": { - "value_str": "/tmp/.lightning/", - "source": "cmdline" - }, - "log-file": { - "values_str": [ - "-", - "/tmp/.lightning/log" - ], - "sources": [ - "cmdline", - "cmdline" - ] - }, - "log-level": { - "value_str": "debug", - "source": "cmdline" - }, - "log-prefix": { - "value_str": "lightningd-2 ", - "source": "cmdline" - }, - "log-timestamps": { - "value_bool": true, - "source": "default" - }, - "mainnet": { - "set": false, - "source": "default" - }, - "max-concurrent-htlcs": { - "value_int": 483, - "source": "default" - }, - "max-dust-htlc-exposure-msat": { - "value_msat": 50000000, - "source": "default" - }, - "min-capacity-sat": { - "value_int": 500000, - "source": "/tmp/.lightning/regtest/config.setconfig:3", - "dynamic": true - }, - "min-emergency-msat": { - "value_msat": 25000000, - "source": "default" - }, - "network": { - "value_str": "regtest", - "source": "cmdline" - }, - "offline": { - "set": false, - "source": "default" - }, - "pid-file": { - "value_str": "/tmp/.lightning/lightningd-regtest.pid", - "source": "default" + "plugin": "/usr/local/libexec/plugins/funder" }, - "plugin": { - "values_str": [], - "sources": [] - }, - "plugin-dir": { - "values_str": [], - "sources": [] - }, - "regtest": { - "set": false, - "source": "default" - }, - "renepay-debug-mcf": { + "dev-invoice-bpath-scid": { "set": false, "source": "default", - "plugin": "/root/lightning/plugins/cln-renepay" + "plugin": "/usr/local/libexec/plugins/offers" }, - "renepay-debug-payflow": { + "fetchinvoice-noconnect": { "set": false, "source": "default", - "plugin": "/root/lightning/plugins/cln-renepay" - }, - "require-confirmed-inputs": { - "value_bool": false, - "source": "default" - }, - "rescan": { - "value_int": 1, - "source": "cmdline" - }, - "rgb": { - "value_str": "022d22", - "source": "default" - }, - "rpc-file": { - "value_str": "lightning-rpc", - "source": "default" + "plugin": "/usr/local/libexec/plugins/offers" }, - "rpc-file-mode": { - "value_str": "0600", - "source": "default" - }, - "signet": { - "set": false, - "source": "default" - }, - "subdaemon": { - "values_str": [], - "sources": [] - }, - "testnet": { - "set": false, - "source": "default" - }, - "testnet4": { + "disable-mpp": { "set": false, - "source": "default" - }, - "watchtime-blocks": { - "value_int": 5, - "source": "cmdline" - }, - "xpay-handle-pay": { - "value_bool": false, - "source": "default", - "plugin": "/root/lightning/plugins/cln-xpay", - "dynamic": true - }, - "xpay-slow-mode": { - "value_bool": false, "source": "default", - "plugin": "/root/lightning/plugins/cln-xpay", - "dynamic": true + "plugin": "/usr/local/libexec/plugins/pay" } } } diff --git a/doc/schemas/listforwards.json b/doc/schemas/listforwards.json index 337cbe86f822..c7025a12cc67 100644 --- a/doc/schemas/listforwards.json +++ b/doc/schemas/listforwards.json @@ -384,8 +384,8 @@ "id": "example:listforwards#1", "method": "listforwards", "params": { - "in_channel": "109x1x1", - "out_channel": "123x1x1", + "in_channel": "110x1x0", + "out_channel": "124x1x1", "status": "settled" } }, @@ -394,32 +394,32 @@ { "created_index": 12, "updated_index": 7, - "in_channel": "109x1x1", + "in_channel": "110x1x0", "in_htlc_id": 19, - "out_channel": "123x1x1", + "out_channel": "124x1x1", "out_htlc_id": 2, "in_msat": 50000501, "out_msat": 50000000, "fee_msat": 501, "status": "settled", "style": "tlv", - "received_time": 1738000000, - "resolved_time": 1738500000 + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 }, { "created_index": 13, "updated_index": 8, - "in_channel": "109x1x1", + "in_channel": "110x1x0", "in_htlc_id": 20, - "out_channel": "123x1x1", + "out_channel": "124x1x1", "out_htlc_id": 3, "in_msat": 50000501, "out_msat": 50000000, "fee_msat": 501, "status": "settled", "style": "tlv", - "received_time": 1738010000, - "resolved_time": 1738510000 + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 } ] } @@ -435,77 +435,171 @@ { "created_index": 1, "updated_index": 1, - "in_channel": "109x1x1", + "in_channel": "110x1x0", "in_htlc_id": 1, - "out_channel": "111x1x1", + "out_channel": "112x1x0", "out_htlc_id": 1, "in_msat": 10001, "out_msat": 10000, "fee_msat": 1, "status": "settled", "style": "tlv", - "received_time": 1738000000, - "resolved_time": 1738500000 + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 }, { "created_index": 2, "updated_index": 2, - "in_channel": "109x1x1", + "in_channel": "110x1x0", "in_htlc_id": 2, - "out_channel": "111x1x1", + "out_channel": "112x1x0", "out_htlc_id": 2, "in_msat": 10001, "out_msat": 10000, "fee_msat": 1, "status": "settled", "style": "tlv", - "received_time": 1738010000, - "resolved_time": 1738510000 + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 }, { "created_index": 3, "updated_index": 3, - "in_channel": "109x1x1", + "in_channel": "110x1x0", "in_htlc_id": 3, - "out_channel": "111x1x1", + "out_channel": "112x1x0", "out_htlc_id": 3, "in_msat": 10000202, "out_msat": 10000101, "fee_msat": 101, "status": "settled", "style": "tlv", - "received_time": 1738020000, - "resolved_time": 1738520000 + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 }, { "created_index": 5, "updated_index": 4, - "in_channel": "109x1x1", + "in_channel": "110x1x0", "in_htlc_id": 5, - "out_channel": "111x1x1", + "out_channel": "112x1x0", "out_htlc_id": 4, "in_msat": 10001, "out_msat": 10000, "fee_msat": 1, "status": "settled", "style": "tlv", - "received_time": 1738030000, - "resolved_time": 1738530000 + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 }, { "created_index": 6, "updated_index": 5, - "in_channel": "109x1x1", + "in_channel": "110x1x0", "in_htlc_id": 6, - "out_channel": "111x1x1", + "out_channel": "112x1x0", "out_htlc_id": 5, "in_msat": 50001, "out_msat": 50000, "fee_msat": 1, "status": "settled", "style": "tlv", - "received_time": 1738040000, - "resolved_time": 1738540000 + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 + }, + { + "created_index": 7, + "updated_index": 6, + "in_channel": "110x1x0", + "in_htlc_id": 7, + "out_channel": "112x1x0", + "out_htlc_id": 7, + "in_msat": 10002, + "out_msat": 10001, + "fee_msat": 1, + "status": "settled", + "style": "tlv", + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 + }, + { + "created_index": 8, + "in_channel": "110x1x0", + "in_htlc_id": 8, + "out_channel": "112x1x0", + "in_msat": 1002, + "status": "local_failed", + "failcode": 16394, + "failreason": "WIRE_UNKNOWN_NEXT_PEER", + "style": "tlv", + "received_time": 1738000000.0 + }, + { + "created_index": 9, + "in_channel": "110x1x0", + "in_htlc_id": 9, + "out_channel": "112x1x0", + "in_msat": 10001, + "status": "local_failed", + "failcode": 16394, + "failreason": "WIRE_UNKNOWN_NEXT_PEER", + "style": "tlv", + "received_time": 1738000000.0 + }, + { + "created_index": 10, + "in_channel": "110x1x0", + "in_htlc_id": 18, + "out_channel": "160x1x1", + "in_msat": 1000000, + "status": "local_failed", + "failcode": 16394, + "failreason": "WIRE_UNKNOWN_NEXT_PEER", + "style": "tlv", + "received_time": 1738000000.0 + }, + { + "created_index": 11, + "in_channel": "110x1x0", + "in_htlc_id": 17, + "out_channel": "124x1x1", + "out_htlc_id": 1, + "in_msat": 4000082, + "out_msat": 4000041, + "fee_msat": 41, + "status": "offered", + "style": "tlv", + "received_time": 1738000000.0 + }, + { + "created_index": 12, + "updated_index": 7, + "in_channel": "110x1x0", + "in_htlc_id": 19, + "out_channel": "124x1x1", + "out_htlc_id": 2, + "in_msat": 50000501, + "out_msat": 50000000, + "fee_msat": 501, + "status": "settled", + "style": "tlv", + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 + }, + { + "created_index": 13, + "updated_index": 8, + "in_channel": "110x1x0", + "in_htlc_id": 20, + "out_channel": "124x1x1", + "out_htlc_id": 3, + "in_msat": 50000501, + "out_msat": 50000000, + "fee_msat": 501, + "status": "settled", + "style": "tlv", + "received_time": 1738000000.0, + "resolved_time": 1738000000.0 } ] } diff --git a/doc/schemas/listfunds.json b/doc/schemas/listfunds.json index d83f491e5fb0..2200c8bb6e87 100644 --- a/doc/schemas/listfunds.json +++ b/doc/schemas/listfunds.json @@ -360,67 +360,118 @@ "response": { "outputs": [ { - "txid": "txid000010000100001000010000100001000010000100001000010000100001", - "output": 2, - "amount_msat": 26000000, - "scriptpubkey": "scriptpubkey01010101010101010101010101010101010101010101010101010101", - "address": "bcrt1p0004040404040404040404040404040404040404040404040404040404", + "txid": "59d7273c7dde3b2786f7325da08a303779ee718443aaa25d03db19c9e909591b", + "output": 6, + "amount_msat": 1000000, + "scriptpubkey": "00146a1845bb0ea1f8efa63f00f325641db7350dcd5b", + "address": "bcrt1qdgvytwcw58uwlf3lqrej2eqaku6smn2mdvkycp", "status": "confirmed", - "blockheight": 160, + "blockheight": 141, "reserved": false }, { - "txid": "txid000020000200002000020000200002000020000200002000020000200002", - "output": 3, - "amount_msat": 27000000, - "scriptpubkey": "scriptpubkey02020202020202020202020202020202020202020202020202020202", - "address": "bcrt1p0004040404040404040404040404040404040404040404040404040404", + "txid": "1c863d8172c0a588a7d34426b7249d4a939f04d4ca4bad6c28d5913ed2dff12a", + "output": 0, + "amount_msat": 949204000, + "scriptpubkey": "5120ec722e1af72c414e9967d22b9809e96127fea27702c78dd7821b1c5aa9f08f59", + "address": "bcrt1pa3ezuxhh93q5axt86g4esz0fvynlagnhqtrcm4uzrvw9420s3avsck2pku", "status": "confirmed", "blockheight": 160, "reserved": false }, { - "txid": "txid000030000300003000030000300003000030000300003000030000300003", - "output": 4, - "amount_msat": 28000000, - "scriptpubkey": "scriptpubkey03030303030303030303030303030303030303030303030303030303", - "address": "bcrt1p0004040404040404040404040404040404040404040404040404040404", + "txid": "8ef1ed98891f7cf81b74c330a68de9fcff802870f91cf04a69c5db02118bc78e", + "output": 0, + "amount_msat": 497105000, + "scriptpubkey": "51205c063fe945e1a1e3a81072584a44d0c838919293953405f8e7ef9552788f94be", + "address": "bcrt1ptsrrl629uxs782qswfvy53xsequfry5nj56qt788a724y7y0jjlqxzv28f", + "status": "unconfirmed", + "reserved": false + }, + { + "txid": "19fec0dedc91354817beacd4155a6303a5ceaad0be36219b3d6e77836c8092a0", + "output": 0, + "amount_msat": 497105000, + "scriptpubkey": "5120370bae2303e8b17792a34ee04ada86a6b2b84fd76a01143babd899c7ed9e8372", + "address": "bcrt1pxu96ugcrazch0y4rfmsy4k5x56etsn7hdgq3gwatmzvu0mv7sdeql5x9qe", "status": "confirmed", - "blockheight": 160, + "blockheight": 159, + "reserved": false + }, + { + "txid": "4fc8702cec5b92e269cd5bf25f90559ee09f96b481e18cf7e2f5aca43394e7b7", + "output": 1, + "amount_msat": 2000000000, + "scriptpubkey": "00149edfbe21c9e3afb797debd0aeb518a9d97793ea8", + "address": "bcrt1qnm0mugwfuwhm0977h59wk5v2nkthj04gcw9vvh", + "status": "confirmed", + "blockheight": 159, + "reserved": false + }, + { + "txid": "d84db03fd012a98de6776fb10ee1c1de23282c33518aa32fdd5a15600f535ace", + "output": 0, + "amount_msat": 2000000000, + "scriptpubkey": "001461ed06c0632af284ec9e192e97758fc04692c829", + "address": "bcrt1qv8ksdsrr9tegfmy7ryhfwav0cprf9jpfqdfr4m", + "status": "confirmed", + "blockheight": 111, + "reserved": false + }, + { + "txid": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6", + "output": 0, + "amount_msat": 486914000, + "scriptpubkey": "512085d72025e78fd08bb61119f0987ab0041f50561ada6e130c645343db8c44c2af", + "address": "bcrt1pshtjqf083lgghds3r8cfs74sqs04q4s6mfhpxrry2dpahrzyc2hslyvm7n", + "status": "confirmed", + "blockheight": 122, + "reserved": false + }, + { + "txid": "6430642958a9aaa5c380bb9ea5048ae920557df4e8c8f959ee745f87f03662ed", + "output": 0, + "amount_msat": 198992853000, + "scriptpubkey": "512052021c61da23b2eda3d5000c6d812d0c9b088c237ed2a510abd94d8c3f7c421d", + "address": "bcrt1p2gppccw6ywewmg74qqxxmqfdpjds3rpr0mf22y9tm9xcc0muggwsea9nkf", + "status": "confirmed", + "blockheight": 137, "reserved": false } ], "channels": [ { - "peer_id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "peer_id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "connected": true, "state": "CHANNELD_NORMAL", - "channel_id": "channelid0120000120000120000120000120000120000120000120000120000", - "short_channel_id": "109x1x1", - "our_amount_msat": 36000000, - "amount_msat": 11000000, - "funding_txid": "txid010010100101001010010100101001010010100101001010010100101001", + "channel_id": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3", + "short_channel_id": "124x1x1", + "our_amount_msat": 899996000, + "amount_msat": 1000000000, + "funding_txid": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69", "funding_output": 1 }, { - "peer_id": "nodeid050505050505050505050505050505050505050505050505050505050505", - "connected": false, - "state": "ONCHAIN", - "channel_id": "channelid1300013000130001300013000130001300013000130001300013000", - "our_amount_msat": 37000000, - "amount_msat": 12000000, - "funding_txid": "txid010020100201002010020100201002010020100201002010020100201002", - "funding_output": 2 + "peer_id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "connected": true, + "state": "CHANNELD_NORMAL", + "channel_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "short_channel_id": "110x1x0", + "our_amount_msat": 609507210, + "amount_msat": 1000000000, + "funding_txid": "63f74346eda6b8620ec24f86e2f8982ef3dade95f8efd00b372a75b2893b6f0d", + "funding_output": 0 }, { - "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "peer_id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "connected": false, - "state": "ONCHAIN", - "channel_id": "channelid1100011000110001100011000110001100011000110001100011000", - "our_amount_msat": 38000000, - "amount_msat": 13000000, - "funding_txid": "txid010030100301003010030100301003010030100301003010030100301003", - "funding_output": 3 + "state": "CLOSINGD_COMPLETE", + "channel_id": "f4e1de801de57374d5737da622611e3a1ad9f16d5df9c30fceecc11ce732eeeb", + "short_channel_id": "160x1x1", + "our_amount_msat": 500000000, + "amount_msat": 1000000000, + "funding_txid": "1c863d8172c0a588a7d34426b7249d4a939f04d4ca4bad6c28d5913ed2dff12a", + "funding_output": 1 } ] } diff --git a/doc/schemas/listhtlcs.json b/doc/schemas/listhtlcs.json index 6507dc4c7341..0e25d38796f3 100644 --- a/doc/schemas/listhtlcs.json +++ b/doc/schemas/listhtlcs.json @@ -171,7 +171,7 @@ "id": "example:listhtlcs#1", "method": "listhtlcs", "params": [ - "109x1x1" + "110x1x0" ] }, "response": { @@ -179,56 +179,254 @@ { "created_index": 1, "updated_index": 9, - "short_channel_id": "109x1x1", + "short_channel_id": "110x1x0", "id": 0, - "expiry": 126, + "expiry": 127, "direction": "out", "amount_msat": 500000000, - "payment_hash": "paymenthashdelpay10101010101010101010101010101010101010101010101", + "payment_hash": "342cbb1cb564e8f32eb64fe8c254abf5ec5f6b87a0f8de7909caf8e658f3bd2a", "state": "RCVD_REMOVE_ACK_REVOCATION" }, { "created_index": 2, "updated_index": 18, - "short_channel_id": "109x1x1", + "short_channel_id": "110x1x0", "id": 1, - "expiry": 135, + "expiry": 137, "direction": "out", "amount_msat": 10001, - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", "state": "RCVD_REMOVE_ACK_REVOCATION" }, { "created_index": 3, "updated_index": 27, - "short_channel_id": "109x1x1", + "short_channel_id": "110x1x0", "id": 2, - "expiry": 149, + "expiry": 150, "direction": "out", "amount_msat": 10001, - "payment_hash": "paymenthashkey01k101k101k101k101k101k101k101k101k101k101k101k101", + "payment_hash": "097dcfa3b0bc58d499908855dae7d442854a02d4f2ffcc625f9385ed74f3256e", "state": "RCVD_REMOVE_ACK_REVOCATION" }, { "created_index": 4, "updated_index": 36, - "short_channel_id": "109x1x1", + "short_channel_id": "110x1x0", "id": 3, - "expiry": 155, + "expiry": 156, "direction": "out", "amount_msat": 10000202, - "payment_hash": "paymenthashkey02k201k201k201k201k201k201k201k201k201k201k201k201", + "payment_hash": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584", "state": "RCVD_REMOVE_ACK_REVOCATION" }, { "created_index": 5, "updated_index": 44, - "short_channel_id": "109x1x1", + "short_channel_id": "110x1x0", "id": 4, - "expiry": 152, + "expiry": 153, "direction": "out", "amount_msat": 10001, - "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "payment_hash": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 6, + "updated_index": 53, + "short_channel_id": "110x1x0", + "id": 5, + "expiry": 150, + "direction": "out", + "amount_msat": 10001, + "payment_hash": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 7, + "updated_index": 62, + "short_channel_id": "110x1x0", + "id": 6, + "expiry": 133, + "direction": "out", + "amount_msat": 50001, + "payment_hash": "ab3a5a971aa3b21494f7ce646f077232c10c9917c33375935c1aebfa571fa1a1", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 8, + "updated_index": 71, + "short_channel_id": "110x1x0", + "id": 7, + "expiry": 139, + "direction": "out", + "amount_msat": 10002, + "payment_hash": "1bb513fb2fbde40592243877d9f404ba3668275e2eeacd9c7264f34f04d37fd1", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 9, + "updated_index": 79, + "short_channel_id": "110x1x0", + "id": 8, + "expiry": 143, + "direction": "out", + "amount_msat": 1002, + "payment_hash": "47c148c1746366e4c2c7496621c22002bc2711b4d9c52cbb9c7b1fdca59c8579", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 10, + "updated_index": 87, + "short_channel_id": "110x1x0", + "id": 9, + "expiry": 138, + "direction": "out", + "amount_msat": 10001, + "payment_hash": "53a72d006c295bac2f2f81e6b82dd67193555a1859f7c90f84678b57ce6d10e2", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 11, + "updated_index": 96, + "short_channel_id": "110x1x0", + "id": 0, + "expiry": 137, + "direction": "in", + "amount_msat": 1000000, + "payment_hash": "cedc7bf0a9109bd3cd86c5a0c90faa812b8a0ca3d65671c8b4001aae2647349f", + "state": "SENT_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 12, + "updated_index": 104, + "short_channel_id": "110x1x0", + "id": 10, + "expiry": 145, + "direction": "out", + "amount_msat": 1000, + "payment_hash": "ff498c3300881ea7a3c04193e43f123444c644662008108c23229da3511bedd1", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 13, + "updated_index": 113, + "short_channel_id": "110x1x0", + "id": 11, + "expiry": 269, + "direction": "out", + "amount_msat": 400000, + "payment_hash": "e0b5658ef8e23cab6546ea5f7794a8c760483abf3613b34f401df4128944afae", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 14, + "updated_index": 122, + "short_channel_id": "110x1x0", + "id": 12, + "expiry": 137, + "direction": "out", + "amount_msat": 2000, + "payment_hash": "2a25861f15614825bdfd154d422342f159446f0d54dc24e8385d31520023f8cb", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 15, + "updated_index": 131, + "short_channel_id": "110x1x0", + "id": 13, + "expiry": 137, + "direction": "out", + "amount_msat": 3000, + "payment_hash": "36a32c9d7ee7baf5c15d1b9b27d085dce9c697fb427d0ce68342acce00e1586f", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 16, + "updated_index": 140, + "short_channel_id": "110x1x0", + "id": 14, + "expiry": 137, + "direction": "out", + "amount_msat": 5000, + "payment_hash": "8e3ea1fb26e3e5e8627064e68e424713e3393752457ffe19a565fea54f6307d6", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 17, + "updated_index": 149, + "short_channel_id": "110x1x0", + "id": 15, + "expiry": 137, + "direction": "out", + "amount_msat": 4000, + "payment_hash": "09963074ab0fc38044f890c763c658e7ea4f8b31ccbcfc6a0191163f5cdc4360", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 18, + "updated_index": 158, + "short_channel_id": "110x1x0", + "id": 16, + "expiry": 137, + "direction": "out", + "amount_msat": 1000, + "payment_hash": "9a33e433faddc3371f6a56a34146c82629d567520ddaf28244bd9f196288af71", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 19, + "updated_index": 165, + "short_channel_id": "110x1x0", + "id": 17, + "expiry": 182, + "direction": "out", + "amount_msat": 4000082, + "payment_hash": "2b924194d169a96d9cc35b66ae912507e18ace9ef679fcb5324636ff73be410a", + "state": "SENT_ADD_ACK_REVOCATION" + }, + { + "created_index": 20, + "updated_index": 170, + "short_channel_id": "110x1x0", + "id": 18, + "expiry": 166, + "direction": "out", + "amount_msat": 1000000, + "payment_hash": "2b924194d169a96d9cc35b66ae912507e18ace9ef679fcb5324636ff73be410a", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 21, + "updated_index": 179, + "short_channel_id": "110x1x0", + "id": 19, + "expiry": 172, + "direction": "out", + "amount_msat": 50000501, + "payment_hash": "1d3a502d4b52d3c22af20f93605cadec2194da2e077b9fbbd15fa379c6bfbbdd", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 22, + "updated_index": 188, + "short_channel_id": "110x1x0", + "id": 20, + "expiry": 172, + "direction": "out", + "amount_msat": 50000501, + "payment_hash": "39a88ddc69c973a791043a877a415eda840888849a5d7175c9666104513f9235", + "state": "RCVD_REMOVE_ACK_REVOCATION" + }, + { + "created_index": 23, + "updated_index": 196, + "short_channel_id": "110x1x0", + "id": 21, + "expiry": 172, + "direction": "out", + "amount_msat": 50000501, + "payment_hash": "287476fe90c160d09bf95156469dc3cfc82e366c4676c9b774f26051bd465a96", "state": "RCVD_REMOVE_ACK_REVOCATION" } ] @@ -249,12 +447,12 @@ { "created_index": 4, "updated_index": 36, - "short_channel_id": "109x1x1", + "short_channel_id": "110x1x0", "id": 3, - "expiry": 155, + "expiry": 156, "direction": "out", "amount_msat": 10000202, - "payment_hash": "paymenthashkey02k201k201k201k201k201k201k201k201k201k201k201k201", + "payment_hash": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584", "state": "RCVD_REMOVE_ACK_REVOCATION" } ] diff --git a/doc/schemas/listinvoicerequests.json b/doc/schemas/listinvoicerequests.json index f3bdaf9dde4d..cce3572342a1 100644 --- a/doc/schemas/listinvoicerequests.json +++ b/doc/schemas/listinvoicerequests.json @@ -105,16 +105,16 @@ "id": "example:listinvoicerequests#1", "method": "listinvoicerequests", "params": [ - "invreqid03030303030303030303030303030303030303030303030303030303" + "c5b8ebc06bdc246d7b852ce5637be459d3c053a5b3f8f68854f97af7371c9a50" ] }, "response": { "invoicerequests": [ { - "invreq_id": "invreqid02020202020202020202020202020202020202020202020202020202", + "invreq_id": "c5b8ebc06bdc246d7b852ce5637be459d3c053a5b3f8f68854f97af7371c9a50", "active": false, "single_use": true, - "bolt12": "lno1qgsq000bolt240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000", + "bolt12": "lnr1qqg99gqg2990zl3j22sqs52279lryzsk2fjhzat9wd6xjmn8ypnx7u3qd9h8vmmfvdj3yyrrd35kw6r5de5kueeqwd6x7un92qsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzr6jqwvfdqzcyypz6g3kyz34nfrl7lm6c3rushzxey3a55ecjgs6qp2vz8q78j336k0sgr76j2yl0lrljzljjdz8ztcpryunwgfk4hzz3sle3mhaw8v2gc4dn9map7v6dlpya98jy2mcrwe27qcsywlfqp6dhh30l54sj0e8tqsk", "used": false } ] @@ -129,18 +129,18 @@ "response": { "invoicerequests": [ { - "invreq_id": "invreqid02020202020202020202020202020202020202020202020202020202", + "invreq_id": "22c3d45d0a9640a827ed1fefb9a07c947e38fa4c086f1f16d94882848e264868", "active": false, "single_use": true, - "bolt12": "lno1qgsq000bolt240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000240002400024000", - "used": false + "bolt12": "lnr1qqg99gqg2990zl3322sqs52279lrzzst2d5k6urvv5s8getnw3gzqp3zderpzxstt8927ynqg044h0egcd8n5h3n9g0u0v4h8ncc3yg02gps7sjqtqssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e7pqfylfzzhcux84v2552lt7p2ekunuamtsdgyk34a86m4zklkdjjdzt757t4sp0m8cp9tdj6hfe67mcuwl3q7zr4sr4z4gn2fvksykkn5g", + "used": true }, { - "invreq_id": "invreqid01010101010101010101010101010101010101010101010101010101", + "invreq_id": "c5b8ebc06bdc246d7b852ce5637be459d3c053a5b3f8f68854f97af7371c9a50", "active": false, "single_use": true, - "bolt12": "lno1qgsq000bolt210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000", - "used": true + "bolt12": "lnr1qqg99gqg2990zl3j22sqs52279lryzsk2fjhzat9wd6xjmn8ypnx7u3qd9h8vmmfvdj3yyrrd35kw6r5de5kueeqwd6x7un92qsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzr6jqwvfdqzcyypz6g3kyz34nfrl7lm6c3rushzxey3a55ecjgs6qp2vz8q78j336k0sgr76j2yl0lrljzljjdz8ztcpryunwgfk4hzz3sle3mhaw8v2gc4dn9map7v6dlpya98jy2mcrwe27qcsywlfqp6dhh30l54sj0e8tqsk", + "used": false } ] } diff --git a/doc/schemas/listinvoices.json b/doc/schemas/listinvoices.json index c90a72ce79c3..9eb3876ff7a8 100644 --- a/doc/schemas/listinvoices.json +++ b/doc/schemas/listinvoices.json @@ -316,15 +316,15 @@ "invoices": [ { "label": "lbl_l21", - "bolt11": "lnbcrt100n1pnt2bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000", - "payment_hash": "paymenthashinvl0210021002100210021002100210021002100210021002100", + "bolt11": "lnbcrt1pne035qsp5j7czxfpnquxg9vcw9crqh87raxz0glv8n6gx88jwdsp28pmfk68qpp5uz6ktrhcug72ke2xaf0h099gcasysw4lxcfmxn6qrh6p9z2y47hqdqcdserzgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqn7ge40jwkslz0j0vhfzy743lathy2sqy2dfyyahalxszs979d9s5v89ten2zcrna3xlxhkerk7p9k7a6u5fdddx5dzzas4ye2yp6desq3zwkg2", + "payment_hash": "e0b5658ef8e23cab6546ea5f7794a8c760483abf3613b34f401df4128944afae", "status": "paid", "pay_index": 4, "amount_received_msat": 400000, - "paid_at": 1738500000, - "payment_preimage": "paymentpreimager010101010101010101010101010101010101010101010101", + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c1908377744ca985c1908377744ca985c1908377744ca985c19", "description": "l21 description", - "expires_at": 1739000000, + "expires_at": 1738604800, "created_index": 2, "updated_index": 4 } @@ -341,65 +341,209 @@ "invoices": [ { "label": "lbl balance l1 to l2", - "bolt11": "lnbcrt222n1pnt3005720bolt114000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "payment_hash": "paymenthashdelpay10101010101010101010101010101010101010101010101", + "bolt11": "lnbcrt5m1pne035qsp5y09we8jhy4ug66c945kzkqyqzrhhqsap22q07wnawlgntwa5ca2spp5xsktk894vn50xt4kfl5vy49t7hk976u85rudu7gfetuwvk8nh54qdpcv3jhxcmjd9c8g6t0dcs8xetwvss8xmmdv5s8xct5wvsxcvfqw3hjqmpjxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqvsru69ylhpkda6980sl996q2fmld2zszepv79zf747la6zzt8mf8p0qw80w6j8d5evc72fls4d99sza23nnm6pahjqrs8kv3apdttjcq2mm2xw", + "payment_hash": "342cbb1cb564e8f32eb64fe8c254abf5ec5f6b87a0f8de7909caf8e658f3bd2a", "amount_msat": 500000000, "status": "paid", "pay_index": 1, "amount_received_msat": 500000000, - "paid_at": 1738500000, - "payment_preimage": "paymentpreimgdp1010101010101010101010101010101010101010101010101", + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c1808377744ca985c1808377744ca985c1808377744ca985c18", "description": "description send some sats l1 to l2", - "expires_at": 1739000000, + "expires_at": 1738604800, "created_index": 1, "updated_index": 1 }, { "label": "lbl_l21", - "bolt11": "lnbcrt100n1pnt2bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000", - "payment_hash": "paymenthashinvl0210021002100210021002100210021002100210021002100", + "bolt11": "lnbcrt1pne035qsp5j7czxfpnquxg9vcw9crqh87raxz0glv8n6gx88jwdsp28pmfk68qpp5uz6ktrhcug72ke2xaf0h099gcasysw4lxcfmxn6qrh6p9z2y47hqdqcdserzgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqn7ge40jwkslz0j0vhfzy743lathy2sqy2dfyyahalxszs979d9s5v89ten2zcrna3xlxhkerk7p9k7a6u5fdddx5dzzas4ye2yp6desq3zwkg2", + "payment_hash": "e0b5658ef8e23cab6546ea5f7794a8c760483abf3613b34f401df4128944afae", "status": "paid", "pay_index": 4, "amount_received_msat": 400000, - "paid_at": 1738510000, - "payment_preimage": "paymentpreimager010101010101010101010101010101010101010101010101", + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c1908377744ca985c1908377744ca985c1908377744ca985c19", "description": "l21 description", - "expires_at": 1739010000, + "expires_at": 1738604800, "created_index": 2, "updated_index": 4 }, { "label": "lbl_l22", - "bolt11": "lnbcrt100n1pnt2bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000bolt11invl020200000000", - "payment_hash": "paymenthashinvl0220022002200220022002200220022002200220022002200", + "bolt11": "lnbcrt2u1pne035qsp5u7glcpdagz8xcw9nw4t7xjhad5fjk9vu9h6s4da9tue6cj6x772spp52jyd84j7psgd4u2tp627hsrf9ntzptcjl3ywn03v4fdsehw4s2ysdqcdserygryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqdyykau6tf258sy2g5q94ma8jqthrs7zszaj2y4wj23dznnz5rcvxvxvkkv76uj076mz5std62p3gf2kvycq29t69345667cvs0pmvzsq4lawhd", + "payment_hash": "5488d3d65e0c10daf14b0e95ebc0692cd620af12fc48e9be2caa5b0cddd58289", "amount_msat": 200000, "status": "unpaid", "description": "l22 description", - "expires_at": 1739020000, - "created_index": 3, - "paid_at": 1738520000 + "expires_at": 1738604800, + "created_index": 3 }, { "label": "label inv_l24", - "bolt11": "lnbcrt100n1pnt2bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000", - "payment_hash": "paymenthashinvl0240024002400240024002400240024002400240024002400", + "bolt11": "lnbcrt1230n1pne035qsp5s2tkvc25q0p9qu5ghf6pal04thl4kl9q9jggx0fetq5tx7szc0gspp5mmpxzxv7tkpxjhvwyztwky6qlsw3umd87h7x7dvn0hck5t0lc84sdqlv3jhxcmjd9c8g6t0dcsxjmnktakrydqcqp99qxpqysgqa9q3g64xjfq3wqpyxn378zzs3grvlvhmpvtcedvzf0rq0ycu4xgr0ly93ut0wjdyfgfaldteev97qqt6q539qy7ktng4ylfj85kzmkqp5lsp6u", + "payment_hash": "dec261199e5d82695d8e2096eb1340fc1d1e6da7f5fc6f35937df16a2dffc1eb", "amount_msat": 123000, "status": "unpaid", "description": "description inv_l24", - "expires_at": 1739030000, - "created_index": 4, - "paid_at": 1738530000 + "expires_at": 1738003600, + "created_index": 4 }, { "label": "label inv_l25", - "bolt11": "lnbcrt100n1pnt2bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000", - "payment_hash": "paymenthashinvl0250025002500250025002500250025002500250025002500", + "bolt11": "lnbcrt1240n1pne035qsp590nuq4ek3zp48qm5rve22ye75jc6y564fh8qjrlr0j8at7egmtuqpp5ms3uy3duktelvxj02h6nrdzhge83uu5xumyrmxwu4akpezzv80hsdqlv3jhxcmjd9c8g6t0dcsxjmnktakrydgcqp99qxpqysgqad46gpve6njtqr9zsvrz8a56ndz953s88kedwuzge3d4tgv8gfk8u8al36nwmnchrkr7wwy7vc04fdvnewhusxcp457jucl5a5lt4dsqzr7sj8", + "payment_hash": "dc23c245bcb2f3f61a4f55f531b457464f1e7286e6c83d99dcaf6c1c884c3bef", "amount_msat": 124000, "status": "unpaid", "description": "description inv_l25", - "expires_at": 1739040000, - "created_index": 5, - "paid_at": 1738540000 + "expires_at": 1738003600, + "created_index": 5 + }, + { + "label": "label inv_l26", + "bolt11": "lnbcrt1250n1pne035qsp57thr33aj04aek8738nm42nntaydcaw4zswr047ja0gxy5sea8egqpp58veqg20enh8z5w8avz0jyznsfgnxdgs9km2mlugn62nvypjhwj5sdqlv3jhxcmjd9c8g6t0dcsxjmnktakrydscqp99qxpqysgq9569pf2lk3desk0xz8l90eeanhkz2j4e4yk8wlzwsy8efmm07mdn5n62ymlymt73yvxwyc4zuj45vwka2ta0rmntwxu4m2qp46h2yfcq5muart", + "payment_hash": "3b320429f99dce2a38fd609f220a704a2666a205b6d5bff113d2a6c2065774a9", + "amount_msat": 125000, + "status": "unpaid", + "description": "description inv_l26", + "expires_at": 1738003600, + "created_index": 6 + }, + { + "label": "lbl_l13", + "bolt11": "lnbcrt1u1pne035qsp5j9w8t9p2y6an5se63n3vkpp8c20vdsthtn78sv5t2lmt57l742wqpp5wtxkappzcsrlkmgfs6g0zyct0hkhashh7hsaxz7e65slq9fkx7fsdqcdscnxgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqdcqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgq2dmxu8vh2mmklw3vrq0dy4a69v7ga4mauty4cswwga4j4ahx797sjtzpj0qty3qkxcvw3nndx8f9v9230y4sjyf298m6uwz8thz9rpcqz05u35", + "payment_hash": "72cd6e8422c407fb6d098690f1130b7ded7ec2f7f5e1d30bd9d521f015363793", + "amount_msat": 100000, + "status": "unpaid", + "description": "l13 description", + "expires_at": 1738604800, + "created_index": 7 + }, + { + "label": "test_injectpaymentonion1", + "bolt11": "lnbcrt10n1pne035qsp5qwyv8rs63ramlntxnjyqfyl3usj9fcvw2wcekvssera3c674p2aspp5layccvcq3q020g7qgxf7g0cjx3zvv3rxyqypprpry2w6x5gmahgsdp6w3jhxapqd9hx5etrw3cxz7tdv4h8gmmwd9hkuvfqv3jhxcmjd9c8g6t0dcxqyjw5qcqp99qxpqysgqanlwwp0fnysrz8wgx44kdupzfv4l9x0l8daxa9zyqcwwx4de5rv4s3udrmgc6w03dtn0h3kcvwhv602fpryz06wrnk9k5d5z6qtx4mqqyhqgf2", + "payment_hash": "ff498c3300881ea7a3c04193e43f123444c644662008108c23229da3511bedd1", + "amount_msat": 1000, + "status": "paid", + "pay_index": 2, + "amount_received_msat": 1000, + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c1e08377744ca985c1e08377744ca985c1e08377744ca985c1e", + "description": "test injectpaymentonion1 description", + "expires_at": 1738604800, + "created_index": 8, + "updated_index": 2 + }, + { + "label": "lbl_l23", + "bolt11": "lnbcrt1pne035qsp5hu0s83c7qg77lgtagcr58sf07fvrqf27j67s2ptguw9wk8ruexfqpp50ge88lv20ge4a9ny7xc7rg8p6vqvnuuzwllkk2zng6txu7sfz3cqdqcdserxgryv4ekxunfwp6xjmmwxqyjw5qcqp99qxpqysgqrwjd83fygx3zcnupx0ftnpewajss6n4vpsugju00w8hu5lu0neujqhgw8jygwmawz8jq8pp2xu6r78f3m9yld6ky7539x5g5ahvtmqqqmgfjaa", + "payment_hash": "7a3273fd8a7a335e9664f1b1e1a0e1d300c9f38277ff6b285346966e7a091470", + "status": "paid", + "pay_index": 3, + "amount_received_msat": 9900, + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c1f08377744ca985c1f08377744ca985c1f08377744ca985c1f", + "description": "l23 description", + "expires_at": 1738604800, + "created_index": 9, + "updated_index": 3 + }, + { + "label": "dca9774ba2925b48c42eb12e599c09389d9d80d44445c4d0c944556c7228746e-03fffc5282760e7e56157aedd5df38ca6d4ea2973e2e7cfcda243ac89dd7cd6461-0", + "bolt12": "lni1qqgvq8khp6uam2tfcq0dwr4emk5kjq3qqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy8ssq38zq9q53nfwd5zqumpd3jjz93pqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4j5pqqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy84gqzcyyplllzjsfmquljkz4awm4wl8r9x6n4zjulzul8umgjr4jya6lxkgc2ez32xsctwddejqen0wgs8g6r9ypnxjumgyxsfsq3dygmzpg6e53ll0aavg37gt3rvjg762vufygdqq4xprs0regcatyp6swcycfh92s4s0p3wl6j0xj7pa7egpvvw2gq9z4sc376mekc9vacpqvzl0njg9k5sfn0pxlx4au5s95yhxczx2fah5zzmnfg9kvzdle5avqpj4l72lall4s8xrfvpu9f4xapfxl08j964jswavxw0exauk50zhw2l5alvyfucu82fx6qlszy7gett90z85gwqqqqqqqqqqqqqqqzsqqqqqqqqqqqqr5jt9hav2gqqqqqq5szx097xsz5zphg5v7yg8wedzgpk7h6dzc7vlw9h2wfa6dmzrey9m6fkeh89uz684gpzwy9wqvpqqq9syypz6g3kyz34nfrl7lm6c3rushzxey3a55ecjgs6qp2vz8q78j336k0sgzsvy6lf3le6zmjl4254r4xxf0urw8dky5d2dwtwjzt8ec7hg6jh88kx88fru0fhvxfjkje7ccg6qg5zv7dm64zxttg7epxx4yyw90c3", + "payment_hash": "dd14678883bb2d12036f5f4d163ccfb8b75393dd37621e485de936cdce5e0b47", + "amount_msat": 10000, + "status": "unpaid", + "description": "Fish sale!", + "expires_at": 1738007200, + "local_offer_id": "dca9774ba2925b48c42eb12e599c09389d9d80d44445c4d0c944556c7228746e", + "invreq_payer_note": "Thanks for the fish!", + "created_index": 10 + }, + { + "label": "f901018768e13ea2da95f437749e24d22d47b2a6ea3030ef66ae0281df49d94b-02a95c517b37d4fe9046a9b2ac79d125d1feb169fc81f906af620fb3c35803c3ee-0", + "bolt12": "lni1qqgvq8khp6uam2ttcq0dwr4emk5kkq3qqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy8ssqc0gfqq5pjrdanxvet9zsqs593pqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4j5pqqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy84yqc7sjq9gqzkqyp9sggz49w9z7eh6nlfq34fk2k8n5f968ltz60us8usdtmzp7euxkqrc0h2pxqz953rvg9rtxj8lalh43z8epwydjfrmffn3y3p5qz5cywpu09rr4vs92azp4mahnnht95k3j5c8gegy3003d45pkz0gawdj82vt7eqvpk8qypn2rsgaytxvr0nnhkwhjgeq5u2vavm8hm6muxlpl7pe57v99fwm3qqxt472dkvvw27qy6992kvqc5ztgfv20w3uy5swlraheles4havnkg7nafrqr0ej8m4gakh9n338xa86784w3pcqqqqqqqqqqqqqqq2qqqqqqqqqqqqqwjfvkl43fqqqqqqzjqgeuhc6q2sg94wlwt9m7hlq7gljm764vv7dureaqxklvgmjzlq9hxe8jxlaa4064qx85yszhqxqsqqzczzq3dygmzpg6e53ll0aavg37gt3rvjg762vufygdqq4xprs0regcat8cyq8h97cpp3rznnvtvsmu0lzvfgu3c39z7t5m4f9t4w62kt0zqy4yxajhdrqh0g6th0rfhxk583zxllzukn4h3426dxp005n8mpwc6pl3s", + "payment_hash": "b577dcb2efd7f83c8fcb7ed558cf3783cf406b7d88dc85f016e6c9e46ff7b57e", + "amount_msat": 2000000, + "status": "unpaid", + "description": "Coffee", + "expires_at": 1738007200, + "local_offer_id": "f901018768e13ea2da95f437749e24d22d47b2a6ea3030ef66ae0281df49d94b", + "created_index": 11 + }, + { + "label": "inv1", + "bolt11": "lnbcrt10n1pne035qsp507am6rmsdfe5vsutmpt77ldp5r9k9pkreya4zuxquatt3vy3s5zqpp5nge7gvl6mhpnw8m22635z3kgyc5a2e6jphd09qjyhk03jc5g4acsdq8d9h8vvgxqyjw5qcqp99qxpqysgq6l4n2kmhhu3y78cmhwn8davtxlc9cd050hldsdk55p30nxav2xcsv0x5u8ccznpcq6akj5c2u7fnceuzg5rvnjcq4sfgc4n0ukklc7sq2e0gtf", + "payment_hash": "9a33e433faddc3371f6a56a34146c82629d567520ddaf28244bd9f196288af71", + "amount_msat": 1000, + "status": "paid", + "pay_index": 9, + "amount_received_msat": 1000, + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c2008377744ca985c2008377744ca985c2008377744ca985c20", + "description": "inv1", + "expires_at": 1738604800, + "created_index": 12, + "updated_index": 9 + }, + { + "label": "inv2", + "bolt11": "lnbcrt20n1pne035qsp5793kaek9ahcmxn00ttvkmrhafa5v33wtju4dz5lvyjr0pwwgdd2qpp59gjcv8c4v9yzt00az4x5yg6z79v5gmcd2nwzf6pct5c4yqprlr9sdq8d9h8vvsxqyjw5qcqp99qxpqysgq7ygtu605e0yx749rczhlqaw4crl746rmzc3nkpxn5vrey34m2uxx0658c3e85gvvdcp8r5nlfdnxspl9tlj5xhckrx5vszxxa4zneggp8dynay", + "payment_hash": "2a25861f15614825bdfd154d422342f159446f0d54dc24e8385d31520023f8cb", + "amount_msat": 2000, + "status": "paid", + "pay_index": 5, + "amount_received_msat": 2000, + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c2108377744ca985c2108377744ca985c2108377744ca985c21", + "description": "inv2", + "expires_at": 1738604800, + "created_index": 13, + "updated_index": 5 + }, + { + "label": "inv3", + "bolt11": "lnbcrt30n1pne035qsp588xrpk37hul6xfyr8u6lkyggh0mkvfzhyex8wwts7dpckxt2j2yspp5x63je8t7u7a0ts2arwdj05y9mn5ud9lmgf7see5rg2kvuq8ptphsdq8d9h8vvcxqyjw5qcqp99qxpqysgqw97pk464fhkxp6umgtzhh3njznhnw06cwun58szk06v7a2wvvppz6kg95ufarq443nrqgue6u3s59up4tqkmm943pfyp3hqutx6vgugqgd8jsu", + "payment_hash": "36a32c9d7ee7baf5c15d1b9b27d085dce9c697fb427d0ce68342acce00e1586f", + "amount_msat": 3000, + "status": "paid", + "pay_index": 6, + "amount_received_msat": 3000, + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c2208377744ca985c2208377744ca985c2208377744ca985c22", + "description": "inv3", + "expires_at": 1738604800, + "created_index": 14, + "updated_index": 6 + }, + { + "label": "inv4", + "bolt11": "lnbcrt40n1pne035qsp5q4tjztd7kdgg22eewphyfcf3ew9ag6d53nsm3yfu8280ygsxnp3qpp5pxtrqa9tplpcq38cjrrk83jcul4ylze3ej70c6spjytr7hxugdsqdq8d9h8vdqxqyjw5qcqp99qxpqysgq0g9jk5lpfjyg6ryulnhav6qsfmua9uajgkpa8cl4k9mrds0wdavqd8sg26us9gr93uvnz8s9znmyk2g3sytgqgfl6ych0re7sujky3sq78nj5l", + "payment_hash": "09963074ab0fc38044f890c763c658e7ea4f8b31ccbcfc6a0191163f5cdc4360", + "amount_msat": 4000, + "status": "paid", + "pay_index": 8, + "amount_received_msat": 4000, + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c2308377744ca985c2308377744ca985c2308377744ca985c23", + "description": "inv4", + "expires_at": 1738604800, + "created_index": 15, + "updated_index": 8 + }, + { + "label": "inv5", + "bolt11": "lnbcrt50n1pne035qsp59qq7k6yprpf2hw49aqqx6tcv4dhldr4jh8r45n8vk9deyff2q55spp53cl2r7exu0j7scnsvnngusj8z03njd6jg4lluxd9vhl22nmrqltqdq8d9h8vdgxqyjw5qcqp99qxpqysgqcrnpc3ms8p3nqzyvfp5y0l78nlgm3lexm0v5xty0yd9fudk5mk8ydzvkfuxuef74cytlajjj6ykjsannfdapna7xudpf4xwtauhvcrqqxkwwsq", + "payment_hash": "8e3ea1fb26e3e5e8627064e68e424713e3393752457ffe19a565fea54f6307d6", + "amount_msat": 5000, + "status": "paid", + "pay_index": 7, + "amount_received_msat": 5000, + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c2408377744ca985c2408377744ca985c2408377744ca985c24", + "description": "inv5", + "expires_at": 1738604800, + "created_index": 16, + "updated_index": 7 } ] } diff --git a/doc/schemas/listnodes.json b/doc/schemas/listnodes.json index f62310ffe26b..702fd7c819d8 100644 --- a/doc/schemas/listnodes.json +++ b/doc/schemas/listnodes.json @@ -270,14 +270,14 @@ "id": "example:listnodes#1", "method": "listnodes", "params": { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303" + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d" } }, "response": { "nodes": [ { - "nodeid": "nodeid030303030303030303030303030303030303030303030303030303030303", - "alias": "HOPPINGFIRE", + "nodeid": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "alias": "HOPPINGFIRE-v25.12", "color": "035d2b", "last_timestamp": 1738000000, "features": "8898882a8a59a1", @@ -295,34 +295,34 @@ "response": { "nodes": [ { - "nodeid": "nodeid020202020202020202020202020202020202020202020202020202020202", - "alias": "SILENTARTIST", + "nodeid": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "alias": "SILENTARTIST-v25.12", "color": "022d22", "last_timestamp": 1738000000, "features": "8898882a8a59a1", "addresses": [] }, { - "nodeid": "nodeid010101010101010101010101010101010101010101010101010101010101", - "alias": "JUNIORBEAM", + "nodeid": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "alias": "JUNIORBEAM-v25.12", "color": "0266e4", - "last_timestamp": 1738010000, + "last_timestamp": 1738000000, "features": "8898882a8a59a1", "addresses": [] }, { - "nodeid": "nodeid030303030303030303030303030303030303030303030303030303030303", - "alias": "HOPPINGFIRE", + "nodeid": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "alias": "HOPPINGFIRE-v25.12", "color": "035d2b", - "last_timestamp": 1738020000, + "last_timestamp": 1738000000, "features": "8898882a8a59a1", "addresses": [] }, { - "nodeid": "nodeid040404040404040404040404040404040404040404040404040404040404", - "alias": "JUNIORFELONY", + "nodeid": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "alias": "JUNIORFELONY-v25.12", "color": "0382ce", - "last_timestamp": 1738030000, + "last_timestamp": 1738000000, "features": "8898882a8a59a1", "addresses": [] } diff --git a/doc/schemas/listoffers.json b/doc/schemas/listoffers.json index 4da3991a146d..6ab90a44edc5 100644 --- a/doc/schemas/listoffers.json +++ b/doc/schemas/listoffers.json @@ -109,24 +109,24 @@ "response": { "offers": [ { - "offer_id": "offeridl21000002100000210000021000002100000210000021000002100000", + "offer_id": "b791f88cebf775853112c30828e116487f4d6c252d669372532b468bc7de8a24", "active": true, "single_use": false, - "bolt12": "lno1qgsq000bolt210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000", + "bolt12": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqv0gfqq2zp8kven9wgs8gmeqg35hxctzd3j3vggz953rvg9rtxj8lalh43z8epwydjfrmffn3y3p5qz5cywpu09rr4vs", "used": false }, { - "offer_id": "offeridl22000002200000220000022000002200000220000022000002200000", + "offer_id": "dca9774ba2925b48c42eb12e599c09389d9d80d44445c4d0c944556c7228746e", "active": true, "single_use": false, - "bolt12": "lno1qgsq000bolt220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000", + "bolt12": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqgn3qzs2ge5hx6pqwdskcefpzcssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e", "used": false }, { - "offer_id": "offeridl23000002300000230000023000002300000230000023000002300000", + "offer_id": "f901018768e13ea2da95f437749e24d22d47b2a6ea3030ef66ae0281df49d94b", "active": true, "single_use": false, - "bolt12": "lno1qgsq000bolt230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000", + "bolt12": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqv85ysq2qepk7enxv4j3gqg2zcssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e", "used": false } ] @@ -137,16 +137,16 @@ "id": "example:listoffers#2", "method": "listoffers", "params": [ - "offeridl23000002300000230000023000002300000230000023000002300000" + "b791f88cebf775853112c30828e116487f4d6c252d669372532b468bc7de8a24" ] }, "response": { "offers": [ { - "offer_id": "offeridl23000002300000230000023000002300000230000023000002300000", + "offer_id": "b791f88cebf775853112c30828e116487f4d6c252d669372532b468bc7de8a24", "active": true, "single_use": false, - "bolt12": "lno1qgsq000bolt230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000230002300023000", + "bolt12": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqv0gfqq2zp8kven9wgs8gmeqg35hxctzd3j3vggz953rvg9rtxj8lalh43z8epwydjfrmffn3y3p5qz5cywpu09rr4vs", "used": false } ] diff --git a/doc/schemas/listpays.json b/doc/schemas/listpays.json index eaa78aa0b0c5..129bd0be3e55 100644 --- a/doc/schemas/listpays.json +++ b/doc/schemas/listpays.json @@ -279,7 +279,7 @@ "id": "example:listpays#1", "method": "listpays", "params": { - "bolt11": "lnbcrt100n1pnt2bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000" + "bolt11": "lnbcrt500n1pne035qsp5kk6w4wjl0wudssp0pze5lgkz9hcav6ql523hjxc92knt398y2csqpp54va949c65wepf98heejx7pmjxtqsexghcvehty6urt4l54cl5xssdqcdsenygryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqgrjzax5dyj6dqqhgrt7t53hrmw4xvjs56kdy450c8jdv53fzf3n4kmersmgydpyyam87jrnu9wrcn78zy6w53zx3lqv45js6sa6rspqqa07y46" } }, "response": { @@ -293,7 +293,99 @@ "params": {} }, "response": { - "pays": [] + "pays": [ + { + "bolt11": "lnbcrt5m1pne035qsp53ecfkxsrle7hea7ckvd62cdjyvq3r9vp8dj88fwawl220ljmda3spp57cdw7qf92ltyje5evsh8rc46ekjkwz6nwlrr2layqjzcz0avcc5qdpcv3jhxcmjd9c8g6t0dcs8xetwvss8xmmdv5s8xct5wvsxcv3qw3hjqmpnxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgq5ang73w7jamq8nwwceyutacvktrm59qclwnrdd54q4qcr8a5n9r9jnxvg4k3s80frd3lt4tcv4dxz4yhsewnp8ujjd50mgevtwz4wmcq7glcsk", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "payment_hash": "f61aef012557d6496699642e71e2bacda5670b5377c6357fa40485813facc628", + "status": "complete", + "created_at": 1738000000, + "completed_at": 1738000000, + "preimage": "83ffe698292fbb5e83ffe698292fbb5e83ffe698292fbb5e83ffe698292fbb5e", + "amount_msat": 500000000, + "amount_sent_msat": 500000000, + "created_index": 1, + "updated_index": 1 + }, + { + "bolt11": "lnbcrt5m1pne035qsp5qu4w4mj43n9up0ze7cq39rrqd7aqygw82cyma64mnzne69kzphfqpp57edpmeu5yea7xpxezhtq4yjh6t50g0e739lx399kr9ynunpqm98qdpcv3jhxcmjd9c8g6t0dcs8xetwvss8xmmdv5s8xct5wvsxcv3qw3hjqmp4xqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jcjsnr9ygaehpqqqqqqpqqqqqzsqqc9qxpqysgqsm86gyada8m86wr0sz33tnclnyawtvtaegqhdwcwyrzu0p8hxuuxyh9teph87urkxu4g7x4ug4gjswahjwfjufl22msvlv7mv790z6gp9vrhs7", + "destination": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e", + "payment_hash": "f65a1de794267be304d915d60a9257d2e8f43f3e897e6894b619493e4c20d94e", + "status": "complete", + "created_at": 1738000000, + "completed_at": 1738000000, + "preimage": "58148cd7e5a50ca858148cd7e5a50ca858148cd7e5a50ca858148cd7e5a50ca8", + "amount_msat": 500000000, + "amount_sent_msat": 500000000, + "created_index": 2, + "updated_index": 2 + }, + { + "bolt11": "lnbcrt1u1pne035qsp5xl6xj5nrlrwfadkw89p0htfcqlkt0qrnykpc4kh3vlyr69cglv5qpp59v2rfk0xrknvtuf9yd5lf2vwrhwwwg45mvalz42nhpaff5vax5wsdqcdsenxgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgq04xpv4pju07a2mt3d02rf5u8ptj8h8vy7qxtc74z6y609x8rwrkhvq2elv8v5mrwac42scc70c7nnyu4xrxu9c8wcsync9dd5dnqdfqqrngrdv", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "payment_hash": "2b1434d9e61da6c5f1252369f4a98e1ddce722b4db3bf15553b87a94d19d351d", + "status": "complete", + "created_at": 1738000000, + "completed_at": 1738000000, + "preimage": "83ffe698292fbb6183ffe698292fbb6183ffe698292fbb6183ffe698292fbb61", + "amount_msat": 100000, + "amount_sent_msat": 100000, + "created_index": 3, + "updated_index": 3 + }, + { + "bolt12": "lni1qqg99gqg2990zl3322sqs52279lrzzst2d5k6urvv5s8getnw3gzqp3zderpzxstt8927ynqg044h0egcd8n5h3n9g0u0v4h8ncc3yg02gps7sjqtqssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e5zvqyehytxx360zptatj4pygsv9kpal8gnkeyd0tpvd6jv5rkv2uqdgcq204pv4whvd37qg3dg48n0nudvgfw0du46nveyle5q4a2tvru2g4gqgrstm06rld7qk9d5sjtajxztd0lua3zfujsv8lve3wg9px5f34c4wqqvh4pp0dfkr98pur2v55d6ae3cakhn6s9jxn8waf9l00g06g236ymyefu6engjwaqsj4w7cgpkg9naq6kf4zrsqqqqqqqqqqqqqqq5qqqqqqqqqqqqqayjedltzjqqqqqq9yq3ne035q5cq442pqemw8hu9fzzda8nvxcksvjra2sy4c5r9r6et8rj95qqd2ufj8xj065qc0gfq2uqczqqqtqggzvmj9nrga83q474e2sjygxzmq7ln5fmvjxh4skxafx2pmx9wqx5v0qsxsy7vmh0323083refvd9fwvm7r5klg8hjftuqqzygswxl9lfkvlcj72lhlw643qv2gwmfadfydpdwvhydnvgnxmhlgjaxd7nw06y7rx", + "destination": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "payment_hash": "cedc7bf0a9109bd3cd86c5a0c90faa812b8a0ca3d65671c8b4001aae2647349f", + "status": "complete", + "created_at": 1738000000, + "completed_at": 1738000000, + "preimage": "c01ed70eb9ddb906c01ed70eb9ddb906c01ed70eb9ddb906c01ed70eb9ddb906", + "amount_msat": 1000000, + "amount_sent_msat": 1000000, + "created_index": 4, + "updated_index": 4 + }, + { + "bolt11": "lnbcrt1pne035qsp5hu0s83c7qg77lgtagcr58sf07fvrqf27j67s2ptguw9wk8ruexfqpp50ge88lv20ge4a9ny7xc7rg8p6vqvnuuzwllkk2zng6txu7sfz3cqdqcdserxgryv4ekxunfwp6xjmmwxqyjw5qcqp99qxpqysgqrwjd83fygx3zcnupx0ftnpewajss6n4vpsugju00w8hu5lu0neujqhgw8jygwmawz8jq8pp2xu6r78f3m9yld6ky7539x5g5ahvtmqqqmgfjaa", + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "payment_hash": "7a3273fd8a7a335e9664f1b1e1a0e1d300c9f38277ff6b285346966e7a091470", + "status": "complete", + "created_at": 1738000000, + "completed_at": 1738000000, + "preimage": "08377744ca985c1f08377744ca985c1f08377744ca985c1f08377744ca985c1f", + "amount_msat": 9900, + "amount_sent_msat": 9900, + "created_index": 5, + "updated_index": 5 + }, + { + "bolt11": "lnbcrt40n1pne035qsp5pwtnqs2trxfwwkl8vaycu6fmvud0edagevz4eahvy6ls30u7cfrqpp52wnj6qrv99d6cte0s8ntstwkwxf42ksct8mujruyv7940nndzr3qdqaveskjmr9vssxgetnvdexjur5d9hkuxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgq6sh90jk5uuccyzrdlnd5xyd92hxre78kupcpmlg0uerm35855xlklh5zlsmahpad6x8cv4ky2u6p394p270vyetlzx2u6ypyg22xn0qq0z6fuh", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "payment_hash": "53a72d006c295bac2f2f81e6b82dd67193555a1859f7c90f84678b57ce6d10e2", + "status": "complete", + "created_at": 1738000000, + "completed_at": 1738000000, + "preimage": "83ffe698292fbb6283ffe698292fbb6283ffe698292fbb6283ffe698292fbb62", + "amount_msat": 4000, + "amount_sent_msat": 4000, + "created_index": 6, + "updated_index": 6 + }, + { + "bolt11": "lnbcrt5m1pne035qsp5qv7vwr9zt8sq94wzqdy2sg2cdddqfgh93vvsvfuxk0rdse47layqpp5z8v4uystpd9mvgwxm4zzr9w0q3dqep398jpkn6fdr24f2umgxcvqdpcv3jhxcmjd9c8g6t0dcs8xetwvss8xmmdv5s8xct5wvsxcv3qw3hjqmp5xqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqq5qqqqqgqqyqqqqqpqqqqqzsqqc9qxpqysgq9rl64vhvye4p8er9mld6jhuw56e0uf62w2r69e93hdy7js8a8y59esgp5ze7r9lnpt26tyh437t9c9g3m02eulm9fjrxepkghvvwyncp7wn4n3", + "destination": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "payment_hash": "11d95e120b0b4bb621c6dd442195cf045a0c86253c8369e92d1aaa9573683618", + "status": "complete", + "created_at": 1738000000, + "completed_at": 1738000000, + "preimage": "a23af6838ba877f9a23af6838ba877f9a23af6838ba877f9a23af6838ba877f9", + "amount_msat": 500000000, + "amount_sent_msat": 500000000, + "created_index": 7, + "updated_index": 7 + } + ] } } ] diff --git a/doc/schemas/listpeerchannels.json b/doc/schemas/listpeerchannels.json index 16844c0e7665..9c1882f1493a 100644 --- a/doc/schemas/listpeerchannels.json +++ b/doc/schemas/listpeerchannels.json @@ -1456,13 +1456,13 @@ "id": "example:listpeerchannels#1", "method": "listpeerchannels", "params": { - "id": "nodeid020202020202020202020202020202020202020202020202020202020202" + "id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" } }, "response": { "channels": [ { - "peer_id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "peer_id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "peer_connected": true, "reestablished": true, "channel_type": { @@ -1491,9 +1491,9 @@ "fee_proportional_millionths": 10 } }, - "last_stable_connection": 1738510000, + "last_stable_connection": 1738000000, "state": "CHANNELD_NORMAL", - "scratch_txid": "scratchid1010101010101010101010101010101010101010101010101010101", + "scratch_txid": "f8042b0e29badb6450d57a8065a9c05d1a86cb8cd43d775d23bd3c8e3d180bd7", "last_tx_fee_msat": 4867000, "lost_state": false, "feerate": { @@ -1501,43 +1501,42 @@ "perkb": 15020 }, "owner": "channeld", - "short_channel_id": "109x1x1", - "direction": 1, - "channel_id": "channelid0120000120000120000120000120000120000120000120000120000", - "funding_txid": "channeltxid120000120000120000120000120000120000120000120000120000", - "funding_outnum": 1, - "close_to_addr": "bcrt1p8c0ku4mpxq3443rss8e6rjwamztvv8yxvmxtetal5d0n6v39rlwqvfqy6n", - "close_to": "51203e1f6e576130235ac47081f3a1c9ddd896c61c8666ccbcafbfa35f3d32251fdc", + "short_channel_id": "110x1x0", + "direction": 0, + "channel_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "funding_txid": "63f74346eda6b8620ec24f86e2f8982ef3dade95f8efd00b372a75b2893b6f0d", + "funding_outnum": 0, + "close_to_addr": "bcrt1pmeuewfgl24n06v9868kts5v92494zexrvg0hc0sdmgwwnxm6t9sqdwfqjx", + "close_to": "5120de7997251f5566fd30a7d1ecb85185554b5164c3621f7c3e0dda1ce99b7a5960", "private": false, - "opener": "local", + "opener": "remote", "alias": { - "local": "30000001x60000001x60001", - "remote": "10000001x20000001x30001" + "local": "6312088x13255799x14088", + "remote": "5597735x1767569x15541" }, "features": [ "option_static_remotekey", - "option_anchors_zero_fee_htlc_tx", "option_anchors" ], "funding": { - "local_funds_msat": 1000000000, - "remote_funds_msat": 0, + "local_funds_msat": 0, + "remote_funds_msat": 1000000000, "pushed_msat": 0 }, - "to_us_msat": 390492790, - "min_to_us_msat": 390492790, - "max_to_us_msat": 1000000000, + "to_us_msat": 609507210, + "min_to_us_msat": 0, + "max_to_us_msat": 609507210, "total_msat": 1000000000, "fee_base_msat": 1, "fee_proportional_millionths": 10, "dust_limit_msat": 546000, - "max_total_htlc_in_msat": 18446744073709552000, - "their_max_htlc_value_in_flight_msat": 18446744073709552000, - "our_max_htlc_value_in_flight_msat": 18446744073709552000, + "max_total_htlc_in_msat": 18446744073709551615, + "their_max_htlc_value_in_flight_msat": 18446744073709551615, + "our_max_htlc_value_in_flight_msat": 18446744073709551615, "their_reserve_msat": 10000000, "our_reserve_msat": 10000000, - "spendable_msat": 363951708, - "receivable_msat": 599507210, + "spendable_msat": 599507210, + "receivable_msat": 363951708, "minimum_htlc_in_msat": 0, "minimum_htlc_out_msat": 0, "maximum_htlc_out_msat": 990000000, @@ -1546,39 +1545,39 @@ "max_accepted_htlcs": 483, "state_changes": [ { - "timestamp": "2024-10-10T00:01:00.000Z", + "timestamp": "2025-01-27T17:46:40.000Z", "old_state": "DUALOPEND_OPEN_COMMITTED", "new_state": "DUALOPEND_AWAITING_LOCKIN", - "cause": "user", + "cause": "remote", "message": "Sigs exchanged, waiting for lock-in" }, { - "timestamp": "2024-10-10T00:02:00.000Z", + "timestamp": "2025-01-27T17:46:40.000Z", "old_state": "DUALOPEND_AWAITING_LOCKIN", "new_state": "CHANNELD_NORMAL", - "cause": "user", + "cause": "remote", "message": "Lockin complete" } ], "status": [ "CHANNELD_NORMAL:Channel ready for use." ], - "in_payments_offered": 1, - "in_offered_msat": 1000000, - "in_payments_fulfilled": 1, - "in_fulfilled_msat": 1000000, - "out_payments_offered": 22, - "out_offered_msat": 665528797, - "out_payments_fulfilled": 16, - "out_fulfilled_msat": 610507210, + "in_payments_offered": 22, + "in_offered_msat": 665528797, + "in_payments_fulfilled": 16, + "in_fulfilled_msat": 610507210, + "out_payments_offered": 1, + "out_offered_msat": 1000000, + "out_payments_fulfilled": 1, + "out_fulfilled_msat": 1000000, "htlcs": [ { - "direction": "out", + "direction": "in", "id": 17, "amount_msat": 4000082, - "expiry": 181, - "payment_hash": "paymenthashdelpay30303030303030303030303030303030303030303030303", - "state": "SENT_ADD_ACK_REVOCATION" + "expiry": 182, + "payment_hash": "2b924194d169a96d9cc35b66ae912507e18ace9ef679fcb5324636ff73be410a", + "state": "RCVD_ADD_ACK_REVOCATION" } ] } @@ -1594,7 +1593,7 @@ "response": { "channels": [ { - "peer_id": "nodeid020202020202020202020202020202020202020202020202020202020202", + "peer_id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "peer_connected": true, "reestablished": true, "channel_type": { @@ -1623,9 +1622,9 @@ "fee_proportional_millionths": 10 } }, - "last_stable_connection": 1738520000, + "last_stable_connection": 1738000000, "state": "CHANNELD_NORMAL", - "scratch_txid": "scratchid2020202020202020202020202020202020202020202020202020202", + "scratch_txid": "f8042b0e29badb6450d57a8065a9c05d1a86cb8cd43d775d23bd3c8e3d180bd7", "last_tx_fee_msat": 4867000, "lost_state": false, "feerate": { @@ -1633,22 +1632,142 @@ "perkb": 15020 }, "owner": "channeld", - "short_channel_id": "109x1x1", - "direction": 1, - "channel_id": "channelid0120000120000120000120000120000120000120000120000120000", - "funding_txid": "channeltxid120000120000120000120000120000120000120000120000120000", + "short_channel_id": "110x1x0", + "direction": 0, + "channel_id": "252d1b0a1e57895e84137f28cf19ab2c35847e284c112fefdecc7afeaa5c1de7", + "funding_txid": "63f74346eda6b8620ec24f86e2f8982ef3dade95f8efd00b372a75b2893b6f0d", + "funding_outnum": 0, + "close_to_addr": "bcrt1pmeuewfgl24n06v9868kts5v92494zexrvg0hc0sdmgwwnxm6t9sqdwfqjx", + "close_to": "5120de7997251f5566fd30a7d1ecb85185554b5164c3621f7c3e0dda1ce99b7a5960", + "private": false, + "opener": "remote", + "alias": { + "local": "6312088x13255799x14088", + "remote": "5597735x1767569x15541" + }, + "features": [ + "option_static_remotekey", + "option_anchors" + ], + "funding": { + "local_funds_msat": 0, + "remote_funds_msat": 1000000000, + "pushed_msat": 0 + }, + "to_us_msat": 609507210, + "min_to_us_msat": 0, + "max_to_us_msat": 609507210, + "total_msat": 1000000000, + "fee_base_msat": 1, + "fee_proportional_millionths": 10, + "dust_limit_msat": 546000, + "max_total_htlc_in_msat": 18446744073709551615, + "their_max_htlc_value_in_flight_msat": 18446744073709551615, + "our_max_htlc_value_in_flight_msat": 18446744073709551615, + "their_reserve_msat": 10000000, + "our_reserve_msat": 10000000, + "spendable_msat": 599507210, + "receivable_msat": 363951708, + "minimum_htlc_in_msat": 0, + "minimum_htlc_out_msat": 0, + "maximum_htlc_out_msat": 990000000, + "their_to_self_delay": 5, + "our_to_self_delay": 5, + "max_accepted_htlcs": 483, + "state_changes": [ + { + "timestamp": "2025-01-27T17:46:40.000Z", + "old_state": "DUALOPEND_OPEN_COMMITTED", + "new_state": "DUALOPEND_AWAITING_LOCKIN", + "cause": "remote", + "message": "Sigs exchanged, waiting for lock-in" + }, + { + "timestamp": "2025-01-27T17:46:40.000Z", + "old_state": "DUALOPEND_AWAITING_LOCKIN", + "new_state": "CHANNELD_NORMAL", + "cause": "remote", + "message": "Lockin complete" + } + ], + "status": [ + "CHANNELD_NORMAL:Channel ready for use." + ], + "in_payments_offered": 22, + "in_offered_msat": 665528797, + "in_payments_fulfilled": 16, + "in_fulfilled_msat": 610507210, + "out_payments_offered": 1, + "out_offered_msat": 1000000, + "out_payments_fulfilled": 1, + "out_fulfilled_msat": 1000000, + "htlcs": [ + { + "direction": "in", + "id": 17, + "amount_msat": 4000082, + "expiry": 182, + "payment_hash": "2b924194d169a96d9cc35b66ae912507e18ace9ef679fcb5324636ff73be410a", + "state": "RCVD_ADD_ACK_REVOCATION" + } + ] + }, + { + "peer_id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "peer_connected": true, + "reestablished": true, + "channel_type": { + "bits": [ + 12, + 22 + ], + "names": [ + "static_remotekey/even", + "anchors/even" + ] + }, + "ignore_fee_limits": true, + "updates": { + "local": { + "htlc_minimum_msat": 0, + "htlc_maximum_msat": 990000000, + "cltv_expiry_delta": 6, + "fee_base_msat": 1, + "fee_proportional_millionths": 10 + }, + "remote": { + "htlc_minimum_msat": 0, + "htlc_maximum_msat": 990000000, + "cltv_expiry_delta": 6, + "fee_base_msat": 1, + "fee_proportional_millionths": 10 + } + }, + "last_stable_connection": 1738000000, + "state": "CHANNELD_NORMAL", + "scratch_txid": "3112fa1a0797156ebc8861de490811659c0526d66554188ea22e8abca8d69778", + "last_tx_fee_msat": 4867000, + "lost_state": false, + "feerate": { + "perkw": 3755, + "perkb": 15020 + }, + "owner": "channeld", + "short_channel_id": "124x1x1", + "direction": 0, + "channel_id": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3", + "funding_txid": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69", "funding_outnum": 1, - "close_to_addr": "bcrt1pcl00020002000200020002000200020002000200020002000200020002", - "close_to": "db2dec31020202020202020202020202020202020202020202020202020202020202", + "close_to_addr": "bcrt1pvn0zt2s8cv6shrtx8yd0zh90hwx4wpuqjrplfzpucnmde7kr4q3qx3fjfh", + "close_to": "512064de25aa07c3350b8d66391af15cafbb8d57078090c3f4883cc4f6dcfac3a822", "private": false, "opener": "local", "alias": { - "local": "30000002x60000002x60002", - "remote": "10000002x20000002x30002" + "local": "6508696x13255799x14088", + "remote": "9483055x2726118x65411" }, "features": [ "option_static_remotekey", - "option_anchors_zero_fee_htlc_tx", "option_anchors" ], "funding": { @@ -1656,20 +1775,20 @@ "remote_funds_msat": 0, "pushed_msat": 0 }, - "to_us_msat": 390492790, - "min_to_us_msat": 390492790, + "to_us_msat": 899996000, + "min_to_us_msat": 899996000, "max_to_us_msat": 1000000000, "total_msat": 1000000000, "fee_base_msat": 1, "fee_proportional_millionths": 10, "dust_limit_msat": 546000, - "max_total_htlc_in_msat": 18446744073709552000, - "their_max_htlc_value_in_flight_msat": 18446744073709552000, - "our_max_htlc_value_in_flight_msat": 18446744073709552000, + "max_total_htlc_in_msat": 18446744073709551615, + "their_max_htlc_value_in_flight_msat": 18446744073709551615, + "our_max_htlc_value_in_flight_msat": 18446744073709551615, "their_reserve_msat": 10000000, "our_reserve_msat": 10000000, - "spendable_msat": 363951708, - "receivable_msat": 599507210, + "spendable_msat": 873454959, + "receivable_msat": 90004000, "minimum_htlc_in_msat": 0, "minimum_htlc_out_msat": 0, "maximum_htlc_out_msat": 990000000, @@ -1678,14 +1797,14 @@ "max_accepted_htlcs": 483, "state_changes": [ { - "timestamp": "2024-10-10T00:01:00.000Z", + "timestamp": "2025-01-27T17:46:40.000Z", "old_state": "DUALOPEND_OPEN_COMMITTED", "new_state": "DUALOPEND_AWAITING_LOCKIN", "cause": "user", "message": "Sigs exchanged, waiting for lock-in" }, { - "timestamp": "2024-10-10T00:02:00.000Z", + "timestamp": "2025-01-27T17:46:40.000Z", "old_state": "DUALOPEND_AWAITING_LOCKIN", "new_state": "CHANNELD_NORMAL", "cause": "user", @@ -1695,27 +1814,27 @@ "status": [ "CHANNELD_NORMAL:Channel ready for use." ], - "in_payments_offered": 1, - "in_offered_msat": 1000000, - "in_payments_fulfilled": 1, - "in_fulfilled_msat": 1000000, - "out_payments_offered": 22, - "out_offered_msat": 665528797, - "out_payments_fulfilled": 16, - "out_fulfilled_msat": 610507210, + "in_payments_offered": 0, + "in_offered_msat": 0, + "in_payments_fulfilled": 0, + "in_fulfilled_msat": 0, + "out_payments_offered": 5, + "out_offered_msat": 154004041, + "out_payments_fulfilled": 3, + "out_fulfilled_msat": 100004000, "htlcs": [ { "direction": "out", - "id": 17, - "amount_msat": 4000082, - "expiry": 181, - "payment_hash": "paymenthashdelpay30303030303030303030303030303030303030303030303", + "id": 1, + "amount_msat": 4000041, + "expiry": 176, + "payment_hash": "2b924194d169a96d9cc35b66ae912507e18ace9ef679fcb5324636ff73be410a", "state": "SENT_ADD_ACK_REVOCATION" } ] }, { - "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "peer_id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "peer_connected": false, "channel_type": { "bits": [ @@ -1730,137 +1849,119 @@ "updates": { "local": { "htlc_minimum_msat": 0, - "htlc_maximum_msat": 19454000, + "htlc_maximum_msat": 990000000, + "cltv_expiry_delta": 6, + "fee_base_msat": 1, + "fee_proportional_millionths": 10 + }, + "remote": { + "htlc_minimum_msat": 0, + "htlc_maximum_msat": 990000000, "cltv_expiry_delta": 6, "fee_base_msat": 1, "fee_proportional_millionths": 10 } }, - "state": "ONCHAIN", - "scratch_txid": "scratchid2030303030303030303030303030303030303030303030303030303", - "last_tx_fee_msat": 2250000, + "state": "CLOSINGD_COMPLETE", + "scratch_txid": "8ef1ed98891f7cf81b74c330a68de9fcff802870f91cf04a69c5db02118bc78e", + "last_tx_fee_msat": 2895000, "lost_state": false, "feerate": { - "perkw": 3750, - "perkb": 15000 + "perkw": 3755, + "perkb": 15020 }, - "owner": "onchaind", + "short_channel_id": "160x1x1", "direction": 0, - "channel_id": "channelid1100011000110001100011000110001100011000110001100011000", - "funding_txid": "channeltxid01050000500005000050000500005000050000500005000050000", + "channel_id": "f4e1de801de57374d5737da622611e3a1ad9f16d5df9c30fceecc11ce732eeeb", + "funding_txid": "1c863d8172c0a588a7d34426b7249d4a939f04d4ca4bad6c28d5913ed2dff12a", "funding_outnum": 1, - "initial_feerate": "10000perkw", - "last_feerate": "10000perkw", - "next_feerate": "10416perkw", - "inflight": [ - { - "funding_txid": "channeltxid01050000500005000050000500005000050000500005000050000", - "funding_outnum": 1, - "feerate": "10000perkw", - "total_funding_msat": 20000000, - "our_funding_msat": 20000000, - "splice_amount": 0, - "scratch_txid": "scratchid2030303030303030303030303030303030303030303030303030303" - } - ], - "close_to_addr": "bcrt1pcl00030003000300030003000300030003000300030003000300030003", - "close_to": "db2dec31030303030303030303030303030303030303030303030303030303030303", + "close_to_addr": "bcrt1ptsrrl629uxs782qswfvy53xsequfry5nj56qt788a724y7y0jjlqxzv28f", + "close_to": "51205c063fe945e1a1e3a81072584a44d0c838919293953405f8e7ef9552788f94be", "private": false, "opener": "local", "closer": "local", "alias": { - "local": "30000003x60000003x60003", - "remote": "10000003x20000003x30003" + "local": "6574232x13255799x14088", + "remote": "1209512x9143286x15010" }, "features": [ "option_static_remotekey", - "option_anchors_zero_fee_htlc_tx", "option_anchors" ], "funding": { - "local_funds_msat": 20000000, + "local_funds_msat": 1000000000, "remote_funds_msat": 0, "pushed_msat": 0 }, - "to_us_msat": 20000000, - "min_to_us_msat": 20000000, - "max_to_us_msat": 20000000, - "total_msat": 20000000, + "to_us_msat": 500000000, + "min_to_us_msat": 500000000, + "max_to_us_msat": 1000000000, + "total_msat": 1000000000, "fee_base_msat": 1, "fee_proportional_millionths": 10, "dust_limit_msat": 546000, - "max_total_htlc_in_msat": 18446744073709552000, - "their_max_htlc_value_in_flight_msat": 18446744073709552000, - "our_max_htlc_value_in_flight_msat": 18446744073709552000, - "their_reserve_msat": 546000, - "our_reserve_msat": 546000, - "spendable_msat": 8172000, - "receivable_msat": 0, + "max_total_htlc_in_msat": 18446744073709551615, + "their_max_htlc_value_in_flight_msat": 18446744073709551615, + "our_max_htlc_value_in_flight_msat": 18446744073709551615, + "their_reserve_msat": 10000000, + "our_reserve_msat": 10000000, + "spendable_msat": 478705000, + "receivable_msat": 490000000, "minimum_htlc_in_msat": 0, "minimum_htlc_out_msat": 0, - "maximum_htlc_out_msat": 19454000, + "maximum_htlc_out_msat": 990000000, "their_to_self_delay": 5, "our_to_self_delay": 5, "max_accepted_htlcs": 483, "state_changes": [ { - "timestamp": "2024-10-10T00:01:00.000Z", + "timestamp": "2025-01-27T17:46:40.000Z", "old_state": "DUALOPEND_OPEN_COMMITTED", "new_state": "DUALOPEND_AWAITING_LOCKIN", "cause": "user", "message": "Sigs exchanged, waiting for lock-in" }, { - "timestamp": "2024-10-10T00:02:00.000Z", + "timestamp": "2025-01-27T17:46:40.000Z", "old_state": "DUALOPEND_AWAITING_LOCKIN", + "new_state": "CHANNELD_NORMAL", + "cause": "user", + "message": "Lockin complete" + }, + { + "timestamp": "2025-01-27T17:46:40.000Z", + "old_state": "CHANNELD_NORMAL", "new_state": "CHANNELD_SHUTTING_DOWN", "cause": "user", "message": "User or plugin invoked close command" }, { - "timestamp": "2024-10-10T00:03:00.000Z", + "timestamp": "2025-01-27T17:46:40.000Z", "old_state": "CHANNELD_SHUTTING_DOWN", "new_state": "CLOSINGD_SIGEXCHANGE", "cause": "user", "message": "Start closingd" }, { - "timestamp": "2024-10-10T00:04:00.000Z", + "timestamp": "2025-01-27T17:46:40.000Z", "old_state": "CLOSINGD_SIGEXCHANGE", "new_state": "CLOSINGD_COMPLETE", "cause": "user", "message": "Closing complete" - }, - { - "timestamp": "2024-10-10T00:05:00.000Z", - "old_state": "CLOSINGD_COMPLETE", - "new_state": "FUNDING_SPEND_SEEN", - "cause": "user", - "message": "Onchain funding spend" - }, - { - "timestamp": "2024-10-10T00:06:00.000Z", - "old_state": "FUNDING_SPEND_SEEN", - "new_state": "ONCHAIN", - "cause": "user", - "message": "Onchain init reply" } ], "status": [ - "CLOSINGD_SIGEXCHANGE:We agreed on a closing fee of 2250 satoshi for tx:scratchid2030303030303030303030303030303030303030303030303030303", - "ONCHAIN:Tracking mutual close transaction", - "ONCHAIN:All outputs resolved: waiting 96 more blocks before forgetting channel" + "CLOSINGD_SIGEXCHANGE:We agreed on a closing fee of 2895 satoshi for tx:8ef1ed98891f7cf81b74c330a68de9fcff802870f91cf04a69c5db02118bc78e" ], "in_payments_offered": 0, "in_offered_msat": 0, "in_payments_fulfilled": 0, "in_fulfilled_msat": 0, - "out_payments_offered": 0, - "out_offered_msat": 0, - "out_payments_fulfilled": 0, - "out_fulfilled_msat": 0, - "htlcs": [], - "last_stable_connection": 1738530000 + "out_payments_offered": 1, + "out_offered_msat": 500000000, + "out_payments_fulfilled": 1, + "out_fulfilled_msat": 500000000, + "htlcs": [] } ] } diff --git a/doc/schemas/listpeers.json b/doc/schemas/listpeers.json index b4e3b46fdf74..3bd06a68b2d9 100644 --- a/doc/schemas/listpeers.json +++ b/doc/schemas/listpeers.json @@ -330,17 +330,17 @@ "id": "example:listpeers#1", "method": "listpeers", "params": { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303" + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d" } }, "response": { "peers": [ { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "connected": true, "num_channels": 1, "netaddr": [ - "127.0.0.1:19736" + "127.0.0.1:30005" ], "features": "0898882a8a59a1" } @@ -356,25 +356,25 @@ "response": { "peers": [ { - "id": "nodeid010101010101010101010101010101010101010101010101010101010101", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "connected": true, "num_channels": 1, "netaddr": [ - "127.0.0.1:19734" + "127.0.0.1:30005" ], "features": "0898882a8a59a1" }, { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "connected": true, "num_channels": 1, "netaddr": [ - "127.0.0.1:19736" + "127.0.0.1:54321" ], "features": "0898882a8a59a1" }, { - "id": "nodeid040404040404040404040404040404040404040404040404040404040404", + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "connected": false, "num_channels": 1, "features": "0898882a8a59a1" diff --git a/doc/schemas/listsendpays.json b/doc/schemas/listsendpays.json index 49d8ee5b4f11..1377c5f7d1fd 100644 --- a/doc/schemas/listsendpays.json +++ b/doc/schemas/listsendpays.json @@ -346,7 +346,7 @@ "id": "example:listsendpays#1", "method": "listsendpays", "params": { - "bolt11": "lnbcrt100n1pnt2bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000bolt11invl030100000000" + "bolt11": "lnbcrt100n1pne035qsp5ct5g9265vn4k2zn8ecuk6pxe0anszfl3uy4w5vukrvl4emm9w28qpp5j43wux8fg2cwkt3kq5xpprhukdxtqljum03g6zxjdwm34u24dshsdp9f9h8vmmfvdjjqer9wd3hy6tsw35k7m3qdsenzxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqflkpcezmaphptn08syzk9wh4rfkdzj3syan9ng9fzzv94htydujx6qut2tdgsmq2rg5utlmwcyce30fcqth7r68tc5mpqm7k4dfvy7gp0xletu" } }, "response": { @@ -354,16 +354,16 @@ { "created_index": 2, "id": 2, - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", "groupid": 1, "updated_index": 2, - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000, "amount_sent_msat": 10001, "created_at": 1738000000, - "completed_at": 1739000000, + "completed_at": 1738000000, "status": "complete", - "payment_preimage": "paymentpreimagew010101010101010101010101010101010101010101010101" + "payment_preimage": "83ffe698292fbb5f83ffe698292fbb5f83ffe698292fbb5f83ffe698292fbb5f" } ] } @@ -379,72 +379,289 @@ { "created_index": 2, "id": 2, - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", "groupid": 1, "updated_index": 2, - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000, "amount_sent_msat": 10001, "created_at": 1738000000, - "completed_at": 1739000000, + "completed_at": 1738000000, "status": "complete", - "payment_preimage": "paymentpreimagew010101010101010101010101010101010101010101010101" + "payment_preimage": "83ffe698292fbb5f83ffe698292fbb5f83ffe698292fbb5f83ffe698292fbb5f" }, { "created_index": 3, "id": 3, - "payment_hash": "paymenthashkey01k101k101k101k101k101k101k101k101k101k101k101k101", + "payment_hash": "097dcfa3b0bc58d499908855dae7d442854a02d4f2ffcc625f9385ed74f3256e", "groupid": 0, "updated_index": 3, - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000, "amount_sent_msat": 10001, - "created_at": 1738010000, - "completed_at": 1739010000, + "created_at": 1738000000, + "completed_at": 1738000000, "status": "complete", - "payment_preimage": "paymentpreimage1010101010101010101010101010101010101010101010101" + "payment_preimage": "0193052c8999a10f0193052c8999a10f0193052c8999a10f0193052c8999a10f" }, { "created_index": 4, "id": 4, - "payment_hash": "paymenthashkey02k201k201k201k201k201k201k201k201k201k201k201k201", + "payment_hash": "9bf787fe700121009e2ecdca290632c8bf2da853527c700aa5746173981ae584", "groupid": 0, "updated_index": 4, - "destination": "nodeid040404040404040404040404040404040404040404040404040404040404", + "destination": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", "amount_msat": 10000000, "amount_sent_msat": 10000202, - "created_at": 1738020000, - "completed_at": 1739020000, + "created_at": 1738000000, + "completed_at": 1738000000, "status": "complete", - "payment_preimage": "paymentpreimage2020202020202020202020202020202020202020202020202" + "payment_preimage": "0193052c8999a1110193052c8999a1110193052c8999a1110193052c8999a111" }, { "created_index": 5, "id": 5, - "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "payment_hash": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", "groupid": 0, "updated_index": 5, - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000, "amount_sent_msat": 10001, - "created_at": 1738030000, - "completed_at": 1739030000, + "created_at": 1738000000, + "completed_at": 1738000000, "status": "failed" }, { "created_index": 6, "id": 6, - "payment_hash": "paymenthashkey03k301k301k301k301k301k301k301k301k301k301k301k301", + "payment_hash": "da6c0b6d30ac35f62762bc7114d64d323dc79fb858061902263eb72df6310caf", "groupid": 0, "updated_index": 6, "partid": 1, - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "amount_msat": 10000, + "amount_sent_msat": 10001, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "0193052c8999a1130193052c8999a1130193052c8999a1130193052c8999a113" + }, + { + "created_index": 7, + "id": 7, + "payment_hash": "ab3a5a971aa3b21494f7ce646f077232c10c9917c33375935c1aebfa571fa1a1", + "groupid": 1, + "updated_index": 7, + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "amount_msat": 50000, + "amount_sent_msat": 50001, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "83ffe698292fbb6083ffe698292fbb6083ffe698292fbb6083ffe698292fbb60", + "bolt11": "lnbcrt500n1pne035qsp5kk6w4wjl0wudssp0pze5lgkz9hcav6ql523hjxc92knt398y2csqpp54va949c65wepf98heejx7pmjxtqsexghcvehty6urt4l54cl5xssdqcdsenygryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqgrjzax5dyj6dqqhgrt7t53hrmw4xvjs56kdy450c8jdv53fzf3n4kmersmgydpyyam87jrnu9wrcn78zy6w53zx3lqv45js6sa6rspqqa07y46" + }, + { + "created_index": 8, + "id": 8, + "payment_hash": "1bb513fb2fbde40592243877d9f404ba3668275e2eeacd9c7264f34f04d37fd1", + "groupid": 1607584456767009425, + "updated_index": 8, + "partid": 1, + "destination": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "amount_msat": 10000, + "amount_sent_msat": 10002, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "a23af6838ba877f6a23af6838ba877f6a23af6838ba877f6a23af6838ba877f6", + "bolt11": "lnbcrt100n1pne035qsp572t5efk76vr3rdkt5zu2qcduqapdj40mhrs7pgpthufgw3tvtwrqpp5rw6387e0hhjqty3y8pmanaqyhgmxsf679m4vm8rjvne57pxn0lgsdp9w3jhxazl0pcxz72lwd5k6urvv5sxymmvwscnzxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwgqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqh986ypquaysut7ed57nr8pum0x6u5hg3lnsf6j840l0cn6e28zcyqk76xpxkxjzlkhj8cx7zapyct6zdz2ff7nt3lym376k8ff0u9egq2wf5mk" + }, + { + "created_index": 9, + "id": 9, + "payment_hash": "f4a6597c41a3ae138fc1269e3bb0c28eb992a24e5eb007c5e65f39b1b89ed561", + "groupid": 1751699644842865297, + "updated_index": 9, + "partid": 1, + "destination": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", + "amount_msat": 1000, + "amount_sent_msat": 1000, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "c01ed70eb9ddb51ec01ed70eb9ddb51ec01ed70eb9ddb51ec01ed70eb9ddb51e", + "bolt12": "lni1qqgvq8khp6uam2t8cq0dwr4emk5kwq3qqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy83pmsz953rvg9rtxj8lalh43z8epwydjfrmffn3y3p5qz5cywpu09rr4vsyc4ltgrq50wep0hruykzdz8kjmlaymfx3gn3c0gcrcwn08fary4aqgplwhkgurkjc3rj42v0ntzhw0gr9dl4vwt2l3meh378fzjx5cc7mhgqxdva9ffx3l879amqjdk7np3nyfq6wjtp4weyzhdgq447vakcu0sh4dh0gxszhvffjfqcy8h77mjzguszhtfqy9glqvpm0sp32vgtlw2rh8mwuzedxn3z4d44zq7g8pkz6906ysj9qqe9eqccms4thz8tgy4vu7fdnqt0yaeky4a4pkdprcykm7vj4sz2pqeuguj820h2d6vwh0j7cdypzeg7ffnpvggzvmj9nrga83q474e2sjygxzmq7ln5fmvjxh4skxafx2pmx9wqx5v9qgqxyfhyvyg6pdvu4tcjvpp7kkal9rp57wj7xv4pl3ajku70rzy3pafqyqlg2sq9sggz3x54wmukps9ppjdvu9axg8l62dkkv5975l6zlt37ts4szjaem7c6pxqzvmj9nrga83q474e2sjygxzmq7ln5fmvjxh4skxafx2pmx9wqx5vqyhckl6y7ulcampu0ezz5qqx4cs3fwt6kyrfjc08dju8hc3lr30d7qyp5e6kp2jd30yr8husmmcfzxe797vler28r4hv6ehyy29lljue6ljqqxtxjzt8sw08wk4vx2j6wwv94myujhvzg09mx9xnh9fmvewnm0ex4mkal4sfm00gep0srey7pz6vt3cd82k3pcqqqqqqqqqqqqqqq2qqqqqqqqqqqqqwjfvkl43fqqqqqqzjqgeuhc6q2sg855evhcsdr4cfclsfxncamps5whxf2ynj7kqrutejl8xcm38k4vx4qyqlg4cpsyqqqkqssyehytxx360zptatj4pygsv9kpal8gnkeyd0tpvd6jv5rkv2uqdgc7pqzjd09ca3y6jytvgzva9jcyxavkyzvjujh4g4dz6qv5gjp95ld7sxy4yrpuc937lvmvrwm6qycexdzsmmtlzyskmzqm5e8uevw6d4nxc" + }, + { + "created_index": 10, + "id": 10, + "payment_hash": "47c148c1746366e4c2c7496621c22002bc2711b4d9c52cbb9c7b1fdca59c8579", + "groupid": 1, + "updated_index": 10, + "amount_sent_msat": 1002, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "failed", + "erroronion": "9bd15bb4312d17efe8130e67d2013e5baa83d46bc370883e1499e59299647d62cb6665189d7046467e6820a1f1248e0318805cf6e6d72e4b1da85492577e3606e81c8671a56493a6699eaf5e0d14c7bc2a23a23c5a0712e87faa51325a207f041e5e340e10ac9c61c77101345e527964d8aa7d5e953dfcef7a73dbf156738034d9c589f8592181132d6424112e7c991aa288da1bfa6da93d4c32572417d94c2956b95a4f5a0fc3d4e95019b24a87e890c7ef74444191de7428d979415b63d7de7a492e41be004cdfb7b567557dec95c4ac3e7ba3fb038dea146625551649d7991f0b4b5aa10c96b8a789cbfaaf8c1cc021cbb58516c7fd47644f4b2df9b5495a3e22f113a725e4b5315f1b7aff390d1f5b02ac37809e799bfbe8a078a1882d5f9d6f1d63" + }, + { + "created_index": 11, + "id": 11, + "payment_hash": "53a72d006c295bac2f2f81e6b82dd67193555a1859f7c90f84678b57ce6d10e2", + "groupid": 1, + "updated_index": 11, + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000, "amount_sent_msat": 10001, - "created_at": 1738040000, - "completed_at": 1739040000, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "failed" + }, + { + "created_index": 12, + "id": 12, + "payment_hash": "ff498c3300881ea7a3c04193e43f123444c644662008108c23229da3511bedd1", + "groupid": 0, + "updated_index": 12, + "partid": 1, + "amount_sent_msat": 1000, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "08377744ca985c1e08377744ca985c1e08377744ca985c1e08377744ca985c1e" + }, + { + "created_index": 13, + "id": 13, + "payment_hash": "e0b5658ef8e23cab6546ea5f7794a8c760483abf3613b34f401df4128944afae", + "groupid": 1, + "updated_index": 13, + "partid": 1, + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "amount_msat": 400000, + "amount_sent_msat": 400000, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "08377744ca985c1908377744ca985c1908377744ca985c1908377744ca985c19", + "bolt11": "lnbcrt1pne035qsp5j7czxfpnquxg9vcw9crqh87raxz0glv8n6gx88jwdsp28pmfk68qpp5uz6ktrhcug72ke2xaf0h099gcasysw4lxcfmxn6qrh6p9z2y47hqdqcdserzgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqn7ge40jwkslz0j0vhfzy743lathy2sqy2dfyyahalxszs979d9s5v89ten2zcrna3xlxhkerk7p9k7a6u5fdddx5dzzas4ye2yp6desq3zwkg2" + }, + { + "created_index": 14, + "id": 14, + "payment_hash": "2a25861f15614825bdfd154d422342f159446f0d54dc24e8385d31520023f8cb", + "groupid": 1, + "updated_index": 14, + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "amount_msat": 2000, + "amount_sent_msat": 2000, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "08377744ca985c2108377744ca985c2108377744ca985c2108377744ca985c21", + "bolt11": "lnbcrt20n1pne035qsp5793kaek9ahcmxn00ttvkmrhafa5v33wtju4dz5lvyjr0pwwgdd2qpp59gjcv8c4v9yzt00az4x5yg6z79v5gmcd2nwzf6pct5c4yqprlr9sdq8d9h8vvsxqyjw5qcqp99qxpqysgq7ygtu605e0yx749rczhlqaw4crl746rmzc3nkpxn5vrey34m2uxx0658c3e85gvvdcp8r5nlfdnxspl9tlj5xhckrx5vszxxa4zneggp8dynay" + }, + { + "created_index": 15, + "id": 15, + "payment_hash": "36a32c9d7ee7baf5c15d1b9b27d085dce9c697fb427d0ce68342acce00e1586f", + "groupid": 1, + "updated_index": 15, + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "amount_msat": 3000, + "amount_sent_msat": 3000, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "08377744ca985c2208377744ca985c2208377744ca985c2208377744ca985c22", + "bolt11": "lnbcrt30n1pne035qsp588xrpk37hul6xfyr8u6lkyggh0mkvfzhyex8wwts7dpckxt2j2yspp5x63je8t7u7a0ts2arwdj05y9mn5ud9lmgf7see5rg2kvuq8ptphsdq8d9h8vvcxqyjw5qcqp99qxpqysgqw97pk464fhkxp6umgtzhh3njznhnw06cwun58szk06v7a2wvvppz6kg95ufarq443nrqgue6u3s59up4tqkmm943pfyp3hqutx6vgugqgd8jsu" + }, + { + "created_index": 16, + "id": 16, + "payment_hash": "8e3ea1fb26e3e5e8627064e68e424713e3393752457ffe19a565fea54f6307d6", + "groupid": 1, + "updated_index": 16, + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "amount_msat": 5000, + "amount_sent_msat": 5000, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "08377744ca985c2408377744ca985c2408377744ca985c2408377744ca985c24", + "bolt11": "lnbcrt50n1pne035qsp59qq7k6yprpf2hw49aqqx6tcv4dhldr4jh8r45n8vk9deyff2q55spp53cl2r7exu0j7scnsvnngusj8z03njd6jg4lluxd9vhl22nmrqltqdq8d9h8vdgxqyjw5qcqp99qxpqysgqcrnpc3ms8p3nqzyvfp5y0l78nlgm3lexm0v5xty0yd9fudk5mk8ydzvkfuxuef74cytlajjj6ykjsannfdapna7xudpf4xwtauhvcrqqxkwwsq" + }, + { + "created_index": 17, + "id": 17, + "payment_hash": "09963074ab0fc38044f890c763c658e7ea4f8b31ccbcfc6a0191163f5cdc4360", + "groupid": 1, + "updated_index": 17, + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "amount_msat": 4000, + "amount_sent_msat": 4000, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "08377744ca985c2308377744ca985c2308377744ca985c2308377744ca985c23", + "bolt11": "lnbcrt40n1pne035qsp5q4tjztd7kdgg22eewphyfcf3ew9ag6d53nsm3yfu8280ygsxnp3qpp5pxtrqa9tplpcq38cjrrk83jcul4ylze3ej70c6spjytr7hxugdsqdq8d9h8vdqxqyjw5qcqp99qxpqysgq0g9jk5lpfjyg6ryulnhav6qsfmua9uajgkpa8cl4k9mrds0wdavqd8sg26us9gr93uvnz8s9znmyk2g3sytgqgfl6ych0re7sujky3sq78nj5l" + }, + { + "created_index": 18, + "id": 18, + "payment_hash": "9a33e433faddc3371f6a56a34146c82629d567520ddaf28244bd9f196288af71", + "groupid": 1, + "updated_index": 18, + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "amount_msat": 1000, + "amount_sent_msat": 1000, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "08377744ca985c2008377744ca985c2008377744ca985c2008377744ca985c20" + }, + { + "created_index": 19, + "id": 19, + "payment_hash": "2b924194d169a96d9cc35b66ae912507e18ace9ef679fcb5324636ff73be410a", + "groupid": 1, + "partid": 1, + "destination": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "amount_msat": 4000000, + "amount_sent_msat": 4000082, + "created_at": 1738000000, + "status": "pending" + }, + { + "created_index": 21, + "id": 21, + "payment_hash": "1d3a502d4b52d3c22af20f93605cadec2194da2e077b9fbbd15fa379c6bfbbdd", + "groupid": 1, + "updated_index": 20, + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "amount_msat": 50000000, + "amount_sent_msat": 50000501, + "created_at": 1738000000, + "completed_at": 1738000000, + "status": "complete", + "payment_preimage": "83ffe698292fbb6383ffe698292fbb6383ffe698292fbb6383ffe698292fbb63", + "bolt11": "lnbcrt500u1pne035qsp5pt69qwurs28wt0ttmlyhwnsuajc8sxf0at8vd83m98m3hhkcw9yspp5r5a9qt2t2tfuy2hjp7fkqh9dassefk3wqaaelw73t73hn34lh0wsdqcdsen2gryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqq0sqqqqgqqyqqqqqpqqqqqzsqqc9qxpqysgqufkzp6k7jev4r0k95s4m3m0j3vcyg5z2zxpw98tm9fcml0xud0ws0q9g44g9cz56lnc97xxy9q6mt8h6xxh4h2fah8qypk7h7mmwd3gqsdtqr0" + }, + { + "created_index": 22, + "id": 22, + "payment_hash": "39a88ddc69c973a791043a877a415eda840888849a5d7175c9666104513f9235", + "groupid": 1, + "updated_index": 21, + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "amount_msat": 50000000, + "amount_sent_msat": 50000501, + "created_at": 1738000000, + "completed_at": 1738000000, "status": "complete", - "payment_preimage": "paymentpreimage3030303030303030303030303030303030303030303030303" + "payment_preimage": "83ffe698292fbb6583ffe698292fbb6583ffe698292fbb6583ffe698292fbb65", + "bolt11": "lnbcrt500u1pne035qsp50zcqdgkx0dwzlksvkntzmmuednc9mxdnnzrghatwffw5fycnkpcqpp58x5gmhrfe9e60ygy82rh5s27m2zq3zyynfwhzawfvessg5fljg6sdqcdsenwgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqq0sqqqqgqqyqqqqqpqqqqqzsqqc9qxpqysgqxdq9h7j2xkfjvm8ansypq8w2xvawhdu5wwzpkg9ar2al66d6uae8lxzx6maekk0pgae6fzeauglsxvqplc3lw30fzv430a7nmccv0lcq0du8d6" } ] } diff --git a/doc/schemas/listtransactions.json b/doc/schemas/listtransactions.json index 89eb7d038c73..4ba886e0bffd 100644 --- a/doc/schemas/listtransactions.json +++ b/doc/schemas/listtransactions.json @@ -173,51 +173,492 @@ "response": { "transactions": [ { - "hash": "txid7000170001700017000170001700017000170001700017000170001", - "rawtx": "02000000000101lstx70001700017000170001700017000170001700017000170001700017000170001700017000170001700017000170001700017000170001700017000170001700017000170001700017000170001700017000170001", + "hash": "cb847df46f5e3ae4df631b2eca529264f0551c08497a23a8b36eab6a43752a19", + "rawtx": "02000000000101f24a23ab5e7a9a3301a77294bd78b17c1f99ae8a46f91c7784170325735c87a70000000000fce87280044a0100000000000022002021576c2f5f13ba292fdb27447b38f1a583a579f26d3f4de69949f399a68269e34a0100000000000022002084e64aa53fb1193cdd99b7892f2d2f1f1a472f2b1bb1b85c447beba739003b2ea00f0000000000002200208f5cc510822867e8c786438caacf26a796f0561a147b4cb4950e4ae5fd0f5b6a0a1d0f00000000002200200fc54c870d234c36914a970b066e35be3f70af615d521189922794127e5eda8f0400473044022065d513e52ad62ae187985ffdc063591ca4fd3122b64f93f8173804d71a4c4bf802200e2f6abd1e958930f5535af6d193ad50f48632e832952dde93d25b64d9e4a9ae01473044022016be9e3950d45956afea61824dc637dff6708789859ca8ab62d475849e8ea3af02204beec8cc69f1238866e0768770b64fe381b53badc64b8a6fde2cca49e0b1baf10147522102c4c58e0dd892bdc984a69d87a39e33a837926d8886282e27d0a6cdfab5a563742103ebc3fd1aeca86f47406b5c43daf43ce7337d0d59923891ad4e276e168c2bc11452ae1a77ae20", "blockheight": 0, "txindex": 0, - "locktime": 549000100, + "locktime": 548304666, "version": 2, "inputs": [ { - "txid": "txid600116001160011600116001160011600116001160011600116001160011", + "txid": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2", + "index": 0, + "sequence": 2155014396 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 330000, + "scriptPubKey": "002021576c2f5f13ba292fdb27447b38f1a583a579f26d3f4de69949f399a68269e3" + }, + { + "index": 1, + "amount_msat": 330000, + "scriptPubKey": "002084e64aa53fb1193cdd99b7892f2d2f1f1a472f2b1bb1b85c447beba739003b2e" + }, + { + "index": 2, + "amount_msat": 4000000, + "scriptPubKey": "00208f5cc510822867e8c786438caacf26a796f0561a147b4cb4950e4ae5fd0f5b6a" + }, + { + "index": 3, + "amount_msat": 990474000, + "scriptPubKey": "00200fc54c870d234c36914a970b066e35be3f70af615d521189922794127e5eda8f" + } + ] + }, + { + "hash": "0c609c5643e2f316985989417c48044311cf2c1fb2113a03af7d7d51b4874ac5", + "rawtx": "02000000000101b3d820c11ae3a495b807cdcbf591f9a382351f50e61eb3ddcbb0c3a9b66f12890000000000fdffffff02b37c110501000000160014d67d8942d0b25380051198e292a12c48369c94ca00c2eb0b00000000160014d0eac62fdcee2d1881259be9cda4c43de9050db802473044022042141044c5fa69877c5a6d641cd96693828c77b8593fbba4df3008c56c54c3c502202e743899c8469993e28011de683f68f2f66c64b23f1ac62be7167563f762f8a40121031552bdf1173629284565431fb75296ec15c49649f97bb418ce3f509601b9b77469000000", + "blockheight": 106, + "txindex": 1, + "locktime": 105, + "version": 2, + "inputs": [ + { + "txid": "89126fb6a9c3b0cbddb31ee6501f3582a3f991f5cbcd07b895a4e31ac120d8b3", + "index": 0, + "sequence": 4294967293 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 4379999411000, + "scriptPubKey": "0014d67d8942d0b25380051198e292a12c48369c94ca" + }, + { + "index": 1, + "amount_msat": 200000000000, + "scriptPubKey": "0014d0eac62fdcee2d1881259be9cda4c43de9050db8" + } + ] + }, + { + "hash": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9", + "rawtx": "02000000000101b3d820c11ae3a495b807cdcbf591f9a382351f50e61eb3ddcbb0c3a9b66f12890100000000fdffffff0240420f00000000002200208698658a01efb001e1cc4df6a8b6f3adb461fa3e679385fdaae400bd73996b32816cdc0b000000002251208a73bb281433f2b5db5461c6778aa2afd28e011de6bd04799a5991662c61d7a80247304402204ae8e90efd38fe67b7dacd7b673c5de869a802feab60b17ce55c91c5bdffcfa60220100e9a1ee2e0f0a0e157feb12ee4e5e2b9ca4c78384097b085d476722f2dd9e101210207ec2b35534712d86ae030dd9bfaec08e2ddea1ec1cecffb9725ed7acb12ab6633000000", + "blockheight": 112, + "txindex": 1, + "locktime": 51, + "version": 2, + "inputs": [ + { + "txid": "89126fb6a9c3b0cbddb31ee6501f3582a3f991f5cbcd07b895a4e31ac120d8b3", + "index": 1, + "sequence": 4294967293 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 1000000000, + "scriptPubKey": "00208698658a01efb001e1cc4df6a8b6f3adb461fa3e679385fdaae400bd73996b32" + }, + { + "index": 1, + "amount_msat": 198995073000, + "scriptPubKey": "51208a73bb281433f2b5db5461c6778aa2afd28e011de6bd04799a5991662c61d7a8" + } + ] + }, + { + "hash": "c3f4a0f787b5ea11505afaba3e9599d6135943d0f562df3d6a7d3e7f372e2067", + "rawtx": "02000000000101ce5a530f60155add2fa38a51332c2823dec1e10eb16f77e68da912d03fb04dd80100000000fdffffff0280841e0000000000160014774b1c651a1b409213057783547e2bd37a7173127268deec00000000160014dc1e0ee8ce8e59d06ff533cc79b1e3809b4eba99024730440220483a8cc01437562b2dc7e83397e145f427fcbdbe7afb6d83c63ad3c8d18cc31d0220502b2d3f36a6b6cc42bb1714c8907b1b9c9a80788784599c33d19242e29061330121022facafa438adcdc64818ac87168a8ff6cc0c1f986475f3edac935f037bcc962b15000000", + "blockheight": 113, + "txindex": 1, + "locktime": 21, + "version": 2, + "inputs": [ + { + "txid": "d84db03fd012a98de6776fb10ee1c1de23282c33518aa32fdd5a15600f535ace", + "index": 1, + "sequence": 4294967293 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 2000000000, + "scriptPubKey": "0014774b1c651a1b409213057783547e2bd37a717312" + }, + { + "index": 1, + "amount_msat": 3973998706000, + "scriptPubKey": "0014dc1e0ee8ce8e59d06ff533cc79b1e3809b4eba99" + } + ] + }, + { + "hash": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6", + "rawtx": "0200000000010167202e377f3e7d6a3ddf62f5d0435913d699953ebafa5a5011eab587f7a0f4c30000000000fdffffff0240420f00000000002200205f743123f9584a76058bac1142ec2bc6c60b4b2af1d3145e74418d41ae51009e012f0f0000000000225120974c19d5ed96a62a1bd10ad187fee5c2e3146f772228c5ae7a42b36e74cf24cf024730440220707db46964e57ba4767951d6f03491f75468fd263dc84868d02352d74b91b4f102200a06e7213acde73c8a89751a1d915cfd72a849c850093b53c0415759144740cd012103f1f9d3a06cf2ae9b87dc178b5f3717b6c9b56e539189f11dc0d9ad1b227cc97f71000000", + "blockheight": 114, + "txindex": 1, + "locktime": 113, + "version": 2, + "inputs": [ + { + "txid": "c3f4a0f787b5ea11505afaba3e9599d6135943d0f562df3d6a7d3e7f372e2067", + "index": 0, + "sequence": 4294967293 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 1000000000, + "scriptPubKey": "00205f743123f9584a76058bac1142ec2bc6c60b4b2af1d3145e74418d41ae51009e" + }, + { + "index": 1, + "amount_msat": 995073000, + "scriptPubKey": "5120974c19d5ed96a62a1bd10ad187fee5c2e3146f772228c5ae7a42b36e74cf24cf" + } + ] + }, + { + "hash": "1aa6d7b0bb6c5d1dac62724caa4e26dc37ed8af5e747c836746987d28603fed2", + "rawtx": "02000000000101b6f77750c0aae7faf2aa6e4b38a14671adc8def298a0b89ced09596f002aa5ef0000000000ffffffff026b6f070000000000160014730274d976305fe63d212c880cf89fd0f08272873ac80700000000002251202bdd81f95d64ed2cc37d2eae725de428c91bff072d7503d87446970eedc630300400473044022008dec4948db1c9e4db4dcf8c223f554117e48c6aa0aac471de67c03163a82e4a0220018bdb9889230e0048a378efad73d3bec83c330baa727323d95ca86fe36301b701473044022022cec9df9ece54e1ca89888bdc19ed84e5202a93070d05aa9b3236f9990b440d0220376f7fd6edb49ad13596cdfd51d929a92d45bc88da3f16ed0777014a28025a2801475221021c29746e4136ddff456483df3980c2d0d5f31c93ef5ded564f7294a10d7414aa2103c47b1b2afcfd68c7b86c0976adb9a4f0835bc78242fced745d78433497a867d652ae00000000", + "blockheight": 122, + "txindex": 1, + "locktime": 0, + "version": 2, + "inputs": [ + { + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6", + "index": 0, + "sequence": 4294967295 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 487275000, + "scriptPubKey": "0014730274d976305fe63d212c880cf89fd0f0827287" + }, + { + "index": 1, + "amount_msat": 510010000, + "scriptPubKey": "51202bdd81f95d64ed2cc37d2eae725de428c91bff072d7503d87446970eedc63030" + } + ] + }, + { + "hash": "40b4acd3759ac69b5160488d73a5890a46bf4f013381e52e9171ee038b3c96d6", + "rawtx": "02000000000101a92a6508defe049b47f2420c054cb1a446198faf4bfd74bb2479b3c45075ce7c0000000000ffffffff02026e07000000000022512085d72025e78fd08bb61119f0987ab0041f50561ada6e130c645343db8c44c2afeec8070000000000225120a7583f0c421663b8ca76fa579018b40682ef8553d73fd061cd8f216ecdced6a30400473044022064d1a5480d76bc71d44ee440a47ec30e7433812292ca8d4876e5e59cd2950e4802201ece394b4bcbf6ba3f21152236822cfb2eeed8e5897d3bf3499e9d7d1a5d092e01473044022068cd05fe53fa71118b643e5340ea3cd169a3ca655c64c0b30f78d720d79a957502200f14d30de4251cf016a3db3475fe5472772335b76dfc268dc173e6541026b1830147522102d595ae92b3544c3250fb772f214ad8d4c51425033740a5bcc357190add6d7e7a2102d6063d022691b2490ab454dee73a57c6ff5d308352b461ece69f3c284f2c241252ae00000000", + "blockheight": 122, + "txindex": 2, + "locktime": 0, + "version": 2, + "inputs": [ + { + "txid": "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9", + "index": 0, + "sequence": 4294967295 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 486914000, + "scriptPubKey": "512085d72025e78fd08bb61119f0987ab0041f50561ada6e130c645343db8c44c2af" + }, + { + "index": 1, + "amount_msat": 510190000, + "scriptPubKey": "5120a7583f0c421663b8ca76fa579018b40682ef8553d73fd061cd8f216ecdced6a3" + } + ] + }, + { + "hash": "148a366c9a72e40af01daca6acc24e0a5648d0efb7e01f4708f23412d9deba69", + "rawtx": "0200000000010255310c6239b1c691cda8c054f3933467fb75153dddbd83dabec5d621990ddc920000000000fdffffffa7330551ea1fb2cc2d6ce491391f6830228b4bf5f2a616ab0a372002027e93ed0100000000fdffffff0245571e0000000000225120fdab7c01fae70c08e0b1f9acacca110a53121e75dc54a25e7542416f342aeaf740420f00000000002200209655e2a7330cd86dc69f8ed1845af5580dd06b15a794034c9571e53d5639b397014051b8117b0f4726cb33d05a6289f25addc41f5cf4a572b1a00aa494e88c3d9771729e9473eb8bb3679eac5a13964260269e317924cbf0e55c5aba600dbbc4af1002473044022049960f9cc0d1c77c8b85614adb8ed91b2a0a55a3e4bdac12a3de90880485f5e2022012e7ccc5f87ca3e0f485b2b16a95cc026079b18358dcb20fb0cd44348105751a01210330a75acaed258be6bc02da9fab058abbe0e770caceb7c6496eaaea7014c3d39b7b000000", + "blockheight": 124, + "txindex": 1, + "locktime": 123, + "version": 2, + "inputs": [ + { + "txid": "92dc0d9921d6c5beda83bddd3d1575fb673493f354c0a8cd91c6b139620c3155", + "index": 0, + "sequence": 4294967293 + }, + { + "txid": "ed937e020220370aab16a6f2f54b8b2230681f3991e46c2dccb21fea510533a7", + "index": 1, + "sequence": 4294967293 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 1988421000, + "scriptPubKey": "5120fdab7c01fae70c08e0b1f9acacca110a53121e75dc54a25e7542416f342aeaf7" + }, + { + "index": 1, + "amount_msat": 1000000000, + "scriptPubKey": "00209655e2a7330cd86dc69f8ed1845af5580dd06b15a794034c9571e53d5639b397" + } + ] + }, + { + "hash": "e72c5b057eb2944ade8a57c7d1143cc5eea12f0905287ce40c2716ed7032bd29", + "rawtx": "02000000000101a7330551ea1fb2cc2d6ce491391f6830228b4bf5f2a616ab0a372002027e93ed0000000000fdffffff0280841e000000000016001449acd7d82366c662bc8fef84bd3900b09bafbba54bd982ec0000000016001423c5939000b149132489269b028c1a596d96af480247304402204b0db0024b5141333d9e95410d91fcd3f8f3e60a2b26a7572694b0c094bae64e022062dad17af68f819b3463f57e75b3e93d257ed73b66f8045eed8d3bfd7252908501210387ee92224b3c95d3a3af78c32cec2b07b1c250e3bdb80a2e80dadc02e684040c7c000000", + "blockheight": 125, + "txindex": 1, + "locktime": 124, + "version": 2, + "inputs": [ + { + "txid": "ed937e020220370aab16a6f2f54b8b2230681f3991e46c2dccb21fea510533a7", + "index": 0, + "sequence": 4294967293 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 2000000000, + "scriptPubKey": "001449acd7d82366c662bc8fef84bd3900b09bafbba5" + }, + { + "index": 1, + "amount_msat": 3967998283000, + "scriptPubKey": "001423c5939000b149132489269b028c1a596d96af48" + } + ] + }, + { + "hash": "a7875c7325031784771cf9468aae991f7cb178bd9472a701339a7a5eab234af2", + "rawtx": "0200000000010129bd3270ed16270ce47c2805092fa1eec53c14d1c7578ade4a94b27e055b2ce70000000000fdffffff0240420f0000000000220020dd2b22d7f86c0cb8edca4d979b316aa5a8a390a37440b3f387edfa6e3efb630d012f0f00000000002251207b8ca7b7f827d8f94a2846c4e5d84fbae1a5b7453ff03ca1859f25888325b80a02473044022038b791a95551665f80a79e75cd2b53035913a1e3314c8135d2e1e2d60ef253df02202a80e65020cd2c160830a8d93cde5fc9ec92299104df83a59c41420370daf20001210235953f2aa25835f70cc1da3418d935b88a9f95a134dd86636bf018f532d282fe7d000000", + "blockheight": 126, + "txindex": 1, + "locktime": 125, + "version": 2, + "inputs": [ + { + "txid": "e72c5b057eb2944ade8a57c7d1143cc5eea12f0905287ce40c2716ed7032bd29", + "index": 0, + "sequence": 4294967293 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 1000000000, + "scriptPubKey": "0020dd2b22d7f86c0cb8edca4d979b316aa5a8a390a37440b3f387edfa6e3efb630d" + }, + { + "index": 1, + "amount_msat": 995073000, + "scriptPubKey": "51207b8ca7b7f827d8f94a2846c4e5d84fbae1a5b7453ff03ca1859f25888325b80a" + } + ] + }, + { + "hash": "59d7273c7dde3b2786f7325da08a303779ee718443aaa25d03db19c9e909591b", + "rawtx": "0200000000010190ee63cdc0e3f2b01c954abef709af77c0d966ca3f45b6b39ab9cfb6546c7a790100000000fdffffff08e803000000000000160014a43b821a9790f880e113a395b717a0f354b9d9c6e687150000000000225120327b99fbacbcc3bbcf9489bf7f3dac2642d933685754f558586afbacd17f9c26e8030000000000002251202f843ba0c8de9d0c41a63a25d4cab22032be4fabf24931dab82214316be218cae8030000000000002251200978ea47f31ad6561d96ceee14e85192726536c4e1e59d09f217f3b5762b0630e80300000000000016001407905c6189c1ae8aff12566b03f35ff516d17e84e803000000000000160014d1dc90a7bb3af91ed69e933dc38f555b580fad09e8030000000000001600146a1845bb0ea1f8efa63f00f325641db7350dcd5be803000000000000160014dfadaae18d57e4ef50e15b863d9e648bf9af67b10140eeb15b713763a95f40db82138b6f02a8ae8e49aad37ab3647d943a27713069f87376087de9ba49b7a477581f02cf4b4de25a468ee611b7a1ca2e71c3b1e179748c000000", + "blockheight": 141, + "txindex": 1, + "locktime": 140, + "version": 2, + "inputs": [ + { + "txid": "797a6c54b6cfb99ab3b6453fca66d9c077af09f7be4a951cb0f2e3c0cd63ee90", + "index": 1, + "sequence": 4294967293 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 1000000, + "scriptPubKey": "0014a43b821a9790f880e113a395b717a0f354b9d9c6" + }, + { + "index": 1, + "amount_msat": 1411046000, + "scriptPubKey": "5120327b99fbacbcc3bbcf9489bf7f3dac2642d933685754f558586afbacd17f9c26" + }, + { + "index": 2, + "amount_msat": 1000000, + "scriptPubKey": "51202f843ba0c8de9d0c41a63a25d4cab22032be4fabf24931dab82214316be218ca" + }, + { + "index": 3, + "amount_msat": 1000000, + "scriptPubKey": "51200978ea47f31ad6561d96ceee14e85192726536c4e1e59d09f217f3b5762b0630" + }, + { + "index": 4, + "amount_msat": 1000000, + "scriptPubKey": "001407905c6189c1ae8aff12566b03f35ff516d17e84" + }, + { + "index": 5, + "amount_msat": 1000000, + "scriptPubKey": "0014d1dc90a7bb3af91ed69e933dc38f555b580fad09" + }, + { + "index": 6, + "amount_msat": 1000000, + "scriptPubKey": "00146a1845bb0ea1f8efa63f00f325641db7350dcd5b" + }, + { + "index": 7, + "amount_msat": 1000000, + "scriptPubKey": "0014dfadaae18d57e4ef50e15b863d9e648bf9af67b1" + } + ] + }, + { + "hash": "f9e2ca6abf9450803ef6a1a75964277dd39b2f35f77acffc3a5978437b421aec", + "rawtx": "02000000000102b6f77750c0aae7faf2aa6e4b38a14671adc8def298a0b89ced09596f002aa5ef0100000000fdffffffc54a87b4517d7daf033a11b21f2ccf114304487c4189599816f3e243569c600c0100000000fdffffff0240420f0000000000220020b41521751a8eb257315f73a531763071cc39b7cece470f630fd5149fe7b7057ac594eb0b00000000225120a5410daebf4fc3cba618a840af497fbec4c3a084534f2b7b6a7d30bf35f8f5660140528e20b424e1ac7f2ae067093552f424dade1321ec396a7d382866be7bba9ba5a3faf375dc9b39d676d8adab67c30df596bca1412c3871bb9538fc00265c35bf02473044022003304f0d559771fe9d4b06dccecacbef7eaef5a97c7618b567de1ba53e7146ef02207f7138b9cd7fca8ea13498e6fed96b225873131c45b5c46e4e78c7fe45d5b3e9012102c8a8f25ed135cd671c88bd4e407bb3746678cfacbcf65ce89f8efc2aa0abe5359b000000", + "blockheight": 156, + "txindex": 1, + "locktime": 155, + "version": 2, + "inputs": [ + { + "txid": "efa52a006f5909ed9cb8a098f2dec8ad7146a1384b6eaaf2fae7aac05077f7b6", "index": 1, - "sequence": 2158511000 + "sequence": 4294967293 + }, + { + "txid": "0c609c5643e2f316985989417c48044311cf2c1fb2113a03af7d7d51b4874ac5", + "index": 1, + "sequence": 4294967293 } ], "outputs": [ + { + "index": 0, + "amount_msat": 1000000000, + "scriptPubKey": "0020b41521751a8eb257315f73a531763071cc39b7cece470f630fd5149fe7b7057a" + }, { "index": 1, - "amount_msat": 201998901100, - "scriptPubKey": "scriptpubkey01010101010101010101010101010101010101010101010101010101" + "amount_msat": 199988421000, + "scriptPubKey": "5120a5410daebf4fc3cba618a840af497fbec4c3a084534f2b7b6a7d30bf35f8f566" } ] }, { - "hash": "txid7000270002700027000270002700027000270002700027000270002", - "rawtx": "02000000000101lstx70002700027000270002700027000270002700027000270002700027000270002700027000270002700027000270002700027000270002700027000270002700027000270002700027000270002700027000270002", - "blockheight": 102, + "hash": "a5e7471ae03d284673ac3189164522587568bf47179e94a90cc0f043cff39bb5", + "rawtx": "02000000000101ec1a427b4378593afccf7af7352f9bd37d276459a7a1f63e805094bf6acae2f90000000000ffffffff0176390f0000000000225120ebc29bf1526b5c18e4d14bdc0c2425e683d81ea0036c6834b98f5b04cdcb9d95040047304402206bb171775ea5334c9e604505eccd5010025e0bbfd65186e2e4f976a15dbce329022072d784a17bb46a4439b90a45d18f8cf2c28d80ff4388f4fe94740919cc6db2cf014730440220719782d4dba4b5024b5d35d7d590f84df275b1b921ec77e71cd98e55d677d702022042c25f4975c8eece9e5d0a820eed0a91a87fa063f9f584316c9838542a3f850001475221030c3fc0add8628ae8acc7befa2b833c455db3868be6de7add97b945a1e506f7fe21036c8bee77fa3632abc7a5df76cf029650eea826896024a70eaa64cac8a0131c1c52ae00000000", + "blockheight": 156, + "txindex": 5, + "locktime": 0, + "version": 2, + "inputs": [ + { + "txid": "f9e2ca6abf9450803ef6a1a75964277dd39b2f35f77acffc3a5978437b421aec", + "index": 0, + "sequence": 4294967295 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 997750000, + "scriptPubKey": "5120ebc29bf1526b5c18e4d14bdc0c2425e683d81ea0036c6834b98f5b04cdcb9d95" + } + ] + }, + { + "hash": "34e8ce026401c205cf74556beb2c11b9d9243fd4d74902127e739c11d865021b", + "rawtx": "020000000001080ca195cdd7b29ead524961e05456441fa5e2c97c8262739ecdb6d2228b29353b0000000000fdffffff0ca195cdd7b29ead524961e05456441fa5e2c97c8262739ecdb6d2228b29353b0200000000fdffffff1b5909e9c919db035da2aa438471ee7937308aa05d32f786273bde7d3c27d7590000000000fdffffff1b5909e9c919db035da2aa438471ee7937308aa05d32f786273bde7d3c27d7590200000000fdffffff1b5909e9c919db035da2aa438471ee7937308aa05d32f786273bde7d3c27d7590700000000fdffffff9a8c6de235929d0b3850ec06560bf60d252718a1aadfe8e0718218af4878d1790100000000fdffffffb17766dac493e0b215e2255ae236477dd453cad94560d7f418face046fd6c3f80100000000fdffffffd7dbbaa1e20d2efed3c4241e554bd38be7b87b97dab1024d7880b72a862d584c0000000000fdffffff04204e000000000000220020369444aad3ac8c5452be625479f761587c42fbf66fecf644447daabc73c498223075000000000000220020d90c23ede7b77f89f4cae93da9326ba176d158a0b65faeaede5684c3c0f7c8392808440700000000220020f7bbe8f915381b4b9b1ca14cccbfd156eea19888550d01a5014f977e98c7fc8ca86100000000000022512018ece00b736f9ed77ed3a87426643c242223e3d6116a4cd6d90946f73de2ce71024730440220426dde8016515f8f897454cc37361219c5414f5e21cf91598047f12e3ad2fb8102202602d18876f20eb58a593b93e782b820cb68347d7beba839113a3a1d5b31a9400121028a599168d3c97debc71bc66e6270ecf054f300d888309ba05471a482175dd93002473044022069681451f9469ec6e7b4a62db78999e9ded9b2eb1682b0d90895f0fe67cedb8e02204d80c50638d043a9a8cdb34259774e7b9a474047c178b61ec4ded0ae186c1602012102272a9a25f1ffed52fab04a2cc88aeab135b53723856a8f1481c26417f88a922e0247304402204a2f0bb65bfafd85a6ffeaf9e75ec9dbe20f5d9bc50d8d98126942c00951aa2802203877c0326e64585cf4c767e57398eaff58a279542e9fd16a223d1f507d1bfdbb01210267f4468ffafe6f919ae871f57f09690467f494e83e0358dc64d10472f9072f4c01405cac3f8d65efa45a8e253c40cdfe97d8bc182e8ea04de2ecdd3fe488c6a9fe6508cf336ac742417a80ca805f069e088d4e8ad79575cf5d8dade454f69645ce6b0247304402206a5d75ef2bedb452594a97c52277b8532725cf5804b62669872d97c0cb499c03022011aff97f2c87ce8d99eda0f9a2f73f2668a82aea6e0acfe3b7b01893f05fc403012103d034f788f410c2ec2d89d161df3c3715f965248aa53eace463d10eca443eb1f20247304402203605a17cf717f57d125b999fac579064cb576c214a2204a4b8a106695607b4bd02201e41c14bcc19af1083d7a716a1aa33fe8b23b3b07eda3d30074146b4146834f60121029da47016812598be384212ce15793496c0ec2176a87e81c6432dae964f87c9870247304402201f4bb570df0095b4c5f1c35c5db787e9e2d289ae3cc9d0b75decbc7bb41e25c00220789c3d68621f25bf1fa30e72652591354c71aa8397fd1fa18442a0ffa037900f01210328cc8fc978e209f1695fa5b5655061db1aab2311b524176945bf1015ef2d4b89014024629ca4144d02f2f414e30644b1b7800d19d07ccf88e6c25cc3c5bd208f16c71c0deda1230d7df241f63a25b4e32a3036ff20168564e24b816693dda22b44d89c000000", + "blockheight": 157, "txindex": 1, - "locktime": 549000200, + "locktime": 156, "version": 2, "inputs": [ { - "txid": "txid600126001260012600126001260012600126001260012600126001260012", + "txid": "3b35298b22d2b6cd9e7362827cc9e2a51f445654e0614952ad9eb2d7cd95a10c", + "index": 0, + "sequence": 4294967293 + }, + { + "txid": "3b35298b22d2b6cd9e7362827cc9e2a51f445654e0614952ad9eb2d7cd95a10c", + "index": 2, + "sequence": 4294967293 + }, + { + "txid": "59d7273c7dde3b2786f7325da08a303779ee718443aaa25d03db19c9e909591b", + "index": 0, + "sequence": 4294967293 + }, + { + "txid": "59d7273c7dde3b2786f7325da08a303779ee718443aaa25d03db19c9e909591b", + "index": 2, + "sequence": 4294967293 + }, + { + "txid": "59d7273c7dde3b2786f7325da08a303779ee718443aaa25d03db19c9e909591b", + "index": 7, + "sequence": 4294967293 + }, + { + "txid": "79d17848af188271e0e8dfaaa11827250df60b5606ec50380b9d9235e26d8c9a", + "index": 1, + "sequence": 4294967293 + }, + { + "txid": "f8c3d66f04cefa18f4d76045d9ca53d47d4736e25a25e215b2e093c4da6677b1", "index": 1, - "sequence": 2158512000 + "sequence": 4294967293 + }, + { + "txid": "4c582d862ab780784d02b1da977bb8e78bd34b551e24c4d3fe2e0de2a1badbd7", + "index": 0, + "sequence": 4294967293 } ], "outputs": [ + { + "index": 0, + "amount_msat": 20000000, + "scriptPubKey": "0020369444aad3ac8c5452be625479f761587c42fbf66fecf644447daabc73c49822" + }, { "index": 1, - "amount_msat": 201998902100, - "scriptPubKey": "scriptpubkey02010201020102010201020102010201020102010201020102010201" + "amount_msat": 30000000, + "scriptPubKey": "0020d90c23ede7b77f89f4cae93da9326ba176d158a0b65faeaede5684c3c0f7c839" }, { "index": 2, - "amount_msat": 201998902200, - "scriptPubKey": "scriptpubkey02020202020202020202020202020202020202020202020202020202" + "amount_msat": 121899048000, + "scriptPubKey": "0020f7bbe8f915381b4b9b1ca14cccbfd156eea19888550d01a5014f977e98c7fc8c" + }, + { + "index": 3, + "amount_msat": 25000000, + "scriptPubKey": "512018ece00b736f9ed77ed3a87426643c242223e3d6116a4cd6d90946f73de2ce71" + } + ] + }, + { + "hash": "bb23aa273032a5f997312034dcc92b09ba6ff343ab8b1fa76796710db0177b79", + "rawtx": "020000000001011b0265d8119c737e120249d7d43f24d9b9112ceb6b5574cf05c2016402cee8340000000000ffffffff0156450000000000002251208de5a3aa566cb6dc9037206bc73530ce6d7d8ea2dd1c488aec5862cb8b8e860e04004730440220173a7f31ffc8ff5925c7b5248078acfcd484bb83ce0364ab18cca92dbe3be06202201516c8cb93e17d653c2bd66d02cb82635cb0ff12779c7062b5514f0ea65db3ea01473044022061f9b595763ffffd1c33e7fc3004fc8054031eedb45fe11941592d0f854dbfb5022043660a53fe00e56b93bd284e24337fff4501d06108b66cf07efd3cb13576dae30147522102f52c0210d5b05d38a0c01f316be27ad07fadb10015f497accfa78b7c3cdb5cb621038f2a5514a8fd540d306215ea47cded68140a4d1346f0b8dc35b4261701f7ec6952ae00000000", + "blockheight": 157, + "txindex": 4, + "locktime": 0, + "version": 2, + "inputs": [ + { + "txid": "34e8ce026401c205cf74556beb2c11b9d9243fd4d74902127e739c11d865021b", + "index": 0, + "sequence": 4294967295 + } + ], + "outputs": [ + { + "index": 0, + "amount_msat": 17750000, + "scriptPubKey": "51208de5a3aa566cb6dc9037206bc73530ce6d7d8ea2dd1c488aec5862cb8b8e860e" } ] } diff --git a/doc/schemas/multifundchannel.json b/doc/schemas/multifundchannel.json index 21df27d15ae5..15ab497d4a30 100644 --- a/doc/schemas/multifundchannel.json +++ b/doc/schemas/multifundchannel.json @@ -344,15 +344,15 @@ "params": { "destinations": [ { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303@127.0.0.1:19736", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d@127.0.0.1:30005", "amount": "20000sat" }, { - "id": "nodeid040404040404040404040404040404040404040404040404040404040404@127.0.0.1:19737", + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199@127.0.0.1:30007", "amount": "0.0003btc" }, { - "id": "nodeid050505050505050505050505050505050505050505050505050505050505@127.0.0.1:19738", + "id": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e@127.0.0.1:30009", "amount": "all" } ], @@ -361,12 +361,12 @@ } }, "response": { - "tx": "02000000000101multif50000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000", - "txid": "channeltxid01050000500005000050000500005000050000500005000050000", + "tx": "020000000001080ca195cdd7b29ead524961e05456441fa5e2c97c8262739ecdb6d2228b29353b0000000000fdffffff0ca195cdd7b29ead524961e05456441fa5e2c97c8262739ecdb6d2228b29353b0200000000fdffffff1b5909e9c919db035da2aa438471ee7937308aa05d32f786273bde7d3c27d7590000000000fdffffff1b5909e9c919db035da2aa438471ee7937308aa05d32f786273bde7d3c27d7590200000000fdffffff1b5909e9c919db035da2aa438471ee7937308aa05d32f786273bde7d3c27d7590700000000fdffffff9a8c6de235929d0b3850ec06560bf60d252718a1aadfe8e0718218af4878d1790100000000fdffffffb17766dac493e0b215e2255ae236477dd453cad94560d7f418face046fd6c3f80100000000fdffffffd7dbbaa1e20d2efed3c4241e554bd38be7b87b97dab1024d7880b72a862d584c0000000000fdffffff04204e000000000000220020369444aad3ac8c5452be625479f761587c42fbf66fecf644447daabc73c498223075000000000000220020d90c23ede7b77f89f4cae93da9326ba176d158a0b65faeaede5684c3c0f7c8392808440700000000220020f7bbe8f915381b4b9b1ca14cccbfd156eea19888550d01a5014f977e98c7fc8ca86100000000000022512018ece00b736f9ed77ed3a87426643c242223e3d6116a4cd6d90946f73de2ce71024730440220426dde8016515f8f897454cc37361219c5414f5e21cf91598047f12e3ad2fb8102202602d18876f20eb58a593b93e782b820cb68347d7beba839113a3a1d5b31a9400121028a599168d3c97debc71bc66e6270ecf054f300d888309ba05471a482175dd93002473044022069681451f9469ec6e7b4a62db78999e9ded9b2eb1682b0d90895f0fe67cedb8e02204d80c50638d043a9a8cdb34259774e7b9a474047c178b61ec4ded0ae186c1602012102272a9a25f1ffed52fab04a2cc88aeab135b53723856a8f1481c26417f88a922e0247304402204a2f0bb65bfafd85a6ffeaf9e75ec9dbe20f5d9bc50d8d98126942c00951aa2802203877c0326e64585cf4c767e57398eaff58a279542e9fd16a223d1f507d1bfdbb01210267f4468ffafe6f919ae871f57f09690467f494e83e0358dc64d10472f9072f4c01405cac3f8d65efa45a8e253c40cdfe97d8bc182e8ea04de2ecdd3fe488c6a9fe6508cf336ac742417a80ca805f069e088d4e8ad79575cf5d8dade454f69645ce6b0247304402206a5d75ef2bedb452594a97c52277b8532725cf5804b62669872d97c0cb499c03022011aff97f2c87ce8d99eda0f9a2f73f2668a82aea6e0acfe3b7b01893f05fc403012103d034f788f410c2ec2d89d161df3c3715f965248aa53eace463d10eca443eb1f20247304402203605a17cf717f57d125b999fac579064cb576c214a2204a4b8a106695607b4bd02201e41c14bcc19af1083d7a716a1aa33fe8b23b3b07eda3d30074146b4146834f60121029da47016812598be384212ce15793496c0ec2176a87e81c6432dae964f87c9870247304402201f4bb570df0095b4c5f1c35c5db787e9e2d289ae3cc9d0b75decbc7bb41e25c00220789c3d68621f25bf1fa30e72652591354c71aa8397fd1fa18442a0ffa037900f01210328cc8fc978e209f1695fa5b5655061db1aab2311b524176945bf1015ef2d4b89014024629ca4144d02f2f414e30644b1b7800d19d07ccf88e6c25cc3c5bd208f16c71c0deda1230d7df241f63a25b4e32a3036ff20168564e24b816693dda22b44d89c000000", + "txid": "34e8ce026401c205cf74556beb2c11b9d9243fd4d74902127e739c11d865021b", "channel_ids": [ { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", - "channel_id": "channelid1100011000110001100011000110001100011000110001100011000", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "channel_id": "a9c39915cfa357205e3597ec62d92c541a2be7f44b9c6292e126aeddb11bf97e", "channel_type": { "bits": [ 12, @@ -377,11 +377,11 @@ "anchors/even" ] }, - "outnum": 1 + "outnum": 0 }, { - "id": "nodeid040404040404040404040404040404040404040404040404040404040404", - "channel_id": "channelid1200012000120001200012000120001200012000120001200012000", + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "channel_id": "a4a379248e49d207cc984646e632e1a31105a85708b9d6d961a5018fdd489f5a", "channel_type": { "bits": [ 12, @@ -395,8 +395,8 @@ "outnum": 1 }, { - "id": "nodeid050505050505050505050505050505050505050505050505050505050505", - "channel_id": "channelid1300013000130001300013000130001300013000130001300013000", + "id": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e", + "channel_id": "e13472d6512413eb1bf03b9a0bb391d0e4152fd337fa6d1014e3de5e131918d9", "channel_type": { "bits": [ 12, @@ -407,7 +407,7 @@ "anchors/even" ] }, - "outnum": 1 + "outnum": 2 } ], "failed": [] @@ -420,15 +420,15 @@ "params": { "destinations": [ { - "id": "fakenodeid03030303030303030303030303030303030303030303030303030303@127.0.0.1:19736", + "id": "03a389b3a2f7aa6f9f4ccc19f2bd7a2eba83596699e86b715caaaa147fc37f3144@127.0.0.1:30005", "amount": 50000 }, { - "id": "nodeid040404040404040404040404040404040404040404040404040404040404@127.0.0.1:19737", + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199@127.0.0.1:30007", "amount": 50000 }, { - "id": "nodeid010101010101010101010101010101010101010101010101010101010101@127.0.0.1:19734", + "id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518@127.0.0.1:30001", "amount": 50000 } ], @@ -436,12 +436,12 @@ } }, "response": { - "tx": "02000000000102multif60000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000600006000060000", - "txid": "channeltxid02060000600006000060000600006000060000600006000060000", + "tx": "020000000001021b0265d8119c737e120249d7d43f24d9b9112ceb6b5574cf05c2016402cee8340300000000fdffffff7375f9b47d75c6e3af621018a50fa2c8b9094f08f4aae0873c7f183eb7941ec10000000000fdffffff0250c30000000000002200209bd3269fda069b7ee0584622d458bb437635b3a179265dee3843ef18f42f35c6ed84430700000000225120def24e878a66b695c4d5b414b42b7ce94471dac985bb0afb0367e8bbb92c5a5201403801494402ede78cdce356dbcef09aec5e2f27284d899a7f580392c4af28ec6de04447e5cac3549b3648a3a55e2e5eefeba4fe98d23d3a84f1e7c61265bf5e5e01406ec83566298057fd8b0d18e0056148e33ea2846e83086bc1d409191b0820c51a9f3e6e144d4eac7f2e1bea9ba1f60ba2cc43b0e1b0de3dff293f6ad577275d709d000000", + "txid": "a19c811497b26bb270b9a80fb75ceda91c12049faf4b83facfb12e7738a1eadf", "channel_ids": [ { - "id": "nodeid040404040404040404040404040404040404040404040404040404040404", - "channel_id": "channelid1520015200152001520015200152001520015200152001520015200", + "id": "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", + "channel_id": "09eb55872cd9039ecd08281af756e23b15aad4129fd6a9bcd71b472114ebf43a", "channel_type": { "bits": [ 12, @@ -452,7 +452,7 @@ "anchors/even" ] }, - "outnum": 1 + "outnum": 0 } ], "failed": [ @@ -461,11 +461,11 @@ "method": "connect", "error": { "code": 401, - "message": "All addresses failed: 127.0.0.1:19736: Cryptographic handshake: peer closed connection (wrong key?). " + "message": "All addresses failed: 127.0.0.1:30005: Cryptographic handshake: peer closed connection (wrong key?). " } }, { - "id": "nodeid010101010101010101010101010101010101010101010101010101010101", + "id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "method": "connect", "error": { "code": 402, diff --git a/doc/schemas/multiwithdraw.json b/doc/schemas/multiwithdraw.json index bca8866824f1..3eeb91212c00 100644 --- a/doc/schemas/multiwithdraw.json +++ b/doc/schemas/multiwithdraw.json @@ -104,8 +104,8 @@ } }, "response": { - "tx": "02000000000155multiw55000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000550005500055000", - "txid": "txid5500055000550005500055000550005500055000550005500055000" + "tx": "0200000000010190ee63cdc0e3f2b01c954abef709af77c0d966ca3f45b6b39ab9cfb6546c7a790000000000fdffffff03ae080000000000001600143d43d226bcc27019ade52d7a3dc52a7ac1be28b8f74e080000000000225120875b3dfe08354212207c94733807164505835a44100738a9c27a62bd5deef480050d000000000000160014d55c493983db651e10477455b1d408c31e7e9e310247304402205fad492ec062feca17e59887dabbea8100f2e4ec7fcfe5abeb7f88457c4cf4a10220445a0b8813843f05c1c87571e25dfebe6c54cb91dd80560e383b0de90d78b788012103a26fcdff9cd9ce50aefbe3efcb26788cee5808e312d1d6d35603a368ded1d68c2c000000", + "txid": "3b35298b22d2b6cd9e7362827cc9e2a51f445654e0614952ad9eb2d7cd95a10c" } }, { @@ -139,8 +139,8 @@ } }, "response": { - "tx": "02000000000155multiw56000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000560005600056000", - "txid": "txid5600056000560005600056000560005600056000560005600056000" + "tx": "0200000000010190ee63cdc0e3f2b01c954abef709af77c0d966ca3f45b6b39ab9cfb6546c7a790100000000fdffffff08e803000000000000160014a43b821a9790f880e113a395b717a0f354b9d9c6e687150000000000225120327b99fbacbcc3bbcf9489bf7f3dac2642d933685754f558586afbacd17f9c26e8030000000000002251202f843ba0c8de9d0c41a63a25d4cab22032be4fabf24931dab82214316be218cae8030000000000002251200978ea47f31ad6561d96ceee14e85192726536c4e1e59d09f217f3b5762b0630e80300000000000016001407905c6189c1ae8aff12566b03f35ff516d17e84e803000000000000160014d1dc90a7bb3af91ed69e933dc38f555b580fad09e8030000000000001600146a1845bb0ea1f8efa63f00f325641db7350dcd5be803000000000000160014dfadaae18d57e4ef50e15b863d9e648bf9af67b10140eeb15b713763a95f40db82138b6f02a8ae8e49aad37ab3647d943a27713069f87376087de9ba49b7a477581f02cf4b4de25a468ee611b7a1ca2e71c3b1e179748c000000", + "txid": "59d7273c7dde3b2786f7325da08a303779ee718443aaa25d03db19c9e909591b" } } ] diff --git a/doc/schemas/offer.json b/doc/schemas/offer.json index 06c791f14074..991107b0cd4c 100644 --- a/doc/schemas/offer.json +++ b/doc/schemas/offer.json @@ -196,10 +196,10 @@ } }, "response": { - "offer_id": "offeridl21000002100000210000021000002100000210000021000002100000", + "offer_id": "dca9774ba2925b48c42eb12e599c09389d9d80d44445c4d0c944556c7228746e", "active": true, "single_use": false, - "bolt12": "lno1qgsq000bolt210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000", + "bolt12": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqgn3qzs2ge5hx6pqwdskcefpzcssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e", "used": false, "created": true } @@ -215,10 +215,10 @@ } }, "response": { - "offer_id": "offeridl22000002200000220000022000002200000220000022000002200000", + "offer_id": "f901018768e13ea2da95f437749e24d22d47b2a6ea3030ef66ae0281df49d94b", "active": true, "single_use": false, - "bolt12": "lno1qgsq000bolt220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000", + "bolt12": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqv85ysq2qepk7enxv4j3gqg2zcssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e", "used": false, "created": true } diff --git a/doc/schemas/openchannel_abort.json b/doc/schemas/openchannel_abort.json index 3af44d85ebc2..b9c261246dc1 100644 --- a/doc/schemas/openchannel_abort.json +++ b/doc/schemas/openchannel_abort.json @@ -81,11 +81,11 @@ "id": "example:openchannel_abort#1", "method": "openchannel_abort", "params": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200" + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5" } }, "response": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200", + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", "channel_canceled": false, "reason": "Abort requested" } diff --git a/doc/schemas/openchannel_bump.json b/doc/schemas/openchannel_bump.json index 6b93147a772f..d55c05be31e2 100644 --- a/doc/schemas/openchannel_bump.json +++ b/doc/schemas/openchannel_bump.json @@ -179,13 +179,13 @@ "params": [ "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", 1000000, - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000", + "cHNidP8BAF4CAAAAAfFzeDEZi+pD6TLIJPXz4vliVqLRobrIby/0l1ZyiZ2dAAAAAAD9////AUFZ3AsAAAAAIlEgO+E35aPNS3YQRaiMByjTJDUYNvBO1Z39o3m42EZGUreaAAAAAAEAcQIAAAAB+wnUg4jUSt7ZSoGLTSFJkEiVi4BORL5XG9PScQI1uHoBAAAAAP3///8CAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAYT9NIAAAAAFgAUIowMzAOV9xHOQM4YHS2bZ5k6oe2HAAAAAQEfAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAAA", "15000perkw" ] }, "response": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000810000", + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", + "psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcAQ4g8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0BDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEICu/Rzf4eie4AAQMIQVncCwAAAAABBCJRIDvhN+WjzUt2EEWojAco0yQ1GDbwTtWd/aN5uNhGRlK3DPwJbGlnaHRuaW5nAQgM79HN/h6J7gABAwhAQg8AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCHcug9YGu7NYAA==", "channel_type": { "bits": [ 12, @@ -197,7 +197,7 @@ ] }, "commitments_secured": false, - "funding_serial": 17725655605188030000, + "funding_serial": 8587946494701319000, "requires_confirmed_inputs": false } }, @@ -206,15 +206,15 @@ "id": "example:openchannel_bump#2", "method": "openchannel_bump", "params": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200", + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", "amount": 1000000, - "initialpsbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000", + "initialpsbt": "cHNidP8BAF4CAAAAAfFzeDEZi+pD6TLIJPXz4vliVqLRobrIby/0l1ZyiZ2dAAAAAAD9////AUFZ3AsAAAAAIlEgO+E35aPNS3YQRaiMByjTJDUYNvBO1Z39o3m42EZGUreaAAAAAAEAcQIAAAAB+wnUg4jUSt7ZSoGLTSFJkEiVi4BORL5XG9PScQI1uHoBAAAAAP3///8CAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAYT9NIAAAAAFgAUIowMzAOV9xHOQM4YHS2bZ5k6oe2HAAAAAQEfAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAAA", "funding_feerate": "15000perkw" } }, "response": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000", + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", + "psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcAQ4g8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0BDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIEu/Rzf4eie4AAQMIQVncCwAAAAABBCJRIDvhN+WjzUt2EEWojAco0yQ1GDbwTtWd/aN5uNhGRlK3DPwJbGlnaHRuaW5nAQgU79HN/h6J7gABAwhAQg8AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJlh/FQRnSXyAA==", "channel_type": { "bits": [ 12, @@ -226,7 +226,7 @@ ] }, "commitments_secured": false, - "funding_serial": 17725655605188040000, + "funding_serial": 11052392398546871794, "requires_confirmed_inputs": false } }, @@ -237,13 +237,13 @@ "params": [ "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", 2000000, - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000", + "cHNidP8BAF4CAAAAAfFzeDEZi+pD6TLIJPXz4vliVqLRobrIby/0l1ZyiZ2dAAAAAAD9////AWINzQsAAAAAIlEgyRg+3pEh88b9FJiCLEenYCcyJ2ackJUIhDusW72BP2iaAAAAAAEAcQIAAAAB+wnUg4jUSt7ZSoGLTSFJkEiVi4BORL5XG9PScQI1uHoBAAAAAP3///8CAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAYT9NIAAAAAFgAUIowMzAOV9xHOQM4YHS2bZ5k6oe2HAAAAAQEfAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAAA", "18750perkw" ] }, "response": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000", + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", + "psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcAQ4g8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0BDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIGu/Rzf4eie4AAQMIYg3NCwAAAAABBCJRIMkYPt6RIfPG/RSYgixHp2AnMidmnJCVCIQ7rFu9gT9oDPwJbGlnaHRuaW5nAQgc79HN/h6J7gABAwiAhB4AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJth/FQRnSXyAA==", "channel_type": { "bits": [ 12, @@ -255,7 +255,7 @@ ] }, "commitments_secured": false, - "funding_serial": 17725655605188050000, + "funding_serial": 11196507586622727666, "requires_confirmed_inputs": false } } diff --git a/doc/schemas/openchannel_init.json b/doc/schemas/openchannel_init.json index f15857d130ed..321037639f5d 100644 --- a/doc/schemas/openchannel_init.json +++ b/doc/schemas/openchannel_init.json @@ -219,14 +219,14 @@ "id": "example:openchannel_init#1", "method": "openchannel_init", "params": { - "id": "nodeid121212121212121212121212121212121212121212121212121212121212", + "id": "03a00f49374e4bb876e766e9305e5fefa86e53dbc89a4f27d794b02f59ca316426", "amount": 1000000, - "initialpsbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000" + "initialpsbt": "cHNidP8BAF4CAAAAARxvUMSNjH7EKMXzxKwycdOSZ64xHQfWS7JFe0pAwIPCAAAAAAD9////AahhAAAAAAAAIlEg+3d9jpNmK0getyg5W+Mp31CPIRDKcJg/mZs/uaVrQ+GbAAAAAAEAiQIAAAAB8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0AAAAAAP3///8CYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aICEHgAAAAAAIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd+aAAAAAQErYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aAAA" } }, "response": { "channel_id": "a5be438539f73c018a98a4b9dd557d62430881c56552025b5579d180cc3887ed", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000", + "psbt": "cHNidP8BAgQCAAAAAQMEmwAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQCJAgAAAAHxc3gxGYvqQ+kyyCT18+L5Ylai0aG6yG8v9JdWcomdnQAAAAAA/f///wJiDc0LAAAAACJRIMkYPt6RIfPG/RSYgixHp2AnMidmnJCVCIQ7rFu9gT9ogIQeAAAAAAAiACDJvFwGPK7796bHgUQHtWJ7T4GotW7L6TLGgvnLrA0Z35oAAAABAStiDc0LAAAAACJRIMkYPt6RIfPG/RSYgixHp2AnMidmnJCVCIQ7rFu9gT9oAQ4gHG9QxI2MfsQoxfPErDJx05JnrjEdB9ZLskV7SkDAg8IBDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIIu/Rzf4eie4AAQMIqGEAAAAAAAABBCJRIPt3fY6TZitIHrcoOVvjKd9QjyEQynCYP5mbP7mla0PhDPwJbGlnaHRuaW5nAQgk79HN/h6J7gABAwhAQg8AAAAAAAEEIgAgBkixRgS2irzkjzD4bs/Wm7V/PQFNNgUvPR5aBVpSJHoM/AlsaWdodG5pbmcBCJtVC0YlHyOoAA==", "channel_type": { "bits": [ 12, @@ -238,7 +238,7 @@ ] }, "commitments_secured": false, - "funding_serial": 17725655605188010000, + "funding_serial": 11192864844797649832, "requires_confirmed_inputs": false } }, @@ -247,14 +247,14 @@ "id": "example:openchannel_init#2", "method": "openchannel_init", "params": [ - "nodeid121212121212121212121212121212121212121212121212121212121212", + "03a00f49374e4bb876e766e9305e5fefa86e53dbc89a4f27d794b02f59ca316426", 500000, - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000" + "cHNidP8BAF4CAAAAARxvUMSNjH7EKMXzxKwycdOSZ64xHQfWS7JFe0pAwIPCAAAAAAD9////AetRxQsAAAAAIlEg21kTTo7K2doCG6F2JqgaDjc1kRCrH7AL08oPVVJhuE+bAAAAAAEAiQIAAAAB8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0AAAAAAP3///8CYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aICEHgAAAAAAIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd+aAAAAAQErYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aAAA" ] }, "response": { "channel_id": "b3b2e46371876858784cd1b87ecf406e32d8f98b7a44b7f436d1dca317ce0f1b", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000", + "psbt": "cHNidP8BAgQCAAAAAQMEmwAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQCJAgAAAAHxc3gxGYvqQ+kyyCT18+L5Ylai0aG6yG8v9JdWcomdnQAAAAAA/f///wJiDc0LAAAAACJRIMkYPt6RIfPG/RSYgixHp2AnMidmnJCVCIQ7rFu9gT9ogIQeAAAAAAAiACDJvFwGPK7796bHgUQHtWJ7T4GotW7L6TLGgvnLrA0Z35oAAAABAStiDc0LAAAAACJRIMkYPt6RIfPG/RSYgixHp2AnMidmnJCVCIQ7rFu9gT9oAQ4gHG9QxI2MfsQoxfPErDJx05JnrjEdB9ZLskV7SkDAg8IBDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIKu/Rzf4eie4AAQMI61HFCwAAAAABBCJRINtZE06OytnaAhuhdiaoGg43NZEQqx+wC9PKD1VSYbhPDPwJbGlnaHRuaW5nAQgs79HN/h6J7gABAwggoQcAAAAAAAEEIgAgwbQfi9x464yTOq8b2y9CaCVPKAtJ32SfSqtAVGakS8gM/AlsaWdodG5pbmcBCEl4ogWzGZoyAA==", "channel_type": { "bits": [ 12, @@ -266,7 +266,7 @@ ] }, "commitments_secured": false, - "funding_serial": 17725655605188020000, + "funding_serial": 5294159507337353778, "requires_confirmed_inputs": false } } diff --git a/doc/schemas/openchannel_signed.json b/doc/schemas/openchannel_signed.json index 6d8ed6e7f4f4..011180c8bbf2 100644 --- a/doc/schemas/openchannel_signed.json +++ b/doc/schemas/openchannel_signed.json @@ -94,14 +94,14 @@ "id": "example:openchannel_signed#1", "method": "openchannel_signed", "params": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200", - "signed_psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000" + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", + "signed_psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcIgICRz15z0oQ57qDTAJqrEPqGLCn+3Xs2lGEv6+oxGYV9rdHMEQCID20o7OkdrA186bhtl5XxvomAgLw5qTckxZ94vSI8teaAiAIfpvcxym7FktDtx2ApNv/Tgz0EOxLEtpXp8HgO8/pqQEiBgJHPXnPShDnuoNMAmqsQ+oYsKf7dezaUYS/r6jEZhX2twgDz+yHAAAAAAEOIPFzeDEZi+pD6TLIJPXz4vliVqLRobrIby/0l1ZyiZ2dAQ8EAAAAAAEQBP3///8M/AlsaWdodG5pbmcBCBLv0c3+HonuAAEDCEFZ3AsAAAAAAQQiUSA74Tflo81LdhBFqIwHKNMkNRg28E7Vnf2jebjYRkZStyEHE0cioCqqq2UZ2npxQi9Q6DXNZheODM6F4GjHHS3XScEJAG/ctUwEAAAADPwJbGlnaHRuaW5nAQgU79HN/h6J7gABAwhAQg8AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJlh/FQRnSXyAA==" } }, "response": { - "tx": "02000000000101sgpsbt11000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000", - "txid": "txidocsigned1011000110001100011000110001100011000110001100011000", - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200" + "tx": "02000000000101f1737831198bea43e932c824f5f3e2f96256a2d1a1bac86f2ff4975672899d9d0000000000fdffffff024159dc0b000000002251203be137e5a3cd4b761045a88c0728d324351836f04ed59dfda379b8d8464652b740420f0000000000220020c9bc5c063caefbf7a6c7814407b5627b4f81a8b56ecbe932c682f9cbac0d19df0247304402203db4a3b3a476b035f3a6e1b65e57c6fa260202f0e6a4dc93167de2f488f2d79a0220087e9bdcc729bb164b43b71d80a4dbff4e0cf410ec4b12da57a7c1e03bcfe9a9012102473d79cf4a10e7ba834c026aac43ea18b0a7fb75ecda5184bfafa8c46615f6b79a000000", + "txid": "96239136e3ac09f93976cc24142edb8f40139b1d5f50b19263649de5d8433962", + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5" } }, { @@ -110,13 +110,13 @@ "method": "openchannel_signed", "params": [ "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000" + "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcIgICRz15z0oQ57qDTAJqrEPqGLCn+3Xs2lGEv6+oxGYV9rdHMEQCIFl+CUBKJcswA/8DnqzPrYolo0k0uUfRJv60eB4niMmJAiA169wRBmliX5GL7+hqb2OHZ5i81V0lkIJylHfvkn933QEiBgJHPXnPShDnuoNMAmqsQ+oYsKf7dezaUYS/r6jEZhX2twgDz+yHAAAAAAEOIPFzeDEZi+pD6TLIJPXz4vliVqLRobrIby/0l1ZyiZ2dAQ8EAAAAAAEQBP3///8M/AlsaWdodG5pbmcBCBrv0c3+HonuAAEDCGINzQsAAAAAAQQiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aCEHn35PoCbJlSMQ2fFCjyoCQfQi72lK/cajhKIKcycdYWwJABIqDc8FAAAADPwJbGlnaHRuaW5nAQgc79HN/h6J7gABAwiAhB4AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJth/FQRnSXyAA==" ] }, "response": { - "tx": "02000000000101sgpsbt12000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000120001200012000", - "txid": "txidocsigned1012000120001200012000120001200012000120001200012000", - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200" + "tx": "02000000000101f1737831198bea43e932c824f5f3e2f96256a2d1a1bac86f2ff4975672899d9d0000000000fdffffff02620dcd0b00000000225120c9183ede9121f3c6fd1498822c47a760273227669c909508843bac5bbd813f6880841e0000000000220020c9bc5c063caefbf7a6c7814407b5627b4f81a8b56ecbe932c682f9cbac0d19df024730440220597e09404a25cb3003ff039eaccfad8a25a34934b947d126feb4781e2788c989022035ebdc110669625f918befe86a6f63876798bcd55d259082729477ef927f77dd012102473d79cf4a10e7ba834c026aac43ea18b0a7fb75ecda5184bfafa8c46615f6b79a000000", + "txid": "c283c0404a7b45b24bd6071d31ae6792d37132acc4f3c528c47e8c8dc4506f1c", + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5" } } ] diff --git a/doc/schemas/openchannel_update.json b/doc/schemas/openchannel_update.json index da85795244be..afe5c6322d06 100644 --- a/doc/schemas/openchannel_update.json +++ b/doc/schemas/openchannel_update.json @@ -211,13 +211,13 @@ "id": "example:openchannel_update#1", "method": "openchannel_update", "params": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000" + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", + "psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcAQ4g8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0BDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIEu/Rzf4eie4AAQMIQVncCwAAAAABBCJRIDvhN+WjzUt2EEWojAco0yQ1GDbwTtWd/aN5uNhGRlK3DPwJbGlnaHRuaW5nAQgU79HN/h6J7gABAwhAQg8AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJlh/FQRnSXyAA==" } }, "response": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000", + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", + "psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcAQ4g8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0BDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIEu/Rzf4eie4AAQMIQVncCwAAAAABBCJRIDvhN+WjzUt2EEWojAco0yQ1GDbwTtWd/aN5uNhGRlK3DPwJbGlnaHRuaW5nAQgU79HN/h6J7gABAwhAQg8AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJlh/FQRnSXyAA==", "channel_type": { "bits": [ 12, @@ -239,12 +239,12 @@ "method": "openchannel_update", "params": [ "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000" + "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcAQ4g8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0BDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIGu/Rzf4eie4AAQMIYg3NCwAAAAABBCJRIMkYPt6RIfPG/RSYgixHp2AnMidmnJCVCIQ7rFu9gT9oDPwJbGlnaHRuaW5nAQgc79HN/h6J7gABAwiAhB4AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJth/FQRnSXyAA==" ] }, "response": { - "channel_id": "channelid0111200111200111200111200111200111200111200111200111200", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000", + "channel_id": "b020c1c6818daf024954c9ee578caad058cbcae7dd75b2c4d38b8f6f81901ff5", + "psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcAQ4g8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0BDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIGu/Rzf4eie4AAQMIYg3NCwAAAAABBCJRIMkYPt6RIfPG/RSYgixHp2AnMidmnJCVCIQ7rFu9gT9oDPwJbGlnaHRuaW5nAQgc79HN/h6J7gABAwiAhB4AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJth/FQRnSXyAA==", "channel_type": { "bits": [ 12, diff --git a/doc/schemas/pay.json b/doc/schemas/pay.json index 9561aac0a59a..993395cd9906 100644 --- a/doc/schemas/pay.json +++ b/doc/schemas/pay.json @@ -244,17 +244,17 @@ "id": "example:pay#1", "method": "pay", "params": [ - "lnbcrt100n1pnt2bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000bolt11invl032000000000" + "lnbcrt500n1pne035qsp5kk6w4wjl0wudssp0pze5lgkz9hcav6ql523hjxc92knt398y2csqpp54va949c65wepf98heejx7pmjxtqsexghcvehty6urt4l54cl5xssdqcdsenygryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqgrjzax5dyj6dqqhgrt7t53hrmw4xvjs56kdy450c8jdv53fzf3n4kmersmgydpyyam87jrnu9wrcn78zy6w53zx3lqv45js6sa6rspqqa07y46" ] }, "response": { - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", - "payment_hash": "paymenthashinvl0320032003200320032003200320032003200320032003200", - "created_at": 1738000000, + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "payment_hash": "ab3a5a971aa3b21494f7ce646f077232c10c9917c33375935c1aebfa571fa1a1", + "created_at": 1738000000.0, "parts": 1, "amount_msat": 50000, "amount_sent_msat": 50001, - "payment_preimage": "paymentpreimagep010101010101010101010101010101010101010101010101", + "payment_preimage": "83ffe698292fbb6083ffe698292fbb6083ffe698292fbb6083ffe698292fbb60", "status": "complete" } }, @@ -263,17 +263,17 @@ "id": "example:pay#2", "method": "pay", "params": { - "bolt11": "lnbcrt100n1pnt2bolt11invl030300000000bolt11invl030300000000bolt11invl030300000000bolt11invl030300000000bolt11invl030300000000bolt11invl030300000000bolt11invl030300000000bolt11invl030300000000bolt11invl030300000000bolt11invl030300000000" + "bolt11": "lnbcrt1u1pne035qsp5xl6xj5nrlrwfadkw89p0htfcqlkt0qrnykpc4kh3vlyr69cglv5qpp59v2rfk0xrknvtuf9yd5lf2vwrhwwwg45mvalz42nhpaff5vax5wsdqcdsenxgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgq04xpv4pju07a2mt3d02rf5u8ptj8h8vy7qxtc74z6y609x8rwrkhvq2elv8v5mrwac42scc70c7nnyu4xrxu9c8wcsync9dd5dnqdfqqrngrdv" } }, "response": { - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", - "payment_hash": "paymenthashinvl0330033003300330033003300330033003300330033003300", - "created_at": 1738000000, + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "payment_hash": "2b1434d9e61da6c5f1252369f4a98e1ddce722b4db3bf15553b87a94d19d351d", + "created_at": 1738000000.0, "parts": 1, "amount_msat": 100000, "amount_sent_msat": 100000, - "payment_preimage": "paymentpreimagep020202020202020202020202020202020202020202020202", + "payment_preimage": "83ffe698292fbb6183ffe698292fbb6183ffe698292fbb6183ffe698292fbb61", "status": "complete" } } diff --git a/doc/schemas/ping.json b/doc/schemas/ping.json index 741ad6bf6dac..d08e50a8cbc7 100644 --- a/doc/schemas/ping.json +++ b/doc/schemas/ping.json @@ -69,7 +69,7 @@ "id": "example:ping#1", "method": "ping", "params": { - "id": "nodeid010101010101010101010101010101010101010101010101010101010101", + "id": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "len": 128, "pongbytes": 128 } @@ -83,7 +83,7 @@ "id": "example:ping#2", "method": "ping", "params": { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "len": 1000, "pongbytes": 65535 } diff --git a/doc/schemas/plugin.json b/doc/schemas/plugin.json index 0a662ab303cc..1a15f432fbc2 100644 --- a/doc/schemas/plugin.json +++ b/doc/schemas/plugin.json @@ -196,124 +196,124 @@ "method": "plugin", "params": { "subcommand": "start", - "plugin": "/root/lightning/tests/plugins/allow_even_msgs.py" + "plugin": "/home/rusty/devel/cvs/lightning/tests/plugins/allow_even_msgs.py" } }, "response": { "command": "start", "plugins": [ { - "name": "/root/lightning/plugins/autoclean", + "name": "/home/rusty/devel/cvs/lightning/plugins/autoclean", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/chanbackup", + "name": "/home/rusty/devel/cvs/lightning/plugins/chanbackup", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/bcli", + "name": "/home/rusty/devel/cvs/lightning/plugins/bcli", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/commando", + "name": "/home/rusty/devel/cvs/lightning/plugins/commando", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/funder", + "name": "/home/rusty/devel/cvs/lightning/plugins/funder", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/topology", + "name": "/home/rusty/devel/cvs/lightning/plugins/topology", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/exposesecret", + "name": "/home/rusty/devel/cvs/lightning/plugins/exposesecret", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/keysend", + "name": "/home/rusty/devel/cvs/lightning/plugins/keysend", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/offers", + "name": "/home/rusty/devel/cvs/lightning/plugins/offers", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/pay", + "name": "/home/rusty/devel/cvs/lightning/plugins/pay", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/recklessrpc", + "name": "/home/rusty/devel/cvs/lightning/plugins/recklessrpc", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/recover", + "name": "/home/rusty/devel/cvs/lightning/plugins/recover", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/txprepare", + "name": "/home/rusty/devel/cvs/lightning/plugins/txprepare", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/cln-renepay", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-renepay", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/cln-xpay", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-xpay", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/spenderp", + "name": "/home/rusty/devel/cvs/lightning/plugins/spenderp", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/cln-askrene", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-askrene", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/sql", + "name": "/home/rusty/devel/cvs/lightning/plugins/sql", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/cln-grpc", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-grpc", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/cln-lsps-client", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-lsps-client", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/cln-bip353", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-bip353", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/bookkeeper", + "name": "/home/rusty/devel/cvs/lightning/plugins/bookkeeper", "active": true, "dynamic": false }, { - "name": "/root/lightning/tests/plugins/allow_even_msgs.py", + "name": "/home/rusty/devel/cvs/lightning/tests/plugins/allow_even_msgs.py", "active": true, "dynamic": true } @@ -326,7 +326,7 @@ "method": "plugin", "params": { "subcommand": "stop", - "plugin": "/root/lightning/tests/plugins/allow_even_msgs.py" + "plugin": "/home/rusty/devel/cvs/lightning/tests/plugins/allow_even_msgs.py" } }, "response": { @@ -346,112 +346,112 @@ "command": "list", "plugins": [ { - "name": "/root/lightning/plugins/autoclean", + "name": "/home/rusty/devel/cvs/lightning/plugins/autoclean", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/chanbackup", + "name": "/home/rusty/devel/cvs/lightning/plugins/chanbackup", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/bcli", + "name": "/home/rusty/devel/cvs/lightning/plugins/bcli", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/commando", + "name": "/home/rusty/devel/cvs/lightning/plugins/commando", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/funder", + "name": "/home/rusty/devel/cvs/lightning/plugins/funder", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/topology", + "name": "/home/rusty/devel/cvs/lightning/plugins/topology", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/exposesecret", + "name": "/home/rusty/devel/cvs/lightning/plugins/exposesecret", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/keysend", + "name": "/home/rusty/devel/cvs/lightning/plugins/keysend", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/offers", + "name": "/home/rusty/devel/cvs/lightning/plugins/offers", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/pay", + "name": "/home/rusty/devel/cvs/lightning/plugins/pay", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/recklessrpc", + "name": "/home/rusty/devel/cvs/lightning/plugins/recklessrpc", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/recover", + "name": "/home/rusty/devel/cvs/lightning/plugins/recover", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/txprepare", + "name": "/home/rusty/devel/cvs/lightning/plugins/txprepare", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/cln-renepay", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-renepay", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/cln-xpay", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-xpay", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/spenderp", + "name": "/home/rusty/devel/cvs/lightning/plugins/spenderp", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/cln-askrene", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-askrene", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/sql", + "name": "/home/rusty/devel/cvs/lightning/plugins/sql", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/cln-grpc", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-grpc", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/cln-lsps-client", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-lsps-client", "active": true, "dynamic": false }, { - "name": "/root/lightning/plugins/cln-bip353", + "name": "/home/rusty/devel/cvs/lightning/plugins/cln-bip353", "active": true, "dynamic": true }, { - "name": "/root/lightning/plugins/bookkeeper", + "name": "/home/rusty/devel/cvs/lightning/plugins/bookkeeper", "active": true, "dynamic": false } diff --git a/doc/schemas/preapproveinvoice.json b/doc/schemas/preapproveinvoice.json index d79c726204be..4c5296e4b8d5 100644 --- a/doc/schemas/preapproveinvoice.json +++ b/doc/schemas/preapproveinvoice.json @@ -49,7 +49,7 @@ "id": "example:preapproveinvoice#1", "method": "preapproveinvoice", "params": { - "bolt11": "lnbcrt100n1pnt2bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000bolt11invl020400000000" + "bolt11": "lnbcrt1230n1pne035qsp5s2tkvc25q0p9qu5ghf6pal04thl4kl9q9jggx0fetq5tx7szc0gspp5mmpxzxv7tkpxjhvwyztwky6qlsw3umd87h7x7dvn0hck5t0lc84sdqlv3jhxcmjd9c8g6t0dcsxjmnktakrydqcqp99qxpqysgqa9q3g64xjfq3wqpyxn378zzs3grvlvhmpvtcedvzf0rq0ycu4xgr0ly93ut0wjdyfgfaldteev97qqt6q539qy7ktng4ylfj85kzmkqp5lsp6u" } }, "response": {} @@ -59,7 +59,7 @@ "id": "example:preapproveinvoice#2", "method": "preapproveinvoice", "params": [ - "lnbcrt100n1pnt2bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000bolt11invl020500000000" + "lnbcrt1240n1pne035qsp590nuq4ek3zp48qm5rve22ye75jc6y564fh8qjrlr0j8at7egmtuqpp5ms3uy3duktelvxj02h6nrdzhge83uu5xumyrmxwu4akpezzv80hsdqlv3jhxcmjd9c8g6t0dcsxjmnktakrydgcqp99qxpqysgqad46gpve6njtqr9zsvrz8a56ndz953s88kedwuzge3d4tgv8gfk8u8al36nwmnchrkr7wwy7vc04fdvnewhusxcp457jucl5a5lt4dsqzr7sj8" ] }, "response": {} diff --git a/doc/schemas/preapprovekeysend.json b/doc/schemas/preapprovekeysend.json index 348cad2411e3..84d471ed6853 100644 --- a/doc/schemas/preapprovekeysend.json +++ b/doc/schemas/preapprovekeysend.json @@ -67,7 +67,7 @@ "id": "example:preapprovekeysend#1", "method": "preapprovekeysend", "params": { - "destination": "nodeid020202020202020202020202020202020202020202020202020202020202", + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", "payment_hash": "0000000000000000000000000000000000000000000000000000000000000000", "amount_msat": 1000 } @@ -79,7 +79,7 @@ "id": "example:preapprovekeysend#2", "method": "preapprovekeysend", "params": [ - "nodeid050505050505050505050505050505050505050505050505050505050505", + "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e", "0101010101010101010101010101010101010101010101010101010101010101", 2000 ] diff --git a/doc/schemas/recoverchannel.json b/doc/schemas/recoverchannel.json index 5029d7388c65..402655515a55 100644 --- a/doc/schemas/recoverchannel.json +++ b/doc/schemas/recoverchannel.json @@ -58,12 +58,12 @@ "method": "recoverchannel", "params": { "scb": [ - "0000000000000001channelid0340000340000340000340000340000340000340000340000340000nodeid03030303030303030303030303030303030303030303030303030303030300017f000001034003400340034003400340034003400340034003400340034003400340034003400340034003400340034003400003401000", - "0000000000000002channelid0340200340200340200340200340200340200340200340200340200nodeid03030303030303030303030303030303030303030303030303030303030300017f000001034203420342034203420342034203420342034203420342034203420342034203420342034203420342034203420003401000", - "0000000000000003channelid0410000410000410000410000410000410000410000410000410000nodeid01010101010101010101010101010101010101010101010101010101010100017f000001041004100410041004100410041004100410041004100410041004100410041004100410041004100410041004100003401000", - "0000000000000004channelid0120000120000120000120000120000120000120000120000120000nodeid01010101010101010101010101010101010101010101010101010101010100017f000001012001200120012001200120012001200120012001200120012001200120012001200120012001200120012001200003401000", - "0000000000000005channelid1520015200152001520015200152001520015200152001520015200nodeid01010101010101010101010101010101010101010101010101010101010100017f000001015201520152015201520152015201520152015201520152015201520152015201520152015201520152015201520003401000", - "0000000000000006channelid1240012400124001240012400124001240012400124001240012400nodeid02020202020202020202020202020202020202020202020202020202020200017f000001012401240124012401240124012401240124012401240124012401240124012401240124012401240124012401240003401000" + "0000000000000006f4e1de801de57374d5737da622611e3a1ad9f16d5df9c30fceecc11ce732eeeb022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59017f000001a95cbe3270e5e0998af5eb0a67f7bf6e8d5b3d3d43059b3e4cfbd1e4fca6152c51320000000100000000000f42400003401000000000eb015c0000fffffffffffe000000020000ffffffffffff3283fc1863a9702a8e188ed55475324e55485a8758d2068cfea35851418c55740000fffffffffffed00ec892b1739b55ddc0cca2988d8731eb33f2295c1fcc13fdbdfff9d3f85d6d038402a6939f0f9d5c7a41464169eb692b4d2d73266b3c46345cd036ca577a15bdeeaa027662682a646ce7671c3a091bf639176e87d3379022126b209ebadadae19ffc0e02c59668c64362eaeabf44ee4f10b98fc92412cbea74b6f3a917423dfdf3ca282602773e6c29472ab708e5b127e8ae1ce2d8b7f56b457299f93bb72bb73fdbcf91770501010702a5f8", + "000000000000000121bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d017f000001dcf8fdd5381f36008c3eac24cdde5ec0fea8f39240575ef0cb4406cb51ad419dd7810000000000000000000f424000034010000000011301840000fffffffffffa000000030000fffffffffffb8ff7d0df4eee78e558b4e07f82049aaa933f4f4932e13e1e7fee5cb103f7a0b50000fffffffffffa79176754ea338ffa080591b946a6ac1c47ff579ae7e45857bf01261ebe1c46ba0000fffffffffffcbdb924885293efdaa1ba8f556161f4fe525c19483def49b9af85c1623bc6d27b038402add69f29ad433cb7d4c9470f2d49d80245fd9e76a992197528a131e37711efac02c57de22185162001ffaf2e61b053b1d0e280d73ecec1b04916df2c65642d94a102cd4e1a07ee85714b6eada09d9cf81aeb15bfc72ddd003235530c58bbd0c0144902b10f36d2ebab3ce560abf15ceb1bef619491e0597a794fdafcfdf8708eec9e2d0501010702a5f8", + "00000000000000027512083907c74ed3a045e9bf772b3d72948eb93daf84a1cee57108800451aaf2035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d017f000001dcf80239a9c9f2a91e69ba01800baf71f55efe457677b2e5cbd640b888dc1c9375b40000000000000000000f42400003401000000000c301340000ffffffffffff000000010000ffffffffffff0e07b6188dd51f15bb5cb9027950bf487a612dca57e2928de3f28f6ee796978b03840330b7ddf07e5bc779ea468875371ea25b560491c5feaeeb5e229ded3820d1d69103620748b3796c4988dd0fc63b92ae011dc989f15c433a55ed38e24318a43b4c93021bfe48bb1aded55878b00a3f00c5c1bffa1010510d8ba1c6372012ac9c3205d20201604aa7056ab8926038a846014bdbe4874ceef7ce45141b8009b0e2f49e7ec70501010702a5f8", + "0000000000000003222d999f537e32e9458c5db17a63e012dcced61340de06fda5bc30566270b0aa0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f0000017531932479f6d82ee59c7aa67b99568de0a31c202f6a3ff18a6bdd1ec22683cf026500000000000000000bebb3cb00034010000000009b010c0001000000000000000000000384021f90b5f38e0c0ea50bccfcf70a32cd4395c8c544e70636b7cc41831fe33fb4ce03bcfb0d457dfa07f508f434e6a2f040dd3dd233e7002dbe1c1b5d86ed5d3efd76030a4ce755504748f47401fc016578a52e104cbbd28251f10b11e4b3e55d0fe1d303986bdd0842662b8d0d18147630a720e952a2cda624c63ef4903357d27e54f7920501000702a5f8", + "0000000000000004a4a379248e49d207cc984646e632e1a31105a85708b9d6d961a5018fdd489f5a0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f000001970c7f07a15ce1fe1519d46536c4036f1c13527fa8bf52f6a5299b860f982ba2ed7e00000001000000000000753000034010000000009b010c000100000000000000000000038402c8aabcf1224df10e9d803dc3918797892fe0abec56d3e06f121bcebbe9ab0a2c03bd181375d57b8b1d15def9c5f9007b3c3ff98a140c0a44c9dc5f54ac7ea4baf30310952e08f9960711d8142dfa171c0fc2348762acea003f3897397f6ace8454130382da2a229450c4a8e8cea70bbd147eaaf981184bff8c1d70b70c30a494d848420501010702a5f8", + "000000000000000509eb55872cd9039ecd08281af756e23b15aad4129fd6a9bcd71b472114ebf43a0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f000001970c64ed91a21c10208d715b59801b12b4a6eff9ea9e4e7d45971c298b62d90ece8e00000000000000000000c35000034010000000009b010c000100000000000000000000038402e885f38e784050b386fb32d20935acc61059d8b02b6bec0ac2bfc8b2c5cf7f3103ae69dbfc6511ba0781c13113e16e1557a875b910cb1cb1fe1ef95a7edb36135a03758d5faa8515942873911e21869b1b90a4be72af14b394bc064da6ba518b087003750b588cd1fb8d60276c12c1c3eef7e302e3772414234404289db8c10f5731320501010702a5f8" ] } }, diff --git a/doc/schemas/renepay.json b/doc/schemas/renepay.json index ae7e41449d3c..f2a707b10e91 100644 --- a/doc/schemas/renepay.json +++ b/doc/schemas/renepay.json @@ -220,20 +220,20 @@ "id": "example:renepay#1", "method": "renepay", "params": { - "invstring": "lnbcrt100n1pnt2bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000", + "invstring": "lnbcrt1pne035qsp5j7czxfpnquxg9vcw9crqh87raxz0glv8n6gx88jwdsp28pmfk68qpp5uz6ktrhcug72ke2xaf0h099gcasysw4lxcfmxn6qrh6p9z2y47hqdqcdserzgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqn7ge40jwkslz0j0vhfzy743lathy2sqy2dfyyahalxszs979d9s5v89ten2zcrna3xlxhkerk7p9k7a6u5fdddx5dzzas4ye2yp6desq3zwkg2", "amount_msat": 400000 } }, "response": { - "bolt11": "lnbcrt100n1pnt2bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000", + "bolt11": "lnbcrt1pne035qsp5j7czxfpnquxg9vcw9crqh87raxz0glv8n6gx88jwdsp28pmfk68qpp5uz6ktrhcug72ke2xaf0h099gcasysw4lxcfmxn6qrh6p9z2y47hqdqcdserzgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqn7ge40jwkslz0j0vhfzy743lathy2sqy2dfyyahalxszs979d9s5v89ten2zcrna3xlxhkerk7p9k7a6u5fdddx5dzzas4ye2yp6desq3zwkg2", "amount_msat": 400000, - "payment_hash": "paymenthashinvl0210021002100210021002100210021002100210021002100", - "destination": "nodeid020202020202020202020202020202020202020202020202020202020202", - "created_at": 1738000000, + "payment_hash": "e0b5658ef8e23cab6546ea5f7794a8c760483abf3613b34f401df4128944afae", + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "created_at": 1738000000.0, "groupid": 1, "parts": 2, "status": "complete", - "payment_preimage": "paymentpreimager010101010101010101010101010101010101010101010101", + "payment_preimage": "08377744ca985c1908377744ca985c1908377744ca985c1908377744ca985c19", "amount_sent_msat": 400000 } }, @@ -242,19 +242,19 @@ "id": "example:renepay#2", "method": "renepay", "params": { - "invstring": "lnbcrt100n1pnt2bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000" + "invstring": "lnbcrt40n1pne035qsp5pwtnqs2trxfwwkl8vaycu6fmvud0edagevz4eahvy6ls30u7cfrqpp52wnj6qrv99d6cte0s8ntstwkwxf42ksct8mujruyv7940nndzr3qdqaveskjmr9vssxgetnvdexjur5d9hkuxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgq6sh90jk5uuccyzrdlnd5xyd92hxre78kupcpmlg0uerm35855xlklh5zlsmahpad6x8cv4ky2u6p394p270vyetlzx2u6ypyg22xn0qq0z6fuh" } }, "response": { - "bolt11": "lnbcrt100n1pnt2bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000bolt11invl030400000000", + "bolt11": "lnbcrt40n1pne035qsp5pwtnqs2trxfwwkl8vaycu6fmvud0edagevz4eahvy6ls30u7cfrqpp52wnj6qrv99d6cte0s8ntstwkwxf42ksct8mujruyv7940nndzr3qdqaveskjmr9vssxgetnvdexjur5d9hkuxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgq6sh90jk5uuccyzrdlnd5xyd92hxre78kupcpmlg0uerm35855xlklh5zlsmahpad6x8cv4ky2u6p394p270vyetlzx2u6ypyg22xn0qq0z6fuh", "amount_msat": 4000, - "payment_hash": "paymenthashinvl0340034003400340034003400340034003400340034003400", - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", - "created_at": 1738000000, + "payment_hash": "53a72d006c295bac2f2f81e6b82dd67193555a1859f7c90f84678b57ce6d10e2", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "created_at": 1738000000.0, "groupid": 1, "parts": 2, "status": "complete", - "payment_preimage": "paymentpreimager020202020202020202020202020202020202020202020202", + "payment_preimage": "83ffe698292fbb6283ffe698292fbb6283ffe698292fbb6283ffe698292fbb62", "amount_sent_msat": 4000 } } diff --git a/doc/schemas/renepaystatus.json b/doc/schemas/renepaystatus.json index 3721ee93c610..8e0873e11f29 100644 --- a/doc/schemas/renepaystatus.json +++ b/doc/schemas/renepaystatus.json @@ -142,21 +142,21 @@ "id": "example:renepaystatus#1", "method": "renepaystatus", "params": { - "invstring": "lnbcrt100n1pnt2bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000" + "invstring": "lnbcrt1pne035qsp5j7czxfpnquxg9vcw9crqh87raxz0glv8n6gx88jwdsp28pmfk68qpp5uz6ktrhcug72ke2xaf0h099gcasysw4lxcfmxn6qrh6p9z2y47hqdqcdserzgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqn7ge40jwkslz0j0vhfzy743lathy2sqy2dfyyahalxszs979d9s5v89ten2zcrna3xlxhkerk7p9k7a6u5fdddx5dzzas4ye2yp6desq3zwkg2" } }, "response": { "paystatus": [ { - "bolt11": "lnbcrt100n1pnt2bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000bolt11invl020100000000", + "bolt11": "lnbcrt1pne035qsp5j7czxfpnquxg9vcw9crqh87raxz0glv8n6gx88jwdsp28pmfk68qpp5uz6ktrhcug72ke2xaf0h099gcasysw4lxcfmxn6qrh6p9z2y47hqdqcdserzgryv4ekxunfwp6xjmmwxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqn7ge40jwkslz0j0vhfzy743lathy2sqy2dfyyahalxszs979d9s5v89ten2zcrna3xlxhkerk7p9k7a6u5fdddx5dzzas4ye2yp6desq3zwkg2", "amount_msat": 400000, - "payment_hash": "paymenthashinvl0210021002100210021002100210021002100210021002100", - "destination": "nodeid020202020202020202020202020202020202020202020202020202020202", - "created_at": 1738000000, + "payment_hash": "e0b5658ef8e23cab6546ea5f7794a8c760483abf3613b34f401df4128944afae", + "destination": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "created_at": 1738000000.0, "groupid": 1, "parts": 2, "status": "complete", - "payment_preimage": "paymentpreimager010101010101010101010101010101010101010101010101", + "payment_preimage": "08377744ca985c1908377744ca985c1908377744ca985c1908377744ca985c19", "amount_sent_msat": 400000 } ] diff --git a/doc/schemas/reserveinputs.json b/doc/schemas/reserveinputs.json index 65789efec50e..e1ae00ab163a 100644 --- a/doc/schemas/reserveinputs.json +++ b/doc/schemas/reserveinputs.json @@ -113,17 +113,17 @@ "id": "example:reserveinputs#1", "method": "reserveinputs", "params": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100" + "psbt": "cHNidP8BADMCAAAAARxvUMSNjH7EKMXzxKwycdOSZ64xHQfWS7JFe0pAwIPCAAAAAAD9////AAAAAAAAAA==" } }, "response": { "reservations": [ { - "txid": "channeltxid111200111200111200111200111200111200111200111200111200", - "vout": 1, + "txid": "c283c0404a7b45b24bd6071d31ae6792d37132acc4f3c528c47e8c8dc4506f1c", + "vout": 0, "was_reserved": false, "reserved": true, - "reserved_to_block": 226 + "reserved_to_block": 227 } ] } @@ -133,17 +133,17 @@ "id": "example:reserveinputs#2", "method": "reserveinputs", "params": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200011200" + "psbt": "cHNidP8BADMCAAAAAWI5Q9jlnWRjkrFQXx2bE0CP2y4UJMx2OfkJrOM2kSOWAAAAAAD9////AAAAAAAAAA==" } }, "response": { "reservations": [ { - "txid": "txidocsigned1011000110001100011000110001100011000110001100011000", - "vout": 1, + "txid": "96239136e3ac09f93976cc24142edb8f40139b1d5f50b19263649de5d8433962", + "vout": 0, "was_reserved": false, "reserved": true, - "reserved_to_block": 226 + "reserved_to_block": 227 } ] } diff --git a/doc/schemas/sendcustommsg.json b/doc/schemas/sendcustommsg.json index a9cb0602b2c2..de1f667e2851 100644 --- a/doc/schemas/sendcustommsg.json +++ b/doc/schemas/sendcustommsg.json @@ -65,7 +65,7 @@ "id": "example:sendcustommsg#1", "method": "sendcustommsg", "params": { - "node_id": "nodeid030303030303030303030303030303030303030303030303030303030303", + "node_id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "msg": "77770012" } }, diff --git a/doc/schemas/sendinvoice.json b/doc/schemas/sendinvoice.json index 798e2b8d0693..d378ec6b8d7d 100644 --- a/doc/schemas/sendinvoice.json +++ b/doc/schemas/sendinvoice.json @@ -211,22 +211,22 @@ "id": "example:sendinvoice#1", "method": "sendinvoice", "params": { - "invreq": "lno1qgsq000bolt210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000210002100021000", + "invreq": "lnr1qqg99gqg2990zl3322sqs52279lrzzst2d5k6urvv5s8getnw3gzqp3zderpzxstt8927ynqg044h0egcd8n5h3n9g0u0v4h8ncc3yg02gps7sjqtqssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e7pqfylfzzhcux84v2552lt7p2ekunuamtsdgyk34a86m4zklkdjjdzt757t4sp0m8cp9tdj6hfe67mcuwl3q7zr4sr4z4gn2fvksykkn5g", "label": "test sendinvoice" } }, "response": { "label": "test sendinvoice", - "bolt12": "lno1qgsq000boltsi100si100si100si100si100si100si100si100si100si100si100si100si100si100si100si100si100si100si100si100si100si100si100si100", - "payment_hash": "paymenthashsdinvsi10si10si10si10si10si10si10si10si10si10si10si10", + "bolt12": "lni1qqg99gqg2990zl3322sqs52279lrzzst2d5k6urvv5s8getnw3gzqp3zderpzxstt8927ynqg044h0egcd8n5h3n9g0u0v4h8ncc3yg02gps7sjqtqssytfzxcs2xkdy0lml0tzy0jzugmyj8kjn8zfzrgq9fsgurc72x82e5zvqyehytxx360zptatj4pygsv9kpal8gnkeyd0tpvd6jv5rkv2uqdgcq204pv4whvd37qg3dg48n0nudvgfw0du46nveyle5q4a2tvru2g4gqgrstm06rld7qk9d5sjtajxztd0lua3zfujsv8lve3wg9px5f34c4wqqvh4pp0dfkr98pur2v55d6ae3cakhn6s9jxn8waf9l00g06g236ymyefu6engjwaqsj4w7cgpkg9naq6kf4zrsqqqqqqqqqqqqqqq5qqqqqqqqqqqqqayjedltzjqqqqqq9yq3ne035q5cq442pqemw8hu9fzzda8nvxcksvjra2sy4c5r9r6et8rj95qqd2ufj8xj065qc0gfq2uqczqqqtqggzvmj9nrga83q474e2sjygxzmq7ln5fmvjxh4skxafx2pmx9wqx5v0qsxsy7vmh0323083refvd9fwvm7r5klg8hjftuqqzygswxl9lfkvlcj72lhlw643qv2gwmfadfydpdwvhydnvgnxmhlgjaxd7nw06y7rx", + "payment_hash": "cedc7bf0a9109bd3cd86c5a0c90faa812b8a0ca3d65671c8b4001aae2647349f", "amount_msat": 1000000, "status": "paid", "pay_index": 2, "amount_received_msat": 1000000, - "paid_at": 1738500000, - "payment_preimage": "paymentpreimagei010101010101010101010101010101010101010101010101", + "paid_at": 1738000000, + "payment_preimage": "c01ed70eb9ddb906c01ed70eb9ddb906c01ed70eb9ddb906c01ed70eb9ddb906", "description": "Simple test", - "expires_at": 1739000000, + "expires_at": 1738000090, "created_index": 4, "updated_index": 2 } diff --git a/doc/schemas/sendonion.json b/doc/schemas/sendonion.json index 924407ed0ccb..7e6fe8e0f73f 100644 --- a/doc/schemas/sendonion.json +++ b/doc/schemas/sendonion.json @@ -346,23 +346,23 @@ "id": "example:sendonion#1", "method": "sendonion", "params": { - "onion": "onion10101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010", + "onion": "00021d5b7e75f56e8fb8c5dbbcfdf954b89d171b35fced6bf4ad929b3b6e081e16c93046493f6f0f4e6f983b424e799b9f60ae7c75fa260760393aad7958e04ec5ea5a06e11078daa9ff31a1aaeed8b04f5ce319118a4bdda9e90861829161dd4d44164816f566d0cc219da32fdd08249068cec2fd589fb216933b95adce045364fcb6d6905a4e4169346b75e6ccfecb0cfdfd74d0574eb684b952db7df8443541cc28296f42afeafbb7a34c3f8c64dce9c0ebb37f5485f66246cbf11b7a8cd4a45d64723b7e706b1ef3eff4ce6133aa86f6c044337716bd0c1173b92b13c4d11453ab850fd945c1af91d3ce41928600bbafbc81b56e3bc704a678a783e2232bc80bc4afa93f84498127123096af80ca5295bb02b6c6524720a0f4dc81075688632b9428f6f4399a0ecf6c17e5c3015c9715af5127000787cc8d7e023f96b6e0175d600911c1dffef6a0d2a8ea8059b287e9e941810de5190ce0c274d6452a8ecc06a0cb98a9550e7e80e8eebdb9c326ca2a3f25b3147daaa68b8d5f745344938645535f858f6a4484b17322b4076714994865ac1660c4f364309bb5147c55bf8458cf6aa7420896d2cb1ee0fe301c83109a102a42d41063c32732ef0366b9b9bd7516c3f7607a54eb3255fa6589bd3ea021cb9deee71b3ea33fa9e509c085216243ea6cea4acf038fee2a4e7418f4087c79423f8bc94fda1ea7de66cb06c131304e39b20634e70721f028427093e059065e6d157cbbdb1ea02476478033164cc90b7707c612897224099c8f3cae86cf0503a1fc1c21e86f4fa7c6332786cc0c44b379516032a93d1c4853453b819d30438814b28bbb14989dfb88819e3fd9b38267b84cc052637ca9c5ae2b149fb53831e4237036cde4b6dd0c0754c52551585692beba1b4228540255ad6fd6bd7912acd47816023332a52075db994decac8cc3611a0f222638084b71a3f8f4c019af28524d96a609fd7cf2e660414b8db54a2d77087087313dea24cab947c04a3ca191d3ba8ffd5ddef72fbc6ad1fc7c71e97cc3da1b677108b907c591c32cb3a41b5636292d9db891013c2d729d67162e4388bee98469f98871af9b5580768f0db885106b981274060f1b3bca8f7297287c6688f6c30054f727d7dd9baa097175fb198b3477c2f1545ea6425f0a6df732ea4be943dff9cece87a9751be426669b1f8b3cb3f7a39f2b72ee68c287e6db1c86405b782c774c22acad3a68bb377713958f6c89e7b8a3d17e52416ea9bdb959949b47af8dd6b380ebc0481873de65edf599f3c1f51c9e4abd388e4d6ad6cf48e5c279286ed7bc683523b9c016227af1cdcf856ec11b47d3f369ac4fde6cee8e19748ef6c365c5effdc81afe560e1597891256dad1b849f550ab681b0c8ba660f1172ac3f63069140c2180537d793f899ba897dae47a848b6e4b1ceac369c59257a3c1d4f2cefe0b64e84ac010397bc55d77a8f801b227ab6453770fc9775788c4a9ce7bdc5f40aa156d1b0c4f9ef41dfbb0518151809761d22e503b9b8725704bbe4f7aaaf4188f80106354743e3f605a1cee1d6d09226176a913a3f9fe9513a081377c820e582fffd534cb27146264972b9f5362dc37cacb821e64ef711eb39addbe1a747df2b1cc54f26dfc1a32ac26297b980e4a492e2242d6d745e508e65f6162ba6e28d4f1f2177c5896c9d82019a74cd6f136e04af3a01a2178e961c0d4e63235982807579ea34f306ec0ea3f0e58a8fee4dd28c2303fa9e09e45b8c9cbc6a69aba0b838473a33e2a287f0824936bfd427f72b7bb7362a40f77136ecfe53173b2acfbbdd49ec390078926d0a9a69114312fee5a9b5ad8f7b80711f76d5ffca8632593b2ea9b2caaebf219ec7586e9d6962353f98b2882fb804a34b16946453038127de73f4e827b190f6001b7a5560b7eb978f8", "first_hop": { - "id": "nodeid020202020202020202020202020202020202020202020202020202020202", - "channel": "109x1x1", + "id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "channel": "110x1x0", "direction": 1, "amount_msat": 1002, "delay": 21, "style": "tlv" }, - "payment_hash": "assocdata0010101010101010101010101010101010101010101010101010101" + "payment_hash": "47c148c1746366e4c2c7496621c22002bc2711b4d9c52cbb9c7b1fdca59c8579" } }, "response": { "message": "Monitor status with listpays or waitsendpay", "created_index": 10, "id": 10, - "payment_hash": "assocdata0010101010101010101010101010101010101010101010101010101", + "payment_hash": "47c148c1746366e4c2c7496621c22002bc2711b4d9c52cbb9c7b1fdca59c8579", "groupid": 1, "amount_sent_msat": 1002, "created_at": 1738000000, diff --git a/doc/schemas/sendpay.json b/doc/schemas/sendpay.json index 4e88c1a65dd1..a61089674303 100644 --- a/doc/schemas/sendpay.json +++ b/doc/schemas/sendpay.json @@ -367,33 +367,33 @@ "params": { "route": [ { - "id": "nodeid020202020202020202020202020202020202020202020202020202020202", - "channel": "109x1x1", + "id": "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", + "channel": "110x1x0", "direction": 1, "amount_msat": 10001, "delay": 15, "style": "tlv" }, { - "id": "nodeid030303030303030303030303030303030303030303030303030303030303", - "channel": "111x1x1", + "id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "channel": "112x1x0", "direction": 0, "amount_msat": 10000, "delay": 9, "style": "tlv" } ], - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", - "payment_secret": "paymentsecretinvl00310003100031000310003100031000310003100031000" + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", + "payment_secret": "c2e882ab5464eb650a67ce396d04d97f670127f1e12aea33961b3f5cef65728e" } }, "response": { "message": "Monitor status with listpays or waitsendpay", "created_index": 2, "id": 2, - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", "groupid": 1, - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000, "amount_sent_msat": 10001, "created_at": 1738000000, diff --git a/doc/schemas/sendpsbt.json b/doc/schemas/sendpsbt.json index fa1c07d77351..9d0a36afe7fb 100644 --- a/doc/schemas/sendpsbt.json +++ b/doc/schemas/sendpsbt.json @@ -71,12 +71,12 @@ "id": "example:sendpsbt#1", "method": "sendpsbt", "params": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000" + "psbt": "cHNidP8BAFICAAAAAQ1vO4mydSo3C9Dv+JXe2vMumPjihk/CDmK4pu1GQ/djAQAAAAD9////AYNq3AsAAAAAFgAUyQltQ/QI6lJgICYsza18hRa5KoEAAAAAAAEAiQIAAAABcQX3ZThhSZo4YV9hEj8LW7d9UHdclBO/07zDnLhKQ3cAAAAAAP3///8CQEIPAAAAAAAiACBbjNO5FM9nzdj6YnPJMDU902R2c0+9liECwt9TuQiAzYFs3AsAAAAAIlEgNfEYT2tHDJ3zR9pixLKOfsnuELIgusOszSIgne8ANuptAAAAAQErgWzcCwAAAAAiUSA18RhPa0cMnfNH2mLEso5+ye4QsiC6w6zNIiCd7wA26gETQBOuwDbikxRfXPyMoEFg8RBu/Cq3cA3e0BvaCpZh9KsZ/1MtTpOODzI+tQwEhSmssFh3TNMkYceyQM6fIQAC4eYhFp/BzQHy0ncLgoHiurwaTCRe3Te7ctEuIHI6ad9PXwH2CQDBIO1CAAAAAAAA" } }, "response": { - "tx": "02000000000155multiw61000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000610006100061000", - "txid": "txid6100061000610006100061000610006100061000610006100061000" + "tx": "020000000001010d6f3b89b2752a370bd0eff895dedaf32e98f8e2864fc20e62b8a6ed4643f7630100000000fdffffff01836adc0b00000000160014c9096d43f408ea526020262ccdad7c8516b92a81014013aec036e293145f5cfc8ca04160f1106efc2ab7700dded01bda0a9661f4ab19ff532d4e938e0f323eb50c048529acb058774cd32461c7b240ce9f210002e1e600000000", + "txid": "88a8ebd201ffda3ff8cfad1829ed8506656ef52298d91f5c06558748f56a6402" } } ] diff --git a/doc/schemas/setchannel.json b/doc/schemas/setchannel.json index cec8252a3c4e..67abce3d311c 100644 --- a/doc/schemas/setchannel.json +++ b/doc/schemas/setchannel.json @@ -176,16 +176,16 @@ "id": "example:setchannel#1", "method": "setchannel", "params": { - "id": "123x1x1", + "id": "124x1x1", "ignorefeelimits": true } }, "response": { "channels": [ { - "peer_id": "nodeid030303030303030303030303030303030303030303030303030303030303", - "channel_id": "channelid0230200230200230200230200230200230200230200230200230200", - "short_channel_id": "123x1x1", + "peer_id": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", + "channel_id": "ecabe6d86abdd57565b3fb7e7c5d724e60ca1a07633951769b5dbfa48dc884b3", + "short_channel_id": "124x1x1", "fee_base_msat": 1, "fee_proportional_millionths": 10, "minimum_htlc_out_msat": 0, @@ -200,7 +200,7 @@ "id": "example:setchannel#2", "method": "setchannel", "params": { - "id": "115x1x1", + "id": "116x1x1", "feebase": 4000, "feeppm": 300, "enforcedelay": 0 @@ -209,9 +209,9 @@ "response": { "channels": [ { - "peer_id": "nodeid050505050505050505050505050505050505050505050505050505050505", - "channel_id": "channelid0250000250000250000250000250000250000250000250000250000", - "short_channel_id": "115x1x1", + "peer_id": "032cf15d1ad9c4a08d26eab1918f732d8ef8fdc6abb9640bf3db174372c491304e", + "channel_id": "f8fc83a432cbfb2fffe222cc06727fdd977b5dd10ebd6707158e799e6f522d9f", + "short_channel_id": "116x1x1", "fee_base_msat": 4000, "fee_proportional_millionths": 300, "minimum_htlc_out_msat": 0, diff --git a/doc/schemas/setconfig.json b/doc/schemas/setconfig.json index 1301d0c72441..2e8278418a73 100644 --- a/doc/schemas/setconfig.json +++ b/doc/schemas/setconfig.json @@ -157,8 +157,8 @@ "config": { "config": "autoclean-expiredinvoices-age", "value_int": 300, - "source": "/tmp/.lightning/regtest/config.setconfig:2", - "plugin": "/root/lightning/plugins/autoclean", + "source": "/home/rusty/.lightning/regtest/config.setconfig:2", + "plugin": "/usr/local/libexec/plugins/autoclean", "dynamic": true } } @@ -176,7 +176,7 @@ "config": { "config": "min-capacity-sat", "value_int": 500000, - "source": "/tmp/.lightning/regtest/config.setconfig:3", + "source": "/home/rusty/.lightning/regtest/config.setconfig:3", "dynamic": true } } diff --git a/doc/schemas/setpsbtversion.json b/doc/schemas/setpsbtversion.json index bcffb3a39a7a..bf9f05089981 100644 --- a/doc/schemas/setpsbtversion.json +++ b/doc/schemas/setpsbtversion.json @@ -63,7 +63,7 @@ "id": "example:setpsbtversion#1", "method": "setpsbtversion", "params": { - "psbt": "cHNidP8BAgpsbt1001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQABBQEBAQYBAwH7BAIAAAAAAQMIQEIPAAAAAAABBCJRIO7yw3zIUblRUcdhCLSjdFxJsYHu2s0Y29bT0bGAGdcbAA==", "version": 0 } }, @@ -76,12 +76,12 @@ "id": "example:setpsbtversion#2", "method": "setpsbtversion", "params": [ - "cHNidP8BAgpsbt20020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202", + "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQABBQECAQYBAwH7BAIAAAAAAQMIQEIPAAAAAAABBCJRIO7yw3zIUblRUcdhCLSjdFxJsYHu2s0Y29bT0bGAGdcbAAEDCNXcMgAAAAAAAQQiUSA2cYCeVGcxdSZII2urHpalr5osmF2lPbYRaw1nKyPcmQA=", 2 ] }, "response": { - "psbt": "cHNidP8BAgpsbt20020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202" + "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQABBQECAQYBAwH7BAIAAAAAAQMIQEIPAAAAAAABBCJRIO7yw3zIUblRUcdhCLSjdFxJsYHu2s0Y29bT0bGAGdcbAAEDCNXcMgAAAAAAAQQiUSA2cYCeVGcxdSZII2urHpalr5osmF2lPbYRaw1nKyPcmQA=" } } ] diff --git a/doc/schemas/showrunes.json b/doc/schemas/showrunes.json index 46193a3f1c29..ccdba11a7d2a 100644 --- a/doc/schemas/showrunes.json +++ b/doc/schemas/showrunes.json @@ -178,7 +178,7 @@ "runes": [ { "rune": "zFMd1fjhrAYxUeFA54TjloZqOt8JrA_i_nYwIgXkag49MA==", - "last_used": 1738000000, + "last_used": 1738000000.0, "unique_id": "0", "restrictions": [], "restrictions_as_english": "" @@ -196,14 +196,14 @@ "runes": [ { "rune": "zFMd1fjhrAYxUeFA54TjloZqOt8JrA_i_nYwIgXkag49MA==", - "last_used": 1738000000, + "last_used": 1738000000.0, "unique_id": "0", "restrictions": [], "restrictions_as_english": "" }, { "rune": "RXgu0DD_i0wSPEZkIDyZIWL0bSAGdhvJ_GHOQdTg04A9MSZpZF4wMjY2ZTQ1OThkMWQzYzQxNWY1NyZtZXRob2Q9bGlzdHBlZXJz", - "last_used": 1738000000, + "last_used": 1738000000.0, "unique_id": "1", "restrictions": [ { @@ -233,7 +233,7 @@ }, { "rune": "QUJEYMLGgiaJvMDv_MhR2hiMKIBTbq-PrL-KxcIlirQ9MiZtZXRob2Q9cGF5JnBuYW1lYW1vdW50bXNhdDwxMDAwMA==", - "last_used": 1738000000, + "last_used": 1738000000.0, "unique_id": "2", "restrictions": [ { @@ -269,7 +269,7 @@ "alternatives": [ { "fieldname": "id", - "value": "nodeid010101010101010101010101010101010101010101010101010101010101", + "value": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "condition": "=", "english": "id equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" } @@ -302,13 +302,13 @@ "alternatives": [ { "fieldname": "pnameid", - "value": "nodeid010101010101010101010101010101010101010101010101010101010101", + "value": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "condition": "=", "english": "pnameid equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" }, { "fieldname": "parr0", - "value": "nodeid010101010101010101010101010101010101010101010101010101010101", + "value": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "condition": "=", "english": "parr0 equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" } @@ -326,7 +326,7 @@ "alternatives": [ { "fieldname": "id", - "value": "nodeid010101010101010101010101010101010101010101010101010101010101", + "value": "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518", "condition": "=", "english": "id equal to 0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" } diff --git a/doc/schemas/signinvoice.json b/doc/schemas/signinvoice.json index cb5552bbd83c..7defdc870e5f 100644 --- a/doc/schemas/signinvoice.json +++ b/doc/schemas/signinvoice.json @@ -61,11 +61,11 @@ "id": "example:signinvoice#1", "method": "signinvoice", "params": { - "invstring": "lnbcrt100n1pnt2bolt11invl010200000000bolt11invl010200000000bolt11invl010200000000bolt11invl010200000000bolt11invl010200000000bolt11invl010200000000bolt11invl010200000000bolt11invl010200000000bolt11invl010200000000bolt11invl010200000000" + "invstring": "lnbcrt10n1pne035qsp5am7uy92zzz7drzwnfjuu2w74hw2s0qjutwtc3jnz778ufwn50cgspp5pmul004jv6lukkje3pg2qw607sf56v7leqvdk0gkn83z67u0q9aqdqlv3jhxcmjd9c8g6t0dcsxjmnktakrzvsxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqdcqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqavy48snxm0pu3hp2eeszumfntnuuzmzsr67t94g9q2crgpp3n0t42q7lya6gja9246k5eluu0twg3n7qntxugqv8yuw99ckte32xvmspc9vnf0" } }, "response": { - "bolt11": "lnbcrt100n1pnt2bolt11invl060600000000bolt11invl060600000000bolt11invl060600000000bolt11invl060600000000bolt11invl060600000000bolt11invl060600000000bolt11invl060600000000bolt11invl060600000000bolt11invl060600000000bolt11invl060600000000" + "bolt11": "lnbcrt10n1pne035qsp5am7uy92zzz7drzwnfjuu2w74hw2s0qjutwtc3jnz778ufwn50cgspp5pmul004jv6lukkje3pg2qw607sf56v7leqvdk0gkn83z67u0q9aqdqlv3jhxcmjd9c8g6t0dcsxjmnktakrzvsxqyjw5qcqp9rzjqgkjyd3q5dv6gllh77kygly9c3kfy0d9xwyjyxsq2nq3c83u5vw4jqqqdcqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgq9vxe6l9fs0n0t3lzecwsmqmwuen2v0ugddya6ays98d7y3kcusvjfee5zcgf274wpm54ta8w6sa8tlkn5w4rckj4tv7qrv2j9dz2kyspj0776q" } }, { @@ -73,11 +73,11 @@ "id": "example:signinvoice#2", "method": "signinvoice", "params": [ - "lnbcrt100n1pnt2bolt11invl020600000000bolt11invl020600000000bolt11invl020600000000bolt11invl020600000000bolt11invl020600000000bolt11invl020600000000bolt11invl020600000000bolt11invl020600000000bolt11invl020600000000bolt11invl020600000000" + "lnbcrt1250n1pne035qsp57thr33aj04aek8738nm42nntaydcaw4zswr047ja0gxy5sea8egqpp58veqg20enh8z5w8avz0jyznsfgnxdgs9km2mlugn62nvypjhwj5sdqlv3jhxcmjd9c8g6t0dcsxjmnktakrydscqp99qxpqysgq9569pf2lk3desk0xz8l90eeanhkz2j4e4yk8wlzwsy8efmm07mdn5n62ymlymt73yvxwyc4zuj45vwka2ta0rmntwxu4m2qp46h2yfcq5muart" ] }, "response": { - "bolt11": "lnbcrt100n1pnt2bolt11invl060700000000bolt11invl060700000000bolt11invl060700000000bolt11invl060700000000bolt11invl060700000000bolt11invl060700000000bolt11invl060700000000bolt11invl060700000000bolt11invl060700000000bolt11invl060700000000" + "bolt11": "lnbcrt1250n1pne035qsp57thr33aj04aek8738nm42nntaydcaw4zswr047ja0gxy5sea8egqpp58veqg20enh8z5w8avz0jyznsfgnxdgs9km2mlugn62nvypjhwj5sdqlv3jhxcmjd9c8g6t0dcsxjmnktakrydscqp99qxpqysgq0m4mht376q42hx4m9jw5fkrjlhg0uan3rpcrnvz6lyanawfnaqd34d8g0g4x2rmfqcxezgaywj9h55te97g8x4umqr0y8p9j8r897xgq4cuq98" } } ] diff --git a/doc/schemas/signpsbt.json b/doc/schemas/signpsbt.json index 7a87ee78ec03..1d8994cd61fd 100644 --- a/doc/schemas/signpsbt.json +++ b/doc/schemas/signpsbt.json @@ -69,11 +69,11 @@ "id": "example:signpsbt#1", "method": "signpsbt", "params": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000910000" + "psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcAQ4g8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0BDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIEu/Rzf4eie4AAQMIQVncCwAAAAABBCJRIDvhN+WjzUt2EEWojAco0yQ1GDbwTtWd/aN5uNhGRlK3DPwJbGlnaHRuaW5nAQgU79HN/h6J7gABAwhAQg8AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJlh/FQRnSXyAA==" } }, "response": { - "signed_psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000111000" + "signed_psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcIgICRz15z0oQ57qDTAJqrEPqGLCn+3Xs2lGEv6+oxGYV9rdHMEQCID20o7OkdrA186bhtl5XxvomAgLw5qTckxZ94vSI8teaAiAIfpvcxym7FktDtx2ApNv/Tgz0EOxLEtpXp8HgO8/pqQEiBgJHPXnPShDnuoNMAmqsQ+oYsKf7dezaUYS/r6jEZhX2twgDz+yHAAAAAAEOIPFzeDEZi+pD6TLIJPXz4vliVqLRobrIby/0l1ZyiZ2dAQ8EAAAAAAEQBP3///8M/AlsaWdodG5pbmcBCBLv0c3+HonuAAEDCEFZ3AsAAAAAAQQiUSA74Tflo81LdhBFqIwHKNMkNRg28E7Vnf2jebjYRkZStyEHE0cioCqqq2UZ2npxQi9Q6DXNZheODM6F4GjHHS3XScEJAG/ctUwEAAAADPwJbGlnaHRuaW5nAQgU79HN/h6J7gABAwhAQg8AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJlh/FQRnSXyAA==" } }, { @@ -81,11 +81,11 @@ "id": "example:signpsbt#2", "method": "signpsbt", "params": [ - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000" + "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcAQ4g8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0BDwQAAAAAARAE/f///wz8CWxpZ2h0bmluZwEIGu/Rzf4eie4AAQMIYg3NCwAAAAABBCJRIMkYPt6RIfPG/RSYgixHp2AnMidmnJCVCIQ7rFu9gT9oDPwJbGlnaHRuaW5nAQgc79HN/h6J7gABAwiAhB4AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJth/FQRnSXyAA==" ] }, "response": { - "signed_psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000121000" + "signed_psbt": "cHNidP8BAgQCAAAAAQMEmgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAH7CdSDiNRK3tlKgYtNIUmQSJWLgE5Evlcb09JxAjW4egEAAAAA/f///wIAwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcBhP00gAAAAAWABQijAzMA5X3Ec5AzhgdLZtnmTqh7YcAAAABAR8AwusLAAAAABYAFAPP7IcV4fQEo27AEeQjj4Yyn5CcIgICRz15z0oQ57qDTAJqrEPqGLCn+3Xs2lGEv6+oxGYV9rdHMEQCIFl+CUBKJcswA/8DnqzPrYolo0k0uUfRJv60eB4niMmJAiA169wRBmliX5GL7+hqb2OHZ5i81V0lkIJylHfvkn933QEiBgJHPXnPShDnuoNMAmqsQ+oYsKf7dezaUYS/r6jEZhX2twgDz+yHAAAAAAEOIPFzeDEZi+pD6TLIJPXz4vliVqLRobrIby/0l1ZyiZ2dAQ8EAAAAAAEQBP3///8M/AlsaWdodG5pbmcBCBrv0c3+HonuAAEDCGINzQsAAAAAAQQiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aCEHn35PoCbJlSMQ2fFCjyoCQfQi72lK/cajhKIKcycdYWwJABIqDc8FAAAADPwJbGlnaHRuaW5nAQgc79HN/h6J7gABAwiAhB4AAAAAAAEEIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd8M/AlsaWdodG5pbmcBCJth/FQRnSXyAA==" } } ] diff --git a/doc/schemas/splice_init.json b/doc/schemas/splice_init.json index 740b3b63c2ab..dbde25694ef6 100644 --- a/doc/schemas/splice_init.json +++ b/doc/schemas/splice_init.json @@ -116,13 +116,13 @@ "id": "example:splice_init#1", "method": "splice_init", "params": { - "channel_id": "channelid0780000780000780000780000780000780000780000780000780000", + "channel_id": "8c69f1817bfe5402d7759cd829ae89ed7b16f0004fec1f3df9f5a5d3961f5f29", "relative_amount": 100000, - "initialpsbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000713000" + "initialpsbt": "cHNidP8BAF4CAAAAAYxp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAQAAAAD9////Aed8DQAAAAAAIlEgj47URidVfbzMQq4BipxUdKmRKFeSxMqJHB9ZxWZdNGCVAAAAAAEAiQIAAAABe8lhdLWTt3QqdEAA+Ye+EPU6s0fgfj6uSlpNyrejJXQBAAAAAP3///8CQEIPAAAAAAAiACCT3t0MJlvKhoV20+4uWe67sg68KW5Y9+3Kk9XursCJlgEvDwAAAAAAIlEgW7Q7f9oXFdDdAUFoJaGFIqLX7LFkdbiHgOj6/Bxz74mPAAAAAQErAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviQAA" } }, "response": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000" + "psbt": "cHNidP8BALICAAAAAoxp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAQAAAAD9////jGnxgXv+VALXdZzYKa6J7XsW8ABP7B89+fWl05YfXykAAAAAAAAAAAAC53wNAAAAAAAiUSCPjtRGJ1V9vMxCrgGKnFR0qZEoV5LEyokcH1nFZl00YODIEAAAAAAAIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZaVAAAAAAEAiQIAAAABe8lhdLWTt3QqdEAA+Ye+EPU6s0fgfj6uSlpNyrejJXQBAAAAAP3///8CQEIPAAAAAAAiACCT3t0MJlvKhoV20+4uWe67sg68KW5Y9+3Kk9XursCJlgEvDwAAAAAAIlEgW7Q7f9oXFdDdAUFoJaGFIqLX7LFkdbiHgOj6/Bxz74mPAAAAAQErAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviQz8CWxpZ2h0bmluZwEI2+v9SbbITVQAAQCJAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAEAAAAA/f///wJAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviY8AAAABAStAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWAQVHUiECVw7AtutUVmMwIYOmLqx10I/e62TzE1IZIGXWAcjKUh0hAmaGfDQrglCra07axtuuL95TeCtpzRcTmUn71PIISH/yUq4M/AlsaWdodG5pbmcBCN3r/Um2yE1UAAz8CWxpZ2h0bmluZwEI3+v9SbbITVQADPwJbGlnaHRuaW5nAQjh6/1JtshNVAA=" } }, { @@ -130,13 +130,13 @@ "id": "example:splice_init#2", "method": "splice_init", "params": [ - "channelid0780000780000780000780000780000780000780000780000780000", + "8c69f1817bfe5402d7759cd829ae89ed7b16f0004fec1f3df9f5a5d3961f5f29", -105000, - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000714000" + "cHNidP8BAgQCAAAAAQMElgAAAAEEAQABBQEBAQYBAwH7BAIAAAAAAQMIoIYBAAAAAAABBCJRIMTSgkFfmoHRjgi2GaGdEWuGVssb9JPl9UC797egWEzaAA==" ] }, "response": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000" + "psbt": "cHNidP8BAgQCAAAAAQMElgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQCyAgAAAAKMafGBe/5UAtd1nNgprontexbwAE/sHz359aXTlh9fKQEAAAAA/f///4xp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAAAAAAAAAAAAAud8DQAAAAAAIlEgj47URidVfbzMQq4BipxUdKmRKFeSxMqJHB9ZxWZdNGDgyBAAAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWlQAAAAEBK+DIEAAAAAAAIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZYBBUdSIQJXDsC261RWYzAhg6YurHXQj97rZPMTUhkgZdYByMpSHSECZoZ8NCuCUKtrTtrG264v3lN4K2nNFxOZSfvU8ghIf/JSrgEOIKKgpcI9Q+wEsS7RSRmjmYdS6mp201YJrWSI+o3lUYXdAQ8EAQAAAAEQBAAAAAAM/AlsaWdodG5pbmcBCOPr/Um2yE1UAAEDCKCGAQAAAAAAAQQiUSDE0oJBX5qB0Y4IthmhnRFrhlbLG/ST5fVAu/e3oFhM2gz8CWxpZ2h0bmluZwEI5ev9SbbITVQAAQMIuC4PAAAAAAABBCIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWDPwJbGlnaHRuaW5nAQjn6/1JtshNVAA=" } } ] diff --git a/doc/schemas/splice_signed.json b/doc/schemas/splice_signed.json index 6d644f4b3159..5529eda57ccf 100644 --- a/doc/schemas/splice_signed.json +++ b/doc/schemas/splice_signed.json @@ -137,15 +137,15 @@ "id": "example:splice_signed#1", "method": "splice_signed", "params": { - "channel_id": "channelid0780000780000780000780000780000780000780000780000780000", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000718000" + "channel_id": "8c69f1817bfe5402d7759cd829ae89ed7b16f0004fec1f3df9f5a5d3961f5f29", + "psbt": "cHNidP8BALICAAAAAoxp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAQAAAAD9////jGnxgXv+VALXdZzYKa6J7XsW8ABP7B89+fWl05YfXykAAAAAAAAAAAAC53wNAAAAAAAiUSCPjtRGJ1V9vMxCrgGKnFR0qZEoV5LEyokcH1nFZl00YODIEAAAAAAAIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZaVAAAAAAEAiQIAAAABe8lhdLWTt3QqdEAA+Ye+EPU6s0fgfj6uSlpNyrejJXQBAAAAAP3///8CQEIPAAAAAAAiACCT3t0MJlvKhoV20+4uWe67sg68KW5Y9+3Kk9XursCJlgEvDwAAAAAAIlEgW7Q7f9oXFdDdAUFoJaGFIqLX7LFkdbiHgOj6/Bxz74mPAAAAAQErAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviQETQLTBb3GLDHPmgJT+hDwc0lDwZiQ2XhntW4Utl0NU4wIUH17uYSeZn452jYgOtBefZzeh/10BLuF5nKig8JZ0afwhFvTEPeeTGXjlJSGiyNDqLm+lpUC+f31Q3j7YhyeyShxZCQD2T+TUAAAAAAz8CWxpZ2h0bmluZwEI2+v9SbbITVQAAQCJAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAEAAAAA/f///wJAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviY8AAAABAStAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWIgICVw7AtutUVmMwIYOmLqx10I/e62TzE1IZIGXWAcjKUh1HMEQCIB7dMSfLrXShtRe8zeHg+W1vLd8clWNtXWvLwOdeROcdAiADnsWDCAyq1tGn0qCOzzn5vnFDlLJHFj61W+YhPfQRHgEiAgJmhnw0K4JQq2tO2sbbri/eU3grac0XE5lJ+9TyCEh/8kcwRAIgNA4j/beg90ET4TwzJptoXqhtR7dr4/cgcShy6I4UpSACIDUY6E6eQvCmlMZ394cS1+fwijE94o2jS408fjuHRSPyAQEDBAEAAAABBUdSIQJXDsC261RWYzAhg6YurHXQj97rZPMTUhkgZdYByMpSHSECZoZ8NCuCUKtrTtrG264v3lN4K2nNFxOZSfvU8ghIf/JSrgz8CWxpZ2h0bmluZwEI3ev9SbbITVQAIQf4l/XsahrhZhlxJbtZN6e213tQQFKbPCTiBwSf3CvcvAkA9Hbq9AUAAAAM/AlsaWdodG5pbmcBCN/r/Um2yE1UAAz8CWxpZ2h0bmluZwEI4ev9SbbITVQA" } }, "response": { - "tx": "02000000000101sendpt64000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000640006400064000", - "txid": "txid6400064000640006400064000640006400064000640006400064000", + "tx": "020000000001028c69f1817bfe5402d7759cd829ae89ed7b16f0004fec1f3df9f5a5d3961f5f290100000000fdffffff8c69f1817bfe5402d7759cd829ae89ed7b16f0004fec1f3df9f5a5d3961f5f2900000000000000000002e77c0d00000000002251208f8ed44627557dbccc42ae018a9c5474a991285792c4ca891c1f59c5665d3460e0c810000000000022002093dedd0c265bca868576d3ee2e59eebbb20ebc296e58f7edca93d5eeaec089960140b4c16f718b0c73e68094fe843c1cd250f06624365e19ed5b852d974354e302141f5eee6127999f8e768d880eb4179f6737a1ff5d012ee1799ca8a0f0967469fc040047304402201edd3127cbad74a1b517bccde1e0f96d6f2ddf1c95636d5d6bcbc0e75e44e71d0220039ec583080caad6d1a7d2a08ecf39f9be714394b247163eb55be6213df4111e014730440220340e23fdb7a0f74113e13c33269b685ea86d47b76be3f720712872e88e14a52002203518e84e9e42f0a694c677f78712d7e7f08a313de28da34b8d3c7e3b874523f20147522102570ec0b6eb545663302183a62eac75d08fdeeb64f31352192065d601c8ca521d210266867c342b8250ab6b4edac6dbae2fde53782b69cd17139949fbd4f208487ff252ae95000000", + "txid": "dd8551e58dfa8864ad0956d3766aea528799a31949d12eb104ec433dc2a5a0a2", "outnum": 1, - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000" + "psbt": "cHNidP8BAgQCAAAAAQMElQAAAAEEAQIBBQECAQYBAwH7BAIAAAAAAQCJAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAEAAAAA/f///wJAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviY8AAAABASsBLw8AAAAAACJRIFu0O3/aFxXQ3QFBaCWhhSKi1+yxZHW4h4Do+vwcc++JAQhCAUC0wW9xiwxz5oCU/oQ8HNJQ8GYkNl4Z7VuFLZdDVOMCFB9e7mEnmZ+Odo2IDrQXn2c3of9dAS7heZyooPCWdGn8AQ4gjGnxgXv+VALXdZzYKa6J7XsW8ABP7B89+fWl05YfXykBDwQBAAAAARAE/f///wz8CWxpZ2h0bmluZwEI2+v9SbbITVQAAQCJAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAEAAAAA/f///wJAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviY8AAAABAStAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWAQjaBABHMEQCIB7dMSfLrXShtRe8zeHg+W1vLd8clWNtXWvLwOdeROcdAiADnsWDCAyq1tGn0qCOzzn5vnFDlLJHFj61W+YhPfQRHgFHMEQCIDQOI/23oPdBE+E8MyabaF6obUe3a+P3IHEocuiOFKUgAiA1GOhOnkLwppTGd/eHEtfn8IoxPeKNo0uNPH47h0Uj8gFHUiECVw7AtutUVmMwIYOmLqx10I/e62TzE1IZIGXWAcjKUh0hAmaGfDQrglCra07axtuuL95TeCtpzRcTmUn71PIISH/yUq4BDiCMafGBe/5UAtd1nNgprontexbwAE/sHz359aXTlh9fKQEPBAAAAAABEAQAAAAADPwJbGlnaHRuaW5nAQjd6/1JtshNVAABAwjnfA0AAAAAAAEEIlEgj47URidVfbzMQq4BipxUdKmRKFeSxMqJHB9ZxWZdNGAhB/iX9exqGuFmGXElu1k3p7bXe1BAUps8JOIHBJ/cK9y8CQD0dur0BQAAAAz8CWxpZ2h0bmluZwEI3+v9SbbITVQAAQMI4MgQAAAAAAABBCIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWDPwJbGlnaHRuaW5nAQjh6/1JtshNVAA=" } }, { @@ -153,15 +153,15 @@ "id": "example:splice_signed#2", "method": "splice_signed", "params": { - "channel_id": "channelid0780000780000780000780000780000780000780000780000780000", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000" + "channel_id": "8c69f1817bfe5402d7759cd829ae89ed7b16f0004fec1f3df9f5a5d3961f5f29", + "psbt": "cHNidP8BAgQCAAAAAQMElgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQCyAgAAAAKMafGBe/5UAtd1nNgprontexbwAE/sHz359aXTlh9fKQEAAAAA/f///4xp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAAAAAAAAAAAAAud8DQAAAAAAIlEgj47URidVfbzMQq4BipxUdKmRKFeSxMqJHB9ZxWZdNGDgyBAAAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWlQAAAAEBK+DIEAAAAAAAIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZYiAgJXDsC261RWYzAhg6YurHXQj97rZPMTUhkgZdYByMpSHUcwRAIgHbSqe2swZI4NmH8Cd/8gnOu1gpTvjTOm3DnFa8F0jqUCIA6TKkE+sHorpv9rFt1kaF8susqwjIwnSpviEfQj4EnpASICAmaGfDQrglCra07axtuuL95TeCtpzRcTmUn71PIISH/yRzBEAiAjs9cgsaoFzMWW7C34aGWMEEtzBSbkl2oNBqTbASGeHwIgWFJGWFWqUFMpe28YbhGBQHshcyD7LR3Rf3bM/q3Ty2IBAQMEAQAAAAEFR1IhAlcOwLbrVFZjMCGDpi6sddCP3utk8xNSGSBl1gHIylIdIQJmhnw0K4JQq2tO2sbbri/eU3grac0XE5lJ+9TyCEh/8lKuAQ4goqClwj1D7ASxLtFJGaOZh1LqanbTVgmtZIj6jeVRhd0BDwQBAAAAARAEAAAAAAz8CWxpZ2h0bmluZwEI4+v9SbbITVQAAQMIoIYBAAAAAAABBCJRIMTSgkFfmoHRjgi2GaGdEWuGVssb9JPl9UC797egWEzaDPwJbGlnaHRuaW5nAQjl6/1JtshNVAABAwi4Lg8AAAAAAAEEIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZYM/AlsaWdodG5pbmcBCOfr/Um2yE1UAA==" } }, "response": { - "tx": "02000000000102sendpt65000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000650006500065000", - "txid": "txid6500065000650006500065000650006500065000650006500065000", + "tx": "02000000000101a2a0a5c23d43ec04b12ed14919a3998752ea6a76d35609ad6488fa8de55185dd01000000000000000002a086010000000000225120c4d282415f9a81d18e08b619a19d116b8656cb1bf493e5f540bbf7b7a0584cdab82e0f000000000022002093dedd0c265bca868576d3ee2e59eebbb20ebc296e58f7edca93d5eeaec08996040047304402201db4aa7b6b30648e0d987f0277ff209cebb58294ef8d33a6dc39c56bc1748ea502200e932a413eb07a2ba6ff6b16dd64685f2cbacab08c8c274a9be211f423e049e901473044022023b3d720b1aa05ccc596ec2df868658c104b730526e4976a0d06a4db01219e1f02205852465855aa5053297b6f186e1181407b217320fb2d1dd17f76ccfeadd3cb620147522102570ec0b6eb545663302183a62eac75d08fdeeb64f31352192065d601c8ca521d210266867c342b8250ab6b4edac6dbae2fde53782b69cd17139949fbd4f208487ff252ae96000000", + "txid": "738c9b7d3bb47dcfe6bed43c999d2e2f177c476d2bc7d3ffb49bd25ee21c68a7", "outnum": 1, - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000" + "psbt": "cHNidP8BAgQCAAAAAQMElgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQCyAgAAAAKMafGBe/5UAtd1nNgprontexbwAE/sHz359aXTlh9fKQEAAAAA/f///4xp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAAAAAAAAAAAAAud8DQAAAAAAIlEgj47URidVfbzMQq4BipxUdKmRKFeSxMqJHB9ZxWZdNGDgyBAAAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWlQAAAAEBK+DIEAAAAAAAIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZYBCNoEAEcwRAIgHbSqe2swZI4NmH8Cd/8gnOu1gpTvjTOm3DnFa8F0jqUCIA6TKkE+sHorpv9rFt1kaF8susqwjIwnSpviEfQj4EnpAUcwRAIgI7PXILGqBczFluwt+GhljBBLcwUm5JdqDQak2wEhnh8CIFhSRlhVqlBTKXtvGG4RgUB7IXMg+y0d0X92zP6t08tiAUdSIQJXDsC261RWYzAhg6YurHXQj97rZPMTUhkgZdYByMpSHSECZoZ8NCuCUKtrTtrG264v3lN4K2nNFxOZSfvU8ghIf/JSrgEOIKKgpcI9Q+wEsS7RSRmjmYdS6mp201YJrWSI+o3lUYXdAQ8EAQAAAAEQBAAAAAAM/AlsaWdodG5pbmcBCOPr/Um2yE1UAAEDCKCGAQAAAAAAAQQiUSDE0oJBX5qB0Y4IthmhnRFrhlbLG/ST5fVAu/e3oFhM2gz8CWxpZ2h0bmluZwEI5ev9SbbITVQAAQMIuC4PAAAAAAABBCIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWDPwJbGlnaHRuaW5nAQjn6/1JtshNVAA=" } } ] diff --git a/doc/schemas/splice_update.json b/doc/schemas/splice_update.json index 10b45ae9cd43..d26cd4bcda43 100644 --- a/doc/schemas/splice_update.json +++ b/doc/schemas/splice_update.json @@ -137,12 +137,12 @@ "id": "example:splice_update#1", "method": "splice_update", "params": { - "channel_id": "channelid0780000780000780000780000780000780000780000780000780000", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000711000" + "channel_id": "8c69f1817bfe5402d7759cd829ae89ed7b16f0004fec1f3df9f5a5d3961f5f29", + "psbt": "cHNidP8BALICAAAAAoxp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAQAAAAD9////jGnxgXv+VALXdZzYKa6J7XsW8ABP7B89+fWl05YfXykAAAAAAAAAAAAC53wNAAAAAAAiUSCPjtRGJ1V9vMxCrgGKnFR0qZEoV5LEyokcH1nFZl00YODIEAAAAAAAIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZaVAAAAAAEAiQIAAAABe8lhdLWTt3QqdEAA+Ye+EPU6s0fgfj6uSlpNyrejJXQBAAAAAP3///8CQEIPAAAAAAAiACCT3t0MJlvKhoV20+4uWe67sg68KW5Y9+3Kk9XursCJlgEvDwAAAAAAIlEgW7Q7f9oXFdDdAUFoJaGFIqLX7LFkdbiHgOj6/Bxz74mPAAAAAQErAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviQz8CWxpZ2h0bmluZwEI2+v9SbbITVQAAQCJAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAEAAAAA/f///wJAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviY8AAAABAStAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWAQVHUiECVw7AtutUVmMwIYOmLqx10I/e62TzE1IZIGXWAcjKUh0hAmaGfDQrglCra07axtuuL95TeCtpzRcTmUn71PIISH/yUq4M/AlsaWdodG5pbmcBCN3r/Um2yE1UAAz8CWxpZ2h0bmluZwEI3+v9SbbITVQADPwJbGlnaHRuaW5nAQjh6/1JtshNVAA=" } }, "response": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200715200", + "psbt": "cHNidP8BALICAAAAAoxp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAQAAAAD9////jGnxgXv+VALXdZzYKa6J7XsW8ABP7B89+fWl05YfXykAAAAAAAAAAAAC53wNAAAAAAAiUSCPjtRGJ1V9vMxCrgGKnFR0qZEoV5LEyokcH1nFZl00YODIEAAAAAAAIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZaVAAAAAAEAiQIAAAABe8lhdLWTt3QqdEAA+Ye+EPU6s0fgfj6uSlpNyrejJXQBAAAAAP3///8CQEIPAAAAAAAiACCT3t0MJlvKhoV20+4uWe67sg68KW5Y9+3Kk9XursCJlgEvDwAAAAAAIlEgW7Q7f9oXFdDdAUFoJaGFIqLX7LFkdbiHgOj6/Bxz74mPAAAAAQErAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviQz8CWxpZ2h0bmluZwEI2+v9SbbITVQAAQCJAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAEAAAAA/f///wJAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWAS8PAAAAAAAiUSBbtDt/2hcV0N0BQWgloYUiotfssWR1uIeA6Pr8HHPviY8AAAABAStAQg8AAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWIgICVw7AtutUVmMwIYOmLqx10I/e62TzE1IZIGXWAcjKUh1HMEQCIB7dMSfLrXShtRe8zeHg+W1vLd8clWNtXWvLwOdeROcdAiADnsWDCAyq1tGn0qCOzzn5vnFDlLJHFj61W+YhPfQRHgEiAgJmhnw0K4JQq2tO2sbbri/eU3grac0XE5lJ+9TyCEh/8kcwRAIgNA4j/beg90ET4TwzJptoXqhtR7dr4/cgcShy6I4UpSACIDUY6E6eQvCmlMZ394cS1+fwijE94o2jS408fjuHRSPyAQEDBAEAAAABBUdSIQJXDsC261RWYzAhg6YurHXQj97rZPMTUhkgZdYByMpSHSECZoZ8NCuCUKtrTtrG264v3lN4K2nNFxOZSfvU8ghIf/JSrgz8CWxpZ2h0bmluZwEI3ev9SbbITVQADPwJbGlnaHRuaW5nAQjf6/1JtshNVAAM/AlsaWdodG5pbmcBCOHr/Um2yE1UAA==", "commitments_secured": true, "signatures_secured": true } @@ -152,12 +152,12 @@ "id": "example:splice_update#2", "method": "splice_update", "params": [ - "channelid0780000780000780000780000780000780000780000780000780000", - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000" + "8c69f1817bfe5402d7759cd829ae89ed7b16f0004fec1f3df9f5a5d3961f5f29", + "cHNidP8BAgQCAAAAAQMElgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQCyAgAAAAKMafGBe/5UAtd1nNgprontexbwAE/sHz359aXTlh9fKQEAAAAA/f///4xp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAAAAAAAAAAAAAud8DQAAAAAAIlEgj47URidVfbzMQq4BipxUdKmRKFeSxMqJHB9ZxWZdNGDgyBAAAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWlQAAAAEBK+DIEAAAAAAAIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZYBBUdSIQJXDsC261RWYzAhg6YurHXQj97rZPMTUhkgZdYByMpSHSECZoZ8NCuCUKtrTtrG264v3lN4K2nNFxOZSfvU8ghIf/JSrgEOIKKgpcI9Q+wEsS7RSRmjmYdS6mp201YJrWSI+o3lUYXdAQ8EAQAAAAEQBAAAAAAM/AlsaWdodG5pbmcBCOPr/Um2yE1UAAEDCKCGAQAAAAAAAQQiUSDE0oJBX5qB0Y4IthmhnRFrhlbLG/ST5fVAu/e3oFhM2gz8CWxpZ2h0bmluZwEI5ev9SbbITVQAAQMIuC4PAAAAAAABBCIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWDPwJbGlnaHRuaW5nAQjn6/1JtshNVAA=" ] }, "response": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000712000", + "psbt": "cHNidP8BAgQCAAAAAQMElgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQCyAgAAAAKMafGBe/5UAtd1nNgprontexbwAE/sHz359aXTlh9fKQEAAAAA/f///4xp8YF7/lQC13Wc2Cmuie17FvAAT+wfPfn1pdOWH18pAAAAAAAAAAAAAud8DQAAAAAAIlEgj47URidVfbzMQq4BipxUdKmRKFeSxMqJHB9ZxWZdNGDgyBAAAAAAACIAIJPe3QwmW8qGhXbT7i5Z7ruyDrwpblj37cqT1e6uwImWlQAAAAEBK+DIEAAAAAAAIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZYiAgJXDsC261RWYzAhg6YurHXQj97rZPMTUhkgZdYByMpSHUcwRAIgHbSqe2swZI4NmH8Cd/8gnOu1gpTvjTOm3DnFa8F0jqUCIA6TKkE+sHorpv9rFt1kaF8susqwjIwnSpviEfQj4EnpASICAmaGfDQrglCra07axtuuL95TeCtpzRcTmUn71PIISH/yRzBEAiAjs9cgsaoFzMWW7C34aGWMEEtzBSbkl2oNBqTbASGeHwIgWFJGWFWqUFMpe28YbhGBQHshcyD7LR3Rf3bM/q3Ty2IBAQMEAQAAAAEFR1IhAlcOwLbrVFZjMCGDpi6sddCP3utk8xNSGSBl1gHIylIdIQJmhnw0K4JQq2tO2sbbri/eU3grac0XE5lJ+9TyCEh/8lKuAQ4goqClwj1D7ASxLtFJGaOZh1LqanbTVgmtZIj6jeVRhd0BDwQBAAAAARAEAAAAAAz8CWxpZ2h0bmluZwEI4+v9SbbITVQAAQMIoIYBAAAAAAABBCJRIMTSgkFfmoHRjgi2GaGdEWuGVssb9JPl9UC797egWEzaDPwJbGlnaHRuaW5nAQjl6/1JtshNVAABAwi4Lg8AAAAAAAEEIgAgk97dDCZbyoaFdtPuLlnuu7IOvCluWPftypPV7q7AiZYM/AlsaWdodG5pbmcBCOfr/Um2yE1UAA==", "commitments_secured": true, "signatures_secured": true } diff --git a/doc/schemas/sql-template.json b/doc/schemas/sql-template.json index 9a1107b85683..c9bf1e538939 100644 --- a/doc/schemas/sql-template.json +++ b/doc/schemas/sql-template.json @@ -155,7 +155,7 @@ "response": { "rows": [ [ - "nodeid020202020202020202020202020202020202020202020202020202020202" + "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59" ] ] } @@ -189,19 +189,19 @@ "id": "example:sql#3", "method": "sql", "params": [ - "SELECT nodeid FROM nodes WHERE nodeid != x'nodeid030303030303030303030303030303030303030303030303030303030303'" + "SELECT nodeid FROM nodes WHERE nodeid != x'035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d'" ] }, "response": { "rows": [ [ - "nodeid020202020202020202020202020202020202020202020202020202020202" + "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59" ], [ - "nodeid010101010101010101010101010101010101010101010101010101010101" + "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" ], [ - "nodeid040404040404040404040404040404040404040404040404040404040404" + "0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199" ] ] } @@ -214,16 +214,16 @@ "id": "example:sql#4", "method": "sql", "params": [ - "SELECT nodeid FROM nodes WHERE nodeid IN (x'nodeid010101010101010101010101010101010101010101010101010101010101', x'nodeid030303030303030303030303030303030303030303030303030303030303')" + "SELECT nodeid FROM nodes WHERE nodeid IN (x'0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518', x'035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d')" ] }, "response": { "rows": [ [ - "nodeid010101010101010101010101010101010101010101010101010101010101" + "0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518" ], [ - "nodeid030303030303030303030303030303030303030303030303030303030303" + "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d" ] ] } @@ -242,7 +242,7 @@ "response": { "rows": [ [ - "nodeid020202020202020202020202020202020202020202020202020202020202", + "022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59", 490493792, 1000000000, "CHANNELD_NORMAL:Channel ready for use." @@ -280,21 +280,15 @@ "response": { "rows": [ [ - 28, - 23, + 22, + 17, 0, "option_static_remotekey" ], [ - 29, 23, + 17, 1, - "option_anchors_zero_fee_htlc_tx" - ], - [ - 30, - 23, - 2, "option_anchors" ] ] diff --git a/doc/schemas/staticbackup.json b/doc/schemas/staticbackup.json index f41c973397ea..3157e4d20e8f 100644 --- a/doc/schemas/staticbackup.json +++ b/doc/schemas/staticbackup.json @@ -46,12 +46,12 @@ }, "response": { "scb": [ - "0000000000000001channelid0340000340000340000340000340000340000340000340000340000nodeid03030303030303030303030303030303030303030303030303030303030300017f000001034003400340034003400340034003400340034003400340034003400340034003400340034003400340034003400003401000", - "0000000000000002channelid0340200340200340200340200340200340200340200340200340200nodeid03030303030303030303030303030303030303030303030303030303030300017f000001034203420342034203420342034203420342034203420342034203420342034203420342034203420342034203420003401000", - "0000000000000003channelid0410000410000410000410000410000410000410000410000410000nodeid01010101010101010101010101010101010101010101010101010101010100017f000001041004100410041004100410041004100410041004100410041004100410041004100410041004100410041004100003401000", - "0000000000000004channelid0120000120000120000120000120000120000120000120000120000nodeid01010101010101010101010101010101010101010101010101010101010100017f000001012001200120012001200120012001200120012001200120012001200120012001200120012001200120012001200003401000", - "0000000000000005channelid1520015200152001520015200152001520015200152001520015200nodeid01010101010101010101010101010101010101010101010101010101010100017f000001015201520152015201520152015201520152015201520152015201520152015201520152015201520152015201520003401000", - "0000000000000006channelid1240012400124001240012400124001240012400124001240012400nodeid02020202020202020202020202020202020202020202020202020202020200017f000001012401240124012401240124012401240124012401240124012401240124012401240124012401240124012401240003401000" + "0000000000000006f4e1de801de57374d5737da622611e3a1ad9f16d5df9c30fceecc11ce732eeeb022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59017f000001a95cbe3270e5e0998af5eb0a67f7bf6e8d5b3d3d43059b3e4cfbd1e4fca6152c51320000000100000000000f42400003401000000000eb015c0000fffffffffffe000000020000ffffffffffff3283fc1863a9702a8e188ed55475324e55485a8758d2068cfea35851418c55740000fffffffffffed00ec892b1739b55ddc0cca2988d8731eb33f2295c1fcc13fdbdfff9d3f85d6d038402a6939f0f9d5c7a41464169eb692b4d2d73266b3c46345cd036ca577a15bdeeaa027662682a646ce7671c3a091bf639176e87d3379022126b209ebadadae19ffc0e02c59668c64362eaeabf44ee4f10b98fc92412cbea74b6f3a917423dfdf3ca282602773e6c29472ab708e5b127e8ae1ce2d8b7f56b457299f93bb72bb73fdbcf91770501010702a5f8", + "000000000000000121bd30cac60f477f2c4267220b1702a6ec5780db34f9934fa94b8c0508bf3357035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d017f000001dcf8fdd5381f36008c3eac24cdde5ec0fea8f39240575ef0cb4406cb51ad419dd7810000000000000000000f424000034010000000011301840000fffffffffffa000000030000fffffffffffb8ff7d0df4eee78e558b4e07f82049aaa933f4f4932e13e1e7fee5cb103f7a0b50000fffffffffffa79176754ea338ffa080591b946a6ac1c47ff579ae7e45857bf01261ebe1c46ba0000fffffffffffcbdb924885293efdaa1ba8f556161f4fe525c19483def49b9af85c1623bc6d27b038402add69f29ad433cb7d4c9470f2d49d80245fd9e76a992197528a131e37711efac02c57de22185162001ffaf2e61b053b1d0e280d73ecec1b04916df2c65642d94a102cd4e1a07ee85714b6eada09d9cf81aeb15bfc72ddd003235530c58bbd0c0144902b10f36d2ebab3ce560abf15ceb1bef619491e0597a794fdafcfdf8708eec9e2d0501010702a5f8", + "00000000000000027512083907c74ed3a045e9bf772b3d72948eb93daf84a1cee57108800451aaf2035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d017f000001dcf80239a9c9f2a91e69ba01800baf71f55efe457677b2e5cbd640b888dc1c9375b40000000000000000000f42400003401000000000c301340000ffffffffffff000000010000ffffffffffff0e07b6188dd51f15bb5cb9027950bf487a612dca57e2928de3f28f6ee796978b03840330b7ddf07e5bc779ea468875371ea25b560491c5feaeeb5e229ded3820d1d69103620748b3796c4988dd0fc63b92ae011dc989f15c433a55ed38e24318a43b4c93021bfe48bb1aded55878b00a3f00c5c1bffa1010510d8ba1c6372012ac9c3205d20201604aa7056ab8926038a846014bdbe4874ceef7ce45141b8009b0e2f49e7ec70501010702a5f8", + "0000000000000003222d999f537e32e9458c5db17a63e012dcced61340de06fda5bc30566270b0aa0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f0000017531932479f6d82ee59c7aa67b99568de0a31c202f6a3ff18a6bdd1ec22683cf026500000000000000000bebb3cb00034010000000009b010c0001000000000000000000000384021f90b5f38e0c0ea50bccfcf70a32cd4395c8c544e70636b7cc41831fe33fb4ce03bcfb0d457dfa07f508f434e6a2f040dd3dd233e7002dbe1c1b5d86ed5d3efd76030a4ce755504748f47401fc016578a52e104cbbd28251f10b11e4b3e55d0fe1d303986bdd0842662b8d0d18147630a720e952a2cda624c63ef4903357d27e54f7920501000702a5f8", + "0000000000000004a4a379248e49d207cc984646e632e1a31105a85708b9d6d961a5018fdd489f5a0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f000001970c7f07a15ce1fe1519d46536c4036f1c13527fa8bf52f6a5299b860f982ba2ed7e00000001000000000000753000034010000000009b010c000100000000000000000000038402c8aabcf1224df10e9d803dc3918797892fe0abec56d3e06f121bcebbe9ab0a2c03bd181375d57b8b1d15def9c5f9007b3c3ff98a140c0a44c9dc5f54ac7ea4baf30310952e08f9960711d8142dfa171c0fc2348762acea003f3897397f6ace8454130382da2a229450c4a8e8cea70bbd147eaaf981184bff8c1d70b70c30a494d848420501010702a5f8", + "000000000000000509eb55872cd9039ecd08281af756e23b15aad4129fd6a9bcd71b472114ebf43a0266e4598d1d3c415f572a8488830b60f7e744ed9235eb0b1ba93283b315c03518017f000001970c64ed91a21c10208d715b59801b12b4a6eff9ea9e4e7d45971c298b62d90ece8e00000000000000000000c35000034010000000009b010c000100000000000000000000038402e885f38e784050b386fb32d20935acc61059d8b02b6bec0ac2bfc8b2c5cf7f3103ae69dbfc6511ba0781c13113e16e1557a875b910cb1cb1fe1ef95a7edb36135a03758d5faa8515942873911e21869b1b90a4be72af14b394bc064da6ba518b087003750b588cd1fb8d60276c12c1c3eef7e302e3772414234404289db8c10f5731320501010702a5f8" ] } } diff --git a/doc/schemas/txdiscard.json b/doc/schemas/txdiscard.json index 2aecc24e47da..60a3e49af3a4 100644 --- a/doc/schemas/txdiscard.json +++ b/doc/schemas/txdiscard.json @@ -65,12 +65,12 @@ "id": "example:txdiscard#1", "method": "txdiscard", "params": [ - "txidtxprep000100001000010000100001000010000100001000010000100001" + "2b52249cc84f3698d6b324dab40f97d7b11812cf9bad3384ff775621e86df856" ] }, "response": { - "unsigned_tx": "0200000000000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006", - "txid": "txidtxprep000100001000010000100001000010000100001000010000100001" + "unsigned_tx": "0200000001fb09d48388d44aded94a818b4d21499048958b804e44be571bd3d2710235b87a0000000000fdffffff020000000100000000220020a056363be8c7dbb511098cc50fbca24843e6ed6de03f816465f1998a9a82a09d4183980000000000225120f1393467c717cd50de2760167d4311141a8f750c89f54fd2c900601a7da8434c98000000", + "txid": "2b52249cc84f3698d6b324dab40f97d7b11812cf9bad3384ff775621e86df856" } }, { @@ -78,12 +78,12 @@ "id": "example:txdiscard#2", "method": "txdiscard", "params": { - "txid": "txidtxprep000300003000030000300003000030000300003000030000300003" + "txid": "215dcab7a090082d977159212a49895a7951789b71869e6f09e13b7923c7a393" } }, "response": { - "unsigned_tx": "0200000000000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008", - "txid": "txidtxprep000300003000030000300003000030000300003000030000300003" + "unsigned_tx": "020000000108090ec7f33379421f47fd271d060d0e29869bde5fac8230b3a47e7d89bd6c9f0000000000fdffffff0240420f00000000002200200fefd5034808bec0c94b857b7a3ddeeece7cae1b2101b2f23f1c114b14073f31eaa2f000000000002251205c54c6ff7b25c08e66a91d4256a5ca2c374ab1faf56377e8d65466cf997614ce99000000", + "txid": "215dcab7a090082d977159212a49895a7951789b71869e6f09e13b7923c7a393" } } ] diff --git a/doc/schemas/txprepare.json b/doc/schemas/txprepare.json index 56751a119914..48a93bc42122 100644 --- a/doc/schemas/txprepare.json +++ b/doc/schemas/txprepare.json @@ -103,15 +103,15 @@ "params": [ [ { - "bcrt1p0002020202020202020202020202020202020202020202020202020202": 16777216 + "bcrt1q5ptrvwlgcldm2ygf3nzsl09zfpp7dmtduqlczer97xvc4x5z5zwsc2ulv4": 16777216 } ] ] }, "response": { - "unsigned_tx": "0200000000000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006", - "txid": "txidtxprep000100001000010000100001000010000100001000010000100001", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000101000" + "unsigned_tx": "0200000001fb09d48388d44aded94a818b4d21499048958b804e44be571bd3d2710235b87a0000000000fdffffff020000000100000000220020a056363be8c7dbb511098cc50fbca24843e6ed6de03f816465f1998a9a82a09d4183980000000000225120f1393467c717cd50de2760167d4311141a8f750c89f54fd2c900601a7da8434c98000000", + "txid": "2b52249cc84f3698d6b324dab40f97d7b11812cf9bad3384ff775621e86df856", + "psbt": "cHNidP8BAgQCAAAAAQMEmAAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAAAAAAA/f///wKAlpgBAAAAABYAFP+FM+rwsTm8Bz0qImOObKCgg3zVXuPf3gAAAAAWABTdQ3+1uuxIN+FttkktoVc11r7FM5cAAAABAR+AlpgBAAAAABYAFP+FM+rwsTm8Bz0qImOObKCgg3zVAQ4g+wnUg4jUSt7ZSoGLTSFJkEiVi4BORL5XG9PScQI1uHoBDwQAAAAAARAE/f///wABAwgAAAABAAAAAAEEIgAgoFY2O+jH27URCYzFD7yiSEPm7W3gP4FkZfGZipqCoJ0AAQMIQYOYAAAAAAABBCJRIPE5NGfHF81Q3idgFn1DERQaj3UMifVP0skAYBp9qENMAA==" } }, { @@ -121,15 +121,15 @@ "params": { "outputs": [ { - "bcrt1p0003030303030303030303030303030303030303030303030303030303": 16777216 + "bcrt1q4hz6a4gtecfmy8z870cwkq2gzc0t7n9u9pu23689u55ghwewemqsv4v2zs": 16777216 } ] } }, "response": { - "unsigned_tx": "0200000000000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002", - "txid": "txidtxprep000200002000020000200002000020000200002000020000200002", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000" + "unsigned_tx": "0200000001fb09d48388d44aded94a818b4d21499048958b804e44be571bd3d2710235b87a0000000000fdffffff020000000100000000220020adc5aed50bce13b21c47f3f0eb0148161ebf4cbc2878a8e8e5e5288bbb2ecec1418398000000000022512081da0d3e3051135a89e2f9d85e2eadf661f959bfb05e671097854672cfd0ac7d98000000", + "txid": "e8b14f1622e8d6839c40f255ae617f96aebdf313a8486d1aa9023731a979971e", + "psbt": "cHNidP8BAgQCAAAAAQMEmAAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAAAAAAA/f///wKAlpgBAAAAABYAFP+FM+rwsTm8Bz0qImOObKCgg3zVXuPf3gAAAAAWABTdQ3+1uuxIN+FttkktoVc11r7FM5cAAAABAR+AlpgBAAAAABYAFP+FM+rwsTm8Bz0qImOObKCgg3zVAQ4g+wnUg4jUSt7ZSoGLTSFJkEiVi4BORL5XG9PScQI1uHoBDwQAAAAAARAE/f///wABAwgAAAABAAAAAAEEIgAgrcWu1QvOE7IcR/Pw6wFIFh6/TLwoeKjo5eUoi7suzsEAAQMIQYOYAAAAAAABBCJRIIHaDT4wURNaieL52F4urfZh+Vm/sF5nEJeFRnLP0Kx9AA==" } } ] diff --git a/doc/schemas/txsend.json b/doc/schemas/txsend.json index cf84e53065ce..4a648190e267 100644 --- a/doc/schemas/txsend.json +++ b/doc/schemas/txsend.json @@ -69,13 +69,13 @@ "id": "example:txsend#1", "method": "txsend", "params": [ - "txidtxprep000200002000020000200002000020000200002000020000200002" + "e8b14f1622e8d6839c40f255ae617f96aebdf313a8486d1aa9023731a979971e" ] }, "response": { - "tx": "02000000000101txsend00011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011000110001100011", - "txid": "txidtxprep000200002000020000200002000020000200002000020000200002", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100011100" + "tx": "0200000001fb09d48388d44aded94a818b4d21499048958b804e44be571bd3d2710235b87a0000000000fdffffff020000000100000000220020adc5aed50bce13b21c47f3f0eb0148161ebf4cbc2878a8e8e5e5288bbb2ecec1418398000000000022512081da0d3e3051135a89e2f9d85e2eadf661f959bfb05e671097854672cfd0ac7d98000000", + "txid": "e8b14f1622e8d6839c40f255ae617f96aebdf313a8486d1aa9023731a979971e", + "psbt": "cHNidP8BAgQCAAAAAQMEmAAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBxAgAAAAF7yWF0tZO3dCp0QAD5h74Q9TqzR+B+Pq5KWk3Kt6MldAAAAAAA/f///wKAlpgBAAAAABYAFP+FM+rwsTm8Bz0qImOObKCgg3zVXuPf3gAAAAAWABTdQ3+1uuxIN+FttkktoVc11r7FM5cAAAABAR+AlpgBAAAAABYAFP+FM+rwsTm8Bz0qImOObKCgg3zVIgICrdS+fDe+nFDye7Mp6i6PaAV6YeEglyQM1Lypkk6qiU5HMEQCIGJjEwHrdV/d8Js4XmPT9eMXGes2vodTrV2KtnjUqREkAiBAt68NmL8o32UfDR+YX2yiGZd5DRUF++ppU4YnCE+7WQEiBgKt1L58N76cUPJ7synqLo9oBXph4SCXJAzUvKmSTqqJTgj/hTPqAAAAAAEOIPsJ1IOI1Ere2UqBi00hSZBIlYuATkS+VxvT0nECNbh6AQ8EAAAAAAEQBP3///8AAQMIAAAAAQAAAAABBCIAIK3FrtULzhOyHEfz8OsBSBYev0y8KHio6OXlKIu7Ls7BAAEDCEGDmAAAAAAAAQQiUSCB2g0+MFETWoni+dheLq32YflZv7BeZxCXhUZyz9CsfSEHPXxCgubxwYgC9mDabmKYMY13V5d4yQepeZJ7VCvUFqIJAEDR+iMDAAAAAA==" } }, { @@ -83,13 +83,13 @@ "id": "example:txsend#2", "method": "txsend", "params": { - "txid": "txidtxprep000400004000040000400004000040000400004000040000400004" + "txid": "90ebfe2791e0e307d5043202d0b5cd3a3304daf5a3b98e4bbac503d08634d555" } }, "response": { - "tx": "02000000000101txsend00022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022000220002200022", - "txid": "txidtxprep000400004000040000400004000040000400004000040000400004", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200022200" + "tx": "020000000108090ec7f33379421f47fd271d060d0e29869bde5fac8230b3a47e7d89bd6c9f0000000000fdffffff0240420f0000000000220020c9ea2c65ca8cdc27bc130fe11f5e52e175475e0e31b645b1dcc3832dc4f7e78deaa2f00000000000225120774b1c2a9b4b0a9dce43b46395940da2001115d400fa3667909ec86a5d36518b99000000", + "txid": "90ebfe2791e0e307d5043202d0b5cd3a3304daf5a3b98e4bbac503d08634d555", + "psbt": "cHNidP8BAgQCAAAAAQMEmQAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQBeAgAAAAEel3mpMTcCqRptSKgT872uln9hrlXyQJyD1ugiFk+x6AAAAAAA/////wE29/8AAAAAACJRIBBn+sE76BrhkJwdcl10AW73v27fGwM4fUYbSSX4NuhVAAAAAAEBKzb3/wAAAAAAIlEgEGf6wTvoGuGQnB1yXXQBbve/bt8bAzh9RhtJJfg26FUBDiAICQ7H8zN5Qh9H/ScdBg0OKYab3l+sgjCzpH59ib1snwEPBAAAAAABEAT9////ARNA7qgVSILWVeJ3iVq2cHwuHp28MdIw4CbgJKilEaXgaFJuhJFdQaJzeJ3YOgvOpRA+ENj9RHXIv/24sYuKIr62gyEWSGn5H1BOLW1cQuaAXwZz7OyTu4UYInxyYnJzwKCebrUJAJcA1qsAAAAAAAEDCEBCDwAAAAAAAQQiACDJ6ixlyozcJ7wTD+EfXlLhdUdeDjG2RbHcw4MtxPfnjQABAwjqovAAAAAAAAEEIlEgd0scKptLCp3OQ7RjlZQNogARFdQA+jZnkJ7Ial02UYshB4QxwPeJGASKpKclGmF+KkCt89LyZ37UONUy9HdStTzDCQDVZoJDBgAAAAA=" } } ] diff --git a/doc/schemas/unreserveinputs.json b/doc/schemas/unreserveinputs.json index c3e59df8ca98..ac9fe1bb0e2f 100644 --- a/doc/schemas/unreserveinputs.json +++ b/doc/schemas/unreserveinputs.json @@ -128,7 +128,7 @@ "id": "example:unreserveinputs#1", "method": "unreserveinputs", "params": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000", + "psbt": "cHNidP8BAF4CAAAAARxvUMSNjH7EKMXzxKwycdOSZ64xHQfWS7JFe0pAwIPCAAAAAAD9////AahhAAAAAAAAIlEg+3d9jpNmK0getyg5W+Mp31CPIRDKcJg/mZs/uaVrQ+GbAAAAAAEAiQIAAAAB8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0AAAAAAP3///8CYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aICEHgAAAAAAIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd+aAAAAAQErYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aAAA", "reserve": 200 } }, @@ -141,7 +141,7 @@ "id": "example:unreserveinputs#2", "method": "unreserveinputs", "params": [ - "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000" + "cHNidP8BAF4CAAAAARxvUMSNjH7EKMXzxKwycdOSZ64xHQfWS7JFe0pAwIPCAAAAAAD9////AetRxQsAAAAAIlEg21kTTo7K2doCG6F2JqgaDjc1kRCrH7AL08oPVVJhuE+bAAAAAAEAiQIAAAAB8XN4MRmL6kPpMsgk9fPi+WJWotGhushvL/SXVnKJnZ0AAAAAAP3///8CYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aICEHgAAAAAAIgAgybxcBjyu+/emx4FEB7Vie0+BqLVuy+kyxoL5y6wNGd+aAAAAAQErYg3NCwAAAAAiUSDJGD7ekSHzxv0UmIIsR6dgJzInZpyQlQiEO6xbvYE/aAAA" ] }, "response": { diff --git a/doc/schemas/upgradewallet.json b/doc/schemas/upgradewallet.json index 3f503257a810..9cf2b6056cc5 100644 --- a/doc/schemas/upgradewallet.json +++ b/doc/schemas/upgradewallet.json @@ -100,9 +100,9 @@ } }, "response": { - "tx": "02000000000101upgd20000200002000020000200002000020000200002000020000200002000020000200002000020000200002000020000200002000020000200002000020000200002000020000200002000020000200002000020000", - "txid": "txidupgrade200000200000200000200000200000200000200000200000200000", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000110000", + "tx": "0200000001f74032b51c3aeec264de1e41228db610127098f70d31e28d91569b13a2eda1090100000000fdffffff0135143101000000002251206c27e1956acfa61e68292c80908880e813450f754132e8a2ac471a86bf1326b567000000", + "txid": "58d7e19cd533038fefb7085822fa42f78fac7b7bbdad5439cc748eb2a37f53cb", + "psbt": "cHNidP8BAgQCAAAAAQMEZwAAAAEEAQEBBQEBAQYBAwH7BAIAAAAAAQBzAgAAAAGnLEWbriFxVrxyaD9GGIXPwYs7lkx3nIQmKKzZx1ONvAAAAAAA/f///wJxxNQoAQAAABepFIIMEhvBkPKuK79E5Hw+MqTQP5ubhwAtMQEAAAAAF6kUZVco82z+NtAapQ0yNnBEafhKVUCHZgAAAAEBIAAtMQEAAAAAF6kUZVco82z+NtAapQ0yNnBEafhKVUCHIgICucDGhE4SpTHJaOVcVQeOwW2b92vpKQ/YfRzKcrSDmhdHMEQCIHUzolkCb3kn5oFBsprLwfRU0r2TMuUqVlKHAVeEzwZhAiAJoUyO3JIEy76Le2UdvCjNd5uQ4VO2pTSJC0kv8CHfTAEBBBYAFNa5adNt/9rZhpGT9mPuSA39xzSIIgYCucDGhE4SpTHJaOVcVQeOwW2b92vpKQ/YfRzKcrSDmhcI1rlp0wAAAAABDiD3QDK1HDruwmTeHkEijbYQEnCY9w0x4o2RVpsTou2hCQEPBAEAAAABEAT9////AAEDCDUUMQEAAAAAAQQiUSBsJ+GVas+mHmgpLICQiIDoE0UPdUEy6KKsRxqGvxMmtSEHWnm7u0BtS8KN8F+mqHMoz7AqfhN0O+zc0d/P4HHC4BAJAH0I2ZcFAAAAAA==", "upgraded_outs": 1 } } diff --git a/doc/schemas/utxopsbt.json b/doc/schemas/utxopsbt.json index 18695177c9ac..c1edaa9df857 100644 --- a/doc/schemas/utxopsbt.json +++ b/doc/schemas/utxopsbt.json @@ -212,7 +212,7 @@ "15000perkw", 214, [ - "utxo010101010101010101010101010101010101010101010101010101010101:1" + "9d9d89725697f42f6fc8baa1d1a25662f9e2f3f524c832e943ea8b19317873f1:0" ], null, true, @@ -222,18 +222,18 @@ ] }, "response": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000510000", + "psbt": "cHNidP8BAF4CAAAAAfFzeDEZi+pD6TLIJPXz4vliVqLRobrIby/0l1ZyiZ2dAAAAAAD9////AUFZ3AsAAAAAIlEgO+E35aPNS3YQRaiMByjTJDUYNvBO1Z39o3m42EZGUreaAAAAAAEAcQIAAAAB+wnUg4jUSt7ZSoGLTSFJkEiVi4BORL5XG9PScQI1uHoBAAAAAP3///8CAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAYT9NIAAAAAFgAUIowMzAOV9xHOQM4YHS2bZ5k6oe2HAAAAAQEfAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAAA", "feerate_per_kw": 15000, "estimated_final_weight": 657, "excess_msat": 0, "change_outnum": 0, "reservations": [ { - "txid": "utxo010101010101010101010101010101010101010101010101010101010101", - "vout": 1, + "txid": "9d9d89725697f42f6fc8baa1d1a25662f9e2f3f524c832e943ea8b19317873f1", + "vout": 0, "was_reserved": true, "reserved": true, - "reserved_to_block": 2240 + "reserved_to_block": 2242 } ] } @@ -247,25 +247,25 @@ "feerate": "18750perkw", "startweight": 214, "utxos": [ - "utxo010101010101010101010101010101010101010101010101010101010101:1" + "9d9d89725697f42f6fc8baa1d1a25662f9e2f3f524c832e943ea8b19317873f1:0" ], "reservedok": true, "excess_as_change": true } }, "response": { - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000520000", + "psbt": "cHNidP8BAF4CAAAAAfFzeDEZi+pD6TLIJPXz4vliVqLRobrIby/0l1ZyiZ2dAAAAAAD9////AWINzQsAAAAAIlEgyRg+3pEh88b9FJiCLEenYCcyJ2ackJUIhDusW72BP2iaAAAAAAEAcQIAAAAB+wnUg4jUSt7ZSoGLTSFJkEiVi4BORL5XG9PScQI1uHoBAAAAAP3///8CAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAYT9NIAAAAAFgAUIowMzAOV9xHOQM4YHS2bZ5k6oe2HAAAAAQEfAMLrCwAAAAAWABQDz+yHFeH0BKNuwBHkI4+GMp+QnAAA", "feerate_per_kw": 18750, "estimated_final_weight": 657, "excess_msat": 0, "change_outnum": 0, "reservations": [ { - "txid": "utxo010101010101010101010101010101010101010101010101010101010101", - "vout": 1, + "txid": "9d9d89725697f42f6fc8baa1d1a25662f9e2f3f524c832e943ea8b19317873f1", + "vout": 0, "was_reserved": true, "reserved": true, - "reserved_to_block": 2312 + "reserved_to_block": 2314 } ] } diff --git a/doc/schemas/wait.json b/doc/schemas/wait.json index f5bb18b6dbf3..ac6432e0f002 100644 --- a/doc/schemas/wait.json +++ b/doc/schemas/wait.json @@ -724,13 +724,13 @@ "status": "pending", "partid": 0, "groupid": 1, - "payment_hash": "paymenthashwtspct20101010101010101010101010101010101010101010101" + "payment_hash": "9a33e433faddc3371f6a56a34146c82629d567520ddaf28244bd9f196288af71" }, "sendpays": { "status": "pending", "partid": 0, "groupid": 1, - "payment_hash": "paymenthashwtspct20101010101010101010101010101010101010101010101" + "payment_hash": "9a33e433faddc3371f6a56a34146c82629d567520ddaf28244bd9f196288af71" } } }, @@ -751,13 +751,13 @@ "status": "complete", "partid": 0, "groupid": 1, - "payment_hash": "paymenthashwtspct20101010101010101010101010101010101010101010101" + "payment_hash": "9a33e433faddc3371f6a56a34146c82629d567520ddaf28244bd9f196288af71" }, "sendpays": { "status": "complete", "partid": 0, "groupid": 1, - "payment_hash": "paymenthashwtspct20101010101010101010101010101010101010101010101" + "payment_hash": "9a33e433faddc3371f6a56a34146c82629d567520ddaf28244bd9f196288af71" } } } diff --git a/doc/schemas/waitanyinvoice.json b/doc/schemas/waitanyinvoice.json index 84455aa0793e..2d9c37806212 100644 --- a/doc/schemas/waitanyinvoice.json +++ b/doc/schemas/waitanyinvoice.json @@ -235,16 +235,16 @@ }, "response": { "label": "lbl balance l1 to l2", - "bolt11": "lnbcrt222n1pnt3005720bolt114000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "payment_hash": "paymenthashdelpay10101010101010101010101010101010101010101010101", + "bolt11": "lnbcrt5m1pne035qsp5y09we8jhy4ug66c945kzkqyqzrhhqsap22q07wnawlgntwa5ca2spp5xsktk894vn50xt4kfl5vy49t7hk976u85rudu7gfetuwvk8nh54qdpcv3jhxcmjd9c8g6t0dcs8xetwvss8xmmdv5s8xct5wvsxcvfqw3hjqmpjxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwqqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqvsru69ylhpkda6980sl996q2fmld2zszepv79zf747la6zzt8mf8p0qw80w6j8d5evc72fls4d99sza23nnm6pahjqrs8kv3apdttjcq2mm2xw", + "payment_hash": "342cbb1cb564e8f32eb64fe8c254abf5ec5f6b87a0f8de7909caf8e658f3bd2a", "amount_msat": 500000000, "status": "paid", "pay_index": 1, "amount_received_msat": 500000000, - "paid_at": 1738500000, - "payment_preimage": "paymentpreimgdp1010101010101010101010101010101010101010101010101", + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c1808377744ca985c1808377744ca985c1808377744ca985c18", "description": "description send some sats l1 to l2", - "expires_at": 1739000000, + "expires_at": 1738604800, "created_index": 1, "updated_index": 1 } @@ -260,16 +260,16 @@ }, "response": { "label": "test_injectpaymentonion1", - "bolt11": "lnbcrt100n1pnt2bolt11invl020700000000bolt11invl020700000000bolt11invl020700000000bolt11invl020700000000bolt11invl020700000000bolt11invl020700000000bolt11invl020700000000bolt11invl020700000000bolt11invl020700000000bolt11invl020700000000", - "payment_hash": "paymenthashinvl0270027002700270027002700270027002700270027002700", + "bolt11": "lnbcrt10n1pne035qsp5qwyv8rs63ramlntxnjyqfyl3usj9fcvw2wcekvssera3c674p2aspp5layccvcq3q020g7qgxf7g0cjx3zvv3rxyqypprpry2w6x5gmahgsdp6w3jhxapqd9hx5etrw3cxz7tdv4h8gmmwd9hkuvfqv3jhxcmjd9c8g6t0dcxqyjw5qcqp99qxpqysgqanlwwp0fnysrz8wgx44kdupzfv4l9x0l8daxa9zyqcwwx4de5rv4s3udrmgc6w03dtn0h3kcvwhv602fpryz06wrnk9k5d5z6qtx4mqqyhqgf2", + "payment_hash": "ff498c3300881ea7a3c04193e43f123444c644662008108c23229da3511bedd1", "amount_msat": 1000, "status": "paid", "pay_index": 2, "amount_received_msat": 1000, - "paid_at": 1738500000, - "payment_preimage": "paymentpreimgio1030303030303030303030303030303030303030303030303", + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c1e08377744ca985c1e08377744ca985c1e08377744ca985c1e", "description": "test injectpaymentonion1 description", - "expires_at": 1739000000, + "expires_at": 1738604800, "created_index": 8, "updated_index": 2 } diff --git a/doc/schemas/waitblockheight.json b/doc/schemas/waitblockheight.json index e978dcaba53e..e8f9d146f097 100644 --- a/doc/schemas/waitblockheight.json +++ b/doc/schemas/waitblockheight.json @@ -68,7 +68,7 @@ } }, "response": { - "blockheight": 130 + "blockheight": 131 } }, { @@ -79,12 +79,12 @@ "id": "example:waitblockheight#2", "method": "waitblockheight", "params": { - "blockheight": 131, + "blockheight": 132, "timeout": 600 } }, "response": { - "blockheight": 131 + "blockheight": 132 } } ] diff --git a/doc/schemas/waitinvoice.json b/doc/schemas/waitinvoice.json index 6cc373e818e4..f55f9b7b2185 100644 --- a/doc/schemas/waitinvoice.json +++ b/doc/schemas/waitinvoice.json @@ -240,16 +240,16 @@ }, "response": { "label": "inv2", - "bolt11": "lnbcrt222n1pnt3005720bolt11wtinv01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "payment_hash": "paymenthashwaitinv0101010101010101010101010101010101010101010101", + "bolt11": "lnbcrt20n1pne035qsp5793kaek9ahcmxn00ttvkmrhafa5v33wtju4dz5lvyjr0pwwgdd2qpp59gjcv8c4v9yzt00az4x5yg6z79v5gmcd2nwzf6pct5c4yqprlr9sdq8d9h8vvsxqyjw5qcqp99qxpqysgq7ygtu605e0yx749rczhlqaw4crl746rmzc3nkpxn5vrey34m2uxx0658c3e85gvvdcp8r5nlfdnxspl9tlj5xhckrx5vszxxa4zneggp8dynay", + "payment_hash": "2a25861f15614825bdfd154d422342f159446f0d54dc24e8385d31520023f8cb", "amount_msat": 2000, "status": "paid", "pay_index": 5, "amount_received_msat": 2000, - "paid_at": 1738500000, - "payment_preimage": "paymentpreimagewaitinv0010101010101010101010101010101010101010101", + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c2108377744ca985c2108377744ca985c2108377744ca985c21", "description": "inv2", - "expires_at": 1739000000, + "expires_at": 1738604800, "created_index": 13, "updated_index": 5 } @@ -264,16 +264,16 @@ }, "response": { "label": "inv3", - "bolt11": "lnbcrt222n1pnt3005720bolt11wtinv02020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202", - "payment_hash": "paymenthashwaitinv0202020202020202020202020202020202020202020202", + "bolt11": "lnbcrt30n1pne035qsp588xrpk37hul6xfyr8u6lkyggh0mkvfzhyex8wwts7dpckxt2j2yspp5x63je8t7u7a0ts2arwdj05y9mn5ud9lmgf7see5rg2kvuq8ptphsdq8d9h8vvcxqyjw5qcqp99qxpqysgqw97pk464fhkxp6umgtzhh3njznhnw06cwun58szk06v7a2wvvppz6kg95ufarq443nrqgue6u3s59up4tqkmm943pfyp3hqutx6vgugqgd8jsu", + "payment_hash": "36a32c9d7ee7baf5c15d1b9b27d085dce9c697fb427d0ce68342acce00e1586f", "amount_msat": 3000, "status": "paid", "pay_index": 6, "amount_received_msat": 3000, - "paid_at": 1738500000, - "payment_preimage": "paymentpreimagewaitinv0020202020202020202020202020202020202020202", + "paid_at": 1738000000, + "payment_preimage": "08377744ca985c2208377744ca985c2208377744ca985c2208377744ca985c22", "description": "inv3", - "expires_at": 1739000000, + "expires_at": 1738604800, "created_index": 14, "updated_index": 6 } diff --git a/doc/schemas/waitsendpay.json b/doc/schemas/waitsendpay.json index 8186c9bf0997..e20da4a81894 100644 --- a/doc/schemas/waitsendpay.json +++ b/doc/schemas/waitsendpay.json @@ -238,22 +238,22 @@ "id": "example:waitsendpay#1", "method": "waitsendpay", "params": { - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100" + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f" } }, "response": { "created_index": 2, "id": 2, - "payment_hash": "paymenthashinvl0310031003100310031003100310031003100310031003100", + "payment_hash": "9562ee18e942b0eb2e36050c108efcb34cb07e5cdbe28d08d26bb71af1556c2f", "groupid": 1, "updated_index": 2, - "destination": "nodeid030303030303030303030303030303030303030303030303030303030303", + "destination": "035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d", "amount_msat": 10000, "amount_sent_msat": 10001, "created_at": 1738000000, - "completed_at": 1739000000, + "completed_at": 1738000000, "status": "complete", - "payment_preimage": "paymentpreimagew010101010101010101010101010101010101010101010101" + "payment_preimage": "83ffe698292fbb5f83ffe698292fbb5f83ffe698292fbb5f83ffe698292fbb5f" } } ] diff --git a/doc/schemas/withdraw.json b/doc/schemas/withdraw.json index c479dc9434f4..a2c67955f537 100644 --- a/doc/schemas/withdraw.json +++ b/doc/schemas/withdraw.json @@ -105,14 +105,14 @@ "id": "example:withdraw#1", "method": "withdraw", "params": { - "destination": "bcrt1qcqqv0101010101010101010101010101010101", + "destination": "bcrt1qwx6am26cuw38y4863pd6swrce2g8mzhaxr9xp8", "satoshi": 555555 } }, "response": { - "tx": "020000000001wthdrw91000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000910009100091000", - "txid": "txidwithdraw2191000910009100091000910009100091000910009100091000", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000911000" + "tx": "020000000169baded91234f208471fe0b7efd048560a4ec2aca6ac1df00ae4729a6c368a140000000000fdffffff02237a08000000000016001471b5ddab58e3a27254fa885ba83878ca907d8afd7ecc1500000000002251202b5dd0613b6e534f572dbcf4311b66e6cc8bb07e285928ddb6fa5791e473787484000000", + "txid": "797a6c54b6cfb99ab3b6453fca66d9c077af09f7be4a951cb0f2e3c0cd63ee90", + "psbt": "cHNidP8BAgQCAAAAAQMEhAAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQCyAgAAAAJVMQxiObHGkc2owFTzkzRn+3UVPd29g9q+xdYhmQ3ckgAAAAAA/f///6czBVHqH7LMLWzkkTkfaDAii0v18qYWqwo3IAICfpPtAQAAAAD9////AkVXHgAAAAAAIlEg/at8AfrnDAjgsfmsrMoRClMSHnXcVKJedUJBbzQq6vdAQg8AAAAAACIAIJZV4qczDNhtxp+O0YRa9VgN0GsVp5QDTJVx5T1WObOXewAAAAEBK0VXHgAAAAAAIlEg/at8AfrnDAjgsfmsrMoRClMSHnXcVKJedUJBbzQq6vcBDiBput7ZEjTyCEcf4Lfv0EhWCk7CrKasHfAK5HKabDaKFAEPBAAAAAABEAT9////ARNAHO2bgSAdOnELjVnpbsTz7m7rgxRnyUQ9cRVtMF7bR2ZbWWuexz11UjfIoiQsBhK3rp+KkxJLGo8xXnRN0hK72iEWvZI/zJ5gMwIKRWhwvhoONSpzuE+hMin+5LvMB/uiSToJAMrfGCgAAAAAACICA6Jvzf+c2c5Qrvvj78smeIzuWAjjEtHW01YDo2je0daMCHG13asNAAAAAQMII3oIAAAAAAABBBYAFHG13atY46JyVPqIW6g4eMqQfYr9DPwJbGlnaHRuaW5nBAIAAQABAwh+zBUAAAAAAAEEIlEgK13QYTtuU09XLbz0MRtm5syLsH4oWSjdtvpXkeRzeHQhB/ezBtxauw6UTQFvjhaT8ztqh+dAYi+W2/WHIEQ/e965CQBPad/3DwAAAAA=" } }, { @@ -120,19 +120,19 @@ "id": "example:withdraw#2", "method": "withdraw", "params": { - "destination": "bcrt1phtprcvhz02020202020202020202020202020202020202020202020202", + "destination": "bcrt1p2gppccw6ywewmg74qqxxmqfdpjds3rpr0mf22y9tm9xcc0muggwsea9nkf", "satoshi": "all", "feerate": "20000perkb", "minconf": 0, "utxos": [ - "utxo020202020202020202020202020202020202020202020202020202020202:1" + "7cce7550c4b37924bb74fd4baf8f1946a4b14c050c42f2479b04fede08652aa9:1" ] } }, "response": { - "tx": "020000000002wthdrw92000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000920009200092000", - "txid": "txidwithdraw2292000920009200092000920009200092000920009200092000", - "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000922000" + "tx": "0200000001a92a6508defe049b47f2420c054cb1a446198faf4bfd74bb2479b3c45075ce7c0100000000fdffffff01d563dc0b0000000022512052021c61da23b2eda3d5000c6d812d0c9b088c237ed2a510abd94d8c3f7c421d88000000", + "txid": "6430642958a9aaa5c380bb9ea5048ae920557df4e8c8f959ee745f87f03662ed", + "psbt": "cHNidP8BAgQCAAAAAQMEiAAAAAEEAQEBBQEBAQYBAwH7BAIAAAAAAQCJAgAAAAGz2CDBGuOklbgHzcv1kfmjgjUfUOYes93LsMOptm8SiQEAAAAA/f///wJAQg8AAAAAACIAIIaYZYoB77AB4cxN9qi28620Yfo+Z5OF/arkAL1zmWsygWzcCwAAAAAiUSCKc7soFDPytdtUYcZ3iqKv0o4BHea9BHmaWZFmLGHXqDMAAAABASuBbNwLAAAAACJRIIpzuygUM/K121RhxneKoq/SjgEd5r0EeZpZkWYsYdeoAQ4gqSplCN7+BJtH8kIMBUyxpEYZj69L/XS7JHmzxFB1znwBDwQBAAAAARAE/f///wETQGrLBJ5XFyUx9B4SItbcP7L5MdB2XyQHymoi/1innyYnSSmUVvkqQYn/wckxggReFS6+BydfZ2/aB/1TRMJyl70hFi55mhYqTXiAV2eIrXh1Nrfu0+eScntk4eo0QWenuG5SCQC6dkxmAAAAAAABAwjVY9wLAAAAAAEEIlEgUgIcYdojsu2j1QAMbYEtDJsIjCN+0qUQq9lNjD98Qh0hB8SkNSQBiTs1cYIq8kWiODRmmFlnt+VkoODlBh1PjXFxCQCLx6pcDgAAAAz8CWxpZ2h0bmluZwQCAAEA" } } ] diff --git a/doc/schemas/xpay.json b/doc/schemas/xpay.json index 0cafe43bb96e..2342ea9c5283 100644 --- a/doc/schemas/xpay.json +++ b/doc/schemas/xpay.json @@ -135,11 +135,11 @@ "id": "example:xpay#1", "method": "xpay", "params": [ - "lnbcrt100n1pnt2bolt11invl040100000000bolt11invl040100000000bolt11invl040100000000bolt11invl040100000000bolt11invl040100000000bolt11invl040100000000bolt11invl040100000000bolt11invl040100000000bolt11invl040100000000bolt11invl040100000000" + "lnbcrt100n1pne035qsp572t5efk76vr3rdkt5zu2qcduqapdj40mhrs7pgpthufgw3tvtwrqpp5rw6387e0hhjqty3y8pmanaqyhgmxsf679m4vm8rjvne57pxn0lgsdp9w3jhxazl0pcxz72lwd5k6urvv5sxymmvwscnzxqyjw5qcqp9rzjqdwjkyvjm7apxnssu4qgwhfkd67ghs6n6k48v6uqczgt88p6tky96qqqwgqqqqgqqqqqqqqpqqqqqzsqqc9qxpqysgqh986ypquaysut7ed57nr8pum0x6u5hg3lnsf6j840l0cn6e28zcyqk76xpxkxjzlkhj8cx7zapyct6zdz2ff7nt3lym376k8ff0u9egq2wf5mk" ] }, "response": { - "payment_preimage": "paymentpreimgxp1010101010101010101010101010101010101010101010101", + "payment_preimage": "a23af6838ba877f6a23af6838ba877f6a23af6838ba877f6a23af6838ba877f6", "amount_msat": 10000, "amount_sent_msat": 10002, "failed_parts": 0, @@ -151,11 +151,11 @@ "id": "example:xpay#2", "method": "xpay", "params": { - "invstring": "lni1qqg0qe03030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303" + "invstring": "lni1qqgvq8khp6uam2t8cq0dwr4emk5kwq3qqc3xu3s3rg94nj40zfsy866mhu5vxne6tcej5878k2mneuvgjy83pmsz953rvg9rtxj8lalh43z8epwydjfrmffn3y3p5qz5cywpu09rr4vsyc4ltgrq50wep0hruykzdz8kjmlaymfx3gn3c0gcrcwn08fary4aqgplwhkgurkjc3rj42v0ntzhw0gr9dl4vwt2l3meh378fzjx5cc7mhgqxdva9ffx3l879amqjdk7np3nyfq6wjtp4weyzhdgq447vakcu0sh4dh0gxszhvffjfqcy8h77mjzguszhtfqy9glqvpm0sp32vgtlw2rh8mwuzedxn3z4d44zq7g8pkz6906ysj9qqe9eqccms4thz8tgy4vu7fdnqt0yaeky4a4pkdprcykm7vj4sz2pqeuguj820h2d6vwh0j7cdypzeg7ffnpvggzvmj9nrga83q474e2sjygxzmq7ln5fmvjxh4skxafx2pmx9wqx5v9qgqxyfhyvyg6pdvu4tcjvpp7kkal9rp57wj7xv4pl3ajku70rzy3pafqyqlg2sq9sggz3x54wmukps9ppjdvu9axg8l62dkkv5975l6zlt37ts4szjaem7c6pxqzvmj9nrga83q474e2sjygxzmq7ln5fmvjxh4skxafx2pmx9wqx5vqyhckl6y7ulcampu0ezz5qqx4cs3fwt6kyrfjc08dju8hc3lr30d7qyp5e6kp2jd30yr8husmmcfzxe797vler28r4hv6ehyy29lljue6ljqqxtxjzt8sw08wk4vx2j6wwv94myujhvzg09mx9xnh9fmvewnm0ex4mkal4sfm00gep0srey7pz6vt3cd82k3pcqqqqqqqqqqqqqqq2qqqqqqqqqqqqqwjfvkl43fqqqqqqzjqgeuhc6q2sg855evhcsdr4cfclsfxncamps5whxf2ynj7kqrutejl8xcm38k4vx4qyqlg4cpsyqqqkqssyehytxx360zptatj4pygsv9kpal8gnkeyd0tpvd6jv5rkv2uqdgc7pqzjd09ca3y6jytvgzva9jcyxavkyzvjujh4g4dz6qv5gjp95ld7sxy4yrpuc937lvmvrwm6qycexdzsmmtlzyskmzqm5e8uevw6d4nxc" } }, "response": { - "payment_preimage": "paymentpreimgxp2020202020202020202020202020202020202020202020202", + "payment_preimage": "c01ed70eb9ddb51ec01ed70eb9ddb51ec01ed70eb9ddb51ec01ed70eb9ddb51e", "amount_msat": 1000, "amount_sent_msat": 1000, "failed_parts": 0, diff --git a/tests/data/autogenerate-bitcoin-blocks.json b/tests/data/autogenerate-bitcoin-blocks.json new file mode 100644 index 000000000000..cdb3ac478334 --- /dev/null +++ b/tests/data/autogenerate-bitcoin-blocks.json @@ -0,0 +1 @@ +["0000002006226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910fa72c459bae217156bc72683f461885cfc18b3b964c779c842628acd9c7538dbc45a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025100ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002078d6612ffd53372b48e6c14b86a97f0e91206b700dd93ad56568b58911e8ed0ed5b687830a53a72329a75746efe9e81fff80d1386e1de4b53669b0366185a83546a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025200ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002070d9a497d349938420c56e61700010f58e53e1864b48465f814ecc1e12faa75c2564fa3404434a497cff291f96b9ef2837c8e1380415e7d9f3bbb1d2ccfbf5b946a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025300ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020d21eeb70bfa43e27caafdd350594c5491c4fd32717d2ed2433acf5f3f3071a13b61dd54fcc8ebd4d111a644fb2b7134a92101fa87be2cb8327c3432aca4f025a47a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025400ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000206b9dec3f36d32a15cc363f22ba9305eba985a8574825e4476d364cbda04ead306163bb5919c1ef33e7c13f5827a2b12474c57ed495b47856d9cb6cd17fb82c6447a5cc68ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025500ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020565943609635cd6e33458449b0e652b46356582fccb6a6985898fb7a24969f34f9fb8e1dfcfff2d191457126bfb8bfb8818e7e54c21bc2c6351ee4fa35b8892947a5cc68ffff7f200600000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025600ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002080ab54a227f652ef915dedee0c954abc019402faa107c4894f27cf5f3eb88e65f1a50fd37962401edfed30b3b5862c050cf27d548f50ce8e64fb285157914e8747a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025700ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020dea46943be06094f6377fb3634ef478bd158d99d0331514a1d9faf15ea5ab120de6fa6914607119413680510502d6e3426237dee92a112393937030d26249b6d48a5cc68ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025800ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002037bf9bbca0c248166960a58fcebecd44881db5c64b63969dbf2ecb42780ece7bf2718c26be0fdbd8cde6631f759621efcc342c9e4777dda201ee8a0437b2b02548a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025900ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020d00452704acebfd2ede8acacc358c87f637a90520b50c33e6fe8d03b25dc104a683c6776edb64a72972249d392badab940316ebd3066d508899c1de43809786f48a5cc68ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025a00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020d4911517c167f7c2578b0dbd9b66ac2a3e39ca93679f5d888dd4a69e988ef47d763a2b1fb0fdb356dccb4e388e1d02d826f574e2805371992d798e06639f3a3648a5cc68ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025b00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020da39018859382125e465bdf592f39f8cb31d6b352a2d8b7b1af25d1c69a4397a91f6acd817a7b109923e2da360e7845b0076266e8a30020e61363ed69bcac14d48a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025c00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020bb30b0f67ec1c57a237b8a5e739188ac838f9b5ec14e556fdd00e375890e06555b7035614ffa4dfe49d1ace2cdf46f220b904aa95d497fc8058b6d20289ca94948a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025d00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020f1d4cf377f1cbbede90e119c72f91ccacb84a5c6cc3e2903c17291e710f30206461f4d27dbf22ecab90d9ac6db35d86b9839e855a34f86eb9f2a446a2e7b36b549a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025e00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000209de1687b73220e852b464e73faddbd753f4eea47dc200fb326b2fc1a7db49f0b648949308962c2d1b7a2756f90ea42b0edd0dc3ba1f462ef5ccfebfa1d4e721a49a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025f00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002040ba8c55096415bca15c6881b91c81dd1928d9e40b94bcbdcf6365031f7d18306912450ab57d4fb005afea85e4ac7e5de50c45955eab84d57c8cd5a337769b7e49a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff026000ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000206e2cdab4bcb06d267948bc4f97aaaefbd98a67ee2e6f2ac2d3a65f31c576b56c5d1e2c59a6f51e93599a81ac896120c851be9e81dcf9fff070da2d4aa0d59a7249a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011100ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000202698e54e5cac94d73fa12db1304287da26e9cdf335975943cee02f7086f72a2db2cd8694d9a3c56b63c198791cd66ea319b7cd72cad13dfcede3adf9e93caab649a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011200ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020ec5323f0992d804c97f2cd47d746ec7e04b64222338533cda653bf840ef33e78c2cbe93d93fe3eff5c2d3b264715df40c5ac131e13c7a36b81260b5ab041e22349a5cc68ffff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011300ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020220c808211b4911cdce705388d21c5bac5a02e3e6ae1be55e3e86adb140e3171e012a294985be7512f47e64e8ea1b6204c6b848a933208f00d0d0bceae67aa034aa5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011400ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020b528a7616d24825a9e07a3af7e122577e29221afb34d5f58ea646a3cd2fdb31a768078204f9a8aaf53c0b13ac4122ec855e675d09b6cc0bb26d7029d7a6d3ae84aa5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011500ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020adbc751f6f460750fc93e60d338c6056f425ae72ec00f5df20120de41f76da440018eeaae162198391b3f06d0d53f5b212d4e12ba455331d112a1b9d26272ff24aa5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011600ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020bde780930c6da813f1717e540d1623bd2c198208fcf4747ea74375b75b5b497f9177151b9cefd17262ee2bd01ec7e09ecf2132bb710bff344a3bde1dd36fc8b94aa5cc68ffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011700ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020063f7bfefa7b09462292509ce8f999429df5db8e2566b926bf0c1fb166adc32784644838ef7ea7e34e7e310cf67137b2bf82331ca5e359a481fee636a4ed36a34aa5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011800ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000209e679cd8818d30cc419828b60f4d349e3d5e909ee10630c5ac60446a70d15c05d9815086f177205591f26f78e08cb5a28ca58c73f7e73ca9cefc67c6ec62e3614aa5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011900ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000204ac31815d444767886611b1e0b5b09986556d2ac0881c096e27f77f4c13f786d112013b1dcd382ead5ee4f184e164a20e0b2d5e51a4b574df25f174d113c66a44ba5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011a00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002077eabbb16f110441063f1cc043de2a7b0b99f957acc471a438304193cc38256c4a14740e18feff57ff3f17616cd878f5322ccfe54a9fc7b5eea29b7c1aa65cde4ba5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011b00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020f8f3887fcbc66a646f7fb017e2b0c030d4df11eb510bf34a0e7b1262a64aec7c4ec219d9d01fe481009470395240fd604244243f0df1c3fc1a9cd50e049af0e34ba5cc68ffff7f200900000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011c00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002010092f08a952742708e57b68652712c14ac56b68d3c1a45246e48792beee4f3fa84ef6a0aa75824570625402c96bc3b5621a1ed1696926cfa101fa5de60747494ba5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011d00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002059f37effa0324dffbaf8ae47caec32015ba786d52fa1af6a7402d4f0b423be45429cda4043d699e67cfec362eac9b6168481890d4aa9e58d85eb3051ce6741d64ba5cc68ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011e00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002037fa32350c1dee649f58e5102dacfdc90ea38bfcdac9c7aeea1581b7cb3d5f1d8d830b79c797b0f37ec88d5402b3ddf00de68bc90a4944de860ebaa3c936efdb4ba5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011f00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020a9cc7e801ab034fd49a3e8d0510de0fb54ad4989bd5a0e35c00f9b8a2887166b9c94fbc368f81c28ee5eff3536d801321386ff25b79811f27bbc22904ad83a7e4ca5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012000ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002008d078ff057f32fb582fe21a3c6aa70a9c45881cc4209dd1e90c3b758674d4508a0ff5d75a511ed75c1b1e5be06d4f74de5718d54567f74959454b55f28551ab4ca5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012100ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020f0bdf6f15c2fa098422c08cefe9612b426cb5b67c1dfd3033cdfdf4dcbe3b93e72fffc3a6a5f0302f09fb23e4e25a1b77e1cd5b0af75a75d234ef85c39bdfabd4ca5cc68ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012200ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000205d79dcef51bd221e0551113f90741a53b65e82da3d93a34be37f84682bad947ef5dc7b75e580e0f055560ad51ac699cf300187c938bcd80b59f28e50a72049e64ca5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012300ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020def05c226b5c4f6a85a5f280f86f5d274c490a8bb8752fd90c7ca61688db27149989cc920e57a98dd2cea7b67569117851d78df959278c96a1ec4d51f6ecf16d4ca5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012400ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000205c048787cc3a969c75d416120d97d1a362d66c86633e6d581e37881eb6d5a2740b171df0cc2e96253c36d91ac8be8ad95cb540603a7f003380797a95b77f35944ca5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012500ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000208751473af77183111f70ef232f2c688b2cd8596ad89543d2eea777bddac6f140b917f3686ccf806e145c919d3d42200ce61da3ced1bb82a558af71c72e46f1864da5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012600ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000203b51a2b08e2adff5019269b886042817aad78b144b95478720d958105e1d687ceed3d7a0b6e8338ef352a413abacac7f779633d4e215cbbee86036261fdad1c84da5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012700ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020797f895912604d95fb85fdff39ce0fd0fe26595ed320393d1480bebd82b3fd050b82bf81765649c1fd7eee0f69600fac63bd665649372b0238398240ec8be0044da5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012800ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000202f54f301b02ddf7960fab28fb52913a0f893d2522731d043f0cbe86c102b0d125e514532cec7afbb6462f5b5d0619ba5f1d3817c021786ec2cfcbc3f403b94334da5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012900ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002085ee8bd0c42d15c072f9f08099abd17650ac145f68bd3cf9835ad936326f311ab03054dab58256a56b9292e459976c6bb9032c032967222d4fe445802b39194e4da5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012a00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002009772ed9bbc790489b5c226e320b58786b6d980761e6fd5346b1c5636f80033e4c1580d8b9eef6e1d83342fd86c808e776a4fcd3045540d3af222586e67e0f294da5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012b00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002067f195e71efedaf965cff1061522f7d3570c08f1f4d4873b8ee64fa96c85d74cc367f855568c8dfd892dae83c458b040f5f4daf3c51c74cbf766906a81b718b54ea5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012c00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020093479e23ed98ef695264edd454bdb91a3b1889bc572030cac8c8c8c8b715a2d66e5c8218d4f67b60c742aff54115dbae079fb4b37636ef2818b1ca548acc6064ea5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012d00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002009491a8791ccfaef3f568f1b830f1382ece832e4d5d260832dbe26147072b538dd4773397fc3f6ac040ee9152a71d302f54dfd34bd7a0214fa5eb3957b54ebf74ea5cc68ffff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012e00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020b0f4e1229b00ca5be9d390dd3ee2a809e4ffcd197163d74d9d42a270b5984b09f630122f8fa0bec95caf1f8ff3173292eb206d6383518c17e2db763db7ea67164ea5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012f00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020988bc0bb16edbce5fadf3a4892b7b74f2a43f5d5bdf2c9d921b243dd6e4a375c40aad4c05201681d57b807f6844462650c8115fa6f01a745274c9f817fdba9264ea5cc68ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013000ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020de432adf2e6c036a3cb09eb89a4bf9875983f3bba7ef0b03a465e91972dc7a2a1345ad4e4052bf455523551e80dc4ea2f6e4c7bb71cfb8bf7d6dd51943722c7e4ea5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013100ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000203c6d955dd95ec641292bd75dd524aa32d4b31e4c3e103b09a487d1c0a3df4a2ba800be1696e4c987a619de2d676b57df41e10602dca927e08ff1bef56eeb09514fa5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013200ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000204033118d6c7f93a5260a1c3416a105d8612a4ca865aea2b3fff34e4a410eb7735f396413f93a915cc46cc5521b13a7b049a3156011effe7e8db2f5920ed5ee5b4fa5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013300ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020dbf23e3d78583319c9f9e822fc75282aeb7d6d6e2b1dd5d63e2fa8158d1883511536f8224647c3dd1173d764dc1cfb76eb1dea38ebf564edb891cb079725d2234fa5cc68ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013400ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020fb7641eb0a615bb9a09e895250a60b7efb8391c24a6ce96043d06a2f1085da2ed8afb5f6b7918ae0be3e97cc13325cd3de7181c9a22fe5d74b499ac1b85771ee4fa5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013500ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020a4ba3f4b4cd6fd1db31830c69b3d794849817df85dcb0a5f986014e1f0ae44790f16961c89bf69839994409ac6a4df2dc5913e7db16c6b1314961f8706aae21c4fa5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013600ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020cb3fc3c7b2fcaf67c31f882109192bb3de55edbf06e25f5f1554c6a164395b78e85c6036b81df83053e9aa55db54ba1364ce773fc74931893b67f14559a8a5f54fa5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013700ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000208aeb9d784a63df830bafd9f54859b99093eb68afcda36359315b96b3f096b902b7e3e339f427e59db9d69eae99e676ff5da5cd4e8dae02a8ef7d7eefcf4a624a50a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013800ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000205ebd4cd9335fd68d37fed84c50970c297c4660a7aa908eaa734f57049cccdf443c09ae0e80773efee060d4ed5c8d1a038f88fa41dd1515c866ebeb747577fcfb50a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013900ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000208cd01005b5619706fdef2bde9b72409fce9de761b5d5fdbec0338a0663d1a738a054250c849fdeb720a09b0b79c9b7157f9db889f949b560a5d8c6fb2f972d2750a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013a00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000201e1b47c368eb2c5afc415cf9619607e1804ef4adaf0ef4ef54bcb13e0d1b431a7dc9c56f752b09a8377f9c72cb8d6d512eae756a92b629059a0ede17e26785ac50a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013b00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000203cba4443757eb3dfb2d388619385fd8d80727aff9637a667c9ac02d190114b7e83814a66429df710b6cc2faea2f67a6c1b826e1a140a7f35cb6fd323409b8b7350a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013c00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020e56941afcff7d648b607d07ca89a9cda2ea55dc904fd9d0f51429e74808a573fb060dafe4fa14343a5c47712f45b0fb34d050b71077a9824569a8d62a5a941df50a5cc68ffff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013d00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020210e74e854c644ac21d277d7abd826f7b72365b8d8383379922845f1d440e111b8836cc78a38ca75701ed0a7f801a4d568e9295120187184f74afaa4106d5ced51a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013e00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002053be5ca882197e09876f742607fcaf422ebd3999c9ab9de3ab11424bb1ce25514cd8535c7c1b782d46c0941cbea26a4c585ff5860ffa831ec239571544f4255a51a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013f00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000209418750dc6471fe5d229e8907a11e0c2edb7ccba19ce9ecd5d2f28e9f2c6e763dd0914607bf03770872d1f0e93ef5c9cf5edc30765d684282c9a0838b16aad1551a5cc68ffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014000ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020a912d8aedd10423d131c352ce65ae0eaf5dbe1467ba88f4fee46f8745d725266299f635bc6d7e62d5e82e2c63bfbb5ee61c60faadb12bb73d1f7bc7b741a777c51a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014100ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000203333ef618caa6a70aa1f63536fd6007be2551a6ac707b7ae2ee7de74587ad9234312327a2ac6388b4e27c56b26369ae6462ff89e14d37d7f4baf6b78f57f831c51a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014200ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020074edd079f24753ea1a5ce3409bbc9c834b97c15b3651a0a81cebccf56dfee53f19067059d96a318be070c50a1d64fb4fdfac2cba8bc12628051f601223d7e9e51a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014300ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002055338ec2621b4c0819e12723b24c197a753209155011a65fc51f949ab96f1033bb52f42e935f8024ddfb0042c5d7a54a4bb3799d1873b81d383306f12e61941252a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014400ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000200a662b22d4a26085524446b1fec7210a59701fb55c813fd7dff4e3921d66b9117b71bf964ad2bf3ffb4e7dff8b39473f9b2dd48f8320f05f5855528bcb65439e52a5cc68ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014500ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002096a6dfbc557f1024f877f6773453cfe3c91718b8e5ace092ffc7e65f63f10709a9b3fa7993aba11c3097cb8e16e45a5413862aeadef3f38e30c5c3e210a5cea752a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014600ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002002efc3b5e85fa09fae3c1aa4b26e0d2c180663b7eae1e077bc6675b204eb7d4892297485cfc8971b126546c77e952e13f417dfa84a7f636e0999ec5e4ec4844a52a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014700ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002042862589a66689a5f339580db344e089408c8c78fa3cbe3364d9da6321e0d21d2afce7e328ae640339238cf4e646548edd9dd27d8394450b73c520ee39ca784952a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014800ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000201e92d86e07845055822973edecd4db5e64044d73f10ecc3f0f4d0f483a956e3fb1d2f95acc61067c0008f6f01f8e83c1e1748db402f430dd6a0006f5ce7cbfff52a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014900ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020a40041b4b0dceaf8b8051a1b83483eb0cc7f33dbfdd6bbd681343e1e4c8ad44ad1c5d6d835832f871796702816428356be5502856615fb72590786877a898a7953a5cc68ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014a00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020ea43f473df19d32ff1664a8451953f7d8d177600ec264b1979f36a4cd42760504295dde2ae6660519b67dbcc9290c751f26d996d4ad406ce77f060438af860f253a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014b00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000204f36fe12e54e490071c3fdd5e14ae27f9c0da40991a14e7fa2d619a356ffce47a041701fae457b4d15f100176eaa3c5358aa421e00766e3b41283e2a8dfcd74453a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014c00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002019c936e5a2fbc029aec3c7639c7a5b8bb04b13c5d1cf5a4d675d11fd6163f316e3be3ed5ba21122022af6f08929f595b6edf42b455ea00d4451ee8945388b13a53a5cc68ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014d00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020877e3bf99e502ea0384580c56c2244bf8a08c5d87048b8c7e2e2a227befd483162854f5f36e424cfd884f40499d8ab210f8a33b8856e5803fe32c8810c30fd6553a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014e00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000204237c59bffe892bba2b63c73ff29ad9d1f0e6466c749572bfc6eca1ee66281373243d1695a175304db2589c2c3932d212cf48804a8c04ca88461328d79de57fe53a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014f00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000208baf5153b87cae94912bfcb3a697be5ed46218742c3156eb79ad284cfe00ca7d49d3cec48b6246e5462fe7b09126ca3134235602f2ea6527c7c23f108521a3c554a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015000ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002019b1e1ded9df413dfb81f66a9d22157d3be75bc68108e2ab9fb72c7722b73a53d7647910f9a4e353427b06e0ccae5f7200d8c5e70e154521f674e80ceab6d3c454a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015100ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000205b6b4fb9beffb61bd7ba8d062d3de19c025d088594b7dc7d4dd48235234fae147d1def91ea2da635ca59870041ac4afcbb1670536dfd83c596c10f4e629b4b1654a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015200ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020f02b2de7f8e13045900340b14639c2c57e0b9297793faaa040d60bf6f661264eef84f6b9e046ed3aeffd8776fb26faa55039d448ff507cf2d61f8b2fcf8d73cf54a5cc68ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015300ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002015cdbdaea51b6a7b2024c31644fe82ec603c06472778b7c4e39e74b53c13c230b40482fd66397cb99fa8aa505a71bdf56a1e134769ced081a16c7440458b01d954a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015400ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020e9af1d1598206f62aa69515c7a829bddd43030b51ccac62d62eeb1db4b3cb6209e3de46a4864c99e6ed5096bc8d4c82c8462f7fca59bfd66d1a2498f24acf23354a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015500ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002031c51d40c8d93d82b3ec39ff39c8233a99681bf84289e03e4161216b3b104b1f2fa58e9c4bfce63d0a1269b74999f7a9b86f2acc02bb20f092e860f9fca5b73755a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015600ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020dc5fc7e7e84c93a9085cb7ac8eb5e54ce737969fecc77d7f073696153436302eecab36fd129fca616cae76c74961a48ef85c0d0749abed2772d52c0b1bd5fcea55a5cc68ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015700ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000201e9abf78630f8cf56bd541ff5463a56799f7b6435de0e27dc060730b3b02ec6954dfbc84b7c7e184b03b0f2c686c7e572fc1634313d7e947230d23e1e31c21df55a5cc68ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015800ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000200c79f4f7da25d09663b4d851548a081956e22fbff06d9de9271abc4c914e6b3631cd741c994bc597a93dd9796deb4f3953191dc21449dcaa7a8161da93a8862f55a5cc68ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015900ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000200b591b2f2414e07a1aaedc9e4ab079314b41a6f124f8fd991a06e887eed7471e0bbbe0a024be1ebc087ff5b37af61cde9ed433be67200d103a348362561f19d455a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015a00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000208b0c180360d5411aa6c22e3622f6865a736d45c34ab2990ac7ceef69c6904402270e4abc6ca347a28dec60316a487646d072c0581663e93e9b54f7bea902356b55a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015b00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000200fe0cae5817446651ae6cc492a7a0c74ee37a6580d009ba25d811f3efa82a661e90734a4d72bb68679414be5cb39508d2ee28ecd22d948ad60f73e292df57eb556a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015c00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020e40ab8f54ad0f3fe478701ca386804244d049cfa6a6bd0dbf5eb8a6d9ae1d95ed93afba87c7d11aea736b23ef1bc6e7be74ac8daeb4e979357d449d3c5fb0e4e56a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015d00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000203119a8ceba7b21e9fbbbdde1b6b7640817cf44ce79d22d0ad9cf5f215445ad3c91ab28200e48865dd0f1ba2258210d24fd1dc5900c906f57ec40e9cebcde74ef56a5cc68ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015e00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020ae12b58937d35d8229f155d7deedaf26eb8e76d2a52eae392fb9aa9a1e70ae157990c5c223b44944f6a93cf7ef73ef854ef7252d5e21a7fb42e291aeff6c651556a5cc68ffff7f200600000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015f00ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020ed5d66246379600462d854682f19b5f86e26e1bd0e51d12af4ad3ff9f6461f55dba7331e8365bb2c7d9da52962b4869a9b75da3826ce608dd103088b2285c59f56a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016000ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000201277e7b7c6a6e666a3c5a98524ad20b8307e0ecfcf2eb40d60f33ee5e9597d5877e5258e2303db8d3b3018de0401ea855e945c41b6a88e402e91f634c375015756a5cc68ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016100ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020ba92b8e90861ce9b9e1127578e7fbd91ed8ec460725f4c21443cc1cd547d7a285b8a49e5f0af67f1b3851ce4df4fc5f210adc5f21716b7e4d89a7815e93304f657a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016200ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002075b8139959700abd2f4258448df15da97355b93624b9c25d393a5d224721870d3f5fa6243267e99ce1fe3487cdb10075cfc8fb00b8e32534a77780f73a4aed9157a5cc68ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016300ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020829c1d048883596a54a893da2b82dc8d4e704e481c2b4e5dfab09b3639993873b58e94b638b7cc8e14080cf0edb5a4fce6da50ee40810c9d887b46ba32b50fc257a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016400ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020c231596cd379598e9d4433830bae946906b65a61f2b14d57fa694db9ed580b1c6ef6241e12a3d98d2e5d5dc294b2a10829ceff1f918bd6c1a8ed56a0c465ec9857a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016500ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000209f4b00bc4118a8663f5b2e11c7f13792488cbd6f53ad897869145e1dfeca01019a13f192fc82a1fe4a221e6f8b076c438d7fc531eff54ecf8e963b6a369638ce57a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016600ffffffff0200f2052a01000000160014d71eed558e48e41606b72e52444b1e96a5e0bf4c0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020925e33ec800a4e193c82756cb2f967a478d9414311c1c603f085f304d64ec366d3b2d3b6df19390e81b9e6809dfba7a7a3006ca872fbfa0acd1aeda8058788e057a5cc68ffff7f200400000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016700ffffffff028ff2052a01000000160014928bd2f9c57ee2459cc41f0a79c7ea45074b080b0000000000000000266a24aa21a9ed53261c4cc5032004840807a3ccafad91e9c04c9111387323d17bcd4fe946c465012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101a72c459bae217156bc72683f461885cfc18b3b964c779c842628acd9c7538dbc0000000000fdffffff0271c4d4280100000017a914820c121bc190f2ae2bbf44e47c3e32a4d03f9b9b87002d31010000000017a914655728f36cfe36d01aa50d3236704469f84a5540870247304402200d1265913386d785f56d574af9e699faaf95bbfaa5bcc146a932bf713c551ed6022012f13d913b72849149c6d1aebdab17a2739f3bb15c6318783626f0173216ba43012103f707325461164625cfcd8fc38811baa3adfe30b7b1d6988064762460c55d02e466000000", "0000002057138a13fab0633265a43364502713f61cd04fb488d05e1b788c4e364818753e1d1cad80e4968a32ac7ae703de938e5fe8394df69ccf111da39388c409ac529758a5cc68ffff7f200000000003020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016800ffffffff026f0b062a01000000160014898b4a833143ac1b046a59cd639e094e0367d9890000000000000000266a24aa21a9eda134a3a4537409647dfb26fedae7b79cc04e86236e5df8f902779f6ecc57f2da012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101f74032b51c3aeec264de1e41228db610127098f70d31e28d91569b13a2eda1090100000017160014d6b969d36dffdad9869193f663ee480dfdc73488fdffffff0135143101000000002251206c27e1956acfa61e68292c80908880e813450f754132e8a2ac471a86bf1326b50247304402207533a259026f7927e68141b29acbc1f454d2bd9332e52a565287015784cf0661022009a14c8edc9204cbbe8b7b651dbc28cd779b90e153b6a534890b492ff021df4c012102b9c0c6844e12a531c968e55c55078ec16d9bf76be9290fd87d1cca72b4839a176700000002000000000101f74032b51c3aeec264de1e41228db610127098f70d31e28d91569b13a2eda10900000000171600147df7b3058fdfe2043896dae7010ca158de16088dfdffffff0200c2eb0b00000000160014661c23b790dd3491373af0b1d8bed0877d5cde22cd01e91c01000000160014f0beceff502bc874170bd10f8fd1ded8b8306ff70247304402204ce9041d506d5efcfe87bbe10e08062e6c75a78a439c4eacd3f1e312b0ca1007022005c93fce9b4cf2aa2e48c1adfaeab116698e8a85d458d3df2669344a421cff27012102fe036dc41f7dc3c7cb3b57ac9e3f8cc05e61c23f51e4f3a80c6e947be4faa7e467000000", "000000205d3610e7ba38f7a7b7168094666990934bfc10bb06b3297b8c99eddf223b432176dc2ace034e9105144d37bba220bb842f51a1cc96fec3be2cca77bc7c22302d58a5cc68ffff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016900ffffffff028df2052a010000001600140be7807d416f7d77364e474c18a5599494f8ef920000000000000000266a24aa21a9ed932b1b72eeaae3889720e77bbd9713e9358cce9f2692d4687f121a707ec5266f0120000000000000000000000000000000000000000000000000000000000000000000000000020000000001017105f7653861499a38615f61123f0b5bb77d50775c9413bfd3bcc39cb84a43770100000000fdffffff02403ffd1001000000160014f2f81ae18107a754597453a6ccd83e80106d20b900c2eb0b0000000016001427213e2217b4f56bd19b6c8393dc9f61be69123302473044022023c78fecdfab66d2df25a5c40703a6922a775c2b4d69d5afe819f014cb03271802202219df74d7ac2b915b29b076e4c8ba7d3c6f240e6fc8979c22e51ab54b61d6c10121035d456b408b1ae5ac24c60704b38263936c4b082bffe9266aa20f9896c150182d68000000", "000000206757bc4406e8030a0509f51ff7cdd9ba419c53b0b5fa9b0ac960be58100d5576e890d59c699fb19a6be2e996b079e167c0b05c9cc2d128fa8adbccd70fcdbeba58a5cc68ffff7f200300000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016a00ffffffff028df2052a010000001600143f5bd9a4a304231bffe817ae3c3ca405f2b5465a0000000000000000266a24aa21a9ed46c1745857db505cf1f5703fa7e6795b472a28ba39439dcedeb5b0d51967dd39012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101b3d820c11ae3a495b807cdcbf591f9a382351f50e61eb3ddcbb0c3a9b66f12890000000000fdffffff02b37c110501000000160014d67d8942d0b25380051198e292a12c48369c94ca00c2eb0b00000000160014d0eac62fdcee2d1881259be9cda4c43de9050db802473044022042141044c5fa69877c5a6d641cd96693828c77b8593fbba4df3008c56c54c3c502202e743899c8469993e28011de683f68f2f66c64b23f1ac62be7167563f762f8a40121031552bdf1173629284565431fb75296ec15c49649f97bb418ce3f509601b9b77469000000", "00000020a9981ad3feb762d0e5949da09b9bbf50f98d1c89483b2bd86bd1eb10ab3ed95c8f40ddbe0723526fc25319aad6f297b0452eac3f0fe3fcdf7a3fc03c1964dca758a5cc68ffff7f200300000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016b00ffffffff028df2052a010000001600145af450ebed8be75c26cc8d4818a1780d837611ef0000000000000000266a24aa21a9ed8ea367bf0e00b03e605519b6028867c0cb317815913a76cc6184739a3709e72d012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101c54a87b4517d7daf033a11b21f2ccf114304487c4189599816f3e243569c600c0000000000fdffffff0200c2eb0b000000001600143b43533e303a69b39884e690d094be0293d7c1e126ba25f900000000160014075dac3a5c636e1be97517b86c3dfb47bfb49c040247304402201f83061da3156f95f8237eab59fb106a529fc30d11e186583eee57afb75bb6f50220565f1b364eeb5f579e3b42dfac81fbfe7e5c3e3c12562fe2dd38dadb373c2ecb012103a2c0b43deb5933215eed21891f1ae56ca6884e290ccf7d2f424fe73d6ffdcf876a000000", "00000020fe6206487c41eced47866ef999de436659a4f0a83e965366209d92970cc3e571b118b227a092cf80c23938d52ae7f3e45e9d81451e5044da7c6478807867758758a5cc68ffff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016c00ffffffff028df2052a0100000016001458f62edb025505ccbf265afe0263dad8d7283d680000000000000000266a24aa21a9ed24d3ebad2b13954343cfe377fa5f14c11c1553505456eb82f40d9be24d9cb661012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101f1f1c0f2d69ba8f0ae95220d8218dcd117603a33c50475a65a5e4abf06006d0a0100000000fdffffff0200c2eb0b000000001600149b5d5010638746bced8f57fa2c59813083753bb399f739ed0000000016001456c29df7f68f64f25a9b482221033bd988c1874b02473044022024a946caf69ca298683bd588b50be5c9d41d2f9a0005b61a628e85eaf1528e01022055f437c1fa3f69b681c6a137ea28012786e8c7db4fbc13ae374a84b73b6cf3410121031c36deb91960e8f2a138119ba952eda9de83feda1752b2b39f7f5a96d0af91671c000000", "00000020ce11902aeb20d84579c2f75189a9cf2fa7577e1574c739493e00b7bf6f38ad25a45b58e5bcdbb450ef72b07463c3e38e6b57b4674e21580a3f0c19a28f0c3ace5aa5cc68ffff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016d00ffffffff028df2052a01000000160014a642bac0407eb1c945bcf40e9b1f3e2274f64f790000000000000000266a24aa21a9ed22550e576a29d014cbc92ceee4944b16a9aef935eec52d63765f3f1bea3b0256012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101dc93168abfd989a27dad6df5785ad789dd100acfc5ca65fad61515f8feb036860100000000fdffffff028c721bed00000000160014fef8c0b11380462743e63946c13d2a683b63b4c580841e00000000001600149fb67bfcefee6cb7db4c7e55d9c6bfd749e31d1e02473044022002fcdfdee1d48d7c946df9b6db274ec5938b74fb4dab8a98d6dcbf571ef4d31d022036faaaf97ae93604034efe5b30add443160d20d2b64aa1c67860588270d29138012103b8e1ade631a8d46dab63d55f537081e8644d7585842aa0445190aef4041910226c000000", "000000207001385d3b0a64933a7047bf270bb5344a418a4d6018d4a191622ccc8d579f098a3a4c607433b7e873f0962341d4db47ecd48bbab1913822a3292920398d52cd5ea5cc68ffff7f200500000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016e00ffffffff023f05062a01000000160014a8d031062cd8d766f0561a3622c67ce6cd1aa26d0000000000000000266a24aa21a9ed803ed318078c31a1df60ccf13bb38e1c771b2438bbb9db659785efd11969ec4f0120000000000000000000000000000000000000000000000000000000000000000000000000020000000001017105f7653861499a38615f61123f0b5bb77d50775c9413bfd3bcc39cb84a43770000000000fdffffff0240420f00000000002200205b8cd3b914cf67cdd8fa6273c930353dd36476734fbd962102c2df53b90880cd816cdc0b0000000022512035f1184f6b470c9df347da62c4b28e7ec9ee10b220bac3accd22209def0036ea024730440220235c17dafd13d6cafbd2e5c2031c90d259fe5d1c427976f888a837bf6e537841022015a0f0dc950496e27ccff644555da1414e5624861980ec5312be10de16746b76012103fa9c95085e42b1e5003cd1f418178c30c96e4ae77954ca0fc48c58826ff4eb0e6d000000", "000000202989e61d4ee4441b653b097b9d89aa8f65dab8a15b8a99c5ed9fbae1cbad6b717cd1e7542d4b3a87ae556b3d8aa77109e508ea038184c0eab7be640e8a811e7862a5cc68ffff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016f00ffffffff028df2052a01000000160014b892dfb50176962f0fc6c37178e5ee1ce1f995d30000000000000000266a24aa21a9edd4469603ab8dc6394d6cdedcb84b9aa6a85da863ab5af49e7964a6bbd485fcfb012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101b17766dac493e0b215e2255ae236477dd453cad94560d7f418face046fd6c3f80000000000fdffffff0280841e000000000016001461ed06c0632af284ec9e192e97758fc04692c8297fedfcec000000001600145bde59b6c0a6058ad77e7199e6f3cb08f53cf1d30247304402205571f52b989f914e86d57866f54d6c698e451b367e331a62125993e2c9ea1fe902207535a80e597e9984f35d5fb47075441b636e8365f0a837ceb3a0a3a0cccfe7d2012103175e37f4693bbac3f74c212665fa1bb4fa5e7a122cd0ebd4a48881e7efd373256e000000", "00000020e6166edf28f6a820f7e6a465eb7b68322114e98f7bf941c669ab5592c9ada520e5ba0bb3160abbef2d96dd9571d8770eca24abb9b57a914086d204f47539693364a5cc68ffff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017000ffffffff023f05062a01000000160014e8092e9b30010a2013bb5307a07ab11650caba410000000000000000266a24aa21a9edb607ff3d62fef4ce29e26f7ca268b74b10d68d90ed93a3d0f098cd7df1ef972b012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101b3d820c11ae3a495b807cdcbf591f9a382351f50e61eb3ddcbb0c3a9b66f12890100000000fdffffff0240420f00000000002200208698658a01efb001e1cc4df6a8b6f3adb461fa3e679385fdaae400bd73996b32816cdc0b000000002251208a73bb281433f2b5db5461c6778aa2afd28e011de6bd04799a5991662c61d7a80247304402204ae8e90efd38fe67b7dacd7b673c5de869a802feab60b17ce55c91c5bdffcfa60220100e9a1ee2e0f0a0e157feb12ee4e5e2b9ca4c78384097b085d476722f2dd9e101210207ec2b35534712d86ae030dd9bfaec08e2ddea1ec1cecffb9725ed7acb12ab6633000000", "00000020ad255aa9d3c0b9233325ea186963d561b38675fda3df2ffb09d53ab00990a5679846f3fbd8d342416e735cc6b45c9fb11507e429677d3f916030f03d8ba1871c68a5cc68ffff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017100ffffffff028df2052a0100000016001468061f068679b9f797e4b596aa59dcfe6eae18310000000000000000266a24aa21a9ed2d9cc277e8846346efcd309e07239625744072fea217dd0b65a5f4d236fcf74c012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101ce5a530f60155add2fa38a51332c2823dec1e10eb16f77e68da912d03fb04dd80100000000fdffffff0280841e0000000000160014774b1c651a1b409213057783547e2bd37a7173127268deec00000000160014dc1e0ee8ce8e59d06ff533cc79b1e3809b4eba99024730440220483a8cc01437562b2dc7e83397e145f427fcbdbe7afb6d83c63ad3c8d18cc31d0220502b2d3f36a6b6cc42bb1714c8907b1b9c9a80788784599c33d19242e29061330121022facafa438adcdc64818ac87168a8ff6cc0c1f986475f3edac935f037bcc962b15000000", "000000204dcc4a6657253c8b5d84c05df2f0ea6e5b61c23edddf5b1f04e03250a5e20d0bc22a9c7fe2ea9744a38044b7e057ddba615c0fb1cfa40fb4033942edb8608e9f6aa5cc68ffff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017200ffffffff023f05062a01000000160014f49cf12fb4c5edf17fb74ca60e2321731426fdc60000000000000000266a24aa21a9ed75fc7c89938d5b428be01b82c6deab66d5ef6b386ff9f8fb0041470ed49b192a01200000000000000000000000000000000000000000000000000000000000000000000000000200000000010167202e377f3e7d6a3ddf62f5d0435913d699953ebafa5a5011eab587f7a0f4c30000000000fdffffff0240420f00000000002200205f743123f9584a76058bac1142ec2bc6c60b4b2af1d3145e74418d41ae51009e012f0f0000000000225120974c19d5ed96a62a1bd10ad187fee5c2e3146f772228c5ae7a42b36e74cf24cf024730440220707db46964e57ba4767951d6f03491f75468fd263dc84868d02352d74b91b4f102200a06e7213acde73c8a89751a1d915cfd72a849c850093b53c0415759144740cd012103f1f9d3a06cf2ae9b87dc178b5f3717b6c9b56e539189f11dc0d9ad1b227cc97f71000000", "0000002061f64eb90622e02b7a62b6aedb013c39bf6366cfd43946653a5159cdc94b604ab5e49dceb036c8a7c5fbc273a0a3060605a5c67bdf1a3a375e3015e705b2b45a6ea5cc68ffff7f200400000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017300ffffffff028df2052a01000000160014e48dedf5bc098a24639cc9bc12866fb2f84f8e560000000000000000266a24aa21a9ed955208e0890b9a87aab1cbaca1e821ec98159eb5ce699c7bc09a503f9af1984401200000000000000000000000000000000000000000000000000000000000000000000000000200000000010167202e377f3e7d6a3ddf62f5d0435913d699953ebafa5a5011eab587f7a0f4c30100000000fdffffff0265e3bfec00000000160014a0b4d2f5cfd16387469b354f37846a2776c92fee80841e0000000000160014b05dad288c134945ada83cdd5cdeb9fbf98f6d44024730440220318ad4ace00bb6f625a2ebb86aff94bcdde3449abf41215e25d4ae979c563c4d022070b78ebf4cd7a8c3b54a7299bdcdaa1e5f392ac7195d34d78852e06fc832773a01210286e6e6a9220f74dfff235208e337d01e0cc1e2ba89e8ff515983004b20fc9b7372000000", "00000020faad2d34fa980f8476fa62e03788e9fb4667e4de98b0947cc56ce14a2cf0a9487160cc874beb5dcc739d2dd05107d7054921e5a5d01061115f9aa26f3f73a12370a5cc68ffff7f200700000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017400ffffffff023f05062a01000000160014764c575910985ac877746104b93676a36435211d0000000000000000266a24aa21a9edf16873b766e22ad9136c659cef1b795fe24b50194e257caa5d54f947a77bd6e10120000000000000000000000000000000000000000000000000000000000000000000000000020000000001016de5ffbc7f669c057398cb047ffe5e4524b58217a864ede13e1faf698fc14d250100000000fdffffff02012f0f00000000002251209d68645892a57906f0a70ff7512301ae29263126d932676374b62282260396fb40420f000000000022002065661b475ebda624211edfa89c2fb3bdb088ef9d8ed43be14fc63ec05bfea5f502473044022017078e74a6de97bf2dc4418fc2137f212f6f6e5fef225e53f01e0c16a5f420f1022036dce1a51814f4396367383065812f563acdaf8b7e3b2cdd0be4817d6e55d1030121027de0ab17abef21c4eaebcd06eb0899a2d6ea110b92df0f303aed7d7bc2cfc19e73000000", "000000209aae87de073d2696d6388066d52ae0302c5aa3909f7134acdc995083e0e76e4e36c56459f853438d65b343a58629d179655c8154cd17bf67dece6d48b31c9f2774a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017500ffffffff0200f2052a01000000160014a6acb8611d45d1ba754ed8138d96d1be4fe4e5790000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000200e22728839d3b1bd208a7b5c8875203d471b28223f07073333ed6508764fa14ff9bed729f0f48dee4bee8fcd3e56b0d8bb1036191963e6f28c06818d6b259b4274a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017600ffffffff0200f2052a01000000160014a6acb8611d45d1ba754ed8138d96d1be4fe4e5790000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020e1238f5ce957a3a734098134085f30933f1d156e5907cc107d30699bce556e3f4ba82491d450bb77e15ffcb5b1cdfb815c9f35935847bb5cf977902f5cde955374a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017700ffffffff0200f2052a01000000160014a6acb8611d45d1ba754ed8138d96d1be4fe4e5790000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "000000209ea6d30a20e1bce98b64822a7906e1330c593bf7eb618804babb5afdf9d0e4058e1afb81e6420c7c5774e05a853aa2a434b52300c5c9370d84313a78206e9cdb74a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017800ffffffff0200f2052a01000000160014a6acb8611d45d1ba754ed8138d96d1be4fe4e5790000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020fb24c19f7eea3f87ff88f84606cd8f4e13314ca54b3fefcd4cbb6947d38bb41bcbaae6aaff7ecb8057b6f5846c61609c2edaae7c3e90f2fdd8bcbcd884e48d6677a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017900ffffffff0200f2052a010000001600144fb58cc23328c904a8df09af49da32f020a40ff70000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002062840383d977bc96da60550e2fe68407e892f8727bebcefbb2c75064cba83851f33f13996a8ba45f474a7683d1cd6d99502bf14c90f3b74011aef136f9d011337ca5cc68ffff7f200100000003020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017a00ffffffff02eb07062a010000001600145676d6215f9b1b1d37fedf00d98609a8100f0e300000000000000000266a24aa21a9ede0842366068df00f8c894f3e603a64ad1bbeef0f8ec9d4ebc6535ecdd4da37ce012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101b6f77750c0aae7faf2aa6e4b38a14671adc8def298a0b89ced09596f002aa5ef0000000000ffffffff026b6f070000000000160014730274d976305fe63d212c880cf89fd0f08272873ac80700000000002251202bdd81f95d64ed2cc37d2eae725de428c91bff072d7503d87446970eedc630300400473044022008dec4948db1c9e4db4dcf8c223f554117e48c6aa0aac471de67c03163a82e4a0220018bdb9889230e0048a378efad73d3bec83c330baa727323d95ca86fe36301b701473044022022cec9df9ece54e1ca89888bdc19ed84e5202a93070d05aa9b3236f9990b440d0220376f7fd6edb49ad13596cdfd51d929a92d45bc88da3f16ed0777014a28025a2801475221021c29746e4136ddff456483df3980c2d0d5f31c93ef5ded564f7294a10d7414aa2103c47b1b2afcfd68c7b86c0976adb9a4f0835bc78242fced745d78433497a867d652ae0000000002000000000101a92a6508defe049b47f2420c054cb1a446198faf4bfd74bb2479b3c45075ce7c0000000000ffffffff02026e07000000000022512085d72025e78fd08bb61119f0987ab0041f50561ada6e130c645343db8c44c2afeec8070000000000225120a7583f0c421663b8ca76fa579018b40682ef8553d73fd061cd8f216ecdced6a30400473044022064d1a5480d76bc71d44ee440a47ec30e7433812292ca8d4876e5e59cd2950e4802201ece394b4bcbf6ba3f21152236822cfb2eeed8e5897d3bf3499e9d7d1a5d092e01473044022068cd05fe53fa71118b643e5340ea3cd169a3ca655c64c0b30f78d720d79a957502200f14d30de4251cf016a3db3475fe5472772335b76dfc268dc173e6541026b1830147522102d595ae92b3544c3250fb772f214ad8d4c51425033740a5bcc357190add6d7e7a2102d6063d022691b2490ab454dee73a57c6ff5d308352b461ece69f3c284f2c241252ae00000000", "0000002064ee4a9d79afdbf72514864015f6b02d5ba09369b4ffd5495bd8c0eca270547b0d802e715c405faaa26e2c1fc2423e5602a9f707bb20f39dd04841f12388f0727ca5cc68ffff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017b00ffffffff028df2052a010000001600143144e972eb576e08475483514d7d102e931c0df60000000000000000266a24aa21a9eda9d5efdf8673029b78531c4e61d72e20e2cf6355d3b5ffe2a37ca57e532e5c4e0120000000000000000000000000000000000000000000000000000000000000000000000000020000000001016de5ffbc7f669c057398cb047ffe5e4524b58217a864ede13e1faf698fc14d250000000000fdffffff02585ea1ec00000000160014e516aa1b139dce7049ee25721bf58f53f7e22a4b80841e0000000000160014a60595829800cd0998067badb3d187cf03e232440247304402202edbe29a7d715446660a1f876b631aff2770bf327b157278abc9fa8e37426cb002207629271299a4f93308428f3cf78fee4272d82997c8fbf78fa0b61f334dfa7236012103650a42d22f01fb7c47945bce6c7f4f33977d89a826fe3316b2a72c41600945017a000000", "00000020735dea7ee59593910c8a0997cd72c3fc4619baa66f991df87a459fc70e3b854f6ef8786c2d40805ccaa68bbf7795c119e76326d37dba640c1156eca913ba896280a5cc68ffff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017c00ffffffff02fc0b062a01000000160014b7154ed957bf1c16fcd944b16c0bf4d6f59b85230000000000000000266a24aa21a9edc2a8bf697b600304899df5967b72acb913c318a9d7b7589db55b7c9ec9b351cc01200000000000000000000000000000000000000000000000000000000000000000000000000200000000010255310c6239b1c691cda8c054f3933467fb75153dddbd83dabec5d621990ddc920000000000fdffffffa7330551ea1fb2cc2d6ce491391f6830228b4bf5f2a616ab0a372002027e93ed0100000000fdffffff0245571e0000000000225120fdab7c01fae70c08e0b1f9acacca110a53121e75dc54a25e7542416f342aeaf740420f00000000002200209655e2a7330cd86dc69f8ed1845af5580dd06b15a794034c9571e53d5639b397014051b8117b0f4726cb33d05a6289f25addc41f5cf4a572b1a00aa494e88c3d9771729e9473eb8bb3679eac5a13964260269e317924cbf0e55c5aba600dbbc4af1002473044022049960f9cc0d1c77c8b85614adb8ed91b2a0a55a3e4bdac12a3de90880485f5e2022012e7ccc5f87ca3e0f485b2b16a95cc026079b18358dcb20fb0cd44348105751a01210330a75acaed258be6bc02da9fab058abbe0e770caceb7c6496eaaea7014c3d39b7b000000", "00000020a6a67d34a3e611b4d200030424f21198d7e1717fb7c5558999ffaa6a7b2365055072bed14ada71c34d105c53be85fcd50a06dcf2ac84cc9acd265818e5efc5fd84a5cc68ffff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017d00ffffffff028df2052a01000000160014291c7cd321df3447623ac61e0bd43645fabbbf4e0000000000000000266a24aa21a9edcac3e315a9f125227d2e95d3b9607ed4498bae95caa4c17c7af45f7d4a97ef93012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101a7330551ea1fb2cc2d6ce491391f6830228b4bf5f2a616ab0a372002027e93ed0000000000fdffffff0280841e000000000016001449acd7d82366c662bc8fef84bd3900b09bafbba54bd982ec0000000016001423c5939000b149132489269b028c1a596d96af480247304402204b0db0024b5141333d9e95410d91fcd3f8f3e60a2b26a7572694b0c094bae64e022062dad17af68f819b3463f57e75b3e93d257ed73b66f8045eed8d3bfd7252908501210387ee92224b3c95d3a3af78c32cec2b07b1c250e3bdb80a2e80dadc02e684040c7c000000", "00000020433fee2f10e5c23f72c152d6786beba9ec73493fc7bb843a5addd94c5782db0e6d56b20f60a6678cfea6de2ab66959c7ec0bc533d67db49a5f35621744ee9e7d86a5cc68ffff7f200200000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017e00ffffffff023f05062a01000000160014c513b6bad2b32fb38bea9fa212df864052e6bad20000000000000000266a24aa21a9ed219789ab25d2c5c436437ffa0a5f134df19e49b3ac8ec99d571c813cba737b4901200000000000000000000000000000000000000000000000000000000000000000000000000200000000010129bd3270ed16270ce47c2805092fa1eec53c14d1c7578ade4a94b27e055b2ce70000000000fdffffff0240420f0000000000220020dd2b22d7f86c0cb8edca4d979b316aa5a8a390a37440b3f387edfa6e3efb630d012f0f00000000002251207b8ca7b7f827d8f94a2846c4e5d84fbae1a5b7453ff03ca1859f25888325b80a02473044022038b791a95551665f80a79e75cd2b53035913a1e3314c8135d2e1e2d60ef253df02202a80e65020cd2c160830a8d93cde5fc9ec92299104df83a59c41420370daf20001210235953f2aa25835f70cc1da3418d935b88a9f95a134dd86636bf018f532d282fe7d000000", "00000020479b02caa51384c3d13fbb5aa36a347ce34df400664a5c8f866cbbe05e05822d3d6df9a9b1218c8b9a9d215217016936f24034be95adbd255391ca46705874c78aa5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017f00ffffffff0200f2052a01000000160014f64f0a90d59d6accaf81898a8d9c53b57482f74d0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002079e26055469c39f95ddbca2ff1cfc52b37d2eed291e8ac4d8b0e934a3219ff378ceaf27b3e0cfa7a0ca0a31f8e2e17813c4b1577d402924526a2d25d733f487d8aa5cc68ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402800000ffffffff0200f2052a01000000160014f64f0a90d59d6accaf81898a8d9c53b57482f74d0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002051dd5387305af509755763cf616a95b6f9d4a17a5a1c11cb89f0c2a4b187877b3117d2cfd0f29d4ac2d2b50ce288019f3a845afe5b7c7313dc03ee8cb42fe9f28aa5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402810000ffffffff0200f2052a01000000160014f64f0a90d59d6accaf81898a8d9c53b57482f74d0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020b812696206ae56c1fe912be90b4dcaffe581bce7ef0974a1f15b0045dfef7940017dff6d9a71b1d78f7c120d6275082513b9d4dea5fe74c190b8d608e371f8b08aa5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402820000ffffffff0200f2052a01000000160014f64f0a90d59d6accaf81898a8d9c53b57482f74d0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020545ea309f621232d39ef5c8a909eb4add3a15f4add36d0aa35e9cf0ceaa9c2685fc052c592a5a7037b872b5f992766452631e38731d352376c3f5ed9f8a2b3418ca5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402830000ffffffff0200f2052a01000000160014a940450999620eeaa149f7b7a17747d19329b4190000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002016c20b5b59042a6029fefeae0254b7c0738612670bc2bba9c9cc1c3470b3666c401406451a18fbdbf457a12115f197ca0f10bbbb370870462b5ca708d25df2149fa5cc68ffff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402840000ffffffff0200f2052a01000000160014b657b05aef68ba24c010114e4b012a1e49751df60000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020010bd1911f1413783478ba977b51fc7ab7e9e1efbeb69dbcfc203dc350dc7d28b8e79978e4c546a6c7a2c2d309ea8adcd41bd7b5141c5b6e74c6651f6b2daae4a1a5cc68ffff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402850000ffffffff02a402062a010000001600141390e518c6852e514885becaad35afdce49242640000000000000000266a24aa21a9ed07be2d1ef424ec5fa1f64fd42d1aefc69bb7578b791ee65915f11a2cac6eaaeb01200000000000000000000000000000000000000000000000000000000000000000000000000200000000010169baded91234f208471fe0b7efd048560a4ec2aca6ac1df00ae4729a6c368a140000000000fdffffff02237a08000000000016001471b5ddab58e3a27254fa885ba83878ca907d8afd7ecc1500000000002251202b5dd0613b6e534f572dbcf4311b66e6cc8bb07e285928ddb6fa5791e473787401401ced9b81201d3a710b8d59e96ec4f3ee6eeb831467c9443d71156d305edb47665b596b9ec73d755237c8a2242c0612b7ae9f8a93124b1a8f315e744dd212bbda84000000", "0000002023aed1a6803d8a70b73d5647fefec93f447f5c41797ab902d9c74757d7fdb85b3ed4b71566c54e24802f794c73efc50d069380fa96f76e6e5adf933f3d521282a1a5cc68ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402860000ffffffff0200f2052a010000001600141390e518c6852e514885becaad35afdce49242640000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002026be975e0f02267779489d839bbe3a116a7b6de1d065ae62e53e01cebdb9942fb6162a02944022ec0f7e74417739f88076af0a2ec11050e2bb20508154871e30a1a5cc68ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402870000ffffffff0200f2052a010000001600141390e518c6852e514885becaad35afdce49242640000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020f673fe8c05688c8d8fe178a46ea092e5eee706b8f8f119d17648194fa3dd85112c489c3e61c298affb33bbd2d800ae42396c89ece16ae1b3219a8010f2489c54a1a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402880000ffffffff0200f2052a010000001600141390e518c6852e514885becaad35afdce49242640000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020bea716b582df5d652bf7a8f578703fe99162e54ef24a919d86114273698fec706a46bc1ae380e15126adfe2370f3071e16a300dcfd90910a94a35e71aa5cfb47a5a5cc68ffff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402890000ffffffff02acfa052a01000000160014c0986b5f303f01ecdb2423f705c3dc1a2bd294e30000000000000000266a24aa21a9ed9bd115f127c91f6c13bac3003db8588e12d405d6a811249136e5ba9cb6d0c6dc012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101a92a6508defe049b47f2420c054cb1a446198faf4bfd74bb2479b3c45075ce7c0100000000fdffffff01d563dc0b0000000022512052021c61da23b2eda3d5000c6d812d0c9b088c237ed2a510abd94d8c3f7c421d01406acb049e57172531f41e1222d6dc3fb2f931d0765f2407ca6a22ff58a79f262749299456f92a4189ffc1c93182045e152ebe07275f676fda07fd5344c27297bd88000000", "000000201469132bd27a789a852406f730e133df71e612995248df31af8efb9d68e060245c1c3e9165710b82f7c50fbe5972caa8531fd5a86ada9f4c33f570a0e8831e0ea5a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04028a0000ffffffff0200f2052a01000000160014c0986b5f303f01ecdb2423f705c3dc1a2bd294e30000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000002073a87bc8c999e031f2b41604d27002b80873b119996cf76a1b9899624962557b912e072b0a44d3ff4189f6e72f17afe6a85410aec890447a40f935708c384d81a5a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04028b0000ffffffff0200f2052a01000000160014c0986b5f303f01ecdb2423f705c3dc1a2bd294e30000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020f8d99e757155a2c524452d2bdfb33d939e46449a223724df4ead68c40139637e91e6a06d75b342a654cdac2d8a1973c3f4e187f4984f4c8a3cf26b7a9da13a05a5a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04028c0000ffffffff0200f2052a01000000160014c0986b5f303f01ecdb2423f705c3dc1a2bd294e30000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000020c3f89d0c11bfe8798894d1f61bc920e309c2b19b7c49287a88c3edd9f8d88b7905c10201a7c1c54ceded8a88a9cbf7f8a889cff27e3b597057f83ebfe2640b07a7a5cc68ffff7f200100000004020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04028d0000ffffffff02b732062a01000000160014353b0274d950b192cfa9cf54b02684b5a39547f60000000000000000266a24aa21a9ed8db2f14c31fc4e3ad0dc76a5892980a69c641dc8d9d507eed52ca0435e3d5d5301200000000000000000000000000000000000000000000000000000000000000000000000000200000000010190ee63cdc0e3f2b01c954abef709af77c0d966ca3f45b6b39ab9cfb6546c7a790100000000fdffffff08e803000000000000160014a43b821a9790f880e113a395b717a0f354b9d9c6e687150000000000225120327b99fbacbcc3bbcf9489bf7f3dac2642d933685754f558586afbacd17f9c26e8030000000000002251202f843ba0c8de9d0c41a63a25d4cab22032be4fabf24931dab82214316be218cae8030000000000002251200978ea47f31ad6561d96ceee14e85192726536c4e1e59d09f217f3b5762b0630e80300000000000016001407905c6189c1ae8aff12566b03f35ff516d17e84e803000000000000160014d1dc90a7bb3af91ed69e933dc38f555b580fad09e8030000000000001600146a1845bb0ea1f8efa63f00f325641db7350dcd5be803000000000000160014dfadaae18d57e4ef50e15b863d9e648bf9af67b10140eeb15b713763a95f40db82138b6f02a8ae8e49aad37ab3647d943a27713069f87376087de9ba49b7a477581f02cf4b4de25a468ee611b7a1ca2e71c3b1e179748c0000000200000000010190ee63cdc0e3f2b01c954abef709af77c0d966ca3f45b6b39ab9cfb6546c7a790000000000fdffffff03ae080000000000001600143d43d226bcc27019ade52d7a3dc52a7ac1be28b8f74e080000000000225120875b3dfe08354212207c94733807164505835a44100738a9c27a62bd5deef480050d000000000000160014d55c493983db651e10477455b1d408c31e7e9e310247304402205fad492ec062feca17e59887dabbea8100f2e4ec7fcfe5abeb7f88457c4cf4a10220445a0b8813843f05c1c87571e25dfebe6c54cb91dd80560e383b0de90d78b788012103a26fcdff9cd9ce50aefbe3efcb26788cee5808e312d1d6d35603a368ded1d68c2c000000020000000001010d6f3b89b2752a370bd0eff895dedaf32e98f8e2864fc20e62b8a6ed4643f7630100000000fdffffff01836adc0b00000000160014c9096d43f408ea526020262ccdad7c8516b92a81014013aec036e293145f5cfc8ca04160f1106efc2ab7700dded01bda0a9661f4ab19ff532d4e938e0f323eb50c048529acb058774cd32461c7b240ce9f210002e1e600000000", "00000020306837d0eef4d9ee14c272218aa4ef627563229963b425edc3e99698b70a177a09e1fee365ad4ca4185ec7e21e3ffbf8d61cb2fb016985306d5c8e1b3bc5429eaca5cc68ffff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04028e0000ffffffff024ffa052a01000000160014c90bc8fb153c0e3b3f29b22c557579c5de3a66150000000000000000266a24aa21a9ed2344a7ae8ab795a5ad6eb3bba41b94dd828ee69283dc061b320efa301f94ab0101200000000000000000000000000000000000000000000000000000000000000000000000000200000000010129bd3270ed16270ce47c2805092fa1eec53c14d1c7578ade4a94b27e055b2ce70100000000fdffffff0200c2eb0b00000000160014c954fe00217d67c17ca66fef5be3564d1d96d57afc0e97e000000000160014feb7ceeba93825033eeba052b20e06cade2206b20247304402203b14698b61a5221b767031a9bb387c3b06a663be1a1b938ad996374568e94ad402205fa3740d9a14059183ad30ae45afc61fbc68b901aea7173d8b2fa1733a88054b012102a6bb270c4a8286324026abe3813f1c0fc7d3d96d4cb8ad8205094a46fa02e0ed8d000000", "00000020c4a5389fd2c439623a83cd064cd2cdad4f650e4e1991c0d36e3800a679c013314ac1c66646c2aa7e09575ef04f00cd3936f34abf28c92c55a98bd24de8b7db1bafa5cc68ffff7f200200000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04028f0000ffffffff024ffa052a010000001600143fd97058af25df1328d9c659e64c5f9b476fbdaa0000000000000000266a24aa21a9ed2711adf5e20fc19b1a26f0e04f7f22859b83208b73cb619c95101ebed2122924012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101e015fe181c95b721f24b20eb0525ae465e2afb6539b3deffb6d4b66a3aabc3ff0100000000fdffffff022d8278e00000000016001438808aa65d103058bc2e2bc96fb7b5abfb4a827080841e000000000016001441a0f71f1bc036ebae6222da7bf3b3f64e6ca3c70247304402201c87e5c3e89d60be8990f1b7df6af0c562efd9f05f3acaaf4eda7b116bf3f33402206ad5f78c4cccf17377fa759c18f5d38f3afaba0fe3416f05c165270df19062ca012102c85567bd8a9b23f6cce00eb863d0cc75422c68527f9995bc8c87a369be41787e8e000000", "00000030961b26ec1c8b838e5562872bc24c74b310b9b5e08f2724cadc4f236a21013a29419eb8db9af5946c6f216eef290b3f8fc4138674ba7115d3ef594680a4dd92c1b3a5cc68ffff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402900000ffffffff023f05062a010000001600140886464dcad5e2e417dc0bb7a7e11f5c174283330000000000000000266a24aa21a9ed530ad3aa9a0141b92c4af82bfa2a5864a3a851fb1b73c0444a98a10a7e2847000120000000000000000000000000000000000000000000000000000000000000000000000000020000000001017bc96174b593b7742a744000f987be10f53ab347e07e3eae4a5a4dcab7a325740100000000fdffffff0240420f000000000022002093dedd0c265bca868576d3ee2e59eebbb20ebc296e58f7edca93d5eeaec08996012f0f00000000002251205bb43b7fda1715d0dd01416825a18522a2d7ecb16475b88780e8fafc1c73ef8902473044022047b124323f92a3cde79bd48e98e53312e4ab71dd673f69ec36d3ab02945de29602204ef36c24eb5e30407cb5063dd5fc40fd9ea15e69ddac254e222230ad11bbaa73012103f1840aa89c7fb63dc6cf758f001b31c3e204e4bb46aedeff80540d5cf60138878f000000", "0000003055050a6cfb45ec437a68d424e0f56a6211007831ff1f0310fcd88a5aa6a2de578773d3816c5c060cb55bc5c3643ad355fa6c1dc6e9ad29679191cd7768737c80b7a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402910000ffffffff0200f2052a01000000160014a378a7ce37a4c82b2dd13ad8e1a590b580a1bc480000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000030f2a07c1e8c3aa3159797ba0aab8ff40492ebfdcd4a7d9afded41741efb17c07f1754ac4399f4c38e8704df47e4fa369b823d8989f5e3f81442531d073478dfd1b7a5cc68ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402920000ffffffff0200f2052a01000000160014a378a7ce37a4c82b2dd13ad8e1a590b580a1bc480000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000003042a3e5d5244e19ccf3a4a7a0c0f58301529306d5b82a1200b94cd2d47424e235e034c65ebb1a3c46196d417d6bc2c28ac78817c5edd213844b3812f0af3f43b7b7a5cc68ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402930000ffffffff0200f2052a01000000160014a378a7ce37a4c82b2dd13ad8e1a590b580a1bc480000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "0000003016d854c63bf827f3c9830e228384febcd003c6709a8fd420334b83ea7c85c27fcded859e85c9dba07504c3a00fb891462efc14797ae28577a46a6c6b950d411bb7a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402940000ffffffff0200f2052a01000000160014a378a7ce37a4c82b2dd13ad8e1a590b580a1bc480000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000030982cb4998ec46e5db74ef938e15159d614f12915a2b4944f1ff7a70fce1cdf175eb7b9fe1963bb6b088b07fefc118e0b3bd9558d7d31e82ec966dd823c393d91b9a5cc68ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402950000ffffffff0200f2052a01000000160014862f42be9aa80f9fbd3d83775120ada825d3fc160000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", "00000030a7da249b84808dac36a3a9388c04b3c3716aafbcd80492ea361c8c819e520c04d383fd1555da2ed45f76f955d878db6561aba8d1e19b9a259b6645fe7e82c819bca5cc68ffff7f200200000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402960000ffffffff027a240395000000001600144dabeb208a4835465fb0cb8775638d09f6a743ca0000000000000000266a24aa21a9edc5d7bbd5480c150870d8c70b35fa450df8fe0c9ea4f47f247bc48a50b7787cfd0120000000000000000000000000000000000000000000000000000000000000000000000000020000000001028c69f1817bfe5402d7759cd829ae89ed7b16f0004fec1f3df9f5a5d3961f5f290100000000fdffffff8c69f1817bfe5402d7759cd829ae89ed7b16f0004fec1f3df9f5a5d3961f5f2900000000000000000002e77c0d00000000002251208f8ed44627557dbccc42ae018a9c5474a991285792c4ca891c1f59c5665d3460e0c810000000000022002093dedd0c265bca868576d3ee2e59eebbb20ebc296e58f7edca93d5eeaec089960140b4c16f718b0c73e68094fe843c1cd250f06624365e19ed5b852d974354e302141f5eee6127999f8e768d880eb4179f6737a1ff5d012ee1799ca8a0f0967469fc040047304402201edd3127cbad74a1b517bccde1e0f96d6f2ddf1c95636d5d6bcbc0e75e44e71d0220039ec583080caad6d1a7d2a08ecf39f9be714394b247163eb55be6213df4111e014730440220340e23fdb7a0f74113e13c33269b685ea86d47b76be3f720712872e88e14a52002203518e84e9e42f0a694c677f78712d7e7f08a313de28da34b8d3c7e3b874523f20147522102570ec0b6eb545663302183a62eac75d08fdeeb64f31352192065d601c8ca521d210266867c342b8250ab6b4edac6dbae2fde53782b69cd17139949fbd4f208487ff252ae95000000", "000000300a2bc4415606df7df660be753ca47b9c4aa59275ceb0487ba1022f3169d22c61600ae345f8b5b52d28632b8932f677eb35cd21c9ba7a87eedc7db328325931cfbfa5cc68ffff7f200200000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402970000ffffffff02880c039500000000160014a248b3aeab1bb6b97eb61da2924896909d5a6a350000000000000000266a24aa21a9ed52cc9ef6566a052a4c78b21b75128ce4e4a968d3b20c0b69a45cb208ed4b9023012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101a2a0a5c23d43ec04b12ed14919a3998752ea6a76d35609ad6488fa8de55185dd01000000000000000002a086010000000000225120c4d282415f9a81d18e08b619a19d116b8656cb1bf493e5f540bbf7b7a0584cdab82e0f000000000022002093dedd0c265bca868576d3ee2e59eebbb20ebc296e58f7edca93d5eeaec08996040047304402201db4aa7b6b30648e0d987f0277ff209cebb58294ef8d33a6dc39c56bc1748ea502200e932a413eb07a2ba6ff6b16dd64685f2cbacab08c8c274a9be211f423e049e901473044022023b3d720b1aa05ccc596ec2df868658c104b730526e4976a0d06a4db01219e1f02205852465855aa5053297b6f186e1181407b217320fb2d1dd17f76ccfeadd3cb620147522102570ec0b6eb545663302183a62eac75d08fdeeb64f31352192065d601c8ca521d210266867c342b8250ab6b4edac6dbae2fde53782b69cd17139949fbd4f208487ff252ae96000000", "000000309d273f069b8317253a3a81f1752f75b375af961de0bbd886174ba52f42814b2082850ee10901598126f3de79bc1c274fb6320bd691fc4d559ceae4121e7d44f0c5a5cc68ffff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402980000ffffffff024f0103950000000016001487203de6682f25b5aff2b560e265a2898013a0c00000000000000000266a24aa21a9ed68efc088d6af204776200ea395927670d1b2074ce1fc3ae38fd5b20465d7ea590120000000000000000000000000000000000000000000000000000000000000000000000000020000000001017bc96174b593b7742a744000f987be10f53ab347e07e3eae4a5a4dcab7a325740000000000fdffffff028096980100000000160014ff8533eaf0b139bc073d2a22638e6ca0a0837cd55ee3dfde00000000160014dd437fb5baec4837e16db6492da15735d6bec53302473044022004b98e86e5421bc2bdf1210d1843e6522e326cde78a0a06ae8e73581b0f28417022009a2742d6b84f996d7eef39b45f2815f8cdf435610a39a6f17661948613a2b67012103fcd37f519890b3a52527e314b15983e89b0310a0c625182d3060579ceb83eed097000000", "00000030e5a65303c5e691e1730a356042d83a9fe40666a51db9c363af1a9fda5cef0e2e8dcdb14c57fa7d37becb12a46d91e6adef829e1db9aca7f9d94e0e748d18dbf1c8a5cc68ffff7f200200000003020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402990000ffffffff02091503950000000016001481341d8d290681ff33fdd15e7d7b7a99bcd037af0000000000000000266a24aa21a9ed2e9fec3bff82a91adde20c8f990b85b769efe381dca08b0dea5fe90bbb766fb4012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101fb09d48388d44aded94a818b4d21499048958b804e44be571bd3d2710235b87a0000000000fdffffff020000000100000000220020adc5aed50bce13b21c47f3f0eb0148161ebf4cbc2878a8e8e5e5288bbb2ecec1418398000000000022512081da0d3e3051135a89e2f9d85e2eadf661f959bfb05e671097854672cfd0ac7d02473044022062631301eb755fddf09b385e63d3f5e31719eb36be8753ad5d8ab678d4a91124022040b7af0d98bf28df651f0d1f985f6ca21997790d1505fbea69538627084fbb59012102add4be7c37be9c50f27bb329ea2e8f68057a61e12097240cd4bca9924eaa894e98000000020000000001011e9779a9313702a91a6d48a813f3bdae967f61ae55f2409c83d6e822164fb1e80000000000ffffffff0136f7ff00000000002251201067fac13be81ae1909c1d725d74016ef7bf6edf1b03387d461b4925f836e8550400473044022058412332756db92618336fb8b535ed878f2bf0b06b6350d7afcc61a515c6afc1022057376ff733177a01a3f703ce23b3c20c5fe649fba1d4db3b630dc4c95b0bd4f30147304402202c1a993c7e25862af407cf3632d0aeb985c85815bb67e6171fac299f6eb71ef90220102475307e731a19b2d4b10c9ad27cdc21f787cd96a4fbecc1a496cb353bb68801475221035c517d5a56a85036c3a7618d126648347e3a3a9b51df6710df0895cc8960a7bd2103b2e68f3a0dcaddd1447bfae157120f90b850239f3c8696a16641c9c8c4bbf3e752ae00000000", "00000030d5cf377ca8f216ff4fc69a396b347bfedcd2db61cefa32cc7d9d9d107cead8693ac1042b3c50b4e1fcd855105717e79a531b620b950bb787d152b21f234090a4cda5cc68ffff7f200100000004020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04029a0000ffffffff022e220395000000001600141dbe8083c2be520937fec315c5da8eb5e006c1b70000000000000000266a24aa21a9ed39e9bdbb98d6db0337d9fda0b574e3ebe40a6999819bff9b77a9546725d1776201200000000000000000000000000000000000000000000000000000000000000000000000000200000000010108090ec7f33379421f47fd271d060d0e29869bde5fac8230b3a47e7d89bd6c9f0000000000fdffffff0240420f0000000000220020c9ea2c65ca8cdc27bc130fe11f5e52e175475e0e31b645b1dcc3832dc4f7e78deaa2f00000000000225120774b1c2a9b4b0a9dce43b46395940da2001115d400fa3667909ec86a5d36518b0140eea8154882d655e277895ab6707c2e1e9dbc31d230e026e024a8a511a5e068526e84915d41a273789dd83a0bcea5103e10d8fd4475c8bffdb8b18b8a22beb6839900000002000000000101fb09d48388d44aded94a818b4d21499048958b804e44be571bd3d2710235b87a0100000000fdffffff0200c2eb0b0000000016001403cfec8715e1f404a36ec011e4238f86329f909c0613f4d200000000160014228c0ccc0395f711ce40ce181d2d9b67993aa1ed0247304402203e4b40e0bb3ef5f82e41ea718d5cd386112ae74334267d4c0962a4554ff540890220390880bff28fa0b29791b4594dc1bae1e20987527b05da29c3ccb57f29e29988012103f7fcd435e6037c3d3541e63d617d96dec0f6a9a30e342e1cee7e16d6680cc8af870000000200000000010155d53486d003c5ba4b8eb9a3f5da04333acdb5d0023204d507e3e09127feeb900000000000ffffffff0176390f000000000022512012536dbaa5e2457b5a31dd8fe7667e0397683d8fa0a83efee353e279efc3afa9040047304402206c9b5eb1d62f252227df6fe6b00cddde6b132e943fbbf4a6f4d4862ecc65d56b02204575a146e4680c53d3cea728945dc7333532b79713c9a072ac8d3ada60ef232c01473044022023c310e4b8ea1109ebc7c0942d287848b95b3440a90a9a907a961e5af8a01dea022055995572d95c5eefc73823246afdc3aead4964bb1126e40ce73e0b66683c6b500147522102c2348b962b1ec06490a1a9e68bd2f572c032359f4f40f188f0dd6fce479cc23d2103e1bfc7950318ddcbf165f83fd6553a88b91039a8575bfefa52e9d2fff6b5760b52ae00000000", "000000309a2aeafbe310ae77df8724f53b9dcbddf2395552bf5d20c05b50c14e29f528414eb7c43355524e6c1ed22a63601cc1fd009d502532cc7274d5757dd1bf6f147dd1a5cc68ffff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04029b0000ffffffff021e29039500000000160014bbd073208d0396ec7d5e1cc55edc01cb5678c5f50000000000000000266a24aa21a9ed8edb2f4eb00a806ba34f2f1cfa6f6bdde8d6f33b0b8d788057a6a54c6ef3d64a012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101f1737831198bea43e932c824f5f3e2f96256a2d1a1bac86f2ff4975672899d9d0000000000fdffffff02620dcd0b00000000225120c9183ede9121f3c6fd1498822c47a760273227669c909508843bac5bbd813f6880841e0000000000220020c9bc5c063caefbf7a6c7814407b5627b4f81a8b56ecbe932c682f9cbac0d19df024730440220597e09404a25cb3003ff039eaccfad8a25a34934b947d126feb4781e2788c989022035ebdc110669625f918befe86a6f63876798bcd55d259082729477ef927f77dd012102473d79cf4a10e7ba834c026aac43ea18b0a7fb75ecda5184bfafa8c46615f6b79a000000", "00000030a27e8ef8cad7e697acae802fc8bf7280f26c1a75ca60a46b65458c3f93461a440ee92da0c26ed427789d46186f7a27c0d14cac2db2156e0ad7466469db3cf28ed5a5cc68ffff7f200000000006020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04029c0000ffffffff021d41039500000000160014487ee1d9886aa86c7e53b8b23a86557bd72967050000000000000000266a24aa21a9ed100aa64d612b44be4dc1eff1d152862c32eba6ce432695e4e28a2ce9924f9f1e012000000000000000000000000000000000000000000000000000000000000000000000000002000000000102b6f77750c0aae7faf2aa6e4b38a14671adc8def298a0b89ced09596f002aa5ef0100000000fdffffffc54a87b4517d7daf033a11b21f2ccf114304487c4189599816f3e243569c600c0100000000fdffffff0240420f0000000000220020b41521751a8eb257315f73a531763071cc39b7cece470f630fd5149fe7b7057ac594eb0b00000000225120a5410daebf4fc3cba618a840af497fbec4c3a084534f2b7b6a7d30bf35f8f5660140528e20b424e1ac7f2ae067093552f424dade1321ec396a7d382866be7bba9ba5a3faf375dc9b39d676d8adab67c30df596bca1412c3871bb9538fc00265c35bf02473044022003304f0d559771fe9d4b06dccecacbef7eaef5a97c7618b567de1ba53e7146ef02207f7138b9cd7fca8ea13498e6fed96b225873131c45b5c46e4e78c7fe45d5b3e9012102c8a8f25ed135cd671c88bd4e407bb3746678cfacbcf65ce89f8efc2aa0abe5359b00000002000000000101f1f1c0f2d69ba8f0ae95220d8218dcd117603a33c50475a65a5e4abf06006d0a0000000000fdffffff01cbb3eb0b00000000220020752dd5af63b98ff64fedf94683b0306c43f6eec74fbfe917639735b305e1b6d9024730440220082e14f48e21020a18fa8076ede8d7fc459df2d13dafb55e84dfaeb53843cff30220342483bf1d343af8a5473383de0d128ea92f97ea48f86fc40c74061b106ed0ff0121024740cce0e548f4ffe80c9914e43444d8e66ee8991dc9d93ec56dff4c56b933159b00000002000000000101f1737831198bea43e932c824f5f3e2f96256a2d1a1bac86f2ff4975672899d9d0100000000fdffffff02ae23fecc000000001600148dce2fa6292e4a2711334c56ecd0fdef6b8174f000e1f5050000000016001406a704367e9af9d1e305d1f0280515f824d5c76202473044022064406925fcbb9ea37bfaad60e17d8d483b398c2c50cc550ee7873805897ccb42022048a0b07a3543fb26eec6c2eb0fb3976a37e5d71ad1c50df3f1a5b8704c6e1b7f0121038c91b1360adc350830ab6dc4eff0c9e0df19db675dd165fccf591a4d950185269b0000000200000000010170c3f4e6f37cb3796f4008fa5a2a521103b23b9268b08ccf72216644b7b6b6910000000000ffffffff0101abeb0b00000000225120d2cf398fe62961599e769a8aa80430c9854dc04fe198aacceca063d76bafe8f7040047304402205c48299c2d099d2207c162b84ad95894de3601c6e299e6a7399d29f07ac660b902205e0fbc919ca693d5692588e3771b225abcd3acc8c2e05ed2ff5832148a32a55c0147304402203ea0c647ef48be7727130208ce1a59e123f3e48a88b5bb6b167e41972ac6f056022044b72ee45a4b823ba6924343c9f48c498eeb882e7a7cce36003925aa02d0cb7a014752210248fdf258e62b2d58c89663148c205feec42e15954c8c28ea8fe4d1d61293caf22102a75fc9b044b267e4314d018587e9855ac2ae817f3a64835d194bc99959a79f4d52ae0000000002000000000101ec1a427b4378593afccf7af7352f9bd37d276459a7a1f63e805094bf6acae2f90000000000ffffffff0176390f0000000000225120ebc29bf1526b5c18e4d14bdc0c2425e683d81ea0036c6834b98f5b04cdcb9d95040047304402206bb171775ea5334c9e604505eccd5010025e0bbfd65186e2e4f976a15dbce329022072d784a17bb46a4439b90a45d18f8cf2c28d80ff4388f4fe94740919cc6db2cf014730440220719782d4dba4b5024b5d35d7d590f84df275b1b921ec77e71cd98e55d677d702022042c25f4975c8eece9e5d0a820eed0a91a87fa063f9f584316c9838542a3f850001475221030c3fc0add8628ae8acc7befa2b833c455db3868be6de7add97b945a1e506f7fe21036c8bee77fa3632abc7a5df76cf029650eea826896024a70eaa64cac8a0131c1c52ae00000000", "00000030b7d0d291b19b111f335766b01affce6f0a2d2b5c1ed9bee013914ab68b008b6306bbf65b18d303804cb360151faa055f3373d1d03f2db728dc94abaf4e956ce4d8a5cc68ffff7f200600000006020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04029d0000ffffffff02d891039500000000160014794f344028be1a45e8f74597adf0c38c6891617f0000000000000000266a24aa21a9ed2930b86df8466ba86eee76393a70dcb57675e9b80283c5e6d61e2729ece36bae0120000000000000000000000000000000000000000000000000000000000000000000000000020000000001080ca195cdd7b29ead524961e05456441fa5e2c97c8262739ecdb6d2228b29353b0000000000fdffffff0ca195cdd7b29ead524961e05456441fa5e2c97c8262739ecdb6d2228b29353b0200000000fdffffff1b5909e9c919db035da2aa438471ee7937308aa05d32f786273bde7d3c27d7590000000000fdffffff1b5909e9c919db035da2aa438471ee7937308aa05d32f786273bde7d3c27d7590200000000fdffffff1b5909e9c919db035da2aa438471ee7937308aa05d32f786273bde7d3c27d7590700000000fdffffff9a8c6de235929d0b3850ec06560bf60d252718a1aadfe8e0718218af4878d1790100000000fdffffffb17766dac493e0b215e2255ae236477dd453cad94560d7f418face046fd6c3f80100000000fdffffffd7dbbaa1e20d2efed3c4241e554bd38be7b87b97dab1024d7880b72a862d584c0000000000fdffffff04204e000000000000220020369444aad3ac8c5452be625479f761587c42fbf66fecf644447daabc73c498223075000000000000220020d90c23ede7b77f89f4cae93da9326ba176d158a0b65faeaede5684c3c0f7c8392808440700000000220020f7bbe8f915381b4b9b1ca14cccbfd156eea19888550d01a5014f977e98c7fc8ca86100000000000022512018ece00b736f9ed77ed3a87426643c242223e3d6116a4cd6d90946f73de2ce71024730440220426dde8016515f8f897454cc37361219c5414f5e21cf91598047f12e3ad2fb8102202602d18876f20eb58a593b93e782b820cb68347d7beba839113a3a1d5b31a9400121028a599168d3c97debc71bc66e6270ecf054f300d888309ba05471a482175dd93002473044022069681451f9469ec6e7b4a62db78999e9ded9b2eb1682b0d90895f0fe67cedb8e02204d80c50638d043a9a8cdb34259774e7b9a474047c178b61ec4ded0ae186c1602012102272a9a25f1ffed52fab04a2cc88aeab135b53723856a8f1481c26417f88a922e0247304402204a2f0bb65bfafd85a6ffeaf9e75ec9dbe20f5d9bc50d8d98126942c00951aa2802203877c0326e64585cf4c767e57398eaff58a279542e9fd16a223d1f507d1bfdbb01210267f4468ffafe6f919ae871f57f09690467f494e83e0358dc64d10472f9072f4c01405cac3f8d65efa45a8e253c40cdfe97d8bc182e8ea04de2ecdd3fe488c6a9fe6508cf336ac742417a80ca805f069e088d4e8ad79575cf5d8dade454f69645ce6b0247304402206a5d75ef2bedb452594a97c52277b8532725cf5804b62669872d97c0cb499c03022011aff97f2c87ce8d99eda0f9a2f73f2668a82aea6e0acfe3b7b01893f05fc403012103d034f788f410c2ec2d89d161df3c3715f965248aa53eace463d10eca443eb1f20247304402203605a17cf717f57d125b999fac579064cb576c214a2204a4b8a106695607b4bd02201e41c14bcc19af1083d7a716a1aa33fe8b23b3b07eda3d30074146b4146834f60121029da47016812598be384212ce15793496c0ec2176a87e81c6432dae964f87c9870247304402201f4bb570df0095b4c5f1c35c5db787e9e2d289ae3cc9d0b75decbc7bb41e25c00220789c3d68621f25bf1fa30e72652591354c71aa8397fd1fa18442a0ffa037900f01210328cc8fc978e209f1695fa5b5655061db1aab2311b524176945bf1015ef2d4b89014024629ca4144d02f2f414e30644b1b7800d19d07ccf88e6c25cc3c5bd208f16c71c0deda1230d7df241f63a25b4e32a3036ff20168564e24b816693dda22b44d89c000000020000000001019a8c6de235929d0b3850ec06560bf60d252718a1aadfe8e0718218af4878d1790000000000fdffffff02343208c700000000160014a155ef8ee8d9dc9babc345e5a4cc43b351c15f8a00e1f5050000000016001443120e0f201f7d32d7949f4c9960fbd2d69ea45b0247304402203220cdbaef52d32acc5730091f93842f38ad1465e4767929d05205585d740e61022063735e8c9626616a4cbe7d39c767c12922c3eeb1af6fd1166bfa2a14efa92f710121036afa1e054d6668a44a68d9a8431b49fd26c1f39c7ad8436225a1048834b2ee6b9c000000020000000001011b0265d8119c737e120249d7d43f24d9b9112ceb6b5574cf05c2016402cee8340200000000ffffffff015eff430700000000225120725e8a69e72d2a6d3e6661c926a16dc1228dda186d83aa3c7bd9b54cd317f29e0400473044022011049fb20acdea1175000a01b2fb096d2332df46c70a17d9cb958df585f461dd022069cdf216b5a3cf98011b0ac14768f87ca91232b5ecde2a7579099678c0efad450147304402204dc680a92545b9ca5db43dcd40c16204db3c522e78d7849adcdbc4240b819151022074b7ec5af773e1c6419ecca535a2e5b6bc42e0ae476d9e558215d636b54432c30147522102f2f2eaac321a9f2be81dfc5d5b09b481fd1e3947b8de8bb426cb67ccf0aa475a210334650d3c6997bbb0ccfedcabc5364d89a43e5f7bd3a548e56800d9dcfe6a9b5652ae00000000020000000001011b0265d8119c737e120249d7d43f24d9b9112ceb6b5574cf05c2016402cee8340000000000ffffffff0156450000000000002251208de5a3aa566cb6dc9037206bc73530ce6d7d8ea2dd1c488aec5862cb8b8e860e04004730440220173a7f31ffc8ff5925c7b5248078acfcd484bb83ce0364ab18cca92dbe3be06202201516c8cb93e17d653c2bd66d02cb82635cb0ff12779c7062b5514f0ea65db3ea01473044022061f9b595763ffffd1c33e7fc3004fc8054031eedb45fe11941592d0f854dbfb5022043660a53fe00e56b93bd284e24337fff4501d06108b66cf07efd3cb13576dae30147522102f52c0210d5b05d38a0c01f316be27ad07fadb10015f497accfa78b7c3cdb5cb621038f2a5514a8fd540d306215ea47cded68140a4d1346f0b8dc35b4261701f7ec6952ae00000000020000000001011b0265d8119c737e120249d7d43f24d9b9112ceb6b5574cf05c2016402cee8340100000000ffffffff01666c000000000000225120db2dec31ac965ff2ad3e392d2cf6aa76128cea0ad98d018b07bc5de2e2346bfb040047304402203a54a92ae8a4749684e90a7497e63ecf9ff45487145ca9a11b7572ebba3ecdb50220508bf82e99bb7c33ed3599763b1f16e723d99b2148acacf7dc51faa467a078ac01473044022029a6230007ed6981d381bd137017962ace1421c9cbb32609a60814fc3926482b02207650a6f5ede957178621f082ffa4150c76f54a067144fb95df4021aed06b8e680147522102aa0272607ae73d86191e375e0239afb53d41044d47c908dcb6cd0b8ddb2ab0632102c9c19e9f4dacbf34bd2a3fbd98726050bd4a03a8c4b5eb56e936174f8063bf2a52ae00000000", "00000030264a2bd05fcd9a4169cba7b82a80f36bd61ccfe7775404158fa4520d3164715c6afce95c2440d24fdb58fa3ab33e42adc07a79ed883f58659631e50792c16834dca5cc68ffff7f200100000003020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04029e0000ffffffff02931a039500000000160014717cb6dc9915d62346ea07ee61ea32da7970236d0000000000000000266a24aa21a9ed7836e7fce6f6dd279ca9854bfdca8e893064f45618b71416fee7fdf0a88f349c0120000000000000000000000000000000000000000000000000000000000000000000000000020000000001021b0265d8119c737e120249d7d43f24d9b9112ceb6b5574cf05c2016402cee8340300000000fdffffff7375f9b47d75c6e3af621018a50fa2c8b9094f08f4aae0873c7f183eb7941ec10000000000fdffffff0250c30000000000002200209bd3269fda069b7ee0584622d458bb437635b3a179265dee3843ef18f42f35c6ed84430700000000225120def24e878a66b695c4d5b414b42b7ce94471dac985bb0afb0367e8bbb92c5a5201403801494402ede78cdce356dbcef09aec5e2f27284d899a7f580392c4af28ec6de04447e5cac3549b3648a3a55e2e5eefeba4fe98d23d3a84f1e7c61265bf5e5e01406ec83566298057fd8b0d18e0056148e33ea2846e83086bc1d409191b0820c51a9f3e6e144d4eac7f2e1bea9ba1f60ba2cc43b0e1b0de3dff293f6ad577275d709d00000002000000000101dfeaa138772eb1cffa834baf9f04121ca9ed5cb70fa8b970b26bb29714819ca10000000000ffffffff0186ba000000000000225120d41c550d30a802d368917f215c86d3351f161ebf00fc495b98e87e67ca34487604004730440220553c369eb5841565b647a7265b35f2da256f2f13e9f28c09f46ab93eda6465ef0220511c719824ea5efd7f014ec8550bc6e372860bcec49aa13934b0479cfab917f30147304402202dbfda2835b84fe16916cb75b2f541848b073bf2675eafd6403104ee20e3be0f02202c2b7122246a974795b596ed65577f4abd8a79b5290deea6f6c253ec67e056a60147522102331879114f4a701a7d448286c11e54999754f9c85d4de4354b83c0496079e6632103b4fdbaf0f285ae4492f88b1b22af0d2a41c49817305bed84cece23ea0a6364ae52ae00000000", "00000030837acad2c530ba013912624397e2634e53c49f4762bd90b830d4074b100dc31c608dcee1788c72b1aeeada4482cfafb90aee8d657577b47eba5e5c22f0930ffedea5cc68ffff7f200000000003020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04029f0000ffffffff02c9140395000000001600147ed893dd2d5243d6c97e57b0d5306a713da9c5a10000000000000000266a24aa21a9edc4fd9cc31bf0535eb39b3abaa09d9e38587f0cca32a7652adc5534197dccdca20120000000000000000000000000000000000000000000000000000000000000000000000000020000000001017b8f758774d07ebe19b8aafd98a3c2cafbffeca90e207329d3a0712d743459c40000000000fdffffff023a9de9c60000000016001457359343816e81dc2620824255266c220e99e65080841e00000000001600149edfbe21c9e3afb797debd0aeb518a9d97793ea80247304402203c3ba9c4904b8fefaa76ad4ae39a8a706c44b79581975ae433bef5b483e895db022036956a59af4d1012b9c80815eedf28c3e837a36a30a3ef9481503accb1944878012103c6b5c1825b0241be7b0fb6fe3e39c295e3514ee03cd14c544b707af2c2ffbc809e0000000200000000010155310c6239b1c691cda8c054f3933467fb75153dddbd83dabec5d621990ddc920100000000ffffffff02d195070000000000225120370bae2303e8b17792a34ee04ada86a6b2b84fd76a01143babd899c7ed9e837220a10700000000002251201363815039bd9e091221a14a2e831ed038583ed2ecad464f4d0636886dbd652d0400473044022007b4c1c74291ab4d111e69d3516bc2cf2e651ff9ee6458f62a809a5cdb67f409022072e8c1acaf103ad752887b4baf09c8173863f43abf2a11fe950728ffb60ff67a0147304402200cc5de9f93e44cf65cb05a7996bb943a8582377daed10ce6e0870736d54798430220783265e49e1c5e1f58b43f81696fcac06698b223774f3a7e2d44389b24644961014752210313ff4006d7125ca9d78131ea9f6110e2da76e91d80dcc569d9074348a12487ee210365bc80cc1d94ae366118c78248d14612d055d2f7a2673eaca191509cbd6b461152ae00000000", "00000030ce263c56fb2ca0fe4948a337f1b3505df1054f2605e743d6f70a7edf003c0b0aab66597ad9793125daaafb1b7d834670246aa53724cf78b40d3a99a17695a93ae2a5cc68ffff7f200500000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a00000ffffffff02c911039500000000160014ec21bdc2ee84d2d3c508ac6197567ea5eea234370000000000000000266a24aa21a9ed04c8a28cd0a29196f7626c60197a23cd81347c31932d0828512b625610a305a70120000000000000000000000000000000000000000000000000000000000000000000000000020000000001020ca195cdd7b29ead524961e05456441fa5e2c97c8262739ecdb6d2228b29353b0100000000fdffffff1b5909e9c919db035da2aa438471ee7937308aa05d32f786273bde7d3c27d7590100000000fdffffff02d47b0e0000000000225120ec722e1af72c414e9967d22b9809e96127fea27702c78dd7821b1c5aa9f08f5940420f0000000000220020a12560bd8816f9582f5de801314cf599747037f3e955e54e79821bb113178df4014021a2de69ef760b1ef71796c1a8a2ebe5c469a8ee48e6bfa4d76415f17fbe55837d8ba2c7e649dde9b0a5dca6f4e61fee90af721824e55bb069b7bf9a798d80d10140153d07aa86839c30595f05e74c97ca37a586394252c95c7ff3a52c820bb2bb76cdb8d2a772935564445d74ae238f26453ed722f5c2f997a1668319f2516514889f000000"] \ No newline at end of file diff --git a/tests/data/autogenerate-bitcoind-wallet.dat b/tests/data/autogenerate-bitcoind-wallet.dat new file mode 100644 index 0000000000000000000000000000000000000000..2e5517f3ec5d0456b74515ca0b73a2db36d1f94f GIT binary patch literal 118784 zcmeFa2RxPk|NnoMy-7wkS!EuMk-f6A_lRTfdCW2nNr;S6qA5uUC8Ls(q-BLdMN}e@ zne6{jm(Ta}tQ2<;}IC*kH+vI zA@mR^6r#q%1A#!GxF1g3&&Ia?8L{yJ_qzW1=eBsis&C`{Z?8~@cz6m8-46(iE)+r+ zO4s(=-?u()5!fQIMPQ4-7J)4STLiWUY!TQZuti{tz!ri3sRZnxWGu|gP%H}u?c(R| zkM<5&|AA?mX{%dk^H`{B7;5vZ|3=u?J&H%e&{%`V#7u9Wx|uDHfwnD=k+B7jk)@&G zZk}+oUzqzZ!NxB|gkYpBdzhgR?*KRV$k1RvT-)9W9fk?~`Ppgxs7_MrDI5ovd>t?e z?uVH!Y5grH-4fk*x+%Ibx=(ZibiH()bS-qvbPaTO>8j|;=}PDd>CVudq|2g9`z2rB zWoz3auti{tz!rfm0$T*O2y7A9BCthZi@+9vEdpBv2qD06*d8a}ahMO6vL^-OQr09D zT*{KfgiE&{^2DXghvabSwnJpNlrhm7mog->;8OYoKU_+eV1P?$6GU+-O#%fjrN(;U zQVQ%|TuP1=#HD1|_4Yog8!jQyz$FMi7%qj=+2B$L8?MEF^4Ht-k6YUofh_`C1hxol z5!fQIMPQ4-7J)4STLiWUY!TQZun7W8itun4Sx{I=P++M0ZWq@Oj8w3Xv;tZ|E@brmX7cb_HgxA@I`vL%gcGVW85R6ebDYGm=JDXN@2Je42Fr!5+~b5snxlrp7Q;( z1WWnw6$|>ZCz)E&Y74SKN9FfnVV7xe>TPgK2;DcjH?)Uo7HE8Eq^aIfnNT)RrclU` z7n8G+y(dj0StSW1k%JGxEn$yg8Bhg?&nB*aOR`1a|4jl|N@g1Ro_$?L9Uk#n)afnE7^a@mJhjJFzGr5kg!Ou= ztG*-^*@RJUxrTGk1-T}N$@By>9ulm4Vl>n5Cxh!=1a>OCu*$vs`)hY`FOvq(u?T#3 zFJ9VpCHiDV-*RW>o*2t;@!nUG*iIM}ir`5l9~$Xet~-qI9(Ibj*vjRln9C&mq?2jz z^PM#k2ib=6*d$480!}Kqo0LrSux_g|6bj>otl{5Q*VdLLBuNoa2m(rm;Dtrid&Dlh zy<2K|-sMDVG8GvtfBB7At8lOFG}eCm50+DZ9&Pnb+1ufA-Sd0yzubSc9i^_0`}zw4 za6Sm=WwB`b#IQr}_zCKYiz2CSWX&hYPq4e6SFR&L)bv_U>7cmb(uNFZSB!VKyL%+Y zJtP3_7aHUXuSrQjKJK7?j`=cruKYdAo1=7cnZr4Q@rx6*7Zj{hHL%niBv=HNkLCB9 z;pg?!Ho*4(X&Z1glZ()J+*{hfqu+xmm$-UI3Y!_Lb9@65zr4<*B4Jv#7i#N|d}swT zoUxzEc6Ta%a!$#Kf!}wzw6(K!m)D9)-C^Fw^zK*PSjrv$V5plq8HDp`-JEbJqu{PD-y?JrRR+Hac=FRWg%-IkRQZUV<1kVW4p*vFL6;-+z>#pbb~M0B3N zMqc7taKMoY*4oSjGd8@23U(@6hKkQnS^sLNFnce0Z8N<-!81Z{l4HvXmCB<-w;vqi zv%Y8dt{5vO{|ZaZ{EvnTw*R_C=)-lJ=Q-nX?-oZDS|znk97T6Tym@I87MG!=-PQ4+ z>h#m+xecEUOXcB)Um)@yr_jLWVw5%$+cG*}KE`8{diVXBjGdI&jpB1TLJb211f2PXe8!Xmd$w2s7CE{nsr*AHJK7@l`zT-L7-NsUwWDts}^q zz479hwP>O4{%wyQOMNL#X*W71dmN@eFf3(H*Iz`Xrf})RXbCh_nvG(5XYMr-t(F>; z(uxw6lI9-_byFvUC_ln6w0>IVw!Y+zkkp+@M|MWOmwKyDf4gw{8eE{p_U>xq$!H6E zIPZe0RUsed0SkQ!wa5&b`cmbw839>Oxnu0sl^2G)uO^sL;WbpSQ`s_9e1=N-S3`x6 zM@)9rU0goMi=>6#4xd#IUm2>t(M(^xP5PphnDd8jEH&9b8YlUF8eMATH=|33ircP#~jtUv@UKD(4WGH{$a_&aEaj!%IgL-pmR-gFC zhp4`ZFS8Hf!v|)sJ7$s@U1sj{7&9G|-NAm%B7~gwNaE#&n!#jx_5?EoUPA>tl`TWX zW2lTUINvr(fA4^B_mEKUz<|<|FbEwK&asUQ_=TSz0zv}|gfKx*LP@(w3uv!VMNxjC z=q8URn;~-}HAk!>g5g83AFv0|law@YDw@vqf7IWpIUx@qvDE9$ldbK44FRmB3L+rE zkpA~(0+=(T1^IdjV}in5v`|LTRxZ9FwqABJHl87NE@3)eUTF7V1FfJi3$H*I3!6x- zC^B9) zMVkjIgaqn`SoxxDd~AbFBf}(QWV|G#yd)%X|0P64_~oMg!(F32P+CPV*889QYa780 zIw4JinEvY*|A{xKJ^z&(dk6eiLyYo45?K`MM>V4mv}qXTI)#ead-6nI)5k{pp=#9y zUgsGU;jA1a9)4)g(Dl<;pVtCwp^js&{|9rhwnr)^mMQK^*7{L zYWaUGcfd%kMW{1hKbE2NAT=@M zL52M3&et%P`gyEQ!JGE_o|ekv$IQpC&a?6jp1-QRlWxa!+ejTW!Aur!xdV18TjdU( zat9^zSC@o^E!TW}H#(Ac>B&c)55=&tCf3T(n!BR{8f*eevIkQ>(&DMxczgAAAL-CG;ZazYuYLC1okzMkOQ!E)QpL39{nSsWW21D& zq4)i?PGlZQFcZh?fncYy<$?G-Q0%Xc1AWER&88z8{Pc_ry`$pC@zk;VMJ6*SW-9v6 zqKX~+GIX$Zs<;x+>W>l-tgVLnaOl$wXazZZid{Ajrd+;cH6xxbf#qW|cHU~qnU z;eRktAo34hxT%xb2oykRWG2HPsEdwwYffpe*n;lZcoyqfg5<0S4FjN_g&w5(s>*7iSu0M=6DuWbjgVvope z2dVY8gQTyVn}U~n^xqsf!AuBmQ32*JTSWz)qJjqT3_=Y%0)fxKZ_quVJx3Exy^l(O zVu}1ESqW)8?8y2*s1rn%=HveW&)B+z|6>Ux2)ZH64pHLztV{QR_t6Kv9dl%CCIk^Tp4Ej^Z7CiGEE}7zQcCNw%1(amKnMq zx0BY0n`s$vkc^jtyGN9#kE@&yE{YQ*i3<01_4M)yB@1zPb;mug##(6qHO>Ln;3aOH z<7e>@;1((q=^r8ax8eb36xF|=Zl(YC5J(V21AgBhcsWaljNv$w7YV(ISb&Tmf6PSo z1x5u0IXI1=K)ydAes4oOzn8n8Uw8hY?sjkIqGPS~Em}u7s~#J;=AOAP{#+xHw)McT zTl0tC%YpfQg5Z7t)Kn2&XOxQ?*TA@BW!2%`B-GO}7RO9lGu)PhO|7$xk_iE2O*~Nj zm%KIWNhyq7BbHDy-}a_;*z}%(OPT6(o-1emVt0cF4=5BkD0=|Z!cqq3^4fGqmUgh< z{o4Dr*o;_SFCk+ ze%$MiGQ4-*=(;2xP)Kl4W&o(2Zi_MqO?|zCYa-max4#L?JsFfoFn{iyxqIW~i>0~S zgn%+99;laGV?p;XsR%tQe$bcY)Z4wuByX7Tt2(ex^IyL(loFpP}T;sGTI1`4GI z52F3|(E^)m6F}Dc|5L%mAS8(hTiRDNrPK*jHk9HNaIzlKQn(ll3h9Pa{W_=rmL>>e zNpLrY7S~>T&v^0pDf`c+5_^Y@GA>l}82TPc&5*}0x}4g zJwf@yf0R_80`!QjJnznr?)T=hXU-k12+q`>AS5a6>v||qnkXXfb*j~MPwi$r0j@Csw<0`rNMLlp>-O~y?l>S zQ5A(}IiBYnkEC~9K6@%-Hs?+iU_z55dhcXcl6(4nc0>iB=j<=sl)LQCisMy4AzMvL$g>XRK7e7VaD9YPQ)2I8R-JoU-Qq4fA`)eB-bBsG%z1V>wDWKY^^ zw!W7LIy^5bh7T2ZY(*#vhiW}j_h!_ltco$NASwTn^szM7@e{T7iT&3Obss$1T__ix zA4>o#m^1N61?=v-RafCJ7^PcheDZ49Qg5o~gm|Fn!_Lc2QcdAi>+@>iwm?5<4dkQB)Gu+=i+e(n=FcNsP@+c&DM#Xwn(Atk zi{rREK1$0_5VFAW?D?Uh$1hYw;0+;JpXp~{KnL?by$?LTBIFN{%KBc~!%}>MB3nhQ z(E0Nrdq}uoK&m8+7L8JQmH(_^A0eb1h)3$KWX1Q`hNfu#1F8E%vyPM|9?Rd~U}PEi z4)P%^g_hJ3pG|=VSbnwtIUpn$gf49t%@yi{xUv5Nke-KgKqn!OeoiRx>-byg z7J>hV2;iFgg1BsCJ;;@wNEOw5vSKFoNxB8B^4%oOaN1K!J+1!3w08=hqQ1Q$ARB>0 zxrvvLl)Q+IXRnZ1(JLHjH>G*MWN}?D<(?g_>;t;|RN>_9zQ6A7A2}`(yb&vmr2<$% zSSPLyy09f?RZjZTn9tp0>>Av4$r8!QAiCp>ppe8gL9DhDkJY`;@j2A~SD2=PV=ZX5 z^WWRemO#Edi-|4P46CuX*Nel$N*XlJ#n}}(z$!dGlE?UTYPtD?8;Xw@#h+LXhqdSX zJ-93Q8g?eyUvY#WR?Ng>b-gZ(J5YzrWI1P;26@!kYIbK?$XCeR01qS0NAB=GEqtst zV^{nDD~*CaHO*If!v|LzUA{c6-hK$1LZe^uDLrXS(zMl6{S`s1xQNF}Zc$p6nsdVK zoXsbCvC@^Nw1sKQeNUUqzA$5Jo+~>6OYZ*RgVLLckMIDjt{8nke>E&YJIKWX_SCnr z%7vY)!`oZ1?E-YsahPl`Ar(Y8l#_U@Y-eKE&P(rGyYr)L@3XJcQ2XM;-4YkdeK4@D z$y@yO+W72h6Y&u&C&0?+AzN=d_eU(`c#wjb+KRJ=mVheFRO2#xK{qYp^yCME?23bU ztmr8u$V<#HLgb$gc)1HPHt09`dUZBjGSm5(oLxU*tcs7-CITc_c7T=sHViH6>YDYM zDht}LCvr}DciSiZbInx~7xNFYUv}sxh}90_vHCG{B<}fRAGg4`3YMXY2a;U_3}dEL zGy1d#7+o&we?5qg6?lY17|Q~%V&GxA@wPMJOZS8^tI>9Sp7%GqKd~EF@0)gF*~g&d zafu*S?8IXg@#XG~Kn8?5sVc_<&3@4XRCx>5rH_Iy$xEu|ypZ3CFGeB_9wQOPZUb2L zVoeTDMetZ=O$SE4KU#J1XwlKo`Oiuvt;?Q|zq))t6U2&*c&zjrS(&@E!Xpo(cW_bJ zQ=D?QdRa=2eULj87ctwQ8tISEuE3)t!dM1?)gd=s`ERksABD*^8U=TgQSv8rOsMDK^+bx_*j9* zNrbVq0IRGB<{bs!Izn6~cC~Xgzdzf?D}6VZYE4FePd{g8;1fdnp}?Um#A8LOdSG?& z0EG@;wn@RrLY~H%xi=X*J#Gu$r{=!lalLVU&OhAtXPp5wQnJjmw{82l8mjas+L3yqy@$wOh2=U&#&6&FS z4txR9R5p>m{-?;$!z<=GH=0}n+y>{5aW&hsa z7}Iaf+O6$5uV<@mU^$&+dW|4fzh(#|$_S3hd*7!VB+j4G*iGKLn#*`g@VUKb!$2oo zX<%UA^AET2u|k68xj4HL0az6rUuyLF!67`ce@zzE1C?evytcFE6vOm^I=)Q(9z{YP zqrss(#Iq~%_Q*AoIO!!Di6M3+pJK`a?IRqIc+PZ;Qtt^njOjA@X;y#Q6>>9nr3J9s zZ>lZb+FX9u&1J5t9i3k^)rma_V>$eF_i~-8+MeS`g6v9!c&w5p(%K)1F+T`dn2gW6 z))8(}y3NV!p3*|1T`x*HPzqm{8=1|-O4I>XR0;R7;Z}MLE3p%F-p+KTuJ=5w^yGHI zf15wV4H;+|`FrELA^U_R6s$FyP`G_C=E*eIBcD0#U zi3-4KqVx6n>JendjM*ioYo(=e5xK~&A?D}xBhDy6?!JyE1hEn#9;>Lh6kA5;eJ7TZ zR@M|+>DpHXZTENbC@61>ufLa2xq`1gjoeJEWDmgVHp`5cUt4^@HixV;${IY>!<>b! z9d{FoY|4Y1#dW3*6U0i8c&zrAUaZIv9hie=d)FRD2(w&$owm*3#NK3{UK{%ToL>0a z|H#e6O5`_ukcD&dg?R2xB~&l_lls(NhblE^#W)BuJ}UY|O&o46!FA)^+(1S+bSLpx zC7bS5oDWW9;12r6FR|MzZFi5YPtOU>mlMSi_xc`Bsp0d%&BRJ%0ake_FS2Q^OVVGq z7FUOPGenxcPG7JUI+}ao>ps)(U#AEe`~`;!5Ra7uB02emVs1fL*LFsllO2UFulx?X zs`%S*$sOUU?!Jh@$7(aN5@~?d+}i_TpW@$7T3S(dvp>#jlY}Nem9OievYpN_Ddy1| zCdjV%iN~sc(t*#{!PqCMXgdB!preqX9%Wi>m_#r2!OPo^yb;=lkJV;kB@zIukhNt+ zA163$^4v`oqn#IOVmZ1i%EO8s`Hg-!DBN4TM-VGM;<0j!di%}v9v>HpDT8VzhTXh+ ze?p&fPNBhvxItT;$-Ch1XhNWdq*^q3WQsIA)brG>@HE6#1Sy3e^<}sM`8DcTYDfL1h)ClNV zs<)61s!EcbRB2SMBoVNB=oFPA6(i*++y(X-ev9$}>;z&N#!g~Hd6F^!+DxfURz=A{ zdY@v3i~**JyM+JRfRzv2!vzCP3utF!kFtr9%XM4$os6>2w%V;Ssb0DNjO{HXTpSSY z)-6y$KRi{wguMH*2U4b?;Ft1s&}Xoc_jEk{v~Ga~EDsQ>bk#6>G#LrROGFuleruv3 z&52*koev1G8^}>rHe*bHH#9P<| zRRDz2njPMDEar$eJ5wGu=7{m`o;`xN^1$%QA+&UQRKN8q6a@%fl8l{D9|hWa4$UI+ zdam)(r6OyS0&L)`(oe9|k}K{|Bp^(zdXmOVvX6S?Tw&IaL9VAa_vR`O!_YhC-M$r_ zuqzkA&GG^$gGuJy<&py!)HrtUrT6tLPa{y2a923Y#+f@0Aav)0WQYE-gI$C$A`ynULY4~ zUE|J5d)07d-0J)z_phg*k$^DrqjX1xv=Nz{Oo95lwRasXM`%iG-=DdnJnLs4PJ7`# z^bH_Xb-FAd?KxU7xGIy}asv|9_GAfC`(dX{aYX#QqW*XmGz1XZr|Ny0EccwMOyc-B zVB9oKf4ym%WqZxXp3{-cqe#SeXdobr__Q;FAO0qNk0fh90{SIs|8WQP>MI#);#uEi z8pEL0P(MIuftlFdI6VNdV_=kg(J@lnK+fCZo2{MfALcnR$^*54P6EQH%%+F@xAe5W zmnhAD3;mX4G`~}9KX37p#!yz-nx8u})B_M|k6aZHMRXrv^y(4OlN%h$PM-6*@J#wl zM{r`*i3*+VaBV7pUi|BafS_jQ-Bif3^!* z@5w_$uPBq~V#UqY1+@l*QY{#cJcFi_CCa@~{$s`p=4_k~x9PpT8jVHwhM2cDuaRXH^nQH&a7A-SG@PO)Z?YP=&kP z`&h%ioiGkSC>Gp*FfOLLHlNu!Tgx_&Pq{)<#fB^0?D<^9C*6Wt4(NSAC~{9aXnea6 z^~Zz4Boq=CCYqGCbu?S2_Uj+N8B1cn`!mc95OUHU+UqQJyvfCpY2V&zc}d&0q7N+{ ziP@n8w@JczXw6~I0HLz~Ldgx@qiLtl@S3qey;0L@GW92}-`i=P^-L$o2Gb1Na0R`E z=E;MZsTmrGJL1QzFJi9txR2l985Fh)`*ib7<8uv|6>vlj+Q-_8kM6>vGP~0zu;J+k zh3@mdJ(T{WafM2LENksDe8YN>T_RQDnyL?%^SO~(cNWs_DPDh5{hD-{soRmi`JuKQ zY#(sMqhF>Es8BCPQ=c#7&Jbt8Dj6_GbiuN<1uwpI3{};QfrSA=R7_XfwZrJNHa<7oBNe$UEZ`EGg@i=b4=~ZTGE=(N|X0R_|hc&1VT4UbZB`IFKBvZu?X?iM0b4W@t zk|&_x4QwOJHMk;>)n#%wV$f;1>PE{F*5RCNj?Lb?4hs>P5)S<*%wdunU)|(p`@>u_ z-Mvz?=&(pfl)D4gqJ`zYXMd}|ZY9S#A($v2lvi#czp)ayBrH%KaOHY=vE%Ubz8Qg> z-h;< zDZ8i`ejs_5Q=X8AwxHC9WT{RwIX~6?y+1Bis>2chAv9*q|8($;*T)Vr(zt|??_|2& z)nBxVX~?X7MgAf9M+NKvAe3Tx+15UNM*rc{jg$hBCc{PaM4^F**&~ z$Z^%Sk!rKEF1?wxzQD^ob@CY<{oT8AW+QI`647 z@GgrC&eq-OW@o7P79Ew@>AUyUv3u^bJ38PrfY6RIBRrJkywA|sUFBijPEAHv{>+z8 zzp7cI)exF11t;JLK)78<=rP^6uLxcBd&A>re=NkFF&mEz*ZZb8-)f$(GRy<}0SNck z++JmKz3WS!Mz*@lkU_Pl*D^guYDE00$GZe21?4Q*7eL5jQL33Y+nAAz7})!95tW~y zoRTv4;m0-&b51gu$bk;nJ6sh=ig+f*UVa(H}z_48uSLEUfLY}Aln~Il( z`D9m%kesINXBqNLDupZp!UMtgbM;@|S6woSSxZyctC}y?bu5u*(#gisEbY0w=2<8! zAO!1h1vw%FH-m0s)S3@)K(H1Dq#QUP*ocWJKnFGm%oF%xk55l{(~Ui=sWGB!77UJe z-bXDN$hihgW79Z_bW0zTLfU}?f(<|j2XtVwK-d6Z?4;nvw4j*f@W`*pYzI?ugupT{-Gl0;r$K2uIjz}?` z2gf<;FZvkTIL#fVTTJA7s9?>kHM`ReO1dFrj_J;!2N}p|;99^2JA?w?tjQ=HE&5nK%}A)pR}gi2SV!W=*=?OMaR%kS zk#lj098fwy2-ZCgvXL)poOm}>=HYCb@A>9Mc4o8bw11wzeivzL#H6!k>JR5>=te=L zcD3t)8Pto@x|ZzwAuShoYAo|&AhcLp$nYFC?oEjxq!;*VC5kfI_z0EN_s(784(aUh zV@DR%-!U^k@faJ!ghebbL1qD==7{Ml*Far+AjQYW+ zv$ydbL+ER_w;W61W1L^)$L8F|YqOq{o!t47AMyzhGHG8oQZu`+ZOL!R75~=g;`fiu zcZ1t%@5lIevuTFxj)lAhgkar!AR8?xy6w3fDfhh-^Ny>Xetc;_tSL(+=7ygy)3#jh zWYVic9FQ^Kh+si`NW+E@B(eyp1%zN-aUp4xP$7sNZje9pGBk!RiO!KuhK`DMi1s#Z zCaou}3N7=m);vuxjoz;|JarNEL27eqQEDhv4^=r;GSz-6St@GE50rN(vnjnH-IQvS zEEE$IO%w$bp%nTQyyQQ~+sH4I$BK@|ffd35LXggb%TRXh#$y;t*B{aRdqcExZz*3P;1`;q zUK)WF&ZbQ2%s}g}YNM@n{g`i1*9{>^Zx%?#?`uZNgm{KT2O-1#LomK>VbQ)Jp8nAa z$bhgg|45{aXMkH!s8^7r40Q01{S<Izz%AH4 zL{c(X8Uu^_eLrNRf~-uiJJK`4H^?_AL>jlorLVkvsE3DZkgud~xJR&?M+DLxn*IBJ z((e9l;hxfd0pV^)l$)QNe^{_vKv1ZMOt5FLTnI8$Ue+%F6ADxLeLqRu@|m8YL7rZ& zZc!MNyqBjh2IU_X8G=O0dPKWo{34=Ies1pYjfl$amv~0pZMQVYgP#w}<5X-*T7?7?0=JE=Cj!H0$e2aLPfpU0r}> z0(8KpXxwOHPE9?SewBY^vg`yOO#A0f$so>-wu7h{a$BW@!Lvr_>$mak%>Z=?wZNL=~vuo5^d?B zZBPwB2=-MT+rk)HLZk=nX(PN+xsZ^{(o}QR)Vto-3H7iw|YA z@b&6mcb-=f5u1yxf;s}i5eH{fE$0tO^U=Q@9;A6@RbLWXP>jR4;aw6W%&itrOh>R-2BK5Md(JOb+Flfc7^4GsWCX8rNVO9Kq(5fg}M(9AK3U z6q{84p!?F@^>O*N>1X2K8K-J^VX`@ryde#{4dF_Fm4VGLhz1V$Zf~eUT;umr1nnrZ zXmBTNZr_T`y=d6B#r>5h4p@xMLpnEv6x*B+Ov(i%i*eKDd~+z68*e0Ye|1QB_i1wZ z8$Q>Wp%j4dZO-=8`@Ja_W3KzpMcTbic}Gv#*7VGM@f9=kkJSp)VQ3p5d{d0%N_4-w zJLXK0h|8_Rr}M-5vhgX?#gd=b+wz5Uj&22T9)J>JCx_|?p z^`G>O8J*0r?$YaQTB0?AIs?L<@~ZDOS*h>qRZhNOl6L6q55_*dDDmmFf!^tcTI=8m z$Os^O?G{D9aOs1&#sSjzFUp)kAU#c=X_>Wozhg$Izf^ZVf^P5zo7>75IN(cCTd!TV zvq{SJeS(I+VRHwdRKGFyv4if(@&#dBpX6I zb2?{cyLS?Wsiw%?!ubXOHXy*d)zOsWVnbRvhb#*<5KBjxX z6aitAe)28Tn3!_7BEwDY-E9n-2;GC~DYmD!&kSi=6*yBvD*<7n=MPJ(qv6AG7I3tu9I3n2Ne#l)wSexkAoGSk;EQqVU_y_b-x7VnMDGzJ#p?UqqOZ5H@ z<4`yttoiUkVOHqVncJ_|UTr4?@VlPjY7@HVk6YZ^33I z-}yjD=UNZmUxNy42qQfD9_75h$vm{vZV0tErpx?UueS5+S=Pl?MBuB&AJBIjLh3IZ z7aFIh^Sy4st<68W)c8Ew4n4`Y z?sJdTmBQ)(VM*m;RL->v9FixWXKepyXTfw>^h^KDOon7r;}CsOYcX`APzM|R1lfos zUV+qa&;9r``7&F-n5VDxfchXQ>}`qA`(sn}a{*%%rjP;PtBa8&reC;kz7X^Kn5Dq& zCCQg&FgJa9`!z~A9vCb(XB=h>+(EEu>I{JcUea2=xM#eZA^$bX&?I)RQruFRLuc-G z8#f=LCf&Se`(f;W@Vv!N>O<%HYk1D*Q$;1XSkZkrDDtVKyq*helX?6;+Ubs3i@;*3$ zwOlu{BMQDzojA=jmA#yBVO5`xD=>}BPcuEPN$T62QCmjt9v@V$d@J+-a73{FAdo6R zcxs}8+uOM4-g$Gn56TxjT61IrKh!n!jCmxhr;HyllZGw;!V{0wPZoQ#Dn5*~PI9?ynaNN?x-3VzFOg|WR-lJuNE62xjZ@mNvFL=CC*W_&*(X!K6o;7wNHjU)L@A#m!_qeqXX1>1??VI>3F=L%<6 z`T#3Kkmm{nvD!sER-RKQK69=1Ex5N$kuvkmcUn`EPtA5E@5vZ8F7Zox4J@(ohh52R z#;)7}R$w7~f>_BAkJVDR`WPkJ{`UE^DP|^@sbZHBvmWaEjXG<#`$*6y^@-!LE7{GA zm2d%Afjy%mh!v7}tlmtkC`Z~L*`6+p@GXZ4i;l(k2khePex)LDg*lxy5m-z154)1x z%vcF0fE8FHfFM@V#ABs~WJvdm%PA71|*8GjFG-NZOzYhZvQs6 zYcpdd8~|2ePsa#iB}F_|O8zGtd-p$97uogNv0LD(bXO&pp$h#Tic85I4+;nLcj56t znazxqumxCwJw7Ffl_c?4^=pa_i2K2Plq$~Fo;FxWwoRP5Tl|d*e#w25E#z&qC_Yx3 z87pB0umXFSK@ckm;;}lF_TcXJ@w!io1B$xYH8sYfnseRvrl0om-qd^-pf87K9(kSck6tU$*~ zY_ebUK{$b8BhLkS(nnA}qDH)Yq=d1j>>a&^G82dF?qR$4U*_Hn>KwRo z%y>fQ2gWhP%;Oh=KkCz{&9rF)09Ig6p$TFoM?6-kV`n1uT?Z1W%6sQ@ZEt7hjCqx} z6uR0<+2>YH=Kh*G<}dYWSc&whQHa6c}F86HYKEg}EwyUz= za{NB&kdqU$#p4TZ3ikLWXP4cCT_unLtiU>J62wZCc&v`IhS5CU%l+x4$Vg^1!~2Kh zH81Y4wVrKpln@@Be*D=LpAT*#R+0b*Sb;r{C5V*@@mQJHJ6uU%i={{o#0ZitmuraM zQ^pSET6f}W|D!e$D@lL=tiYaV62wZGc&vD7F(Vd_wMuzkM!de(BRF5f z?_S#@kBrI|)}HE88)U#|SDT5I!~m?odhQd%N{M)^K6$H`x6QxOttM+fc;$3KpLmhu zQ^d*{I#Z3anD|s{d~+qrZYEX|4X^?myg(4EJ;YIg2qa=+W)_|`nEoA5%@&_*Zvm;@)58xQv~HB2E@xpj8UtMpN#Y% z!Hp~3gZe{p1vHl^vMw0KU3|q>Xtmb5_t%C0(f*g)M4L8&4qyc~VvQhH8pLBoX7rBi zoIse$g`!p&in~vr$lN~2Tp=oPcvCfnfT{^j7@YeKR#BQu`3~f6`MjkJT5=+0X&D zPKhZG{X?cFRAbUv!XaM;4cMY)dJmi#R>j*d zKWa(XcO>enRJ@2ozFB#7_Z3z~h08FtOCOJ2$!#W9!V9nh8zv`AUkAY znIIB6{GMhutG&cyrEz#?%4Ls~ zq8SAnno6zrDQZWLMlLGVBi(xYTzTKW#J2{A+$Lfr2|EB*VBOUTVx>boR>!0j}@iIF21gd z&PirkIyY9Ec`0p!xT_qns;>uTKV)-y+{PQP+(fJ-fe~N@Hei$>R+_|PWr@sq=(59* zoNZ8u|E3{ZbeJ>+vkAjxrzY;>r*8++Bk}nlXsl$b{r?NyR=P#tcLKO}ngNiHfK4Vx zP(ETsynN)XQ}gE$!<-Uwhnmuis!xWW<#Nw`ZH|c}L*+8dpd|72J(k~0n^qEF1va>x zAXfW`$0|8?&%#*~@$>T9@lAewTK7}Qn|gwDYnz9LE(+DJ=t})Emp@}Apm{FNuEYRV z=RpST5yZ-nc&yl-qCQ<*dLUBP*z8&mZJ$yX1CANkzobxI(xLs>C;j6O}>0Y78nnxebVycvw9^zY}U4ApM5>K7IJ{hHY^}O0Es_);?f=2l4YBRACC4d#!JQ)PB zG9?}>dtc+*^=s8TUf)S46;mE8fH{&U9j|#Cv#%>bmfyGx-#qQ|n~9Yu0Ia~~%qEDH z3GrC5-5Bie9Z*+Z!hZKT!^a%6=d=A|Ecwv2b2Ymo_-YjKJu{HoOsoV2umYPloFG=l z#AB6KZfah8u z+G&13J_0s-KSB8jnt1uho$T6Ca&&9{Sq35NjJSJQ;~9^fL!1nGwUioKEMlUCe_xQj}>*)?0nzO_FUInJ*F0^~+gL;_*iWw zR^ke<0-Ju9AXfW{$Eu96Dn+i-F+pU?@^$}sx!_nv_{$>kG6jj-S5I>Vl`-REwV7Cn zGr+1BWHw2HSUD1pl@!~R);kAyN0;ut8?3HzBWG#TYK?j+M%mlu#A~5_T?rqn&BRI^ z0ajqswi3k3fq1MwQr6Dtx6iEZO@=;`_d*ElLli9f__n{98%y;+J=nV+AFIv8O6&ku zU<(Qn#LAv{tmxi9`-H{lxU&zx&=ZZO#!SdvwxNOKUv$KBt1Kp5M&o0(nOKQ6zzS?l zC4yMl5sy_GH7ne?Tb=##Lva+}_rrFf{@RWDH}fc)Tfccf&eZyO8GjjHDZiOmi3Pw4 zY*{ISSlJSf6_xD{34v|zquI;ep4G32k}^=gJSFgBC6AqSBzfZXUM@U#B@Y@aS#ST- z!kHi>w-M>IT{Oki(bRHOtCSrSGvpcM2IP#SpWsZecGyX%4}1~6`0H!7(k%l2g9#*r zC$b>Sl0zc`~Cm0s04!UC<{XMmk zf%CAvl3Fkx!%+mMiU0oP)#ST_wB)4XeqqI_ngvFsol_qeE1uDl!FWiXs(aBTM<47*KU6jSICF(M z;P`=$i^U&3acAL(qW^qHe!jS7d;D<^@5~&7W%|3Ml_Cd@=8X^V?a}0g{G{@G3;`}B z`L{~Bv4Yr&qL9D!fu?nOj6$RWgB~3q3 zO0#qa!pFA7^(=)E+_N|3*J(o_f<6LQc}vDG$Q0rhQKfK;SrT0B`&?7-!00f4fa8w^ zSj4%27uM5#P@at){^=Fe34iYVJ1d+M{w<1tbHep)-3cKOR3alhh!zom_IKay;u?aH z3f|nJE)cau26#9JSx{I=P+%xw`;vvYySjUayC%P{wjMVySugUjNdA%oxO-g z8Wp7F{X^eUE%{e2OT*}%g*^N^Y0lqTe_=RpvHZl{#iF_fof7H$!Ah1~uV6fkQ_5L; zLJno=J?<#Gca7y@=(#;N99&r=QG$~!(%bK7LV4lyWYQMs?K(T#T8=dyVYpLxeO0pN z#;a5DZs7vXO^&dS>(j7UGo>;uR=7&LUqZT>2r+%){uc8TPOfCMZ02(+J{JI2jD)HTFA2oo6cim97TM>hEB85w#< z#gF5uWA}?pW>Cyj^q)l)JN9MhWQKYPM+EtL31fo7T(nR|(N-?LA+}z2GB%zeb}nH$ zUS4STU<0k7Fbl6h7Ymz6ttdG+>1ZEU87*YEdWfY~2pXdwXkzXzhw*R^Mfu2u$$ErD zxI_m@BZJ-d`Fd$tYk2#+X+@g{Due{;hgkWdZG3ElO(Vl3WE8w4q`V{~ajAr;hzP$w zI#N=`H%waVr@=ygp};X4g+m|-B8g;xuY)Z#Opvd8{_^!>(~=$Wj&ENUx)wc>zmv6U%oDqZ~(YbVAH}AbfY|oSAb>jM}Cc`G-6Xq2=lwS z;CU&sS6!2#;W2zNX$JAis1eWXN;sbd50!`{L;|qD7P}@0mOJraoil*csk2`3P_-9l zXr7YG);)SJ(ENHzr1!S{oU6~EKl9>0OM4uw&BRK=aIk1`rAQUXq8|joaw8tBhf=nF zol&+KXS9%sRAtA#NvrM9(>L~6FM990J#ItA@zbaOC=Fl=ps|wmN)-b<9YS}H?hvgt z^(^%b>PRXBiV=z;3O{mH(zm2}q|PKrcso2DZUGa5Jc3|eJIMPKnbHl4^FBjHEA9W*JZzkL9df z!=kEpHTLlZxi7*{p~EB1Z;b1h%H;G9)$H+`QODJvIZ*w#*_=nFFUT|Gmza&0^e3+N zv6$VgJQrt|+g_gKxt<-iGGvO5@$_g%J)Ad9DQS}^wvJ`SG%M(-Kx*y>%3t4!ul_9c zxB4?u_NUzXXZ;yh!(3nLV7)b&SoI{0mt-IH$hpF-AA?*^Z|==i9)_WJ%)5OnI$>8X zLQwJI_p5kG|F0UR&3ExPFiVmb_XX`%VXl2WuZ5Lym9}3SP{S1H9J{`Y>4c_c+lPon zr)>=!%;qK*R$~dXH2FjO3aZgi9zg$(FQBk~?)_&CQ|fOuOdPEBZ5`Hn4O9QO8YU*h zKN{`p8Z9jw9p*0S9*M#D1xLBcp>Ru-`h-eiJaG$+24Q?~HB7xfePMI^{+lnT1HJ%e z6CGqDtU%2?-mhzY_l6U_&Zwfd2C%?-_j6|s0 zVk9(-KPv~Wv?crC&SKSt6t}kA*YUlF0~Yf7H9c%EOs`aweL*a^|6p89b!|SgbGDXk9-nfBriu+$y4mx&ich))wHyTbg6|)` zU^iJM%|dEG+xR`T6%v7ScIVbocD)@$DF+zoydbfX^2s{}z#zR`@A5 z-S7n|z!$!PEbU5=FZlf73##_LmkJU5JJv>6%9NBYkxWBUPzVVQMIycY{5+%Oyh2a^govBG%x z*ak4KOLt}2i&TVvd~zp7DNukm@X5&nzEA8`2IyA}IA3to_Ek$`|5PgQm<&;w;F{xS zK)!2jRM6)l-KpFL6IQYHiiD?iofhc`oRWlMj(fhP_l|mjc}3M?KIK#AdK-Eg%W%BD z@V9Pz(x{(uqYYo+2Yex8s-XDho%|705J{nZL+0o<;nU)IlW|gQbPcz*MRAjtsNU_a>~H?*8r zgqu%My0`%hok+`b#WKnWRzs6)yiuoRdnjE(Lo zT^5}!9WU)D?G4%}=pd~+Ed@;nO&$%JMud8b`ZhI|T92B6s+Z~ll{b|X^*4f*(EtzYY(9%fXgm4ban2C#V4KbpByegond^d%%DW4fXdA^@<4n|Jr*GsHV1V zZ8!qUL^_HnAT|UP#DWD;QBkoY*bB|BG{p`U zu%doDB%mkRnsCRt{~6={>~Ti&zLIAp`+3%!d#*WGVN=O?6pe;P@hM_78;7COky0{; z&Jc1iETYbQpw-WRY5D)`pHvTq)RHehRUC#27s*4&XhJ-lMy0^+ zfOHAEj7nyaX&fw& z2p)#QM+5Xq_@S_4AW$-w$H8$h5`;v^LJ(L|CR2dKFvUU^g^m;gu8M^s38*v}6a-3= zi6l%qg^w3;4M?(_{1U!$2WJtv{SSA=0Lk%U1nGB|g9*UQ-kZc@^ zL!b*KG!9iP|96T63nWHhG!Q6}D`gNR6h2o=>&rAfswV=yQM&qqroXf_%xq6mZ>pz=!tsAe$dC6mQcJWT{+ z6LdsS6+es>BE(pG@guu z5&_8$CRr$B@@Szl0*WmZhDuOq8k@}F(>VwdB}6P9 zD**&1b16Iof{PTuB0!+p74V^{AW$SFlq{klS!@v*g(b6ap+YX1&EZqgTpAb0L-Fw# z7F)oFxq(0t+8seW9SjN-9cg?HjZPv<1z5n-GX>aCp@fG*VW={afF+g!gJy~j-dLv} zRFBFc()g~b&kvcHCPqpm5RE=6)BY#3Y( zN5BclbSXtf7sw$TF0K%fZtmTq0Ra z<&brtYB&-dLqK4#XfB?@LQsi(pnVyQKt^*JL_CYjq%#Oagar0X6$f~78W8!&=oBiK z0T>8LgcJ&x7%`L1=aTtkI+`Zt(x^IpRB;>`Pby-IkytuPOe5fg9C0WXL87q)d;x~Q z1#W;W!=nhWTWUD1h6d1VRU9x~0z+gX>2#r(LuN@RfNutpuq+HV6icCVs5~5t&1ByLfDxnR$Ss{(sSYv%Jc0 zK16j6fI*uP&X@FZaax* z-BIBG@%ijQtH>$#lNt$A&bc|#$B+(}M#d_ZApvEetw+P!nwwZf4}2o#-77nDXIjIc z!HV2AtgYs8UDfLFb)jF5KCt&KO#zBxpf2ry>;(KS{JBWN%8#OXo(s&Z0;M_ya)x7FxRx$V(ls}xZ9_KycB za@&Ei@)@RbifM3X-12eD7;ZJet+yumTis4yKkmfWfSEmC9!dC=-BO~Y_(s4Si=f^C zk6dySXQ4)p820#Fo%z9~;>OjxEpLrKF#YZ?ihtu!>^+b&zmmG%5-Jm$!c#wy?lTKD=PzJ$uBus zK=~jRrcyr8F6M(wh=r=V8||>2?#3ZTsuXHd(*c{189Pp8&#`E5%c0&#!z^t$dG78j zYJ&U9H!Ef%yCf7xA=G%i&XpCwS7g@v*t>^EgSgFjeXcPBR=NAKQ(Tryb7ZuhxB@p9QMV%EM)JzwU_gE z!2jg5MuU~{(2AO8u+nM8aFn(%SI{)Fd1rA|T-!G&yaVvJca3DVgF$QoY_bGEmi&^FC9ipgs@Q^d1Ao94Sn9T* z9k$aJ9Ad~yp(^zK=}!JFac-yY*WIZy`sBh;Fzz!`7Z@fNWTWC88z>89-$Z?hZ43b9Y)C667H>PmSK(Y03eDU!Il#OxC z<^4lm&w#=^0DpUTSlKwp_sL{y${3@ttd)C`Dff@%EKE!D*wg_im&~jy#muL7b;bfJVBPPLHZit(3$R!em*MiyTWYWvD&OW zw-(kyk$KLUE~yl%W==aNo;W)p;^1YElP%^MHsgj0KF*MK{AQ&}L+6?MF&u97x_WtJ z)01`HeRl8vf@vxpMG^&$w|+SWHXjP_0Q~J;V@%o(22lxY(H;Q!;Hht|cUNz#F3&v6Jm6Ozz<99XJA(_lE;=7!mtpa+=}rYm{X+3F_IGmJu`J`q1 z(nFtTtdUOxYQL0zef@01+Lb1o6ZRaux-aMXkk^}fZ#i-!Bs1*n=9%L+zuPn!3Rism z@2_9;N1?xNvWOLZ4X(wlc=2rt?aAX!2iAp`vg*7>zTNGqK&$(8Bv`Hiqwwo&g!>m_l)#<$wLMchDb> zlhYZE1X~n>QLLJ0D1|an5lXv+KOmH`x=`9-e-lbRw_835f6ahzQH>K#!~F!c0dcO| zwxf>>gOpyznZ=HFmB87V54t3jL?IO9*MgLt`;HL@d6b_J`rfr#y`lW{j3-Z3Bc=L} z1IKgAAAcXeJG~}1WR7rAi2h1xdhp>@ukKa%iqBK@uP6Ij zjrQ5$J-+$6PjSf9%2kK06(WOJ6xbjfs}M@iE>yHbto)!7Ia%I$!&9qf7K`fw+m0N( z{w-?JR!rK0sl|)Fh*Mk^JzhVjOJs@vJF>RytTcw#oqVy19PKF8uS1#okNNb9xI*_t zalrR4x1Q+zku0!LnkrfHlS<@deK~!{;cd(6Chw-?>*MAhxLe!<+rK}l@qLnh)M}<} z#>6g>CHn8ksvDNP=!IYIF0@e;+At82HhxfVw!gu(9?K9R88_zr>6Apk1%QqJRmqYc z7c3_WTT1r-JZI8sO5vm(@ebuu%A%;b*ZZEKJ-!j@SvYX3eV51*{&!@V59O^OR31D9 zPYheMLI`)8YCU4;cmo3z>J7zEG$UumAA1(qu<{>dVPox8{3S-KSyh0)v{Uz&+F^h5 zmmQPS@ov`*4}M?zZN%^bc3ytLuEmX4?|&Gcb}u}6N)oEFy17e22^2#8mb4W4`1$wP z6mUr_AnG2+igL-AAsTz2iMA7A3RUS{hjIJ+r^BZTOzWbH7a86?VH$ zJAb)(f5Kw}H@gkD@sZSO$6Cb5fZUX=T=c$&=`&+$pRxaNo(0gW!A6!?#TF49<%3Oi za=LaimH?qZCZ}tM?G!37b|7F;@}yt(odE_^B<7^5- zlFv=IRSKo4AoHuzLTNbDk(JCoT+w>799Yhpfti7eW!Q@@yEOfl(>$;^e?*eiG>`ne zv5yu#KK|`Xa_D45(sFcS)xKJjqaSUzy*kGDx$fknhRK`HxDQ!kTeW{<=KQhKVQ@~- znlnCk@=A_)@zPIS-!nLn;CQkBV)UIAvul@LLW*61N=tlWjTl}>O1ST z>R!@~)Acd0G~<|!GHo%rXcBAUZ9LeZ&R~nd7F{b?BPQ&jCCD*I&<8DCVzexM@{~|YeWl0Mje6sBoKcV->1EUsZ zr-dB;Sv_sx-LtQ^aps08km^n!1y(V}DRTPZ%4hoT8Cm%jZ`w`s2841`55Ba+{w9>G zQmCtY8u$E+xEkqqv^ADR49axAzdw9j%KPtkPoBIR`(!n>OF~K2qU0GzlFp+>T-MF2 zF)EmLANdx(-QrUR+sdrMzcW}3j@5~|CqB91e$YH~m&RCw=W9Rn!d~6@cIe_v^3^>2 ztUn3`HV*=;ILk-eF4TlrnmXSkt!7wu@*Nl}FLudeD2G!>&YM2=rcc60=oz`>G?k9+ zResSg@v+ysLlJrlM?O>Xy$hu`>!r=1Yol0CQVBM6#L!jVt?zgC*=vl0!(b6^es=2)oLzUK(H8~}zF#i;m>iXXCbdQg3tza| zM%)=g{j9s>&FV4Vd9zdEfWmJ=)7qilW7k*a7D!4)zIHM=cz$NXsbj{@k@p|M8e?@$ z!-3yCX?&AQkEiFy^Ulq_En&Xe{hB{*{Keu}*MLX&eEgyxnE$EpivkOg@rn)gV%uXV zpz-?(jsLH`0?CqKrLnF(dBlB#{enTIGXENvv{UG@F&8dfeKl{$gCVywu76r@*(GCL zrZCpuwmNYb7+yJ~20b;{wQR6S71rZx@fqcyrPHfkDQW1v`j|W9mOF0s9U*q z*iI{Vh@Gz#YTB2JZ^Kg(*G$ws;hgNZO|a)K<;_8O-G~6;(?btRu68X^6Rr@d?bi;c zMZJCR`JEZqr|sV4gDjJl+pQUK!`evzUX)(-eBPOmupk}Xm07JD!g%|RTb1LtpUQ{}7W%|!OjId#pKW4R1 zU`chHV(vktQm8p9LTR@+0uXApx=`9-JB132?bx45lb=;ul%|nyJBRJ=c)^mK4uAW! z&mL>5tQ(wZO}0Gi*5o;#>K(m*8`AF7TOYj%a@}Z?epr5CdBRPddZcnl>-?a8^D^$- zDO6*d1SV;~PkYW8WLR&WWbfs#Yj6`;2ViiKgS}B{xmv-F4V_>D#B| z?4vfQ>0fzRz#UVJCsw#XzlBd-x9|pQ`3%&?Wh?XSexUjs+BMQW$jAdK1Aa4q@ym#( z>(f$A6OA@r=asZg>3?G9()2-}Wgc5EnvaQ_@ke(ImWl_W8~Kn{9^C-DNIS%K?9YU% zaya5VY5e)N3>#GHi7%^8x#mAOdPl#_s(SITi|0K8y5zLN)STAn$uD@X{Md$5=f=#M zzO09H+Ca099bH;!3%jeEYvTE^49T2a(UbE%nrTIAOa zpV;hxnzZq5vn`{$;AeDU@esA4j8)3her0javpnNYU&+T5JbbctBDsU*e|0EhcY5Oz z3z(f)>X{XjaoV*fBP_J;7G;0%({a!nr;e|4QGBVoqd|iN$w-7^!=Ie?hc4iiJf@|*v<&WA(p8W>eDOth@Aw9UTsN!Q<>q- zy&|9550iX6dR&=C<==h1<8+sVickpkTXm$=>gb7zLYKl-FSl;9tcjm6yYWPYicmu~ zuH0)|QF;M8Y57;Z-G#~7A42CiffnXMUPTo)q6DxtmcPTWK!alLeW)((r$DP0h~t-l@`v!;Pj}$EyG_2 z=6sw{HEKX}Sw@lHD(T=x|K9HgjNHfG^9l<88@(NW8@9iEXQW#qr^s#o)E_@CkDt7J zk-JoO9Cq*GRKGjlk1bSuPMu~nNW}h6=YfqgQ=wVA<^7Neai;3_pdGf;9vtI{5Eaqu+ZAk}#C-^o}(P0CYkdRa-(k`o)lX0^$RUeq<8KALs14enMl^Wm})e^d%2 zoHV8bN5Vrp5E(seCYQ3|cq4kN%bCPG~) z?XbU;ik0vEFAtrd%YKG#<{rG09ByeAEHt#WI$rg7#}C1|lw-FI8@QhjbV;dbb*274 ziw5Q{$u;^oWY{P|^PwLu#)A|+At*)^FKNg1btsd$$B^`Eo@xDuJMg50t9kUDx*55z> z+>cbJ7berM{Cpa9@>#QyAm`meh(}GcbV55>U~GZq%vITv@BS}mE9vF?uyLkeWv1D= zHfx;wMve9EEv|yC^|0Gkv6w&Jb6Jry*#`-+xM*=vp-tCb713?iFx{W-W}usaKQJ&MZlL;8Si4PIem#Zb`YS!< zNYBi1#Pgd9zM+aM?n3rYB(PS#u4B{{4%r;p1ny$O=SWe3vGcheGwX}tGo$7v3`TV6xsvc7vh|VwBT0{*v^u#?vYnm1_G!~I z{bQfs^)DBB_MegaD6Z!p*#aqssjw9oHx6J+UUshS{iEN&^+iM8d&6Jp+3ugR#PJ)2 zQ26-g(W;{i*S#gc>6gF-g=(r!w@-0vuXFsiiSp&SKOjSv(aweMT-v;_VgB?%8>(e( z<{N9}O#+)F{3yEdYB%0iXWXmo*@w*auRI>Ae@Ibw9@8si6>-N_<vfN!*EFt;d8luVH2;dQS+^Gog#%=0yfm`a-h#UM zV!%=e%A?NYYys8TID*P>N4p)hfPpDq-O*}?{ms$J*Br=0Qh(8>mjmnH1U@#)Xh^`Un@quYF4Z#@+4Sm_YCGm|{%(!FYfrs|Q|la{zGo&$wzlnM9%f{we@)N-$> z*LmKM#O=+&LekK5(qY>-B`-E?Dl+aXFYy5vh*BT}Q{-sHks-U3N{v!cN}|=?ihxoh z)s@l?`$ItV=aE?QIm@)?ndj0K>&ib`Uxqgroj;fnK5c|- zMai3cpYN_xF5m%C3S?l49F1!KjXT(tyTXaTc7W35pw5kD;@4J%BiN%Ep5w`$(x7bhS&J!(=R{?qzHvX zAZ&pQOx4(uFFTNXfkgwyrBb*i(Vt2!PW$t&Vs&?E!+KMC@U-B0e;k;iK?bI3Y{8XmP4tW;hEAlr zjMyHp%iIxKT)HmhY+zojCGx2Lz7JMEbGpP9a2#*D&)oOx>86DxW|a4SXMfp-Wp$zi z;&yDo8p|rZ+j%{Qr(&O;$UJ(h>>(7c=of!~?G<9>R3VdWjvKE32~mft;Wk>P&-Sbt zU9jd`7QHrTxB{)-x6mL3qkpo6jT@xmGqoEEK#cV_LEK<$h%Q>^i_U4C7#&X?Ggt*| zqhW7@`vzNeml}`_9Q2#?3-x!w67*N-3-!nA8|hW*W$ID%Ty($ap4Z)D@!aB;#W9O) zixn0eiv=*Y`4jUM<|EB+nF-ALnVvKaGKHJenq->&mz^IR5 zmEl^$nSZCO`>+3(80e>igjoht_<~^8QW7(ey)={p?4L`~S!AIDhZ%MLL1!Vzp3quu z2y6rf)oxE<2pCkmZGjs>pjz$>+#3X{<>tUQ!Jyjh54;rws@+UB*laMURz)6I90*jb z-A2~#eRYt~o*b!6Ipx?6Jm_jVZ*w7lr?k(Mu!bmgB7ieMwOMDUKPB2 zv9+MK?}H=@TuNhFUF6p$^BjU-;zV~)R7xw8ooPH<3y)5nV z5$C2G2dXE6{zPG0(UV6no~LiW^aS3ptHs-CXH<~=$I_}bu#^j9QorZv%m#%mr1$Wc zJ?*|-mi>c-i2b=^3uOF0;jf1JoeFrgD{2(}w$1|3-{_LBUoGjeyGeA97DlHhcwI$H zTlyQ62klyQ%5A>S%lqR&QO0NE45a;@Oz`CqX9)%QM&oAJ8pbeZmH94#PB@xL&-MUC z8H(Rlo!r(IJ_KbBJuYf-7k#fkdhlY8qrH&Z=8p<$s2*pjV+S)`$|Fp`(=0CC|zh@)sy8}bP|z7r)WB0UM{%fUt7>* zpz;<5{+Jf+o|Jw}Ag^3!2Pa z-h#n+-6#mOw`zaTx;Hrd1+PtCu>K2Po1QTAFL-VG0pc%sZF)hkzu>j$17?50YtsX8 zf5B^`zy3nqC_L0kRe#{zA5Fes2&{1GuqDTwY})j>t$l}or0n|UlqcJG;C@?W%9v&I zM9%l@|Jb&so}szz{(o#+Q?Jq7HvErmYwA&&+jjnA+nRct=C&>W*tVvgsJU&EKenx@ zmuhYs^T)O|^jFNmpWM-@UcW`FA?(g*Rc8$Nzr)br{|+4m{_haG-~Ro#XjsPv z{NG{y!2ccEQ(phKf}MjHNPrapJ$3i%GUams%;%dAGHo_F_iGM-?g*V`*g04P%mdmN zLV?Xwz2ENt-_5{(!T^wi<|^}qbr%=5eDB*ZYlhLW*E!egC#)Eq@gZ+Vz+lmeQT}=H zKJU7eC)}XS6Uv6`te4*yP)(e^_Z2+R6Eh|7z|{mHX|>VEU6ZbK+_Q4hU+JCVYERSN zhMc<>O)y_Q%s&4x-Lk!9`S7p{i8G5N;oqU~4#3~ujh!yI&)2V6_A%(RaP0Q5Os^el zg*Og(hULIqMu$|4Br34#c|t5$%@C!SdUH})TVbo@38`A0V*}JyLe*<4+F?6tD-+^o zs5hZqrlX^Y=)gE1Kx}zcIqWh~a3rlr;3${?`I2zDN2_b$)Y^z~`@I6DUn$D96)45l zRDAwbRUQ>Bsg)B82#t?S+_|_1V!=sgr^`!=j_m#B70vl=^_+Y5CmZXt*jM|5hu#nS zQ25c8m3vW9RUVk|wB&hK(CL*a?}};|Z%c!l@4XFly;9(NKddM7!v{1B&Zz#B-_5;KN*8^9@teF>_;B?+cP}t-6k=kVY;a48c7{(X^b#?e-RT*rZ z1`^f&@dBWSv{#kAl=d{pJa%f(=yj#Ri>;v^!S_u%{{N z#-JUx(-<7%7)qs<6dnK3pH$2=TxIa1t>+q(G56-JUN-u<^JVIz=&=O1)Gm2Gz}>Z1 zNPgS*FWzP1>CJf-TTi*gh-bm`^K2{I`n0nEy!@-vop;?Io)H_ldLK4-H$F+Xu!PGf zIC)oh?Mv*yq^K>kP37ShaH%VW1*z!Q z{~=p_?#?Y6^V$Bx{ztaJs>-Tt$q)RISC#wD z-8U({rDRQlZq3vuU$Gg{ZYx)|Hhk_ian2wEw4|oIOMPqYf5_Iv+^5yUefwYguzgqd z+1427>@@xAV~&=P<31Htg5mXw$s!IWILS4)_r{GUjQ1wD=&pVB{kqq(&EMa+3kHAd zd-jig3j>0t_qb;x0xzRX%|>S%q;96J#`Zy z7N;y?bra1S%=eguoAx)kZIWfY)Oe)P2g6c>U;`WdM!jRYuCO~6cEHEyXuQwv4|Fro z%|JH;U19(T`#M&+^|7}vvv|XFusB-lvu?}hFA-U@-$+E$nq5ELn3FNC5#A+-zftM% zSD1Dta<+LE?%!*D^mxS4LEF}PZb-=rU?^jXPKQ7H+Ln*=8G4RBl0())%cLhycGD{l znVN)bUv$Xujd#j0C|sMH%d#J@pApm7*3~uYozO*CC@k18sJ8fSd|&S!E)%1?m2Idy zd@R^>W|U$(g)_<^Iew_}@i_Su)>MQKw)Z}Na(C$Y{($wQJo#8U@>r&>U z=eIwMFc0ff-&US;;?h!=mW}gyE3>kcN_{h`idj+R_4uAw)T-%2rlokU zUlr*)`Lv&PWd#?8IVSs+v-)i%gwD;^3BBuDbaUBfdp;SK9FN?ZlBsXi(!QYrkkT5O zWO_|!{imKcCfw*ZXjBF*-8JWpB4;(udqQpTxYp0k?k~Bk7gfghbbK}mZMV$FD0ut4 z8Lbmm!r%nM$TRPgvkz@dJ?uaI+=;q+qlDREdiNblt{qwKP@ld6*zxI8TNS2JC)^F= z-snbLw&C&FkGpft(ar;#BKq8>n_ema7P&w+JHGtZ&||;2CSiE%n5?Uh-V^4{KC>8p zcHzu(z7DM;+#&6^uP!eZEKbEJa#q&?dF45)_>P54>o2%(+!fN#^}J->peLbk&kopY zd6>TP`rMm$>_nLj`H5XJ2H=$A_DqQL&`x6*bUHHT{OQ?7xF03GOYg5aQmcQisG~P4 zje+puRPmVH+p|0iRiRuA8Plq_Z zK-)5>-cCM6X|e9wXf<7_lu_?arJ~S-Ry*iN{X~5)U$QJrmVWXUuArR-;6S6XOvzLJ{Oo~NI4@2P{fWN(0-^7LIz3=mLM%iWp6CL*B zVZ{UDjjzaS%d)b1gulESqQHVE1s2sS4~)E|RLWRIDeWdf0!kUFE2SN_Q>nmseWlyd z#@WtD)?-O_Hskp-Ow@t* zv3+51qiupw%-Am*?lgVK@OU2;m{c=qevjPEOZ!s$dlFrpXn@;lt6V;7Q%d0uTlcvq%?*Z&`x7WfV(x)U2KmOygw3DPuaFI(klC`oMQQ@D zFa`*SF=&PDFb3d9FVS@8|MS0NyGxSh!ml8htcOlji}gxG{AV_KG}b#~XTJGH z`4N3ddhi*2E9E$w(@PNM;CdNF0fb z6!DN^DGtji#ohvYwebK zDS_`7UJt2XyYTf$&ZQY0QBATiL2xVLbpK;}zHiDsf92cH*SpQ(e22*8iU94J;NP!tHUhmcO9nT>gv}f zv@&w8AhXK3F-O)Pn9`?9ZVUL;?Srwj0iDLc4L|xYz4z^5Q(hW05nm$jOF6?r+w}lm zl*S;zK5J|I_{ctUcbxb4D{EFF$Sw2x74_=#N`O^c?3uwH6VBr)xok-z&Pv!{c(w7F$T_Bk( z#gUOR1_?bGC35G@o6I8$yq3(6QO?j2}zT9r3`-lCw zCjTnHMpxf(+3DcyW#1F!GynCi@6F68!COdOYx}<9z@PPZ>0%=`e<^R!D}OseulMKS z)fa;mHcFllV%t`{B{%GAeo)=A)t+MrNh4=on`izk0k5|*9N1tT?wNf+hMDxuuBq(& zD~rO74BXQ@1IkOyKD^s;jN`+$UJlr3QtCmh@k5LuVsGe$=C_w?Yx+N+EiR|D-Si(Y zeLXbJ4#>knif&b;9?a-zgYu&u81VDPQsYrhiw562U2B!;MHRnKK@lrCI5f8@Bg?uART{12nLWTTl%8y)1{ zX``MIb@x^<@>mgbjvaE1pBHw=fu`KLz0*c}81I};beep6`nl$J<+I~QB46#iG0ATI zllsJwFV@c3Iv5I<->0TaBU|kafUpHNbp&8be#zNt?~omPnS^P08YtP))Nk7xZ|{(3 zq+$DhT0oD>nb*AL`Mrl3drLf?Zof9EaMroN#NRsPBujG(xXm);opoD%(u2NL+}^T% zp`t?~;nz1>2p4JR z9EO%O9V}Q{-iP_su~+kM7cS5t8D9tMO{dbgd(rRZO|qW$-R|6nOxfK@!L~WNE6|6U zn1HkpJ1?hOf!8;?hg{ut%rWu<^Y*}-&%|?edna$7Z8n)zm5 zK_QhD?0tX5`J?5#q9HI$8e$0V+(@4;nOc_8)b6HsnwoS5dcug)13aF8^4OUFwj_z3 zN>mpAJ59|2aV+%n6lNZ~NknkvJUk*2zBmSpDQ&zx*xuoF19LwVuKekLebd+v+R-4U z23FQk9t$b&2kkI@;6VELg*xy)zt#gs_5^xLzj%KgyMg~$Hdv_ql@sFK)dNHAo}(Rs zAvWGgjm1 zQyyPa=33KGUQ?up`n?_X{`(Hp$^jD%#7)XJ=O|2dbmgO>j3=%mH9^~=r% z@lD3SUWe$95Bu>o%xKEcwKFrHe@UO1)%swKE%mtF8B?2s)cg{A{h{nBJqMWhUn#H* bn)GVnnGq#3T$i96Z7v=v8vAZVs>S~UX^j`_ literal 0 HcmV?d00001 From c455c51c066d83fcb86797a613a6ff7101089776 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Oct 2025 16:13:29 +1030 Subject: [PATCH 37/37] CI: re-enable docs examples checks. Signed-off-by: Rusty Russell --- .github/workflows/ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index de198b3cc678..4c609e71a107 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -481,8 +481,7 @@ jobs: uv run eatmydata pytest tests/ -vvv -n 2 ${PYTEST_OPTS} ${{ matrix.PYTEST_OPTS }} update-docs-examples: - name: Update examples in doc schemas (disabled temporarily!) - if: false + name: Update examples in doc schemas runs-on: ubuntu-22.04 timeout-minutes: 30 strategy: @@ -608,6 +607,7 @@ jobs: - check-units - integration-valgrind - integration-sanitizers + - update-docs-examples - min-btc-support if: ${{ always() }} steps: