code: func (p *MemoryPool) TxByID(txID string) (*token.TokenTransaction, error) {
  	p.mutex.RLock()
  	defer p.mutex.RUnlock()
  
  	tt := p.history[txID]
  	if tt == nil {
  		return nil, &TxNotFoundError{TxID: txID}
  	}
  
  	return tt, nil
  }
docs: // TxByID gets a transaction by its transaction ID.
  // If no transaction exists with the given ID, a TxNotFoundError is returned.