import { RPCBody } from '@airgap/coinlib-core/data/RPCBody'; import { BigNumber } from '@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber'; import { RPCConvertible } from '@airgap/coinlib-core/interfaces/RPCConvertible'; import { AirGapTransactionStatus } from '@airgap/module-kit'; import { EthereumNodeClient } from './EthereumNodeClient'; export declare class EthereumRPCBody extends RPCBody implements RPCConvertible { static blockEarliest: string; static blockLatest: string; static blockPending: string; toRPCBody(): string; toJSON(): any; } export interface EthereumRPCResponse { id: number; jsonrpc: string; result?: any; error?: { code: number; message: string; }; } export declare class EthereumRPCData { protected static parametersLength: number; methodSignature: string; constructor(methodSignature: string); abiEncoded(): string; static addLeadingZeroPadding(value: string, targetLength?: number): string; static removeLeadingZeroPadding(value: string, isAddress?: boolean): string; static abiDecoded(value: string, encodedType: 'bytes'): string; } export declare class EthereumRPCDataBalanceOf extends EthereumRPCData { static methodName: string; address: string; constructor(address: string); abiEncoded(): string; } export declare class EthereumRPCDataTransfer extends EthereumRPCData { static methodName: string; recipient: string; amount: string; constructor(toAddressOrData: string, amount?: string); abiEncoded(): string; } export declare class HttpEthereumNodeClient implements EthereumNodeClient { protected readonly baseURL: string; protected readonly headers?: any; constructor(baseURL: string, headers?: any); fetchBalance(address: string): Promise; fetchTransactionCount(address: string): Promise; sendSignedTransaction(transaction: string): Promise; getTransactionStatus(transactionHash: string): Promise; callBalanceOf(contractAddress: string, address: string): Promise; callBalanceOfOnContracts(contractAddresses: string[], address: string): Promise<{ [contractAddress: string]: BigNumber; }>; private balanceOfBody; estimateTransactionGas(fromAddress: string, toAddress: string, amount?: string, data?: string, gas?: string): Promise; estimateTransferGas(contractAddress: string, fromAddress: string, toAddress: string, hexAmount: string): Promise; getGasPrice(): Promise; getContractName(contractAddress: string): Promise; getContractSymbol(contractAddress: string): Promise; getContractDecimals(contractAddress: string): Promise; protected contractCallBody(contractAddress: string, data: EthereumRPCData, extraParams?: any[], id?: number, jsonrpc?: string): EthereumRPCBody; protected send(body: EthereumRPCBody): Promise; protected batchSend(bodies: EthereumRPCBody[]): Promise; }