class AppChain::Http

Constants

DEFAULT_ID
DEFAULT_JSONRPC
DEFAULT_PARAMS

Attributes

url[RW]

Public Class Methods

new(url) click to toggle source
# File lib/appchain/http.rb, line 13
def initialize(url)
  @url = url
end

Public Instance Methods

call_rpc(method, jsonrpc: DEFAULT_JSONRPC, params: DEFAULT_PARAMS, id: DEFAULT_ID) click to toggle source

wrapper for call rpc method

@param method [String] method you want to call @param jsonrpc [String] jsonrpc version @param params [Array] rpc params @param id [Integer] jsonrpc id

@return [Faraday::Response]

# File lib/appchain/http.rb, line 25
def call_rpc(method, jsonrpc: DEFAULT_JSONRPC, params: DEFAULT_PARAMS, id: DEFAULT_ID)
  conn.post("/", rpc_params(method, jsonrpc: jsonrpc, params: params, id: id))
end
conn() click to toggle source

wrapper faraday object with AppChain URL and Content-Type

@return [Faraday]

# File lib/appchain/http.rb, line 49
def conn
  Faraday.new(url: url) do |faraday|
    faraday.headers["Content-Type"] = "application/json"
    faraday.request  :url_encoded # form-encode POST params
    faraday.adapter  Faraday.default_adapter # make requests with Net::HTTP
  end
end
rpc_params(method, jsonrpc: DEFAULT_JSONRPC, params: DEFAULT_PARAMS, id: DEFAULT_ID) click to toggle source

wrapper for rpc params

@param method [String] method you want to call @param jsonrpc [String] jsonrpc version @param params [Array] rpc params @param id [Integer] jsonrpc id

@return [String] json string

# File lib/appchain/http.rb, line 37
def rpc_params(method, jsonrpc: DEFAULT_JSONRPC, params: DEFAULT_PARAMS, id: DEFAULT_ID)
  {
    jsonrpc: jsonrpc,
    id: id,
    method: method,
    params: params
  }.to_json
end