import { NetworkIdType } from './Network'; export type UniTokenInfoExtensionValue = string | Array | number | boolean | null | undefined; export type ShieldWarningType = 'NOT_VERIFIED' | 'LOW_LIQUIDITY' | 'NOT_SELLABLE' | 'LOW_ORGANIC_ACTIVITY' | 'HAS_MINT_AUTHORITY' | 'HAS_FREEZE_AUTHORITY' | 'HAS_PERMANENT_DELEGATE' | 'NEW_LISTING' | 'VERY_LOW_TRADING_ACTIVITY' | 'HIGH_SUPPLY_CONCENTRATION' | 'NON_TRANSFERABLE' | 'MUTABLE_TRANSFER_FEES' | 'SUSPICIOUS_DEV_ACTIVITY' | 'SUSPICIOUS_TOP_HOLDER_ACTIVITY' | 'HIGH_SINGLE_OWNERSHIP' | string; export type ShieldWarningSeverity = 'info' | 'warning' | 'critical'; export type ShieldWarningSource = string; export interface ShieldWarning { readonly type: ShieldWarningType; readonly message: string; readonly severity: ShieldWarningSeverity; readonly source?: ShieldWarningSource; } export interface UniTokenInfo { readonly chainId: number; readonly address: string; readonly name: string; readonly decimals: number; readonly symbol: string; readonly logoURI?: string; readonly tags?: string[]; readonly warnings?: ShieldWarning[]; readonly extensions?: { readonly [key: string]: { [key: string]: { [key: string]: UniTokenInfoExtensionValue; } | UniTokenInfoExtensionValue; } | UniTokenInfoExtensionValue; }; } export type UniTokenListVersion = { major: number; minor: number; patch: number; }; export type UniTokenList = { name: string; logoURI?: string; keywords: string[]; timestamp: string; tokens: UniTokenInfo[]; version: UniTokenListVersion; }; export interface TokenInfo extends Omit { readonly networkId: NetworkIdType; }