///
///
///
import EventEmitter from 'events';
import { Account, AccountKey, Balance, Timestamp, Hash, BlockNumber, Log, AuthMapItem } from "../../../types/web3";
import type { CallContractParams, Contract, CallContractArgType } from "../../contract";
export interface ProviderInfo {
username?: string;
}
export type RequestParams = any;
export interface RequestArguments {
method: string;
params?: RequestParams;
}
export interface CreateAccountParams {
newAccountName: Account;
authKey: AccountKey;
recoveryKey: AccountKey;
}
export interface CreateAccountResponse {
txHash: Hash;
}
export type QueryAccountParams = {
account: Account;
};
export interface QueryAccountResponse {
address: string;
balance: Balance;
encryptionKey: AccountKey;
recoveryKey: AccountKey;
recoveryTime: Timestamp;
authMap: AuthMapItem[];
status: number;
version: number;
}
export interface UpdateAuthMapParams {
account: Account;
authMap: AuthMapItem[];
}
export interface UpdateAuthMapResponse {
txHash: Hash;
}
export interface QueryBlockHeaderParams {
blockNumber?: BlockNumber;
hash?: Hash;
}
export interface QueryBlockHeaderResponse {
gasUsed: number;
hash: Hash;
logBloom: string;
number: number;
parentHash: string;
receiptRoot: string;
stateRoot: string;
timestamp: number;
transactionRoot: string;
version: number;
}
export type QueryLastBlockResponse = QueryBlockHeaderResponse;
export interface QueryBlockParams {
blockNumber?: BlockNumber;
hash?: Hash;
}
export interface QueryBlockResponse {
gasUsed: number;
hash: Hash;
logBloom: string;
number: number;
parentHash: string;
receiptRoot: string;
stateRoot: string;
timestamp: number;
transactionRoot: string;
version: number;
consensusProof: string;
receiptList: any[];
transactionList: any[];
}
export interface QueryTransactionParams {
hash: Hash;
tee?: boolean;
}
export interface QueryTransactionResponse {
blockNumber: BlockNumber;
hash: Hash;
data: string;
from: string;
to: string;
}
export interface QueryTransactionReceiptParams {
hash: Hash;
tee?: boolean;
}
export interface QueryTransactionReceiptResponse {
blockNumber: BlockNumber;
gasUsed: number;
output: string;
code: number;
logs: Log[];
}
export interface DeployContractParams {
code?: Buffer;
gas?: number;
tee?: boolean;
local?: boolean;
args?: CallContractArgType[];
}
export interface DeployContractResponse {
txHash: string;
teeSecret?: string;
gasUsed: number;
}
export type ProviderCallContractParams = CallContractParams;
export type CallContractResponse = {
returnValue: T;
notParseReturn?: boolean;
teeSecret?: string;
txHash: string;
receiptCode: number;
gasUsed: number;
};
export interface QueryContractParams {
contractName: string;
}
export interface QueryContractResponse {
code: string;
authMap?: AuthMapItem[];
}
export interface SignParams {
payload: string;
}
export interface SignResponse {
timestamp?: Timestamp;
signature: string;
}
export declare const maxQueryTransactionReceiptRetryInterval = 30000;
export declare const queryTransactionReceiptRetryInterval: number[];
export interface TransferBalanceParams {
from?: Account;
to: Account;
value: number;
}
export interface TransferBalanceResponse {
txHash: Hash;
}
export interface SetRecoverkeyParams {
account?: Account;
recoverKey: AccountKey;
}
export interface SetRecoverkeyResponse {
txHash: Hash;
}
export interface PreResetPubKeyParams {
account?: Account;
}
export interface PreResetPubKeyResponse {
txHash: Hash;
}
export interface ResetPubKeyParams {
account?: Account;
authKey: AccountKey;
}
export interface ResetPubKeyResponse {
txHash: Hash;
}
export interface FreezeAccountParams {
}
export interface FreezeAccountResponse {
}
export interface FreezeContractParams {
}
export interface FreezeContractResponse {
}
export interface NativeDepositDataParams {
to?: Account;
data?: string;
}
export interface NativeDepositDataResponse {
txHash: Hash;
}
export interface QueryLastBlockHeaderResponse {
gasUsed: number;
hash: Hash;
logBloom: string;
number: number;
parentHash: string;
receiptRoot: string;
stateRoot: string;
timestamp: number;
transactionRoot: string;
version: number;
}
export interface QueryTransactionListParams {
}
export interface QueryTransactionListResponse {
}
export interface QueryTransactionAndReceiptParams {
}
export interface QueryTransactionAndReceiptResponse {
}
export interface QueryTimestampParams {
}
export interface QueryTimestampResponse {
}
export interface QueryP2PStatusParams {
}
export interface QueryP2PStatusResponse {
}
export interface QueryConsensusStatusParams {
}
export interface QueryConsensusStatusResponse {
}
export interface QueryCommonConsensusStatusParams {
}
export interface QueryCommonConsensusStatusResponse {
}
export interface QuerySyncStatusParams {
}
export interface QuerySyncStatusResponse {
}
export interface QueryTransactionCacheStatus {
}
export interface QueryBlockCacheStatusParams {
}
export interface QueryBlockCacheStatusResponse {
}
export interface QueryContractNodesStatusParams {
}
export interface QueryContractNodesStatusResponse {
}
export interface QueryContractConfigStatusParams {
}
export interface QueryContractConfigStatusResponse {
}
export interface QueryLogLevelParams {
}
export interface QueryLogLevelResponse {
}
export interface UpdateBlackListParams {
}
export interface UpdateBlackListResponse {
}
export interface QueryBlockProofParams {
}
export interface QueryBlockProofResponse {
}
export interface QueryBlockHeaderProofParams {
}
export interface QueryBlockHeaderProofResponse {
}
export interface QueryStateProofParams {
}
export interface QueryStateProofResponse {
}
export interface QueryTransactionProofParams {
}
export interface QueryTransactionProofResponse {
}
export interface QueryReceiptProofParams {
}
export interface QueryReceiptProofResponse {
}
export interface QueryBlockHeaderInfosParams {
}
export interface QueryBlockHeaderInfosResponse {
}
export interface QueryBlockReceiptInfosParams {
}
export interface QueryBlockReceiptInfosResponse {
}
export interface QueryBlockBodyInfosParams {
}
export interface QueryBlockBodyInfosReponse {
}
export interface WatchContractEventParams {
}
export interface WatchContractEventCallbackData {
}
export type WatchContractEventCallback = (data: WatchContractEventCallbackData) => void;
export declare abstract class BaseProvider extends EventEmitter {
abstract majorVersion: number;
abstract watchContractEvent(contract: Contract, params: WatchContractEventParams, callback: WatchContractEventCallback): void;
abstract createAccount(params: CreateAccountParams): Promise;
abstract transferBalance(params: TransferBalanceParams): Promise;
abstract queryAccount(params: QueryAccountParams): Promise;
abstract setRecoverkey(params: SetRecoverkeyParams): Promise;
abstract preResetPubKey(params: PreResetPubKeyParams): Promise;
abstract resetPubKey(params: ResetPubKeyParams): Promise;
abstract freezeAccount(params: FreezeAccountParams): Promise;
abstract freezeContract(params: FreezeContractParams): Promise;
abstract nativeDepositData(params: NativeDepositDataParams): Promise;
abstract queryLastBlockHeader(): Promise;
abstract queryTransactionList(params: QueryTransactionListParams): Promise;
abstract queryTransactionAndReceipt(params: QueryTransactionAndReceiptParams): Promise;
abstract queryTimestamp(params: QueryTimestampParams): Promise;
abstract queryP2PStatus(params: QueryP2PStatusParams): Promise;
abstract queryConsensusStatus(params: QueryConsensusStatusParams): Promise;
abstract queryCommonConsensusStatus(params: QueryCommonConsensusStatusParams): Promise;
abstract querySyncStatus(params: QuerySyncStatusParams): Promise;
abstract queryTransactionCacheStatus(params: QueryTransactionCacheStatus): Promise;
abstract queryBlockCacheStatus(params: QueryBlockCacheStatusParams): Promise;
abstract queryContractNodesStatus(params: QueryContractNodesStatusParams): Promise;
abstract queryContractConfigStatus(params: QueryContractConfigStatusParams): Promise;
abstract queryLogLevel(params: QueryLogLevelParams): Promise;
abstract updateBlackList(params: UpdateBlackListParams): Promise;
abstract queryBlockProof(params: QueryBlockProofParams): Promise;
abstract queryBlockHeaderProof(params: QueryBlockHeaderProofParams): Promise;
abstract queryStateProof(params: QueryStateProofParams): Promise;
abstract queryTransactionProof(params: QueryTransactionProofParams): Promise;
abstract queryReceiptProof(params: QueryReceiptProofParams): Promise;
abstract queryBlockHeaderInfos(params: QueryBlockHeaderInfosParams): Promise;
abstract queryBlockReceiptInfos(params: QueryBlockReceiptInfosParams): Promise;
abstract queryBlockBodyInfos(params: QueryBlockBodyInfosParams): Promise;
abstract updateAuthMap(params: UpdateAuthMapParams): Promise;
abstract queryBlockHeader(params: QueryBlockHeaderParams): Promise;
abstract queryBlock(params: QueryBlockParams): Promise;
abstract queryLastBlock(): Promise;
abstract queryTransaction(params: QueryTransactionParams): Promise;
abstract queryTransactionReceipt(params: QueryTransactionReceiptParams): Promise;
abstract deployContract(contract: Contract, params: DeployContractParams): Promise;
abstract updateContract(contract: Contract, params: DeployContractParams): Promise;
abstract callContract(contract: Contract, params: ProviderCallContractParams): Promise>;
abstract queryContract(params?: QueryContractParams): Promise;
abstract sign(params: SignParams): Promise;
queryTransactionReceiptWithRetry(params: QueryTransactionReceiptParams, stopTime?: number, // 结束请求的时间,用于设定超时
leftTimes?: number): Promise;
}