Skip to content

Commit

Permalink
Selectively support different runtimes per network
Browse files Browse the repository at this point in the history
  • Loading branch information
csillag committed May 22, 2023
1 parent 7d5031b commit 72010e6
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 27 deletions.
23 changes: 12 additions & 11 deletions src/app/pages/HomePage/Graph/Graph/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { Link, useNavigate } from 'react-router-dom'
import { useTranslation } from 'react-i18next'
import { styled, useTheme } from '@mui/material/styles'
import { forwardRef, ForwardRefRenderFunction, memo, useEffect, useRef, useState } from 'react'
import { useConstant } from '../../../../hooks/useConstant'
import { RouteUtils } from '../../../../utils/route-utils'
import { useGetBoundingClientRect } from '../../../../hooks/useGetBoundingClientRect'
import useMediaQuery from '@mui/material/useMediaQuery'
Expand Down Expand Up @@ -85,7 +84,7 @@ const GraphCmp: ForwardRefRenderFunction<SVGSVGElement, GraphProps> = (
const navigate = useNavigate()
const theme = useTheme()
const isMobile = useMediaQuery(theme.breakpoints.down('sm'))
const enabledLayers = useConstant(() => RouteUtils.getEnabledLayers())
const enabledLayers = RouteUtils.getEnabledLayersForNetwork(network)
const consensusRef = useRef<SVGCircleElement>(null)
const consensusRefInnerCircle = useRef<SVGCircleElement>(null)
const emeraldRef = useRef<SVGGElement>(null)
Expand Down Expand Up @@ -127,29 +126,29 @@ const GraphCmp: ForwardRefRenderFunction<SVGSVGElement, GraphProps> = (
return !enabledLayers.includes(Layer)
}

const disabledMap = useConstant<{
[key in Layer]: boolean
}>(() => ({
const disabledMap: Record<Layer, boolean> = {
[Layer.emerald]: isLayerDisabled(Layer.emerald),
[Layer.consensus]: isLayerDisabled(Layer.consensus),
[Layer.cipher]: isLayerDisabled(Layer.cipher),
[Layer.sapphire]: isLayerDisabled(Layer.sapphire),
}))
}

const onSelectLayer = (Layer: Layer) => {
if (isMobile && (disabledMap[Layer] || (!disabledMap[Layer] && selectedLayer === Layer))) {
if (isMobile && !disabledMap[Layer] && selectedLayer === Layer) {
setActiveMobileGraphTooltip(Layer)

return
}

if (selectedLayer === Layer && RouteUtils.getEnabledLayers().includes(selectedLayer)) {
if (selectedLayer === Layer && RouteUtils.getEnabledLayersForNetwork(network).includes(selectedLayer)) {
navigate(RouteUtils.getDashboardRoute(network, selectedLayer))

return
}

setSelectedLayer(Layer)
if (!disabledMap[Layer]) {
setSelectedLayer(Layer)
}
}

const handleOpenZoomedInLayerTooltip = (layer: Layer) => {
Expand Down Expand Up @@ -250,7 +249,7 @@ const GraphCmp: ForwardRefRenderFunction<SVGSVGElement, GraphProps> = (
d="M172.232 172.508C171.688 172.508 171.206 172.385 170.784 172.14C170.363 171.889 170.032 171.548 169.792 171.116C169.552 170.679 169.432 170.177 169.432 169.612C169.432 169.047 169.552 168.548 169.792 168.116C170.032 167.679 170.36 167.337 170.776 167.092C171.198 166.841 171.68 166.716 172.224 166.716C172.608 166.716 172.966 166.785 173.296 166.924C173.627 167.057 173.915 167.247 174.16 167.492C174.411 167.732 174.603 168.009 174.736 168.324L173.72 168.7C173.63 168.503 173.51 168.332 173.36 168.188C173.211 168.039 173.04 167.924 172.848 167.844C172.656 167.759 172.448 167.716 172.224 167.716C171.899 167.716 171.608 167.799 171.352 167.964C171.102 168.124 170.904 168.345 170.76 168.628C170.622 168.911 170.552 169.239 170.552 169.612C170.552 169.985 170.624 170.316 170.768 170.604C170.912 170.887 171.112 171.111 171.368 171.276C171.624 171.436 171.918 171.516 172.248 171.516C172.478 171.516 172.686 171.473 172.872 171.388C173.064 171.297 173.232 171.175 173.376 171.02C173.526 170.865 173.646 170.687 173.736 170.484L174.752 170.852C174.619 171.177 174.427 171.465 174.176 171.716C173.931 171.967 173.643 172.161 173.312 172.3C172.982 172.439 172.622 172.508 172.232 172.508ZM177.285 172.508C176.88 172.508 176.517 172.42 176.197 172.244C175.883 172.063 175.635 171.815 175.453 171.5C175.277 171.185 175.189 170.823 175.189 170.412C175.189 170.001 175.277 169.639 175.453 169.324C175.629 169.009 175.875 168.764 176.189 168.588C176.504 168.407 176.864 168.316 177.269 168.316C177.68 168.316 178.043 168.407 178.357 168.588C178.672 168.764 178.917 169.009 179.093 169.324C179.269 169.639 179.357 170.001 179.357 170.412C179.357 170.823 179.269 171.185 179.093 171.5C178.917 171.815 178.672 172.063 178.357 172.244C178.048 172.42 177.691 172.508 177.285 172.508ZM177.285 171.532C177.483 171.532 177.656 171.484 177.805 171.388C177.955 171.292 178.069 171.161 178.149 170.996C178.235 170.825 178.277 170.631 178.277 170.412C178.277 170.193 178.235 170.001 178.149 169.836C178.064 169.665 177.944 169.532 177.789 169.436C177.64 169.34 177.467 169.292 177.269 169.292C177.077 169.292 176.904 169.34 176.749 169.436C176.6 169.532 176.483 169.665 176.397 169.836C176.312 170.001 176.269 170.193 176.269 170.412C176.269 170.631 176.312 170.825 176.397 170.996C176.483 171.161 176.603 171.292 176.757 171.388C176.912 171.484 177.088 171.532 177.285 171.532ZM180.054 172.412V168.412H181.046L181.11 169.148V172.412H180.054ZM182.702 172.412V170.364L183.758 170.124V172.412H182.702ZM182.702 170.364C182.702 170.092 182.67 169.881 182.606 169.732C182.547 169.583 182.462 169.476 182.35 169.412C182.238 169.343 182.107 169.308 181.958 169.308C181.686 169.303 181.475 169.385 181.326 169.556C181.182 169.727 181.11 169.98 181.11 170.316H180.758C180.758 169.889 180.819 169.529 180.942 169.236C181.07 168.937 181.246 168.711 181.47 168.556C181.694 168.396 181.958 168.316 182.262 168.316C182.747 168.316 183.118 168.465 183.374 168.764C183.635 169.057 183.763 169.511 183.758 170.124L182.702 170.364ZM186.097 172.508C185.841 172.508 185.601 172.471 185.377 172.396C185.153 172.316 184.955 172.204 184.785 172.06C184.614 171.911 184.481 171.729 184.385 171.516L185.289 171.1C185.369 171.228 185.478 171.34 185.617 171.436C185.755 171.527 185.915 171.572 186.097 171.572C186.273 171.572 186.409 171.548 186.505 171.5C186.601 171.447 186.649 171.372 186.649 171.276C186.649 171.18 186.609 171.111 186.529 171.068C186.454 171.02 186.35 170.98 186.217 170.948L185.849 170.852C185.465 170.751 185.161 170.591 184.937 170.372C184.718 170.148 184.609 169.892 184.609 169.604C184.609 169.193 184.739 168.876 185.001 168.652C185.267 168.428 185.643 168.316 186.129 168.316C186.379 168.316 186.611 168.353 186.825 168.428C187.043 168.503 187.23 168.607 187.385 168.74C187.539 168.873 187.646 169.028 187.705 169.204L186.833 169.604C186.795 169.497 186.705 169.412 186.561 169.348C186.417 169.279 186.273 169.244 186.129 169.244C185.985 169.244 185.873 169.276 185.793 169.34C185.718 169.399 185.681 169.481 185.681 169.588C185.681 169.657 185.718 169.716 185.793 169.764C185.867 169.807 185.974 169.844 186.113 169.876L186.633 170.004C186.894 170.068 187.102 170.172 187.257 170.316C187.417 170.455 187.531 170.612 187.601 170.788C187.675 170.959 187.713 171.127 187.713 171.292C187.713 171.532 187.641 171.745 187.497 171.932C187.358 172.113 187.166 172.255 186.921 172.356C186.681 172.457 186.406 172.508 186.097 172.508ZM190.135 172.508C189.74 172.508 189.391 172.42 189.087 172.244C188.783 172.063 188.543 171.815 188.367 171.5C188.196 171.185 188.111 170.823 188.111 170.412C188.111 170.001 188.199 169.639 188.375 169.324C188.556 169.009 188.802 168.764 189.111 168.588C189.426 168.407 189.786 168.316 190.191 168.316C190.538 168.316 190.858 168.409 191.151 168.596C191.45 168.777 191.69 169.047 191.871 169.404C192.052 169.756 192.143 170.185 192.143 170.692H191.071C191.076 170.34 191.039 170.06 190.959 169.852C190.884 169.639 190.778 169.487 190.639 169.396C190.5 169.3 190.338 169.252 190.151 169.252C189.943 169.252 189.767 169.295 189.623 169.38C189.479 169.465 189.37 169.596 189.295 169.772C189.226 169.943 189.191 170.167 189.191 170.444C189.191 170.684 189.239 170.884 189.335 171.044C189.431 171.204 189.559 171.327 189.719 171.412C189.879 171.492 190.055 171.532 190.247 171.532C190.455 171.532 190.623 171.487 190.751 171.396C190.884 171.305 190.986 171.188 191.055 171.044L192.047 171.428C191.935 171.652 191.788 171.847 191.607 172.012C191.431 172.172 191.22 172.295 190.975 172.38C190.73 172.465 190.45 172.508 190.135 172.508ZM188.799 170.692L188.807 169.868H191.623V170.692H188.799ZM192.757 172.412V168.412H193.749L193.813 169.148V172.412H192.757ZM195.405 172.412V170.364L196.461 170.124V172.412H195.405ZM195.405 170.364C195.405 170.092 195.373 169.881 195.309 169.732C195.25 169.583 195.165 169.476 195.053 169.412C194.941 169.343 194.81 169.308 194.661 169.308C194.389 169.303 194.178 169.385 194.029 169.556C193.885 169.727 193.813 169.98 193.813 170.316H193.461C193.461 169.889 193.522 169.529 193.645 169.236C193.773 168.937 193.949 168.711 194.173 168.556C194.397 168.396 194.661 168.316 194.965 168.316C195.45 168.316 195.821 168.465 196.077 168.764C196.338 169.057 196.466 169.511 196.461 170.124L195.405 170.364ZM198.8 172.508C198.544 172.508 198.304 172.471 198.08 172.396C197.856 172.316 197.658 172.204 197.488 172.06C197.317 171.911 197.184 171.729 197.088 171.516L197.992 171.1C198.072 171.228 198.181 171.34 198.32 171.436C198.458 171.527 198.618 171.572 198.8 171.572C198.976 171.572 199.112 171.548 199.208 171.5C199.304 171.447 199.352 171.372 199.352 171.276C199.352 171.18 199.312 171.111 199.232 171.068C199.157 171.02 199.053 170.98 198.92 170.948L198.552 170.852C198.168 170.751 197.864 170.591 197.64 170.372C197.421 170.148 197.312 169.892 197.312 169.604C197.312 169.193 197.442 168.876 197.704 168.652C197.97 168.428 198.346 168.316 198.832 168.316C199.082 168.316 199.314 168.353 199.528 168.428C199.746 168.503 199.933 168.607 200.088 168.74C200.242 168.873 200.349 169.028 200.408 169.204L199.536 169.604C199.498 169.497 199.408 169.412 199.264 169.348C199.12 169.279 198.976 169.244 198.832 169.244C198.688 169.244 198.576 169.276 198.496 169.34C198.421 169.399 198.384 169.481 198.384 169.588C198.384 169.657 198.421 169.716 198.496 169.764C198.57 169.807 198.677 169.844 198.816 169.876L199.336 170.004C199.597 170.068 199.805 170.172 199.96 170.316C200.12 170.455 200.234 170.612 200.304 170.788C200.378 170.959 200.416 171.127 200.416 171.292C200.416 171.532 200.344 171.745 200.2 171.932C200.061 172.113 199.869 172.255 199.624 172.356C199.384 172.457 199.109 172.508 198.8 172.508ZM203.67 172.412L203.606 171.676V168.412H204.662V172.412H203.67ZM200.958 170.7V168.412H202.014V170.46L200.958 170.7ZM202.014 170.46C202.014 170.727 202.044 170.937 202.102 171.092C202.166 171.241 202.254 171.351 202.366 171.42C202.484 171.484 202.614 171.516 202.758 171.516C203.036 171.521 203.246 171.439 203.39 171.268C203.534 171.092 203.606 170.839 203.606 170.508H203.966C203.966 170.935 203.902 171.297 203.774 171.596C203.652 171.889 203.476 172.116 203.246 172.276C203.022 172.431 202.758 172.508 202.454 172.508C201.974 172.508 201.604 172.361 201.342 172.068C201.086 171.769 200.958 171.313 200.958 170.7L202.014 170.46ZM207.073 172.508C206.817 172.508 206.577 172.471 206.353 172.396C206.129 172.316 205.932 172.204 205.761 172.06C205.59 171.911 205.457 171.729 205.361 171.516L206.265 171.1C206.345 171.228 206.454 171.34 206.593 171.436C206.732 171.527 206.892 171.572 207.073 171.572C207.249 171.572 207.385 171.548 207.481 171.5C207.577 171.447 207.625 171.372 207.625 171.276C207.625 171.18 207.585 171.111 207.505 171.068C207.43 171.02 207.326 170.98 207.193 170.948L206.825 170.852C206.441 170.751 206.137 170.591 205.913 170.372C205.694 170.148 205.585 169.892 205.585 169.604C205.585 169.193 205.716 168.876 205.977 168.652C206.244 168.428 206.62 168.316 207.105 168.316C207.356 168.316 207.588 168.353 207.801 168.428C208.02 168.503 208.206 168.607 208.361 168.74C208.516 168.873 208.622 169.028 208.681 169.204L207.809 169.604C207.772 169.497 207.681 169.412 207.537 169.348C207.393 169.279 207.249 169.244 207.105 169.244C206.961 169.244 206.849 169.276 206.769 169.34C206.694 169.399 206.657 169.481 206.657 169.588C206.657 169.657 206.694 169.716 206.769 169.764C206.844 169.807 206.95 169.844 207.089 169.876L207.609 170.004C207.87 170.068 208.078 170.172 208.233 170.316C208.393 170.455 208.508 170.612 208.577 170.788C208.652 170.959 208.689 171.127 208.689 171.292C208.689 171.532 208.617 171.745 208.473 171.932C208.334 172.113 208.142 172.255 207.897 172.356C207.657 172.457 207.382 172.508 207.073 172.508Z"
fill="white"
/>
<g style={{ pointerEvents: selectedLayer === Layer.emerald ? 'auto' : 'none' }}>
<g style={{ pointerEvents: selectedLayer === Layer.emerald && !disabledMap.emerald ? 'auto' : 'none' }}>
<Link to={RouteUtils.getLatestTransactionsRoute(network, Layer.emerald)}>
<circle
cx="234.552"
Expand Down Expand Up @@ -291,7 +290,9 @@ const GraphCmp: ForwardRefRenderFunction<SVGSVGElement, GraphProps> = (
</Link>
</g>

<g style={{ pointerEvents: selectedLayer === Layer.sapphire ? 'auto' : 'none' }}>
<g
style={{ pointerEvents: selectedLayer === Layer.sapphire && !disabledMap.sapphire ? 'auto' : 'none' }}
>
<Link to={RouteUtils.getLatestTransactionsRoute(network, Layer.sapphire)}>
<circle
cx="155.833"
Expand Down
24 changes: 12 additions & 12 deletions src/app/pages/SearchResultsPage/hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,31 +28,31 @@ export function useBlocksConditionally(blockHeight: string | undefined): Conditi
query: {
enabled:
!!blockHeight &&
RouteUtils.getEnabledLayers().includes(Runtime.emerald) &&
RouteUtils.getEnabledLayersForNetwork(Network.mainnet).includes(Runtime.emerald) &&
RouteUtils.getEnabledNetworks().includes(Network.mainnet),
},
}),
useGetRuntimeBlockByHeight(Network.mainnet, Runtime.sapphire, parseInt(blockHeight!), {
query: {
enabled:
!!blockHeight &&
RouteUtils.getEnabledLayers().includes(Runtime.sapphire) &&
RouteUtils.getEnabledLayersForNetwork(Network.mainnet).includes(Runtime.sapphire) &&
RouteUtils.getEnabledNetworks().includes(Network.mainnet),
},
}),
useGetRuntimeBlockByHeight(Network.testnet, Runtime.emerald, parseInt(blockHeight!), {
query: {
enabled:
!!blockHeight &&
RouteUtils.getEnabledLayers().includes(Runtime.emerald) &&
RouteUtils.getEnabledLayersForNetwork(Network.testnet).includes(Runtime.emerald) &&
RouteUtils.getEnabledNetworks().includes(Network.testnet),
},
}),
useGetRuntimeBlockByHeight(Network.testnet, Runtime.sapphire, parseInt(blockHeight!), {
query: {
enabled:
!!blockHeight &&
RouteUtils.getEnabledLayers().includes(Runtime.sapphire) &&
RouteUtils.getEnabledLayersForNetwork(Network.testnet).includes(Runtime.sapphire) &&
RouteUtils.getEnabledNetworks().includes(Network.testnet),
},
}),
Expand All @@ -70,31 +70,31 @@ export function useTransactionsConditionally(
query: {
enabled:
!!txHash &&
RouteUtils.getEnabledLayers().includes(Runtime.emerald) &&
RouteUtils.getEnabledLayersForNetwork(Network.mainnet).includes(Runtime.emerald) &&
RouteUtils.getEnabledNetworks().includes(Network.mainnet),
},
}),
useGetRuntimeTransactionsTxHash(Network.mainnet, Runtime.sapphire, txHash!, {
query: {
enabled:
!!txHash &&
RouteUtils.getEnabledLayers().includes(Runtime.sapphire) &&
RouteUtils.getEnabledLayersForNetwork(Network.mainnet).includes(Runtime.sapphire) &&
RouteUtils.getEnabledNetworks().includes(Network.mainnet),
},
}),
useGetRuntimeTransactionsTxHash(Network.testnet, Runtime.emerald, txHash!, {
query: {
enabled:
!!txHash &&
RouteUtils.getEnabledLayers().includes(Runtime.emerald) &&
RouteUtils.getEnabledLayersForNetwork(Network.testnet).includes(Runtime.emerald) &&
RouteUtils.getEnabledNetworks().includes(Network.testnet),
},
}),
useGetRuntimeTransactionsTxHash(Network.testnet, Runtime.sapphire, txHash!, {
query: {
enabled:
!!txHash &&
RouteUtils.getEnabledLayers().includes(Runtime.sapphire) &&
RouteUtils.getEnabledLayersForNetwork(Network.testnet).includes(Runtime.sapphire) &&
RouteUtils.getEnabledNetworks().includes(Network.testnet),
},
}),
Expand All @@ -112,31 +112,31 @@ export function useRuntimeAccountConditionally(
query: {
enabled:
!!address &&
RouteUtils.getEnabledLayers().includes(Runtime.emerald) &&
RouteUtils.getEnabledLayersForNetwork(Network.mainnet).includes(Runtime.emerald) &&
RouteUtils.getEnabledNetworks().includes(Network.mainnet),
},
}),
useGetRuntimeAccountsAddress(Network.mainnet, Runtime.sapphire, address!, {
query: {
enabled:
!!address &&
RouteUtils.getEnabledLayers().includes(Runtime.sapphire) &&
RouteUtils.getEnabledLayersForNetwork(Network.mainnet).includes(Runtime.sapphire) &&
RouteUtils.getEnabledNetworks().includes(Network.mainnet),
},
}),
useGetRuntimeAccountsAddress(Network.testnet, Runtime.emerald, address!, {
query: {
enabled:
!!address &&
RouteUtils.getEnabledLayers().includes(Runtime.emerald) &&
RouteUtils.getEnabledLayersForNetwork(Network.testnet).includes(Runtime.emerald) &&
RouteUtils.getEnabledNetworks().includes(Network.testnet),
},
}),
useGetRuntimeAccountsAddress(Network.testnet, Runtime.sapphire, address!, {
query: {
enabled:
!!address &&
RouteUtils.getEnabledLayers().includes(Runtime.sapphire) &&
RouteUtils.getEnabledLayersForNetwork(Network.testnet).includes(Runtime.sapphire) &&
RouteUtils.getEnabledNetworks().includes(Network.testnet),
},
}),
Expand Down
18 changes: 14 additions & 4 deletions src/app/utils/route-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,13 @@ import { EvmTokenType, Layer } from '../../oasis-indexer/api'
import { GlobalNetwork, Network, NetworkOrGlobal } from '../../types/network'

export abstract class RouteUtils {
private static ENABLED_LAYERS: Layer[] = [Layer.emerald, Layer.sapphire]
private static ENABLED_LAYERS_FOR_NETWORK: Record<Network, Layer[]> = {
[Network.mainnet]: [Layer.emerald, Layer.sapphire],
[Network.testnet]: [
// Layer.emerald,
Layer.sapphire,
],
}

private static ENABLED_NETWORKS: Network[] = [Network.mainnet, Network.testnet]

Expand Down Expand Up @@ -62,8 +68,8 @@ export abstract class RouteUtils {
return `/${network}/search?q=${encodeURIComponent(searchTerm)}`
}

static getEnabledLayers(): Layer[] {
return RouteUtils.ENABLED_LAYERS
static getEnabledLayersForNetwork(network: Network): Layer[] {
return RouteUtils.ENABLED_LAYERS_FOR_NETWORK[network]
}

static getEnabledNetworks(): Network[] {
Expand Down Expand Up @@ -132,7 +138,11 @@ export const layerLoader = async (args: LoaderFunctionArgs) => {
params: { layer, network },
} = args

if (network === GlobalNetwork || !layer || !RouteUtils.getEnabledLayers().includes(layer as Layer)) {
if (
network === GlobalNetwork || // We can't go into any layers in "global"! (The only thing we can do is search..)
!layer || // missing param
!RouteUtils.getEnabledLayersForNetwork(network as Network).includes(layer as Layer) // unsupported on network
) {
throw new AppError(AppErrors.InvalidUrl)
}

Expand Down

0 comments on commit 72010e6

Please sign in to comment.