diff --git a/packages/apps-config/src/api/constants.ts b/packages/apps-config/src/api/constants.ts index fe003d564e..33f57f1af2 100644 --- a/packages/apps-config/src/api/constants.ts +++ b/packages/apps-config/src/api/constants.ts @@ -21,6 +21,6 @@ export const KUSAMA_GENESIS = getGenesis('kusama'); export const POLKADOT_GENESIS = getGenesis('polkadot'); export const POLKADOT_DENOM_BLOCK = new BN(1248328); -export const ROCOCO_GENESIS = '0x1611e1dbf0405379b861e2e27daa90f480b2e6d3682414a80835a52e8cb8a215'; +export const ROCOCO_GENESIS = '0xe7c3d5edde7db964317cd9b51a3a059d7cd99f81bdbce14990047354334c9779'; export const WESTEND_GENESIS = '0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e'; diff --git a/packages/apps-config/src/endpoints/testingRelayRococo.ts b/packages/apps-config/src/endpoints/testingRelayRococo.ts index 2d7dbd3541..b2eb8cb28d 100644 --- a/packages/apps-config/src/endpoints/testingRelayRococo.ts +++ b/packages/apps-config/src/endpoints/testingRelayRococo.ts @@ -55,7 +55,6 @@ export function createRococo (t: TFunction): EndpointOption { }, { info: 'rococoStatemint', - isDisabled: true, // Rococo reset paraId: 1000, text: t('rpc.rococo.statemint', 'Statemint', { ns: 'apps-config' }), providers: { diff --git a/packages/apps-config/src/endpoints/testingRelayWestend.ts b/packages/apps-config/src/endpoints/testingRelayWestend.ts index 4714f636dd..fb0ba539d1 100644 --- a/packages/apps-config/src/endpoints/testingRelayWestend.ts +++ b/packages/apps-config/src/endpoints/testingRelayWestend.ts @@ -39,7 +39,7 @@ export function createWestend (t: TFunction): EndpointOption { providers: { Parity: 'wss://westmint-rpc.polkadot.io' }, - teleport: [-1] // relay only + teleport: [-1] // should be [-1], relay only }, // (3) parachains with id, see Rococo (info here maps to the actual "named icon") // diff --git a/packages/react-hooks/src/useTeleport.ts b/packages/react-hooks/src/useTeleport.ts index e897c6c5cc..16bb5816df 100644 --- a/packages/react-hooks/src/useTeleport.ts +++ b/packages/react-hooks/src/useTeleport.ts @@ -29,10 +29,7 @@ const DEFAULT_STATE: Teleport = { isParachain: false }; -const endpoints = createWsEndpoints((k: string, v: string | undefined) => v || k).filter((v): v is ExtLinkOption => - !!v.teleport && - !!v.teleport.length -); +const endpoints = createWsEndpoints((k: string, v: string | undefined) => v || k).filter((v): v is ExtLinkOption => !!v.teleport); function extractRelayDestinations (relayGenesis: string, filter: (l: ExtLinkOption) => boolean): ExtLinkOption[] { return endpoints @@ -60,18 +57,15 @@ function extractRelayDestinations (relayGenesis: string, filter: (l: ExtLinkOpti export function useTeleport (): Teleport { const { api, apiUrl, isApiReady } = useApi(); - const chainParaId = useCall(isApiReady && api.query.parachainInfo?.parachainId); + const paraId = useCall(isApiReady && api.query.parachainInfo?.parachainId); const [state, setState] = useState(() => ({ ...DEFAULT_STATE })); useEffect((): void => { if (isApiReady) { - const relayGenesis = api.genesisHash.toHex(); - const endpoint = endpoints.find(({ value }) => - value === apiUrl - ); + const endpoint = endpoints.find(({ value }) => value === apiUrl); if (endpoint) { - const destinations = extractRelayDestinations(relayGenesis, ({ paraId }) => + const destinations = extractRelayDestinations(api.genesisHash.toHex(), ({ paraId }) => isNumber(paraId) && endpoint.teleport.includes(paraId) ); @@ -86,25 +80,24 @@ export function useTeleport (): Teleport { }, [api, apiUrl, isApiReady]); useEffect((): void => { - if (chainParaId) { - const endpoint = endpoints.find(({ paraId, value }) => - chainParaId.eq(paraId) && - value === apiUrl - ); + if (paraId) { + const endpoint = endpoints.find(({ value }) => value === apiUrl); - setState((prev) => ({ - ...prev, - allowTeleport: !!endpoint, - destinations: endpoint && endpoint.genesisHashRelay - ? extractRelayDestinations(endpoint.genesisHashRelay, ({ paraId }) => - endpoint.teleport.includes(isNumber(paraId) ? paraId : -1) - ) - : [], - isParachain: true, - paraId: chainParaId - })); + if (endpoint && endpoint.genesisHashRelay) { + const destinations = extractRelayDestinations(endpoint.genesisHashRelay, ({ paraId }) => + endpoint.teleport.includes(isNumber(paraId) ? paraId : -1) + ); + + setState((prev) => ({ + ...prev, + allowTeleport: destinations.length !== 0, + destinations, + isParachain: true, + paraId + })); + } } - }, [apiUrl, chainParaId]); + }, [apiUrl, paraId]); return state; }