code: func (ec *EthereumClient) CallContract(ctx *Context, msg *CallMsg, number int64) (output []byte, _ error) {
  	if number < 0 {
  		return ec.client.CallContract(ctx.context, msg.msg, nil)
  	}
  	return ec.client.CallContract(ctx.context, msg.msg, big.NewInt(number))
  }
docs: // Contract Calling
  // CallContract executes a message call transaction, which is directly executed in the VM
  // of the node, but never mined into the blockchain.
  //
  // blockNumber selects the block height at which the call runs. It can be <0, in which
  // case the code is taken from the latest known block. Note that state from very old
  // blocks might not be available.