diff --git a/README.md b/README.md index 003e1e1..996c5d1 100644 --- a/README.md +++ b/README.md @@ -124,6 +124,12 @@ + +
+ Robinhood Chain +
Robinhood +
+
coming soon diff --git a/src/constants.ts b/src/constants.ts index ca4bd6d..46a99da 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,3 +1,4 @@ +import { defineChain } from "viem"; import { bsc, base, @@ -20,6 +21,25 @@ import { } from "viem/chains"; import type { SupportedChainId } from "./types"; +// Robinhood Chain is not exported from viem/chains, so we define it locally. +export const robinhoodChain = defineChain({ + id: 4663, + name: "Robinhood Chain", + nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 }, + rpcUrls: { + default: { http: ["https://rpc.chain.robinhood.com"] }, + }, + blockExplorers: { + default: { + name: "Blockscout", + url: "https://robinhoodchain.blockscout.com", + }, + }, + contracts: { + multicall3: { address: "0xca11bde05977b3631167028862be2a173976ca11" }, + }, +}); + export const FORWARDING_MULTICALL_ABI = [ { @@ -134,6 +154,7 @@ export const SUPPORTED_CHAINS = [ worldchain, monad, abstract, + robinhoodChain, ]; export const NATIVE_SYMBOL_BY_CHAIN_ID: { [key in SupportedChainId]: string } = @@ -156,6 +177,7 @@ export const NATIVE_SYMBOL_BY_CHAIN_ID: { [key in SupportedChainId]: string } = [berachain.id]: berachain.nativeCurrency.symbol, [worldchain.id]: worldchain.nativeCurrency.symbol, [abstract.id]: abstract.nativeCurrency.symbol, + [robinhoodChain.id]: robinhoodChain.nativeCurrency.symbol, }; export const NATIVE_TOKEN_ADDRESS = `0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE`; diff --git a/src/types.ts b/src/types.ts index b17a26d..023051f 100644 --- a/src/types.ts +++ b/src/types.ts @@ -18,6 +18,7 @@ import { monad, abstract, } from "viem/chains"; +import { robinhoodChain } from "./constants"; import type { Hex, @@ -47,7 +48,8 @@ export type SupportedChainId = | typeof avalanche.id | typeof berachain.id | typeof worldchain.id - | typeof abstract.id; + | typeof abstract.id + | typeof robinhoodChain.id; export interface EnrichLogsArgs { transactionReceipt: TransactionReceipt; diff --git a/src/utils/index.ts b/src/utils/index.ts index a058fcd..6475e67 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -19,7 +19,11 @@ import { monad, abstract, } from "viem/chains"; -import { NATIVE_SYMBOL_BY_CHAIN_ID, NATIVE_TOKEN_ADDRESS } from "../constants"; +import { + NATIVE_SYMBOL_BY_CHAIN_ID, + NATIVE_TOKEN_ADDRESS, + robinhoodChain, +} from "../constants"; import type { Address } from "viem"; import type { Trace, @@ -50,6 +54,7 @@ export function isChainIdSupported( berachain.id, worldchain.id, abstract.id, + robinhoodChain.id, ]; return supportedChainIds.includes(chainId); }