Skip to content

Commit

Permalink
lightningd: save outgoing information for more forwards.
Browse files Browse the repository at this point in the history
There's one case where we can present more infomation, so do that, and
fix documentation.

Changelog-Added: JSON-RPC: `listforwards` now shows `out_channel` in more cases: even if it couldn't actually send to it.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Fixes: #5329
  • Loading branch information
rustyrussell committed Jul 6, 2022
1 parent 392cfe8 commit d6e3d79
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 11 deletions.
6 changes: 3 additions & 3 deletions doc/lightning-listforwards.7.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ On success, an object containing **forwards** is returned. It is an array of ob
- **in_msat** (msat): the value of the incoming HTLC
- **status** (string): still ongoing, completed, failed locally, or failed after forwarding (one of "offered", "settled", "local_failed", "failed")
- **received_time** (number): the UNIX timestamp when this was received
- **out_channel** (short_channel_id, optional): the channel that the HTLC was forwarded to
- **out_channel** (short_channel_id, optional): the channel that the HTLC (trying to) forward to
- **payment_hash** (hex, optional): payment hash sought by HTLC (always 64 characters)
- **style** (string, optional): Either a legacy onion format or a modern tlv format (one of "legacy", "tlv")

If **out_channel** is present:
If **out_msat** is present:
- **fee_msat** (msat): the amount this paid in fees
- **out_msat** (msat): the amount we sent out the *out_channel*

Expand Down Expand Up @@ -59,4 +59,4 @@ RESOURCES

Main web site: <https://github.com/ElementsProject/lightning>

[comment]: # ( SHA256STAMP:131410f052b8a1845c8d3c7eb2d48df0fc7638e7d26817f56863815be86d8f1e)
[comment]: # ( SHA256STAMP:c8adfa0a6dcae939c5da919d7996261db8663a871210e33b426c3b40c30d7b29)
10 changes: 6 additions & 4 deletions doc/schemas/listforwards.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
},
"out_channel": {
"type": "short_channel_id",
"description": "the channel that the HTLC was forwarded to"
"description": "the channel that the HTLC (trying to) forward to"
},
"payment_hash": {
"type": "hex",
Expand All @@ -66,14 +66,15 @@
{
"if": {
"required": [
"out_channel"
"out_msat"
]
},
"then": {
"additionalProperties": false,
"required": [
"fee_msat",
"out_msat"
"out_msat",
"out_channel"
],
"properties": {
"in_channel": {},
Expand Down Expand Up @@ -116,7 +117,8 @@
"resolved_time": {},
"payment_hash": {},
"failcode": {},
"failreason": {}
"failreason": {},
"out_channel": {}
}
}
},
Expand Down
4 changes: 1 addition & 3 deletions lightningd/peer_htlcs.c
Original file line number Diff line number Diff line change
Expand Up @@ -537,12 +537,10 @@ static void rcvd_htlc_reply(struct subd *subd, const u8 *msg, const int *fds UNU
hout->failmsg);
fail_in_htlc(hout->in, failonion);

/* here we haven't called connect_htlc_out(),
* so set htlc field with NULL */
wallet_forwarded_payment_add(ld->wallet,
hout->in,
get_onion_style(hout->in),
NULL, NULL,
channel_scid_or_local_alias(hout->key.channel), hout,
FORWARD_LOCAL_FAILED,
fromwire_peektype(hout->failmsg));
}
Expand Down
1 change: 0 additions & 1 deletion tests/test_pay.py
Original file line number Diff line number Diff line change
Expand Up @@ -1383,7 +1383,6 @@ def test_forward_stats(node_factory, bitcoind):
assert 'received_time' in stats['forwards'][2] and 'resolved_time' not in stats['forwards'][2]


@pytest.mark.xfail(strict=True)
@pytest.mark.developer("too slow without --dev-fast-gossip")
@pytest.mark.slow_test
def test_forward_local_failed_stats(node_factory, bitcoind, executor):
Expand Down

0 comments on commit d6e3d79

Please sign in to comment.