cryptum 0.0.389 → 0.0.393
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 +4 -4
- data/.rubocop_todo.yml +1 -17
- data/bin/cryptum +3 -21
- data/lib/cryptum/api.rb +1 -1
- data/lib/cryptum/event.rb +1 -1
- data/lib/cryptum/option/choice.rb +1 -2
- data/lib/cryptum/option/environment.rb +3 -1
- data/lib/cryptum/option/input_validation.rb +3 -1
- data/lib/cryptum/option/parser.rb +3 -7
- data/lib/cryptum/order_book.rb +1 -1
- data/lib/cryptum/portfolio.rb +1 -1
- data/lib/cryptum/ui/exit.rb +1 -1
- data/lib/cryptum/ui/key_press_event.rb +1 -1
- data/lib/cryptum/ui/order/execute.rb +64 -130
- data/lib/cryptum/ui/order.rb +1 -1
- data/lib/cryptum/version.rb +1 -1
- data/lib/cryptum/web_sock/event_machine.rb +23 -19
- data/lib/cryptum/web_sock.rb +1 -1
- data/spec/lib/cryptum/option/environment_spec.rb +2 -2
- data/spec/lib/cryptum/option/input_validation_spec.rb +2 -2
- data/spec/lib/cryptum/option/parser_spec.rb +2 -2
- data/spec/lib/cryptum_spec.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ca637e5a3a716df2681e8b1b5596c179eef4a83664d387edfc71d19a088dc4d0
|
4
|
+
data.tar.gz: ee4e852ed2cbaccfc985f9f0ac5b1fab3e0e9e9e028da55e315476163e51e1f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 004ea17a91df64ef33f9aef8a62cce6b9d558a06f8f46b98ccd473cc4ec4e81ee306ba9734149bbabac7078a59773eb104d1baef1dd76dda566b89a0aebc1ffe
|
7
|
+
data.tar.gz: 269567118f7ff64cc9ed35d615b7fe65598a8b3f82bea963241b293132558523c6005794823093ed6bc00cb80adea516a97c06c7af299a73490deb3d21df9d28
|
data/.rubocop_todo.yml
CHANGED
@@ -1,21 +1,11 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on 2023-04-03
|
3
|
+
# on 2023-04-03 22:26:52 UTC using RuboCop version 1.49.0.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
8
|
|
9
|
-
# Offense count: 1
|
10
|
-
Lint/UnreachableCode:
|
11
|
-
Exclude:
|
12
|
-
- 'bin/cryptum'
|
13
|
-
|
14
|
-
# Offense count: 1
|
15
|
-
Style/ClassVars:
|
16
|
-
Exclude:
|
17
|
-
- 'bin/cryptum'
|
18
|
-
|
19
9
|
# Offense count: 5
|
20
10
|
# This cop supports safe autocorrection (--autocorrect).
|
21
11
|
# Configuration parameters: EnforcedStyle, SingleLineConditionsOnly, IncludeTernaryExpressions.
|
@@ -30,9 +20,3 @@ Style/ConditionalAssignment:
|
|
30
20
|
# Configuration parameters: AllowedConstants.
|
31
21
|
Style/Documentation:
|
32
22
|
Enabled: false
|
33
|
-
|
34
|
-
# Offense count: 1
|
35
|
-
# This cop supports safe autocorrection (--autocorrect).
|
36
|
-
Style/RedundantSelf:
|
37
|
-
Exclude:
|
38
|
-
- 'lib/cryptum/api.rb'
|
data/bin/cryptum
CHANGED
@@ -19,12 +19,7 @@ if option_choice.list_products
|
|
19
19
|
)
|
20
20
|
end
|
21
21
|
|
22
|
-
# Instantiate Our Status Indicators & History Objects
|
23
|
-
indicator_status = Cryptum::OrderBook::Indicator.new
|
24
|
-
|
25
22
|
# Generate an Order Book for Session Tracking
|
26
|
-
# Load previous order_book_justification from
|
27
|
-
# Order Book File (if it exists)
|
28
23
|
event_history = Cryptum::OrderBook::Generate.new(
|
29
24
|
option_choice: option_choice,
|
30
25
|
env: env
|
@@ -34,25 +29,12 @@ event_history = Cryptum::OrderBook::Generate.new(
|
|
34
29
|
terminal_win = Cryptum::UI.init(event_history: event_history)
|
35
30
|
terminal_win.key_press_event.key_w = true if option_choice.reset_session_countdown
|
36
31
|
|
37
|
-
# Automatically Create Bot Confs if they don't
|
38
|
-
# Exist and Initialize Automated Trading Parameters
|
39
|
-
bot_conf = Cryptum::BotConf.read(
|
40
|
-
option_choice: option_choice,
|
41
|
-
event_history: event_history
|
42
|
-
)
|
43
|
-
|
44
32
|
# Connect to WebSocket
|
45
|
-
# Trigger Events as
|
46
|
-
#
|
47
|
-
# Web Socket HTTP Responses
|
48
|
-
# Refresh UI with Event Data
|
49
|
-
# Update "Status Indicators"
|
50
|
-
# Leverage "Status Indicators" to Initiate Actions
|
33
|
+
# Refresh UI and Trigger Events as Messages via Web Socket are Received.
|
34
|
+
# Leverage Indicators to Initiate Actions
|
51
35
|
Cryptum::WebSock::EventMachine.run(
|
52
36
|
option_choice: option_choice,
|
53
37
|
env: env,
|
54
38
|
terminal_win: terminal_win,
|
55
|
-
event_history: event_history
|
56
|
-
indicator_status: indicator_status,
|
57
|
-
bot_conf: bot_conf
|
39
|
+
event_history: event_history
|
58
40
|
)
|
data/lib/cryptum/api.rb
CHANGED
data/lib/cryptum/event.rb
CHANGED
@@ -19,12 +19,6 @@ module Cryptum
|
|
19
19
|
'<Required - Crypto Symbol.(e.g. btc-usd, eth-usd, etc.)'
|
20
20
|
) { |s| option_choice.symbol = s.to_s.gsub('-', '_').downcase.to_sym }
|
21
21
|
|
22
|
-
options.on(
|
23
|
-
'-A',
|
24
|
-
'--[no-]autotrade',
|
25
|
-
'<Optional - Automatically Buy and Sell Crypto>'
|
26
|
-
) { |a| option_choice.autotrade = a }
|
27
|
-
|
28
22
|
options.on(
|
29
23
|
'-l',
|
30
24
|
'--[no-]list-products',
|
@@ -76,7 +70,9 @@ module Cryptum
|
|
76
70
|
|
77
71
|
# Display Usage for this Module
|
78
72
|
public_class_method def self.help
|
79
|
-
|
73
|
+
puts "USAGE:
|
74
|
+
#{self}.get(option_choice: option_choice)
|
75
|
+
"
|
80
76
|
end
|
81
77
|
end
|
82
78
|
end
|
data/lib/cryptum/order_book.rb
CHANGED
data/lib/cryptum/portfolio.rb
CHANGED
data/lib/cryptum/ui/exit.rb
CHANGED
@@ -19,9 +19,9 @@ module Cryptum
|
|
19
19
|
indicator_status = opts[:indicator_status]
|
20
20
|
bot_conf = opts[:bot_conf]
|
21
21
|
|
22
|
-
event_type = event_history.event_type
|
23
|
-
event_side = event_history.event[:side].to_s.to_sym
|
24
|
-
event_reason = event_history.event[:reason].to_s.to_sym
|
22
|
+
event_type = event_history.event_type
|
23
|
+
event_side = event_history.event[:side].to_s.to_sym
|
24
|
+
event_reason = event_history.event[:reason].to_s.to_sym
|
25
25
|
|
26
26
|
ticker_price = event_history.order_book[:ticker_price].to_f
|
27
27
|
open_24h = event_history.order_book[:open_24h].to_f
|
@@ -42,11 +42,11 @@ module Cryptum
|
|
42
42
|
limit_price = last_three_prices_arr.sort[1]
|
43
43
|
return event_history unless limit_price.positive?
|
44
44
|
|
45
|
-
tpm = bot_conf[:target_profit_margin_percent].to_f
|
46
|
-
tpm_cast_as_decimal = tpm / 100
|
45
|
+
# tpm = bot_conf[:target_profit_margin_percent].to_f
|
46
|
+
# tpm_cast_as_decimal = tpm / 100
|
47
47
|
|
48
48
|
order_history_meta = event_history.order_book[:order_history_meta]
|
49
|
-
order_history = event_history.order_book[:order_history]
|
49
|
+
order_history = event_history.order_book[:order_history]
|
50
50
|
|
51
51
|
margin_percent_open_24h = (1 - (open_24h / ticker_price)) * 100
|
52
52
|
cast_margin_to_sec = margin_percent_open_24h * 0.1
|
@@ -79,87 +79,60 @@ module Cryptum
|
|
79
79
|
indicator_status.action_signal == :buy &&
|
80
80
|
!event_history.red_pill
|
81
81
|
|
82
|
-
|
83
|
-
this_order = event_history.order_book[:order_plan].first
|
82
|
+
this_order = event_history.order_book[:order_plan].first
|
84
83
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
84
|
+
# If price is greater than the previous order,
|
85
|
+
# force it to be slightly less
|
86
|
+
last_order = order_history_meta.select do |order|
|
87
|
+
order if order[:color] == 'yellow'
|
88
|
+
end.last
|
90
89
|
|
91
|
-
|
92
|
-
|
90
|
+
last_purchase_price = 0.0
|
91
|
+
last_purchase_price = last_order[:price].to_f if last_order
|
93
92
|
|
94
|
-
|
93
|
+
limit_price = last_purchase_price - quote_increment.to_f if last_purchase_price.positive? && last_purchase_price < limit_price
|
95
94
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
95
|
+
# Debug last order
|
96
|
+
File.open('/tmp/cryptum-errors.txt', 'a') do |f|
|
97
|
+
f.puts "Last Order: #{last_order}"
|
98
|
+
f.puts "Last Purchase Price: #{last_purchase_price}"
|
99
|
+
f.puts "Limit Price (Should be <= quote_increment-- ^): #{limit_price}"
|
100
|
+
f.puts "\n\n\n"
|
101
|
+
end
|
103
102
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
103
|
+
price = format(
|
104
|
+
"%0.#{fiat_smallest_decimal}f",
|
105
|
+
limit_price
|
106
|
+
)
|
108
107
|
|
109
|
-
|
108
|
+
size = this_order[:invest].to_f / limit_price
|
110
109
|
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
110
|
+
loop do
|
111
|
+
size = size.to_f + base_increment.to_f
|
112
|
+
break if (size.to_f * price.to_f) > min_market_funds.to_f
|
113
|
+
end
|
115
114
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
115
|
+
size = format(
|
116
|
+
"%0.#{crypto_smallest_decimal}f",
|
117
|
+
size
|
118
|
+
)
|
120
119
|
|
121
|
-
|
122
|
-
|
123
|
-
fiat_portfolio = event_history.order_book[:fiat_portfolio]
|
124
|
-
fiat_avail_to_trade = format('%0.2f', fiat_portfolio.first[:available])
|
125
|
-
|
126
|
-
event_history.red_pill = true if fiat_invested_this_order > fiat_avail_to_trade.to_f
|
127
|
-
|
128
|
-
unless event_history.red_pill
|
129
|
-
event_history = Cryptum::Event::Buy.crypto(
|
130
|
-
option_choice: option_choice,
|
131
|
-
env: env,
|
132
|
-
price: price,
|
133
|
-
size: size,
|
134
|
-
event_history: event_history,
|
135
|
-
bot_conf: bot_conf
|
136
|
-
)
|
137
|
-
end
|
138
|
-
else
|
139
|
-
this_order = event_history.order_book[:order_plan].shift
|
140
|
-
# Mock Order ID
|
141
|
-
this_order[:buy_order_id] = format(
|
142
|
-
'%0.6i',
|
143
|
-
Random.rand(0..999_999)
|
144
|
-
)
|
120
|
+
fiat_invested_this_order = size.to_f * price.to_f
|
145
121
|
|
146
|
-
|
147
|
-
|
148
|
-
"%0.#{crypto_smallest_decimal}f",
|
149
|
-
this_order[:invest].to_f / limit_price
|
150
|
-
)
|
122
|
+
fiat_portfolio = event_history.order_book[:fiat_portfolio]
|
123
|
+
fiat_avail_to_trade = format('%0.2f', fiat_portfolio.first[:available])
|
151
124
|
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
125
|
+
event_history.red_pill = true if fiat_invested_this_order > fiat_avail_to_trade.to_f
|
126
|
+
|
127
|
+
unless event_history.red_pill
|
128
|
+
event_history = Cryptum::Event::Buy.crypto(
|
129
|
+
option_choice: option_choice,
|
130
|
+
env: env,
|
131
|
+
price: price,
|
132
|
+
size: size,
|
133
|
+
event_history: event_history,
|
134
|
+
bot_conf: bot_conf
|
160
135
|
)
|
161
|
-
this_order[:color] = :cyan
|
162
|
-
order_history_meta.push(this_order)
|
163
136
|
end
|
164
137
|
|
165
138
|
# SAUCE 4 (SAUCE 3 RELATES TO SAUCE 4)
|
@@ -181,23 +154,6 @@ module Cryptum
|
|
181
154
|
# be more than event_history.time_between_orders_max
|
182
155
|
event_history.time_between_orders = event_history.time_between_orders_max if event_history.time_between_orders > event_history.time_between_orders_max
|
183
156
|
end
|
184
|
-
|
185
|
-
# SELL
|
186
|
-
# Once buy arders are fulfilled submit a
|
187
|
-
# limit sell order for fulfillment
|
188
|
-
unless option_choice.autotrade
|
189
|
-
# Testing logic via Mock
|
190
|
-
event_type_arr = %i[received open done]
|
191
|
-
last_et_index = event_type_arr.length - 1
|
192
|
-
rand_et_index = Random.rand(0..last_et_index)
|
193
|
-
event_type = event_type_arr[rand_et_index]
|
194
|
-
|
195
|
-
event_side_arr = %i[buy sell]
|
196
|
-
last_es_index = event_side_arr.length - 1
|
197
|
-
rand_es_index = Random.rand(0..last_es_index)
|
198
|
-
event_side = event_type_arr[rand_es_index].to_s.to_sym
|
199
|
-
event_reason = 'mock'
|
200
|
-
end
|
201
157
|
end
|
202
158
|
|
203
159
|
# Update Completed Sell Orders w/ Green
|
@@ -227,52 +183,30 @@ module Cryptum
|
|
227
183
|
event_side == :buy &&
|
228
184
|
event_reason != :canceled
|
229
185
|
|
230
|
-
|
231
|
-
|
232
|
-
meta[:buy_order_id] == event_history.event[:order_id]
|
233
|
-
end
|
234
|
-
else
|
235
|
-
last_index = order_history_meta.length - 1
|
236
|
-
rand_index = Random.rand(0..last_index)
|
237
|
-
order_ready_to_sell_arr = [
|
238
|
-
order_history_meta[rand_index]
|
239
|
-
]
|
186
|
+
order_ready_to_sell_arr = order_history_meta.select do |meta|
|
187
|
+
meta[:buy_order_id] == event_history.event[:order_id]
|
240
188
|
end
|
241
189
|
|
242
190
|
if order_ready_to_sell_arr.length.positive?
|
243
191
|
order_ready_to_sell = order_ready_to_sell_arr.first
|
244
192
|
buy_order_id = order_ready_to_sell[:buy_order_id]
|
245
193
|
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
)
|
194
|
+
price = format(
|
195
|
+
"%0.#{fiat_smallest_decimal}f",
|
196
|
+
order_ready_to_sell[:target_price]
|
197
|
+
)
|
251
198
|
|
252
|
-
|
199
|
+
size = order_ready_to_sell[:size]
|
253
200
|
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
else
|
264
|
-
sell_order_id = format(
|
265
|
-
'%0.2i',
|
266
|
-
Random.rand(0..999_999)
|
267
|
-
)
|
268
|
-
|
269
|
-
event_history.order_book[:order_history_meta].each do |meta|
|
270
|
-
if meta[:buy_order_id] == buy_order_id
|
271
|
-
meta[:sell_order_id] = sell_order_id
|
272
|
-
meta[:color] = :yellow
|
273
|
-
end
|
274
|
-
end
|
275
|
-
end
|
201
|
+
event_history = Cryptum::Event::Sell.crypto(
|
202
|
+
option_choice: option_choice,
|
203
|
+
env: env,
|
204
|
+
price: price,
|
205
|
+
size: size,
|
206
|
+
event_history: event_history,
|
207
|
+
bot_conf: bot_conf,
|
208
|
+
buy_order_id: buy_order_id
|
209
|
+
)
|
276
210
|
end
|
277
211
|
end
|
278
212
|
|
data/lib/cryptum/ui/order.rb
CHANGED
data/lib/cryptum/version.rb
CHANGED
@@ -15,8 +15,16 @@ module Cryptum
|
|
15
15
|
option_choice = opts[:option_choice]
|
16
16
|
terminal_win = opts[:terminal_win]
|
17
17
|
event_history = opts[:event_history]
|
18
|
-
|
19
|
-
|
18
|
+
|
19
|
+
# Instantiate Our Status Indicator Objects
|
20
|
+
indicator_status = Cryptum::OrderBook::Indicator.new
|
21
|
+
|
22
|
+
# Automatically Create Bot Confs if they don't
|
23
|
+
# Exist and Initialize Automated Trading Parameters
|
24
|
+
bot_conf = Cryptum::BotConf.read(
|
25
|
+
option_choice: option_choice,
|
26
|
+
event_history: event_history
|
27
|
+
)
|
20
28
|
|
21
29
|
max_conn_attempts = 30
|
22
30
|
conn_attempt = 0
|
@@ -49,12 +57,7 @@ module Cryptum
|
|
49
57
|
end
|
50
58
|
|
51
59
|
ws.on :message do |event|
|
52
|
-
#
|
53
|
-
# Frequency of WebSocket Messages Coming Through.
|
54
|
-
# Explore another way to decouple required events
|
55
|
-
# (such as keypresses) from only being triggered
|
56
|
-
# when messages come through.
|
57
|
-
|
60
|
+
# Convert Web Socket Response JSON Message to Hash
|
58
61
|
event_history.event = JSON.parse(
|
59
62
|
event.data,
|
60
63
|
symbolize_names: true
|
@@ -73,8 +76,7 @@ module Cryptum
|
|
73
76
|
# Detect Key Press Events
|
74
77
|
Cryptum::Event::KeyPress.detect(terminal_win: terminal_win)
|
75
78
|
|
76
|
-
# Cancel ALL Open Orders when
|
77
|
-
# C is pressed
|
79
|
+
# Cancel ALL Open Orders when C is pressed
|
78
80
|
if terminal_win.key_press_event.key_c
|
79
81
|
Cryptum::Event::Cancel.open_orders(
|
80
82
|
terminal_win: terminal_win,
|
@@ -83,8 +85,7 @@ module Cryptum
|
|
83
85
|
)
|
84
86
|
end
|
85
87
|
|
86
|
-
# Get the F* Out (GTFO) when
|
87
|
-
# G is pressed
|
88
|
+
# Get the F* Out (GTFO) when G is pressed
|
88
89
|
if terminal_win.key_press_event.key_g
|
89
90
|
event_history = Cryptum::Event::GTFO.now(
|
90
91
|
terminal_win: terminal_win,
|
@@ -104,8 +105,7 @@ module Cryptum
|
|
104
105
|
)
|
105
106
|
end
|
106
107
|
|
107
|
-
#
|
108
|
-
# W is Pressed
|
108
|
+
# Write Order Book to File when W is Pressed
|
109
109
|
if terminal_win.key_press_event.key_w
|
110
110
|
Cryptum::Event::OrderBook.write(
|
111
111
|
terminal_win: terminal_win,
|
@@ -114,7 +114,11 @@ module Cryptum
|
|
114
114
|
end
|
115
115
|
|
116
116
|
# Exit if x is Pressed
|
117
|
-
|
117
|
+
if terminal_win.key_press_event.key_x
|
118
|
+
Cryptum::Event::Exit.gracefully(
|
119
|
+
event_history: event_history
|
120
|
+
)
|
121
|
+
end
|
118
122
|
|
119
123
|
# TAB through Order Plan / Order Execution Window Panes
|
120
124
|
if terminal_win.key_press_event.key_tab
|
@@ -182,9 +186,9 @@ module Cryptum
|
|
182
186
|
end
|
183
187
|
|
184
188
|
ws.on :close do
|
185
|
-
# raise when remote peer forces reset...
|
186
|
-
#
|
187
|
-
# until conn_attempt > max_conn_attempts
|
189
|
+
# raise Errno::ECONNRESET when remote peer forces reset...
|
190
|
+
# This will be caught in the rescue block below which reattempts
|
191
|
+
# to connect until conn_attempt > max_conn_attempts
|
188
192
|
raise Errno::ECONNRESET
|
189
193
|
end
|
190
194
|
|
@@ -211,7 +215,7 @@ module Cryptum
|
|
211
215
|
|
212
216
|
EM.add_periodic_timer(option_choice.market_trend_reset) do
|
213
217
|
# NOTE: To ensure the integrity of event_history is maintained,
|
214
|
-
# changes to its
|
218
|
+
# changes to its contents _MUST_ stay in this block.
|
215
219
|
event_history.order_book[:market_trend][:buy] = 0
|
216
220
|
event_history.order_book[:market_trend][:sell] = 0
|
217
221
|
event_history.order_book[:last_trend_reset] = Time.now.strftime(
|
data/lib/cryptum/web_sock.rb
CHANGED
@@ -4,7 +4,7 @@ require 'spec_helper'
|
|
4
4
|
|
5
5
|
describe Cryptum::Option::Environment do
|
6
6
|
it 'should return data for help method' do
|
7
|
-
help_response = Cryptum::Option::Environment
|
8
|
-
expect(help_response).
|
7
|
+
help_response = Cryptum::Option::Environment
|
8
|
+
expect(help_response).to respond_to :help
|
9
9
|
end
|
10
10
|
end
|
@@ -4,7 +4,7 @@ require 'spec_helper'
|
|
4
4
|
|
5
5
|
describe Cryptum::Option::InputValidation do
|
6
6
|
it 'should return data for help method' do
|
7
|
-
help_response = Cryptum::Option::InputValidation
|
8
|
-
expect(help_response).
|
7
|
+
help_response = Cryptum::Option::InputValidation
|
8
|
+
expect(help_response).to respond_to :help
|
9
9
|
end
|
10
10
|
end
|
@@ -4,7 +4,7 @@ require 'spec_helper'
|
|
4
4
|
|
5
5
|
describe Cryptum::Option::Parser do
|
6
6
|
it 'should return data for help method' do
|
7
|
-
help_response = Cryptum::Option::Parser
|
8
|
-
expect(help_response).
|
7
|
+
help_response = Cryptum::Option::Parser
|
8
|
+
expect(help_response).to respond_to :help
|
9
9
|
end
|
10
10
|
end
|
data/spec/lib/cryptum_spec.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cryptum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.393
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 0day Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-04-
|
11
|
+
date: 2023-04-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|