istox 0.2.6.pre.4 → 0.2.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
  SHA256:
3
- metadata.gz: daa533366dd4e58cdbe2dbf2119024efef0b274eed309bf9c6b5f521b27b2d06
4
- data.tar.gz: 6de8b5551059a22d48c2c133d8b01b553adb8016d1400e197b8a918a281ae161
3
+ metadata.gz: 3a04c1473346b65b6cbede4d1308cdb2267af42212a76cdec99f77c17cdf7e36
4
+ data.tar.gz: 6439d8fba8144230f73eaf7a6d7e388642946508b53b986c925c0cc40a890790
5
5
  SHA512:
6
- metadata.gz: 6b0f2cf04864c80c4e4042af029aec53063bc11693ef5364988e8782f5b24f609e91e06b4328a42fcf05ac5295b1e20bc67ebaeebb45d93a895c9e53fc74f195
7
- data.tar.gz: 266def056b85f12b0027155e58af5ab75eca7f1cf63c85c1351989db7b0be0da1616d2447f639c506114c30d071574347a29561bfbb77a87e7ebf221999b7be8
6
+ metadata.gz: 288bd22b73176d05d9a900dc5b7fe3bc1d8742d03e448520f2f1e087303b2379f4bbd97ff713595d23f391e49de03b419b50ef4f2de11652cea90fe44439a386
7
+ data.tar.gz: adf4bef565107e7cfb90cb6cef08bec714ccbaec1b3fcbc2f3f174e5ee5aa24f4d05f036dc88f72bd736c2fe90120682de7ab3af5368ab5a8096bbb57d10368e
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- istox (0.2.6.pre.4)
4
+ istox (0.2.5.3)
5
5
  amazing_print
6
6
  awesome_print
7
7
  aws-sdk-sns (~> 1)
@@ -9,6 +9,7 @@ PATH
9
9
  bunny (>= 2.12.0)
10
10
  exponential-backoff (= 0.0.4)
11
11
  graphlient
12
+ gruf
12
13
  hashie (~> 3.5.7)
13
14
  istox_gruf (~> 2.7.3)
14
15
  listen (~> 3.0.5)
@@ -66,7 +67,7 @@ GEM
66
67
  amazing_print (1.3.0)
67
68
  amq-protocol (2.3.2)
68
69
  arel (9.0.0)
69
- awesome_print (1.8.0)
70
+ awesome_print (1.9.2)
70
71
  aws-eventstream (1.1.0)
71
72
  aws-partitions (1.318.0)
72
73
  aws-sdk-core (3.96.1)
@@ -100,6 +101,7 @@ GEM
100
101
  database_cleaner (1.6.2)
101
102
  debug_inspector (1.1.0)
102
103
  diff-lcs (1.3)
104
+ e2mmap (0.1.0)
103
105
  erubi (1.9.0)
104
106
  exponential-backoff (0.0.4)
105
107
  factory_bot (4.8.2)
@@ -111,31 +113,44 @@ GEM
111
113
  i18n (~> 0.5)
112
114
  fakeredis (0.7.0)
113
115
  redis (>= 3.2, < 5.0)
114
- faraday (1.3.0)
116
+ faraday (1.4.1)
117
+ faraday-excon (~> 1.1)
115
118
  faraday-net_http (~> 1.0)
119
+ faraday-net_http_persistent (~> 1.1)
116
120
  multipart-post (>= 1.2, < 3)
117
- ruby2_keywords
121
+ ruby2_keywords (>= 0.0.4)
122
+ faraday-excon (1.1.0)
118
123
  faraday-net_http (1.0.1)
124
+ faraday-net_http_persistent (1.1.0)
119
125
  faraday_middleware (1.0.0)
120
126
  faraday (~> 1.0)
121
127
  ffi (1.15.0)
122
128
  globalid (0.4.2)
123
129
  activesupport (>= 4.2.0)
124
- google-protobuf (3.13.0-universal-darwin)
125
- googleapis-common-protos-types (1.0.5)
126
- google-protobuf (~> 3.11)
130
+ google-protobuf (3.15.8-universal-darwin)
131
+ googleapis-common-protos-types (1.0.6)
132
+ google-protobuf (~> 3.14)
127
133
  graphlient (0.5.0)
