diff --git a/apps/fallback/src/lib/wagmi-config.ts b/apps/fallback/src/lib/wagmi-config.ts index 5ecd88a..66ed97d 100644 --- a/apps/fallback/src/lib/wagmi-config.ts +++ b/apps/fallback/src/lib/wagmi-config.ts @@ -17,7 +17,6 @@ import { celo, corn, etherlink, - flame, fraxtal, hemi, ink, @@ -72,13 +71,13 @@ const chains = [ customChains.hyperevm, optimism, customChains.monad, + customChains.stable, // fallback support (alphabetical) abstract, bsc, celo, corn, etherlink, - flame, fraxtal, hemi, ink, @@ -199,7 +198,6 @@ const transports: Record<(typeof chains)[number]["id"], Transport> = { ]), [customChains.monad.id]: createFallbackTransport([...createPonderHttp(customChains.monad.id)]), [hemi.id]: createFallbackTransport([{ url: "https://rpc.hemi.network/rpc", batch: false }]), - [flame.id]: createFallbackTransport(flame.rpcUrls.default.http.map((url) => ({ url, batch: false }))), [lisk.id]: createFallbackTransport([ { url: "https://lisk.gateway.tenderly.co", batch: { batchSize: 10 } }, ...lisk.rpcUrls.default.http.map((url) => ({ url, batch: false })), @@ -218,6 +216,10 @@ const transports: Record<(typeof chains)[number]["id"], Transport> = { ...createPonderHttp(customChains.tac.id), ...customChains.tac.rpcUrls.default.http.map((url) => ({ url, batch: false })), ]), + [customChains.stable.id]: createFallbackTransport([ + ...createPonderHttp(customChains.stable.id), + ...customChains.stable.rpcUrls.default.http.map((url) => ({ url, batch: false })), + ]), // [customChains.basecamp.id]: createFallbackTransport( // customChains.basecamp.rpcUrls.default.http.map((url) => ({ url, batch: false })), // ), diff --git a/packages/uikit/src/assets/chains/stable.svg b/packages/uikit/src/assets/chains/stable.svg new file mode 100644 index 0000000..ee1581f --- /dev/null +++ b/packages/uikit/src/assets/chains/stable.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/uikit/src/components/chain-icon.tsx b/packages/uikit/src/components/chain-icon.tsx index 500cf81..f682bc8 100644 --- a/packages/uikit/src/components/chain-icon.tsx +++ b/packages/uikit/src/components/chain-icon.tsx @@ -54,6 +54,7 @@ import ScrollSvg from "@/assets/chains/scroll.svg?react"; import SeiSvg from "@/assets/chains/sei.svg?react"; import SoneiumSvg from "@/assets/chains/soneium.svg?react"; import SonicSvg from "@/assets/chains/sonic.svg?react"; +import StableSvg from "@/assets/chains/stable.svg?react"; import TacSvg from "@/assets/chains/tac.svg?react"; import UnichainSvg from "@/assets/chains/unichain.svg?react"; import WorldchainSvg from "@/assets/chains/worldchain.svg?react"; @@ -114,6 +115,8 @@ export function ChainIcon({ id }: { id: number | undefined }): JSX.Element { return ; case sonic.id: return ; + case customChains.stable.id: + return ; case customChains.tac.id: return ; case unichain.id: diff --git a/packages/uikit/src/lib/chains/index.ts b/packages/uikit/src/lib/chains/index.ts index 923b699..89237ff 100644 --- a/packages/uikit/src/lib/chains/index.ts +++ b/packages/uikit/src/lib/chains/index.ts @@ -2,4 +2,5 @@ export { basecamp } from "./camp"; export { hyperevm } from "./hyperevm"; export { katana } from "./katana"; export { monad } from "./monad"; +export { stable } from "./stable"; export { tac } from "./tac"; diff --git a/packages/uikit/src/lib/chains/stable.ts b/packages/uikit/src/lib/chains/stable.ts new file mode 100644 index 0000000..679b049 --- /dev/null +++ b/packages/uikit/src/lib/chains/stable.ts @@ -0,0 +1,29 @@ +import { defineChain } from "viem"; + +export const stable = defineChain({ + id: 988, + name: "Stable Mainnet", + network: "stable", + nativeCurrency: { + symbol: "gUSDT", + name: "gasUSDT", + decimals: 18, + }, + rpcUrls: { + default: { + http: ["https://rpc.stable.xyz"], + }, + }, + blockExplorers: { + default: { + name: "Stable Explorer", + url: "https://explorer.stable.xyz/", + }, + }, + contracts: { + multicall3: { + address: "0xcA11bde05977b3631167028862bE2a173976CA11", + blockCreated: 2423647, + }, + }, +}); diff --git a/packages/uikit/src/lib/deployments.ts b/packages/uikit/src/lib/deployments.ts index 0dd67f8..a960a72 100644 --- a/packages/uikit/src/lib/deployments.ts +++ b/packages/uikit/src/lib/deployments.ts @@ -165,6 +165,10 @@ export const DEPLOYMENTS: Deployments = { Morpho: { address: "0xD5D960E8C380B724a48AC59E2DfF1b2CB4a1eAee", fromBlock: 31907457n }, MetaMorphoV1_1Factory: { address: "0x33f20973275B2F574488b18929cd7DCBf1AbF275", fromBlock: 32320327n }, }, + [customChains.stable.id]: { + Morpho: { address: "0xa40103088A899514E3fe474cD3cc5bf811b1102e", fromBlock: 1504506n }, + MetaMorphoV1_1Factory: { address: "0xb4ae5673c48621189E2bEfBA96F31912032DD1AE", fromBlock: 1504774n }, + }, }; export const CORE_DEPLOYMENTS = new Set([ @@ -177,6 +181,7 @@ export const CORE_DEPLOYMENTS = new Set([ customChains.hyperevm.id, optimism.id, customChains.monad.id, + customChains.stable.id, ]); export function getContractDeploymentInfo(chainId: number, name: OptionalContracts): DeploymentDetails | undefined;