code: func (ec *Client) TransactionInBlock(ctx context.Context, blockHash common.Hash, index uint) (*types.Transaction, error) {
  	var json *rpcTransaction
  	err := ec.c.CallContext(ctx, &json, "eth_getTransactionByBlockHashAndIndex", blockHash, hexutil.Uint64(index))
  	if err == nil {
  		if json == nil {
  			return nil, ethereum.NotFound
  		} else if _, r, _ := json.tx.RawSignatureValues(); r == nil {
  			return nil, fmt.Errorf("server returned transaction without signature")
  		}
  	}
  	if json.From != nil && json.BlockHash != nil {
  		setSenderFromServer(json.tx, *json.From, *json.BlockHash)
  	}
  	return json.tx, err
  }
docs: // TransactionInBlock returns a single transaction at index in the given block.