add fantom to explorer

This commit is contained in:
justinschuldt 2022-03-02 17:50:37 -06:00 committed by Justin Schuldt
parent 2e0fc37ba0
commit a60d639097
13 changed files with 205 additions and 1134 deletions

View File

@ -5,7 +5,7 @@ GATSBY_GUARDIAN_DEVNET_RPC_URL=http://localhost:7071
GATSBY_GUARDIAN_TESTNET_RPC_URL=https://wormhole-v2-testnet-api.certus.one
GATSBY_GUARDIAN_MAINNET_RPC_URL=https://wormhole-v2-mainnet-api.certus.one
GATSBY_BIGTABLE_FUNCTIONS_DEVNET_BASE_URL=http://localhost:8080/
GATSBY_BIGTABLE_FUNCTIONS_DEVNET_BASE_URL=http://localhost:8090/
GATSBY_BIGTABLE_FUNCTIONS_TESTNET_BASE_URL=https://europe-west3-wormhole-315720.cloudfunctions.net/testnet-
GATSBY_BIGTABLE_FUNCTIONS_MAINNET_BASE_URL=https://europe-west3-wormhole-315720.cloudfunctions.net/mainnet-
@ -42,6 +42,10 @@ GATSBY_DEVNET_OASIS_CORE_BRIDGE=0xC89Ce4735882C9F0f0FE26686c53074E09B0D550
GATSBY_DEVNET_OASIS_TOKEN_BRIDGE=0x0290FB167208Af455bB137780163b7B7a9a10C16
GATSBY_DEVNET_OASIS_NFT_BRIDGE=0x26b4afb60d6c903165150c6f0aa14f8016be4aec
GATSBY_DEVNET_FANTOM_CORE_BRIDGE=0xC89Ce4735882C9F0f0FE26686c53074E09B0D550
GATSBY_DEVNET_FANTOM_TOKEN_BRIDGE=0x0290FB167208Af455bB137780163b7B7a9a10C16
GATSBY_DEVNET_FANTOM_NFT_BRIDGE=0x26b4afb60d6c903165150c6f0aa14f8016be4aec
## testnet addresses
GATSBY_TESTNET_SOLANA_CORE_BRIDGE=Brdguy7BmNB4qwEbcqqMbyV5CyJd2sxQNUn6NEpMSsUb
GATSBY_TESTNET_SOLANA_TOKEN_BRIDGE=A4Us8EhCC76XdGAN17L4KpRNEK423nMivVHZzZqFqqBg
@ -71,6 +75,10 @@ GATSBY_TESTNET_OASIS_CORE_BRIDGE=0xc1C338397ffA53a2Eb12A7038b4eeb34791F8aCb
GATSBY_TESTNET_OASIS_TOKEN_BRIDGE=0x88d8004A9BdbfD9D28090A02010C19897a29605c
GATSBY_TESTNET_OASIS_NFT_BRIDGE=0xC5c25B41AB0b797571620F5204Afa116A44c0ebA
GATSBY_TESTNET_FANTOM_CORE_BRIDGE=0x1BB3B4119b7BA9dfad76B0545fb3F531383c3bB7
GATSBY_TESTNET_FANTOM_TOKEN_BRIDGE=0x599CEa2204B4FaECd584Ab1F2b6aCA137a0afbE8
GATSBY_TESTNET_FANTOM_NFT_BRIDGE=0x63eD9318628D26BdCB15df58B53BB27231D1B227
## mainnet addresses
GATSBY_MAINNET_SOLANA_CORE_BRIDGE=worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth
GATSBY_MAINNET_SOLANA_TOKEN_BRIDGE=wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb
@ -99,3 +107,7 @@ GATSBY_MAINNET_AVALANCHE_NFT_BRIDGE=0xf7B6737Ca9c4e08aE573F75A97B73D7a813f5De5
GATSBY_MAINNET_OASIS_CORE_BRIDGE=0xfE8cD454b4A1CA468B57D79c0cc77Ef5B6f64585
GATSBY_MAINNET_OASIS_TOKEN_BRIDGE=0x5848c791e09901b40a9ef749f2a6735b418d7564
GATSBY_MAINNET_OASIS_NFT_BRIDGE=0x04952d522ff217f40b5ef3cbf659eca7b952a6c1
GATSBY_MAINNET_FANTOM_CORE_BRIDGE=0x126783A6Cb203a3E35344528B26ca3a0489a1485
GATSBY_MAINNET_FANTOM_TOKEN_BRIDGE=0x7C9Fc5741288cDFdD83CeB07f3ea7e22618D79D2
GATSBY_MAINNET_FANTOM_NFT_BRIDGE=0xA9c7119aBDa80d4a4E0C06C8F4d8cF5893234535

