code: func (m *Manager) DisconnectBlock(dbTx database.Tx, block *btcutil.Block,
  	stxo []blockchain.SpentTxOut) error {
  
  	// Call each of the currently active optional indexes with the block
  	// being disconnected so they can update accordingly.
  	for _, index := range m.enabledIndexes {
  		err := dbIndexDisconnectBlock(dbTx, index, block, stxo)
  		if err != nil {
  			return err
  		}
  	}
  	return nil
  }
docs: // DisconnectBlock must be invoked when a block is being disconnected from the
  // end of the main chain.  It keeps track of the state of each index it is
  // managing, performs some sanity checks, and invokes each indexer to remove
  // the index entries associated with the block.
  //
  // This is part of the blockchain.IndexManager interface.