import type { DAppInfo, SessionDetails } from "wallet-comms-sdk"; import type { AccountType, KeySpace } from "../utils/enums"; export interface KeyPath { account: AccountType; type: KeySpace; index: number; } export interface AddressKey { keyPath: string; address: string; balance: Balance; tokensBalance: Record; } export interface Balance { confirmed: string | number; unconfirmed: string | number; } export interface Account { id: number; name: string; address: string; balance: Balance; tokensBalance: Record; sessions: Record } export interface VaultInfo { address: string; balance: Balance; block: number; index: number; } export interface SessionInfo { details: SessionDetails; appInfo: DAppInfo; }; export interface AssetBase { token: string; tokenIdHex: string; parent: string; } export interface TokenAsset { name: string; ticker: string; iconUrl: string; decimals: number; } export interface NFTAsset { name: string; series: string; collection: string; author: string; public: string; front: string; back: string; } export type AssetType = 'token' | 'nft'; export type AssetInfo = | (AssetBase & { type: 'token'; data: TokenAsset }) | (AssetBase & { type: 'nft'; data: NFTAsset }); export interface MarketData { id: string; name: string; symbol: string; image: string; price: number; priceChange?: number | null; priceChangePercentage?: number | null; marketCap?: number | null; fdv?: number | null; circSupply?: number | null; totalSupply?: number | null; maxSupply?: number | null; totalVolume?: number | null; }