import { ethers } from 'ethers'; import { BigNumber } from 'bignumber.js'; import { TransactionRequest, TransactionResponse } from 'ethers/providers'; import { NetworkId } from '@augurproject/utils'; import { Dependencies, AbiFunction, AbiParameter, Transaction, TransactionReceipt } from './types'; export interface EthersSigner { sendTransaction(transaction: ethers.providers.TransactionRequest): Promise; getAddress(): Promise; signMessage(message: ethers.utils.Arrayish | string): Promise; } export interface EthersProvider { call(transaction: Transaction): Promise; estimateGas(transaction: TransactionRequest): Promise; listAccounts(): Promise; getBalance(address: string): Promise; getGasPrice(networkId?: NetworkId): Promise; getTransaction(hash: string): Promise; waitForTransaction(hash: string, confirmations?: number): Promise; } export declare enum TransactionStatus { AWAITING_SIGNING = 0, PENDING = 1, SUCCESS = 2, FAILURE = 3, RELAYER_DOWN = 4, FEE_TOO_LOW = 5 } export declare type TransactionStatusCallback = (transaction: TransactionMetadata, status: TransactionStatus, hash?: string, reason?: string) => void; export interface TransactionMetadataParams { [paramName: string]: any; } export interface TransactionMetadata { name: string; params: TransactionMetadataParams; } export declare class ContractDependenciesEthers implements Dependencies { readonly provider: EthersProvider; signer?: EthersSigner; readonly address?: string; protected readonly abiCoder: ethers.utils.AbiCoder; protected transactionDataMetaData: { [data: string]: TransactionMetadata; }; protected transactionStatusCallbacks: { [key: string]: TransactionStatusCallback; }; constructor(provider: EthersProvider, signer?: EthersSigner, address?: string); setSigner(signer: EthersSigner): void; setGasPrice(gasPrice: BigNumber): void; transactionToEthersTransaction(transaction: Transaction): Transaction; ethersTransactionToTransaction(transaction: Transaction): Transaction; keccak256(utf8String: string): string; encodeParams(abiFunction: AbiFunction, parameters: any[]): string; private encodeParam; storeTxMetadata(abiFunction: AbiFunction, parameters: any[], txData: string): void; decodeParams(abiParameters: AbiParameter[], encoded: string): any[]; call(transaction: Transaction): Promise; getDefaultAddress(): Promise; registerTransactionStatusCallback(key: string, callback: TransactionStatusCallback): void; deRegisterTransactionStatusCallback(key: string): void; deRegisterAllTransactionStatusCallbacks(): void; onTransactionStatusChanged(txMetadata: TransactionMetadata, status: TransactionStatus, hash?: string, reason?: string): void; submitTransaction(transaction: Transaction): Promise; sendTransaction(tx: Transaction, txMetadata: TransactionMetadata): Promise; estimateGas(transaction: Transaction): Promise; estimateGasForEthersTransaction(transaction: Transaction): Promise; } //# sourceMappingURL=ContractDependenciesEthers.d.ts.map