diff --git a/.changeset/stale-swans-report.md b/.changeset/stale-swans-report.md new file mode 100644 index 000000000..405628990 --- /dev/null +++ b/.changeset/stale-swans-report.md @@ -0,0 +1,5 @@ +--- +"@stakekit/widget": patch +--- + +feat: hoodi chain support diff --git a/packages/widget/src/domain/types/chains/evm.ts b/packages/widget/src/domain/types/chains/evm.ts index 9153887b7..436ce9f2b 100644 --- a/packages/widget/src/domain/types/chains/evm.ts +++ b/packages/widget/src/domain/types/chains/evm.ts @@ -10,7 +10,7 @@ import { gnosis, goerli, harmonyOne, - holesky, + hoodi, linea, mainnet, optimism, @@ -20,6 +20,7 @@ import { unichain, viction, } from "viem/chains"; +import type { KebabToCamelCase } from "../../../types/utils"; import { getNetworkLogo } from "../../../utils"; const supportedEVMChains = [ @@ -33,7 +34,7 @@ const supportedEVMChains = [ EvmNetworks.Optimism, EvmNetworks.Polygon, EvmNetworks.Viction, - EvmNetworks.EthereumHolesky, + EvmNetworks.EthereumHoodi, EvmNetworks.Base, EvmNetworks.Linea, EvmNetworks.Core, @@ -142,10 +143,10 @@ export const evmChainsMap: EvmChainsMap = { iconUrl: getNetworkLogo(EvmNetworks.Sonic), }, }, - [EvmNetworks.EthereumHolesky]: { + [EvmNetworks.EthereumHoodi]: { type: "evm", - skChainName: EvmNetworks.EthereumHolesky, - wagmiChain: holesky, + skChainName: EvmNetworks.EthereumHoodi, + wagmiChain: hoodi, }, [EvmNetworks.EthereumGoerli]: { type: "evm", @@ -202,9 +203,15 @@ export enum EvmChainIds { Linea = 59_144, Core = 1116, Sonic = 146, - EthereumHolesky = 17000, + EthereumHoodi = 560048, EthereumGoerli = 5, EthereumSepolia = 11_155_111, Unichain = 130, Katana = 747474, + Gnosis = 100, } + +EvmChainIds satisfies Record< + Capitalize>, + number +>; diff --git a/packages/widget/src/domain/types/chains/ledger.ts b/packages/widget/src/domain/types/chains/ledger.ts index 738dea4a9..e8d7417dc 100644 --- a/packages/widget/src/domain/types/chains/ledger.ts +++ b/packages/widget/src/domain/types/chains/ledger.ts @@ -96,10 +96,10 @@ export const supportedLedgerFamiliesWithCurrency = { family: "ethereum", skChainName: EvmNetworks.AvalancheC, }, - ethereum_holesky: { - currencyId: "ethereum_holesky", + ethereum_hoodi: { + currencyId: "ethereum_hoodi", family: "ethereum", - skChainName: EvmNetworks.EthereumHolesky, + skChainName: EvmNetworks.EthereumHoodi, }, bsc: { currencyId: "bsc", diff --git a/packages/widget/src/domain/types/chains/misc.ts b/packages/widget/src/domain/types/chains/misc.ts index b6fda87c2..749a3cb3d 100644 --- a/packages/widget/src/domain/types/chains/misc.ts +++ b/packages/widget/src/domain/types/chains/misc.ts @@ -1,5 +1,6 @@ import { MiscNetworks } from "@stakekit/common"; import type { Chain } from "@stakekit/rainbowkit"; +import type { KebabToCamelCase } from "../../../types/utils"; import { getTokenLogo } from "../../../utils"; const supportedMiscChains = [ @@ -132,3 +133,8 @@ export enum MiscChainIds { Tron = 79, Ton = 3412, } + +MiscChainIds satisfies Record< + Capitalize>, + number +>; diff --git a/packages/widget/src/domain/types/chains/substrate.ts b/packages/widget/src/domain/types/chains/substrate.ts index e356b56d8..1de515abc 100644 --- a/packages/widget/src/domain/types/chains/substrate.ts +++ b/packages/widget/src/domain/types/chains/substrate.ts @@ -1,5 +1,6 @@ import { SubstrateNetworks } from "@stakekit/common"; import type { Chain } from "@stakekit/rainbowkit"; +import type { KebabToCamelCase } from "../../../types/utils"; import { getNetworkLogo } from "../../../utils"; const supportedSubstrateChains = [ @@ -81,3 +82,8 @@ export enum SubstrateChainIds { Polkadot = 9999, Bittensor = 558, } + +SubstrateChainIds satisfies Record< + Capitalize>, + number +>; diff --git a/packages/widget/src/types/utils.ts b/packages/widget/src/types/utils.ts index 686d993b6..7e650014e 100644 --- a/packages/widget/src/types/utils.ts +++ b/packages/widget/src/types/utils.ts @@ -19,3 +19,8 @@ export type Action = D extends void : { type: T; data: D }; export type Nullable = T | undefined | null; + +export type KebabToCamelCase = + S extends `${infer P1}-${infer P2}${infer P3}` + ? `${P1}${Capitalize>}` + : S;