Skip to content

refactor(suite-native): transaction review - #32408

Merged
TomasBoda merged 1 commit into
developfrom
refactor/native/transaction-review
Sep 28, 2026
Merged

TomasBoda merged 1 commit into
developfrom
refactor/native/transaction-review

Conversation

@TomasBoda

@TomasBoda TomasBoda commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Description

This PR unifies transaction review screens across all flows (send, trading, staking, yield). It introduces the following changes:

  1. new @suite-native/transaction-review package holding the shared state
  2. TransactionReviewScreen rendered in all transaction review screens
  3. Shared useTransactionReview context controlling the package internally

The @suite-native/transaction-review contains the shared review outputs and their rendering, but flows that need special review outputs and their custom handling, such as Yield, Staking, and Trading can extend the default values. Therefore, these flows provide extensions implemented in these hooks:

  • useStakingTransactionReviewOutputs.tsx
  • useYieldTransactionReviewOutputs.tsx
  • useTradingTransactionReviewOutputs.tsz

Most important changed files and packages:

  • @suite-native/transaction-review - contains all tx review code
  • suite-native/transaction-review/src/screens/TransactionReviewScreen.tsx - rendered in the tx review flows
  • suite-native/module-earn/src/hooks/staking/useStakingTransactionReviewOutputs.tsx - extends staking tx review by staking-specific outputs
  • suite-native/module-earn/src/hooks/yield/useYieldTransactionReviewOutputs.tsx - extends yield tx review by yield-specific outputs
  • suite-native/module-trading/src/hooks/useTradingTransactionReviewOutputs.tsx - extends trading tx review by trading-specific outputs
  • all components that render <TransactionReviewScreen />

Related Issue

Resolve #31630

🤖 LLM Test Recommendations

Summary: All changed files live under suite-native (mobile) or a shared wallet-types type file that is consumed by suite-native transaction-review/send flows. None of the available suite/e2e (web/desktop Suite) tests exercise the suite-native mobile app or its transaction-review components, so there is no relevant E2E coverage in this candidate set. The appropriate verification should happen in the suite-native/mobile E2E test suite rather than suite-web/e2e.

Changed files (28)
  • suite-common/wallet-types/src/index.ts
  • suite-common/wallet-types/src/transactionReview.ts
  • suite-native/module-send/package.json
  • suite-native/module-send/src/screens/SendOutputsReviewScreen.tsx
  • suite-native/module-send/tsconfig.json
  • suite-native/transaction-management/src/selectors.ts
  • suite-native/transaction-review/package.json
  • suite-native/transaction-review/src/components/TransactionReviewFooter.tsx
  • suite-native/transaction-review/src/components/TransactionReviewOutputCard.tsx
  • suite-native/transaction-review/src/components/TransactionReviewOutputHexData.tsx
  • suite-native/transaction-review/src/components/TransactionReviewOutputItem.tsx
  • suite-native/transaction-review/src/components/TransactionReviewOutputItemBadge.tsx
  • suite-native/transaction-review/src/components/TransactionReviewOutputItemContent.tsx
  • suite-native/transaction-review/src/components/TransactionReviewOutputItemLabel.tsx
  • suite-native/transaction-review/src/components/TransactionReviewOutputItemValues.tsx
  • suite-native/transaction-review/src/components/TransactionReviewOutputSummaryItem.tsx
  • suite-native/transaction-review/src/components/TransactionReviewOutputsList.tsx
  • suite-native/transaction-review/src/components/TxValidityTimer.tsx
  • suite-native/transaction-review/src/hooks/useActiveStepOffset.tsx
  • suite-native/transaction-review/src/hooks/useHandleCommonSignRejection.tsx
  • suite-native/transaction-review/src/hooks/useShowDeviceDisconnectedAlert.tsx
  • suite-native/transaction-review/src/hooks/useTransactionReview.tsx
  • suite-native/transaction-review/src/hooks/useTransactionReviewBackInterceptor.tsx
  • suite-native/transaction-review/src/hooks/useTransactionReviewCancellationAlert.tsx
  • suite-native/transaction-review/src/hooks/useTxValidityFlow.tsx
  • suite-native/transaction-review/src/index.ts
  • suite-native/transaction-review/src/screens/TransactionReviewScreen.tsx
  • suite-native/transaction-review/tsconfig.json

No test recommendations found.

