Class: BitcoinRPC
- Inherits:
-
Object
- Object
- BitcoinRPC
- Defined in:
- lib/txcatcher/bitcoin_rpc.rb
Defined Under Namespace
Classes: JSONRPCError
Instance Method Summary collapse
- #http_post_request(post_body) ⇒ Object
-
#initialize(service_url) ⇒ BitcoinRPC
constructor
A new instance of BitcoinRPC.
- #method_missing(name, *args) ⇒ Object
Constructor Details
#initialize(service_url) ⇒ BitcoinRPC
Returns a new instance of BitcoinRPC.
9 10 11 |
# File 'lib/txcatcher/bitcoin_rpc.rb', line 9 def initialize(service_url) @uri = URI.parse(service_url) end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
13 14 15 16 17 18 |
# File 'lib/txcatcher/bitcoin_rpc.rb', line 13 def method_missing(name, *args) post_body = { 'method' => name, 'params' => args, 'id' => 'jsonrpc' }.to_json resp = JSON.parse( http_post_request(post_body) ) raise JSONRPCError, resp['error'].to_s + " (method: '#{name}')" if resp['error'] resp['result'] end |
Instance Method Details
#http_post_request(post_body) ⇒ Object
20 21 22 23 24 25 26 27 |
# File 'lib/txcatcher/bitcoin_rpc.rb', line 20 def http_post_request(post_body) http = Net::HTTP.new(@uri.host, @uri.port) request = Net::HTTP::Post.new(@uri.request_uri) request.basic_auth @uri.user, @uri.password request.content_type = 'application/json' request.body = post_body http.request(request).body end |