Skip to content

Commit 30dfd46

Browse files
🐛 (ledger-button) [LBD-260]: Fix transaction parameter detection for typed data error messages (#248)
2 parents 5353d75 + cb79f1b commit 30dfd46

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

packages/ledger-button/src/domain/sign-transaction/sign-transaction-controller.ts

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ import {
55
isBroadcastedTransactionResult,
66
isSignedMessageOrTypedDataResult,
77
isSignedTransactionResult,
8+
isSignPersonalMessageParams,
9+
isSignRawTransactionParams,
10+
isSignTransactionParams,
811
type SignedResults,
912
type SignFlowStatus,
1013
type SignPersonalMessageParams,
@@ -161,6 +164,28 @@ export class SignTransactionController implements ReactiveController {
161164
: this.lang.currentTranslation.common.device.model.fallback;
162165
}
163166

167+
private isTransactionParameter(
168+
transactionParams:
169+
| SignTransactionParams
170+
| SignRawTransactionParams
171+
| SignTypedMessageParams
172+
| SignPersonalMessageParams
173+
| undefined,
174+
): boolean {
175+
if (!transactionParams) {
176+
return false;
177+
}
178+
179+
if (isSignPersonalMessageParams(transactionParams)) {
180+
return false;
181+
}
182+
183+
return (
184+
isSignTransactionParams(transactionParams) ||
185+
isSignRawTransactionParams(transactionParams)
186+
);
187+
}
188+
164189
private mapSuccessToState(data: SignedResults): ScreenState {
165190
const lang = this.lang.currentTranslation;
166191

@@ -323,7 +348,7 @@ export class SignTransactionController implements ReactiveController {
323348
}
324349
case error instanceof UserRejectedTransactionError: {
325350
const deviceName = this.getDeviceName();
326-
const isTx = isSignedTransactionResult(this.currentTransaction);
351+
const isTx = this.isTransactionParameter(this.currentTransaction);
327352
this.state = {
328353
screen: "error",
329354
status: {

0 commit comments

Comments
 (0)