import { Observable } from 'rxjs'; import { IListener } from '../../infrastructure/IListener'; import { AggregateTransaction } from '../../model/transaction/AggregateTransaction'; import { SignedTransaction } from '../../model/transaction/SignedTransaction'; import { Transaction } from '../../model/transaction/Transaction'; /** * Transaction Service Interface */ export interface ITransactionService { /** * @param transactionHashes List of transaction hashes. * @returns {Observable} */ resolveAliases(transactionHashes: string[]): Observable; /** * @param signedTransaction Signed transaction to be announced. * @param listener Websocket listener * @returns {Observable} */ announce(signedTransaction: SignedTransaction, listener: IListener): Observable; /** * Announce aggregate transaction * @param signedTransaction Signed aggregate bonded transaction. * @param listener Websocket listener * @returns {Observable} */ announceAggregateBonded(signedTransaction: SignedTransaction, listener: IListener): Observable; /** * Announce aggregate bonded transaction with lock fund * @param signedHashLockTransaction Signed hash lock transaction. * @param signedAggregateTransaction Signed aggregate bonded transaction. * @param listener Websocket listener * @returns {Observable} */ announceHashLockAggregateBonded(signedHashLockTransaction: SignedTransaction, signedAggregateTransaction: SignedTransaction, listener: IListener): Observable; }