code: func dbFetchSpendJournalEntry(dbTx database.Tx, block *btcutil.Block) ([]SpentTxOut, error) {
  	// Exclude the coinbase transaction since it can't spend anything.
  	spendBucket := dbTx.Metadata().Bucket(spendJournalBucketName)
  	serialized := spendBucket.Get(block.Hash()[:])
  	blockTxns := block.MsgBlock().Transactions[1:]
  	stxos, err := deserializeSpendJournalEntry(serialized, blockTxns)
  	if err != nil {
  		// Ensure any deserialization errors are returned as database
  		// corruption errors.
  		if isDeserializeErr(err) {
  			return nil, database.Error{
  				ErrorCode: database.ErrCorruption,
  				Description: fmt.Sprintf("corrupt spend "+
  					"information for %v: %v", block.Hash(),
  					err),
  			}
  		}
  
  		return nil, err
  	}
  
  	return stxos, nil
  }
docs: // dbFetchSpendJournalEntry fetches the spend journal entry for the passed block
  // and deserializes it into a slice of spent txout entries.
  //
  // NOTE: Legacy entries will not have the coinbase flag or height set unless it
  // was the final output spend in the containing transaction.  It is up to the
  // caller to handle this properly by looking the information up in the utxo set.