peatio-thought 2.6.2 → 2.6.7.2

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
  SHA256:
3
- metadata.gz: 22d94db7fe1abbd5ff3607563a6dc8bc3a540d27958c80ede8794fb47a9e5655
4
- data.tar.gz: b3e6958720702918739b13329ba08c306bf413b0caa447d3932db8c98267fbf0
3
+ metadata.gz: '028099f7c3681bca1f3e0cbcc689b09447007eed1b75c449d1fc39604ff829aa'
4
+ data.tar.gz: aa7b100a98151601f2ceb2388994b42bd004f69782161cd2e87ca611ae854c79
5
5
  SHA512:
6
- metadata.gz: b69433fcfcfcfb132e62cfb5766524a84742b02a694e698d315bcba0afd9591cebe93d391336f4c6ac896587508562963e8335e03f2c04230f829525dd10e24e
7
- data.tar.gz: 2c25d6ab0106aca128746f956f6d41aa15fbbe76d85ae05f5673ffe20309001ece1d8c0e269c8e7e3e51f797e30427f596375b02022e95389d98091ab65ea116
6
+ metadata.gz: 1104b0c7a12c5b0586b70a0de5ab0d9f6b8f5202dbf3d4b3a0220323e4d3eef4d593ba9483e7f7cc9e06de5cdecace596a8618512bb42b877b485e0fc3f345a5
7
+ data.tar.gz: fd65fe7716dead037367225c4447d287b7b54dcfcaf43d9ae6372bbda7ed32db658038410afd1c3d3c270ed16a7ab1ab638508edcd46056922f05ee35d6b7c96
@@ -1,10 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- peatio-thought (2.6,2)
4
+ peatio-thought (2.6.7.2)
5
5
  activesupport (~> 5.2.3)
6
6
  better-faraday (~> 1.0.5)
7
- faraday (~> 0.15.4)
7
+ faraday (~> 0.17)
8
8
  memoist (~> 0.16.0)
9
9
  net-http-persistent (~> 3.0.1)
10
10
  peatio (>= 0.6.3)
@@ -25,22 +25,21 @@ GEM
25
25
  amqp (1.8.0)
26
26
  amq-protocol (>= 2.2.0)
27
27
  eventmachine
28
- ast (2.4.0)
28
+ ast (2.4.1)
29
29
  better-faraday (1.0.8)
30
30
  activesupport (>= 4.0, < 6.0)
31
31
  faraday (~> 0.12)
32
32
  bunny (2.17.0)
33
33
  amq-protocol (~> 2.3, >= 2.3.1)
34
- byebug (11.1.1)
34
+ byebug (11.1.3)
35
35
  clamp (1.3.2)
36
- coderay (1.1.2)
36
+ coderay (1.1.3)
37
37
  concurrent-ruby (1.1.7)
38
38
  connection_pool (2.2.3)
39
39
  cookiejar (0.3.3)
40
- crack (0.4.3)
41
- safe_yaml (~> 1.0.0)
40
+ crack (0.4.4)
42
41
  daemons (1.3.1)
43
- diff-lcs (1.3)
42
+ diff-lcs (1.4.4)
44
43
  docile (1.3.2)
45
44
  em-http-request (1.1.7)
46
45
  addressable (>= 2.3.4)
@@ -56,7 +55,7 @@ GEM
56
55
  eventmachine (>= 0.12.9)
57
56
  http_parser.rb (~> 0.6.0)
58
57
  eventmachine (1.2.7)
59
- faraday (0.15.4)
58
+ faraday (0.17.3)
60
59
  multipart-post (>= 1.2, < 3)
61
60
  faraday_middleware (0.13.1)
62
61
  faraday (>= 0.7.4, < 1.0)
@@ -76,8 +75,8 @@ GEM
76
75
  i18n (1.8.5)
77
76
  concurrent-ruby (~> 1.0)
