host/events/insufficient_balance.js

'use strict'

/**
 * Propagates the error to all instances that have the relevant listener
 *
 * @param {object} aoHost
 * @param {string} gid - AO instance GID to operate on
 * @param {Order} order - the order that failed due to insufficient balance
 * @param {Notification} notification - which reported the error
 */
module.exports = async (aoHost, gid, order, notification) => {
  const instance = aoHost.getAOInstance(gid)

  if (!instance) {
    return
  }

  /**
   * Triggered when an order fails due to have insufficient balance
   *
   * @event AOHost~errorsInsufficientBalance
   * @param {object} order - the order that failed
   * @param {object} notification - the incoming notification
   */
  aoHost.triggerAOEvent(instance, 'errors', 'insufficient_balance', order, notification)
}