From ea2abed4cf9e56389966b15c3373fa1bd6878248 Mon Sep 17 00:00:00 2001 From: Nikos Kontakis Date: Wed, 11 Sep 2024 01:04:14 +0300 Subject: [PATCH 01/14] Add people parachain --- .papi/descriptors/package.json | 2 +- .papi/metadata/dotPeople.scale | Bin 0 -> 123798 bytes .papi/metadata/ksmPeople.scale | Bin 0 -> 170274 bytes .papi/metadata/westend.scale | Bin 422188 -> 427287 bytes .papi/metadata/westendPeople.scale | Bin 0 -> 160964 bytes .papi/polkadot-api.json | 14 ++++- src/components/clients.tsx | 20 +++++++ src/components/ui/address-display.tsx | 16 ++++++ src/contexts/NetworkContext.tsx | 78 +++++++++++++++++++++++++- 9 files changed, 126 insertions(+), 4 deletions(-) create mode 100644 .papi/metadata/dotPeople.scale create mode 100644 .papi/metadata/ksmPeople.scale create mode 100644 .papi/metadata/westendPeople.scale create mode 100644 src/components/clients.tsx diff --git a/.papi/descriptors/package.json b/.papi/descriptors/package.json index 61ccbaa..f40f0aa 100644 --- a/.papi/descriptors/package.json +++ b/.papi/descriptors/package.json @@ -1,5 +1,5 @@ { - "version": "0.1.0-autogenerated.9019692316970856612", + "version": "0.1.0-autogenerated.1693958661580142564", "name": "@polkadot-api/descriptors", "files": [ "dist" diff --git a/.papi/metadata/dotPeople.scale b/.papi/metadata/dotPeople.scale new file mode 100644 index 0000000000000000000000000000000000000000..add64f34b63f590f4976675e9f9b50df0625e987 GIT binary patch literal 123798 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

xXCl-5k=^b2k~**+I`hK@OKG_wraK?V4;421B# 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µvlCpk`UVJ9#7f99!N`Txlos-%qCp1DY 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 delta 37893 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 YmRT^}-84InGz3w|X7_1z-oakpKVy diff --git a/.papi/metadata/westendPeople.scale b/.papi/metadata/westendPeople.scale new file mode 100644 index 0000000000000000000000000000000000000000..035562d19b9f3043f21376378237def01521083e GIT binary patch literal 160964 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 z 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 literal 0 HcmV?d00001 diff --git a/.papi/polkadot-api.json b/.papi/polkadot-api.json index ce0bae8..dd4020e 100644 --- a/.papi/polkadot-api.json +++ b/.papi/polkadot-api.json @@ -17,6 +17,18 @@ "westend": { "chain": "westend2", "metadata": ".papi/metadata/westend.scale" + }, + "dotPeople": { + "chain": "polkadot_people", + "metadata": ".papi/metadata/dotPeople.scale" + }, + "ksmPeople": { + "chain": "ksmcc3_people", + "metadata": ".papi/metadata/ksmPeople.scale" + }, + "westendPeople": { + "chain": "westend2_people", + "metadata": ".papi/metadata/westendPeople.scale" } } -} +} \ No newline at end of file diff --git a/src/components/clients.tsx b/src/components/clients.tsx new file mode 100644 index 0000000..bcd73fa --- /dev/null +++ b/src/components/clients.tsx @@ -0,0 +1,20 @@ +import { + SupportedPeopleNetworkNames, + descriptorPeopleName, +} from '@/contexts/NetworkContext' +import { SELECTED_NETWORK_KEY } from '@/lib/constants' +import { createClient } from 'polkadot-api' +import { getWsProvider } from 'polkadot-api/ws-provider/web' + +const network = localStorage.getItem(SELECTED_NETWORK_KEY) || 'polkadot' + +const peopleClient = createClient( + getWsProvider('wss://rpc-people-polkadot.luckyfriday.io'), +) + +const peopleNetwork = 'people-'.concat( + network.replace('-lc', ''), +) as SupportedPeopleNetworkNames + +const descriptorPeople = descriptorPeopleName[peopleNetwork!] +export const peopleApi = peopleClient.getTypedApi(descriptorPeople) diff --git a/src/components/ui/address-display.tsx b/src/components/ui/address-display.tsx index a98c52c..9b2e050 100644 --- a/src/components/ui/address-display.tsx +++ b/src/components/ui/address-display.tsx @@ -1,5 +1,8 @@ +import { useNetwork } from '@/contexts/NetworkContext' import { cn } from '@/lib/utils' import { Polkicon } from '@polkadot-ui/react' +import { SS58String } from 'polkadot-api' +import { useEffect } from 'react' type Props = { address: string @@ -8,6 +11,19 @@ type Props = { } export const AddressDisplay = ({ address, size, className = '' }: Props) => { + const { peopleApi } = useNetwork() + + useEffect(() => { + const retrieve = async () => { + console.log(address) + const id = await peopleApi?.query.Identity.IdentityOf.getValues([ + [address as SS58String], + ]) + console.log('id:', id) + } + retrieve() + }, [address, peopleApi]) + return (

diff --git a/src/contexts/NetworkContext.tsx b/src/contexts/NetworkContext.tsx index 2416f42..ff6a2a8 100644 --- a/src/contexts/NetworkContext.tsx +++ b/src/contexts/NetworkContext.tsx @@ -6,7 +6,15 @@ import { useEffect, useState, } from 'react' -import { dot, fastWestend, ksm, westend } from '@polkadot-api/descriptors' +import { + dot, + dotPeople, + fastWestend, + ksm, + ksmPeople, + westend, + westendPeople, +} from '@polkadot-api/descriptors' import { ChainDefinition, PolkadotClient, @@ -30,11 +38,18 @@ type NetworkContextProps = { children: React.ReactNode | React.ReactNode[] } export type NetworksFromConfig = keyof typeof networks +export type SupportedPeopleNetworkNames = + | 'people-polkadot' + | 'people-kusama' + | 'people-westend' + | 'people-fast-westend' + export type SupportedNetworkNames = | 'polkadot-lc' | 'kusama-lc' | NetworksFromConfig export type ApiType = TypedApi +export type PeopleApiType = TypedApi export const descriptorName: Record = { polkadot: dot, @@ -44,6 +59,15 @@ export const descriptorName: Record = { westend: westend, 'fast-westend': fastWestend, } +export const descriptorPeopleName: Record< + SupportedPeopleNetworkNames, + ChainDefinition +> = { + 'people-polkadot': dotPeople, + 'people-kusama': ksmPeople, + 'people-westend': westendPeople, + 'people-fast-westend': westendPeople, +} export type TrackList = Record @@ -53,7 +77,12 @@ export interface INetworkContext { selectNetwork: (network: string, shouldResetAccountAddress?: boolean) => void client: PolkadotClient | undefined api: TypedApi | undefined + peopleApi: + | TypedApi + | undefined + peopleClient: PolkadotClient | undefined network?: SupportedNetworkNames + peopleNetwork?: SupportedPeopleNetworkNames assetInfo: AssetType trackList: TrackList } @@ -74,22 +103,38 @@ const NetworkContextProvider = ({ children }: NetworkContextProps) => { const [lightClientLoaded, setLightClientLoaded] = useState(false) const [isLight, setIsLight] = useState(false) const [client, setClient] = useState() + const [peopleClient, setPeopleClient] = useState() const [api, setApi] = useState() + const [peopleApi, setPeopleApi] = useState() const [trackList, setTrackList] = useState({}) const [assetInfo, setAssetInfo] = useState({} as AssetType) const [network, setNetwork] = useState() + const [peopleNetwork, setPeopleNetwork] = useState< + SupportedPeopleNetworkNames | undefined + >() const [searchParams, setSearchParams] = useSearchParams({ network: '' }) + const selectPeopleNetork = (network: string) => { + setPeopleNetwork( + 'people-'.concat( + network.replace('-lc', ''), + ) as SupportedPeopleNetworkNames, + ) + } + const selectNetwork = useCallback( (network: string) => { if (!isSupportedNetwork(network)) { console.error('This network is not supported', network) selectNetwork(DEFAULT_NETWORK) + selectPeopleNetork(DEFAULT_NETWORK) return } setNetwork(network) + selectPeopleNetork(network) + setSearchParams((prev) => { prev.set('network', network) return prev @@ -109,6 +154,7 @@ const NetworkContextProvider = ({ children }: NetworkContextProps) => { queryStringNetwork || localStorageNetwork || DEFAULT_NETWORK selectNetwork(selected) + selectPeopleNetork(selected) } }, [localStorageNetwork, network, searchParams, selectNetwork]) @@ -116,6 +162,7 @@ const NetworkContextProvider = ({ children }: NetworkContextProps) => { if (!network) return let client: PolkadotClient + let peopleClient: PolkadotClient if (network === 'polkadot-lc' || network === 'kusama-lc') { const relay = network === 'polkadot-lc' ? 'polkadot' : 'kusama' @@ -125,31 +172,56 @@ const NetworkContextProvider = ({ children }: NetworkContextProps) => { setIsLight(true) const smoldot = startFromWorker(new SmWorker()) let relayChain: Promise + let peopleChain: Promise if (relay === 'polkadot') { relayChain = import('polkadot-api/chains/polkadot').then( ({ chainSpec }) => smoldot.addChain({ chainSpec }), ) + + peopleChain = Promise.all([ + relayChain, + import('polkadot-api/chains/polkadot_people'), + ]).then(([relayChain, { chainSpec }]) => + smoldot.addChain({ chainSpec, potentialRelayChains: [relayChain] }), + ) } else { relayChain = import('polkadot-api/chains/ksmcc3').then( ({ chainSpec }) => smoldot.addChain({ chainSpec }), ) + + peopleChain = Promise.all([ + relayChain, + import('polkadot-api/chains/ksmcc3_people'), + ]).then(([relayChain, { chainSpec }]) => + smoldot.addChain({ chainSpec, potentialRelayChains: [relayChain] }), + ) } client = createClient(getSmProvider(relayChain)) + peopleClient = createClient(getSmProvider(peopleChain)) } else { const { assetInfo, wsEndpoint } = getChainInformation(network) setAssetInfo(assetInfo) setIsLight(false) client = createClient(getWsProvider(wsEndpoint)) + // TODO: Fix the RPCs + peopleClient = createClient( + getWsProvider('wss://rpc-people-polkadot.luckyfriday.io'), + ) } const descriptor = descriptorName[network] const typedApi = client.getTypedApi(descriptor) + const descriptorPeople = descriptorPeopleName[peopleNetwork!] + const typedPeopleApi = client.getTypedApi(descriptorPeople) + setClient(client) + setPeopleClient(peopleClient) setApi(typedApi) - }, [network]) + setPeopleApi(typedPeopleApi) + }, [network, peopleNetwork]) useEffect(() => { if (isLight) { @@ -185,6 +257,8 @@ const NetworkContextProvider = ({ children }: NetworkContextProps) => { selectNetwork, client, api, + peopleClient, + peopleApi, assetInfo, trackList, }} From 355a17975d8a0ebbecc8e81d5ca1dcd6e2d6385b Mon Sep 17 00:00:00 2001 From: Nikos Kontakis Date: Wed, 11 Sep 2024 01:07:33 +0300 Subject: [PATCH 02/14] remove clients file --- src/components/clients.tsx | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 src/components/clients.tsx diff --git a/src/components/clients.tsx b/src/components/clients.tsx deleted file mode 100644 index bcd73fa..0000000 --- a/src/components/clients.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { - SupportedPeopleNetworkNames, - descriptorPeopleName, -} from '@/contexts/NetworkContext' -import { SELECTED_NETWORK_KEY } from '@/lib/constants' -import { createClient } from 'polkadot-api' -import { getWsProvider } from 'polkadot-api/ws-provider/web' - -const network = localStorage.getItem(SELECTED_NETWORK_KEY) || 'polkadot' - -const peopleClient = createClient( - getWsProvider('wss://rpc-people-polkadot.luckyfriday.io'), -) - -const peopleNetwork = 'people-'.concat( - network.replace('-lc', ''), -) as SupportedPeopleNetworkNames - -const descriptorPeople = descriptorPeopleName[peopleNetwork!] -export const peopleApi = peopleClient.getTypedApi(descriptorPeople) From 3d73516d4364b4fbc6931b1da1194f5ca6c65a29 Mon Sep 17 00:00:00 2001 From: Nikos Kontakis Date: Thu, 12 Sep 2024 01:00:23 +0300 Subject: [PATCH 03/14] Fix the people chain --- src/components/ui/address-display.tsx | 8 ++++---- src/contexts/NetworkContext.tsx | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/ui/address-display.tsx b/src/components/ui/address-display.tsx index 9b2e050..5949471 100644 --- a/src/components/ui/address-display.tsx +++ b/src/components/ui/address-display.tsx @@ -16,10 +16,10 @@ export const AddressDisplay = ({ address, size, className = '' }: Props) => { useEffect(() => { const retrieve = async () => { console.log(address) - const id = await peopleApi?.query.Identity.IdentityOf.getValues([ - [address as SS58String], - ]) - console.log('id:', id) + const some = await peopleApi?.query.Identity.IdentityOf.getValue( + address as SS58String, + ) + console.log('some', some) } retrieve() }, [address, peopleApi]) diff --git a/src/contexts/NetworkContext.tsx b/src/contexts/NetworkContext.tsx index ff6a2a8..a766fdf 100644 --- a/src/contexts/NetworkContext.tsx +++ b/src/contexts/NetworkContext.tsx @@ -215,7 +215,7 @@ const NetworkContextProvider = ({ children }: NetworkContextProps) => { const typedApi = client.getTypedApi(descriptor) const descriptorPeople = descriptorPeopleName[peopleNetwork!] - const typedPeopleApi = client.getTypedApi(descriptorPeople) + const typedPeopleApi = peopleClient.getTypedApi(descriptorPeople) setClient(client) setPeopleClient(peopleClient) From 9c2d118268e01fd113e53b726ea1207fc40ba3b4 Mon Sep 17 00:00:00 2001 From: Nikos Kontakis Date: Tue, 17 Sep 2024 00:38:45 +0300 Subject: [PATCH 04/14] Tmp people parachain --- src/components/ui/address-display.tsx | 20 +++++++++------ src/contexts/NetworkContext.tsx | 2 +- src/lib/utils.ts | 37 +++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 9 deletions(-) diff --git a/src/components/ui/address-display.tsx b/src/components/ui/address-display.tsx index 5949471..832aa7f 100644 --- a/src/components/ui/address-display.tsx +++ b/src/components/ui/address-display.tsx @@ -1,8 +1,9 @@ +import type { WestendPeopleQueries } from '@polkadot-api/descriptors' import { useNetwork } from '@/contexts/NetworkContext' import { cn } from '@/lib/utils' import { Polkicon } from '@polkadot-ui/react' -import { SS58String } from 'polkadot-api' -import { useEffect } from 'react' +import { Binary } from 'polkadot-api' +import { useEffect, useState } from 'react' type Props = { address: string @@ -13,13 +14,16 @@ type Props = { export const AddressDisplay = ({ address, size, className = '' }: Props) => { const { peopleApi } = useNetwork() + const [identity, setIdentity] = useState() + useEffect(() => { const retrieve = async () => { - console.log(address) - const some = await peopleApi?.query.Identity.IdentityOf.getValue( - address as SS58String, - ) - console.log('some', some) + console.log('address', address) + const id = await peopleApi?.query?.Identity.IdentityOf.getValue(address) + setIdentity({ + address, + ...mapRawIdentity(id), + }) } retrieve() }, [address, peopleApi]) @@ -28,7 +32,7 @@ export const AddressDisplay = ({ address, size, className = '' }: Props) => {
- {address.slice(0, 6) + '...' + address.slice(-6)} + {identity?.display || address.slice(0, 6) + '...' + address.slice(-6)}
) diff --git a/src/contexts/NetworkContext.tsx b/src/contexts/NetworkContext.tsx index a766fdf..b1581e6 100644 --- a/src/contexts/NetworkContext.tsx +++ b/src/contexts/NetworkContext.tsx @@ -207,7 +207,7 @@ const NetworkContextProvider = ({ children }: NetworkContextProps) => { client = createClient(getWsProvider(wsEndpoint)) // TODO: Fix the RPCs peopleClient = createClient( - getWsProvider('wss://rpc-people-polkadot.luckyfriday.io'), + getWsProvider('wss://sys.ibp.network/people-westend'), ) } diff --git a/src/lib/utils.ts b/src/lib/utils.ts index 1fae7bd..d73129f 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -7,6 +7,8 @@ import type { NetworkType, RouterType, Vote } from './types' import { ApiType, NetworksFromConfig } from '@/contexts/NetworkContext' import { DEFAULT_TIME, lockPeriod, ONE_DAY, THRESHOLD } from './constants' import { bnMin } from './bnMin' +import { WestendPeopleQueries } from '@polkadot-api/descriptors' +import { Binary } from 'polkadot-api' export const cn = (...inputs: ClassValue[]) => { return twMerge(clsx(inputs)) @@ -99,3 +101,38 @@ export const shuffleArray = (arrayToShuffle: unknown[]) => { return array } + +// PEOPLE CHAIN RELATED + +export type AccountInfoIF = { + address: string | number | undefined + display?: string | number | undefined + legal?: string | number | undefined + matrix?: string | number | undefined + email?: string | number | undefined + twitter?: string | number | undefined + web?: string | number | undefined +} + +const dataToString = (value: number | string | Binary | undefined) => + typeof value === 'object' ? value.asText() : (value ?? '') + +export const mapRawIdentity = ( + rawIdentity?: WestendPeopleQueries['Identity']['IdentityOf']['Value'], +) => { + if (!rawIdentity) return rawIdentity + const { + info: { display, email, legal, matrix, twitter, web }, + } = rawIdentity[0] + + const display_id = dataToString(display.value) + + return { + display: display_id, + web: dataToString(web.value), + email: dataToString(email.value), + legal: dataToString(legal.value), + matrix: dataToString(matrix.value), + twitter: dataToString(twitter.value), + } +} From 300cff94aec52da1ea0670d6c2b622ed8698ca14 Mon Sep 17 00:00:00 2001 From: Nikos Kontakis Date: Tue, 17 Sep 2024 15:21:00 +0300 Subject: [PATCH 05/14] minor --- src/components/DelegateCard.tsx | 52 ++++++++++++++++++++++----- src/components/ui/address-display.tsx | 4 +-- src/contexts/NetworkContext.tsx | 15 ++++++-- src/lib/utils.ts | 4 +-- src/pages/Delegate/index.tsx | 19 +++++++++- 5 files changed, 77 insertions(+), 17 deletions(-) diff --git a/src/components/DelegateCard.tsx b/src/components/DelegateCard.tsx index 7635816..0c6e848 100644 --- a/src/components/DelegateCard.tsx +++ b/src/components/DelegateCard.tsx @@ -3,15 +3,19 @@ import { Card } from '@/components/ui/card' import { useLocation, useNavigate } from 'react-router-dom' import { Delegate } from '@/contexts/DelegatesContext' import { ContentReveal } from './ui/content-reveal' -import { cn } from '@/lib/utils' +import { AccountInfoIF, cn } from '@/lib/utils' import { toast } from 'sonner' -import { LinkIcon } from 'lucide-react' +import { LinkIcon, Mail } from 'lucide-react' +import { BsTwitterX } from 'react-icons/bs' + import Markdown from 'react-markdown' import { Title, TitleH2, TitleH3 } from './ui/title' import { AnchorLink } from './ui/anchorLink' +import { TbWorldWww } from 'react-icons/tb' interface Props { delegate: Delegate + identity?: AccountInfoIF className?: string hasShareButton?: boolean hasDelegateButton?: boolean @@ -19,10 +23,12 @@ interface Props { export const DelegateCard = ({ delegate: { address, longDescription, shortDescription, image, name }, + identity, className, hasShareButton, hasDelegateButton = true, }: Props) => { + console.log(identity) const navigate = useNavigate() const { search } = useLocation() const shouldHideLongDescription = @@ -47,12 +53,42 @@ export const DelegateCard = ({
-
- {name} - {hasShareButton && ( - +
diff --git a/src/components/ui/address-display.tsx b/src/components/ui/address-display.tsx index 832aa7f..f25163b 100644 --- a/src/components/ui/address-display.tsx +++ b/src/components/ui/address-display.tsx @@ -1,8 +1,6 @@ -import type { WestendPeopleQueries } from '@polkadot-api/descriptors' import { useNetwork } from '@/contexts/NetworkContext' -import { cn } from '@/lib/utils' +import { AccountInfoIF, cn, mapRawIdentity } from '@/lib/utils' import { Polkicon } from '@polkadot-ui/react' -import { Binary } from 'polkadot-api' import { useEffect, useState } from 'react' type Props = { diff --git a/src/contexts/NetworkContext.tsx b/src/contexts/NetworkContext.tsx index b1581e6..e52b164 100644 --- a/src/contexts/NetworkContext.tsx +++ b/src/contexts/NetworkContext.tsx @@ -206,9 +206,18 @@ const NetworkContextProvider = ({ children }: NetworkContextProps) => { client = createClient(getWsProvider(wsEndpoint)) // TODO: Fix the RPCs - peopleClient = createClient( - getWsProvider('wss://sys.ibp.network/people-westend'), - ) + + console.log(network) + let wss: string = '' + if (network === 'polkadot') { + wss = 'wss://polkadot-people-rpc.polkadot.io' + } else if (network === 'kusama') { + wss = 'wss://people-kusama-rpc.dwellir.com' + } else { + wss = 'wss://sys.ibp.network/people-westend' + } + console.log(wss) + peopleClient = createClient(getWsProvider(wss)) } const descriptor = descriptorName[network] diff --git a/src/lib/utils.ts b/src/lib/utils.ts index d73129f..eb97dcd 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -7,7 +7,7 @@ import type { NetworkType, RouterType, Vote } from './types' import { ApiType, NetworksFromConfig } from '@/contexts/NetworkContext' import { DEFAULT_TIME, lockPeriod, ONE_DAY, THRESHOLD } from './constants' import { bnMin } from './bnMin' -import { WestendPeopleQueries } from '@polkadot-api/descriptors' +import { DotPeopleQueries } from '@polkadot-api/descriptors' import { Binary } from 'polkadot-api' export const cn = (...inputs: ClassValue[]) => { @@ -118,7 +118,7 @@ const dataToString = (value: number | string | Binary | undefined) => typeof value === 'object' ? value.asText() : (value ?? '') export const mapRawIdentity = ( - rawIdentity?: WestendPeopleQueries['Identity']['IdentityOf']['Value'], + rawIdentity?: DotPeopleQueries['Identity']['IdentityOf']['Value'], ) => { if (!rawIdentity) return rawIdentity const { diff --git a/src/pages/Delegate/index.tsx b/src/pages/Delegate/index.tsx index 57daa61..f547c48 100644 --- a/src/pages/Delegate/index.tsx +++ b/src/pages/Delegate/index.tsx @@ -19,9 +19,10 @@ import { MultiTransactionDialog } from './MultiTransactionDialog' import { useGetSigningCallback } from '@/hooks/useGetSigningCallback' import { Title } from '@/components/ui/title' import { DelegateCard } from '@/components/DelegateCard' +import { AccountInfoIF, mapRawIdentity } from '@/lib/utils' export const Delegate = () => { - const { api, assetInfo } = useNetwork() + const { api, peopleApi, assetInfo } = useNetwork() const { address } = useParams() const { getConvictionLockTimeDisplay } = useLocks() @@ -84,6 +85,21 @@ export const Delegate = () => { setAmountVisible('0') }, [api]) + const [identity, setIdentity] = useState() + + useEffect(() => { + const retrieve = async () => { + const id = await peopleApi?.query?.Identity.IdentityOf.getValue(address!) + + console.log('ID', id) + setIdentity({ + address, + ...mapRawIdentity(id), + }) + } + address && retrieve() + }, [address, peopleApi]) + useEffect(() => { if (!address || delegate) return @@ -201,6 +217,7 @@ export const Delegate = () => { Delegate to {delegate.name}
Date: Mon, 23 Sep 2024 20:54:47 +0300 Subject: [PATCH 06/14] Finalize identity integration --- src/components/DelegateCard.tsx | 37 ++------------ src/components/IdentityInfo.tsx | 72 +++++++++++++++++++++++++++ src/components/ui/address-display.tsx | 10 ++-- src/lib/utils.ts | 22 +++++++- src/pages/Delegate/index.tsx | 1 - 5 files changed, 98 insertions(+), 44 deletions(-) create mode 100644 src/components/IdentityInfo.tsx diff --git a/src/components/DelegateCard.tsx b/src/components/DelegateCard.tsx index de3d32a..9f010bc 100644 --- a/src/components/DelegateCard.tsx +++ b/src/components/DelegateCard.tsx @@ -7,14 +7,13 @@ import { AccountInfoIF, cn } from '@/lib/utils' import { sanitizeString } from '@/lib/utils' import { useNetwork } from '@/contexts/NetworkContext' import { toast } from 'sonner' -import { LinkIcon, Mail } from 'lucide-react' -import { BsTwitterX } from 'react-icons/bs' +import { LinkIcon } from 'lucide-react' import Markdown from 'react-markdown' import { H, H2, H3, Hr, P } from './ui/md' import { AnchorLink } from './ui/anchorLink' -import { TbWorldWww } from 'react-icons/tb' import { useCallback, useMemo } from 'react' +import { IdentityInfo } from './IdentityInfo' interface Props { delegate: Delegate @@ -26,12 +25,10 @@ interface Props { export const DelegateCard = ({ delegate: { address, longDescription, shortDescription, image, name }, - identity, className, hasShareButton, hasDelegateButton = true, }: Props) => { - console.log(identity) const { network } = useNetwork() const navigate = useNavigate() const { search } = useLocation() @@ -74,41 +71,13 @@ export const DelegateCard = ({
- {name} + {hasShareButton && ( )}
- {!!identity && ( -
- {identity?.web && ( - - window.open(identity?.web as string, '_blank') - } - /> - )} - {identity?.twitter && ( - - window.open( - `https://twitter.com/@${identity?.twitter}`, - '_blank', - ) - } - /> - )} - {identity?.email && ( - - - - )} -
- )}
{shortDescription}
diff --git a/src/components/IdentityInfo.tsx b/src/components/IdentityInfo.tsx new file mode 100644 index 0000000..fea6e28 --- /dev/null +++ b/src/components/IdentityInfo.tsx @@ -0,0 +1,72 @@ +import { AccountInfoIF, retrieveIdentity } from '@/lib/utils' +import { BsTwitterX } from 'react-icons/bs' +import { IoCheckmarkCircle, IoMail } from 'react-icons/io5' +import { TbWorld } from 'react-icons/tb' +import { Button } from './ui/button' +import { useState, useEffect } from 'react' +import { useNetwork } from '@/contexts/NetworkContext' + +interface Props { + name: string + address: string +} + +export const IdentityInfo = ({ name, address }: Props) => { + const { peopleApi } = useNetwork() + const [identity, setIdentity] = useState() + + useEffect(() => { + const retrieve = async () => { + const id = await retrieveIdentity(peopleApi, address) + setIdentity(id) + } + retrieve() + }, [address, peopleApi]) + + return ( + <> + {identity?.display ? ( +
+ {identity?.display} + +
+ ) : ( + name + )} + {identity ? ( +
+ {identity?.web && ( + + )} + {identity?.twitter && ( + + )} + {identity?.email && ( + + )} +
+ ) : null} + + ) +} diff --git a/src/components/ui/address-display.tsx b/src/components/ui/address-display.tsx index f25163b..a0d80e8 100644 --- a/src/components/ui/address-display.tsx +++ b/src/components/ui/address-display.tsx @@ -1,5 +1,5 @@ import { useNetwork } from '@/contexts/NetworkContext' -import { AccountInfoIF, cn, mapRawIdentity } from '@/lib/utils' +import { AccountInfoIF, cn, retrieveIdentity } from '@/lib/utils' import { Polkicon } from '@polkadot-ui/react' import { useEffect, useState } from 'react' @@ -16,12 +16,8 @@ export const AddressDisplay = ({ address, size, className = '' }: Props) => { useEffect(() => { const retrieve = async () => { - console.log('address', address) - const id = await peopleApi?.query?.Identity.IdentityOf.getValue(address) - setIdentity({ - address, - ...mapRawIdentity(id), - }) + const id = await retrieveIdentity(peopleApi, address) + setIdentity(id) } retrieve() }, [address, peopleApi]) diff --git a/src/lib/utils.ts b/src/lib/utils.ts index f1c8d98..5cc2c33 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -7,8 +7,13 @@ import type { NetworkType, RouterType, Vote } from './types' import { ApiType, NetworksFromConfig } from '@/contexts/NetworkContext' import { DEFAULT_TIME, lockPeriod, ONE_DAY, THRESHOLD } from './constants' import { bnMin } from './bnMin' -import { DotPeopleQueries } from '@polkadot-api/descriptors' -import { Binary } from 'polkadot-api' +import { + DotPeopleQueries, + dotPeople, + ksmPeople, + westendPeople, +} from '@polkadot-api/descriptors' +import { Binary, TypedApi } from 'polkadot-api' export const cn = (...inputs: ClassValue[]) => { return twMerge(clsx(inputs)) @@ -147,3 +152,16 @@ export const mapRawIdentity = ( twitter: dataToString(twitter.value), } } + +export const retrieveIdentity = async ( + peopleApi: + | TypedApi + | undefined, + address: string, +) => { + const id = await peopleApi?.query?.Identity.IdentityOf.getValue(address) + return { + address, + ...mapRawIdentity(id), + } +} diff --git a/src/pages/Delegate/index.tsx b/src/pages/Delegate/index.tsx index 4424e3a..3f3489d 100644 --- a/src/pages/Delegate/index.tsx +++ b/src/pages/Delegate/index.tsx @@ -108,7 +108,6 @@ export const Delegate = () => { const retrieve = async () => { const id = await peopleApi?.query?.Identity.IdentityOf.getValue(address!) - console.log('ID', id) setIdentity({ address, ...mapRawIdentity(id), From f4474414e7e842845eec125852cc489b960cab32 Mon Sep 17 00:00:00 2001 From: Nikos Kontakis Date: Tue, 24 Sep 2024 11:42:55 +0300 Subject: [PATCH 07/14] Address comments --- src/components/DelegateCard.tsx | 3 +- src/components/IdentityInfo.tsx | 30 ++++----- src/components/ui/address-display.tsx | 17 +----- src/contexts/AccountsContext.tsx | 3 +- src/hooks/useIdentity.tsx | 61 +++++++++++++++++++ src/lib/utils.ts | 87 +++++++++++---------------- src/pages/Delegate/index.tsx | 18 +----- 7 files changed, 116 insertions(+), 103 deletions(-) create mode 100644 src/hooks/useIdentity.tsx diff --git a/src/components/DelegateCard.tsx b/src/components/DelegateCard.tsx index 9f010bc..c58d05b 100644 --- a/src/components/DelegateCard.tsx +++ b/src/components/DelegateCard.tsx @@ -3,7 +3,7 @@ import { Card } from '@/components/ui/card' import { useLocation, useNavigate } from 'react-router-dom' import { Delegate } from '@/contexts/DelegatesContext' import { ContentReveal } from './ui/content-reveal' -import { AccountInfoIF, cn } from '@/lib/utils' +import { cn } from '@/lib/utils' import { sanitizeString } from '@/lib/utils' import { useNetwork } from '@/contexts/NetworkContext' import { toast } from 'sonner' @@ -17,7 +17,6 @@ import { IdentityInfo } from './IdentityInfo' interface Props { delegate: Delegate - identity?: AccountInfoIF className?: string hasShareButton?: boolean hasDelegateButton?: boolean diff --git a/src/components/IdentityInfo.tsx b/src/components/IdentityInfo.tsx index fea6e28..c95f7ce 100644 --- a/src/components/IdentityInfo.tsx +++ b/src/components/IdentityInfo.tsx @@ -1,10 +1,9 @@ -import { AccountInfoIF, retrieveIdentity } from '@/lib/utils' import { BsTwitterX } from 'react-icons/bs' import { IoCheckmarkCircle, IoMail } from 'react-icons/io5' import { TbWorld } from 'react-icons/tb' import { Button } from './ui/button' -import { useState, useEffect } from 'react' -import { useNetwork } from '@/contexts/NetworkContext' +import { useIdentity } from '@/hooks/useIdentity' +import { TbCircleDashedMinus } from 'react-icons/tb' interface Props { name: string @@ -12,29 +11,26 @@ interface Props { } export const IdentityInfo = ({ name, address }: Props) => { - const { peopleApi } = useNetwork() - const [identity, setIdentity] = useState() - - useEffect(() => { - const retrieve = async () => { - const id = await retrieveIdentity(peopleApi, address) - setIdentity(id) - } - retrieve() - }, [address, peopleApi]) + const identity = useIdentity(address) return ( <> {identity?.display ? (
{identity?.display} - + {identity?.judgement ? ( + + ) : ( + + )}
) : ( name )} - {identity ? ( -
+ {identity && ( +
{identity?.web && ( )}
- ) : null} + )} ) } diff --git a/src/components/ui/address-display.tsx b/src/components/ui/address-display.tsx index a0d80e8..5c4db08 100644 --- a/src/components/ui/address-display.tsx +++ b/src/components/ui/address-display.tsx @@ -1,7 +1,6 @@ -import { useNetwork } from '@/contexts/NetworkContext' -import { AccountInfoIF, cn, retrieveIdentity } from '@/lib/utils' +import { useIdentity } from '@/hooks/useIdentity' +import { cn } from '@/lib/utils' import { Polkicon } from '@polkadot-ui/react' -import { useEffect, useState } from 'react' type Props = { address: string @@ -10,17 +9,7 @@ type Props = { } export const AddressDisplay = ({ address, size, className = '' }: Props) => { - const { peopleApi } = useNetwork() - - const [identity, setIdentity] = useState() - - useEffect(() => { - const retrieve = async () => { - const id = await retrieveIdentity(peopleApi, address) - setIdentity(id) - } - retrieve() - }, [address, peopleApi]) + const identity = useIdentity(address) return (
diff --git a/src/contexts/AccountsContext.tsx b/src/contexts/AccountsContext.tsx index 890c2e0..dc36a0c 100644 --- a/src/contexts/AccountsContext.tsx +++ b/src/contexts/AccountsContext.tsx @@ -50,7 +50,8 @@ const AccountContextProvider = ({ children }: AccountContextProps) => { useEffect(() => { if (localStorageAccount) { const account = accounts.find( - (account) => account.address === localStorageAccount, + (account: { address: string }) => + account.address === localStorageAccount, ) if (account) { selectAccount(account) diff --git a/src/hooks/useIdentity.tsx b/src/hooks/useIdentity.tsx new file mode 100644 index 0000000..4833450 --- /dev/null +++ b/src/hooks/useIdentity.tsx @@ -0,0 +1,61 @@ +import { useNetwork } from '@/contexts/NetworkContext' +import { + AccountInfoIF, + acceptedJudgement, + notAcceptedJudgement, +} from '@/lib/utils' +import { DotPeopleQueries, IdentityJudgement } from '@polkadot-api/descriptors' +import { Binary } from 'polkadot-api' +import { useEffect, useState } from 'react' + +const getJudgements = (judgements: [number, IdentityJudgement][]) => { + judgements.forEach((j) => { + if (acceptedJudgement.includes(j[1].type)) return true + if (notAcceptedJudgement.includes(j[1].type)) return false + }) + return false +} + +const dataToString = (value: number | string | Binary | undefined) => + typeof value === 'object' ? value.asText() : (value ?? '') + +const mapRawIdentity = ( + rawIdentity?: DotPeopleQueries['Identity']['IdentityOf']['Value'], +) => { + if (!rawIdentity) return + const { + judgements, + info: { display, email, legal, matrix, twitter, web }, + } = rawIdentity[0] + + const display_id = dataToString(display.value) + return { + display: display_id, + web: dataToString(web.value), + email: dataToString(email.value), + legal: dataToString(legal.value), + matrix: dataToString(matrix.value), + twitter: dataToString(twitter.value), + judgement: !!judgements.length || getJudgements(judgements), + } +} + +export const useIdentity = (address: string | undefined) => { + const [identity, setIdentity] = useState() + + const { peopleApi } = useNetwork() + + useEffect(() => { + const retrieveIdentity = async () => { + if (!address) return + const id = await peopleApi?.query?.Identity.IdentityOf.getValue(address) + setIdentity({ + address, + ...mapRawIdentity(id), + }) + } + retrieveIdentity() + }, [address, peopleApi]) + + return identity +} diff --git a/src/lib/utils.ts b/src/lib/utils.ts index 5cc2c33..5440b36 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -1,19 +1,20 @@ import { type ClassValue, clsx } from 'clsx' import { House } from 'lucide-react' import networks from '@/assets/networks.json' +import peopleNetworks from '@/assets/peopleNetworks.json' import { twMerge } from 'tailwind-merge' -import type { NetworkType, RouterType, Vote } from './types' -import { ApiType, NetworksFromConfig } from '@/contexts/NetworkContext' +import type { NetworkType, PeopleNetworkType, RouterType, Vote } from './types' +import { + ApiType, + NetworksFromConfig, + SupportedPeopleNetworkNames, +} from '@/contexts/NetworkContext' import { DEFAULT_TIME, lockPeriod, ONE_DAY, THRESHOLD } from './constants' import { bnMin } from './bnMin' -import { - DotPeopleQueries, - dotPeople, - ksmPeople, - westendPeople, -} from '@polkadot-api/descriptors' -import { Binary, TypedApi } from 'polkadot-api' + +const randomFromInterval = (min: number, max: number) => + Math.floor(Math.random() * (max - min + 1) + min) export const cn = (...inputs: ClassValue[]) => { return twMerge(clsx(inputs)) @@ -31,6 +32,16 @@ export const getChainInformation = (networkName: NetworksFromConfig) => { } } +export const getPeopleChainInformation = ( + peopleName: SupportedPeopleNetworkNames, +) => { + const peopleNetwork: PeopleNetworkType = peopleNetworks[peopleName] + const pick = randomFromInterval(0, peopleNetwork.nodes.length - 1) + return { + wsEndpoint: peopleNetwork.nodes[pick].url, + } +} + export const getVoteFromNumber = (input: number): Vote => ({ aye: Boolean(input & 0b1000_0000), conviction: input & 0b0111_1111, @@ -119,49 +130,21 @@ export const shuffleArray = (arrayToShuffle: unknown[]) => { } // PEOPLE CHAIN RELATED - export type AccountInfoIF = { - address: string | number | undefined - display?: string | number | undefined - legal?: string | number | undefined - matrix?: string | number | undefined - email?: string | number | undefined - twitter?: string | number | undefined - web?: string | number | undefined -} - -const dataToString = (value: number | string | Binary | undefined) => - typeof value === 'object' ? value.asText() : (value ?? '') - -export const mapRawIdentity = ( - rawIdentity?: DotPeopleQueries['Identity']['IdentityOf']['Value'], -) => { - if (!rawIdentity) return rawIdentity - const { - info: { display, email, legal, matrix, twitter, web }, - } = rawIdentity[0] - - const display_id = dataToString(display.value) - - return { - display: display_id, - web: dataToString(web.value), - email: dataToString(email.value), - legal: dataToString(legal.value), - matrix: dataToString(matrix.value), - twitter: dataToString(twitter.value), - } + address: string | number + display?: string | number + legal?: string | number + matrix?: string | number + email?: string | number + twitter?: string | number + web?: string | number + judgement?: boolean } -export const retrieveIdentity = async ( - peopleApi: - | TypedApi - | undefined, - address: string, -) => { - const id = await peopleApi?.query?.Identity.IdentityOf.getValue(address) - return { - address, - ...mapRawIdentity(id), - } -} +export const acceptedJudgement = ['Reasonable', 'FeePaid', 'KnownGood'] +export const notAcceptedJudgement = [ + 'Unknown', + 'OutOfDate', + 'LowQuality', + 'Erroneous', +] diff --git a/src/pages/Delegate/index.tsx b/src/pages/Delegate/index.tsx index 3f3489d..d127ae0 100644 --- a/src/pages/Delegate/index.tsx +++ b/src/pages/Delegate/index.tsx @@ -22,10 +22,9 @@ import { MultiTransactionDialog } from './MultiTransactionDialog' import { useGetSigningCallback } from '@/hooks/useGetSigningCallback' import { Title } from '@/components/ui/title' import { DelegateCard } from '@/components/DelegateCard' -import { AccountInfoIF, mapRawIdentity } from '@/lib/utils' export const Delegate = () => { - const { api, peopleApi, assetInfo } = useNetwork() + const { api, assetInfo } = useNetwork() const { address } = useParams() const { selectedAccount } = useAccounts() const getDelegateTx = useGetDelegateTx() @@ -102,20 +101,6 @@ export const Delegate = () => { setAmountVisible('0') }, [api]) - const [identity, setIdentity] = useState() - - useEffect(() => { - const retrieve = async () => { - const id = await peopleApi?.query?.Identity.IdentityOf.getValue(address!) - - setIdentity({ - address, - ...mapRawIdentity(id), - }) - } - address && retrieve() - }, [address, peopleApi]) - useEffect(() => { if (!address || delegate) return @@ -244,7 +229,6 @@ export const Delegate = () => { Delegate to {delegate.name}
Date: Tue, 24 Sep 2024 11:44:15 +0300 Subject: [PATCH 08/14] Fix RPCs for people chain --- src/assets/peopleNetworks.json | 74 +++++++++++++++++++++++++++++++++ src/contexts/NetworkContext.tsx | 53 ++++++++++------------- src/lib/types.ts | 4 ++ 3 files changed, 101 insertions(+), 30 deletions(-) create mode 100644 src/assets/peopleNetworks.json diff --git a/src/assets/peopleNetworks.json b/src/assets/peopleNetworks.json new file mode 100644 index 0000000..3d8b0c6 --- /dev/null +++ b/src/assets/peopleNetworks.json @@ -0,0 +1,74 @@ +{ + "polkadotPeople": { + "nodes": [ + { + "url": "wss://sys.ibp.network/people-polkadot", + "name": "IBP1" + }, + { + "url": "wss://sys.dotters.network/people-polkadot", + "name": "IBP2" + }, + { + "url": "wss://rpc-people-polkadot.luckyfriday.io", + "name": "LuckyFriday" + }, + { + "url": "wss://polkadot-people-rpc.polkadot.io", + "name": "Parity" + }, + { + "url": "wss://people-polkadot.public.curie.radiumblock.co/ws", + "name": "RadiumBlock" + } + ] + }, + "kusamaPeople": { + "nodes": [ + { + "url": "wss://people-kusama-rpc.dwellir.com", + "name": "Dwellir" + }, + { + "url": "wss://sys.ibp.network/people-kusama", + "name": "IBP1" + }, + { + "url": "wss://sys.dotters.network/people-kusama", + "name": "IBP2" + }, + { + "url": "wss://rpc-people-kusama.luckyfriday.io", + "name": "LuckyFriday" + }, + { + "url": "wss://kusama-people-rpc.polkadot.io", + "name": "Parity" + }, + { + "url": "wss://ksm-rpc.stakeworld.io/people", + "name": "Stakeworld" + } + ] + }, + "westendPeople": { + "nodes": [ + { + "url": "wss://people-westend-rpc.dwellir.com", + "name": "Dwellir" + }, + { + "url": "wss://sys.ibp.network/people-westend", + "name": "IBP1" + }, + { + "url": "wss://sys.dotters.network/people-westend", + "name": "IBP2" + }, + { + "url": "wss://westend-people-rpc.polkadot.io", + "name": "Parity" + } + ] + } +} diff --git a/src/contexts/NetworkContext.tsx b/src/contexts/NetworkContext.tsx index 01794a6..8ba87d3 100644 --- a/src/contexts/NetworkContext.tsx +++ b/src/contexts/NetworkContext.tsx @@ -27,9 +27,10 @@ import { getWsProvider } from 'polkadot-api/ws-provider/web' import { getSmProvider } from 'polkadot-api/sm-provider' import SmWorker from 'polkadot-api/smoldot/worker?worker' import { startFromWorker } from 'polkadot-api/smoldot/from-worker' -import { getChainInformation } from '@/lib/utils' +import { getChainInformation, getPeopleChainInformation } from '@/lib/utils' import { AssetType } from '@/lib/types' import networks from '@/assets/networks.json' +import peopleNetworks from '@/assets/peopleNetworks.json' import { DEFAULT_NETWORK, SELECTED_NETWORK_KEY } from '@/lib/constants' import { useLocalStorage } from 'usehooks-ts' import { useSearchParams } from 'react-router-dom' @@ -38,11 +39,7 @@ type NetworkContextProps = { children: React.ReactNode | React.ReactNode[] } export type NetworksFromConfig = keyof typeof networks -export type SupportedPeopleNetworkNames = - | 'people-polkadot' - | 'people-kusama' - | 'people-westend' - | 'people-fast-westend' +export type SupportedPeopleNetworkNames = keyof typeof peopleNetworks export type SupportedNetworkNames = | 'polkadot-lc' @@ -63,10 +60,9 @@ export const descriptorPeopleName: Record< SupportedPeopleNetworkNames, ChainDefinition > = { - 'people-polkadot': dotPeople, - 'people-kusama': ksmPeople, - 'people-westend': westendPeople, - 'people-fast-westend': westendPeople, + polkadotPeople: dotPeople, + kusamaPeople: ksmPeople, + westendPeople: westendPeople, } export type TrackList = Record @@ -92,6 +88,12 @@ export const isSupportedNetwork = ( ): network is SupportedNetworkNames => !!descriptorName[network as SupportedNetworkNames] +const extractPeopleFromNetwork = (network: SupportedNetworkNames) => + network + .replace('-lc', '') + .replace('fast-', '') + .concat('People') as SupportedPeopleNetworkNames + const NetworkContext = createContext(undefined) const NetworkContextProvider = ({ children }: NetworkContextProps) => { @@ -110,30 +112,23 @@ const NetworkContextProvider = ({ children }: NetworkContextProps) => { const [assetInfo, setAssetInfo] = useState({} as AssetType) const [network, setNetwork] = useState() - const [peopleNetwork, setPeopleNetwork] = useState< - SupportedPeopleNetworkNames | undefined - >() - const [searchParams, setSearchParams] = useSearchParams({ network: '' }) - - const selectPeopleNetork = (network: string) => { - setPeopleNetwork( - 'people-'.concat( - network.replace('-lc', ''), - ) as SupportedPeopleNetworkNames, + const [peopleNetwork, setPeopleNetwork] = + useState( + extractPeopleFromNetwork(DEFAULT_NETWORK), ) - } + const [searchParams, setSearchParams] = useSearchParams({ network: '' }) const selectNetwork = useCallback( (network: string) => { if (!isSupportedNetwork(network)) { console.error('This network is not supported', network) selectNetwork(DEFAULT_NETWORK) - selectPeopleNetork(DEFAULT_NETWORK) + setPeopleNetwork(extractPeopleFromNetwork(DEFAULT_NETWORK)) return } setNetwork(network) - selectPeopleNetork(network) + setPeopleNetwork(extractPeopleFromNetwork(network)) setSearchParams((prev) => { prev.set('network', network) @@ -150,11 +145,12 @@ const NetworkContextProvider = ({ children }: NetworkContextProps) => { // in this order we prefer the network in query string // or the local storage or the default - const selected = - queryStringNetwork || localStorageNetwork || DEFAULT_NETWORK + const selected = (queryStringNetwork || + localStorageNetwork || + DEFAULT_NETWORK) as SupportedNetworkNames selectNetwork(selected) - selectPeopleNetork(selected) + setPeopleNetwork(extractPeopleFromNetwork(selected)) } }, [localStorageNetwork, network, searchParams, selectNetwork]) @@ -206,9 +202,7 @@ const NetworkContextProvider = ({ children }: NetworkContextProps) => { client = createClient(getWsProvider(wsEndpoint)) // TODO: Fix the RPCs - - console.log(network) - let wss: string = '' + let wss: string = getPeopleChainInformation(peopleNetwork).wsEndpoint if (network === 'polkadot') { wss = 'wss://polkadot-people-rpc.polkadot.io' } else if (network === 'kusama') { @@ -216,7 +210,6 @@ const NetworkContextProvider = ({ children }: NetworkContextProps) => { } else { wss = 'wss://sys.ibp.network/people-westend' } - console.log(wss) peopleClient = createClient(getWsProvider(wss)) } diff --git a/src/lib/types.ts b/src/lib/types.ts index 58ad240..748d84a 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -43,6 +43,10 @@ export type ExplorerType = { event?: string } +export type PeopleNetworkType = { + nodes: NameUrl[] +} + export type NetworkType = { name: string specName: string From e808560e1889225e6b13ff57dab98d362472af18 Mon Sep 17 00:00:00 2001 From: Nikos Kontakis Date: Tue, 24 Sep 2024 11:54:10 +0300 Subject: [PATCH 09/14] Remove forgotten code :) --- src/contexts/NetworkContext.tsx | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/contexts/NetworkContext.tsx b/src/contexts/NetworkContext.tsx index 8ba87d3..18d9345 100644 --- a/src/contexts/NetworkContext.tsx +++ b/src/contexts/NetworkContext.tsx @@ -201,15 +201,7 @@ const NetworkContextProvider = ({ children }: NetworkContextProps) => { setIsLight(false) client = createClient(getWsProvider(wsEndpoint)) - // TODO: Fix the RPCs - let wss: string = getPeopleChainInformation(peopleNetwork).wsEndpoint - if (network === 'polkadot') { - wss = 'wss://polkadot-people-rpc.polkadot.io' - } else if (network === 'kusama') { - wss = 'wss://people-kusama-rpc.dwellir.com' - } else { - wss = 'wss://sys.ibp.network/people-westend' - } + const wss: string = getPeopleChainInformation(peopleNetwork).wsEndpoint peopleClient = createClient(getWsProvider(wss)) } From 833072afd5cedd7d9cfb5d362ecf5e91f3e86f2e Mon Sep 17 00:00:00 2001 From: Nikos Kontakis Date: Tue, 24 Sep 2024 18:35:06 +0300 Subject: [PATCH 10/14] Address comments --- src/contexts/AccountsContext.tsx | 7 +++++-- src/contexts/NetworkContext.tsx | 14 ++++++------- src/hooks/useIdentity.tsx | 34 ++++++++++++-------------------- src/lib/utils.ts | 6 ------ src/pages/Delegate/index.tsx | 7 ------- 5 files changed, 25 insertions(+), 43 deletions(-) diff --git a/src/contexts/AccountsContext.tsx b/src/contexts/AccountsContext.tsx index dc36a0c..22713d1 100644 --- a/src/contexts/AccountsContext.tsx +++ b/src/contexts/AccountsContext.tsx @@ -21,6 +21,10 @@ export interface IAccountContext { selectAccount: (account: InjectedPolkadotAccount | undefined) => void } +type AccountAddressType = { + address: string +} + const AccountContext = createContext(undefined) const AccountContextProvider = ({ children }: AccountContextProps) => { @@ -50,8 +54,7 @@ const AccountContextProvider = ({ children }: AccountContextProps) => { useEffect(() => { if (localStorageAccount) { const account = accounts.find( - (account: { address: string }) => - account.address === localStorageAccount, + ({ address }: AccountAddressType) => address === localStorageAccount, ) if (account) { selectAccount(account) diff --git a/src/contexts/NetworkContext.tsx b/src/contexts/NetworkContext.tsx index 18d9345..ff953a8 100644 --- a/src/contexts/NetworkContext.tsx +++ b/src/contexts/NetworkContext.tsx @@ -46,7 +46,9 @@ export type SupportedNetworkNames = | 'kusama-lc' | NetworksFromConfig export type ApiType = TypedApi -export type PeopleApiType = TypedApi +export type PeopleApiType = TypedApi< + typeof dotPeople | typeof ksmPeople | typeof westendPeople +> export const descriptorName: Record = { polkadot: dot, @@ -71,12 +73,10 @@ export interface INetworkContext { lightClientLoaded: boolean isLight: boolean selectNetwork: (network: string, shouldResetAccountAddress?: boolean) => void - client: PolkadotClient | undefined - api: TypedApi | undefined - peopleApi: - | TypedApi - | undefined - peopleClient: PolkadotClient | undefined + client: PolkadotClient + api: TypedApi + peopleApi: PeopleApiType + peopleClient: PolkadotClient network?: SupportedNetworkNames peopleNetwork?: SupportedPeopleNetworkNames assetInfo: AssetType diff --git a/src/hooks/useIdentity.tsx b/src/hooks/useIdentity.tsx index 4833450..50cbc74 100644 --- a/src/hooks/useIdentity.tsx +++ b/src/hooks/useIdentity.tsx @@ -1,20 +1,11 @@ import { useNetwork } from '@/contexts/NetworkContext' -import { - AccountInfoIF, - acceptedJudgement, - notAcceptedJudgement, -} from '@/lib/utils' +import { AccountInfoIF, acceptedJudgement } from '@/lib/utils' import { DotPeopleQueries, IdentityJudgement } from '@polkadot-api/descriptors' import { Binary } from 'polkadot-api' import { useEffect, useState } from 'react' -const getJudgements = (judgements: [number, IdentityJudgement][]) => { - judgements.forEach((j) => { - if (acceptedJudgement.includes(j[1].type)) return true - if (notAcceptedJudgement.includes(j[1].type)) return false - }) - return false -} +const getJudgements = (judgements: [number, IdentityJudgement][]) => + judgements.some(([, j]) => acceptedJudgement.includes(j.type)) const dataToString = (value: number | string | Binary | undefined) => typeof value === 'object' ? value.asText() : (value ?? '') @@ -36,7 +27,7 @@ const mapRawIdentity = ( legal: dataToString(legal.value), matrix: dataToString(matrix.value), twitter: dataToString(twitter.value), - judgement: !!judgements.length || getJudgements(judgements), + judgement: getJudgements(judgements), } } @@ -46,15 +37,16 @@ export const useIdentity = (address: string | undefined) => { const { peopleApi } = useNetwork() useEffect(() => { - const retrieveIdentity = async () => { - if (!address) return - const id = await peopleApi?.query?.Identity.IdentityOf.getValue(address) - setIdentity({ - address, - ...mapRawIdentity(id), + if (!address || !peopleApi) return + + peopleApi.query.Identity.IdentityOf.getValue(address) + .then((id) => { + setIdentity({ + address, + ...mapRawIdentity(id), + }) }) - } - retrieveIdentity() + .catch(console.error) }, [address, peopleApi]) return identity diff --git a/src/lib/utils.ts b/src/lib/utils.ts index 5440b36..3ec3eaa 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -142,9 +142,3 @@ export type AccountInfoIF = { } export const acceptedJudgement = ['Reasonable', 'FeePaid', 'KnownGood'] -export const notAcceptedJudgement = [ - 'Unknown', - 'OutOfDate', - 'LowQuality', - 'Erroneous', -] diff --git a/src/pages/Delegate/index.tsx b/src/pages/Delegate/index.tsx index 94061be..4070ff6 100644 --- a/src/pages/Delegate/index.tsx +++ b/src/pages/Delegate/index.tsx @@ -101,13 +101,6 @@ export const Delegate = () => { setAmountVisible('0') }, [api]) - useEffect(() => { - if (!address || delegate) return - - const res = getDelegateByAddress(address) - setDelegate(res) - }, [address, delegate, getDelegateByAddress]) - if (!delegate || !api) return
No delegate found
const onChangeAmount = ( From 3039a11cfdb755b09b4b1fe7212cbc15d0939b57 Mon Sep 17 00:00:00 2001 From: Nikos Kontakis Date: Tue, 24 Sep 2024 18:36:28 +0300 Subject: [PATCH 11/14] minor fix --- src/contexts/NetworkContext.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/contexts/NetworkContext.tsx b/src/contexts/NetworkContext.tsx index ff953a8..3ad8d1a 100644 --- a/src/contexts/NetworkContext.tsx +++ b/src/contexts/NetworkContext.tsx @@ -73,10 +73,10 @@ export interface INetworkContext { lightClientLoaded: boolean isLight: boolean selectNetwork: (network: string, shouldResetAccountAddress?: boolean) => void - client: PolkadotClient - api: TypedApi + client?: PolkadotClient + api?: TypedApi peopleApi: PeopleApiType - peopleClient: PolkadotClient + peopleClient?: PolkadotClient network?: SupportedNetworkNames peopleNetwork?: SupportedPeopleNetworkNames assetInfo: AssetType From b61e66c3dc2eee4e6bc18862831634cecacbfa57 Mon Sep 17 00:00:00 2001 From: Nikos Kontakis Date: Tue, 24 Sep 2024 21:27:45 +0300 Subject: [PATCH 12/14] remove non-trusted endpoints --- src/assets/peopleNetworks.json | 24 ------------------------ src/contexts/NetworkContext.tsx | 2 +- 2 files changed, 1 insertion(+), 25 deletions(-) diff --git a/src/assets/peopleNetworks.json b/src/assets/peopleNetworks.json index 3d8b0c6..2fd7952 100644 --- a/src/assets/peopleNetworks.json +++ b/src/assets/peopleNetworks.json @@ -9,26 +9,14 @@ "url": "wss://sys.dotters.network/people-polkadot", "name": "IBP2" }, - { - "url": "wss://rpc-people-polkadot.luckyfriday.io", - "name": "LuckyFriday" - }, { "url": "wss://polkadot-people-rpc.polkadot.io", "name": "Parity" - }, - { - "url": "wss://people-polkadot.public.curie.radiumblock.co/ws", - "name": "RadiumBlock" } ] }, "kusamaPeople": { "nodes": [ - { - "url": "wss://people-kusama-rpc.dwellir.com", - "name": "Dwellir" - }, { "url": "wss://sys.ibp.network/people-kusama", "name": "IBP1" @@ -37,26 +25,14 @@ "url": "wss://sys.dotters.network/people-kusama", "name": "IBP2" }, - { - "url": "wss://rpc-people-kusama.luckyfriday.io", - "name": "LuckyFriday" - }, { "url": "wss://kusama-people-rpc.polkadot.io", "name": "Parity" - }, - { - "url": "wss://ksm-rpc.stakeworld.io/people", - "name": "Stakeworld" } ] }, "westendPeople": { "nodes": [ - { - "url": "wss://people-westend-rpc.dwellir.com", - "name": "Dwellir" - }, { "url": "wss://sys.ibp.network/people-westend", "name": "IBP1" diff --git a/src/contexts/NetworkContext.tsx b/src/contexts/NetworkContext.tsx index 3ad8d1a..748ca02 100644 --- a/src/contexts/NetworkContext.tsx +++ b/src/contexts/NetworkContext.tsx @@ -75,7 +75,7 @@ export interface INetworkContext { selectNetwork: (network: string, shouldResetAccountAddress?: boolean) => void client?: PolkadotClient api?: TypedApi - peopleApi: PeopleApiType + peopleApi?: PeopleApiType peopleClient?: PolkadotClient network?: SupportedNetworkNames peopleNetwork?: SupportedPeopleNetworkNames From 40033eb9833694d55c7004c4ec9e22622947612b Mon Sep 17 00:00:00 2001 From: Nikos Kontakis Date: Tue, 24 Sep 2024 21:33:22 +0300 Subject: [PATCH 13/14] leave only 1 endpoint for people chain --- src/assets/peopleNetworks.json | 24 ++++++++++++++++++++++++ src/contexts/NetworkContext.tsx | 11 +++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/assets/peopleNetworks.json b/src/assets/peopleNetworks.json index 2fd7952..3d8b0c6 100644 --- a/src/assets/peopleNetworks.json +++ b/src/assets/peopleNetworks.json @@ -9,14 +9,26 @@ "url": "wss://sys.dotters.network/people-polkadot", "name": "IBP2" }, + { + "url": "wss://rpc-people-polkadot.luckyfriday.io", + "name": "LuckyFriday" + }, { "url": "wss://polkadot-people-rpc.polkadot.io", "name": "Parity" + }, + { + "url": "wss://people-polkadot.public.curie.radiumblock.co/ws", + "name": "RadiumBlock" } ] }, "kusamaPeople": { "nodes": [ + { + "url": "wss://people-kusama-rpc.dwellir.com", + "name": "Dwellir" + }, { "url": "wss://sys.ibp.network/people-kusama", "name": "IBP1" @@ -25,14 +37,26 @@ "url": "wss://sys.dotters.network/people-kusama", "name": "IBP2" }, + { + "url": "wss://rpc-people-kusama.luckyfriday.io", + "name": "LuckyFriday" + }, { "url": "wss://kusama-people-rpc.polkadot.io", "name": "Parity" + }, + { + "url": "wss://ksm-rpc.stakeworld.io/people", + "name": "Stakeworld" } ] }, "westendPeople": { "nodes": [ + { + "url": "wss://people-westend-rpc.dwellir.com", + "name": "Dwellir" + }, { "url": "wss://sys.ibp.network/people-westend", "name": "IBP1" diff --git a/src/contexts/NetworkContext.tsx b/src/contexts/NetworkContext.tsx index 748ca02..8c7b79d 100644 --- a/src/contexts/NetworkContext.tsx +++ b/src/contexts/NetworkContext.tsx @@ -27,7 +27,7 @@ import { getWsProvider } from 'polkadot-api/ws-provider/web' import { getSmProvider } from 'polkadot-api/sm-provider' import SmWorker from 'polkadot-api/smoldot/worker?worker' import { startFromWorker } from 'polkadot-api/smoldot/from-worker' -import { getChainInformation, getPeopleChainInformation } from '@/lib/utils' +import { getChainInformation } from '@/lib/utils' import { AssetType } from '@/lib/types' import networks from '@/assets/networks.json' import peopleNetworks from '@/assets/peopleNetworks.json' @@ -201,7 +201,14 @@ const NetworkContextProvider = ({ children }: NetworkContextProps) => { setIsLight(false) client = createClient(getWsProvider(wsEndpoint)) - const wss: string = getPeopleChainInformation(peopleNetwork).wsEndpoint + let wss: string = '' + if (network === 'polkadot') { + wss = 'wss://sys.ibp.network/people-polkadot' + } else if (network === 'kusama') { + wss = 'wss://sys.ibp.network/people-kusama' + } else { + wss = 'wss://sys.ibp.network/people-westend' + } peopleClient = createClient(getWsProvider(wss)) } From 339be2324c971a2fb19c0fc4739386d25f81e863 Mon Sep 17 00:00:00 2001 From: Nikos Kontakis Date: Wed, 25 Sep 2024 14:09:49 +0300 Subject: [PATCH 14/14] Address comments --- src/contexts/NetworkContext.tsx | 2 +- src/lib/types.ts | 4 ---- src/lib/utils.ts | 22 ++-------------------- src/pages/Delegate/index.tsx | 2 -- 4 files changed, 3 insertions(+), 27 deletions(-) diff --git a/src/contexts/NetworkContext.tsx b/src/contexts/NetworkContext.tsx index 8c7b79d..4b18b87 100644 --- a/src/contexts/NetworkContext.tsx +++ b/src/contexts/NetworkContext.tsx @@ -215,7 +215,7 @@ const NetworkContextProvider = ({ children }: NetworkContextProps) => { const descriptor = descriptorName[network] const typedApi = client.getTypedApi(descriptor) - const descriptorPeople = descriptorPeopleName[peopleNetwork!] + const descriptorPeople = descriptorPeopleName[peopleNetwork] const typedPeopleApi = peopleClient.getTypedApi(descriptorPeople) setClient(client) diff --git a/src/lib/types.ts b/src/lib/types.ts index 748d84a..58ad240 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -43,10 +43,6 @@ export type ExplorerType = { event?: string } -export type PeopleNetworkType = { - nodes: NameUrl[] -} - export type NetworkType = { name: string specName: string diff --git a/src/lib/utils.ts b/src/lib/utils.ts index 3ec3eaa..0164138 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -1,21 +1,13 @@ import { type ClassValue, clsx } from 'clsx' import { House } from 'lucide-react' import networks from '@/assets/networks.json' -import peopleNetworks from '@/assets/peopleNetworks.json' import { twMerge } from 'tailwind-merge' -import type { NetworkType, PeopleNetworkType, RouterType, Vote } from './types' -import { - ApiType, - NetworksFromConfig, - SupportedPeopleNetworkNames, -} from '@/contexts/NetworkContext' +import type { NetworkType, RouterType, Vote } from './types' +import { ApiType, NetworksFromConfig } from '@/contexts/NetworkContext' import { DEFAULT_TIME, lockPeriod, ONE_DAY, THRESHOLD } from './constants' import { bnMin } from './bnMin' -const randomFromInterval = (min: number, max: number) => - Math.floor(Math.random() * (max - min + 1) + min) - export const cn = (...inputs: ClassValue[]) => { return twMerge(clsx(inputs)) } @@ -32,16 +24,6 @@ export const getChainInformation = (networkName: NetworksFromConfig) => { } } -export const getPeopleChainInformation = ( - peopleName: SupportedPeopleNetworkNames, -) => { - const peopleNetwork: PeopleNetworkType = peopleNetworks[peopleName] - const pick = randomFromInterval(0, peopleNetwork.nodes.length - 1) - return { - wsEndpoint: peopleNetwork.nodes[pick].url, - } -} - export const getVoteFromNumber = (input: number): Vote => ({ aye: Boolean(input & 0b1000_0000), conviction: input & 0b0111_1111, diff --git a/src/pages/Delegate/index.tsx b/src/pages/Delegate/index.tsx index 4070ff6..5a1b6f1 100644 --- a/src/pages/Delegate/index.tsx +++ b/src/pages/Delegate/index.tsx @@ -101,8 +101,6 @@ export const Delegate = () => { setAmountVisible('0') }, [api]) - if (!delegate || !api) return
No delegate found
- const onChangeAmount = ( e: React.ChangeEvent, decimals: number,