onchain 1.1.0 → 1.1.1

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: 35eb379f39377e1760d16155b6ccfdc8f005acdb
4
- data.tar.gz: 7dd86a609e7cb720c91f6fd782b66f4a21586e14
3
+ metadata.gz: 2c43591ce46da772a3ec1c56907923a207bfbe07
4
+ data.tar.gz: bcfbb45149878319b72aeec55bf6fac0d1302ff6
5
5
  SHA512:
6
- metadata.gz: 1d3062c800f92af529b6fed50893c063b26dbd9b87b0ff4a83bbea39ae0d3ed9e10faf48a5c8f0cb20fb79664d67c49d5b7916ac700d9db2cc223f8690bd1a64
7
- data.tar.gz: 1f11bf162a472f1785b049de8d037f149d011deeab39c6f39443bd33b1f34c8e47ce2e5d90d12bbd9a6c73852888c504110c8cdf3e50822324e19e883f45f009
6
+ metadata.gz: dfeb8f3fd4326ff2958fe2badb30a25a466865ef9b9606fb23b24a1d6ec8314b324033579d5107e39e0e374b3ea7123816b4b6de2cdcd5fb80cea98a84cf22d7
7
+ data.tar.gz: 03c5d5316847740b77abeaa1255a4059099ece551c06aae8e08cfe743163723a6c6c95b44e2726e514f7a4b9c7e2413615b7a28e34dc08a237b6d470c6687058
@@ -17,8 +17,8 @@ end
17
17
  class OnChain::BlockChain
18
18
  class << self
19
19
 
20
- #ALL_SUPPLIERS = [:chaincom, :blockr, :blockinfo ]
21
- ALL_SUPPLIERS = [ :blockr, :blockinfo ]
20
+ ALL_SUPPLIERS = [:chaincom, :blockr, :blockinfo ]
21
+ #ALL_SUPPLIERS = [ :blockr, :blockinfo ]
22
22
 
23
23
  def method_missing (method_name, *args, &block)
24
24
 
@@ -7,8 +7,19 @@ class OnChain::BlockChain
7
7
 
8
8
  request = Net::HTTP::Post.new(uri.request_uri)
9
9
  request.body = '{"hex":"' + tx_hex + '"}'
10
- response = http.request(request)
11
- return response
10
+ response = http.request(request)
11
+
12
+ res = JSON.parse(response.body)
13
+
14
+ mess = res["message"]
15
+ stat = res["status"]
16
+ if stat == 'fail'
17
+ stat = 'failure'
18
+ end
19
+
20
+ tx_hash = res["data"]
21
+ ret = "{\"status\":\"#{stat}\",\"data\":\"#{tx_hash}\",\"code\":200,\"message\":\"#{mess}\"}"
22
+ return JSON.parse(ret)
12
23
  end
13
24
 
14
25
  def blockr_get_balance(address)
@@ -1,4 +1,77 @@
1
+ require 'chain'
2
+
1
3
  class OnChain::BlockChain
2
4
  class << self
5
+
6
+ def chaincom_send_tx(tx_hex)
7
+
8
+ begin
9
+ tx = Chain.send_transaction(tx_hex)
10
+ tx_hash = tx["transaction_hash"]
11
+ ret = "{\"status\":\"success\",\"data\":\"#{tx_hash}\",\"code\":200,\"message\":\"\"}"
12
+ return JSON.parse(ret)
13
+ rescue => e
14
+ ret = "{\"status\":\"failure\",\"data\":\"#{tx_hash}\",\"code\":200,\"message\":\"#{e.to_s}\"}"
15
+ return JSON.parse(ret)
16
+ end
17
+ end
18
+
19
+ def chaincom_get_balance(address)
20
+ if cache_read(address) == nil
21
+
22
+ addr = Chain.get_address(address)
23
+ bal = addr["balance"] / 100000000.0
24
+ cache_write(address, bal, BALANCE_CACHE_FOR)
25
+
26
+ end
27
+ return cache_read(address)
28
+ end
29
+
30
+ def chaincom_get_transactions(address)
31
+
32
+ txs = Chain.get_address_transactions(address)
33
+
34
+ unspent = []
35
+
36
+ txs.each do |data|
37
+ line = []
38
+ line << data['hash']
39
+ line << data['amount'] / 100000000.0
40
+ unspent << line
41
+ end
42
+
43
+ return unspent
44
+ end
45
+
46
+ def chaincom_get_unspent_outs(address)
47
+
48
+ uns = Chain.get_address_unspents(address)
49
+
50
+ unspent = []
51
+
52
+ uns.each do |data|
53
+ line = []
54
+ line << data['transaction_hash']
55
+ line << data['output_index']
56
+ line << data['script_hex']
57
+ line << data['value']
58
+ unspent << line
59
+ end
60
+
61
+ return unspent
62
+ end
63
+
64
+ def chaincom_get_all_balances(addresses)
65
+
66
+ res = Chain.get_addresses(addresses)
67
+
68
+ res.each do |address|
69
+ end
70
+
71
+ json['data'].each do |addr|
72
+ bal = addr["balance"] / 100000000.0
73
+ cache_write(address, bal, BALANCE_CACHE_FOR)
74
+ end
75
+ end
3
76
  end
4
77
  end
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.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian Purton
@@ -14,14 +14,14 @@ dependencies:
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
@@ -30,40 +30,54 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 3.1.0
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 3.1.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: money-tree
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bitcoin-ruby
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: chain-ruby
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
83
  description: Call 3rd party API's but also switch API's if a 3rd party is down