Skip to content

Commit

Permalink
add new RPCs
Browse files Browse the repository at this point in the history
  • Loading branch information
yvesfracari committed Jul 3, 2024
1 parent a75c6cd commit 976c47d
Showing 1 changed file with 18 additions and 7 deletions.
25 changes: 18 additions & 7 deletions src/lib/publicClients.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,35 @@
import { createPublicClient, http } from "viem";
import { gnosis, mainnet, sepolia } from "viem/chains";

export type ChainType = typeof mainnet | typeof gnosis | typeof sepolia;
export type ChainType = (typeof supportedChains)[number];

export type ChainName = "mainnet" | "gnosis" | "sepolia";
export type ChainName = "gnosis" | "mainnet" | "sepolia";

export type ChainId = typeof mainnet.id | typeof gnosis.id | typeof sepolia.id;
export type ChainId = (typeof supportedChainIds)[number];

export const supportedChains = [gnosis, mainnet, sepolia] as const;

export const supportedChainIds = [mainnet.id, gnosis.id, sepolia.id] as const;

export const RPC_PROVIDERS = {
[mainnet.id]: process.env.RPC_URL_MAINNET,
[gnosis.id]: process.env.RPC_URL_GNOSIS,
[sepolia.id]: process.env.RPC_URL_SEPOLIA,
} as const;

export function createClientForChain(chain: ChainType) {
return createPublicClient({
chain,
transport: http(),
transport: http(RPC_PROVIDERS[chain.id]),
cacheTime: 0,
});
};
}

export const publicClientsFromNames = {
gnosis: createClientForChain(gnosis),
mainnet: createClientForChain(mainnet),
sepolia: createClientForChain(sepolia),
gnosis: createClientForChain(gnosis),
} as const;
};

export const publicClientsFromIds = {
[gnosis.id]: createClientForChain(gnosis),
Expand Down

0 comments on commit 976c47d

Please sign in to comment.