onchain 1.1.5 → 1.1.6

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: 1d55ba36d22fdb09c37908dd40e11f1a5bfb1753
4
- data.tar.gz: 6c830cce9754d2f79f33ee38ad1f160ad8a9ba0e
3
+ metadata.gz: 948b1e4abbe5aabae3446ba2a6d745137a71bcca
4
+ data.tar.gz: 0e0f49dc56ab14991452a0c744957dec3918dc0b
5
5
  SHA512:
6
- metadata.gz: 040fc27eeb40776bc263962d728df087a01eaea032a8c96d0fda5d907f81da1d70494135f8d2b4f1a4de4affae0be32ed88cc19e90f78874a8b5caf95a2955dd
7
- data.tar.gz: 627695caf7117fb5f6f13630a41b7b768b15c3a680368381d5d8e7865b552cb2f7bb25887fefe74ccba65de9bfd551d2a1f036b3a7d1a4b23b4aaa86233bf4d5
6
+ metadata.gz: a3e7d866e2aea86434f58f81d6f788b72e14cd73493294e2d9de91ed664fa429bc41009486d2a2a86987ad58cd9a1a7be867a0bf316fa79c1d1c4e07c92ffb5b
7
+ data.tar.gz: 11ac6e4fbde0aff84b1628b09e5b471941c006475bdc9f11c53cb7825887ffef11dfad5218332eb14c2a799a7554a29c285285cc1475776b09d76cb38ac4672d
@@ -78,6 +78,10 @@ class OnChain::BlockChain
78
78
  next
79
79
  end
80
80
 
81
+ if supplier == :blockr and method_name == 'address_history'
82
+ next
83
+ end
84
+
81
85
  available << supplier
82
86
  end
83
87
  end
@@ -1,11 +1,50 @@
1
1
  class OnChain::BlockChain
2
2
  class << self
3
3
 
4
+
5
+ def blockinfo_address_history(address)
6
+
7
+ base_url = "http://blockchain.info/address/#{address}?format=json"
8
+ json = fetch_response(base_url, true)
9
+
10
+ hist = []
11
+ if json.key?('txs')
12
+ txs = json['txs']
13
+ txs.each do |tx|
14
+ row = {}
15
+ row[:time] = tx["time"]
16
+ row[:addr] = {}
17
+ row[:outs] = {}
18
+ inputs = tx['inputs']
19
+ val = 0
20
+ recv = "Y"
21
+ inputs.each do |input|
22
+ row[:addr][input["prev_out"]["addr"]] = input["prev_out"]["addr"]
23
+ if input["prev_out"]["addr"] == address
24
+ recv = "N"
25
+ end
26
+ end
27
+ tx["out"].each do |out|
28
+ row[:outs][out["addr"]] = out["addr"]
29
+ if recv == "Y" and out["addr"] == address
30
+ val = val + out["value"].to_f / 100000000.0
31
+ elsif recv == "N" and out["addr"] != address
32
+ val = val + out["value"].to_f / 100000000.0
33
+ end
34
+ end
35
+ row[:total] = val
36
+ row[:recv] = recv
37
+ hist << row
38
+ end
39
+ return hist
40
+ else
41
+ 'Error'
42
+ end
43
+ end
4
44
 
5
45
  def blockinfo_get_all_balances(addresses)
6
46
  base = "https://blockchain.info/multiaddr?&simple=true&active="
7
47
 
8
-
9
48
  addr = get_uncached_addresses(addresses)
10
49
 
11
50
  if addr.length == 0
@@ -2,6 +2,40 @@ require 'chain'
2
2
 
3
3
  class OnChain::BlockChain
4
4
  class << self
5
+
6
+ def chaincom_address_history(address)
7
+
8
+ txs = Chain.get_address_transactions(address)
9
+
10
+ hist = []
11
+ txs.each do |tx|
12
+ row = {}
13
+ row[:time] = tx["block_time"]
14
+ row[:addr] = {}
15
+ row[:outs] = {}
16
+ inputs = tx['inputs']
17
+ val = 0
18
+ recv = "Y"
19
+ inputs.each do |input|
20
+ row[:addr][input["addresses"][0]] = input["addresses"][0]
21
+ if input["addresses"][0] == address
22
+ recv = "N"
23
+ end
24
+ end
25
+ tx["outputs"].each do |out|
26
+ row[:outs][out["addresses"][0] ] = out["addresses"][0]
27
+ if recv == "Y" and out["addresses"][0] == address
28
+ val = val + out["value"].to_f / 100000000.0
29
+ elsif recv == "N" and out["addresses"][0] != address
30
+ val = val + out["value"].to_f / 100000000.0
31
+ end
32
+ end
33
+ row[:total] = val
34
+ row[:recv] = recv
35
+ hist << row
36
+ end
37
+ return hist
38
+ end
5
39
 
6
40
  def chaincom_send_tx(tx_hex)
7
41
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: onchain
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.5
4
+ version: 1.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian Purton