1
0
Fork 0
mirror of https://github.com/lightning/bolts.git synced 2025-03-10 09:10:07 +01:00

BOLT11: simplify existing writer feature requirements

As a final step, we now can remove several of the BOLT 11 writer's
requirements now that it builds on BOLT 9's, particularly:
 - setting the even bit if a feature is required.
 - only setting a feature if the node supports a given feature.

The lone requirement that remains pertains to setting the `s` value if
and only if the `payment_secret` feature is set.
This commit is contained in:
Conner Fromknecht 2020-01-17 14:53:15 -08:00 committed by Christian Decker
parent 53653e5c52
commit c3a8e5e1a7

View file

@ -294,17 +294,7 @@ on the amount sent.
A writer: A writer:
- MUST set the `9` field to a feature vector compliant with the - MUST set the `9` field to a feature vector compliant with the
[BOLT 9 origin node requirements](09-features.md#requirements). [BOLT 9 origin node requirements](09-features.md#requirements).
- if `payment_secret` feature is set: - MUST set an `s` field if and only if the `payment_secret` feature is set.
- MUST include an `s` field.
- otherwise:
- MUST NOT include an `s` field.
- if the `payment_secret` field is required in the onion:
- MUST set the even feature `payment_secret`.
- If the final node supports [Basic multi-part payments](04-onion-routing.md#basic-multi-part-payments):
- MUST set the `basic_mpp` feature.
- Otherwise:
- MUST NOT set the `basic_mpp` feature.
- MUST set `var_onion_optin` if and only if it supports that feature.
A reader: A reader:
- if the feature vector does not set all known, transitive feature dependencies: - if the feature vector does not set all known, transitive feature dependencies: