diff --git a/.env.example b/.env.example index 9c293bc3..272b477a 100644 --- a/.env.example +++ b/.env.example @@ -1,18 +1,21 @@ -WS_ROCOCO_CORETIME_CHAIN="WSS endpoint of the coretime chain on Rococo" +WS_POLKADOT_CORETIME_CHAIN="WSS endpoint of the coretime chain on Polkadot" WS_KUSAMA_CORETIME_CHAIN="WSS endpoint of the coretime chain on Kusama" +WS_ROCOCO_CORETIME_CHAIN="WSS endpoint of the coretime chain on Rococo" WS_WESTEND_CORETIME_CHAIN="WSS endpiont of the coretime chain on Westend" -WS_ROCOCO_RELAY_CHAIN="WSS endpoint of the coretime relay chain - Rococo" +WS_POLKADOT_RELAY_CHAIN="WSS endpoint of the coretime relay chain - Polkadot" WS_KUSAMA_RELAY_CHAIN="WSS endpoint of the coretime relay chain - Kusama" +WS_ROCOCO_RELAY_CHAIN="WSS endpoint of the coretime relay chain - Rococo" WS_WESTEND_RELAY_CHAIN="WSS endpoint of the coretime relay chain - Westend" WS_REGIONX_COCOS_CHAIN="WSS endpoint of the regionx chain" +POLKADOT_CORETIME_INDEXER="Subquery indexer for Polkadot Coretime" ROCOCO_CORETIME_INDEXER="Subquery indexer for Rococo Coretime" -KUSAMA_CORETIME_INDEXER="Subquery indexer for Kusama Coretime" COCOS_INDEXER="Subquery indexer for RegionX Cocos" -ROCOCO_CORETIME_DICT="Subquery dictionary for Rococo Coretime" +POLKADOT_CORETIME_DICT="Subquery dictionary for Polkadot Coretime" KUSAMA_CORETIME_DICT="Subquery dictionary for Kusama Coretime" +ROCOCO_CORETIME_DICT="Subquery dictionary for Rococo Coretime" EXPERIMENTAL=false diff --git a/next.config.js b/next.config.js index 490bb2bf..8113979c 100644 --- a/next.config.js +++ b/next.config.js @@ -5,24 +5,28 @@ const nextConfig = { domains: ['github.com'], }, env: { - WS_ROCOCO_CORETIME_CHAIN: process.env.WS_ROCOCO_CORETIME_CHAIN || '', + WS_POLKADOT_CORETIME_CHAIN: process.env.WS_POLKADOT_CORETIME_CHAIN || '', WS_KUSAMA_CORETIME_CHAIN: process.env.WS_KUSAMA_CORETIME_CHAIN || '', + WS_ROCOCO_CORETIME_CHAIN: process.env.WS_ROCOCO_CORETIME_CHAIN || '', WS_WESTEND_CORETIME_CHAIN: process.env.WS_WESTEND_CORETIME_CHAIN || '', COCOS_INDEXER: process.env.COCOS_INDEXER || '', - ROCOCO_CORETIME_INDEXER: process.env.ROCOCO_CORETIME_INDEXER || '', + POLKADOT_CORETIME_INDEXER: process.env.POLKADOT_CORETIME_INDEXER || '', KUSAMA_CORETIME_INDEXER: process.env.KUSAMA_CORETIME_INDEXER || '', + ROCOCO_CORETIME_INDEXER: process.env.ROCOCO_CORETIME_INDEXER || '', SUBSCAN_CORETIME_WESTEND_INDEXER: process.env.SUBSCAN_CORETIME_WESTEND_INDEXER || '', - ROCOCO_CORETIME_DICT: process.env.ROCOCO_CORETIME_DICT || '', + POLKADOT_CORETIME_DICT: process.env.POLKADOT_CORETIME_DICT || '', KUSAMA_CORETIME_DICT: process.env.KUSAMA_CORETIME_DICT || '', + ROCOCO_CORETIME_DICT: process.env.ROCOCO_CORETIME_DICT || '', SUBSCAN_CORETIME_WESTEND_DICT: process.env.SUBSCAN_CORETIME_WESTEND_DICT || '', WS_REGIONX_COCOS_CHAIN: process.env.WS_REGIONX_COCOS_CHAIN || '', - WS_ROCOCO_RELAY_CHAIN: process.env.WS_ROCOCO_RELAY_CHAIN, + WS_POLKADOT_RELAY_CHAIN: process.env.WS_KUSAMA_RELAY_CHAIN, WS_KUSAMA_RELAY_CHAIN: process.env.WS_KUSAMA_RELAY_CHAIN, + WS_ROCOCO_RELAY_CHAIN: process.env.WS_ROCOCO_RELAY_CHAIN, WS_WESTEND_RELAY_CHAIN: process.env.WS_WESTEND_RELAY_CHAIN, EXPERIMENTAL: process.env.EXPERIMENTAL, diff --git a/src/assets/networks/coretime/index.ts b/src/assets/networks/coretime/index.ts index ee2fcefe..314bf9c9 100644 --- a/src/assets/networks/coretime/index.ts +++ b/src/assets/networks/coretime/index.ts @@ -1,5 +1,6 @@ import KusamaCoretime from './kusama.png'; +import PolkadotCoretime from './polkadot.png'; import RococoCoretime from './rococo.png'; import WestendCoretime from './westend.png'; -export { KusamaCoretime, RococoCoretime, WestendCoretime }; +export { KusamaCoretime, PolkadotCoretime, RococoCoretime, WestendCoretime }; diff --git a/src/assets/networks/coretime/polkadot.png b/src/assets/networks/coretime/polkadot.png new file mode 100644 index 00000000..5351225c Binary files /dev/null and b/src/assets/networks/coretime/polkadot.png differ diff --git a/src/assets/networks/relay/index.ts b/src/assets/networks/relay/index.ts index d9718e63..996cca44 100644 --- a/src/assets/networks/relay/index.ts +++ b/src/assets/networks/relay/index.ts @@ -1,5 +1,6 @@ import Kusama from './kusama.png'; +import Polkadot from './polkadot.png'; import Rococo from './rococo.png'; import Westend from './westend.png'; -export { Kusama, Rococo, Westend }; +export { Kusama, Polkadot, Rococo, Westend }; diff --git a/src/assets/networks/relay/polkadot.png b/src/assets/networks/relay/polkadot.png new file mode 100644 index 00000000..8990a255 Binary files /dev/null and b/src/assets/networks/relay/polkadot.png differ diff --git a/src/assets/networks/relay/westend.png b/src/assets/networks/relay/westend.png index d3691587..609b1ce9 100644 Binary files a/src/assets/networks/relay/westend.png and b/src/assets/networks/relay/westend.png differ diff --git a/src/chaindata/index.ts b/src/chaindata/index.ts index df9aa1b8..2fea66dc 100644 --- a/src/chaindata/index.ts +++ b/src/chaindata/index.ts @@ -2,6 +2,7 @@ import { NetworkType } from '@/models'; import KusamaChains from './kusama'; import leases from './leases.json'; +import PolkadotChains from './polkadot'; import RococoChains from './rococo'; import { BaseChainInfo, ChainDetails } from './types'; import WestendChains from './westend'; @@ -15,6 +16,7 @@ const transformData = (data: ChainDetails[]): Record => { }; const chainData: Record> = { + [NetworkType.POLKADOT]: transformData(PolkadotChains), [NetworkType.KUSAMA]: transformData(KusamaChains), [NetworkType.ROCOCO]: transformData(RococoChains), [NetworkType.WESTEND]: transformData(WestendChains), diff --git a/src/chaindata/polkadot.ts b/src/chaindata/polkadot.ts new file mode 100644 index 00000000..6a7f2873 --- /dev/null +++ b/src/chaindata/polkadot.ts @@ -0,0 +1,1007 @@ +import { + chainsAcalaSVG, + chainsBitgreenPNG, + chainsComposableFinancePNG, + chainsEquilibriumSVG, + chainsFrequencySVG, + chainsGeminisPNG, + chainsInvarchJPEG, + chainsLaosPNG, + chainsLogionPNG, + chainsNeurowebPNG, + chainsOakPNG, + chainsPeaqPNG, + chainsPendulumSVG, + chainsPeoplePolkadotSVG, + chainsSnakenetSVG, + chainsTotemSVG, + chainsWatrPNG, + nodesAjunaPNG, + nodesAresOdysseySVG, + nodesAssetHubSVG, + nodesAstarPNG, + nodesAventusSVG, + nodesBifrostSVG, + nodesBridgeHubSVG, + nodesCentrifugePNG, + nodesCloverSVG, + nodesCoinversationPNG, + nodesContinuumPNG, + nodesCrustParachainSVG, + nodesDarwiniaSVG, + nodesEfinitySVG, + nodesEwxSVG, + nodesHashedPNG, + nodesHyperbridgePNG, + nodesIntegriteeSVG, + nodesInterlaySVG, + nodesKiltPNG, + nodesKylinPNG, + nodesLitentryPNG, + nodesMantaPNG, + nodesMoonbeamSVG, + nodesMoonsamaSVG, + nodesMythosPNG, + nodesNodleSVG, + nodesOmnibtcSVG, + nodesParallelSVG, + nodesPhalaSVG, + nodesPolimecSVG, + nodesPolkadexSVG, + nodesRobonomicsSVG, + nodesSoraSubstrateSVG, + nodesSubdaoPNG, + nodesSubgameSVG, + nodesSubsocialSVG, + nodesT3rnPNG, + nodesUniqueSVG, + nodesZeitgeistPNG, +} from '@/assets/logos'; + +import { ChainDetails } from './types'; +const prodParasKusama: ChainDetails[] = [ + { + homepage: 'https://acala.network/', + info: 'acala', + paraId: 2000, + providers: { + 'Acala Foundation 0': 'wss://acala-rpc-0.aca-api.network', + 'Acala Foundation 1': 'wss://acala-rpc-1.aca-api.network', + // 'Acala Foundation 2': 'wss://acala-rpc-2.aca-api.network/ws', // https://github.com/polkadot-js/apps/issues/6965 + 'Acala Foundation 3': 'wss://acala-rpc-3.aca-api.network/ws', + Dwellir: 'wss://acala-rpc.dwellir.com', + // LuckyFriday: 'wss://rpc-acala.luckyfriday.io', // https://github.com/polkadot-js/apps/issues/10728 + // 'Automata 1RPC': 'wss://1rpc.io/aca' // https://github.com/polkadot-js/apps/issues/8648 + OnFinality: 'wss://acala-polkadot.api.onfinality.io/public-ws', + // 'Polkawallet 0': 'wss://acala.polkawallet.io' // https://github.com/polkadot-js/apps/issues/9760 + }, + text: 'Acala', + ui: { + color: '#645AFF', + logo: chainsAcalaSVG, + }, + }, + { + homepage: 'https://ajuna.io', + info: 'ajuna', + paraId: 2051, + providers: { + AjunaNetwork: 'wss://rpc-para.ajuna.network', + IBP1: 'wss://ajuna.ibp.network', + IBP2: 'wss://ajuna.dotters.network', + OnFinality: 'wss://ajuna.api.onfinality.io/public-ws', + RadiumBlock: 'wss://ajuna.public.curie.radiumblock.co/ws', + }, + text: 'Ajuna Network', + ui: { + color: '#161212', + logo: nodesAjunaPNG, + }, + }, + { + homepage: 'https://www.aresprotocol.io/', + info: 'odyssey', + paraId: 2028, + providers: { + // AresProtocol: 'wss://wss.odyssey.aresprotocol.io' // https://github.com/polkadot-js/apps/issues/9059 + }, + text: 'Ares Odyssey', + ui: { + color: '#1295F0', + logo: nodesAresOdysseySVG, + }, + }, + { + homepage: 'https://astar.network', + info: 'astar', + paraId: 2006, + providers: { + Astar: 'wss://rpc.astar.network', + 'Automata 1RPC': 'wss://1rpc.io/astr', + Blast: 'wss://astar.public.blastapi.io', + Dwellir: 'wss://astar-rpc.dwellir.com', + OnFinality: 'wss://astar.api.onfinality.io/public-ws', + RadiumBlock: 'wss://astar.public.curie.radiumblock.co/ws', + 'light client': 'light://substrate-connect/polkadot/astar', + }, + text: 'Astar', + ui: { + color: '#1b6dc1d9', + logo: nodesAstarPNG, + }, + }, + { + homepage: 'https://www.aventus.io/', + info: 'aventus', + paraId: 2056, + providers: { + Aventus: 'wss://public-rpc.mainnet.aventus.network', + }, + text: 'Aventus', + ui: { + color: '#1d2733', + logo: nodesAventusSVG, + }, + }, + { + homepage: 'https://crowdloan.bifrost.app', + info: 'bifrost', + paraId: 2030, + providers: { + Dwellir: 'wss://bifrost-polkadot-rpc.dwellir.com', + IBP1: 'wss://bifrost-polkadot.ibp.network', + IBP2: 'wss://bifrost-polkadot.dotters.network', + Liebi: 'wss://hk.p.bifrost-rpc.liebi.com/ws', + LiebiEU: 'wss://eu.bifrost-polkadot-rpc.liebi.com/ws', + OnFinality: 'wss://bifrost-polkadot.api.onfinality.io/public-ws', + RadiumBlock: 'wss://bifrost.public.curie.radiumblock.co/ws', + }, + text: 'Bifrost', + ui: { + color: '#5a25f0', + logo: nodesBifrostSVG, + }, + }, + { + homepage: 'https://www.bitgreen.org', + info: 'bitgreen', + paraId: 2048, + providers: { + Bitgreen: 'wss://mainnet.bitgreen.org', + // OnFinality: 'wss://bitgreen.api.onfinality.io/public-ws' // https://github.com/polkadot-js/apps/issues/9993 + }, + text: 'Bitgreen', + ui: { + color: '#224851', + logo: chainsBitgreenPNG, + }, + }, + { + homepage: 'https://centrifuge.io', + info: 'centrifuge', + paraId: 2031, + providers: { + Centrifuge: 'wss://fullnode.centrifuge.io', + Dwellir: 'wss://centrifuge-rpc.dwellir.com', + LuckyFriday: 'wss://rpc-centrifuge.luckyfriday.io', + OnFinality: 'wss://centrifuge-parachain.api.onfinality.io/public-ws', + }, + text: 'Centrifuge', + ui: { + color: '#fcc367', + logo: nodesCentrifugePNG, + }, + }, + { + homepage: 'https://clover.finance', + info: 'clover', + paraId: 2002, + providers: { + // Clover: 'wss://rpc-para.clover.finance' // https://github.com/polkadot-js/apps/issues/10172 + // OnFinality: 'wss://clover.api.onfinality.io/public-ws' // https://github.com/polkadot-js/apps/issues/9986 + }, + text: 'Clover', + ui: { + color: 'linear-gradient(to right, #52ad75, #7cc773)', + logo: nodesCloverSVG, + }, + }, + { + homepage: 'http://www.coinversation.io/', + info: 'coinversation', + paraId: 2027, + providers: { + // Coinversation: 'wss://rpc.coinversation.io/' // https://github.com/polkadot-js/apps/issues/6635 + }, + text: 'Coinversation', + ui: { + color: '#e6017a', + logo: nodesCoinversationPNG, + }, + }, + { + homepage: 'https://composable.finance/', + info: 'composable', + paraId: 2019, + providers: { + Composable: 'wss://rpc.composable.finance', + Dwellir: 'wss://composable-rpc.dwellir.com', + // OnFinality: 'wss://composable.api.onfinality.io/public-ws' // https://github.com/polkadot-js/apps/issues/9986 + }, + text: 'Composable Finance', + ui: { + color: '#C90E8A', + logo: chainsComposableFinancePNG, + }, + }, + { + homepage: 'https://mnet.io/?ref=polkadotjs', + info: 'continuum', + paraId: 3346, + providers: { + MNet: 'wss://continuum-rpc-1.metaverse.network/wss', + }, + text: 'Continuum', + ui: { + color: 'linear-gradient(94deg, #2B388F 2.95%, #DB126E 97.18%)', + logo: nodesContinuumPNG, + }, + }, + { + homepage: 'https://crust.network', + info: 'crustParachain', + paraId: 2008, + providers: { + Crust: 'wss://crust-parachain.crustapps.net', + 'Crust APP': 'wss://crust-parachain.crustnetwork.app', + 'Crust CC': 'wss://crust-parachain.crustnetwork.cc', + 'Crust XYZ': 'wss://crust-parachain.crustnetwork.xyz', + // OnFinality: 'wss://crust-polkadot.api.onfinality.io/public-ws' // https://github.com/polkadot-js/apps/issues/10013 + }, + text: 'Crust', + ui: { + logo: nodesCrustParachainSVG, + }, + }, + { + homepage: 'https://darwinia.network/', + info: 'darwinia', + paraId: 2046, + providers: { + Darwinia: 'wss://rpc.darwinia.network', + Dcdao: 'wss://darwinia-rpc.dcdao.box', + Dwellir: 'wss://darwinia-rpc.dwellir.com', + }, + text: 'Darwinia', + ui: { + color: '#FF0083', + logo: nodesDarwiniaSVG, + }, + }, + { + homepage: 'https://efinity.io', + info: 'efinity', + paraId: 2021, + providers: { + // NOTE We don't support connections to this parachain at all. + // + // 1. The chain is migrated away from the parachain with all balances + // 2. There is a forked relay-involved which we don't support + // + // Additional details in original removal at + // https://github.com/polkadot-js/apps/pull/9555/files#r1225095086 + }, + text: 'Efinity', + ui: { + color: '#496ddb', + logo: nodesEfinitySVG, + }, + }, + { + homepage: 'https://energywebx.com/', + info: 'ewx', + paraId: 3345, + providers: { + 'Energy Web': 'wss://public-rpc.mainnet.energywebx.com/', + }, + text: 'Energy Web X', + ui: { + color: '#53B1FF', + logo: nodesEwxSVG, + }, + }, + { + homepage: 'https://equilibrium.io/', + info: 'equilibrium', + paraId: 2011, + providers: { + // Dwellir: 'wss://equilibrium-rpc.dwellir.com' + // OnFinality: 'wss://equilibrium.api.onfinality.io/public-ws' // https://github.com/polkadot-js/apps/issues/9977 + // Equilibrium: 'wss://node.equilibrium.io' // https://github.com/polkadot-js/apps/issues/10174 + }, + text: 'Equilibrium', + ui: { + color: '#1792ff', + logo: chainsEquilibriumSVG, + }, + }, + { + homepage: 'https://frequency.xyz', + info: 'frequency', + paraId: 2091, + providers: { + Dwellir: 'wss://frequency-rpc.dwellir.com', + 'Frequency 0': 'wss://0.rpc.frequency.xyz', + 'Frequency 1': 'wss://1.rpc.frequency.xyz', + // OnFinality: 'wss://frequency-polkadot.api.onfinality.io/public-ws' // https://github.com/polkadot-js/apps/issues/10890 + }, + text: 'Frequency', + ui: { + color: '#00b6af', + logo: chainsFrequencySVG, + }, + }, + { + homepage: 'https://geminis.network/', + info: 'geminis', + isUnreachable: true, + paraId: 2038, + providers: { + Geminis: 'wss://rpc.geminis.network', + }, + text: 'Geminis', + ui: { + logo: chainsGeminisPNG, + }, + }, + { + homepage: 'https://hashed.network/', + info: 'hashed', + paraId: 2093, + providers: { + 'Hashed Systems 1': 'wss://c1.hashed.network', + 'Hashed Systems 2': 'wss://c2.hashed.network', + 'Hashed Systems 3': 'wss://c3.hashed.network', + }, + text: 'Hashed Network', + ui: { + color: '#9199A9', + logo: nodesHashedPNG, + }, + }, + { + homepage: 'https://hydradx.io/', + info: 'hydradx', + paraId: 2034, + providers: { + Dwellir: 'wss://hydradx-rpc.dwellir.com', + 'Galactic Council': 'wss://rpc.hydradx.cloud', + Helikon: 'wss://rpc.helikon.io/hydradx', + IBP1: 'wss://hydradx.paras.ibp.network', + IBP2: 'wss://hydradx.paras.dotters.network', + // OnFinality: 'wss://hydradx.api.onfinality.io/public-ws' // https://github.com/polkadot-js/apps/issues/9986 + // ZeePrime: 'wss://rpc-lb.data6.zp-labs.net:8443/hydradx/ws/?token=2ZGuGivPJJAxXiT1hR1Yg2MXGjMrhEBYFjgbdPi' // https://github.com/polkadot-js/apps/issues/9760 + }, + text: 'HydraDX', + ui: { + color: '#f653a2', + logo: chainsSnakenetSVG, + }, + }, + { + homepage: 'https://hyperbridge.network', + info: 'hyperbridge', + paraId: 3367, + providers: { + BlockOps: 'wss://hyperbridge-nexus-rpc.blockops.network', + IBP1: 'wss://nexus.ibp.network', + IBP2: 'wss://nexus.dotters.network', + }, + text: 'Hyperbridge (Nexus)', + ui: { + color: '#ED6FF1', + logo: nodesHyperbridgePNG, + }, + }, + { + homepage: 'https://dot.crowdloan.integritee.network/', + info: 'integritee', + paraId: 3359, + providers: { + Dwellir: 'wss://integritee-rpc.dwellir.com', + Integritee: 'wss://polkadot.api.integritee.network', + }, + text: 'Integritee Network', + ui: { + color: '#658ea9', + logo: nodesIntegriteeSVG, + }, + }, + { + homepage: 'https://integritee.network', + info: 'integritee', + paraId: 2039, + providers: { + // Dwellir: 'wss://integritee-rpc.dwellir.com', + // Integritee: 'wss://polkadot.api.integritee.network' + }, + text: 'Integritee Network', + ui: { + color: '#2e154b', + logo: nodesIntegriteeSVG, + }, + }, + { + homepage: 'https://interlay.io/', + info: 'interlay', + paraId: 2032, + providers: { + Dwellir: 'wss://interlay-rpc.dwellir.com', + 'Kintsugi Labs': 'wss://api.interlay.io/parachain', + LuckyFriday: 'wss://rpc-interlay.luckyfriday.io/', + // OnFinality: 'wss://interlay.api.onfinality.io/public-ws' // https://github.com/polkadot-js/apps/issues/9986 + }, + text: 'Interlay', + ui: { + color: '#3E96FF', + logo: nodesInterlaySVG, + }, + }, + { + homepage: 'https://invarch.network/', + info: 'invarch', + paraId: 3340, + providers: { + Dwellir: 'wss://invarch-rpc.dwellir.com', + }, + text: 'InvArch', + ui: { + color: 'linear-gradient(278deg, #f7d365 5.74%, #ff408a 99.41%)', + logo: chainsInvarchJPEG, + }, + }, + { + homepage: 'https://totemaccounting.com/', + info: 'kapex', + paraId: 2007, + providers: { + // Dwellir: 'wss://kapex-rpc.dwellir.com' + // OnFinality: 'wss://kapex-parachain.api.onfinality.io/public-ws' // https://github.com/polkadot-js/apps/issues/9986 + // Totem: 'wss://k-ui.kapex.network' // https://github.com/polkadot-js/apps/issues/9616 + }, + text: 'Kapex', + ui: { + color: 'linear-gradient(158deg, rgba(226,157,0,1) 0%, rgba(234,55,203,1) 100%)', + logo: chainsTotemSVG, + }, + }, + { + homepage: 'https://www.kilt.io/', + info: 'kilt', + paraId: 2086, + providers: { + BOTLabs: 'wss://spiritnet.kilt.io/', + Dwellir: 'wss://kilt-rpc.dwellir.com', + IBP1: 'wss://kilt.ibp.network', + IBP2: 'wss://kilt.dotters.network', + }, + text: 'KILT Spiritnet', + ui: { + color: '#8c145a', + logo: nodesKiltPNG, + }, + }, + { + homepage: 'https://kylin.network/', + info: 'kylin', + paraId: 2052, + providers: { + // 'Kylin Network': 'wss://polkadot.kylin-node.co.uk' // https://github.com/polkadot-js/apps/issues/10030 + }, + text: 'Kylin', + ui: { + color: '#ed007e', + logo: nodesKylinPNG, + }, + }, + { + homepage: 'https://laosnetwork.io/', + info: 'laos', + paraId: 3370, + providers: { + Dwellir: 'wss://laos-rpc.dwellir.com', + 'freeverse.io': 'wss://rpc.laos.laosfoundation.io', + }, + text: 'Laos', + ui: { + color: 'linear-gradient(90deg, #25143B 0%, #613D93 29.69%, #EF9365 69.79%, #E2CF61 100%)', + logo: chainsLaosPNG, + }, + }, + { + homepage: 'https://www.litentry.com/', + info: 'litentry', + paraId: 2013, + providers: { + Dwellir: 'wss://litentry-rpc.dwellir.com', + Litentry: 'wss://rpc.litentry-parachain.litentry.io', + // OnFinality: 'wss://litentry.api.onfinality.io/public-ws' // https://github.com/polkadot-js/apps/issues/9993 + }, + text: 'Litentry', + ui: { + color: '#15B786', + logo: nodesLitentryPNG, + }, + }, + { + homepage: 'https://logion.network/', + info: 'logion', + paraId: 3354, + providers: { + 'Logion 1': 'wss://para-rpc01.logion.network', + // 'Logion 2': 'wss://para-rpc02.logion.network' // https://github.com/polkadot-js/apps/issues/10890 + }, + text: 'Logion', + ui: { + color: 'rgb(21, 38, 101)', + logo: chainsLogionPNG, + }, + }, + { + homepage: 'https://manta.network', + info: 'manta', + paraId: 2104, + providers: { + 'Manta Network': 'wss://ws.manta.systems', + // OnFinality: 'wss://manta.api.onfinality.io/public-ws' // https://github.com/polkadot-js/apps/issues/9977 + }, + text: 'Manta', + ui: { + color: '#2070a6', + logo: nodesMantaPNG, + }, + }, + { + homepage: 'https://moonbeam.network/networks/moonbeam/', + info: 'moonbeam', + paraId: 2004, + providers: { + Allnodes: 'wss://moonbeam-rpc.publicnode.com', + // 'Automata 1RPC': 'wss://1rpc.io/glmr', // https://github.com/polkadot-js/apps/issues/10566 + Blast: 'wss://moonbeam.public.blastapi.io', + Dwellir: 'wss://moonbeam-rpc.dwellir.com', + IBP1: 'wss://moonbeam.ibp.network', + IBP2: 'wss://moonbeam.dotters.network', + 'Moonbeam Foundation': 'wss://wss.api.moonbeam.network', + OnFinality: 'wss://moonbeam.api.onfinality.io/public-ws', + RadiumBlock: 'wss://moonbeam.public.curie.radiumblock.co/ws', + UnitedBloc: 'wss://moonbeam.unitedbloc.com', + }, + text: 'Moonbeam', + ui: { + color: '#000000', + logo: nodesMoonbeamSVG, + }, + }, + { + homepage: 'https://moonsama.com', + info: 'moonsama', + paraId: 3334, + providers: { + // Moonsama: 'wss://rpc.moonsama.com/ws' // https://github.com/polkadot-js/apps/issues/10289 + }, + text: 'Moonsama', + ui: { + color: '#1a202c', + logo: nodesMoonsamaSVG, + }, + }, + { + homepage: 'https://mythos.foundation/', + info: 'mythos', + paraId: 3369, + providers: { + parity: 'wss://polkadot-mythos-rpc.polkadot.io', + }, + text: 'Mythos', + ui: { + color: '#262528', + logo: nodesMythosPNG, + }, + }, + { + homepage: 'https://neuroweb.ai', + info: 'neuroweb', + paraId: 2043, + providers: { + Dwellir: 'wss://neuroweb-rpc.dwellir.com', + TraceLabs: 'wss://parachain-rpc.origin-trail.network', + }, + text: 'NeuroWeb', + ui: { + color: '#000000', + logo: chainsNeurowebPNG, + }, + }, + { + homepage: 'https://nodle.com', + info: 'nodle', + paraId: 2026, + providers: { + Dwellir: 'wss://nodle-rpc.dwellir.com', + OnFinality: 'wss://nodle-parachain.api.onfinality.io/public-ws', + }, + text: 'Nodle', + ui: { + color: '#1ab394', + logo: nodesNodleSVG, + }, + }, + { + homepage: 'https://oak.tech', + info: 'oak', + isUnreachable: true, + paraId: 2090, + providers: { + OAK: 'wss://rpc.oak.tech', + }, + text: 'OAK Network', + ui: { + color: '#A8278C', + logo: chainsOakPNG, + }, + }, + { + homepage: 'https://www.omnibtc.finance', + info: 'omnibtc', + isUnreachable: true, + paraId: 2053, + providers: { + OmniBTC: 'wss://psc-parachain.coming.chat', + }, + text: 'OmniBTC', + ui: { + color: '#6759E9', + logo: nodesOmnibtcSVG, + }, + }, + { + homepage: 'https://parallel.fi', + info: 'parallel', + paraId: 2012, + providers: { + Dwellir: 'wss://parallel-rpc.dwellir.com', + // OnFinality: 'wss://parallel.api.onfinality.io/public-ws', // https://github.com/polkadot-js/apps/issues/9986 + // Parallel: 'wss://polkadot-parallel-rpc.parallel.fi' // https://github.com/polkadot-js/apps/issues/10220 + }, + text: 'Parallel', + ui: { + color: '#ef18ac', + logo: nodesParallelSVG, + }, + }, + { + homepage: 'https://peaq.network/', + info: 'peaq', + paraId: 3338, + providers: { + // OnFinality: 'wss://peaq.api.onfinality.io/public-ws' + }, + text: 'peaq', + ui: { + color: '#281C66', + logo: chainsPeaqPNG, + }, + }, + { + homepage: 'https://pendulumchain.org/', + info: 'pendulum', + paraId: 2094, + providers: { + // Dwellir: 'wss://pendulum-rpc.dwellir.com', + PendulumChain: 'wss://rpc-pendulum.prd.pendulumchain.tech', + }, + text: 'Pendulum', + ui: { + color: '#49E2FD', + logo: chainsPendulumSVG, + }, + }, + { + homepage: 'https://phala.network', + info: 'phala', + paraId: 2035, + providers: { + Dwellir: 'wss://phala-rpc.dwellir.com', + Helikon: 'wss://rpc.helikon.io/phala', + OnFinality: 'wss://phala.api.onfinality.io/public-ws', + Phala: 'wss://api.phala.network/ws', + RadiumBlock: 'wss://phala.public.curie.radiumblock.co/ws', + // Rockx: 'wss://rockx-phala.w3node.com/polka-public-phala/ws' // https://github.com/polkadot-js/apps/issues/10728 + }, + text: 'Phala Network', + ui: { + color: '#c6fa4c', + logo: nodesPhalaSVG, + }, + }, + { + homepage: 'https://www.polimec.org/', + info: 'polimec', + paraId: 3344, + providers: { + Amforc: 'wss://polimec.rpc.amforc.com', + Helikon: 'wss://rpc.helikon.io/polimec', + IBP1: 'wss://polimec.ibp.network', + IBP2: 'wss://polimec.dotters.network', + 'Polimec Foundation': 'wss://rpc.polimec.org', + }, + text: 'Polimec', + ui: { + color: '#25311C', + logo: nodesPolimecSVG, + }, + }, + { + homepage: 'https://polkadex.trade/crowdloans', + info: 'polkadex', + paraId: 3363, + providers: { + // Dwellir: 'wss://polkadex-parachain-rpc.dwellir.com', + // OnFinality: 'wss://polkadex-parachain.api.onfinality.io/public-ws', + // RadiumBlock: 'wss://polkadex-parachain.public.curie.radiumblock.co/ws' + }, + text: 'Polkadex', + ui: { + color: '#7C30DD', + logo: nodesPolkadexSVG, + }, + }, + { + homepage: 'https://polkadex.trade/', + info: 'polkadex', + paraId: 2040, + providers: { + Dwellir: 'wss://polkadex-parachain-rpc.dwellir.com', + OnFinality: 'wss://polkadex-parachain.api.onfinality.io/public-ws', + RadiumBlock: 'wss://polkadex-parachain.public.curie.radiumblock.co/ws', + }, + text: 'Polkadex', + ui: { + color: '#7C30DD', + logo: nodesPolkadexSVG, + }, + }, + { + homepage: 'http://robonomics.network/', + info: 'robonomics', + paraId: 3388, + providers: { + // Airalab: 'wss://polkadot.rpc.robonomics.network/' // https://github.com/polkadot-js/apps/issues/10890 + }, + text: 'Robonomics', + ui: { + color: '#2949d3', + logo: nodesRobonomicsSVG, + }, + }, + { + homepage: 'https://sora.org/', + info: 'sora', + paraId: 2025, + providers: { + Soramitsu: 'wss://ws.parachain-collator-3.pc3.sora2.soramitsu.co.jp', + }, + text: 'SORA', + ui: { + color: '#2D2926', + logo: nodesSoraSubstrateSVG, + }, + }, + { + homepage: 'https://subdao.network/', + info: 'subdao', + isUnreachable: true, + paraId: 2018, + providers: { + SubDAO: 'wss://parachain-rpc.subdao.org', + }, + text: 'SubDAO', + ui: { + color: 'linear-gradient(50deg, #F20092 0%, #FF4D5D 100%)', + logo: nodesSubdaoPNG, + }, + }, + { + homepage: 'http://subgame.org/', + info: 'subgame', + paraId: 2017, + providers: { + // SubGame: 'wss://gamma.subgame.org/' // https://github.com/polkadot-js/apps/pull/6761 + }, + text: 'SubGame Gamma', + ui: { + color: '#EB027D', + logo: nodesSubgameSVG, + }, + }, + { + homepage: 'https://subsocial.network/', + info: 'subsocial', + paraId: 2101, + providers: { + Dappforce: 'wss://para.subsocial.network', + Dwellir: 'wss://subsocial-rpc.dwellir.com', + // OnFinality: 'wss://subsocial-polkadot.api.onfinality.io/public-ws' // https://github.com/polkadot-js/apps/issues/9977 + }, + text: 'Subsocial', + ui: { + color: '#b9018c', + logo: nodesSubsocialSVG, + }, + }, + { + homepage: 'https://www.t3rn.io/', + info: 't3rn', + paraId: 3333, + providers: { + t3rn: 'wss://ws.t3rn.io', + }, + text: 't3rn', + ui: { + color: '#6f3bb2', + logo: nodesT3rnPNG, + }, + }, + { + homepage: 'https://unique.network/', + info: 'unique', + paraId: 2037, + providers: { + Dwellir: 'wss://unique-rpc.dwellir.com', + 'Geo Load Balancer': 'wss://ws.unique.network', + IBP1: 'wss://unique.ibp.network', + IBP2: 'wss://unique.dotters.network', + // OnFinality: 'wss://unique.api.onfinality.io/public-ws', // https://github.com/polkadot-js/apps/issues/10030 + 'Unique America': 'wss://us-ws.unique.network', + 'Unique Asia': 'wss://asia-ws.unique.network', + 'Unique Europe': 'wss://eu-ws.unique.network', + }, + text: 'Unique Network', + ui: { + color: '#40BCFF', + logo: nodesUniqueSVG, + }, + }, + { + homepage: 'https://www.watr.org/', + info: 'watr', + paraId: 2058, + providers: { + RadiumBlock: 'wss://watr.public.curie.radiumblock.co/ws', + // Watr: 'wss://watr-rpc.watr-api.network' // https://github.com/polkadot-js/apps/issues/10890 + }, + text: 'Watr Network', + ui: { + color: '#373b39', + logo: chainsWatrPNG, + }, + }, + { + homepage: 'https://zeitgeist.pm', + info: 'zeitgeist', + paraId: 2092, + providers: { + OnFinality: 'wss://zeitgeist.api.onfinality.io/public-ws', + ZeitgeistPM: 'wss://main.rpc.zeitgeist.pm/ws', + }, + text: 'Zeitgeist', + ui: { + color: + 'linear-gradient(180deg, rgba(32,90,172,1) 0%, rgba(26,72,138,1) 50%, rgba(13,36,69,1) 100%)', + logo: nodesZeitgeistPNG, + }, + }, + { + info: 'PolkadotAssetHub', + isPeopleForIdentity: true, + paraId: 1000, + providers: { + Dwellir: 'wss://asset-hub-polkadot-rpc.dwellir.com', + 'Dwellir Tunisia': 'wss://statemint-rpc-tn.dwellir.com', + IBP1: 'wss://sys.ibp.network/asset-hub-polkadot', + IBP2: 'wss://sys.dotters.network/asset-hub-polkadot', + LuckyFriday: 'wss://rpc-asset-hub-polkadot.luckyfriday.io', + OnFinality: 'wss://statemint.api.onfinality.io/public-ws', + Parity: 'wss://polkadot-asset-hub-rpc.polkadot.io', + RadiumBlock: 'wss://statemint.public.curie.radiumblock.co/ws', + Stakeworld: 'wss://dot-rpc.stakeworld.io/assethub', + }, + relayName: 'polkadot', + teleport: [-1], + text: 'AssetHub', + ui: { + color: '#86e62a', + logo: nodesAssetHubSVG, + }, + }, + { + info: 'polkadotBridgeHub', + isPeopleForIdentity: true, + paraId: 1002, + providers: { + Dwellir: 'wss://bridge-hub-polkadot-rpc.dwellir.com', + 'Dwellir Tunisia': 'wss://polkadot-bridge-hub-rpc-tn.dwellir.com', + IBP1: 'wss://sys.ibp.network/bridgehub-polkadot', + IBP2: 'wss://sys.dotters.network/bridgehub-polkadot', + LuckyFriday: 'wss://rpc-bridge-hub-polkadot.luckyfriday.io', + OnFinality: 'wss://bridgehub-polkadot.api.onfinality.io/public-ws', + Parity: 'wss://polkadot-bridge-hub-rpc.polkadot.io', + RadiumBlock: 'wss://bridgehub-polkadot.public.curie.radiumblock.co/ws', + Stakeworld: 'wss://dot-rpc.stakeworld.io/bridgehub', + }, + relayName: 'polkadot', + teleport: [-1], + text: 'BridgeHub', + ui: { + logo: nodesBridgeHubSVG, + }, + }, + { + info: 'polkadotCollectives', + isPeopleForIdentity: true, + paraId: 1001, + providers: { + Dwellir: 'wss://collectives-polkadot-rpc.dwellir.com', + 'Dwellir Tunisia': 'wss://polkadot-collectives-rpc-tn.dwellir.com', + IBP1: 'wss://sys.ibp.network/collectives-polkadot', + IBP2: 'wss://sys.dotters.network/collectives-polkadot', + LuckyFriday: 'wss://rpc-collectives-polkadot.luckyfriday.io', + OnFinality: 'wss://collectives.api.onfinality.io/public-ws', + Parity: 'wss://polkadot-collectives-rpc.polkadot.io', + RadiumBlock: 'wss://collectives.public.curie.radiumblock.co/ws', + Stakeworld: 'wss://dot-rpc.stakeworld.io/collectives', + }, + relayName: 'polkadot', + teleport: [-1], + text: 'Collectives', + ui: { + color: '#e6777a', + logo: 'fa;people-group', + }, + }, + { + info: 'polkadotCoretime', + isPeopleForIdentity: true, + paraId: 1005, + providers: { + Parity: 'wss://polkadot-coretime-rpc.polkadot.io', + }, + relayName: 'polkadot', + teleport: [-1], + text: 'Coretime', + ui: {}, + }, + { + info: 'polkadotPeople', + isPeople: true, + isPeopleForIdentity: false, + paraId: 1004, + providers: { + IBP1: 'wss://sys.ibp.network/people-polkadot', + IBP2: 'wss://sys.dotters.network/people-polkadot', + LuckyFriday: 'wss://rpc-people-polkadot.luckyfriday.io', + Parity: 'wss://polkadot-people-rpc.polkadot.io', + RadiumBlock: 'wss://people-polkadot.public.curie.radiumblock.co/ws', + }, + relayName: 'polkadot', + teleport: [-1], + text: 'People', + ui: { + color: '#e84366', + logo: chainsPeoplePolkadotSVG, + }, + }, +]; + +export default prodParasKusama; diff --git a/src/components/Elements/Selectors/ChainSelector/index.tsx b/src/components/Elements/Selectors/ChainSelector/index.tsx index bb124792..fe2e4750 100644 --- a/src/components/Elements/Selectors/ChainSelector/index.tsx +++ b/src/components/Elements/Selectors/ChainSelector/index.tsx @@ -24,6 +24,8 @@ import { enableRegionX } from '@/utils/functions'; import { Kusama, KusamaCoretime, + Polkadot, + PolkadotCoretime, RegionX, Rococo, RococoCoretime, @@ -33,6 +35,7 @@ import { import { useNetwork } from '@/contexts/network'; const coretimeIcons = { + [NetworkType.POLKADOT]: PolkadotCoretime, [NetworkType.KUSAMA]: KusamaCoretime, [NetworkType.ROCOCO]: RococoCoretime, [NetworkType.WESTEND]: WestendCoretime, @@ -40,6 +43,7 @@ const coretimeIcons = { }; const relayIcons = { + [NetworkType.POLKADOT]: Polkadot, [NetworkType.KUSAMA]: Kusama, [NetworkType.ROCOCO]: Rococo, [NetworkType.WESTEND]: Westend, diff --git a/src/components/Elements/Selectors/NetworkSelector/index.tsx b/src/components/Elements/Selectors/NetworkSelector/index.tsx index 4d7461cf..3b89c2f0 100644 --- a/src/components/Elements/Selectors/NetworkSelector/index.tsx +++ b/src/components/Elements/Selectors/NetworkSelector/index.tsx @@ -2,7 +2,11 @@ import { Box, FormControl, MenuItem, Select, Typography } from '@mui/material'; import Image from 'next/image'; import { useRouter } from 'next/router'; -import { Kusama as KusamaIcon, Rococo as RococoIcon } from '@/assets/networks/relay'; +import { + Kusama as KusamaIcon, + Polkadot as PolkadotIcon, + Rococo as RococoIcon, +} from '@/assets/networks/relay'; import { useNetwork } from '@/contexts/network'; import { NetworkType } from '@/models'; @@ -22,6 +26,11 @@ export const NetworkSelector = () => { }; const menuItems = [ + { + value: NetworkType.POLKADOT, + label: 'Polkadot', + icon: PolkadotIcon, + }, { value: NetworkType.KUSAMA, label: 'Kusama', diff --git a/src/consts/index.ts b/src/consts/index.ts index 2581aae8..e4f037d8 100644 --- a/src/consts/index.ts +++ b/src/consts/index.ts @@ -3,15 +3,17 @@ import { NetworkType } from '@/models'; export const APP_NAME = 'coretime-hub'; export const API_CORETIME_INDEXER = { - [NetworkType.ROCOCO]: process.env.ROCOCO_CORETIME_INDEXER ?? '', + [NetworkType.POLKADOT]: process.env.POLKADOT_CORETIME_INDEXER ?? '', [NetworkType.KUSAMA]: process.env.KUSAMA_CORETIME_INDEXER ?? '', + [NetworkType.ROCOCO]: process.env.ROCOCO_CORETIME_INDEXER ?? '', [NetworkType.WESTEND]: process.env.SUBSCAN_CORETIME_WESTEND_INDEXER ?? '', [NetworkType.NONE]: '', }; export const API_CORETIME_DICT = { - [NetworkType.ROCOCO]: process.env.ROCOCO_CORETIME_DICT ?? '', + [NetworkType.POLKADOT]: process.env.POLKADOT_CORETIME_DICT ?? '', [NetworkType.KUSAMA]: process.env.KUSAMA_CORETIME_DICT ?? '', + [NetworkType.ROCOCO]: process.env.ROCOCO_CORETIME_DICT ?? '', [NetworkType.WESTEND]: process.env.SUBSCAN_CORETIME_WESTEND_DICT ?? '', [NetworkType.NONE]: '', }; @@ -19,25 +21,29 @@ export const API_CORETIME_DICT = { export const API_COCOS_INDEXER = process.env.COCOS_INDEXER ?? ''; export const SUSBCAN_CORETIME_URL = { - [NetworkType.ROCOCO]: 'https://coretime-rococo.subscan.io', + [NetworkType.POLKADOT]: 'https://coretime-polkadot.subscan.io', [NetworkType.KUSAMA]: 'https://coretime-kusama.subscan.io', + [NetworkType.ROCOCO]: 'https://coretime-rococo.subscan.io', [NetworkType.WESTEND]: 'https://coretime-westend.subscan.io', [NetworkType.NONE]: '', }; export const SUSBCAN_RELAY_URL = { - [NetworkType.ROCOCO]: 'https://rococo.subscan.io', + [NetworkType.POLKADOT]: 'https://polkadot.subscan.io', [NetworkType.KUSAMA]: 'https://kusama.subscan.io', + [NetworkType.ROCOCO]: 'https://rococo.subscan.io', [NetworkType.WESTEND]: 'https://westend.subscan.io/', [NetworkType.NONE]: '', }; -export const WS_ROCOCO_RELAY_CHAIN = process.env.WS_ROCOCO_RELAY_CHAIN ?? ''; +export const WS_POLKADOT_RELAY_CHAIN = process.env.WS_POLKADOT_RELAY_CHAIN ?? ''; export const WS_KUSAMA_RELAY_CHAIN = process.env.WS_KUSAMA_RELAY_CHAIN ?? ''; +export const WS_ROCOCO_RELAY_CHAIN = process.env.WS_ROCOCO_RELAY_CHAIN ?? ''; export const WS_WESTEND_RELAY_CHAIN = process.env.WS_WESTEND_RELAY_CHAIN ?? ''; -export const WS_ROCOCO_CORETIME_CHAIN = process.env.WS_ROCOCO_CORETIME_CHAIN ?? ''; +export const WS_POLKADOT_CORETIME_CHAIN = process.env.WS_POLKADOT_CORETIME_CHAIN ?? ''; export const WS_KUSAMA_CORETIME_CHAIN = process.env.WS_KUSAMA_CORETIME_CHAIN ?? ''; +export const WS_ROCOCO_CORETIME_CHAIN = process.env.WS_ROCOCO_CORETIME_CHAIN ?? ''; export const WS_WESTEND_CORETIME_CHAIN = process.env.WS_WESTEND_CORETIME_CHAIN ?? ''; export const WS_REGIONX_COCOS_CHAIN = process.env.WS_REGIONX_COCOS_CHAIN ?? ''; diff --git a/src/contexts/apis/CoretimeApi/index.tsx b/src/contexts/apis/CoretimeApi/index.tsx index b8444a04..00d45d75 100644 --- a/src/contexts/apis/CoretimeApi/index.tsx +++ b/src/contexts/apis/CoretimeApi/index.tsx @@ -2,6 +2,7 @@ import React, { useContext, useEffect, useReducer } from 'react'; import { WS_KUSAMA_CORETIME_CHAIN, + WS_POLKADOT_CORETIME_CHAIN, WS_ROCOCO_CORETIME_CHAIN, WS_WESTEND_CORETIME_CHAIN, } from '@/consts'; @@ -47,14 +48,17 @@ const CoretimeApiContextProvider = (props: any) => { const TIMESLICE_PERIOD = 80; const getUrl = (network: any): string | null => { - if (network === NetworkType.ROCOCO) { - return WS_ROCOCO_CORETIME_CHAIN; - } else if (network === NetworkType.KUSAMA) { - return WS_KUSAMA_CORETIME_CHAIN; - } else if (network === NetworkType.WESTEND) { - return WS_WESTEND_CORETIME_CHAIN; - } else { - return null; + switch (network) { + case NetworkType.POLKADOT: + return WS_POLKADOT_CORETIME_CHAIN; + case NetworkType.KUSAMA: + return WS_KUSAMA_CORETIME_CHAIN; + case NetworkType.ROCOCO: + return WS_ROCOCO_CORETIME_CHAIN; + case NetworkType.WESTEND: + return WS_WESTEND_CORETIME_CHAIN; + default: + return null; } }; diff --git a/src/contexts/apis/RelayApi/index.tsx b/src/contexts/apis/RelayApi/index.tsx index c65013c9..46692d0e 100644 --- a/src/contexts/apis/RelayApi/index.tsx +++ b/src/contexts/apis/RelayApi/index.tsx @@ -2,7 +2,12 @@ import React, { useContext, useEffect, useReducer, useState } from 'react'; import { parseHNString } from '@/utils/functions'; -import { WS_KUSAMA_RELAY_CHAIN, WS_ROCOCO_RELAY_CHAIN, WS_WESTEND_RELAY_CHAIN } from '@/consts'; +import { + WS_KUSAMA_RELAY_CHAIN, + WS_POLKADOT_RELAY_CHAIN, + WS_ROCOCO_RELAY_CHAIN, + WS_WESTEND_RELAY_CHAIN, +} from '@/consts'; import { ApiState } from '@/contexts/apis/types'; import { useNetwork } from '@/contexts/network'; import { useToast } from '@/contexts/toast'; @@ -34,14 +39,17 @@ const RelayApiContextProvider = (props: any) => { const disconnectRelay = () => disconnect(state); const getUrl = (network: any): string | null => { - if (network === NetworkType.ROCOCO) { - return WS_ROCOCO_RELAY_CHAIN; - } else if (network === NetworkType.KUSAMA) { - return WS_KUSAMA_RELAY_CHAIN; - } else if (network === NetworkType.WESTEND) { - return WS_WESTEND_RELAY_CHAIN; - } else { - return null; + switch (network) { + case NetworkType.POLKADOT: + return WS_POLKADOT_RELAY_CHAIN; + case NetworkType.KUSAMA: + return WS_KUSAMA_RELAY_CHAIN; + case NetworkType.ROCOCO: + return WS_ROCOCO_RELAY_CHAIN; + case NetworkType.WESTEND: + return WS_WESTEND_RELAY_CHAIN; + default: + return null; } }; diff --git a/src/contexts/network/index.tsx b/src/contexts/network/index.tsx index 196e0e00..925d9776 100644 --- a/src/contexts/network/index.tsx +++ b/src/contexts/network/index.tsx @@ -29,17 +29,18 @@ const NetworkProvider = ({ children }: Props) => { useEffect(() => { if (!router.isReady) return; - if (network === 'rococo') setActiveNetwork(NetworkType.ROCOCO); - else if (network === 'kusama') setActiveNetwork(NetworkType.KUSAMA); + if (network === 'polkadot') setActiveNetwork(NetworkType.POLKADOT); + if (network === 'kusama') setActiveNetwork(NetworkType.KUSAMA); + else if (network === 'rococo') setActiveNetwork(NetworkType.ROCOCO); else if (network === 'westend') setActiveNetwork(NetworkType.WESTEND); else { - // invalid network param. redirect to the default chain: kusama + // invalid network param. redirect to the default chain: polkadot router.push( { pathname: router.pathname, query: { ...router.query, - network: 'kusama', + network: 'polkadot', }, }, undefined, diff --git a/src/hooks/sale/burnInfo.ts b/src/hooks/sale/burnInfo.ts index 97fd0601..8dd7aa25 100644 --- a/src/hooks/sale/burnInfo.ts +++ b/src/hooks/sale/burnInfo.ts @@ -19,7 +19,7 @@ export const useBurnInfo = (network: NetworkType) => { setCurrentBurn(parseInt(data.sales.nodes[0]?.burn || '0')); setPrevBurn(parseInt(data.sales.nodes[1]?.burn || '0')); - setTotalBurn(parseInt(data.stats.nodes[0].totalBurn)); + setTotalBurn(parseInt(data.stats.nodes[0]?.totalBurn) || 0); setLoading(false); }; asyncFetchData(); diff --git a/src/models/common/enums.ts b/src/models/common/enums.ts index 2a366fd6..6e92479e 100644 --- a/src/models/common/enums.ts +++ b/src/models/common/enums.ts @@ -20,10 +20,12 @@ export enum ChainType { export enum NetworkType { // eslint-disable-next-line no-unused-vars - ROCOCO = 'rococo', + POLKADOT = 'polkadot', // eslint-disable-next-line no-unused-vars KUSAMA = 'kusama', // eslint-disable-next-line no-unused-vars + ROCOCO = 'rococo', + // eslint-disable-next-line no-unused-vars WESTEND = 'westend', // eslint-disable-next-line no-unused-vars NONE = 'none', diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 89a38faf..5ab3b397 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -29,7 +29,7 @@ import { useCoretimeApi } from '@/contexts/apis'; import { ApiState } from '@/contexts/apis/types'; import { useNetwork } from '@/contexts/network'; import { useSaleInfo } from '@/contexts/sales'; -import { ContextStatus, PurchaseType } from '@/models'; +import { PurchaseType } from '@/models'; const Home = () => { const theme = useTheme(); @@ -40,7 +40,6 @@ const Home = () => { state: { decimals, symbol, apiState }, } = useCoretimeApi(); const { - status, saleInfo: { regionBegin, coresSold, coresOffered }, phase: { currentPrice }, } = useSaleInfo(); @@ -156,10 +155,7 @@ const Home = () => { }, ]; - return status !== ContextStatus.LOADED || - apiState !== ApiState.READY || - loadingBurnInfo || - loadingPurchaseHistory ? ( + return apiState !== ApiState.READY || loadingBurnInfo || loadingPurchaseHistory ? ( @@ -278,7 +274,7 @@ const Home = () => { ))} - {status === ContextStatus.LOADED && ( + { @@ -292,7 +288,7 @@ const Home = () => { - )} + } ); }; diff --git a/src/pages/purchase.tsx b/src/pages/purchase.tsx index 57786617..e2e93885 100644 --- a/src/pages/purchase.tsx +++ b/src/pages/purchase.tsx @@ -1,13 +1,11 @@ -import { Backdrop, Box, Button, CircularProgress, Typography, useTheme } from '@mui/material'; +import { Box, Button, Typography, useTheme } from '@mui/material'; import { useRouter } from 'next/router'; import { useState } from 'react'; import { useSubmitExtrinsic } from '@/hooks/submitExtrinsic'; -import { isNewPricing } from '@/utils/sale'; import { Balance, - Banner, CoreDetailsPanel, ProgressButton, SaleInfoPanel, @@ -21,7 +19,7 @@ import { useNetwork } from '@/contexts/network'; import { useRegions } from '@/contexts/regions'; import { useSaleInfo } from '@/contexts/sales'; import { useToast } from '@/contexts/toast'; -import { ContextStatus, SalePhase } from '@/models'; +import { SalePhase } from '@/models'; const Purchase = () => { const theme = useTheme(); @@ -35,12 +33,11 @@ const Purchase = () => { const { saleInfo, - status, phase: { currentPhase, currentPrice }, fetchSaleInfo, } = useSaleInfo(); const { - state: { api, apiState, height, symbol, decimals }, + state: { api, apiState, symbol, decimals }, } = useCoretimeApi(); const router = useRouter(); const { network } = useNetwork(); @@ -111,65 +108,45 @@ const Purchase = () => { - - - - {status !== ContextStatus.LOADED ? ( - - - - ) : ( - - - - - - - - + + + + + + + + - - + Manage your regions + + - )} + );