Skip to content

Prototype: Houdini private-send reorg (Proposal A)#6054

Open
j0ntz wants to merge 2 commits into
developfrom
prototype/houdini-send-reorg-a
Open

Prototype: Houdini private-send reorg (Proposal A)#6054
j0ntz wants to merge 2 commits into
developfrom
prototype/houdini-send-reorg-a

Conversation

@j0ntz

@j0ntz j0ntz commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

CHANGELOG

Does this branch warrant an entry to the CHANGELOG?

  • Yes
  • No

Dependencies

none

Requirements

If you have made any visual changes to the GUI. Make sure you have:

  • Tested on iOS device
  • Tested on Android device
  • Tested on small-screen device (iPod Touch)
  • Tested on large-screen device (tablet)

Description

Prototype of the redesigned Houdini "private send" flow — Proposal A (From -> To grouping). Review-only and fully navigable; nothing talks to Houdini and every value (amounts, rate, recipient chains, address, fee, destination tag) is hard-coded so a reviewer can walk the complete flow.

Asana: https://app.asana.com/0/1215088146871429/1216019112895453

What it adds

  • New HoudiniSendScene reachable from a wallet's Send button (the wallet Send button is routed to the prototype on this branch; the production send scene is untouched).
  • Two linked amounts, You send and Recipient gets, recomputed from a hard-coded rate (e.g. 1 BTC = 36.5 ETH / 350 XMR / 620 SOL). The edited side is the guaranteed amount; the other shows an estimate (~).
  • Recipient receives asset picker over a hard-coded chain list (BTC, ETH, XMR, SOL), reusing RadioListModal with CryptoIcons.
  • Private send toggle. Inline quote row (rate, "Houdini private" label, cosmetic expiry countdown), network fee row, and a Destination Tag row shown only for memoNeeded chains (XMR).
  • AddressTile2 reused as-is with a hard-coded filled address. SafeSlider always submits (no Next, no confirmation scene).
  • Success paths: same-asset & non-private shows the Transaction Success modal then Transaction Details; cross-asset or private reuses SwapSuccessScene.

The scene is parameterized by a layout: 'a' | 'b' param so Proposal A and Proposal B differ only in card grouping. This branch passes 'a'.

Testing
Driven end to end on the iOS simulator via maestro (maestro/14-houdini/houdini-send-a.yaml). Screenshots attached below cover: the reorganized scene, the recipient-asset picker, the XMR destination-tag row, Private send on with the slider in its send-privately state, and both success screens (Transaction Success modal and SwapSuccessScene).


Note

Medium Risk
Replacing the wallet-screen Send path with a prototype blocks real sends from that button until reverted; funds are not moved, but testers may hit the wrong flow.

Overview
Adds a review-only HoudiniSendScene that prototypes the Houdini “private send” UX with hard-coded rates, amounts, address, fee, and recipient chains (BTC/ETH/XMR/SOL). Nothing calls Houdini or broadcasts transactions; sliding completes with a fake EdgeTransaction for existing success UIs.

Wallet Send from the asset transaction header (TransactionListTop) is temporarily routed to houdiniSend with layout: 'a' (From → To card grouping) instead of send2. Other send entry points still use send2.

The scene supports linked You send / Recipient gets editing (guaranteed vs estimated), recipient asset picker, optional Private send, cosmetic quote countdown, conditional destination tag for XMR, and branches completion to Transaction Success + details (same-asset, non-private) or SwapSuccessScene (cross-asset or private). A Maestro flow documents the walkthrough.

Reviewed by Cursor Bugbot for commit ecd9a88. Bugbot is set up for automated code reviews on this repo. Configure here.

@j0ntz

j0ntz commented Jun 24, 2026

Copy link
Copy Markdown
Contributor Author

📸 Test evidence — Houdini send prototype (Proposal A), iOS sim

agent proof 1216019116944855 01 houdini a scene

agent proof 1216019116944855 01 houdini a scene

agent proof 1216019116944855 04 houdini a picker

agent proof 1216019116944855 04 houdini a picker

agent proof 1216019116944855 05 houdini a xmr destination tag

agent proof 1216019116944855 05 houdini a xmr destination tag

agent proof 1216019116944855 06 houdini a private on slider

agent proof 1216019116944855 06 houdini a private on slider

agent proof 1216019116944855 02 houdini a success modal

agent proof 1216019116944855 02 houdini a success modal

agent proof 1216019116944855 07 houdini a swap success

agent proof 1216019116944855 07 houdini a swap success

agent proof 1216019116944855 03 houdini a tx details

agent proof 1216019116944855 03 houdini a tx details

Captured by the agent's in-app test run (build-and-test).

@j0ntz j0ntz force-pushed the prototype/houdini-send-reorg-a branch from c4a2ca2 to bf8eef7 Compare June 24, 2026 22:57
Comment thread src/components/scenes/HoudiniSendScene.tsx
Comment thread src/components/scenes/HoudiniSendScene.tsx
Comment thread src/components/scenes/HoudiniSendScene.tsx
Comment thread src/components/themed/TransactionListTop.tsx
Comment thread src/components/scenes/HoudiniSendScene.tsx
j0ntz added 2 commits June 24, 2026 16:00
Adds a review-only, fully navigable prototype of the redesigned Houdini
private send flow, reachable from a wallet's Send button. The scene
reorganizes the send-to-address experience with two linked amounts
(You send / Recipient gets) computed from a hard-coded rate, a
recipient-asset picker over a hard-coded chain list, a Private send
toggle, an inline quote row, a network fee row, and a conditional
destination-tag row. Cross-asset or private sends complete on
SwapSuccessScene; same-asset sends show the transaction success modal.
Nothing talks to Houdini; all values are hard-coded. The card grouping
uses Proposal A (From -> To grouping).
Walks the prototype from the wallet Send button through the reorganized
scene, recipient-asset picker, cross-asset XMR destination tag, Private
send toggle, and both success paths (Transaction Success modal and
SwapSuccessScene), capturing review screenshots along the way.
@j0ntz j0ntz force-pushed the prototype/houdini-send-reorg-a branch from bf8eef7 to ecd9a88 Compare June 24, 2026 23:00

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

There are 4 total unresolved issues (including 3 from previous reviews).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit ecd9a88. Configure here.

Comment thread src/components/scenes/HoudiniSendScene.tsx
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