# twap/events/data_managed_book.js

    'use strict'

    const hasOBTarget = require('../util/has_ob_target')

    /**
     * Saves the book on the instance state if it is needed for price target
     * matching, and it is for the configured symbol.
     *
     * Mapped to the `data:managedBook` event.
     *
     * @memberOf module:TWAP
     * @listens AOHost~dataManagedBook
     * @see module:TWAP.hasOBTarget
     *
     * @param {AOInstance} instance - AO instance state
     * @param {object} book - order book model
     * @param {EventMetaInformation} meta - source channel information
     */
    const onDataManagedBook = async (instance = {}, book, meta) => {
      const { state = {}, h = {} } = instance
      const { args = {} } = state
      const { symbol } = args
      const { debug, updateState } = h
      const { chanFilter } = meta
      const chanSymbol = chanFilter.symbol

      if (!hasOBTarget(args) || symbol !== chanSymbol) {
        return
      }

      debug('recv updated order book for %s', symbol)

      await updateState(instance, {
        lastBook: book
      })
    }

    module.exports = onDataManagedBook