class MoneroRPC::Client
Attributes
debug[R]
host[R]
in_transfer_clazz[R]
out_transfer_clazz[R]
password[R]
port[R]
username[R]
Public Class Methods
new(args= {})
click to toggle source
# File lib/monero_rpc/client.rb, line 7 def initialize(args= {}) @host = args.fetch(:host, MoneroRPC.config.host) @port = args.fetch(:port, MoneroRPC.config.port) @username = args.fetch(:username, MoneroRPC.config.username) @password = args.fetch(:password, MoneroRPC.config.password) @debug = args.fetch(:debug, MoneroRPC.config.debug) @in_transfer_clazz = args.fetch(:in_transfer_clazz, MoneroRPC.config.in_transfer_clazz || "MoneroRPC::IncomingTransfer") @out_transfer_clazz = args.fetch(:out_transfer_clazz, MoneroRPC.config.out_transfer_clazz || "MoneroRPC::OutgoingTransfer") end
Public Instance Methods
close!()
click to toggle source
# File lib/monero_rpc/client.rb, line 17 def close! request("stop_wallet") end
request(method, params="")
click to toggle source
# File lib/monero_rpc/client.rb, line 21 def request(method, params="") # TODO # who can implement digest auth with net/http? # this is really ugly! data = '{"jsonrpc":"2.0","id":"0","method": "'+method+'", "params": '+params.to_json+' }' args = "" args << " -s" args << " -u #{username}:#{password} --digest" args << " -X POST #{base_uri}/json_rpc" args << " -d '#{data}'" args << " -H 'Content-Type: application/json'" p "curl #{args}" if debug json = JSON.parse(`curl #{args}`) # Error handling if json["error"] raise "#{json["error"]["message"]} | code: #{json["error"]["code"]}" end json["result"] end
Private Instance Methods
base_uri()
click to toggle source
# File lib/monero_rpc/client.rb, line 45 def base_uri URI.parse("http://#{host}:#{port}") end