Module: JsonRpcClient
- Defined in:
- lib/json_rpc_client/eth.rb
Defined Under Namespace
Classes: Eth, HttpError, JSONRpcError
Class Method Summary collapse
Class Method Details
.request(url, method, params, logger = Logger.new($stdout, level: :info)) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/json_rpc_client/eth.rb', line 6 def request( url, method, params, logger = Logger.new($stdout, level: :info) ) logger.debug "rpc url: #{url}" uri = URI.parse(url) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = uri.scheme == "https" request = Net::HTTP::Post.new(uri, "Content-Type" => "application/json") request.body = { jsonrpc: "2.0", method: method, params: params, id: Time.now.to_i }.to_json logger.debug "req body: #{request.body}" # https://docs.ruby-lang.org/en/master/Net/HTTPResponse.html response = http.request(request) raise HttpError, response unless response.is_a?(Net::HTTPOK) logger.debug "res body: #{response.body}" body = JSON.parse(response.body) raise JSONRpcError, body["error"] if body["error"] body["result"] end |