View File

@ -5,7 +5,7 @@ GATSBY_GUARDIAN_DEVNET_RPC_URL=http://localhost:7071
GATSBY_GUARDIAN_TESTNET_RPC_URL=https://wormhole-v2-testnet-api.certus.one
GATSBY_GUARDIAN_MAINNET_RPC_URL=https://wormhole-v2-mainnet-api.certus.one
GATSBY_BIGTABLE_FUNCTIONS_DEVNET_BASE_URL=http://localhost:8080/
GATSBY_BIGTABLE_FUNCTIONS_DEVNET_BASE_URL=http://localhost:8090/
GATSBY_BIGTABLE_FUNCTIONS_TESTNET_BASE_URL=https://europe-west3-wormhole-315720.cloudfunctions.net/testnet-
GATSBY_BIGTABLE_FUNCTIONS_MAINNET_BASE_URL=https://europe-west3-wormhole-315720.cloudfunctions.net/mainnet-
@ -42,6 +42,10 @@ GATSBY_DEVNET_OASIS_CORE_BRIDGE=0xC89Ce4735882C9F0f0FE26686c53074E09B0D550
GATSBY_DEVNET_OASIS_TOKEN_BRIDGE=0x0290FB167208Af455bB137780163b7B7a9a10C16
GATSBY_DEVNET_OASIS_NFT_BRIDGE=0x26b4afb60d6c903165150c6f0aa14f8016be4aec
GATSBY_DEVNET_FANTOM_CORE_BRIDGE=0xC89Ce4735882C9F0f0FE26686c53074E09B0D550
GATSBY_DEVNET_FANTOM_TOKEN_BRIDGE=0x0290FB167208Af455bB137780163b7B7a9a10C16
GATSBY_DEVNET_FANTOM_NFT_BRIDGE=0x26b4afb60d6c903165150c6f0aa14f8016be4aec
## testnet addresses
GATSBY_TESTNET_SOLANA_CORE_BRIDGE=Brdguy7BmNB4qwEbcqqMbyV5CyJd2sxQNUn6NEpMSsUb
GATSBY_TESTNET_SOLANA_TOKEN_BRIDGE=A4Us8EhCC76XdGAN17L4KpRNEK423nMivVHZzZqFqqBg
@ -71,6 +75,10 @@ GATSBY_TESTNET_OASIS_CORE_BRIDGE=0xc1C338397ffA53a2Eb12A7038b4eeb34791F8aCb
GATSBY_TESTNET_OASIS_TOKEN_BRIDGE=0x88d8004A9BdbfD9D28090A02010C19897a29605c
GATSBY_TESTNET_OASIS_NFT_BRIDGE=0xC5c25B41AB0b797571620F5204Afa116A44c0ebA
GATSBY_TESTNET_FANTOM_CORE_BRIDGE=0x1BB3B4119b7BA9dfad76B0545fb3F531383c3bB7
GATSBY_TESTNET_FANTOM_TOKEN_BRIDGE=0x599CEa2204B4FaECd584Ab1F2b6aCA137a0afbE8
GATSBY_TESTNET_FANTOM_NFT_BRIDGE=0x63eD9318628D26BdCB15df58B53BB27231D1B227
## mainnet addresses
GATSBY_MAINNET_SOLANA_CORE_BRIDGE=worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth
GATSBY_MAINNET_SOLANA_TOKEN_BRIDGE=wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb
@ -99,3 +107,8 @@ GATSBY_MAINNET_AVALANCHE_NFT_BRIDGE=0xf7B6737Ca9c4e08aE573F75A97B73D7a813f5De5
GATSBY_MAINNET_OASIS_CORE_BRIDGE=0xfE8cD454b4A1CA468B57D79c0cc77Ef5B6f64585
GATSBY_MAINNET_OASIS_TOKEN_BRIDGE=0x5848c791e09901b40a9ef749f2a6735b418d7564
GATSBY_MAINNET_OASIS_NFT_BRIDGE=0x04952d522ff217f40b5ef3cbf659eca7b952a6c1
GATSBY_MAINNET_FANTOM_CORE_BRIDGE=0x126783A6Cb203a3E35344528B26ca3a0489a1485
GATSBY_MAINNET_FANTOM_TOKEN_BRIDGE=0x7C9Fc5741288cDFdD83CeB07f3ea7e22618D79D2
GATSBY_MAINNET_FANTOM_NFT_BRIDGE=0xA9c7119aBDa80d4a4E0C06C8F4d8cF5893234535

