onchain 2.10 → 2.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/onchain/block_chain.rb +1 -10
- data/lib/onchain/providers/blockr_api.rb +50 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 37620347d276dbb06380d75daf4a64352ba4bbb5
|
4
|
+
data.tar.gz: f4324683549de22621531fa841eeadaec1bf21c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6eb80d1825a3ef44c1b5b167aa35fa84f7d03d387833ecc9d95f01b7480b2f8d0185ba77d2bb6e58c389c2cceeee726779859d18ad9425c8ca5836d77ba86137
|
7
|
+
data.tar.gz: 7f2e92679a9e926a8e46f3292339fd9928d386855c6c20306a19450f99b0bb19d87044099692ad14cea013938faef2b4aedb942992b2a2d7d19eab66dc4b9199
|
data/lib/onchain/block_chain.rb
CHANGED
@@ -31,15 +31,6 @@ class OnChain::BlockChain
|
|
31
31
|
|
32
32
|
def method_missing (method_name, *args, &block)
|
33
33
|
|
34
|
-
if ENV['CHAIN-API-KEY-ID'] != nil
|
35
|
-
begin
|
36
|
-
Chain.api_key_id = ENV['CHAIN-API-KEY-ID']
|
37
|
-
Chain.api_key_secret = ENV['CHAIN-API-KEY-SECRET']
|
38
|
-
rescue
|
39
|
-
# Had problems setting this so get arou d it.
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
34
|
network = :bitcoin
|
44
35
|
if args.length > 0
|
45
36
|
if args[args.length - 1] == :testnet3
|
@@ -133,7 +124,7 @@ class OnChain::BlockChain
|
|
133
124
|
next
|
134
125
|
end
|
135
126
|
|
136
|
-
if supplier == :
|
127
|
+
if supplier == :blockrand and network == :bitcoin and method_name.to_s == 'address_history'
|
137
128
|
next
|
138
129
|
end
|
139
130
|
|
@@ -8,6 +8,56 @@ class OnChain::BlockChain
|
|
8
8
|
return "http://tbtc.blockr.io/api/v1/"
|
9
9
|
end
|
10
10
|
|
11
|
+
def blockr_address_history(address, network = :bitcoin)
|
12
|
+
|
13
|
+
json = blockr('address/txs', address, network)
|
14
|
+
|
15
|
+
return parse_address_tx(address, json, network)
|
16
|
+
end
|
17
|
+
|
18
|
+
def parse_address_tx(address, json, network)
|
19
|
+
|
20
|
+
hist = []
|
21
|
+
if json.key?('data')
|
22
|
+
txs = json['data']['txs']
|
23
|
+
txs.each do |tx|
|
24
|
+
row = {}
|
25
|
+
row[:time] = tx["time_utc"]
|
26
|
+
row[:addr] = {}
|
27
|
+
row[:outs] = {}
|
28
|
+
row[:hash] = tx["tx"]
|
29
|
+
|
30
|
+
# OK, go and get the actual transaction
|
31
|
+
tx_json = blockr('tx/info', tx["tx"], network)
|
32
|
+
|
33
|
+
inputs = tx_json['data']['trade']['vins']
|
34
|
+
val = 0
|
35
|
+
recv = "Y"
|
36
|
+
inputs.each do |input|
|
37
|
+
row[:addr][input["address"]] = input["address"]
|
38
|
+
if input["address"] == address
|
39
|
+
recv = "N"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
tx_json['data']['trade']["vouts"].each do |out|
|
43
|
+
row[:outs][out["address"]] = out["address"]
|
44
|
+
if recv == "Y" and out["address"] == address
|
45
|
+
val = val + out["amount"].to_f
|
46
|
+
elsif recv == "N" and out["address"] != address
|
47
|
+
val = val + out["amount"].to_f
|
48
|
+
end
|
49
|
+
end
|
50
|
+
row[:total] = val
|
51
|
+
row[:recv] = recv
|
52
|
+
hist << row
|
53
|
+
end
|
54
|
+
return hist
|
55
|
+
else
|
56
|
+
'Error'
|
57
|
+
end
|
58
|
+
return hist
|
59
|
+
end
|
60
|
+
|
11
61
|
def blockr_send_tx(tx_hex, network = :bitcoin)
|
12
62
|
uri = URI.parse(get_url(network) + "tx/push")
|
13
63
|
http = Net::HTTP.new(uri.host, uri.port)
|
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.11'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Number 6
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -82,7 +82,7 @@ dependencies:
|
|
82
82
|
version: '0'
|
83
83
|
description: Call 3rd party API's but also switch API's if a 3rd party is down
|
84
84
|
email:
|
85
|
-
-
|
85
|
+
- support@onchain.io
|
86
86
|
executables: []
|
87
87
|
extensions: []
|
88
88
|
extra_rdoc_files: []
|