code: def eth_call(self, from_, to=None, gas=None,
                   gas_price=None, value=None, data=None,
                   block=BLOCK_TAG_LATEST):
          
          block = validate_block(block)
          obj = {}
          obj['from'] = from_
          if to is not None:
              obj['to'] = to
          if gas is not None:
              obj['gas'] = hex(gas)
          if gas_price is not None:
              obj['gasPrice'] = hex(gas_price)
          if value is not None:
              obj['value'] = hex(ether_to_wei(value))
          if data is not None:
              obj['data'] = data
  
          return (yield from self.rpc_call('eth_call', [obj, block]))
docs: https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call
  
          :param from_: From account address
          :type from_: str
  
          :param to: To account address (optional)
          :type to: str
  
          :param gas: Gas amount for current transaction (optional)
          :type gas: int
  
          :param gas_price: Gas price for current transaction (optional)
          :type gas_price: int
  
          :param value: Amount of ether to send (optional)
          :type value: int
  
          :param data: Additional data for transaction (optional)
          :type data: hex
  
          :param block: Block tag or number (optional)
          :type block: int or BLOCK_TAGS
  
          :rtype: str