import { Connection, PublicKey } from "@solana/web3.js"; import { Address } from "@project-serum/anchor"; import { ArbitratorCert, ConfigData, KycCertData, MarketStateData, NormalizedOfferData, NormalizedTradeData, OfferData, TradeData } from "../"; import { ParsableEntity } from "./parsing"; /** * Supported accounts */ export type CachedValue = ConfigData | MarketStateData | TradeData | KycCertData | ArbitratorCert | OfferData; /** * Include both the entity (i.e. type) of the stored value, and the value itself */ export interface CachedContent { entity: ParsableEntity; value: CachedValue | null; } export declare class AccountFetcher { private readonly connection; private readonly _cache; private _tokenAccountRentExempt; constructor(connection: Connection, cache?: Record>); /*** Public Methods ***/ /** * Retrieve minimum balance for rent exemption of a Token Account; * * @param refresh force refresh of account rent exemption * @returns minimum balance for rent exemption */ getTokenAccountRentExempt(refresh?: boolean): Promise; getConfig(address: Address, refresh?: boolean): Promise; getMarketState(address: Address, refresh?: boolean): Promise; getTradeData(address: Address, refresh?: boolean): Promise; getNormalizedTradeData(address: Address, refresh?: boolean): Promise; getOfferData(address: Address, refresh?: boolean): Promise; getNormalizedOfferData(address: Address, refresh?: boolean): Promise; getKycCertData(address: Address, refresh?: boolean): Promise; getArbitratorCertData(address: Address, refresh?: boolean): Promise; getTradeDatas(addresses: PublicKey[], refresh?: boolean): Promise<(TradeData | null)[]>; getNormalizedTradeDatas(addresses: PublicKey[], refresh?: boolean): Promise<(NormalizedTradeData | null)[]>; getOfferDatas(addresses: PublicKey[], refresh?: boolean): Promise<(OfferData | null)[]>; getNormalizedOfferDatas(addresses: PublicKey[], refresh?: boolean): Promise<(NormalizedOfferData | null)[]>; /** * Update the cached value of all entities currently in the cache. * Uses batched rpc request for network efficient fetch. */ refreshAll(): Promise; /*** Private Methods ***/ /** * Retrieve from cache or fetch from rpc, an account */ private get; /** * Retrieve from cache or fetch from rpc, a list of accounts */ private list; /** * Make batch rpc request */ private bulkRequest; }