128
134
  faraday (>= 1.0)
129
135
  faraday_middleware
130
136
  graphql-client
131
- graphql (1.11.5)
137
+ graphql (1.12.8)
132
138
  graphql-client (0.16.0)
133
139
  activesupport (>= 3.0)
134
140
  graphql (~> 1.8)
135
- grpc (1.32.0-universal-darwin)
136
- google-protobuf (~> 3.13)
141
+ grpc (1.37.0-universal-darwin)
142
+ google-protobuf (~> 3.15)
137
143
  googleapis-common-protos-types (~> 1.0)
138
- grpc-tools (1.32.0)
144
+ grpc-tools (1.37.0)
145
+ gruf (2.9.1)
146
+ activesupport (> 4)
147
+ concurrent-ruby (> 1)
148
+ e2mmap (~> 0.1)
149
+ grpc (~> 1.10)
150
+ grpc-tools (~> 1.10)
151
+ json (>= 2.3)
152
+ slop (~> 4.6)
153
+ thwait (~> 0.1)
139
154
  hashie (3.5.7)
140
155
  i18n (0.9.5)
141
156
  concurrent-ruby (~> 1.0)
@@ -146,6 +161,7 @@ GEM
146
161
  grpc-tools (~> 1.10)
147
162
  slop (~> 4.6)
148
163
  jmespath (1.4.0)
164
+ json (2.5.1)
149
165
  listen (3.0.8)
150
166
  rb-fsevent (~> 0.9, >= 0.9.4)
151
167
  rb-inotify (~> 0.9, >= 0.9.7)
@@ -166,8 +182,8 @@ GEM
166
182
  nio4r (2.3.1)
167
183
  nokogiri (1.10.9)
168
184
  mini_portile2 (~> 2.4.0)
169
- oj (3.10.14)
170
- ougai (1.8.5)
185
+ oj (3.11.5)
186
+ ougai (2.0.0)
171
187
  oj (~> 3.10)
172
188
  paranoia (2.4.3)
173
189
  activerecord (>= 4.0, < 6.2)
@@ -218,7 +234,7 @@ GEM
218
234
  redis-activesupport (5.2.0)
219
235
  activesupport (>= 3, < 7)
220
236
  redis-store (>= 1.3, < 2)
221
- redis-namespace (1.8.0)
237
+ redis-namespace (1.8.1)
222
238
  redis (>= 3.0.4)
223
239
  redis-rack (2.1.3)
224
240
  rack (>= 2.0.8, < 3)
@@ -250,7 +266,7 @@ GEM
250
266
  rspec-mocks (~> 3.8.0)
251
267
  rspec-support (~> 3.8.0)
252
268
  rspec-support (3.8.0)
253
- ruby2_keywords (0.0.2)
269
+ ruby2_keywords (0.0.4)
254
270
  slop (4.8.2)
255
271
  sprockets (3.7.2)
256
272
  concurrent-ruby (~> 1.0)
@@ -262,6 +278,8 @@ GEM
262
278
  sqlite3 (1.3.13)
263
279
  thor (0.20.3)
264
280
  thread_safe (0.3.6)
281
+ thwait (0.2.0)
282
+ e2mmap
265
283
  timecop (0.9.1)
266
284
  tzinfo (1.2.6)
267
285
  thread_safe (~> 0.1)
data/istox.gemspec CHANGED
@@ -37,6 +37,7 @@ Gem::Specification.new do |spec|
37
37
  spec.add_dependency 'bunny', '>= 2.12.0'
38
38
  spec.add_dependency 'exponential-backoff', '0.0.4'
39
39
  spec.add_dependency 'graphlient'
40
+ spec.add_dependency 'gruf'
40
41
  spec.add_dependency 'hashie', '~> 3.5.7'
41
42
  spec.add_dependency 'istox_gruf', '~> 2.7.3'
42
43
  spec.add_dependency 'listen', '~> 3.0.5'
@@ -2,12 +2,19 @@ module Istox
2
2
  class OrderBookProrate
