mirror of
https://github.com/lux-tel/websites.git
synced 2026-10-30 20:31:36 +00:00
170 lines
6.0 KiB
TypeScript
170 lines
6.0 KiB
TypeScript
/* eslint-disable @typescript-eslint/no-duplicate-enum-values */
|
|
|
|
import { CHAIN } from '@session/contracts/chains';
|
|
import { Social, SocialLink } from '@session/ui/components/SocialLinkList';
|
|
import { LocaleKey } from './locale-util';
|
|
import { getEnvironmentTaggedDomain } from '@session/util-js/env';
|
|
|
|
/** TODO - Change this to MAINNET when we launch mainnet */
|
|
export const preferredChain = CHAIN.TESTNET as const;
|
|
|
|
export const BASE_URL = `https://${getEnvironmentTaggedDomain('stake')}.getsession.org`;
|
|
|
|
export enum URL {
|
|
ARB_SEP_FAUCET = 'https://faucet.quicknode.com/arbitrum/sepolia',
|
|
GAS_INFO = 'https://ethereum.org/en/developers/docs/gas',
|
|
SESSION_NODE_DOCS = 'https://docs.getsession.org/session-nodes',
|
|
INCENTIVE_PROGRAM = 'https://token.getsession.org/testnet-incentive-program',
|
|
LEARN_MORE_DAILY_REWARDS = 'https://docs.getsession.org/staking-reward-pool#network-reward-rate',
|
|
LEARN_MORE_TOTAL_REWARDS = 'https://docs.getsession.org/staking-reward-pool#network-reward-rate',
|
|
LEARN_MORE_UNCLAIMED_REWARDS = 'https://docs.getsession.org/staking-reward-pool#claiming-rewards',
|
|
OXEN_SERVICE_NODE_BONUS_PROGRAM = 'https://swap.oxen.io/',
|
|
SESSION_TOKEN_COMMUNITY_SNAPSHOT = 'https://token.getsession.org/testnet-incentive-program',
|
|
INCENTIVE_PROGRAM_TOS = 'https://token.getsession.org/incentive-program-terms',
|
|
BUG_BOUNTY_PROGRAM = 'https://token.getsession.org/bug-bounty-program',
|
|
BUG_BOUNTY_TOS = 'https://token.getsession.org/bug-bounty-terms',
|
|
SESSION_NODE_SOLO_SETUP_DOCS = 'https://docs.getsession.org/class-is-in-session/session-stagenet-single-contributor-node-setup',
|
|
REMOVE_TOKEN_FROM_WATCH_LIST = 'https://support.metamask.io/managing-my-tokens/custom-tokens/how-to-remove-a-token/',
|
|
NODE_LIQUIDATION_LEARN_MORE = 'https://docs.getsession.org/class-is-in-session/session-stagenet-single-contributor-node-setup#unlocking-your-stake',
|
|
}
|
|
|
|
export const LANDING_BUTTON_URL = {
|
|
PRIMARY: '/stake',
|
|
SECONDARY: URL.BUG_BOUNTY_PROGRAM,
|
|
};
|
|
|
|
export const TOS_LOCKED_PATHS = ['/stake', '/mystakes', '/register', '/faucet'];
|
|
|
|
export enum COMMUNITY_DATE {
|
|
SESSION_TOKEN_COMMUNITY_SNAPSHOT = '2024-06-12',
|
|
OXEN_SERVICE_NODE_BONUS_PROGRAM = '2024-06-12',
|
|
}
|
|
|
|
export const SOCIALS = {
|
|
[Social.Discord]: { name: Social.Discord, link: 'https://discord.com/invite/J5BTQdCfXN' },
|
|
[Social.X]: { name: Social.X, link: 'https://x.com/session_token' },
|
|
[Social.Youtube]: { name: Social.Youtube, link: 'https://www.youtube.com/@sessiontv' },
|
|
[Social.Session]: { name: Social.Session, link: 'https://getsession.org/' },
|
|
[Social.Github]: { name: Social.Github, link: 'https://github.com/oxen-io/websites' },
|
|
[Social.RSS]: { name: Social.RSS, link: 'https://token.getsession.org/blog/feed' },
|
|
} satisfies Partial<Record<Social, SocialLink>>;
|
|
|
|
export enum FAUCET {
|
|
MIN_ETH_BALANCE = 0.001,
|
|
DRIP = 40_000,
|
|
}
|
|
|
|
export enum FAUCET_ERROR {
|
|
INVALID_ADDRESS = 'invalidAddress',
|
|
INCORRECT_CHAIN = 'incorrectChain',
|
|
// INSUFFICIENT_ETH = 'insufficientEth',
|
|
FAUCET_OUT_OF_TOKENS = 'faucetOutOfTokens',
|
|
INVALID_SERVICE = 'invalidService',
|
|
INVALID_OXEN_ADDRESS = 'invalidOxenAddress',
|
|
ALREADY_USED = 'alreadyUsed',
|
|
ALREADY_USED_SERVICE = 'alreadyUsedService',
|
|
}
|
|
|
|
export enum TICKER {
|
|
ETH = 'ETH',
|
|
}
|
|
|
|
export enum NETWORK {
|
|
MAINNET = 'Mainnet',
|
|
TESTNET = 'Testnet',
|
|
}
|
|
|
|
type LinkItem = {
|
|
href: string;
|
|
dictionaryKey: keyof Omit<LocaleKey['navigation'], 'hamburgerDropdown'>;
|
|
linkType?: 'internal' | 'external';
|
|
};
|
|
|
|
export const ROUTES: LinkItem[] = [
|
|
{ dictionaryKey: 'stake', href: '/stake' },
|
|
{ dictionaryKey: 'register', href: '/register' },
|
|
{ dictionaryKey: 'myStakes', href: '/mystakes' },
|
|
{ dictionaryKey: 'faucet', href: '/faucet' },
|
|
] as const;
|
|
|
|
export const EXTERNAL_ROUTES: LinkItem[] = [
|
|
{ dictionaryKey: 'tokenSite', href: 'https://token.getsession.org', linkType: 'external' },
|
|
{ dictionaryKey: 'support', href: '/support', linkType: 'external' },
|
|
{ dictionaryKey: 'docs', href: 'https://docs.getsession.org', linkType: 'external' },
|
|
{ dictionaryKey: 'explorer', href: 'https://stagenet.oxen.observer', linkType: 'external' },
|
|
] as const;
|
|
|
|
export enum QUERY {
|
|
/** 60 seconds */
|
|
STALE_TIME_DEFAULT = 60 * 1000,
|
|
/** 1 second */
|
|
STALE_TIME_DEFAULT_DEV = 1000,
|
|
/** 1 second */
|
|
STALE_TIME_REGISTRATIONS_PAGE = 1000,
|
|
/** 1 second */
|
|
STALE_TIME_REGISTRATIONS_LIST_DEV = 1000,
|
|
/** 60 seconds */
|
|
STALE_TIME_REGISTRATIONS_LIST = 60 * 1000,
|
|
/** 2 minutes */
|
|
STALE_TIME_CLAIM_REWARDS = 2 * 60 * 1000,
|
|
/** 60 seconds */
|
|
STALE_TIME_REMOTE_FEATURE_FLAGS = 60 * 1000,
|
|
}
|
|
|
|
export enum SESSION_NODE {
|
|
/** 20,000 SENT */
|
|
FULL_STAKE_AMOUNT = '20000000000000',
|
|
/** Average millisecond per block (~2 minutes per block) */
|
|
MS_PER_BLOCK = 2 * 60 * 1000,
|
|
}
|
|
|
|
export enum SESSION_NODE_TIME_STATIC {
|
|
/** 2 days in days */
|
|
SMALL_CONTRIBUTOR_EXIT_REQUEST_WAIT_TIME_DAYS = 2,
|
|
/** isSoon amount in seconds for time based notifications (2 minutes) */
|
|
SOON_TIME = 120_000,
|
|
}
|
|
|
|
enum SESSION_NODE_TIME_TESTNET {
|
|
/** 1 day in seconds */
|
|
EXIT_REQUEST_TIME_SECONDS = 24 * 60 * 60,
|
|
/** 2 hours in seconds (time between exit being available and liquidation being available) */
|
|
EXIT_GRACE_TIME_SECONDS = 2 * 60 * 60,
|
|
/** 2 days in seconds */
|
|
DEREGISTRATION_LOCKED_STAKE_SECONDS = 2 * 24 * 60 * 60,
|
|
}
|
|
|
|
enum SESSION_NODE_TIME_MAINNET {
|
|
/** 14 days in seconds */
|
|
EXIT_REQUEST_TIME_SECONDS = 14 * 24 * 60 * 60,
|
|
/** 7 days in seconds (time between exit being available and liquidation being available) */
|
|
EXIT_GRACE_TIME_SECONDS = 7 * 24 * 60 * 60,
|
|
/** 30 days in seconds */
|
|
DEREGISTRATION_LOCKED_STAKE_SECONDS = 30 * 24 * 60 * 60,
|
|
}
|
|
|
|
export const SESSION_NODE_TIME = (chain: CHAIN) => {
|
|
switch (chain) {
|
|
case CHAIN.TESTNET:
|
|
return SESSION_NODE_TIME_TESTNET;
|
|
|
|
default:
|
|
case CHAIN.MAINNET:
|
|
return SESSION_NODE_TIME_MAINNET;
|
|
}
|
|
};
|
|
|
|
export enum TOAST {
|
|
ERROR_COLLAPSE_LENGTH = 128,
|
|
}
|
|
|
|
export enum DYNAMIC_MODULE {
|
|
/** The number of decimal places to round SENT values to */
|
|
SENT_ROUNDED_DECIMALS = 2,
|
|
}
|
|
|
|
export enum HANDRAIL_THRESHOLD {
|
|
/** 0.005 SENT */
|
|
CLAIM_REWARDS_AMOUNT = '5000000',
|
|
}
|