fix: only allow linea sepolia

This commit is contained in:
Arseniy Klempner 2025-11-12 14:15:30 -08:00
parent 31b8d3212a
commit a8f1bfa4d8
No known key found for this signature in database
GPG Key ID: 51653F18863BD24B

View File

@ -5,11 +5,11 @@ import {
PublicClient,
WalletClient
} from "viem";
import { type Chain, lineaSepolia } from "viem/chains";
import { lineaSepolia } from "viem/chains";
export const createViemClientFromWindow = async (
chain: Chain = lineaSepolia
): Promise<WalletClient & PublicClient> => {
export const createViemClientFromWindow = async (): Promise<
WalletClient & PublicClient
> => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const ethereum = (window as any).ethereum;
@ -23,9 +23,26 @@ export const createViemClientFromWindow = async (
const rpcClient = createWalletClient({
account,
chain,
chain: lineaSepolia,
transport: custom(ethereum)
}).extend(publicActions);
// Ensure wallet is connected to Linea Sepolia
try {
await rpcClient.switchChain({ id: lineaSepolia.id });
} catch (error: unknown) {
// This error code indicates that the chain has not been added to the wallet
if (
typeof error === "object" &&
error !== null &&
"code" in error &&
error.code === 4902
) {
await rpcClient.addChain({ chain: lineaSepolia });
} else {
throw error;
}
}
return rpcClient;
};