Skip to content

Commit

Permalink
Refactor/yeet-chaindataprovider-from-frontend (#1714)
Browse files Browse the repository at this point in the history
* refactor: use subscription message for tokens

* refactor: use subscription message for evm networks

* refactor: use subscription message for chains

* chore: remove chaindata requirement from getFrontendTypeRegistry function

* refactor: replace remaining use of chaindataprovider on frontend

* chore: mock api calls and remove extraneous token data from ethereumnetworks api response

* chore: changeset

* chore: remove chaindata hydration test
  • Loading branch information
chidg authored Nov 28, 2024
1 parent b18d4ab commit 0f4def6
Show file tree
Hide file tree
Showing 30 changed files with 1,168 additions and 562 deletions.
5 changes: 5 additions & 0 deletions .changeset/spicy-goats-tease.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@talismn/chaindata-provider": patch
---

Change types for EVM network to allow 'SimpleEvmNetwork' type for use in frontend
16 changes: 12 additions & 4 deletions apps/extension/src/ui/api/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,14 @@ import type { KeyringPair$Json } from "@polkadot/keyring/types"
import type { HexString } from "@polkadot/util/types"
import { KeypairType } from "@polkadot/util-crypto/types"
import { Address, BalanceJson } from "@talismn/balances"
import { ChainId, EvmNetworkId, TokenId } from "@talismn/chaindata-provider"
import {
Chain,
ChainId,
CustomChain,
EvmNetworkId,
Token,
TokenId,
} from "@talismn/chaindata-provider"
import { NsLookupType } from "@talismn/on-chain-id"
import { DbTokenRates } from "@talismn/token-rates"
import { MetadataDef } from "inject/substrate/types"
Expand Down Expand Up @@ -51,6 +58,7 @@ import {
SignerPayloadGenesisHash,
SignerPayloadJSON,
SigningRequestID,
SimpleEvmNetwork,
UnsubscribeFn,
ValidRequests,
WalletTransactionTransferInfo,
Expand Down Expand Up @@ -207,7 +215,7 @@ export default interface MessageTypes {
) => UnsubscribeFn

// chain message types
chains: (cb: () => void) => UnsubscribeFn
chains: (cb: (chains: Array<Chain | CustomChain>) => void) => UnsubscribeFn
chainUpsert: (chain: RequestUpsertCustomChain) => Promise<boolean>
chainRemove: (id: string) => Promise<boolean>
chainReset: (id: string) => Promise<boolean>
Expand All @@ -218,7 +226,7 @@ export default interface MessageTypes {
) => Promise<HexString>

// token message types
tokens: (cb: () => void) => UnsubscribeFn
tokens: (cb: (tokens: Token[]) => void) => UnsubscribeFn

// tokenRates message types
tokenRates: (cb: (rates: DbTokenRates[]) => void) => UnsubscribeFn
Expand Down Expand Up @@ -302,7 +310,7 @@ export default interface MessageTypes {
ethNetworkAddCancel: (is: AddEthereumChainRequestId) => Promise<boolean>

// ethereum networks message types
ethereumNetworks: (cb: () => void) => UnsubscribeFn
ethereumNetworks: (cb: (networks: Array<SimpleEvmNetwork>) => void) => UnsubscribeFn
ethNetworkUpsert: (network: RequestUpsertCustomEvmNetwork) => Promise<boolean>
ethNetworkRemove: (id: string) => Promise<boolean>
ethNetworkReset: (id: string) => Promise<boolean>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { useNavigate } from "react-router-dom"
import { useIntersection } from "react-use"
import { Button, ListButton, Modal, ModalDialog, Radio, Toggle, useOpenClose } from "talisman-ui"

import { activeEvmNetworksStore, EvmNetwork, isEvmNetworkActive } from "@extension/core"
import { activeEvmNetworksStore, isEvmNetworkActive, SimpleEvmNetwork } from "@extension/core"
import { SuspenseTracker } from "@talisman/components/SuspenseTracker"
import { sendAnalyticsEvent } from "@ui/api/analytics"
import { ChainLogo } from "@ui/domains/Asset/ChainLogo"
Expand Down Expand Up @@ -134,7 +134,7 @@ export const EvmNetworksList = ({ search }: { search?: string }) => {
const [filteredEvmNetworks, exactMatches] = useMemo(() => {
const lowerSearch = search?.toLowerCase() ?? ""

const filter = (network: EvmNetwork) => {
const filter = (network: SimpleEvmNetwork) => {
if (!lowerSearch)
return (
network.isDefault ||
Expand Down Expand Up @@ -174,7 +174,7 @@ export const EvmNetworksList = ({ search }: { search?: string }) => {
}, [exactMatches, filteredEvmNetworks])

const handleNetworkActiveChanged = useCallback(
(network: EvmNetwork) => (enable: boolean) => {
(network: SimpleEvmNetwork) => (enable: boolean) => {
activeEvmNetworksStore.setActive(network.id, enable)
},
[],
Expand Down Expand Up @@ -240,7 +240,7 @@ const EvmNetworksListItem = ({
isActive: isActive,
onEnableChanged,
}: {
network: EvmNetwork
network: SimpleEvmNetwork
isActive: boolean
onEnableChanged: (enable: boolean) => void
}) => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { CustomEvmNetwork, EvmNetwork, EvmNetworkId, Token } from "@talismn/chaindata-provider"
import { EvmNetworkId, SimpleEvmNetwork, Token } from "@talismn/chaindata-provider"
import { MoreHorizontalIcon, PlusIcon } from "@talismn/icons"
import sortBy from "lodash/sortBy"
import { FC, useCallback, useEffect, useMemo, useRef, useState } from "react"
Expand Down Expand Up @@ -172,7 +172,7 @@ const TokensTable: FC<{ tokens: Token[] }> = ({ tokens }) => {
)
}

const renderNetwork = (network: EvmNetwork | CustomEvmNetwork) => {
const renderNetwork = (network: SimpleEvmNetwork) => {
return (
<div className="flex items-center gap-5">
<NetworkLogo ethChainId={network.id} className="text-[1.25em]" />
Expand All @@ -186,11 +186,11 @@ const NetworkSelect = ({
selectedId,
onChange,
}: {
networks: (EvmNetwork | CustomEvmNetwork)[]
networks: SimpleEvmNetwork[]
selectedId: EvmNetworkId | null
onChange: (evmNetworkId: EvmNetworkId) => void
}) => {
const [selected, setSelected] = useState<EvmNetwork | CustomEvmNetwork | undefined>(
const [selected, setSelected] = useState<SimpleEvmNetwork | undefined>(
networks.find((n) => n.id === selectedId),
)

Expand All @@ -204,7 +204,7 @@ const NetworkSelect = ({
}, [selectedId, networks, selected])

const handleChange = useCallback(
(item: EvmNetwork | CustomEvmNetwork | null) => {
(item: SimpleEvmNetwork | null) => {
if (!item) return
setSelected(item)
if (onChange) onChange(item.id)
Expand Down Expand Up @@ -253,7 +253,7 @@ const Content = () => {
const toggleIsHidePools = useCallback(() => setIsHidePools((prev) => !prev), [])

const networkOptions = useMemo(() => {
return [{ id: "ALL", name: "All networks" } as EvmNetwork, ...sortBy(evmNetworks, "name")]
return [{ id: "ALL", name: "All networks" } as SimpleEvmNetwork, ...sortBy(evmNetworks, "name")]
}, [evmNetworks])
const [evmNetworkId, setEvmNetworkId] = useState<EvmNetworkId>("ALL")

Expand Down
8 changes: 4 additions & 4 deletions apps/extension/src/ui/domains/Ethereum/NetworkSelect.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { useCallback, useEffect, useState } from "react"
import { Dropdown } from "talisman-ui"

import { CustomEvmNetwork, EvmNetwork, EvmNetworkId } from "@extension/core"
import { EvmNetworkId, SimpleEvmNetwork } from "@extension/core"
import { useSortedEvmNetworks } from "@ui/hooks/useSortedEvmNetworks"

import { NetworkLogo } from "./NetworkLogo"
Expand All @@ -15,7 +15,7 @@ type NetworkSelectProps = {
withTestnets: boolean
}

const renderNetwork = (network: EvmNetwork | CustomEvmNetwork) => {
const renderNetwork = (network: SimpleEvmNetwork) => {
return (
<div className="flex items-center gap-5">
<NetworkLogo ethChainId={network.id} className="text-[1.25em]" />
Expand All @@ -33,7 +33,7 @@ export const NetworkSelect = ({
withTestnets,
}: NetworkSelectProps) => {
const networks = useSortedEvmNetworks(withTestnets)
const [selected, setSelected] = useState<EvmNetwork | CustomEvmNetwork | undefined>(
const [selected, setSelected] = useState<SimpleEvmNetwork | undefined>(
networks.find((n) => n.id === defaultChainId),
)

Expand All @@ -47,7 +47,7 @@ export const NetworkSelect = ({
}, [defaultChainId, networks, selected])

const handleChange = useCallback(
(item: EvmNetwork | CustomEvmNetwork | null) => {
(item: SimpleEvmNetwork | null) => {
if (!item) return
setSelected(item)
if (onChange) onChange(item.id)
Expand Down
176 changes: 0 additions & 176 deletions apps/extension/src/ui/domains/Sign/SignDcentEthereum.tsx

This file was deleted.

Loading

0 comments on commit 0f4def6

Please sign in to comment.