import BigNumber from 'bignumber.js'; import { IToken, ISubmittedTransaction } from './interfaces'; import { TransactionStatus } from './enums'; import { Transaction, Block, BlockHeader, CosmosTransaction, GenericTransactions, ICosmosRawTransaction } from './types'; import BaseGateway from './BaseGateway'; import { ICurrency, IRawTransaction } from './interfaces'; import { Address } from './types'; export interface ICurrencyParamsConstructTx { currency: ICurrency; amount: BigNumber; } export interface IMultiCurrenciesParamsConstructTx { fromAddress: Address; toAddress: Address; entries: ICurrencyParamsConstructTx[]; } export interface IMultiEntriesParamsConstructTx { fromAddress: Address; toAddress: Address; entry: ICurrencyParamsConstructTx; } export declare abstract class CosmosBasedGateway extends BaseGateway { protected _currency: IToken; protected _appClient: any; protected _url: any; constructor(currency: IToken, url?: any); getAccount(address: string): Promise; getBlockCount(): Promise; getBlockTransactions(blockHeight: number): Promise>; sendRawTransaction(rawTx: string, retryCount?: number): Promise; getAddressBalance(address: string): Promise; etimateFee(rawTx: any): Promise; getTransactionStatus(txid: string): Promise; getAverageSeedingFee(): Promise; abstract _convertRawToCosmosTransactions(rawTx: ICosmosRawTransaction, blockHeader: BlockHeader, latestBlock: number, fee?: BigNumber): CosmosTransaction; abstract constructRawTransaction(param: IMultiCurrenciesParamsConstructTx, options: { isConsolidate?: boolean; destinationTag?: string; feeCoin?: ICurrency; }): Promise; abstract getCosmosRawTx(tx: any): ICosmosRawTransaction; abstract getFeeTx(rawTx: any): BigNumber; abstract getCode(): string; abstract convertCosmosBlock(block: any): Promise; protected _getOneTransaction(txid: string): Promise; protected _getOneBlock(blockHash: string | number): Promise; } export default CosmosBasedGateway;