mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-23 09:04:22 +01:00
keysend: Set an error message if we abort due to missing TLV
This commit is contained in:
committed by
Rusty Russell
parent
60af8be5ba
commit
ad7f59f7a1
@@ -65,6 +65,22 @@ static void keysend_cb(struct keysend_data *d, struct payment *p) {
|
|||||||
"Recipient %s does not support keysend payments "
|
"Recipient %s does not support keysend payments "
|
||||||
"(no TLV support)",
|
"(no TLV support)",
|
||||||
node_id_to_hexstr(tmpctx, p->destination));
|
node_id_to_hexstr(tmpctx, p->destination));
|
||||||
|
} else if (p->step == PAYMENT_STEP_FAILED) {
|
||||||
|
/* Now we can look at the error, and the failing node,
|
||||||
|
and determine whether they didn't like our
|
||||||
|
attempt. This is required since most nodes don't
|
||||||
|
explicitly signal support for keysend through the
|
||||||
|
featurebit method.*/
|
||||||
|
|
||||||
|
if (p->result != NULL &&
|
||||||
|
node_id_eq(p->destination, p->result->erring_node) &&
|
||||||
|
p->result->failcode == WIRE_INVALID_ONION_PAYLOAD) {
|
||||||
|
return payment_abort(
|
||||||
|
p,
|
||||||
|
"Recipient %s reported an invalid payload, this "
|
||||||
|
"usually means they don't support keysend.",
|
||||||
|
node_id_to_hexstr(tmpctx, p->destination));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p->step != PAYMENT_STEP_ONION_PAYLOAD)
|
if (p->step != PAYMENT_STEP_ONION_PAYLOAD)
|
||||||
|
|||||||
@@ -3049,7 +3049,7 @@ def test_keysend(node_factory):
|
|||||||
|
|
||||||
# And finally try to send a keysend payment to l4, which doesn't
|
# And finally try to send a keysend payment to l4, which doesn't
|
||||||
# support it. It MUST fail.
|
# support it. It MUST fail.
|
||||||
with pytest.raises(RpcError, match=r"Recipient [0-9a-f]{66} does not support keysend payments"):
|
with pytest.raises(RpcError, match=r"Recipient [0-9a-f]{66} reported an invalid payload"):
|
||||||
l3.rpc.keysend(l4.info['id'], amt)
|
l3.rpc.keysend(l4.info['id'], amt)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user