* feat: mirror environment * style: lint * chore: update networks to have correct data node * chore: update netowrks to point to correct data nodes * chore: fix build
86 lines
2.3 KiB
TypeScript
86 lines
2.3 KiB
TypeScript
import trim from 'lodash/trim';
|
|
import { useCallback } from 'react';
|
|
import { Networks } from '../types';
|
|
import { useEnvironment } from './use-environment';
|
|
|
|
type Net = Exclude<Networks, 'CUSTOM' | 'SANDBOX'>;
|
|
export enum DApp {
|
|
Explorer = 'Explorer',
|
|
Console = 'Console',
|
|
Token = 'Token',
|
|
}
|
|
|
|
type DAppLinks = {
|
|
[k in Net]: string;
|
|
};
|
|
|
|
const EmptyLinks: DAppLinks = {
|
|
[Networks.DEVNET]: '',
|
|
[Networks.STAGNET1]: '',
|
|
[Networks.STAGNET3]: '',
|
|
[Networks.TESTNET]: '',
|
|
[Networks.MAINNET]: '',
|
|
[Networks.MIRROR]: '',
|
|
};
|
|
|
|
const ExplorerLinks = {
|
|
...EmptyLinks,
|
|
[Networks.TESTNET]: 'https://explorer.fairground.wtf',
|
|
[Networks.MAINNET]: 'https://explorer.vega.xyz',
|
|
};
|
|
|
|
const ConsoleLinks = {
|
|
...EmptyLinks,
|
|
[Networks.STAGNET1]: 'https://stagnet1.console.vega.xyz',
|
|
[Networks.STAGNET3]: 'https://stagnet3.console.vega.xyz',
|
|
[Networks.TESTNET]: 'https://console.fairground.wtf',
|
|
};
|
|
|
|
const TokenLinks = {
|
|
...EmptyLinks,
|
|
[Networks.DEVNET]: 'https://dev.token.vega.xyz',
|
|
[Networks.STAGNET3]: 'https://stagnet3.token.vega.xyz',
|
|
[Networks.TESTNET]: 'https://token.fairground.wtf',
|
|
[Networks.MAINNET]: 'https://token.vega.xyz',
|
|
};
|
|
|
|
const Links: { [k in DApp]: DAppLinks } = {
|
|
[DApp.Explorer]: ExplorerLinks,
|
|
[DApp.Console]: ConsoleLinks,
|
|
[DApp.Token]: TokenLinks,
|
|
};
|
|
|
|
export const useLinks = (dapp: DApp, network?: Net) => {
|
|
const { VEGA_ENV, VEGA_EXPLORER_URL, VEGA_TOKEN_URL } = useEnvironment();
|
|
const fallback = {
|
|
[DApp.Explorer]: VEGA_EXPLORER_URL,
|
|
[DApp.Token]: VEGA_TOKEN_URL,
|
|
};
|
|
|
|
let net = network || VEGA_ENV;
|
|
if (net === Networks.CUSTOM || net === Networks.SANDBOX) {
|
|
net = Networks.TESTNET;
|
|
}
|
|
|
|
let baseUrl = trim(Links[dapp][net], '/');
|
|
if (baseUrl.length === 0 && Object.keys(fallback).includes(dapp)) {
|
|
baseUrl = trim(fallback[dapp as DApp.Explorer | DApp.Token] || '', '/');
|
|
}
|
|
|
|
const link = useCallback(
|
|
(url?: string) => `${baseUrl}/${trim(url, '/') || ''}`,
|
|
[baseUrl]
|
|
);
|
|
return link;
|
|
};
|
|
|
|
// Vega blog
|
|
export const BLOG = 'https://blog.vega.xyz/';
|
|
|
|
// Token pages
|
|
export const TOKEN_NEW_MARKET_PROPOSAL = '/governance/propose/new-market';
|
|
export const TOKEN_NEW_NETWORK_PARAM_PROPOSAL =
|
|
'/governance/propose/network-parameter';
|
|
export const TOKEN_PROPOSALS = '/governance';
|
|
export const TOKEN_PROPOSAL = '/governance/:id';
|