bitcoiner 0.1.1 → 0.1.2
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/Gemfile +2 -0
- data/Rakefile +2 -0
- data/bitcoiner.gemspec +4 -1
- data/lib/bitcoiner.rb +3 -0
- data/lib/bitcoiner/account.rb +2 -0
- data/lib/bitcoiner/account_hash.rb +2 -0
- data/lib/bitcoiner/client.rb +25 -5
- data/lib/bitcoiner/transaction.rb +6 -2
- data/lib/bitcoiner/version.rb +3 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad08d3e5bdd0f0c8efe3e233bf08d0dd3ec4237b68766d0a1b08965cd24aff79
|
4
|
+
data.tar.gz: 5f66ea4a949376c7c1075bbd00b7de454cef939cc90961125ccb54bd5f106b7d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 288fb5283f7b5d8b2f5c2812578cef7fdf8f368e146e3652bb2e7dc620208d75a83d2056a389ef1865b46d54faa1524352ccfa7c94c58140aa7b22d9b69ec57d
|
7
|
+
data.tar.gz: 637cdfc9dd689f257cc4690cb753789cdb807d3a9dd4272ab7b2e79394eac7bf8aa7ae9910ad80fd2d1f07d67cad5fba4a501d8eae7dce51e6dc1d3cbd6d2556
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
data/bitcoiner.gemspec
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
2
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
5
|
require 'bitcoiner/version'
|
4
6
|
|
@@ -17,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
17
19
|
end
|
18
20
|
spec.require_paths = ['lib']
|
19
21
|
|
22
|
+
spec.add_dependency 'addressable'
|
20
23
|
spec.add_dependency 'typhoeus', '~> 1.3.0'
|
21
24
|
|
22
25
|
spec.add_development_dependency 'bundler', '~> 1.16'
|
data/lib/bitcoiner.rb
CHANGED
data/lib/bitcoiner/account.rb
CHANGED
data/lib/bitcoiner/client.rb
CHANGED
@@ -1,7 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Bitcoiner
|
2
4
|
class Client
|
3
|
-
|
4
|
-
|
5
|
+
attr_accessor :endpoint
|
6
|
+
|
7
|
+
def initialize(user, pass, host)
|
8
|
+
uri = Addressable::URI.heuristic_parse(host)
|
9
|
+
uri.user ||= user
|
10
|
+
uri.password ||= pass
|
11
|
+
self.endpoint = uri.to_s
|
5
12
|
end
|
6
13
|
|
7
14
|
def balance
|
@@ -15,16 +22,29 @@ module Bitcoiner
|
|
15
22
|
|
16
23
|
def request(method, *args)
|
17
24
|
post_body = { 'method' => method, 'params' => args, 'id' => 'jsonrpc' }.to_json
|
18
|
-
response = Typhoeus.post(
|
19
|
-
response_hash =
|
25
|
+
response = Typhoeus.post(endpoint, body: post_body)
|
26
|
+
response_hash = parse_body(response)
|
20
27
|
raise JSONRPCError, response_hash['error'] if response_hash['error']
|
21
28
|
response_hash['result']
|
22
29
|
end
|
23
30
|
|
24
31
|
def inspect
|
25
|
-
"#<Bitcoiner::Client #{
|
32
|
+
"#<Bitcoiner::Client #{endpoint.inspect} >"
|
26
33
|
end
|
27
34
|
|
28
35
|
class JSONRPCError < RuntimeError; end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def parse_body(response)
|
40
|
+
if response.success?
|
41
|
+
JSON.parse(response.body)
|
42
|
+
else
|
43
|
+
error_message = %i[code return_code].map do |attr|
|
44
|
+
"#{attr}: `#{response.send(attr)}`"
|
45
|
+
end.join(', ')
|
46
|
+
raise JSONRPCError, "unsuccessful response; #{error_message}"
|
47
|
+
end
|
48
|
+
end
|
29
49
|
end
|
30
50
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Bitcoiner
|
2
4
|
class Transaction
|
3
5
|
attr_accessor :id, :account
|
@@ -14,7 +16,7 @@ module Bitcoiner
|
|
14
16
|
|
15
17
|
def inspect
|
16
18
|
"#<Bitcoiner::Transaction #{id} #{amount} to #{account.name} at #{time}>"
|
17
|
-
rescue
|
19
|
+
rescue StandardError
|
18
20
|
"#<Bitcoiner::Transaction #{id} UNCONFIRMED>"
|
19
21
|
end
|
20
22
|
|
@@ -23,7 +25,9 @@ module Bitcoiner
|
|
23
25
|
end
|
24
26
|
|
25
27
|
def confirmations
|
26
|
-
detail_hash['confirmations']
|
28
|
+
detail_hash['confirmations']
|
29
|
+
rescue StandardError
|
30
|
+
0
|
27
31
|
end
|
28
32
|
|
29
33
|
def time
|
data/lib/bitcoiner/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bitcoiner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bryce Kerley
|
@@ -9,8 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-04-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: addressable
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0'
|
14
28
|
- !ruby/object:Gem::Dependency
|
15
29
|
name: typhoeus
|
16
30
|
requirement: !ruby/object:Gem::Requirement
|