2b791a18a6
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.