onchain 1.1.3 → 1.1.4

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
  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