onchain 1.1.3 → 1.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 603a864a335ed6cee0809e270eacc6ac5a26ab83
4
- data.tar.gz: a8e588d02f6758232d4389c1de0ac3518af55b13
3
+ metadata.gz: 2681f7c45e64e34c7421a682eaed14035ae3a4ce
4
+ data.tar.gz: 36c15aca1879fec82f853ce6347298bda21cb59b
5
5
  SHA512:
6
- metadata.gz: e394b7451c91446846de1142d3abdbcbd39d9a77e4840380bfd1d26c918000b1359f8576f5cedc5e6711c3dc5fb8b9e29f85a1581b8395d673bfe70a94c973c9
7
- data.tar.gz: 4a9726a7633b292079d74535f9f35770cd807089982568627d8a69e0feea2c4bf6c423d29d83618858bcb338a16a1df8729db1cab2cdde70c3b221850f577dc9
6
+ metadata.gz: 2ff21134f7794c7c776d582c2c470e820a6adeb7c391a70a35f9f92938256fed12887a4632bbf763d81f948cda2929b9b8a20d8da79bc778a689d27623898802
7
+ data.tar.gz: 3b99ec0e024abcbbbdb744d37beb17e647ca6ee7ae67abb8bfb051aca40cda377052fe8ec975411e21d5f3e422770cc37f1ddc238e72caa61f8f48e4c820a408
@@ -49,6 +49,18 @@ class OnChain::BlockChain
49
49
 
50
50
  end
51
51
 
52
+ # Given a list of addresses, return those
53
+ # that don't have balances in the cahce.
54
+ def get_uncached_addresses(addresses)
55
+ ret = []
56
+ addresses.each do |address|
57
+ if cache_read(address) == nil
58
+ ret << address
59
+ end
60
+ end
61
+ return ret
62
+ end
63
+
52
64
  def get_balance_satoshi(address)
53
65
  return (get_balance(address).to_f * 100000000).to_i
54
66
  end
@@ -5,7 +5,14 @@ class OnChain::BlockChain
5
5
  def blockinfo_get_all_balances(addresses)
6
6
  base = "https://blockchain.info/multiaddr?&simple=true&active="
7
7
 
8
- addresses.each do |address|
8
+
9
+ addr = get_uncached_addresses(addresses)
10
+
11
+ if addr.length == 0
12
+ return
13
+ end
14
+
15
+ addr.each do |address|
9
16
  base = base + address + '|'
10
17
  end
11
18
 
@@ -70,9 +70,16 @@ class OnChain::BlockChain
70
70
  end
71
71
 
72
72
  def blockr_get_all_balances(addresses)
73
+
74
+ addr = get_uncached_addresses(addresses)
75
+
76
+ if addr.length == 0
77
+ return
78
+ end
79
+
73
80
  base = "https://blockr.io/api/v1/address/balance/"
74
81
 
75
- addresses.each do |address|
82
+ addr.each do |address|
76
83
  base = base + address + ','
77
84
  end
78
85
 
@@ -63,14 +63,21 @@ class OnChain::BlockChain
63
63
 
64
64
  def chaincom_get_all_balances(addresses)
65
65
 
66
- res = Chain.get_addresses(addresses)
66
+ addr = get_uncached_addresses(addresses)
67
67
 
68
- res.each do |address|
68
+ if addr.length == 0
69
+ return
69
70
  end
70
71
 
71
- json['data'].each do |addr|
72
- bal = addr["balance"] / 100000000.0
73
- cache_write(address, bal, BALANCE_CACHE_FOR)
72
+ res = Chain.get_addresses(addr)
73
+
74
+ if ! res.kind_of?(Array)
75
+ res = [res]
76
+ end
77
+
78
+ res.each do |address|
79
+ bal = address["balance"] / 100000000.0
80
+ cache_write(address["hash"], bal, BALANCE_CACHE_FOR)
74
81
  end
75
82
  end
76
83
  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: 1.1.3
4
+ version: 1.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian Purton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-09 00:00:00.000000000 Z
11
+ date: 2014-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake