diff --git a/apps/helixbox-app/package.json b/apps/helixbox-app/package.json index e2815b29..8935b060 100644 --- a/apps/helixbox-app/package.json +++ b/apps/helixbox-app/package.json @@ -20,7 +20,7 @@ "dependencies": { "@apollo/client": "^3.10.3", "@floating-ui/react": "^0.26.14", - "@helixbridge/helixconf": "1.1.18", + "@helixbridge/helixconf": "v1.2.0-beta", "@reown/appkit": "^1.0.7", "@reown/appkit-adapter-wagmi": "^1.0.7", "@sentry/react": "^8.30.0", diff --git a/apps/helixbox-app/public/images/network/celo.png b/apps/helixbox-app/public/images/network/celo.png new file mode 100644 index 00000000..593988ce Binary files /dev/null and b/apps/helixbox-app/public/images/network/celo.png differ diff --git a/apps/helixbox-app/src/config/chains/celo-testnet.ts b/apps/helixbox-app/src/config/chains/celo-testnet.ts new file mode 100644 index 00000000..ae6b4da2 --- /dev/null +++ b/apps/helixbox-app/src/config/chains/celo-testnet.ts @@ -0,0 +1,62 @@ +import { HelixChain } from "@helixbridge/helixconf"; +import { BridgeV2Type, ChainConfig, Network } from "../../types"; +import { Address } from "viem"; +import { celoAlfajores } from "viem/chains"; + +const chain = HelixChain.celoTestnet; +const tokens = chain.tokens.map((token) => { + const couples = chain.filterCouples({ symbolFrom: token.symbol }); + const category = couples.at(0)?.category ?? "Others"; + + const routes = new Set(); + for (const couple of couples) { + routes.add(`${couple.chain.code}:${couple.symbol.from}:${couple.symbol.to}`); + } + + const cross = [...routes].map((route) => { + const [toChain, fromToken, toToken] = route.split(":"); + const lnv2 = couples.find( + (c) => + c.chain.code === toChain && + c.symbol.from === fromToken && + c.symbol.to === toToken && + (c.protocol.name === "lnv2-default" || c.protocol.name === "lnv2-opposite"), + ); + return { + target: { network: toChain as Network, symbol: toToken }, + bridge: { + category: "lnbridge" as const, + lnv2Type: (lnv2?.protocol.name === "lnv2-opposite" ? "opposite" : "default") as BridgeV2Type, + disableV2: !lnv2, + }, + }; + }); + return { ...token, name: token.symbol, address: token.address as Address, category, cross }; +}); + +if (chain.couples.length && !chain.tokens.some((t) => t.type === "native")) { + tokens.push({ + ...celoAlfajores.nativeCurrency, + logo: "https://raw.githubusercontent.com/helix-bridge/helix-ui/main/packages/assets/images/tokens/eth.png", + address: "0x0000000000000000000000000000000000000000", + category: "ETH", + type: "native", + cross: [], + alias: [], + }); +} + +export const celoTestChain: ChainConfig = { + /** + * Chain + */ + ...celoAlfajores, + network: "celo-testnet", + name: "Celo Testnet", + + /** + * Custom + */ + logo: "celo.png", + tokens, +}; diff --git a/apps/helixbox-app/src/config/chains/index.ts b/apps/helixbox-app/src/config/chains/index.ts index 4ca288aa..de2e0292 100644 --- a/apps/helixbox-app/src/config/chains/index.ts +++ b/apps/helixbox-app/src/config/chains/index.ts @@ -25,3 +25,4 @@ export * from "./zircuit"; export * from "./zircuit-sepolia"; export * from "./morph-testnet"; export * from "./morph"; +export * from "./celo-testnet"; diff --git a/apps/helixbox-app/src/types/chain.ts b/apps/helixbox-app/src/types/chain.ts index 75687a50..d7db14c7 100644 --- a/apps/helixbox-app/src/types/chain.ts +++ b/apps/helixbox-app/src/types/chain.ts @@ -35,6 +35,7 @@ export enum ChainID { AVALANCHE = 43_114, ZIRCUIT = 48900, ZIRCUIT_SEPOLIA = 48899, + CELO_TESTNET = 44787, } // According to graphql indexer @@ -65,7 +66,8 @@ export type Network = | "avalanche" | "zircuit" | "zircuit-sepolia" - | "bsc"; + | "bsc" + | "celo-testnet"; export interface ChainConfig extends Chain { /** diff --git a/apps/helixbox-app/src/utils/chain.ts b/apps/helixbox-app/src/utils/chain.ts index 0e114460..2047395b 100644 --- a/apps/helixbox-app/src/utils/chain.ts +++ b/apps/helixbox-app/src/utils/chain.ts @@ -24,6 +24,7 @@ import { zircuitSepoliaChain, zksyncChain, zksyncSepoliaChain, + celoTestChain, } from "../config/chains"; import { ChainConfig, ChainID, Network } from "../types"; import { isMainnet } from "./env"; @@ -113,6 +114,9 @@ export function getChainConfig(chainIdOrNetwork?: ChainID | Network | null): Cha case ChainID.ZIRCUIT_SEPOLIA: case "zircuit-sepolia": return zircuitSepoliaChain; + case ChainID.CELO_TESTNET: + case "celo-testnet": + return celoTestChain; default: return; } @@ -147,6 +151,7 @@ export function getChainConfigs(askAll?: boolean) { avalancheChain, zircuitChain, zircuitSepoliaChain, + celoTestChain, ].sort((a, b) => a.name.localeCompare(b.name)); if (askAll) { diff --git a/packages/assets/images/chains/celo.png b/packages/assets/images/chains/celo.png new file mode 100644 index 00000000..593988ce Binary files /dev/null and b/packages/assets/images/chains/celo.png differ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 713024b1..b62905db 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -117,14 +117,14 @@ importers: specifier: ^0.26.14 version: 0.26.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@helixbridge/helixconf": - specifier: 1.1.18 - version: 1.1.18 + specifier: v1.2.0-beta + version: 1.2.0-beta "@reown/appkit": specifier: ^1.0.7 version: 1.0.7(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) "@reown/appkit-adapter-wagmi": specifier: ^1.0.7 - version: 1.0.7(l3bqwg3q27kpoc3uzgnypsmksq) + version: 1.0.7(f3kwnolqgggnwa3wyrus5szn2e) "@sentry/react": specifier: ^8.30.0 version: 8.30.0(react@18.3.1) @@ -175,7 +175,7 @@ importers: version: 2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4) wagmi: specifier: ^2.12.17 - version: 2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.3)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.19.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) + version: 2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.3)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.79.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) devDependencies: "@graphql-codegen/cli": specifier: 5.0.3 @@ -2128,6 +2128,10 @@ packages: resolution: { integrity: sha512-3o4urkcBMMs5JGuDrgcnRt909LWHhlVkMpVodQU5m4tm94trETnmf1dvHhSZGA/TBGffeC/82UMdqmx/w2NnEg== } + "@helixbridge/helixconf@1.2.0-beta": + resolution: + { integrity: sha512-YuFOhX33quFUwOvduSzo01ul7SWus2OicDTulJLbPdg000Qs37s0WJ80n1fK8FSDgvBMToC8oaxnimwTl6fT9Q== } + "@humanwhocodes/config-array@0.11.14": resolution: { integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== } @@ -11306,6 +11310,8 @@ snapshots: "@helixbridge/helixconf@1.1.18": {} + "@helixbridge/helixconf@1.2.0-beta": {} + "@humanwhocodes/config-array@0.11.14": dependencies: "@humanwhocodes/object-schema": 2.0.3 @@ -11657,7 +11663,7 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-native: 0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10) - "@metamask/sdk@0.28.4(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.19.0)(utf-8-validate@5.0.10)": + "@metamask/sdk@0.28.4(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.79.1)(utf-8-validate@5.0.10)": dependencies: "@metamask/onboarding": 1.0.1 "@metamask/providers": 16.1.0 @@ -11678,7 +11684,7 @@ snapshots: qrcode-terminal-nooctal: 0.12.1 react-native-webview: 11.26.1(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1) readable-stream: 3.6.2 - rollup-plugin-visualizer: 5.12.0(rollup@4.19.0) + rollup-plugin-visualizer: 5.12.0(rollup@2.79.1) socket.io-client: 4.8.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) util: 0.12.5 uuid: 8.3.2 @@ -12176,7 +12182,7 @@ snapshots: "@remix-run/router@1.20.0": {} - "@reown/appkit-adapter-wagmi@1.0.7(l3bqwg3q27kpoc3uzgnypsmksq)": + "@reown/appkit-adapter-wagmi@1.0.7(f3kwnolqgggnwa3wyrus5szn2e)": dependencies: "@coinbase/wallet-sdk": 4.0.4 "@reown/appkit": 1.0.7(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) @@ -12188,13 +12194,13 @@ snapshots: "@reown/appkit-ui": 1.0.7 "@reown/appkit-utils": 1.0.7(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)(valtio@1.11.2(@types/react@18.3.3)(react@18.3.1)) "@reown/appkit-wallet": 1.0.7 - "@wagmi/connectors": 5.1.15(@types/react@18.3.3)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.3)(react@18.3.1)(typescript@5.5.4)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.19.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) + "@wagmi/connectors": 5.1.15(@types/react@18.3.3)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.3)(react@18.3.1)(typescript@5.5.4)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.79.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) "@wagmi/core": 2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.3)(react@18.3.1)(typescript@5.5.4)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)) "@walletconnect/universal-provider": 2.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) "@walletconnect/utils": 2.17.0 valtio: 1.11.2(@types/react@18.3.3)(react@18.3.1) viem: 2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4) - wagmi: 2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.3)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.19.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) + wagmi: 2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.3)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.79.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) transitivePeerDependencies: - "@azure/app-configuration" - "@azure/cosmos" @@ -13074,10 +13080,10 @@ snapshots: loupe: 2.3.7 pretty-format: 29.7.0 - "@wagmi/connectors@5.1.15(@types/react@18.3.3)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.3)(react@18.3.1)(typescript@5.5.4)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.19.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)": + "@wagmi/connectors@5.1.15(@types/react@18.3.3)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.3)(react@18.3.1)(typescript@5.5.4)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.79.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)": dependencies: "@coinbase/wallet-sdk": 4.0.4 - "@metamask/sdk": 0.28.4(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.19.0)(utf-8-validate@5.0.10) + "@metamask/sdk": 0.28.4(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.79.1)(utf-8-validate@5.0.10) "@safe-global/safe-apps-provider": 0.18.3(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4) "@safe-global/safe-apps-sdk": 9.1.0(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4) "@wagmi/core": 2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.3)(react@18.3.1)(typescript@5.5.4)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)) @@ -17319,14 +17325,14 @@ snapshots: dependencies: glob: 7.2.3 - rollup-plugin-visualizer@5.12.0(rollup@4.19.0): + rollup-plugin-visualizer@5.12.0(rollup@2.79.1): dependencies: open: 8.4.2 picomatch: 2.3.1 source-map: 0.7.4 yargs: 17.7.2 optionalDependencies: - rollup: 4.19.0 + rollup: 2.79.1 rollup@2.79.1: optionalDependencies: @@ -18395,10 +18401,10 @@ snapshots: vlq@1.0.1: {} - wagmi@2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.3)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.19.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4): + wagmi@2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.3)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.79.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4): dependencies: "@tanstack/react-query": 5.59.0(react@18.3.1) - "@wagmi/connectors": 5.1.15(@types/react@18.3.3)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.3)(react@18.3.1)(typescript@5.5.4)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.19.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) + "@wagmi/connectors": 5.1.15(@types/react@18.3.3)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.3)(react@18.3.1)(typescript@5.5.4)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.79.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) "@wagmi/core": 2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.3)(react@18.3.1)(typescript@5.5.4)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)) react: 18.3.1 use-sync-external-store: 1.2.0(react@18.3.1)