Skip to content

Prototype: Houdini private-send reorg (Proposal B)#6055

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

Prototype: Houdini private-send reorg (Proposal B)#6055
j0ntz wants to merge 2 commits into
developfrom
prototype/houdini-send-reorg-b

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 B (today's live card order). 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/1216019112895454

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 'b': a single "Send from Wallet" card, then an address card grouping Send To Address + Recipient receives + the two amounts, then Private send, then a separate lower card for rate, network fee, and the conditional destination tag.

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


Note

Medium Risk
Replacing the wallet Send entry point affects every wallet on builds that include this branch; funds are not at risk because nothing is broadcast, but accidental release would block normal sending until routing is reverted.

Overview
Adds a review-only HoudiniSendScene and wires the wallet Send action to it (layout: 'b') instead of send2, so reviewers can walk a full “Private Send” UX without touching production send or Houdini APIs.

The new scene uses hard-coded address, rates, fees, destination tag, and BTC/ETH/XMR/SOL picker; linked You send / Recipient gets amounts with guaranteed vs estimated sides; a Private send toggle; cosmetic quote countdown; and Proposal B card grouping (address + recipient + amounts, then private toggle, then rate/fee/tag). Completing the slider either opens SwapSuccessScene (cross-asset or private) or a Transaction Success modal → transaction details with a non-broadcast stub transaction.

Also registers the houdiniSend route, adds locale strings, a CHANGELOG entry, and a Maestro flow (houdini-send-b.yaml) for screenshot/regression walkthrough.

Reviewed by Cursor Bugbot for commit 8493cf3. 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 B), iOS sim

agent proof 1216019116944855 b01 houdini b scene

agent proof 1216019116944855 b01 houdini b scene

agent proof 1216019116944855 b02 houdini b picker

agent proof 1216019116944855 b02 houdini b picker

agent proof 1216019116944855 b03 houdini b xmr destination tag

agent proof 1216019116944855 b03 houdini b xmr destination tag

agent proof 1216019116944855 b04 houdini b private on

agent proof 1216019116944855 b04 houdini b private on

agent proof 1216019116944855 b05 houdini b swap success

agent proof 1216019116944855 b05 houdini b swap success

agent proof 1216019116944855 b06 houdini b success modal

agent proof 1216019116944855 b06 houdini b success modal

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

Comment thread src/components/scenes/HoudiniSendScene.tsx Outdated
@j0ntz j0ntz force-pushed the prototype/houdini-send-reorg-b branch from ac566d9 to 45bad23 Compare June 24, 2026 22:51
Comment thread src/components/scenes/HoudiniSendScene.tsx
Comment thread src/components/scenes/HoudiniSendScene.tsx Outdated
j0ntz added 2 commits June 24, 2026 16:03
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 B (today's live card order: an address card grouping the
amounts, with a separate lower card for rate, fee, and destination tag).
Walks the Proposal B prototype from the wallet Send button through the
reorganized scene, recipient-asset picker, cross-asset XMR destination
tag (in the lower card), Private send toggle, and both success paths
(SwapSuccessScene and the Transaction Success modal), capturing review
screenshots along the way.
@j0ntz j0ntz force-pushed the prototype/houdini-send-reorg-b branch from 45bad23 to 8493cf3 Compare June 24, 2026 23:03

@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.

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 8493cf3. 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