onchain 2.5 → 2.6
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/lib/onchain/block_chain.rb +13 -2
- data/lib/onchain/providers/blockr_api.rb +23 -16
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2193dbde4c0d67e834351acccd08a750e43fd728
|
4
|
+
data.tar.gz: 5c0198213f4943b4a9c227ebbc585a7badbf24d0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0aee998b0737e7884dc33dd4e1d8d77b775e6d3e9a7d06f724cc277de77a7eb35d762c3ab53ab59961e6acda3891df010daaae0a9daf55426d6cd781b814748d
|
7
|
+
data.tar.gz: 808d0da5669a5b473e3359ee79a0973eb22774544ffa10b2b8bf5842fa5bcab47359db6fa271c4e5e65444b93d6566cdf18ea29d6300b8f85a35d6129c4d9d3a
|
data/lib/onchain/block_chain.rb
CHANGED
@@ -40,7 +40,14 @@ class OnChain::BlockChain
|
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
-
|
43
|
+
network = :bitcoin
|
44
|
+
if args.length > 0
|
45
|
+
if args[args.length - 1] == :testnet3
|
46
|
+
network = :testnet3
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
get_available_suppliers(method_name, network).each do |supplier|
|
44
51
|
|
45
52
|
real_method = "#{supplier.to_s}_#{method_name}"
|
46
53
|
begin
|
@@ -109,11 +116,15 @@ class OnChain::BlockChain
|
|
109
116
|
return (get_balance(address).to_f * 100000000).to_i
|
110
117
|
end
|
111
118
|
|
112
|
-
def get_available_suppliers(method_name)
|
119
|
+
def get_available_suppliers(method_name, network)
|
113
120
|
available = []
|
114
121
|
ALL_SUPPLIERS.each do |supplier|
|
115
122
|
if cache_read(supplier.to_s) == nil
|
116
123
|
|
124
|
+
if supplier == :blockinfo and network == :testnet3
|
125
|
+
next
|
126
|
+
end
|
127
|
+
|
117
128
|
if supplier == :blockinfo and method_name.to_s == 'send_tx'
|
118
129
|
next
|
119
130
|
end
|
@@ -1,8 +1,15 @@
|
|
1
1
|
class OnChain::BlockChain
|
2
2
|
class << self
|
3
3
|
|
4
|
-
def
|
5
|
-
|
4
|
+
def get_url(network)
|
5
|
+
if network == :bitcoin
|
6
|
+
return "http://btc.blockr.io/api/v1/"
|
7
|
+
end
|
8
|
+
return "http://tbtc.blockr.io/api/v1/"
|
9
|
+
end
|
10
|
+
|
11
|
+
def blockr_send_tx(tx_hex, network = :bitcoin)
|
12
|
+
uri = URI.parse(get_url(network) + "tx/push")
|
6
13
|
http = Net::HTTP.new(uri.host, uri.port)
|
7
14
|
|
8
15
|
request = Net::HTTP::Post.new(uri.request_uri)
|
@@ -22,9 +29,9 @@ class OnChain::BlockChain
|
|
22
29
|
return JSON.parse(ret)
|
23
30
|
end
|
24
31
|
|
25
|
-
def blockr_get_balance(address)
|
32
|
+
def blockr_get_balance(address, network = :bitcoin)
|
26
33
|
if cache_read(address) == nil
|
27
|
-
json = blockr('address/balance', address)
|
34
|
+
json = blockr('address/balance', address, network)
|
28
35
|
if json.key?('data')
|
29
36
|
bal = json['data']['balance'].to_f
|
30
37
|
cache_write(address, bal, BALANCE_CACHE_FOR)
|
@@ -35,9 +42,9 @@ class OnChain::BlockChain
|
|
35
42
|
return cache_read(address)
|
36
43
|
end
|
37
44
|
|
38
|
-
def blockr_get_address_info(address)
|
45
|
+
def blockr_get_address_info(address, network = :bitcoin)
|
39
46
|
|
40
|
-
json = blockr('address/balance', address)
|
47
|
+
json = blockr('address/balance', address, network)
|
41
48
|
|
42
49
|
return { received: json[address]['total_received'],
|
43
50
|
balance: json[address]['final_balance'],
|
@@ -45,8 +52,8 @@ class OnChain::BlockChain
|
|
45
52
|
|
46
53
|
end
|
47
54
|
|
48
|
-
def blockr_get_transactions(address)
|
49
|
-
base_url = "
|
55
|
+
def blockr_get_transactions(address, network = :bitcoin)
|
56
|
+
base_url = get_url(network) + "address/txs/#{address}"
|
50
57
|
json = fetch_response(base_url, true)
|
51
58
|
|
52
59
|
unspent = []
|
@@ -61,8 +68,8 @@ class OnChain::BlockChain
|
|
61
68
|
return unspent
|
62
69
|
end
|
63
70
|
|
64
|
-
def blockr_get_unspent_outs(address)
|
65
|
-
base_url = "
|
71
|
+
def blockr_get_unspent_outs(address, network = :bitcoin)
|
72
|
+
base_url = get_url(network) + "address/unspent/#{address}"
|
66
73
|
json = fetch_response(base_url, true)
|
67
74
|
|
68
75
|
unspent = []
|
@@ -79,7 +86,7 @@ class OnChain::BlockChain
|
|
79
86
|
return unspent
|
80
87
|
end
|
81
88
|
|
82
|
-
def blockr_get_all_balances(addresses)
|
89
|
+
def blockr_get_all_balances(addresses, network = :bitcoin)
|
83
90
|
|
84
91
|
addr = get_uncached_addresses(addresses)
|
85
92
|
|
@@ -87,7 +94,7 @@ class OnChain::BlockChain
|
|
87
94
|
return
|
88
95
|
end
|
89
96
|
|
90
|
-
base = "
|
97
|
+
base = get_url(network) + "address/balance/"
|
91
98
|
|
92
99
|
addr.each do |address|
|
93
100
|
base = base + address + ','
|
@@ -102,14 +109,14 @@ class OnChain::BlockChain
|
|
102
109
|
end
|
103
110
|
end
|
104
111
|
|
105
|
-
def blockr_get_transaction(txhash)
|
106
|
-
base = "
|
112
|
+
def blockr_get_transaction(txhash, network = :bitcoin)
|
113
|
+
base = get_url(network) + "tx/raw/" + txhash
|
107
114
|
return fetch_response(URI::encode(base))['data']['tx']['hex']
|
108
115
|
end
|
109
116
|
|
110
|
-
def blockr(cmd, address, params = "")
|
117
|
+
def blockr(cmd, address, network, params = "")
|
111
118
|
|
112
|
-
base_url = "
|
119
|
+
base_url = get_url(network) + "#{cmd}/#{address}" + params
|
113
120
|
fetch_response(base_url, true)
|
114
121
|
|
115
122
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: onchain
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '2.
|
4
|
+
version: '2.6'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ian Purton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|