78
77
  io-console (0.5.6)
79
- irb (1.2.3)
80
- reline (>= 0.0.1)
78
+ irb (1.2.7)
79
+ reline (>= 0.1.5)
81
80
  jaro_winkler (1.5.4)
82
81
  jwt (2.2.2)
83
82
  memoist (0.16.2)
@@ -89,9 +88,9 @@ GEM
89
88
  mysql2 (0.5.3)
90
89
  net-http-persistent (3.0.1)
91
90
  connection_pool (~> 2.2)
92
- parallel (1.19.1)
93
- parser (2.7.0.5)
94
- ast (~> 2.4.0)
91
+ parallel (1.20.0)
92
+ parser (2.7.2.0)
93
+ ast (~> 2.4.1)
95
94
  peatio (2.6.2)
96
95
  activemodel (> 5.2, <= 6.0.0)
97
96
  amqp
@@ -107,48 +106,55 @@ GEM
107
106
  prometheus-client
108
107
  thin
109
108
  prometheus-client (2.1.0)
110
- pry (0.13.0)
109
+ pry (0.13.1)
111
110
  coderay (~> 1.1)
112
111
  method_source (~> 1.0)
113
112
  pry-byebug (3.9.0)
114
113
  byebug (~> 11.0)
115
114
  pry (~> 0.13.0)
116
- public_suffix (4.0.4)
115
+ public_suffix (4.0.6)
117
116
  rack (2.2.3)
118
117
  rainbow (3.0.0)
119
- rake (10.5.0)
120
- reline (0.1.3)
118
+ rake (13.0.1)
119
+ reline (0.1.8)
121
120
  io-console (~> 0.5)
122
121
  rexml (3.2.4)
123
- rspec (3.9.0)
124
- rspec-core (~> 3.9.0)
125
- rspec-expectations (~> 3.9.0)
126
- rspec-mocks (~> 3.9.0)
127
- rspec-core (3.9.1)
128
- rspec-support (~> 3.9.1)
129
- rspec-expectations (3.9.1)
122
+ rspec (3.10.0)
123
+ rspec-core (~> 3.10.0)
124
+ rspec-expectations (~> 3.10.0)
125
+ rspec-mocks (~> 3.10.0)
126
+ rspec-core (3.10.0)
127
+ rspec-support (~> 3.10.0)
128
+ rspec-expectations (3.10.0)
130
129
  diff-lcs (>= 1.2.0, < 2.0)
131
- rspec-support (~> 3.9.0)
132
- rspec-mocks (3.9.1)
130
+ rspec-support (~> 3.10.0)
131
+ rspec-mocks (3.10.0)
133
132
  diff-lcs (>= 1.2.0, < 2.0)
134
- rspec-support (~> 3.9.0)
135
- rspec-support (3.9.2)
136
- rubocop (0.80.1)
133
+ rspec-support (~> 3.10.0)
134
+ rspec-support (3.10.0)
135
+ rubocop (0.82.0)
137
136
  jaro_winkler (~> 1.5.1)
138
137
  parallel (~> 1.10)
139
138
  parser (>= 2.7.0.1)
140
139
  rainbow (>= 2.2.2, < 4.0)
141
140
  rexml
142
141
  ruby-progressbar (~> 1.7)
143
- unicode-display_width (>= 1.4.0, < 1.7)
144
- rubocop-github (0.14.0)
145
- rubocop (~> 0.59)
142
+ unicode-display_width (>= 1.4.0, < 2.0)
143
+ rubocop-github (0.16.0)
144
+ rubocop (<= 0.82.0)
145
+ rubocop-performance (~> 1.0)
146
+ rubocop-rails (~> 2.0)
147
+ rubocop-performance (1.7.1)
148
+ rubocop (>= 0.82.0)
149
+ rubocop-rails (2.6.0)
150
+ activesupport (>= 4.2.0)
151
+ rack (>= 1.1)
152
+ rubocop (>= 0.82.0)
146
153
  ruby-progressbar (1.10.1)
