Files
GoblinPay/crates
2ro 2b791a18a6 gp-wallet: native invoice-flow primitives (issue / finalize+post / cancel)
Add the receiver-initiated invoice-flow half of a standard Grin interactive
transaction on the upstream grin-wallet stack:

- issue_invoice(amount): owner::issue_invoice_tx -> stored context keyed by
  slate id, returns the armored I1 slatepack (plain armor) + slate id.
- finalize_invoice_slatepack(i2): loads context by slate id, owner::finalize_tx,
  then post_tx over DIRECT HTTP; returns slate id + kernel excess for the
  ledger. Non-I2 / unknown-context slates error cleanly (no double-post).
- cancel(slate_id): owner::cancel_tx on expiry so a late I2 cannot settle.

Kernel-excess read factored into a shared helper (reused by receive_slatepack).
uuid 0.8 pinned to grin-wallet's line for slate-id parsing. Offline error-path
unit tests added; full cross-wallet round trip is a deploy-time gate.
2026-07-04 21:39:48 -04:00
..