Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle Payment Metadata in the Invoice/Send/Receive Pipelines #1221

Closed

Commits on Jan 26, 2022

  1. Configuration menu
    Copy the full SHA
    1c1fc45 View commit details
    Browse the repository at this point in the history
  2. Unset the optional bit for a feature when setting the required bit

    There is no reason to set both, and this currently makes testing
    the new BOLT invoice tests slightly harder, so we just unset it.
    TheBlueMatt committed Jan 26, 2022
    Configuration menu
    Copy the full SHA
    cb82305 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c8e2635 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    2cfa80b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    24c6792 View commit details
    Browse the repository at this point in the history
  6. Store total payment amount in ClaimableHTLC explicitly

    ...instead of accessing it via the `OnionPayload::Invoice` form.
    This may be useful if we add MPP keysend support, but is directly
    useful to allow us to drop `FinalOnionHopData` from `OnionPayload`.
    TheBlueMatt committed Jan 26, 2022
    Configuration menu
    Copy the full SHA
    7c16299 View commit details
    Browse the repository at this point in the history
  7. Avoid storing a full FinalOnionHopData in OnionPayload::Invoice

    We only use it to check the amount when processing MPP parts, but
    store the full object (including new payment metadata) in it.
    Because we now store the amount in the parent structure, there is
    no need for it at all in the `OnionPayload`. Sadly, for
    serialization compatibility, we need it to continue to exist, at
    least temporarily, but we can avoid populating the new fields in
    that case.
    TheBlueMatt committed Jan 26, 2022
    Configuration menu
    Copy the full SHA
    b0c7616 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    607cd2e View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    c98733b View commit details
    Browse the repository at this point in the history
  10. Pipe payment metadata through the HTLC send pipeline

    ...without exposing it to the public `send_payment` API yet.
    TheBlueMatt committed Jan 26, 2022
    Configuration menu
    Copy the full SHA
    588337f View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    cd7e5ac View commit details
    Browse the repository at this point in the history