Skip to content

Slatepack UI: manual copy-paste transaction exchange - #1270

Open
Maxnflaxl wants to merge 8 commits into
masterfrom
feat/slatepack-ui
Open

Slatepack UI: manual copy-paste transaction exchange#1270
Maxnflaxl wants to merge 8 commits into
masterfrom
feat/slatepack-ui

Conversation

@Maxnflaxl

@Maxnflaxl Maxnflaxl commented Jul 18, 2026

Copy link
Copy Markdown
Member

Warning

DO NOT MERGE UNTIL BeamMW/beam#2076 IS MERGED.

Summary

Desktop-wallet UI for Slatepack — the node-independent, copy-pastable transaction transport added in BeamMW/beam#2076. Lets a user negotiate a transaction entirely by copy-paste, with no SBBS relay.

What it adds

  • Send flow: an Advanced panel with a "Manual exchange (copy & paste, no SBBS)" toggle. Manual exchange is interactive-only, so it and the offline option are mutually exclusive. On send, the produced Slatepack opens in a copyable, scrollable dialog to hand to the recipient.
  • Receive / continue: a "Slatepack" button opens a paste dialog. A pasted Slatepack is decrypted and shown in a review / confirm dialog (direction, amount, fee, addresses, tx id); the transaction only proceeds on confirm, and Cancel discards it.
  • i18n: en_US complete; every other locale carries the English source strings pending translation.

Testing

Builds and links on macOS (static libraries, IPFS enabled). The underlying node-independent exchange (two wallets, full negotiation, no SBBS) is covered by the core PR's slatepack_exchange_test; a full click-through of the send toggle and dialogs in the running app is still to be done.

Screenshots

To be added.

WalletModel relays the wallet client's onSlatepackReady / onSlatepackImportResult
callbacks as Qt signals. SendViewModel gains a manualExchange toggle that sets
TxParameterID::ManualTransport on the tx, and re-emits the produced armored
string; the send screen shows it in a new SlatepackDialog (copyable). Bumps the
beam submodule to the feat/slatepack core work.
WalletViewModel gains importSlatepack() and relays slatepackReady /
slatepackImportResult globally, so any produced Slatepack is shown (and import
errors surfaced) regardless of the active screen. Adds a Slatepack button on
the wallet header opening a paste-import dialog, and consolidates the
produced-Slatepack display here (removed from the send screen to avoid double
dialogs). Adds the i18n strings (en_US finished; other locales pending).
Import opens a review dialog (amount, fee, sending/receiving address, tx id,
explorer link) with Send/Cancel before the transaction proceeds. Register the
Slatepack dialogs, fix the manual-exchange send flow, and bump the beam submodule.
@Maxnflaxl
Maxnflaxl force-pushed the feat/slatepack-ui branch from 6c39428 to 27c4fae Compare July 18, 2026 10:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant