code: func (ec *EthereumClient) GetBlockByNumber(ctx *Context, number int64) (block *Block, _ error) {
  	if number < 0 {
  		rawBlock, err := ec.client.BlockByNumber(ctx.context, nil)
  		return &Block{rawBlock}, err
  	}
  	rawBlock, err := ec.client.BlockByNumber(ctx.context, big.NewInt(number))
  	return &Block{rawBlock}, err
  }
docs: // GetBlockByNumber returns a block from the current canonical chain. If number is <0, the
  // latest known block is returned.