code: func (ec *Client) TransactionByHash(ctx context.Context, hash common.Hash) (tx *types.Transaction, isPending bool, err error) {
  	var json *rpcTransaction
  	err = ec.c.CallContext(ctx, &json, "eth_getTransactionByHash", hash)
  	if err != nil {
  		return nil, false, err
  	} else if json == nil {
  		return nil, false, ethereum.NotFound
  	} else if _, r, _ := json.tx.RawSignatureValues(); r == nil {
  		return nil, false, fmt.Errorf("server returned transaction without signature")
  	}
  	if json.From != nil && json.BlockHash != nil {
  		setSenderFromServer(json.tx, *json.From, *json.BlockHash)
  	}
  	return json.tx, json.BlockNumber == nil, nil
  }
docs: // TransactionByHash returns the transaction with the given hash.