cns 2.1.7 → 2.1.9
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 +2 -2
- data/lib/cns/apice.rb +17 -12
- data/lib/cns/bitcoinde.rb +1 -1
- 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: f5e34a759d5a3dc566f918d6e0822311511ef817a26b4f5cda3792129306e2d9
|
|
4
|
+
data.tar.gz: 31748b2db5858844b87ae861ba7353a58c07bb5d3ab71e452257a8f731ce33cc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9eba36bdb69b39ebe7e87dd42860d05ce72fb47cf0ff9ad164e387cf8ca4ea7cb138f840cd956a9591b8c0daf74c3ee9042b8c652ce3d64930425c9904955630
|
|
7
|
+
data.tar.gz: d77d6f77d9754994e3282e21c0394389644ba5df1f54e83f4548dbf820128b434a404a8dc08a72661df8fcdc7b79620937ffad941ad8e96510309cc080326351
|
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.9)
|
|
5
5
|
curb
|
|
6
6
|
faraday
|
|
7
7
|
faraday-retry
|
|
@@ -112,7 +112,7 @@ GEM
|
|
|
112
112
|
multi_json (1.19.1)
|
|
113
113
|
net-http (0.9.1)
|
|
114
114
|
uri (>= 0.11.1)
|
|
115
|
-
nokogiri (1.19.
|
|
115
|
+
nokogiri (1.19.1-x86_64-linux-gnu)
|
|
116
116
|
racc (~> 1.4)
|
|
117
117
|
observer (0.1.2)
|
|
118
118
|
open3 (0.2.1)
|
data/lib/cns/apice.rb
CHANGED
|
@@ -40,30 +40,25 @@ module Cns
|
|
|
40
40
|
# @return [Array<Hash>] trades bitcoinde
|
|
41
41
|
def trades_de(tsp = nil)
|
|
42
42
|
prm = {state: 1}
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
# Bitcoin.de API needs round UTC Time down to nearest 15-minute mark (00,15,30,45) and format as RFC 3339 with +00:00
|
|
44
|
+
prm[:date_start] = Time.at(tsp).utc.then { |t| Time.utc(t.year, t.month, t.day, t.hour, 0, 0).strftime('%Y-%m-%dT%H:%M:%S+00:00') } if tsp
|
|
45
|
+
pag_de_req("#{API[:de]}/trades", prm, :trades)
|
|
45
46
|
rescue Curl::Err::CurlError
|
|
46
47
|
[]
|
|
47
48
|
end
|
|
48
49
|
|
|
49
50
|
# Get deposits from Bitcoin.de, uniformly formatted
|
|
50
|
-
# @param [Integer] tsp optional unix timestamp (seconds) to fetch deposits from (start date on bitcoin.de API)
|
|
51
51
|
# @return [Array<Hash>] depositos uniformizados bitcoinde
|
|
52
|
-
def deposits_de
|
|
53
|
-
|
|
54
|
-
prm[:date_start] = Time.at(tsp).utc.iso8601 if tsp
|
|
55
|
-
pag_de_req("#{API[:de]}/btc/deposits", {state: 2}, :deposits) { |i| i.map { |h| deposit_unif(h) } }
|
|
52
|
+
def deposits_de
|
|
53
|
+
pag_de_req("#{API[:de]}/btc/deposits", {}, :deposits) { |i| i.map { |h| deposit_unif(h) } }
|
|
56
54
|
rescue Curl::Err::CurlError
|
|
57
55
|
[]
|
|
58
56
|
end
|
|
59
57
|
|
|
60
58
|
# Get withdrawals from Bitcoin.de, uniformly formatted
|
|
61
|
-
# @param [Integer] tsp optional unix timestamp (seconds) to fetch withdrawals from (start date on bitcoin.de API)
|
|
62
59
|
# @return [Array<Hash>] withdrawals uniformizadas bitcoinde
|
|
63
60
|
def withdrawals_de(tsp = nil)
|
|
64
|
-
|
|
65
|
-
prm[:date_start] = Time.at(tsp).utc.iso8601 if tsp
|
|
66
|
-
pag_de_req("#{API[:de]}/btc/withdrawals", {state: 1}, :withdrawals) { |i| i.map { |h| withdrawal_unif(h) } }
|
|
61
|
+
pag_de_req("#{API[:de]}/btc/withdrawals", {}, :withdrawals) { |i| i.map { |h| withdrawal_unif(h) } }
|
|
67
62
|
rescue Curl::Err::CurlError
|
|
68
63
|
[]
|
|
69
64
|
end
|
|
@@ -130,6 +125,10 @@ module Cns
|
|
|
130
125
|
sleep(@lpag - Time.now + 2) if @lpag && Time.now - @lpag < 2
|
|
131
126
|
ops = prm.merge({nonce: nnc, ofs: ofs})
|
|
132
127
|
rcrl(@curl, "#{API[:us]}/#{uri}", method: 'POST', post_data: ops, headers: hus(uri, ops))
|
|
128
|
+
unless @curl.response_code == 200
|
|
129
|
+
puts("Kraken API returned non-200 status: #{@curl.response_code} for #{uri}")
|
|
130
|
+
break
|
|
131
|
+
end
|
|
133
132
|
bth = pjsn(@curl).fetch(:result, {}).fetch(key, []).map { |k, v| us_unif(k, v) }
|
|
134
133
|
break if bth.empty?
|
|
135
134
|
|
|
@@ -152,10 +151,16 @@ module Cns
|
|
|
152
151
|
loop do
|
|
153
152
|
url = "#{uri}?#{URI.encode_www_form(prm.merge(page: pag))}"
|
|
154
153
|
rcrl(@curl, url, headers: hde(url))
|
|
154
|
+
unless @curl.response_code == 200
|
|
155
|
+
puts("Bitcoin.de API returned non-200 status: #{@curl.response_code} for #{url}")
|
|
156
|
+
break
|
|
157
|
+
end
|
|
155
158
|
res = pjsn(@curl)
|
|
156
159
|
bth = res.fetch(key, [])
|
|
157
160
|
ary.concat(block_given? ? yield(bth) : bth)
|
|
158
|
-
|
|
161
|
+
current = res.dig(:page, :current) || 1
|
|
162
|
+
last = res.dig(:page, :last) || 1
|
|
163
|
+
break if current >= last || bth.empty?
|
|
159
164
|
|
|
160
165
|
pag += 1
|
|
161
166
|
end
|
data/lib/cns/bitcoinde.rb
CHANGED
|
@@ -161,7 +161,7 @@ module Cns
|
|
|
161
161
|
memoize def exd
|
|
162
162
|
# unix timestamp para obter transacoes 24x60x60 = 86400 segundos
|
|
163
163
|
tsp = ops&.[](:d)&.positive? ? Integer(Time.now - (ops[:d] * 86_400)) : nil
|
|
164
|
-
{sl: pdea(api.account_de), tt: pdet(api.trades_de(tsp)), tl: pdel(api.deposits_de
|
|
164
|
+
{sl: pdea(api.account_de), tt: pdet(api.trades_de(tsp)), tl: pdel(api.deposits_de + api.withdrawals_de)}
|
|
165
165
|
end
|
|
166
166
|
|
|
167
167
|
# @return [Array<String>] indices trades bigquery
|
data/lib/cns/version.rb
CHANGED