147
- safe_yaml (1.0.5)
148
- simplecov (0.18.5)
154
+ simplecov (0.19.1)
149
155
  docile (~> 1.1)
150
156
  simplecov-html (~> 0.11)
151
- simplecov-html (0.12.2)
157
+ simplecov-html (0.12.3)
152
158
  thin (1.8.0)
153
159
  daemons (~> 1.0, >= 1.0.9)
154
160
  eventmachine (~> 1.0, >= 1.0.4)
@@ -156,8 +162,8 @@ GEM
156
162
  thread_safe (0.3.6)
157
163
  tzinfo (1.2.8)
158
164
  thread_safe (~> 0.1)
159
- unicode-display_width (1.6.1)
160
- webmock (3.8.3)
165
+ unicode-display_width (1.7.0)
166
+ webmock (3.10.0)
161
167
  addressable (>= 2.3.6)
162
168
  crack (>= 0.3.2)
163
169
  hashdiff (>= 0.4.0, < 2.0.0)
@@ -169,16 +175,16 @@ PLATFORMS
169
175
  ruby
170
176
 
171
177
  DEPENDENCIES
172
- bundler (~> 1.17)
178
+ bundler (~> 2.1.3)
173
179
  irb
174
180
  mocha (~> 1.8)
175
181
  peatio-thought!
176
182
  pry-byebug
177
- rake (~> 10.0)
183
+ rake (~> 13.0)
178
184
  rspec (~> 3.0)
179
185
  rubocop-github
180
186
  simplecov
181
187
  webmock (~> 3.5)
182
188
 
183
189
  BUNDLED WITH
184
- 1.17.3
190
+ 2.1.4
@@ -29,9 +29,10 @@ module Peatio
29
29
  end
30
30
 
31
31
  Peatio::Block.new(block_number, block_txs)
32
- rescue Client::Error => e
33
- raise Peatio::Blockchain::ClientError, e
34
- end
32
+ rescue Client::Error => e
33
+ raise Peatio::Blockchain::ClientError, e
34
+ end
35
+
35
36
 
36
37
  def latest_block_number
37
38
  client.json_rpc(:getblockcount)
@@ -44,42 +45,42 @@ module Peatio
44
45
  .flatten(1)
45
46
  .find {|addr| addr[0] == address }
46
47
 
