import { IBlockchainExplorer, IBlockchainTransferEvent } from './IBlockchainExplorer'; import { IContractDetails } from '../models/IContractDetails'; import { Web3Client } from '../clients/Web3Client'; import { TAddress } from '../models/TAddress'; import { TPlatform } from '../models/TPlatform'; import { TEth } from '../models/TEth'; import { IVerifier } from './verifiers/IVerifier'; import { TExplorer, TExplorerDefinition } from '../models/TExplorer'; /** @deprecated use TExplorerDefinition instead */ export interface IBlockchainExplorerConfig { key?: string; api?: string; host?: string; www?: string; verification?: boolean | 'fs'; explorers?: { api: string; apiKey?: string; verification?: boolean | 'fs'; }[]; } /** @deprecated use TExplorerDefinition instead */ export interface IBlockchainExplorerFactoryParams extends IBlockchainExplorerConfig { platform?: string; ABI_CACHE?: string; CONTRACTS?: IContractDetails[]; getWeb3?: (platform?: TPlatform) => Web3Client; getConfig?: (platform?: TPlatform) => IBlockchainExplorerConfig; } type TxFilter = { fromBlockNumber?: number; page?: number; size?: number; sort?: 'asc' | 'desc'; }; export declare class BlockchainExplorer implements IBlockchainExplorer { client: HttpClient; inMemoryDb: IContractDetails[]; fsVerification: IVerifier; config: TExplorer; platform: TPlatform; getWeb3: (platform: any) => Web3Client; constructor(config: TExplorerDefinition); constructor(opts: IBlockchainExplorerFactoryParams); getContractMeta(name: string): any; getContractMeta(address: string): any; private formatUri; getContractCreation(address: TAddress): Promise<{ creator: TAddress; txHash: TEth.Hex; }>; getContractAbi(address: TAddress, params?: { implementation: TAddress | string; }): Promise<{ abi: string; implementation: TAddress; }>; submitContractVerification(contractData: { address: TAddress; sourceCode: string | any; contractName: any; compilerVersion: any; optimizer?: { enabled?: boolean; runs: number; }; arguments: TEth.Hex; }): Promise; checkContractVerificationSubmission(submission: { guid: any; }): Promise; submitContractProxyVerification(contractData: { address: TEth.Address; expectedImplementation?: TEth.Address; }): Promise; checkContractProxyVerificationSubmission(submission: { guid: any; }): Promise; getContractSource(address: string): Promise<{ SourceCode: { contractName: string; files: { [filename: string]: { content: string; }; }; }; ContractName: string; ABI: string; }>; getTransactions(addr: TAddress, params?: TxFilter): Promise; getTransactionsAll(addr: TAddress, params?: TxFilter): Promise; getInternalTransactions(addr: TAddress, params?: TxFilter): Promise; getInternalTransactionsAll(addr: TAddress): Promise; getErc20Transfers(addr: TAddress, fromBlockNumber?: number): Promise; getErc20TransfersAll(addr: TAddress, fromBlockNumber?: number): Promise; getSimilarContract(address: TAddress): Promise<`0x${string}`>; loadTxs(type: 'tokentx' | 'txlistinternal' | 'txlist', address: TAddress, params?: { fromBlockNumber?: number; page?: number; size?: number; sort?: 'asc' | 'desc'; }): Promise; loadTxsAll(type: 'tokentx' | 'txlistinternal' | 'txlist', address: TAddress, params?: TxFilter): Promise; registerAbi(abis: { name: any; address: any; abi: any; }[]): Promise; } declare class HttpClient { get(url: string, params?: any): Promise; post(url: string, opts: { params?: Record; body: any; }): Promise; getHtml(url: string): Promise; getPaged(url: string): Promise; private getInner; private postInner; } export {};