export interface TokenAssets { website: string; description: string; status: "active" | "inactive"; pngUrl: string; svgUrl: string; ledgerSignature: string; lockedAccounts: string; extraTokens: string[]; preferredRankAlgorithm: "trait" | "statistical" | "openRarity" | "jaccardDistances" | "custom" | null; priceSource: number | null; } export interface TokenWithBalance { type: "FungibleESDT" | "NonFungibleESDT" | "SemiFungibleESDT" | "MetaESDT"; identifier: string; collection: string | null; nonce: number | null; name: string; ticker: string; owner: string; minted: string; burnt: string; initialMinted: string; decimals: number; isPaused: boolean; assets: TokenAssets | null; transactions: number | null; accounts: number | null; canUpgrade: boolean; canMint: boolean | null; canBurn: boolean | null; canChangeOwner: boolean | null; canAddSpecialRoles: boolean | null; canPause: boolean; canFreeze: boolean | null; canWipe: boolean; canTransferNftCreateRole: boolean | null; price: number | null; marketCap: number | null; supply: string; circulatingSupply: string; timestamp: number; balance: string; valueUsd: number | null; attributes: string | null; } export interface TokenRoles { address: string | null; canLocalMint: boolean | null; canLocalBurn: boolean | null; canCreate: boolean | null; canBurn: boolean | null; canAddQuantity: boolean | null; canUpdateAttributes: boolean | null; canAddUri: boolean | null; canTransfer: boolean | null; roles: string[]; } export interface TokenWithRoles { type: "FungibleESDT" | "NonFungibleESDT" | "SemiFungibleESDT" | "MetaESDT"; identifier: string; collection: string | null; nonce: number | null; name: string; ticker: string; owner: string; minted: string; burnt: string; initialMinted: string; decimals: number; isPaused: boolean; assets: TokenAssets | null; transactions: number | null; accounts: number | null; canUpgrade: boolean; canMint: boolean | null; canBurn: boolean | null; canChangeOwner: boolean | null; canAddSpecialRoles: boolean | null; canPause: boolean; canFreeze: boolean | null; canWipe: boolean; canTransferNftCreateRole: boolean | null; price: number | null; marketCap: number | null; supply: string; circulatingSupply: string; timestamp: number; role: TokenRoles; address: string | null; canLocalMint: boolean | null; canLocalBurn: boolean | null; canCreate: boolean | null; canAddQuantity: boolean | null; canUpdateAttributes: boolean | null; canAddUri: boolean | null; canTransfer: boolean | null; } export interface TokensQuery { from?: number; size?: number; type?: "FungibleESDT" | "NonFungibleESDT" | "SemiFungibleESDT" | "MetaESDT"; search?: string; name?: string; identifier?: string; identifiers?: string | string[]; sort?: "accounts" | "transactions" | "price" | "marketCap"; order?: "asc" | "desc"; includeMetaESDT?: boolean; fields?: string; } export interface TokenDetailed { type: "FungibleESDT" | "NonFungibleESDT" | "SemiFungibleESDT" | "MetaESDT"; identifier: string; collection: string | null; nonce: number | null; name: string; ticker: string; owner: string; minted: string; burnt: string; initialMinted: string; decimals: number; isPaused: boolean; assets: TokenAssets | null; transactions: number | null; accounts: number | null; canUpgrade: boolean; canMint: boolean | null; canBurn: boolean | null; canChangeOwner: boolean | null; canAddSpecialRoles: boolean | null; canPause: boolean; canFreeze: boolean | null; canWipe: boolean; canTransferNftCreateRole: boolean | null; price: number | null; marketCap: number | null; supply: string; circulatingSupply: string; timestamp: number; roles: TokenRoles[] | null; canTransfer: boolean | null; } export interface TokensCountQuery { search?: string; name?: string; type?: "FungibleESDT" | "NonFungibleESDT" | "SemiFungibleESDT" | "MetaESDT"; identifier?: string; identifiers?: string | string[]; includeMetaESDT?: boolean; } export interface TokenSupplyQuery { denominated?: boolean; } export interface EsdtSupply { totalSupply: string; circulatingSupply: string; minted: string; burned: string; initialMinted: string; lockedAccounts: object; } export interface TokenAccountsQuery { from?: number; size?: number; } export interface TokenAccount { address: string; balance: string; identifier: string | null; attributes: string | null; } export interface TokenTransactionsQuery { from?: number; size?: number; sender?: string; receiver?: string[] | string; senderShard?: number; receiverShard?: number; miniBlockHash?: string; hashes?: string | string[]; status?: "success" | "pending" | "invalid" | "fail"; function?: string; before?: number; after?: number; order?: "asc" | "desc"; fields?: string | string[]; withScResults?: boolean; withOperations?: boolean; withLogs?: boolean; withScamInfo?: boolean; withUsername?: boolean; withBlockInfo?: boolean; } export interface TokenTransactionsCountQuery { sender?: string; receiver?: string[] | string; senderShard?: number; receiverShard?: number; miniBlockHash?: string; hashes?: string | string[]; status?: "success" | "pending" | "invalid" | "fail"; before?: number; after?: number; } export interface TokenTransfersQuery { from?: number; size?: number; sender?: string; receiver?: string[] | string; senderShard?: number; receiverShard?: number; miniBlockHash?: string; hashes?: string | string[]; status?: "success" | "pending" | "invalid" | "fail"; before?: number; after?: number; fields?: string[]; order?: "asc" | "desc"; withScamInfo?: boolean; withUsername?: boolean; withBlockInfo?: boolean; } export interface TokenTransfersCountQuery { sender?: string; receiver?: string[] | string; senderShard?: number; receiverShard?: number; miniBlockHash?: string; hashes?: string | string[]; status?: "success" | "pending" | "invalid" | "fail"; function?: string; before?: number; after?: number; }