3
3
  class << self
4
4
  def allocation(token_price:, min_investment:, bid_block:, # rubocop:disable Metrics/AbcSize,Metrics/PerceivedComplexity
5
- invest_step:, hard_cap:, investments:, whitelists: [], include_refund_amount: false)
5
+ invest_step:, hard_cap:, investments:, whitelists: [], include_refund_amount: false,
6
+ rollover_investments: [])
6
7
 
7
8
  # make sure is hashes
8
9
  original_investments = investments.as_json.map(&:symbolize_keys)
9
10
  whitelists = whitelists.as_json.map(&:symbolize_keys)
10
11
  investments = investments.as_json.map(&:symbolize_keys)
12
+ rollover_investments = rollover_investments.as_json.map(&:symbolize_keys)
13
+
14
+ ## rollover investment is guaranteed, so it should decrease the hard cap
15
+ rollover_investments.map do |rollover_investment|
16
+ hard_cap = ::Istox::FMath.sub(hard_cap, rollover_investment[:fiat_amount])
17
+ end
11
18
 
12
19
  # process whitelist
13
20
  whitelists.each do |whitelist|
@@ -106,7 +113,7 @@ module Istox
106
113
 
107
114
  if include_refund_amount
108
115
  original_investment = original_investments.find { |original_investment1| original_investment1[:id] == interest[:id] }
109
- interest[:refund_amount] = ::Istox::FMath.sub(original_investment[:fiat_amount], interest[:investment])
116
+ interest[:refund_amount] = original_investment.present? ? ::Istox::FMath.sub(original_investment[:fiat_amount], interest[:investment]) : '0'
110
117
  end
111
118
  interest
112
119
  end
@@ -139,9 +146,16 @@ module Istox
139
146
  end
140
147
  end
141
148
 
149
+ transform_rollover_investments = rollover_investments.map do |rollover_investment|
150
+ rollover_investment[:investment] = ::BigDecimal.new(rollover_investment[:fiat_amount].to_s).to_s
151
+ rollover_investment[:refund_amount] = ::BigDecimal.new(0).to_s if include_refund_amount
152
+
153
+ rollover_investment.select { |k, _v| %i[id investment refund_amount].include?(k) }
154
+ end
155
+
142
156
  {
143
157
  cutoff_price: token_price.to_s,
144
- interests: final_interests
158
+ interests: final_interests.concat(transform_rollover_investments)
145
159
  }
146
160
  end
147
161
  end
@@ -16,14 +16,6 @@ module Istox
16
16
  db: 6
17
17
  ))
18
18
  end
19
-
20
- # for rate limit redis cache
21
- def rate_limit_redis
22
- @rate_limit_redis ||= Redis::Namespace.new(:rate_limit_cache, redis: Redis.new(
23
- url: ENV['REDIS_URL'] || 'redis://127.0.0.1:16379',
24
- db: 6
25
- ))
26
- end
27
19
  end
28
20
  end
29
21
  end
data/lib/istox/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Istox
2
- VERSION = '0.2.6-4'.freeze
2
+ VERSION = '0.2.6'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: istox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6.pre.4
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Siong Leng
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-06 00:00:00.000000000 Z
11
+ date: 2021-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: amazing_print
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: gruf
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: hashie
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -517,7 +531,7 @@ files:
517
531
  homepage: http://www.abc.com
518
532
  licenses: []
519
533
  metadata: {}
520
- post_install_message:
534
+ post_install_message:
521
535
  rdoc_options: []
522
536
  require_paths:
523
537
  - lib
@@ -528,12 +542,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
528
542
  version: '0'
529
543
  required_rubygems_version: !ruby/object:Gem::Requirement
530
544
  requirements:
531
- - - ">"
545
+ - - ">="
532
546
  - !ruby/object:Gem::Version
533
- version: 1.3.1
547
+ version: '0'
534
548
  requirements: []
535
- rubygems_version: 3.0.8
536
- signing_key:
549
+ rubygems_version: 3.0.6
550
+ signing_key:
537
551
  specification_version: 4
538
552
  summary: istox backend shared gem
539
553
  test_files: []