⚠️ Changes with no test coverage (28)

  • suite-common/wallet-types/src/index.ts
  • suite-common/wallet-types/src/transactionReview.ts
  • suite-native/module-send/package.json
  • suite-native/module-send/src/screens/SendOutputsReviewScreen.tsx
  • suite-native/module-send/tsconfig.json
  • suite-native/transaction-management/src/selectors.ts
  • suite-native/transaction-review/package.json
  • suite-native/transaction-review/src/components/TransactionReviewFooter.tsx
  • suite-native/transaction-review/src/components/TransactionReviewOutputCard.tsx
  • suite-native/transaction-review/src/components/TransactionReviewOutputHexData.tsx
  • suite-native/transaction-review/src/components/TransactionReviewOutputItem.tsx
  • suite-native/transaction-review/src/components/TransactionReviewOutputItemBadge.tsx
  • suite-native/transaction-review/src/components/TransactionReviewOutputItemContent.tsx
  • suite-native/transaction-review/src/components/TransactionReviewOutputItemLabel.tsx
  • suite-native/transaction-review/src/components/TransactionReviewOutputItemValues.tsx
  • suite-native/transaction-review/src/components/TransactionReviewOutputSummaryItem.tsx
  • suite-native/transaction-review/src/components/TransactionReviewOutputsList.tsx
  • suite-native/transaction-review/src/components/TxValidityTimer.tsx
  • suite-native/transaction-review/src/hooks/useActiveStepOffset.tsx
  • suite-native/transaction-review/src/hooks/useHandleCommonSignRejection.tsx
  • suite-native/transaction-review/src/hooks/useShowDeviceDisconnectedAlert.tsx
  • suite-native/transaction-review/src/hooks/useTransactionReview.tsx
  • suite-native/transaction-review/src/hooks/useTransactionReviewBackInterceptor.tsx
  • suite-native/transaction-review/src/hooks/useTransactionReviewCancellationAlert.tsx
  • suite-native/transaction-review/src/hooks/useTxValidityFlow.tsx
  • suite-native/transaction-review/src/index.ts
  • suite-native/transaction-review/src/screens/TransactionReviewScreen.tsx
  • suite-native/transaction-review/tsconfig.json

Updated: 2026-09-14T07:26:25.443Z

🌐 Preview deployments

🌐 Suite Web preview: https://dev.suite.sldev.cz/suite-web/refactor/native/transaction-review/web/

🔍 Currents Test Results

🔍 Suite desktop test results: View in Currents

🔍 Suite web test results: View in Currents

🔍 Suite native android test results: View in Currents

🔒 Quarantined E2E Tests

Trezor Suite (web) — 1 test(s)
Test Type
Trading - Swap > Swap SOL USDT token to ETH 🤖 auto

Updated: 2026-09-25T12:27:37.518Z • 1 test(s) total

Trezor Suite (desktop) — 1 test(s)
Test Type
Trading - Swap > Swap SOL USDT token to ETH 🤖 auto

Updated: 2026-09-25T12:27:13.488Z • 1 test(s) total

@TomasBoda TomasBoda self-assigned this Sep 11, 2026
@TomasBoda
TomasBoda force-pushed the refactor/native/transaction-review branch 4 times, most recently from 9c7b5f0 to 477947b Compare September 14, 2026 06:42
@github-actions

github-actions Bot commented Sep 14, 2026 •

Copy link
Copy Markdown

⚡️ Performance report (alpha)

Note

Alpha release: The limits are still being calibrated, and each measurement is
usually a single run on a shared CI runner, so expect noise between runs. Treat a
number as a hint to look closer, not as a verdict.

desktop / group 1

⚪️ Following e2e flows within limits:

Each metric reads measured/limit (% of limit).

Scenario TBT Long tasks Longest task React commits Interaction
account-switch [T3W1] 227/700 ms
(32 %)
1/5
(20 %)
277/700 ms
(40 %)
38/80
(48 %)
717 ms
multi-account-discovery [T3W1] 1844/7000 ms
(26 %)
43/100
(43 %)
302/800 ms
(38 %)
266/400
(67 %)
8449 ms
wallet-discovery [T3W1] 922/2000 ms
(46 %)
23/45
(51 %)
215/400 ms
(54 %)
167/410
(41 %)
5404 ms

desktop / group 6

⚪️ Following e2e flows within limits:

Each metric reads measured/limit (% of limit).

Scenario TBT Long tasks Longest task React commits Interaction
account-switch [T3W1] 314/700 ms
(45 %)
2/5
(40 %)
280/700 ms
(40 %)
31/80
(39 %)
704 ms
multi-account-discovery [T3W1] 462/7000 ms
(7 %)
24/100
(24 %)
193/800 ms
(24 %)
296/400
(74 %)
7042 ms
wallet-discovery [T3W1] 824/2000 ms
(41 %)
20/45
(44 %)
210/400 ms
(53 %)
179/410
(44 %)
5429 ms

desktop / group 2

⚪️ Following e2e flows within limits:

Each metric reads measured/limit (% of limit).

Scenario TBT Long tasks Longest task React commits Interaction
account-switch [T3W1] 225/700 ms
(32 %)
1/5
(20 %)
275/700 ms
(39 %)
31/80
(39 %)
614 ms
multi-account-discovery [T3W1] 1667/7000 ms
(24 %)
46/100
(46 %)
305/800 ms
(38 %)
271/400
(68 %)
7802 ms
wallet-discovery [T3W1] 773/2000 ms
(39 %)
21/45
(47 %)
201/400 ms
(50 %)
182/410
(44 %)
5359 ms

