Transaction Manager

class TransactionManager(wallet)

exported from managers/transaction-manager

Extends:
  • utils.PausableTypedEventEmitter

TransactionManager manages and tracks single transactions

Arguments:
  • wallet (wallet.Wallet) –
TransactionManager.wallet

type: wallet.Wallet

TransactionManager.addTransaction(transaction)
Arguments:
  • transaction (models/transaction.SignedTransaction) –
Returns:

Promise<void>

TransactionManager.fetchAccountTransactions(account)
Arguments:
  • account (models/account.Account) –
Returns:

Promise<models/transaction.SignedTransaction[]>

TransactionManager.fetchAccountTransactionsAfter(account, blockno, limit)
Arguments:
  • account (models/account.Account) –
  • blockno (number) –
  • limit (undefined|number) –
Returns:

Promise<models/transaction.SignedTransaction[]>

TransactionManager.fetchAccountTransactionsBefore(account, blockno, limit)
Arguments:
  • account (models/account.Account) –
  • blockno (number) –
  • limit (undefined|number) –
Returns:

Promise<models/transaction.SignedTransaction[]>

TransactionManager.getAccountTransactions(accountOrSpec)

Returns transactions stored for an account

Arguments:
  • accountOrSpec (models/account.AccountSpec|models/account.Account) –
Returns:

Promise<models/transaction.Transaction[]>

TransactionManager.pause()
TransactionManager.resume()
TransactionManager.sendTransaction(transaction)

Sends prepared and signed transaction to the Aergo client. Adds transaction to the manager and starts a tracker.

Arguments:
  • transaction (models/transaction.SignedTransaction) –
Returns:

Promise<managers/transaction-manager.TransactionTracker> – transaction tracker

TransactionManager.trackAccount(account)

Track transactions for account. There is no default implementation for this. The only generally available method would be to scan the entire blockchain which is highly inefficient. If you want that, use your own full node and add the data source using wallet.use(NodeTransactionScanner);

Arguments:
  • account (models/account.Account) –
Returns:

managers/transaction-manager.AccountTransactionTracker

TransactionManager.trackTransaction(transaction)
Arguments:
  • transaction (models/transaction.SignedTransaction) –
Returns:

Promise<managers/transaction-manager.TransactionTracker>

class TransactionTracker(manager, transaction)

exported from managers/transaction-manager

Extends:
  • utils.PausableTypedEventEmitter
Arguments:
  • manager (managers/transaction-manager.TransactionManager) –
  • transaction (models/transaction.SignedTransaction) –
TransactionTracker.hash

type: string

TransactionTracker.transaction

type: models/transaction.SignedTransaction

TransactionTracker.cancel()

Cancels transaction tracker. This does not cancel sending the transaction.

TransactionTracker.getReceipt()

Returns a promise that resolves when the transaction is confirmed and the receipt is available and rejects when an error or timeout occurs.

Returns:Promise<managers/transaction-manager.GetReceiptResult>
TransactionTracker.load()

Attempt to retrieve transaction data from node. Emits events according to changed status.

Returns:Promise<void>
TransactionTracker.retryLoad()

Repeatedly tries loading transaction status. This uses an exponential backoff in case the transaction is not confirmed yet.

class AccountTransactionTracker(manager, account)
Extends:
  • utils.PausableTypedEventEmitter
Arguments:
  • manager (managers/transaction-manager.TransactionManager) –
  • account (models/account.Account) –
AccountTransactionTracker.load()
Returns:Promise<models/account.Account>
AccountTransactionTracker.pause()
AccountTransactionTracker.resume()