Skip to content

Commit 371fbcb

Browse files
committed
api: add engine error message mapping
1 parent 4af89a2 commit 371fbcb

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

apps/api/src/utils/error.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ describe("error utils", () => {
2525
normalizeEngineErrorMessage(
2626
`eth_sendUserOperation error: {"message":"Invalid UserOperation signature or paymaster signature","code":-32507} Status: 200 Code: UNKNOWN`,
2727
),
28-
).toBe("Invalid UserOperation signature or paymaster signature");
28+
).toBe("No active session found. Please sign in again.");
2929
expect(
3030
normalizeEngineErrorMessage(
3131
"Simulation failed: TransactionError: Error - ERC20: transfer amount exceeds balance",

apps/api/src/utils/error.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,20 @@ export class TdkError extends Error {
5151
}
5252
}
5353

54-
export const normalizeEngineErrorMessage = (message: string) => {
54+
const ENGINE_ERROR_MESSAGE_MAP = {
55+
"Invalid UserOperation signature or paymaster signature":
56+
"No active session found. Please sign in again.",
57+
} as const;
58+
59+
export const normalizeEngineErrorMessage = (rawMessage: string) => {
5560
const groups =
5661
/(?:reason: '(.*?)' at)|(?:reason="execution reverted: (.*?)")|(?:eth_sendUserOperation error: {"message":"(.*?)"|(?:Simulation failed: TransactionError: Error - (.*))|(?:^Simulation failed: (.*))|(?:^Error - (.*)))/gi.exec(
57-
message,
62+
rawMessage,
5863
);
59-
return groups?.slice(1).find((group) => group) ?? message;
64+
const message = groups?.slice(1).find((group) => group) ?? rawMessage;
65+
return message in ENGINE_ERROR_MESSAGE_MAP
66+
? ENGINE_ERROR_MESSAGE_MAP[message as keyof typeof ENGINE_ERROR_MESSAGE_MAP]
67+
: message;
6068
};
6169

6270
export const parseEngineErrorMessage = (err: unknown) => {

0 commit comments

Comments
 (0)