47
- raise Peatio::Blockchain::UnavailableAddressBalanceError, address if address_with_balance.blank?
48
-
49
- address_with_balance[1].to_d
50
- rescue Client::Error => e
51
- raise Peatio::Blockchain::ClientError, e
52
- end
53
-
54
- private
55
-
56
- def filter_vout(tx_hash)
57
- tx_hash.fetch("vout").select do |entry|
58
- entry.fetch("value").to_d.positive? && entry["scriptPubKey"].has_key?("addresses")
59
- end
60
- end
61
-
62
- def build_transaction(tx_hash)
63
- filter_vout(tx_hash).each_with_object([]) do |entry, formatted_txs|
64
- no_currency_tx = {hash: tx_hash["txid"], txout: entry["n"],
65
- to_address: entry["scriptPubKey"]["addresses"][0],
66
- amount: entry.fetch("value").to_d,
67
- status: "success"}
68
-
69
- # Build transaction for each currency belonging to blockchain.
70
- settings_fetch(:currencies).pluck(:id).each do |currency_id|
71
- formatted_txs << no_currency_tx.merge(currency_id: currency_id)
72
- end
73
- end
74
- end
75
-
76
- def client
77
- @client ||= Client.new(settings_fetch(:server))
78
- end
79
-
80
- def settings_fetch(key)
81
- @settings.fetch(key) { raise Peatio::Blockchain::MissingSettingError, key.to_s }
82
- end
83
- end
84
- end
85
- end
48
+ raise Peatio::Blockchain::UnavailableAddressBalanceError, address if address_with_balance.blank?
49
+
50
+ address_with_balance[1].to_d
51
+ rescue Client::Error => e
52
+ raise Peatio::Blockchain::ClientError, e
53
+ end
54
+
55
+ private
56
+
57
+ def filter_vout(tx_hash)
58
+ tx_hash.fetch("vout").select do |entry|
59
+ entry.fetch("value").to_d.positive? && entry["scriptPubKey"].has_key?("addresses")
60
+ end
61
+ end
62
+
63
+ def build_transaction(tx_hash)
64
+ filter_vout(tx_hash).each_with_object([]) do |entry, formatted_txs|
65
+ no_currency_tx = {hash: tx_hash["txid"], txout: entry["n"],
66
+ to_address: entry["scriptPubKey"]["addresses"][0],
67
+ amount: entry.fetch("value").to_d,
68
+ status: "success"}
69
+
70
+ # Build transaction for each currency belonging to blockchain.
71
+ settings_fetch(:currencies).pluck(:id).each do |currency_id|
72
+ formatted_txs << no_currency_tx.merge(currency_id: currency_id)
73
+ end
74
+ end
75
+ end
76
+
77
+ def client
78
+ @client ||= Client.new(settings_fetch(:server))
79
+ end
80
+
81
+ def settings_fetch(key)
82
+ @settings.fetch(key) { raise Peatio::Blockchain::MissingSettingError, key.to_s }
83
+ end
84
+ end
85
+ end
86
+ end
@@ -1,71 +1,56 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "memoist"
4
- require "faraday"
5
- require "better-faraday"
3
+ require 'memoist'
4
+ require 'faraday'
5
+ require 'better-faraday'
6
6
 
7
7
  module Peatio
8
8
  module Thought
9
9
  class Client
10
- Error = Class.new(StandardError)
11
- class ConnectionError < Error; end
10
+ Error = Class.new(StandardError)
12
11
 
13
- class ResponseError < Error
14
- def initialize(code, msg)
15
- @code = code
16
- @msg = msg
17
- end
18
-
19
- def message
20
- "#{@msg} (#{@code})"
21
- end
22
- end
12
+ class ConnectionError < Error; end
23
13
 
24
- extend Memoist
25
-
26
- def initialize(endpoint)
27
- @json_rpc_endpoint = URI.parse(endpoint)
14
+ class ResponseError < Error
15
+ def initialize(code, msg)
16
+ super "#{msg} (#{code})"
28
17
  end
18
+ end
29
19
 
30
- def json_rpc(method, params=[])
31
- response = post(method, params)
32
-
33
- response.assert_2xx!
34
- response = JSON.parse(response.body)
20
+ extend Memoist
35
21
 
36
- response["error"].tap do |e|
37
- raise ResponseError.new(e["code"], e["message"]) if e
38
- end
39
-
40
- response.fetch("result")
41
- rescue StandardError => e
42
- case e
43
- when Faraday::Error
44
- raise ConnectionError, e
45
- when Error
46
- raise e
47
- else
48
- raise Error, e
49
- end
50
- end
22
+ def initialize(endpoint, idle_timeout: 5)
23
+ @json_rpc_endpoint = URI.parse(endpoint)
24
+ @idle_timeout = idle_timeout
25
+ end
51
26
 
52
- private
27
+ def json_rpc(method, params = [])
28
+ response = connection.post \
29
+ '/',
30
+ {jsonrpc: '1.0', method: method, params: params}.to_json,
31
+ {'Accept' => 'application/json',
32
+ 'Content-Type' => 'application/json'}
33
+ response.assert_success!
34
+ response = JSON.parse(response.body)
35
+ response['error'].tap { |error| raise ResponseError.new(error['code'], error['message']) if error }
36
+ response.fetch('result')
37
+ rescue Faraday::Error => e
38
+ raise ConnectionError, e
39
+ rescue StandardError => e
40
+ raise Error, e
41
+ end
53
42
 
