coinrpc 1.0.1 → 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 +4 -4
- data/coinrpc.gemspec +5 -4
- data/lib/coinrpc/version.rb +1 -1
- data/lib/coinrpc.rb +23 -29
- metadata +36 -10
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 10cff07aebe3b64ba01cd8c59f50f7db97d455954adaef5813514bb9a4352079
         | 
| 4 | 
            +
              data.tar.gz: 19b5357773239877bed09865571389b1a6897e6f65de2302acfb62ad55c940c1
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: d95f608c8d69d345f2f72a83344afd6a43ef93d2cb121ae70f29039fe5358589e676c4d6a63c74dcf0e44688d4009f26a3f170d08c87baa4d7e844c21772328c
         | 
| 7 | 
            +
              data.tar.gz: 6c9ca37fb9c28257037476754ef4fd9027191f9a7b48e82299b4e052c958569cb9363b558447b58070d58bac99776cda84e48a35fa60219593b028c3ba57bf62
         | 
    
        data/coinrpc.gemspec
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 | 
            -
            lib = File.expand_path( | 
| 1 | 
            +
            lib = File.expand_path("../lib", __FILE__)
         | 
| 2 2 | 
             
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         | 
| 3 | 
            -
            require  | 
| 3 | 
            +
            require "coinrpc/version"
         | 
| 4 4 |  | 
| 5 5 | 
             
            Gem::Specification.new do |spec|
         | 
| 6 6 | 
             
              spec.name          = "coinrpc"
         | 
| @@ -17,10 +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. | 
| 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 | 
            +
              spec.add_runtime_dependency "json", "~> 2.0", ">= 2.3.1", "< 3.0"
         | 
| 24 25 | 
             
              spec.add_runtime_dependency "oj", ">= 3.10", "< 4.0"
         | 
| 25 | 
            -
              spec.add_runtime_dependency "http", ">= 4.4", "< 5. | 
| 26 | 
            +
              spec.add_runtime_dependency "http", ">= 4.4", "< 5.2"
         | 
| 26 27 | 
             
            end
         | 
    
        data/lib/coinrpc/version.rb
    CHANGED
    
    
    
        data/lib/coinrpc.rb
    CHANGED
    
    | @@ -1,9 +1,17 @@ | |
| 1 | 
            -
            require  | 
| 2 | 
            -
            require  | 
| 3 | 
            -
            require  | 
| 1 | 
            +
            require "http"
         | 
| 2 | 
            +
            require "oj"
         | 
| 3 | 
            +
            require "json"
         | 
| 4 | 
            +
            require "coinrpc/version"
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            # let OJ mimic JSON
         | 
| 7 | 
            +
            Oj.mimic_JSON
         | 
| 4 8 |  | 
| 5 9 | 
             
            module CoinRPC
         | 
| 6 10 | 
             
              class Client
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                JSONRPC_V1_1 = "1.1".freeze
         | 
| 13 | 
            +
                JSONRPC_V2_0 = "2.0".freeze
         | 
| 14 | 
            +
                
         | 
| 7 15 | 
             
                def initialize(url)
         | 
| 8 16 |  | 
| 9 17 | 
             
                  urinfo = URI.parse(url)
         | 
| @@ -15,34 +23,17 @@ module CoinRPC | |
| 15 23 |  | 
| 16 24 | 
             
                def method_missing(method, *args)
         | 
| 17 25 |  | 
| 18 | 
            -
                  @id += 1
         | 
| 19 | 
            -
             | 
| 20 26 | 
             
                  fixed_method = method.to_s.gsub(/\_/,"").freeze
         | 
| 21 | 
            -
             | 
| 22 27 | 
             
                  post_data = nil
         | 
| 23 28 |  | 
| 24 | 
            -
                  if args. | 
| 29 | 
            +
                  if args[0].is_a?(Array) and args[0].size > 0 then
         | 
| 25 30 | 
             
                    # batch request
         | 
| 26 | 
            -
             | 
| 27 | 
            -
                    post_data = []
         | 
| 28 | 
            -
             | 
| 29 | 
            -
                    args.each do |arg|
         | 
| 30 | 
            -
                      @id += 1
         | 
| 31 | 
            -
                      post_data << ({:jsonrpc => "2.0", :method => fixed_method, :params => arg, :id => @id})
         | 
| 32 | 
            -
                    end
         | 
| 33 | 
            -
             | 
| 31 | 
            +
                    post_data = args.map{|arg| {:jsonrpc => JSONRPC_V2_0, :method => fixed_method, :params => arg, :id => (@id += 1)} }
         | 
| 34 32 | 
             
                  else
         | 
| 35 | 
            -
             | 
| 36 | 
            -
                    post_data = ({
         | 
| 37 | 
            -
                                   :method => fixed_method,
         | 
| 38 | 
            -
                                   :params => args,
         | 
| 39 | 
            -
                                   :jsonrpc => "1.1",
         | 
| 40 | 
            -
                                   :id => @id
         | 
| 41 | 
            -
                                 })
         | 
| 42 | 
            -
                    
         | 
| 33 | 
            +
                    post_data = {:method => fixed_method, :params => args, :jsonrpc => JSONRPC_V1_1, :id => (@id += 1)}
         | 
| 43 34 | 
             
                  end
         | 
| 44 35 |  | 
| 45 | 
            -
                   | 
| 36 | 
            +
                  api_call(post_data)
         | 
| 46 37 |  | 
| 47 38 | 
             
                end
         | 
| 48 39 |  | 
| @@ -51,14 +42,17 @@ module CoinRPC | |
| 51 42 |  | 
| 52 43 | 
             
                  response = @client.post("/", :body => Oj.dump(params, mode: :compat)).to_s
         | 
| 53 44 |  | 
| 45 | 
            +
                  # this won"t work without Oj.mimic_JSON
         | 
| 54 46 | 
             
                  result = Oj.strict_load(response, :decimal_class => BigDecimal)
         | 
| 55 47 |  | 
| 56 | 
            -
                  raise result[ | 
| 48 | 
            +
                  raise result["error"]["message"] if result.is_a?(Hash) and result.key?("error")
         | 
| 57 49 |  | 
| 58 | 
            -
                   | 
| 59 | 
            -
             | 
| 60 | 
            -
                   | 
| 61 | 
            -
             | 
| 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
         | 
| 62 56 |  | 
| 63 57 | 
             
                end
         | 
| 64 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:  | 
| 4 | 
            +
              version: 2.0.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Atif Nazir
         | 
| 8 | 
            -
            autorequire: | 
| 8 | 
            +
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2022-07-01 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -50,6 +50,32 @@ dependencies: | |
| 50 50 | 
             
                - - "<"
         | 
| 51 51 | 
             
                  - !ruby/object:Gem::Version
         | 
| 52 52 | 
             
                    version: '14.0'
         | 
| 53 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 54 | 
            +
              name: json
         | 
| 55 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 56 | 
            +
                requirements:
         | 
| 57 | 
            +
                - - "~>"
         | 
| 58 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 59 | 
            +
                    version: '2.0'
         | 
| 60 | 
            +
                - - ">="
         | 
| 61 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 62 | 
            +
                    version: 2.3.1
         | 
| 63 | 
            +
                - - "<"
         | 
| 64 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 65 | 
            +
                    version: '3.0'
         | 
| 66 | 
            +
              type: :runtime
         | 
| 67 | 
            +
              prerelease: false
         | 
| 68 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 69 | 
            +
                requirements:
         | 
| 70 | 
            +
                - - "~>"
         | 
| 71 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 72 | 
            +
                    version: '2.0'
         | 
| 73 | 
            +
                - - ">="
         | 
| 74 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            +
                    version: 2.3.1
         | 
| 76 | 
            +
                - - "<"
         | 
| 77 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 78 | 
            +
                    version: '3.0'
         | 
| 53 79 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 54 80 | 
             
              name: oj
         | 
| 55 81 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -79,7 +105,7 @@ dependencies: | |
| 79 105 | 
             
                    version: '4.4'
         | 
| 80 106 | 
             
                - - "<"
         | 
| 81 107 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            -
                    version: '5. | 
| 108 | 
            +
                    version: '5.2'
         | 
| 83 109 | 
             
              type: :runtime
         | 
| 84 110 | 
             
              prerelease: false
         | 
| 85 111 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| @@ -89,7 +115,7 @@ dependencies: | |
| 89 115 | 
             
                    version: '4.4'
         | 
| 90 116 | 
             
                - - "<"
         | 
| 91 117 | 
             
                  - !ruby/object:Gem::Version
         | 
| 92 | 
            -
                    version: '5. | 
| 118 | 
            +
                    version: '5.2'
         | 
| 93 119 | 
             
            description: This Ruby Gem is a fast RPC client for Bitcoin Core style software, including
         | 
| 94 120 | 
             
              Dogecoin, Litecoin, and other similar software that implements Bitcoin Core RPC
         | 
| 95 121 | 
             
              interfaces.
         | 
| @@ -111,7 +137,7 @@ homepage: https://github.com/doersf/coinrpc | |
| 111 137 | 
             
            licenses:
         | 
| 112 138 | 
             
            - MIT
         | 
| 113 139 | 
             
            metadata: {}
         | 
| 114 | 
            -
            post_install_message: | 
| 140 | 
            +
            post_install_message:
         | 
| 115 141 | 
             
            rdoc_options: []
         | 
| 116 142 | 
             
            require_paths:
         | 
| 117 143 | 
             
            - lib
         | 
| @@ -119,18 +145,18 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 119 145 | 
             
              requirements:
         | 
| 120 146 | 
             
              - - ">="
         | 
| 121 147 | 
             
                - !ruby/object:Gem::Version
         | 
| 122 | 
            -
                  version: '2. | 
| 148 | 
            +
                  version: '2.6'
         | 
| 123 149 | 
             
              - - "<"
         | 
| 124 150 | 
             
                - !ruby/object:Gem::Version
         | 
| 125 | 
            -
                  version: '3. | 
| 151 | 
            +
                  version: '3.2'
         | 
| 126 152 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 127 153 | 
             
              requirements:
         | 
| 128 154 | 
             
              - - ">="
         | 
| 129 155 | 
             
                - !ruby/object:Gem::Version
         | 
| 130 156 | 
             
                  version: '0'
         | 
| 131 157 | 
             
            requirements: []
         | 
| 132 | 
            -
            rubygems_version: 3. | 
| 133 | 
            -
            signing_key: | 
| 158 | 
            +
            rubygems_version: 3.3.7
         | 
| 159 | 
            +
            signing_key:
         | 
| 134 160 | 
             
            specification_version: 4
         | 
| 135 161 | 
             
            summary: A fast RPC client for Bitcoin Core style software.
         | 
| 136 162 | 
             
            test_files: []
         |