coinrpc 1.0.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0e6758d40043fc3414515ea9a7e9e772bb2a1e4fc4aa7fa29eff8e0b81d85254
4
- data.tar.gz: d9be85a33cc6844570370b8613a5067857ff10ae1646eed3bad7409a29d970a2
3
+ metadata.gz: 10cff07aebe3b64ba01cd8c59f50f7db97d455954adaef5813514bb9a4352079
4
+ data.tar.gz: 19b5357773239877bed09865571389b1a6897e6f65de2302acfb62ad55c940c1
5
5
  SHA512:
6
- metadata.gz: e6a72814efa91ef47cb65d4444b9fcaf870be25026b1e423b30603720d2b070ad2cee9899ba6f96e4c883c516257873e7e3d6cb0812e78f86acca06d377be713
7
- data.tar.gz: 7790d3f541b1d516e2c6e6285ee42acb63074731a9664059802cd0184a0f1ebc2b5e97d3dd297097e097a7e2813b13a4402aa1a55747daf6e1930b8862291efe
6
+ metadata.gz: d95f608c8d69d345f2f72a83344afd6a43ef93d2cb121ae70f29039fe5358589e676c4d6a63c74dcf0e44688d4009f26a3f170d08c87baa4d7e844c21772328c
7
+ data.tar.gz: 6c9ca37fb9c28257037476754ef4fd9027191f9a7b48e82299b4e052c958569cb9363b558447b58070d58bac99776cda84e48a35fa60219593b028c3ba57bf62
data/coinrpc.gemspec CHANGED
@@ -1,6 +1,6 @@
1
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path("../lib", __FILE__)
2
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require 'coinrpc/version'
3
+ require "coinrpc/version"
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "coinrpc"
@@ -17,11 +17,11 @@ Gem::Specification.new do |spec|
17
17
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
18
  spec.require_paths = ["lib"]
19
19
 
20
- spec.required_ruby_version = ">= 2.4", "< 3.2"
20
+ spec.required_ruby_version = ">= 2.6", "< 3.2"
21
21
 
22
22
  spec.add_development_dependency "bundler", ">= 1.6", "< 3.0"
23
23
  spec.add_development_dependency "rake", ">= 13.0", "< 14.0"
24
24
  spec.add_runtime_dependency "json", "~> 2.0", ">= 2.3.1", "< 3.0"
25
25
  spec.add_runtime_dependency "oj", ">= 3.10", "< 4.0"
26
- spec.add_runtime_dependency "http", ">= 4.4", "< 5.1"
26
+ spec.add_runtime_dependency "http", ">= 4.4", "< 5.2"
27
27
  end
@@ -1,3 +1,3 @@
1
1
  module CoinRPC
2
- VERSION = "1.0.3"
2
+ VERSION = "2.0.0"
3
3
  end
data/lib/coinrpc.rb CHANGED
@@ -1,13 +1,17 @@
1
- require 'http'
2
- require 'oj'
3
- require 'json'
4
- require 'coinrpc/version'
1
+ require "http"
2
+ require "oj"
3
+ require "json"
4
+ require "coinrpc/version"
5
5
 
6
6
  # let OJ mimic JSON
7
7
  Oj.mimic_JSON
8
8
 
9
9
  module CoinRPC
10
10
  class Client
11
+
12
+ JSONRPC_V1_1 = "1.1".freeze
13
+ JSONRPC_V2_0 = "2.0".freeze
14
+
11
15
  def initialize(url)
12
16
 
13
17
  urinfo = URI.parse(url)
@@ -19,34 +23,17 @@ module CoinRPC
19
23
 
20
24
  def method_missing(method, *args)
21
25
 
22
- @id += 1
23
-
24
26
  fixed_method = method.to_s.gsub(/\_/,"").freeze
25
-
26
27
  post_data = nil
27
28
 
28
- if args.first.is_a?(Array) and args.first.size > 0 then
29
+ if args[0].is_a?(Array) and args[0].size > 0 then
29
30
  # batch request
30
-
31
- post_data = []
32
-
33
- args.each do |arg|
34
- @id += 1
35
- post_data << ({:jsonrpc => "2.0", :method => fixed_method, :params => arg, :id => @id})
36
- end
37
-
31
+ post_data = args.map{|arg| {:jsonrpc => JSONRPC_V2_0, :method => fixed_method, :params => arg, :id => (@id += 1)} }
38
32
  else
39
-
40
- post_data = ({
41
- :method => fixed_method,
42
- :params => args,
43
- :jsonrpc => "1.1",
44
- :id => @id
45
- })
46
-
33
+ post_data = {:method => fixed_method, :params => args, :jsonrpc => JSONRPC_V1_1, :id => (@id += 1)}
47
34
  end
48
35
 
49
- return api_call(post_data)
36
+ api_call(post_data)
50
37
 
51
38
  end
52
39
 
@@ -55,15 +42,17 @@ module CoinRPC
55
42
 
56
43
  response = @client.post("/", :body => Oj.dump(params, mode: :compat)).to_s
57
44
 
58
- # this won't work without Oj.mimic_JSON
45
+ # this won"t work without Oj.mimic_JSON
59
46
  result = Oj.strict_load(response, :decimal_class => BigDecimal)
60
47
 
61
- raise result['error']['message'] if !result.is_a?(Array) and result['error']
62
-
63
- return result['result'] if result.is_a?(Hash)
48
+ raise result["error"]["message"] if result.is_a?(Hash) and result.key?("error")
64
49
 
65
- # batch call
66
- return result.map{|r| r['result'] || r['error']}
50
+ if result.is_a?(Hash) then
51
+ result["result"]
52
+ else
53
+ # batch call
54
+ result.map{|r| r["result"] || r["error"]}
55
+ end
67
56
 
68
57
  end
69
58
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coinrpc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Atif Nazir
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-26 00:00:00.000000000 Z
11
+ date: 2022-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -105,7 +105,7 @@ dependencies:
105
105
  version: '4.4'
106
106
  - - "<"
107
107
  - !ruby/object:Gem::Version
108
- version: '5.1'
108
+ version: '5.2'
109
109
  type: :runtime
110
110
  prerelease: false
111
111
  version_requirements: !ruby/object:Gem::Requirement
@@ -115,7 +115,7 @@ dependencies:
115
115
  version: '4.4'
116
116
  - - "<"
117
117
  - !ruby/object:Gem::Version
118
- version: '5.1'
118
+ version: '5.2'
119
119
  description: This Ruby Gem is a fast RPC client for Bitcoin Core style software, including
120
120
  Dogecoin, Litecoin, and other similar software that implements Bitcoin Core RPC
121
121
  interfaces.
@@ -145,7 +145,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
145
145
  requirements:
146
146
  - - ">="
147
147
  - !ruby/object:Gem::Version
148
- version: '2.4'
148
+ version: '2.6'
149
149
  - - "<"
150
150
  - !ruby/object:Gem::Version
151
151
  version: '3.2'
@@ -155,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
155
155
  - !ruby/object:Gem::Version
156
156
  version: '0'
157
157
  requirements: []
158
- rubygems_version: 3.3.3
158
+ rubygems_version: 3.3.7
159
159
  signing_key:
160
160
  specification_version: 4
161
161
  summary: A fast RPC client for Bitcoin Core style software.