class Eth::Client

def call_raw(contract, func, *args, **kwargs)

Other tags:
    See: https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call -
def call_raw(contract, func, *args, **kwargs)
  params = {
    data: call_payload(func, args),
    to: kwargs[:address] || contract.address,
    from: kwargs[:from],
  }.compact
  raw_result = eth_call(params)["result"]
  types = func.outputs.map { |i| i.type }
  return nil if raw_result == "0x"
  Eth::Abi.decode(types, raw_result)
end