Skip to content

Commit 6f6da62

Browse files
committed
handle rpc errors better
1 parent e0bc0ba commit 6f6da62

File tree

1 file changed

+20
-8
lines changed

1 file changed

+20
-8
lines changed

src/utils/error.ts

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,24 @@ export const prettifyError = async (
2727
return error.message;
2828
};
2929

30-
export const isNonceAlreadyUsedError = (error: unknown) =>
31-
(error instanceof Error &&
32-
error.message.toLowerCase().includes("nonce too low")) ||
33-
isEthersErrorCode(error, ethers.errors.NONCE_EXPIRED);
30+
const _parseMessage = (error: unknown): string | null => {
31+
return error && typeof error === "object" && "message" in error
32+
? (error.message as string).toLowerCase()
33+
: null;
34+
};
35+
36+
export const isNonceAlreadyUsedError = (error: unknown) => {
37+
const message = _parseMessage(error);
38+
if (message) {
39+
return message.includes("nonce too low");
40+
}
41+
return isEthersErrorCode(error, ethers.errors.NONCE_EXPIRED);
42+
};
3443

35-
export const isReplacementGasFeeTooLow = (error: unknown) =>
36-
(error instanceof Error &&
37-
error.message.toLowerCase().includes("replacement fee too low")) ||
38-
isEthersErrorCode(error, ethers.errors.REPLACEMENT_UNDERPRICED);
44+
export const isReplacementGasFeeTooLow = (error: unknown) => {
45+
const message = _parseMessage(error);
46+
if (message) {
47+
return message.includes("replacement fee too low");
48+
}
49+
return isEthersErrorCode(error, ethers.errors.REPLACEMENT_UNDERPRICED);
50+
};

0 commit comments

Comments
 (0)