cns 2.1.2 → 2.1.4
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/Gemfile.lock +3 -3
- data/lib/cns/apice.rb +9 -6
- data/lib/cns/bitcoinde.rb +1 -1
- data/lib/cns/kraken.rb +15 -7
- data/lib/cns/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b0deb219876c5a8fd82a5338c9d7635b11356feffcdc908514be211fb0bbc909
|
|
4
|
+
data.tar.gz: b188c18e7a9226bded29d42d0f9142280c94e9230fe7d41ff94d4776dc56222c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9833256521bb67118970871725a5ca3da4f5cc371a8aa3d531421238f66510a8040dd778de1a42506b6aeacda1deb581195f449cd883776951ba3b97b2d8bffc
|
|
7
|
+
data.tar.gz: 163a57bfbdfe4ba4a6f864db5ba97266c4e1f5088e2b72543137c20bcc4810bf1799d5bbc03e76aa929c6b8984ad75a212f7756471b1c4c968ba923cb17d8a8c
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
cns (2.1.
|
|
4
|
+
cns (2.1.4)
|
|
5
5
|
curb
|
|
6
6
|
faraday
|
|
7
7
|
faraday-retry
|
|
@@ -213,7 +213,7 @@ PLATFORMS
|
|
|
213
213
|
DEPENDENCIES
|
|
214
214
|
bundler
|
|
215
215
|
cns!
|
|
216
|
-
rake (~> 12.0)
|
|
216
|
+
rake (~> 12.0, >= 0)
|
|
217
217
|
reek
|
|
218
218
|
rubocop
|
|
219
219
|
rubocop-rake
|
|
@@ -221,4 +221,4 @@ DEPENDENCIES
|
|
|
221
221
|
yard
|
|
222
222
|
|
|
223
223
|
BUNDLED WITH
|
|
224
|
-
|
|
224
|
+
4.0.6
|
data/lib/cns/apice.rb
CHANGED
|
@@ -71,17 +71,19 @@ module Cns
|
|
|
71
71
|
end
|
|
72
72
|
|
|
73
73
|
# Get trades from Kraken
|
|
74
|
+
# @param [Integer] days optional number of days to fetch trades from (last N days)
|
|
74
75
|
# @return [Hash] trades kraken
|
|
75
|
-
def trades_us
|
|
76
|
-
pag_us_req('TradesHistory', :trades)
|
|
76
|
+
def trades_us(days = nil)
|
|
77
|
+
pag_us_req('TradesHistory', :trades, days ? {start: days} : {})
|
|
77
78
|
rescue Curl::Err::CurlError
|
|
78
79
|
[]
|
|
79
80
|
end
|
|
80
81
|
|
|
81
82
|
# Get ledger from Kraken
|
|
83
|
+
# @param [Integer] days optional number of days to fetch ledger from (last N days)
|
|
82
84
|
# @return [Hash] ledger kraken
|
|
83
|
-
def ledger_us
|
|
84
|
-
pag_us_req('Ledgers', :ledger)
|
|
85
|
+
def ledger_us(days = nil)
|
|
86
|
+
pag_us_req('Ledgers', :ledger, days ? {start: days} : {})
|
|
85
87
|
rescue Curl::Err::CurlError
|
|
86
88
|
[]
|
|
87
89
|
end
|
|
@@ -102,15 +104,16 @@ module Cns
|
|
|
102
104
|
# Generic paginated request handler for Kraken
|
|
103
105
|
# @param [String] uri API endpoint URI
|
|
104
106
|
# @param [Symbol] key Key to extract from the result
|
|
107
|
+
# @param [Hash] prm Additional options for the request
|
|
105
108
|
# @yield [Array<Hash>] Block to process each batch of results
|
|
106
109
|
# @return [Array<Hash>] Combined results from all pages
|
|
107
|
-
def pag_us_req(uri, key)
|
|
110
|
+
def pag_us_req(uri, key, prm = {})
|
|
108
111
|
ary = []
|
|
109
112
|
ofs = 0
|
|
110
113
|
loop do
|
|
111
114
|
# Rate limiting for page requests (2s in Kraken)
|
|
112
115
|
sleep(@lpag - Time.now + 2) if @lpag && Time.now - @lpag < 2
|
|
113
|
-
ops = {nonce: nnc, ofs: ofs}
|
|
116
|
+
ops = prm.merge({nonce: nnc, ofs: ofs})
|
|
114
117
|
rcrl(@curl, "#{API[:us]}/#{uri}", method: 'POST', post_data: ops, headers: hus(uri, ops))
|
|
115
118
|
bth = pjsn(@curl).fetch(:result, {}).fetch(key, []).map { |k, v| us_unif(k, v) }
|
|
116
119
|
break if bth.empty?
|
data/lib/cns/bitcoinde.rb
CHANGED
data/lib/cns/kraken.rb
CHANGED
|
@@ -26,7 +26,7 @@ module Cns
|
|
|
26
26
|
# mosta resumo saldos & transacoes & ajuste dias
|
|
27
27
|
def mresumo
|
|
28
28
|
puts("\nKRAKEN\ntipo kraken bigquery")
|
|
29
|
-
exd[:sl].
|
|
29
|
+
exd[:sl].transform_keys { |k| k.downcase.to_sym }.sort_by { |_, v| v }.each { |k, v| puts(fos(k, v)) }
|
|
30
30
|
mtotais
|
|
31
31
|
|
|
32
32
|
mtrades
|
|
@@ -68,17 +68,23 @@ module Cns
|
|
|
68
68
|
novxl.sort_by { |i| -i[:srx] }.each { |o| puts(fol(o)) }
|
|
69
69
|
end
|
|
70
70
|
|
|
71
|
-
# @param [
|
|
71
|
+
# @param [Symbol] moe codigo kraken da moeda
|
|
72
|
+
# @return [String] moeda formatada
|
|
73
|
+
def normalize_moe(moe)
|
|
74
|
+
{xeth: 'ETH', xxbt: 'BTC', zeur: 'EUR'}[moe] || moe.to_s.upcase
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# @param [Symbol] moe (see normalize_moe)
|
|
72
78
|
# @param [BigDecimal] sal saldo kraken da moeda
|
|
73
79
|
# @return [String] texto formatado saldos
|
|
74
80
|
def fos(moe, sal)
|
|
75
|
-
vbq = (bqd[:sl]&.fetch(moe
|
|
81
|
+
vbq = (bqd[:sl]&.fetch(moe, nil) || 0).to_d
|
|
76
82
|
format(
|
|
77
83
|
'%<mo>-5.5s %<kr>21.9f %<bq>21.9f %<ok>3.3s',
|
|
78
|
-
mo: moe
|
|
84
|
+
mo: normalize_moe(moe),
|
|
79
85
|
kr: sal,
|
|
80
86
|
bq: vbq,
|
|
81
|
-
ok: vbq == sal ? 'OK' : 'NOK'
|
|
87
|
+
ok: vbq.round(9) == sal.round(9) ? 'OK' : 'NOK'
|
|
82
88
|
)
|
|
83
89
|
end
|
|
84
90
|
|
|
@@ -119,7 +125,7 @@ module Cns
|
|
|
119
125
|
# @param [Hash] itm recursos kraken
|
|
120
126
|
# @return [Hash<BigDecimal>] moedas & sados
|
|
121
127
|
def pusa(itm)
|
|
122
|
-
itm.select { |k, _| %i[XETH ZEUR].include?(k) }.transform_values { |v| v.to_d }
|
|
128
|
+
itm.select { |k, _| %i[XETH ZEUR XXBT].include?(k) }.transform_values { |v| v.to_d }
|
|
123
129
|
end
|
|
124
130
|
|
|
125
131
|
# @param [Array<Hash>] htx trades kraken
|
|
@@ -149,7 +155,9 @@ module Cns
|
|
|
149
155
|
|
|
150
156
|
# @return [Hash] dados exchange kraken - saldos & transacoes trades e ledger
|
|
151
157
|
memoize def exd
|
|
152
|
-
|
|
158
|
+
# Numero dias para buscar transacoes
|
|
159
|
+
dys = ops&.[](:d)&.positive? ? Integer(Time.now - (ops[:d] * 86_400)) : nil
|
|
160
|
+
{sl: pusa(api.account_us), kt: pust(api.trades_us(dys)), kl: pusl(api.ledger_us(dys))}
|
|
153
161
|
end
|
|
154
162
|
|
|
155
163
|
# @return [Array<String>] indices trades bigquery
|
data/lib/cns/version.rb
CHANGED