View File

@ -5,7 +5,7 @@ GATSBY_GUARDIAN_DEVNET_RPC_URL=http://localhost:7071
GATSBY_GUARDIAN_TESTNET_RPC_URL=https://wormhole-v2-testnet-api.certus.one
GATSBY_GUARDIAN_MAINNET_RPC_URL=https://wormhole-v2-mainnet-api.certus.one
GATSBY_BIGTABLE_FUNCTIONS_DEVNET_BASE_URL=http://localhost:8080/
GATSBY_BIGTABLE_FUNCTIONS_DEVNET_BASE_URL=http://localhost:8090/
GATSBY_BIGTABLE_FUNCTIONS_TESTNET_BASE_URL=https://europe-west3-wormhole-315720.cloudfunctions.net/testnet-
GATSBY_BIGTABLE_FUNCTIONS_MAINNET_BASE_URL=https://europe-west3-wormhole-315720.cloudfunctions.net/mainnet-
@ -42,6 +42,10 @@ GATSBY_DEVNET_OASIS_CORE_BRIDGE=0xC89Ce4735882C9F0f0FE26686c53074E09B0D550
GATSBY_DEVNET_OASIS_TOKEN_BRIDGE=0x0290FB167208Af455bB137780163b7B7a9a10C16
GATSBY_DEVNET_OASIS_NFT_BRIDGE=0x26b4afb60d6c903165150c6f0aa14f8016be4aec
GATSBY_DEVNET_FANTOM_CORE_BRIDGE=0xC89Ce4735882C9F0f0FE26686c53074E09B0D550
GATSBY_DEVNET_FANTOM_TOKEN_BRIDGE=0x0290FB167208Af455bB137780163b7B7a9a10C16
GATSBY_DEVNET_FANTOM_NFT_BRIDGE=0x26b4afb60d6c903165150c6f0aa14f8016be4aec
## testnet addresses
GATSBY_TESTNET_SOLANA_CORE_BRIDGE=Brdguy7BmNB4qwEbcqqMbyV5CyJd2sxQNUn6NEpMSsUb
GATSBY_TESTNET_SOLANA_TOKEN_BRIDGE=A4Us8EhCC76XdGAN17L4KpRNEK423nMivVHZzZqFqqBg
@ -71,6 +75,10 @@ GATSBY_TESTNET_OASIS_CORE_BRIDGE=0xc1C338397ffA53a2Eb12A7038b4eeb34791F8aCb
GATSBY_TESTNET_OASIS_TOKEN_BRIDGE=0x88d8004A9BdbfD9D28090A02010C19897a29605c
GATSBY_TESTNET_OASIS_NFT_BRIDGE=0xC5c25B41AB0b797571620F5204Afa116A44c0ebA
GATSBY_TESTNET_FANTOM_CORE_BRIDGE=0x1BB3B4119b7BA9dfad76B0545fb3F531383c3bB7
GATSBY_TESTNET_FANTOM_TOKEN_BRIDGE=0x599CEa2204B4FaECd584Ab1F2b6aCA137a0afbE8
GATSBY_TESTNET_FANTOM_NFT_BRIDGE=0x63eD9318628D26BdCB15df58B53BB27231D1B227
## mainnet addresses
GATSBY_MAINNET_SOLANA_CORE_BRIDGE=worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth
GATSBY_MAINNET_SOLANA_TOKEN_BRIDGE=wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb
@ -98,3 +106,7 @@ GATSBY_MAINNET_AVALANCHE_NFT_BRIDGE=0xf7B6737Ca9c4e08aE573F75A97B73D7a813f5De5
GATSBY_MAINNET_OASIS_CORE_BRIDGE=0xfE8cD454b4A1CA468B57D79c0cc77Ef5B6f64585
GATSBY_MAINNET_OASIS_TOKEN_BRIDGE=0x5848c791e09901b40a9ef749f2a6735b418d7564
GATSBY_MAINNET_OASIS_NFT_BRIDGE=0x04952d522ff217f40b5ef3cbf659eca7b952a6c1
GATSBY_MAINNET_FANTOM_CORE_BRIDGE=0x126783A6Cb203a3E35344528B26ca3a0489a1485
GATSBY_MAINNET_FANTOM_TOKEN_BRIDGE=0x7C9Fc5741288cDFdD83CeB07f3ea7e22618D79D2
GATSBY_MAINNET_FANTOM_NFT_BRIDGE=0xA9c7119aBDa80d4a4E0C06C8F4d8cF5893234535

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@
"clean": "gatsby clean"
},
"dependencies": {
"@certusone/wormhole-sdk": "^0.1.6",
"@certusone/wormhole-sdk": "0.2.0",
"@cosmjs/encoding": "^0.27.0",
"@emotion/react": "^11.7.1",
"@emotion/styled": "^11.6.0",

View File

@ -6,6 +6,7 @@ import terraIcon from "../images/terra.svg";
import polygonIcon from "../images/polygon.svg";
import avalancheIcon from "../images/avalanche.svg";
import oasisIcon from "../images/oasis.svg";
import fantomIcon from "../images/fantom.svg";
import {
ChainId,
CHAIN_ID_AVAX,
@ -15,6 +16,7 @@ import {
CHAIN_ID_POLYGON,
CHAIN_ID_SOLANA,
CHAIN_ID_TERRA,
CHAIN_ID_FANTOM,
} from "@certusone/wormhole-sdk";
import { chainEnums } from "../utils/consts";
import { Box } from "@mui/material";
@ -27,6 +29,7 @@ const chainIdToSrc = {
[CHAIN_ID_POLYGON]: polygonIcon,
[CHAIN_ID_AVAX]: avalancheIcon,
[CHAIN_ID_OASIS]: oasisIcon,
[CHAIN_ID_FANTOM]: fantomIcon,
};
const ChainIcon = ({ chainId }: { chainId: ChainId }) =>

View File

@ -56,6 +56,14 @@ const ChainOverviewCard: React.FC<ChainOverviewCardProps> = ({
alignItems: "center",
flexDirection: "column",
};
// prevent an exception if data is missing (ie. new chain)
if (
!notionalTransferredToCumulative ||
!(dataKey in notionalTransferredToCumulative.AllTime) ||
!("*" in notionalTransferredToCumulative.AllTime[dataKey])
) {
return <>coming soon</>
}
return (
<>
<div style={{ ...centerStyles, gap: 8 }}>
@ -79,11 +87,11 @@ const ChainOverviewCard: React.FC<ChainOverviewCardProps> = ({
</div>
)}
{notionalTransferred &&
notionalTransferred.WithinPeriod &&
dataKey in notionalTransferred.WithinPeriod &&
"*" in notionalTransferred.WithinPeriod[dataKey] &&
"*" in notionalTransferred.WithinPeriod[dataKey]["*"] &&
notionalTransferred.WithinPeriod[dataKey]["*"]["*"] > 0 ? (
notionalTransferred.WithinPeriod &&
dataKey in notionalTransferred.WithinPeriod &&
"*" in notionalTransferred.WithinPeriod[dataKey] &&
"*" in notionalTransferred.WithinPeriod[dataKey]["*"] &&
notionalTransferred.WithinPeriod[dataKey]["*"]["*"] > 0 ? (
<div style={centerStyles}>
<div>
<Typography
@ -92,9 +100,9 @@ const ChainOverviewCard: React.FC<ChainOverviewCardProps> = ({
>
{notionalTransferred.WithinPeriod[dataKey]["*"]["*"]
? "$" +
amountFormatter(
notionalTransferred.WithinPeriod[dataKey]["*"]["*"]
)
amountFormatter(
notionalTransferred.WithinPeriod[dataKey]["*"]["*"]
)
: "..."}
</Typography>
</div>

View File

@ -51,6 +51,9 @@ const DailyNotionalBarChart = (props: DailyCountProps) => {
const chains = props.daily[date]
return [...accum, Object.keys(chains).reduce<BarDatum>((subAccum, chain) => {
if (chain === "*") {
return subAccum
}
const group = makeGroupName(chain, activeNetwork)
// const group = chain

View File

@ -15,6 +15,7 @@ import terraIcon from "../../images/terra.svg";
import polygonIcon from "../../images/polygon.svg";
import avalancheIcon from "../../images/avalanche.svg";
import oasisIcon from "../../images/oasis.svg";
import fantomIcon from "../../images/fantom.svg"
import GridWithCards from "../GridWithCards";
import { explorer } from "../../utils/urls";
@ -589,8 +590,28 @@ const ExplorerStats: React.FC<StatsProps> = ({
/>
),
imgStyle: { height: 110 },
},
]}
}
].concat(
// check the we have transfer data before adding the fantom card
("10" in notionalTransferredToCumulative.AllTime) &&
("*" in notionalTransferredToCumulative.AllTime["10"]) ?
[{
header: ChainID[10],
src: fantomIcon,
to: `${explorer}?emitterChain=10`,
description: (
<ChainOverviewCard
totals={totals}
notionalTransferredToCumulative={
notionalTransferredToCumulative
}
notionalTransferred={notionalTransferred}
dataKey="10"
/>
),
imgStyle: { height: 110 },
}] : []
)}
/>
) : (
<Box

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><defs><style>.cls-1{fill:#fff;fill-rule:evenodd;}.cls-2{fill:#13b5ec;}.cls-3{mask:url(#mask);}</style><mask id="mask" x="10" y="6" width="93.1" height="20" maskUnits="userSpaceOnUse"><g id="a"><path class="cls-1" d="M10,6h93.1V26H10Z"/></g></mask></defs><title>fa</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><circle class="cls-2" cx="16" cy="16" r="16"/><g class="cls-3"><path class="cls-1" d="M17.2,12.9l3.6-2.1V15Zm3.6,9L16,24.7l-4.8-2.8V17L16,19.8,20.8,17ZM11.2,10.8l3.6,2.1L11.2,15Zm5.4,3.1L20.2,16l-3.6,2.1Zm-1.2,4.2L11.8,16l3.6-2.1Zm4.8-8.3L16,12.2,11.8,9.8,16,7.3ZM10,9.4V22.5l6,3.4,6-3.4V9.4L16,6Z"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 766 B

View File

@ -13,6 +13,7 @@ export const chainEnums = [
"Polygon",
"Avalanche",
"Oasis",
"Fantom",
];
export interface ChainIDs {
@ -23,6 +24,7 @@ export interface ChainIDs {
polygon: 5;
avalanche: 6;
oasis: 7;
fantom: 10,
}
export const chainIDs: ChainIDs = {
solana: 1,
@ -32,6 +34,7 @@ export const chainIDs: ChainIDs = {
polygon: 5,
avalanche: 6,
oasis: 7,
fantom: 10
};
export const chainIDStrings: { [chainIDString: string]: string } = {
"1": "solana",
@ -41,6 +44,7 @@ export const chainIDStrings: { [chainIDString: string]: string } = {
"5": "polygon",
"6": "avalanche",
"7": "oasis",
"10": "fantom"
};
export enum ChainID {
@ -52,6 +56,7 @@ export enum ChainID {
Polygon,
Avalanche,
Oasis,
Fantom
}
export type ChainName = keyof ChainIDs;
export type ChainIDNumber = ChainIDs[ChainName];
@ -95,6 +100,12 @@ const envVarMap: { [name: string]: string | undefined } = {
GATSBY_DEVNET_OASIS_TOKEN_BRIDGE:
process.env.GATSBY_DEVNET_OASIS_TOKEN_BRIDGE,
GATSBY_DEVNET_OASIS_NFT_BRIDGE: process.env.GATSBY_DEVNET_OASIS_NFT_BRIDGE,
GATSBY_DEVNET_FANTOM_CORE_BRIDGE:
process.env.GATSBY_DEVNET_FANTOM_CORE_BRIDGE,
GATSBY_DEVNET_FANTOM_TOKEN_BRIDGE:
process.env.GATSBY_DEVNET_FANTOM_TOKEN_BRIDGE,
GATSBY_DEVNET_FANTOM_NFT_BRIDGE:
process.env.GATSBY_DEVNET_FANTOM_NFT_BRIDGE,
GATSBY_TESTNET_SOLANA_CORE_BRIDGE:
process.env.GATSBY_TESTNET_SOLANA_CORE_BRIDGE,
@ -133,6 +144,12 @@ const envVarMap: { [name: string]: string | undefined } = {
GATSBY_TESTNET_OASIS_TOKEN_BRIDGE:
process.env.GATSBY_TESTNET_OASIS_TOKEN_BRIDGE,
GATSBY_TESTNET_OASIS_NFT_BRIDGE: process.env.GATSBY_TESTNET_OASIS_NFT_BRIDGE,
GATSBY_TESTNET_FANTOM_CORE_BRIDGE:
process.env.GATSBY_TESTNET_FANTOM_CORE_BRIDGE,
GATSBY_TESTNET_FANTOM_TOKEN_BRIDGE:
process.env.GATSBY_TESTNET_FANTOM_TOKEN_BRIDGE,
GATSBY_TESTNET_FANTOM_NFT_BRIDGE:
process.env.GATSBY_TESTNET_FANTOM_NFT_BRIDGE,
GATSBY_MAINNET_SOLANA_CORE_BRIDGE:
process.env.GATSBY_MAINNET_SOLANA_CORE_BRIDGE,
@ -171,6 +188,12 @@ const envVarMap: { [name: string]: string | undefined } = {
GATSBY_MAINNET_OASIS_TOKEN_BRIDGE:
process.env.GATSBY_MAINNET_OASIS_TOKEN_BRIDGE,
GATSBY_MAINNET_OASIS_NFT_BRIDGE: process.env.GATSBY_MAINNET_OASIS_NFT_BRIDGE,
GATSBY_MAINNET_FANTOM_CORE_BRIDGE:
process.env.GATSBY_MAINNET_FANTOM_CORE_BRIDGE,
GATSBY_MAINNET_FANTOM_TOKEN_BRIDGE:
process.env.GATSBY_MAINNET_FANTOM_TOKEN_BRIDGE,
GATSBY_MAINNET_FANTOM_NFT_BRIDGE:
process.env.GATSBY_MAINNET_FANTOM_NFT_BRIDGE,
};
export interface KnownContracts {
@ -200,6 +223,7 @@ const getEmitterAddress: {
polygon: getEmitterAddressEVM,
avalanche: getEmitterAddressEVM,
oasis: getEmitterAddressEVM,
fantom: getEmitterAddressEVM,
};
// the keys used for creating the map of contract addresses of each chain, on each network.

View File

@ -131,6 +131,8 @@ const nativeExplorerContractUri = (
base = "https://snowtrace.io/address/";
} else if (chainId === chainIDs["oasis"]) {
base = "https://explorer.oasis.updev.si/address/";
} else if (chainId === chainIDs["fantom"]) {
base = "https://ftmscan.com/address/";
}
return `${base}${nativeAddress}`;
}
@ -155,6 +157,8 @@ const nativeExplorerTxUri = (
base = "https://snowtrace.io/tx/";
} else if (chainId === chainIDs["oasis"]) {
base = "https://explorer.emerald.oasis.dev/tx/";
} else if (chainId === chainIDs["fantom"]) {
base = "https://ftmscan.com/tx/";
}
if (base) {
@ -163,6 +167,7 @@ const nativeExplorerTxUri = (
return "";
};
// define colors to represent chains in charts/graphs
const chainColors: { [chain: string]: string } = {
"*": "hsl(183, 100%, 61%)",
"1": "hsl(297, 100%, 61%)",
@ -171,7 +176,8 @@ const chainColors: { [chain: string]: string } = {
"4": "hsl(54, 100%, 61%)",
"5": "hsl(271, 100%, 61%)",
"6": "hsl(360, 100%, 61%)",
"7": "hsl(204, 100%, 48%",
"7": "hsl(204, 100%, 48%)",
"10": "hsl(220, 78%, 92%)",
};
const chainIdColors = Object.entries(chainColors).reduce<Array<string>>(
// returns an array of hsl colors, indexed by chainId

View File

@ -7,7 +7,7 @@ export const network = "/network/";
export const brand = "/brand/";
// External
export const portal = "https://wormholebridge.com/";
export const portal = "https://portalbridge.com/";
export const blog = "https://wormholecrypto.medium.com/";
export const docs = "https://docs.wormholenetwork.com/";
export const jobs = "https://boards.greenhouse.io/wormhole";