code: func dbFetchTx(dbTx database.Tx, hash *chainhash.Hash) (*wire.MsgTx, error) {
  	// Look up the location of the transaction.
  	blockRegion, err := dbFetchTxIndexEntry(dbTx, hash)
  	if err != nil {
  		return nil, err
  	}
  	if blockRegion == nil {
  		return nil, fmt.Errorf("transaction %v not found", hash)
  	}
  
  	// Load the raw transaction bytes from the database.
  	txBytes, err := dbTx.FetchBlockRegion(blockRegion)
  	if err != nil {
  		return nil, err
  	}
  
  	// Deserialize the transaction.
  	var msgTx wire.MsgTx
  	err = msgTx.Deserialize(bytes.NewReader(txBytes))
  	if err != nil {
  		return nil, err
  	}
  
  	return &msgTx, nil
  }
docs: // dbFetchTx looks up the passed transaction hash in the transaction index and
  // loads it from the database.