desktop / group 3

⚪️ Following e2e flows within limits:

Each metric reads measured/limit (% of limit).

Scenario TBT Long tasks Longest task React commits Interaction
account-switch [T3W1] 245/700 ms
(35 %)
1/5
(20 %)
295/700 ms
(42 %)
38/80
(48 %)
836 ms
multi-account-discovery [T3W1] 1324/7000 ms
(19 %)
46/100
(46 %)
260/800 ms
(33 %)
243/400
(61 %)
7503 ms
wallet-discovery [T3W1] 522/2000 ms
(26 %)
20/45
(44 %)
180/400 ms
(45 %)
164/410
(40 %)
5167 ms

desktop / group 5

⚪️ Following e2e flows within limits:

Each metric reads measured/limit (% of limit).

Scenario TBT Long tasks Longest task React commits Interaction
account-switch [T3W1] 157/700 ms
(22 %)
1/5
(20 %)
207/700 ms
(30 %)
29/80
(36 %)
470 ms
multi-account-discovery [T3W1] 1377/7000 ms
(20 %)
44/100
(44 %)
276/800 ms
(35 %)
227/400
(57 %)
7542 ms
wallet-discovery [T3W1] 306/2000 ms
(15 %)
13/45
(29 %)
160/400 ms
(40 %)
216/410
(53 %)
5626 ms

desktop / group 7

⚪️ Following e2e flows within limits:

Each metric reads measured/limit (% of limit).

Scenario TBT Long tasks Longest task React commits Interaction
account-switch [T3W1] 225/700 ms
(32 %)
1/5
(20 %)
275/700 ms
(39 %)
28/80
(35 %)
592 ms
multi-account-discovery [T3W1] 2145/7000 ms
(31 %)
48/100
(48 %)
305/800 ms
(38 %)
269/400
(67 %)
8135 ms
wallet-discovery [T3W1] 885/2000 ms
(44 %)
19/45
(42 %)
212/400 ms
(53 %)
268/410
(65 %)
7700 ms

desktop / group 4

⚪️ Following e2e flows within limits:

Each metric reads measured/limit (% of limit).

Scenario TBT Long tasks Longest task React commits Interaction
account-switch [T3W1] 177/700 ms
(25 %)
2/5
(40 %)
223/700 ms
(32 %)
32/80
(40 %)
560 ms
multi-account-discovery [T3W1] 799/7000 ms
(11 %)
25/100
(25 %)
254/800 ms
(32 %)
254/400
(64 %)
6070 ms
wallet-discovery [T3W1] 445/2000 ms
(22 %)
16/45
(36 %)
173/400 ms
(43 %)
180/410
(44 %)
4939 ms

@TomasBoda
TomasBoda force-pushed the refactor/native/transaction-review branch 2 times, most recently from 82a7e7f to 46a8469 Compare September 14, 2026 10:00
@trezor-bot

trezor-bot Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

✅ Previously successful run of [Test] suite-native Android E2E workflow has been found.
⏭️ Skipping tests for this run.
💡 If you are unsure about your latest changes, please rerun the workflow manually. (Use the Re-run all jobs option)

@TomasBoda
TomasBoda force-pushed the refactor/native/transaction-review branch 21 times, most recently from b53b3a4 to e3b221a Compare September 17, 2026 11:40
@TomasBoda
TomasBoda requested review from a team and izmy September 17, 2026 12:47
@TomasBoda
TomasBoda marked this pull request as ready for review September 17, 2026 12:51
@TomasBoda
TomasBoda force-pushed the refactor/native/transaction-review branch 6 times, most recently from ddb38d8 to 32040be Compare September 22, 2026 08:07
Comment thread suite-native/module-earn/src/components/earn/WrappedNativeTokenReviewContent.tsx Outdated
Comment thread suite-native/module-earn/src/components/yield/YieldWithdrawReviewContent.tsx Outdated
Comment thread suite-native/module-earn/src/hooks/yield/useYieldTransactionReviewOutputs.tsx Outdated
Comment thread suite-native/transaction-review/src/components/TransactionReviewOutputsList.tsx Outdated
@TomasBoda
TomasBoda force-pushed the refactor/native/transaction-review branch 4 times, most recently from a8eddfa to 395e19f Compare September 25, 2026 10:02
@TomasBoda
TomasBoda force-pushed the refactor/native/transaction-review branch from 395e19f to ce35eb0 Compare September 25, 2026 12:20
@TomasBoda
TomasBoda merged commit 9da5b7f into develop Sep 28, 2026
84 of 87 checks passed
@TomasBoda
TomasBoda deleted the refactor/native/transaction-review branch September 28, 2026 12:53
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.

Unify tx review screens

2 participants