54
- def post(method, params)
55
- connection.post("/", {jsonrpc: "1.0", method: method, params: params}.to_json,
56
- "Accept" => "application/json", "Content-Type" => "application/json")
57
- end
43
+ private
58
44
 
59
- def connection
60
- @connection ||= Faraday.new(@json_rpc_endpoint) do |f|
61
- f.adapter :net_http_persistent, pool_size: 5
62
- end.tap do |connection|
63
- unless @json_rpc_endpoint.user.blank?
64
- connection.basic_auth(@json_rpc_endpoint.user,
65
- @json_rpc_endpoint.password)
66
- end
45
+ def connection
46
+ @connection ||= Faraday.new(@json_rpc_endpoint) do |f|
47
+ f.adapter :net_http_persistent, pool_size: 5, idle_timeout: @idle_timeout
48
+ end.tap do |connection|
49
+ unless @json_rpc_endpoint.user.blank?
50
+ connection.basic_auth(@json_rpc_endpoint.user, @json_rpc_endpoint.password)
67
51
  end
68
52
  end
69
53
  end
70
54
  end
71
55
  end
56
+ end
@@ -28,8 +28,8 @@ module Peatio
28
28
  end
29
29
 
30
30
  def register
31
- Peatio::Blockchain.registry[:thought] = Thought::Blockchain.new
32
- Peatio::Wallet.registry[:thoughtd] = Thought::Wallet.new
31
+ Peatio::Blockchain.registry[:thought] = Thought::Blockchain
32
+ Peatio::Wallet.registry[:thoughtd] = Thought::Wallet
33
33
  end
34
34
  end
35
35
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Peatio
4
4
  module Thought
5
- VERSION = "2.6.2"
5
+ VERSION = "2.6.7.2"
6
6
  end
7
7
  end
@@ -3,8 +3,11 @@
3
3
  module Peatio
4
4
  module Thought
5
5
  class Wallet < Peatio::Wallet::Abstract
6
- def initialize(settings={})
7
- @settings = settings
6
+ DEFAULT_FEATURES = { skip_deposit_collection: false }.freeze
7
+
8
+ def initialize(custom_features = {})
9
+ @features = DEFAULT_FEATURES.merge(custom_features).slice(*SUPPORTED_FEATURES)
10
+ @settings = {}
8
11
  end
9
12
 
10
13
  def configure(settings={})
@@ -43,11 +43,11 @@ Gem::Specification.new do |spec|
43
43
  spec.add_dependency "peatio", ">= 0.6.3"
44
44
  spec.add_dependency 'net-http-persistent', '~> 3.0.1'
45
45
 
46
- spec.add_development_dependency "bundler", "~> 1.17"
46
+ spec.add_development_dependency "bundler", "~> 2.1.3"
47
47
  spec.add_development_dependency "irb"
48
48
  spec.add_development_dependency "mocha", "~> 1.8"
49
49
  spec.add_development_dependency "pry-byebug"
50
- spec.add_development_dependency "rake", "~> 10.0"
50
+ spec.add_development_dependency "rake", "~> 13.0"
51
51
  spec.add_development_dependency "rspec", "~> 3.0"
52
52
  spec.add_development_dependency "rubocop-github"
53
53
  spec.add_development_dependency "simplecov"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peatio-thought
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.2
4
+ version: 2.6.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew@Thought
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-15 00:00:00.000000000 Z
11
+ date: 2020-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '1.17'
103
+ version: 2.1.3
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '1.17'
110
+ version: 2.1.3
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: irb
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -156,14 +156,14 @@ dependencies:
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: '10.0'
159
+ version: '13.0'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: '10.0'
166
+ version: '13.0'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: rspec
169
169
  requirement: !ruby/object:Gem::Requirement