Commit 811520e
committed
test(uniswap): run the liquidity tests on the emulator instead of skipping them
These three were skipped whenever firmware_variant starts with "Emulator", and
the emulator is the only thing CI runs — so they have never executed in CI on
any branch. The firmware test report reads "327/330 PASSED, 3 skipped
(withheld)" with every EVM section green, and these are the 3.
The skip said "Skip until emulator issue resolved" and the comment above it
said "Pre-existing, unrelated to clear-signing" and "on-device this path is
exercised by the app". Both were wrong. Lifting the skip found a firmware logic
defect that fails on hardware too: confirmFromAccountMatch() in zxliquidtx.c
ended in `return is_self`, refusing the transaction AFTER the user approved the
recipient screen, so the device answered "Signing cancelled by user" for a
transaction the user had just confirmed.
The vectors show the split themselves — add_liquidity's recipient word is
commented "# eth address (self)" and passes; remove_liquidity's is
"# to address (not self)" and failed.
Fixed in keepkey-firmware as "fix(evm): a Uniswap recipient screen the user
approved is an approval". Against that firmware all three pass, asserting their
exact sig_v/sig_r/sig_s, so the device is signing the right bytes.
Keeping the skip would keep the report green by not looking.1 parent 8c1492b commit 811520e
1 file changed
Lines changed: 0 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | 32 | | |
40 | 33 | | |
41 | 34 | | |
| |||
62 | 55 | | |
63 | 56 | | |
64 | 57 | | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | 58 | | |
69 | 59 | | |
70 | 60 | | |
| |||
94 | 84 | | |
95 | 85 | | |
96 | 86 | | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | 87 | | |
101 | 88 | | |
102 | 89 | | |
| |||
0 commit comments