Commit 467ff30
committed
fix(sdk-core): bypass TSS recipient guard generically for staking intents
BSC/BNB hot wallet staking breaks after WAL-375 SDK bump because the
staking wallet calls signTransaction without txParams, and staking
intentType strings were absent from the recipient bypass set.
Instead of enumerating every staking intentType string (which drifts as
new coins add staking support), detect staking intents generically via
the presence of stakingRequestId on the intent — a required field on
BaseStakeIntent in @bitgo/public-types that all staking intents inherit.
Fix:
- NO_RECIPIENT_TX_TYPES retains only the 8 non-staking ECDSA types
- resolveEffectiveTxParams checks stakingRequestId as a generic staking
signal; throws only if no recipients, not staking, and not an ECDSA
no-recipient type
- Keep intent.intentType fallback so txType propagates to downstream
verifyTssTransaction callers
- Revert verifyTssTransaction bypass list in abstractEthLikeNewCoins.ts
back to 8 original ECDSA types
- Remove stale verifyTssTransaction override from bsc.ts (parent handles)
- Tests: updated makeTxRequest to accept stakingRequestId; realistic tests
using delegate/stake + stakingRequestId; negative test confirms delegate
without stakingRequestId still throws
Refs: WAL-756
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
TICKET: WAL-7561 parent 6c87b40 commit 467ff30
2 files changed
Lines changed: 72 additions & 9 deletions
File tree
- modules/sdk-core
- src/bitgo/utils/tss
- test/unit/bitgo/utils/tss
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| |||
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
18 | | - | |
| 19 | + | |
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
| |||
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
28 | 34 | | |
29 | | - | |
| 35 | + | |
30 | 36 | | |
31 | 37 | | |
32 | 38 | | |
| |||
43 | 49 | | |
44 | 50 | | |
45 | 51 | | |
46 | | - | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
47 | 67 | | |
48 | 68 | | |
49 | 69 | | |
| |||
Lines changed: 48 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
9 | 11 | | |
10 | 12 | | |
11 | 13 | | |
12 | | - | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
13 | 17 | | |
14 | 18 | | |
15 | 19 | | |
| |||
23 | 27 | | |
24 | 28 | | |
25 | 29 | | |
26 | | - | |
| 30 | + | |
27 | 31 | | |
28 | 32 | | |
29 | 33 | | |
| |||
105 | 109 | | |
106 | 110 | | |
107 | 111 | | |
108 | | - | |
109 | | - | |
| 112 | + | |
| 113 | + | |
110 | 114 | | |
111 | 115 | | |
112 | 116 | | |
| |||
117 | 121 | | |
118 | 122 | | |
119 | 123 | | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
120 | 163 | | |
121 | 164 | | |
0 commit comments