cns 0.6.0 → 0.7.1
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 +1 -1
- data/lib/cns/apice.rb +140 -140
- data/lib/cns/bigquery.rb +184 -174
- data/lib/cns/etherscan.rb +0 -18
- data/lib/cns/version.rb +1 -1
- data/lib/cns.rb +0 -2
- metadata +2 -4
- data/lib/cns/paymium.rb +0 -113
- data/lib/cns/therock.rb +0 -104
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 61b5bd4279e22a5bc61efb12f3717d805aaefa15d46b4f98ef45a05c052b701e
|
4
|
+
data.tar.gz: 34984d55f0b46e72097d5a589b0f3d2700dd89fc8877ba0c2e38ad55c553fed8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 524fc4c7bd9170238499712ab47c7f994f350421955e6e85af4ba1695992825f491ed201bcc8c9942df3f9aa9c2eb65ab0b50d8156e932239db1ff59ee57117f
|
7
|
+
data.tar.gz: 836882fa7b8e372b62d3399004bd97993cedd74fd7fe8da423ee95b1493de28053beed1ea9405b4382c537ad6950c079ebd974b048f3130ecd8e1453d2fd23b0
|
data/Gemfile.lock
CHANGED
data/lib/cns/apice.rb
CHANGED
@@ -38,53 +38,6 @@ module Cns
|
|
38
38
|
{}
|
39
39
|
end
|
40
40
|
|
41
|
-
# @example account_fr
|
42
|
-
# {
|
43
|
-
# name: '...',
|
44
|
-
# email: '...',
|
45
|
-
# locale: 'en',
|
46
|
-
# channel_id: '...',
|
47
|
-
# meta_state: 'approved',
|
48
|
-
# balance_eur: '0.0',
|
49
|
-
# locked_eur: '0.0',
|
50
|
-
# balance_btc: '0.0',
|
51
|
-
# locked_btc: '0.0',
|
52
|
-
# balance_lbtc: '0.0',
|
53
|
-
# locked_lbtc: '0.0'
|
54
|
-
# }
|
55
|
-
# @param (see account_de)
|
56
|
-
# @return [Hash] saldos no paymium
|
57
|
-
def account_fr(uri = 'https://paymium.com/api/v1/user')
|
58
|
-
JSON.parse(
|
59
|
-
Curl.get(uri) { |obj| obj.headers = hfr(uri) }.body,
|
60
|
-
symbolize_names: true
|
61
|
-
)
|
62
|
-
rescue StandardError
|
63
|
-
{}
|
64
|
-
end
|
65
|
-
|
66
|
-
# @example account_mt
|
67
|
-
# {
|
68
|
-
# balances: [
|
69
|
-
# { currency: 'BTC', balance: 0.0, trading_balance: 0.0 },
|
70
|
-
# { currency: 'ETH', balance: 0.0, trading_balance: 0.0 },
|
71
|
-
# { currency: 'EUR', balance: 0.0, trading_balance: 0.0 },
|
72
|
-
# { currency: 'DAI', balance: 0.0, trading_balance: 0.0 },
|
73
|
-
# ]
|
74
|
-
# }
|
75
|
-
# @param (see account_de)
|
76
|
-
# @return [Array<Hash>] lista saldos no therock
|
77
|
-
def account_mt(uri = 'https://api.therocktrading.com/v1/balances')
|
78
|
-
JSON.parse(
|
79
|
-
Curl.get(uri) { |obj| obj.headers = hmt(uri) }.body,
|
80
|
-
symbolize_names: true
|
81
|
-
)[:balances]
|
82
|
-
.delete_if { |del| DC.include?(del[:currency]) }
|
83
|
-
.sort { |oba, obb| oba[:currency] <=> obb[:currency] }
|
84
|
-
rescue StandardError
|
85
|
-
[]
|
86
|
-
end
|
87
|
-
|
88
41
|
# @example account_us
|
89
42
|
# {
|
90
43
|
# error: [],
|
@@ -269,82 +222,6 @@ module Cns
|
|
269
222
|
}.merge(tp: 'withdrawal', moe: 'btc')
|
270
223
|
end
|
271
224
|
|
272
|
-
# @example ledger_fr
|
273
|
-
# [
|
274
|
-
# {
|
275
|
-
# uuid: '50551e61-4e74-4ae7-85fd-9c2040542818',
|
276
|
-
# currency_amount: nil,
|
277
|
-
# state: 'executed',
|
278
|
-
# btc_fee: '0.0',
|
279
|
-
# currency_fee: '0.0',
|
280
|
-
# created_at: '2014-03-04T09:00Z',
|
281
|
-
# updated_at: '2014-03-04T09:00Z',
|
282
|
-
# currency: 'EUR',
|
283
|
-
# comment: '5723',
|
284
|
-
# amount: '100.0',
|
285
|
-
# type: 'WireDeposit',
|
286
|
-
# account_operations: [{
|
287
|
-
# uuid: 'b5058a68-cf99-4438-86d3-e773eba418ec',
|
288
|
-
# name: 'wire_deposit',
|
289
|
-
# amount: '100.0',
|
290
|
-
# currency: 'EUR',
|
291
|
-
# created_at: '2014-03-04T09:00Z',
|
292
|
-
# created_at_int: 1_393_923_644,
|
293
|
-
# is_trading_account: false
|
294
|
-
# }, {}]
|
295
|
-
# },
|
296
|
-
# {}
|
297
|
-
# ]
|
298
|
-
# @param (see trades_de)
|
299
|
-
# @return [Array<Hash>] lista ledger paymium
|
300
|
-
def ledger_fr(pag = 0, ary = [], uri = 'https://paymium.com/api/v1/user/orders')
|
301
|
-
res = JSON.parse(
|
302
|
-
Curl.get(uri, offset: pag) { |obj| obj.headers = hfr("#{uri}?#{URI.encode_www_form(offset: pag)}") }.body,
|
303
|
-
symbolize_names: true
|
304
|
-
)
|
305
|
-
res.empty? ? ary : ledger_fr(pag + res.size, ary + res)
|
306
|
-
rescue StandardError
|
307
|
-
ary
|
308
|
-
end
|
309
|
-
|
310
|
-
# @example ledger_mt
|
311
|
-
# {
|
312
|
-
# transactions: [
|
313
|
-
# {
|
314
|
-
# id: 305_445,
|
315
|
-
# date: '2014-03-06T10:59:13.000Z',
|
316
|
-
# type: 'withdraw',
|
317
|
-
# price: 97.47,
|
318
|
-
# currency: 'EUR',
|
319
|
-
# fund_id: nil,
|
320
|
-
# order_id: nil,
|
321
|
-
# trade_id: nil,
|
322
|
-
# note: 'BOV withdraw',
|
323
|
-
# transfer_detail: nil
|
324
|
-
# },
|
325
|
-
# {}
|
326
|
-
# ],
|
327
|
-
# meta: {
|
328
|
-
# total_count: nil,
|
329
|
-
# first: { page: 1, href: 'https://api.therocktrading.com/v1/transactions?page=1' },
|
330
|
-
# previous: nil,
|
331
|
-
# current: { page: 1, href: 'https://api.therocktrading.com/v1/transactions?page=1' },
|
332
|
-
# next: { page: 2, href: 'https://api.therocktrading.com/v1/transactions?page=2' },
|
333
|
-
# last: nil
|
334
|
-
# }
|
335
|
-
# }
|
336
|
-
# @param (see trades_de)
|
337
|
-
# @return [Array<Hash>] lista ledger therock
|
338
|
-
def ledger_mt(pag = 1, ary = [], uri = 'https://api.therocktrading.com/v1/transactions')
|
339
|
-
res = JSON.parse(
|
340
|
-
Curl.get(uri, page: pag) { |obj| obj.headers = hmt("#{uri}?#{URI.encode_www_form(page: pag)}") }.body,
|
341
|
-
symbolize_names: true
|
342
|
-
)[:transactions]
|
343
|
-
res.empty? ? ary : ledger_mt(pag + res.size, ary + res)
|
344
|
-
rescue StandardError
|
345
|
-
ary
|
346
|
-
end
|
347
|
-
|
348
225
|
# @example trades_us
|
349
226
|
# {
|
350
227
|
# error: [],
|
@@ -423,6 +300,129 @@ module Cns
|
|
423
300
|
has
|
424
301
|
end
|
425
302
|
|
303
|
+
# @example account_fr
|
304
|
+
# {
|
305
|
+
# name: '...',
|
306
|
+
# email: '...',
|
307
|
+
# locale: 'en',
|
308
|
+
# channel_id: '...',
|
309
|
+
# meta_state: 'approved',
|
310
|
+
# balance_eur: '0.0',
|
311
|
+
# locked_eur: '0.0',
|
312
|
+
# balance_btc: '0.0',
|
313
|
+
# locked_btc: '0.0',
|
314
|
+
# balance_lbtc: '0.0',
|
315
|
+
# locked_lbtc: '0.0'
|
316
|
+
# }
|
317
|
+
# @param (see account_de)
|
318
|
+
# @return [Hash] saldos no paymium
|
319
|
+
# def account_fr(uri = 'https://paymium.com/api/v1/user')
|
320
|
+
# JSON.parse(
|
321
|
+
# Curl.get(uri) { |obj| obj.headers = hfr(uri) }.body,
|
322
|
+
# symbolize_names: true
|
323
|
+
# )
|
324
|
+
# rescue StandardError
|
325
|
+
# {}
|
326
|
+
# end
|
327
|
+
#
|
328
|
+
# @example account_mt
|
329
|
+
# {
|
330
|
+
# balances: [
|
331
|
+
# { currency: 'BTC', balance: 0.0, trading_balance: 0.0 },
|
332
|
+
# { currency: 'ETH', balance: 0.0, trading_balance: 0.0 },
|
333
|
+
# { currency: 'EUR', balance: 0.0, trading_balance: 0.0 },
|
334
|
+
# { currency: 'DAI', balance: 0.0, trading_balance: 0.0 },
|
335
|
+
# ]
|
336
|
+
# }
|
337
|
+
# @param (see account_de)
|
338
|
+
# @return [Array<Hash>] lista saldos no therock
|
339
|
+
# def account_mt(uri = 'https://api.therocktrading.com/v1/balances')
|
340
|
+
# JSON.parse(
|
341
|
+
# Curl.get(uri) { |obj| obj.headers = hmt(uri) }.body,
|
342
|
+
# symbolize_names: true
|
343
|
+
# )[:balances]
|
344
|
+
# .delete_if { |del| DC.include?(del[:currency]) }
|
345
|
+
# .sort { |oba, obb| oba[:currency] <=> obb[:currency] }
|
346
|
+
# rescue StandardError
|
347
|
+
# []
|
348
|
+
# end
|
349
|
+
#
|
350
|
+
# @example ledger_fr
|
351
|
+
# [
|
352
|
+
# {
|
353
|
+
# uuid: '50551e61-4e74-4ae7-85fd-9c2040542818',
|
354
|
+
# currency_amount: nil,
|
355
|
+
# state: 'executed',
|
356
|
+
# btc_fee: '0.0',
|
357
|
+
# currency_fee: '0.0',
|
358
|
+
# created_at: '2014-03-04T09:00Z',
|
359
|
+
# updated_at: '2014-03-04T09:00Z',
|
360
|
+
# currency: 'EUR',
|
361
|
+
# comment: '5723',
|
362
|
+
# amount: '100.0',
|
363
|
+
# type: 'WireDeposit',
|
364
|
+
# account_operations: [{
|
365
|
+
# uuid: 'b5058a68-cf99-4438-86d3-e773eba418ec',
|
366
|
+
# name: 'wire_deposit',
|
367
|
+
# amount: '100.0',
|
368
|
+
# currency: 'EUR',
|
369
|
+
# created_at: '2014-03-04T09:00Z',
|
370
|
+
# created_at_int: 1_393_923_644,
|
371
|
+
# is_trading_account: false
|
372
|
+
# }, {}]
|
373
|
+
# },
|
374
|
+
# {}
|
375
|
+
# ]
|
376
|
+
# @param (see trades_de)
|
377
|
+
# @return [Array<Hash>] lista ledger paymium
|
378
|
+
# def ledger_fr(pag = 0, ary = [], uri = 'https://paymium.com/api/v1/user/orders')
|
379
|
+
# res = JSON.parse(
|
380
|
+
# Curl.get(uri, offset: pag) { |obj| obj.headers = hfr("#{uri}?#{URI.encode_www_form(offset: pag)}") }.body,
|
381
|
+
# symbolize_names: true
|
382
|
+
# )
|
383
|
+
# res.empty? ? ary : ledger_fr(pag + res.size, ary + res)
|
384
|
+
# rescue StandardError
|
385
|
+
# ary
|
386
|
+
# end
|
387
|
+
#
|
388
|
+
# @example ledger_mt
|
389
|
+
# {
|
390
|
+
# transactions: [
|
391
|
+
# {
|
392
|
+
# id: 305_445,
|
393
|
+
# date: '2014-03-06T10:59:13.000Z',
|
394
|
+
# type: 'withdraw',
|
395
|
+
# price: 97.47,
|
396
|
+
# currency: 'EUR',
|
397
|
+
# fund_id: nil,
|
398
|
+
# order_id: nil,
|
399
|
+
# trade_id: nil,
|
400
|
+
# note: 'BOV withdraw',
|
401
|
+
# transfer_detail: nil
|
402
|
+
# },
|
403
|
+
# {}
|
404
|
+
# ],
|
405
|
+
# meta: {
|
406
|
+
# total_count: nil,
|
407
|
+
# first: { page: 1, href: 'https://api.therocktrading.com/v1/transactions?page=1' },
|
408
|
+
# previous: nil,
|
409
|
+
# current: { page: 1, href: 'https://api.therocktrading.com/v1/transactions?page=1' },
|
410
|
+
# next: { page: 2, href: 'https://api.therocktrading.com/v1/transactions?page=2' },
|
411
|
+
# last: nil
|
412
|
+
# }
|
413
|
+
# }
|
414
|
+
# @param (see trades_de)
|
415
|
+
# @return [Array<Hash>] lista ledger therock
|
416
|
+
# def ledger_mt(pag = 1, ary = [], uri = 'https://api.therocktrading.com/v1/transactions')
|
417
|
+
# res = JSON.parse(
|
418
|
+
# Curl.get(uri, page: pag) { |obj| obj.headers = hmt("#{uri}?#{URI.encode_www_form(page: pag)}") }.body,
|
419
|
+
# symbolize_names: true
|
420
|
+
# )[:transactions]
|
421
|
+
# res.empty? ? ary : ledger_mt(pag + res.size, ary + res)
|
422
|
+
# rescue StandardError
|
423
|
+
# ary
|
424
|
+
# end
|
425
|
+
|
426
426
|
private
|
427
427
|
|
428
428
|
# @return [Integer] continually-increasing unsigned integer nonce from the current Unix Time
|
@@ -449,26 +449,26 @@ module Cns
|
|
449
449
|
# @param [String] qfr query a incluir no pedido HTTP
|
450
450
|
# @param non (see hde)
|
451
451
|
# @return [Hash] headers necessarios para pedido HTTP da exchange paymium
|
452
|
-
def hfr(qfr, non = nnc)
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
end
|
460
|
-
|
452
|
+
# def hfr(qfr, non = nnc)
|
453
|
+
# {
|
454
|
+
# content_type: 'application/json',
|
455
|
+
# 'Api-Key': ENV['PAYMIUM_API_KEY'],
|
456
|
+
# 'Api-Nonce': non,
|
457
|
+
# 'Api-Signature': OpenSSL::HMAC.hexdigest('sha256', ENV['PAYMIUM_API_SECRET'], [non, qfr].join)
|
458
|
+
# }
|
459
|
+
# end
|
460
|
+
#
|
461
461
|
# @param [String] qmt query a incluir no pedido HTTP
|
462
462
|
# @param non (see hde)
|
463
463
|
# @return [Hash] headers necessarios para pedido HTTP da exchange therock
|
464
|
-
def hmt(qmt, non = nnc)
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
end
|
464
|
+
# def hmt(qmt, non = nnc)
|
465
|
+
# {
|
466
|
+
# content_type: 'application/json',
|
467
|
+
# 'X-TRT-KEY': ENV['THEROCK_API_KEY'],
|
468
|
+
# 'X-TRT-NONCE': non,
|
469
|
+
# 'X-TRT-SIGN': OpenSSL::HMAC.hexdigest('sha512', ENV['THEROCK_API_SECRET'], [non, qmt].join)
|
470
|
+
# }
|
471
|
+
# end
|
472
472
|
|
473
473
|
# @param [String] qus query a incluir no pedido HTTP
|
474
474
|
# @param [Hash] ops opcoes trabalho
|
data/lib/cns/bigquery.rb
CHANGED
@@ -35,8 +35,6 @@ module Cns
|
|
35
35
|
def mostra_tudo
|
36
36
|
apius.mostra_resumo
|
37
37
|
apide.mostra_resumo
|
38
|
-
#apifr.mostra_resumo
|
39
|
-
#apimt.mostra_resumo
|
40
38
|
apies.mostra_resumo
|
41
39
|
apigm.mostra_resumo
|
42
40
|
end
|
@@ -44,7 +42,7 @@ module Cns
|
|
44
42
|
# mostra situacao completa entre kraken/etherscan & bigquery
|
45
43
|
def mostra_skrk
|
46
44
|
apius.mostra_resumo
|
47
|
-
apies.
|
45
|
+
apies.mostra_resumo
|
48
46
|
end
|
49
47
|
|
50
48
|
# mostra situacao completa entre etherscan & bigquery
|
@@ -83,29 +81,29 @@ module Cns
|
|
83
81
|
|
84
82
|
private
|
85
83
|
|
86
|
-
# insere transacoes blockchain novas nas tabelas
|
84
|
+
# insere transacoes blockchain novas nas tabelas netht (norml), nethi (internas), nethp (block), nethw (withdrawals), nethk (token)
|
87
85
|
#
|
88
86
|
# @return [String] linhas & tabelas afetadas
|
89
87
|
def processa_eth
|
90
88
|
str = "ETH"
|
91
|
-
str += format(" %<n>i
|
92
|
-
str += format(" %<n>i
|
93
|
-
str += format(" %<n>i
|
94
|
-
str += format(" %<n>i
|
95
|
-
str += format(" %<n>i
|
89
|
+
str += format(" %<n>i netht", n: dml(netht_ins)) if apies.novtx.count > 0
|
90
|
+
str += format(" %<n>i nethi", n: dml(nethi_ins)) if apies.novix.count > 0
|
91
|
+
str += format(" %<n>i nethp", n: dml(nethp_ins)) if apies.novpx.count > 0
|
92
|
+
str += format(" %<n>i nethw", n: dml(nethw_ins)) if apies.novwx.count > 0
|
93
|
+
str += format(" %<n>i nethk", n: dml(nethk_ins)) if apies.novkx.count > 0
|
96
94
|
str
|
97
95
|
end
|
98
96
|
|
99
|
-
# insere transacoes blockchain novas nas tabelas
|
97
|
+
# insere transacoes blockchain novas nas tabelas netht (norml), nethi (internas), nethp (block), nethw (withdrawals), nethk (token)
|
100
98
|
#
|
101
99
|
# @return [String] linhas & tabelas afetadas
|
102
100
|
def processa_ethc
|
103
101
|
str = "ETH"
|
104
|
-
str += format(" %<n>i
|
105
|
-
str += format(" %<n>i
|
106
|
-
str += format(" %<n>i
|
107
|
-
str += format(" %<n>i
|
108
|
-
str += format(" %<n>i
|
102
|
+
str += format(" %<n>i netht", n: dml(netbt_ins)) if apiesc.novtx.count > 0
|
103
|
+
str += format(" %<n>i nethi", n: dml(netbi_ins)) if apiesc.novix.count > 0
|
104
|
+
str += format(" %<n>i nethp", n: dml(netbp_ins)) if apiesc.novpx.count > 0
|
105
|
+
str += format(" %<n>i nethw", n: dml(netbw_ins)) if apiesc.novwx.count > 0
|
106
|
+
str += format(" %<n>i nethk", n: dml(netbk_ins)) if apiesc.novkx.count > 0
|
109
107
|
str
|
110
108
|
end
|
111
109
|
|
@@ -167,22 +165,16 @@ module Cns
|
|
167
165
|
job?(cmd) ? 0 : job.num_dml_affected_rows
|
168
166
|
end
|
169
167
|
|
170
|
-
# @return [String] comando insert SQL formatado fr (ledger)
|
171
|
-
def mtl_ins
|
172
|
-
"insert #{BD}.mt(id,time,type,valor,moe,pair,note,trade_id,dias) " \
|
173
|
-
"VALUES#{apimt.ledger.map { |obj| mtl_1val(obj) }.join(',')}"
|
174
|
-
end
|
175
|
-
|
176
168
|
# @return [Etherscan] API blockchain ETH
|
177
169
|
def apies
|
178
170
|
@apies ||= Etherscan.new(
|
179
171
|
{
|
180
|
-
wb: sql("select * from #{BD}.
|
181
|
-
|
182
|
-
|
183
|
-
np: sql("select * from #{BD}.
|
184
|
-
|
185
|
-
|
172
|
+
wb: sql("select * from #{BD}.weth order by 2"),
|
173
|
+
ni: sql("select * from #{BD}.netai"),
|
174
|
+
nk: sql("select * from #{BD}.netak"),
|
175
|
+
np: sql("select * from #{BD}.netap"),
|
176
|
+
nt: sql("select * from #{BD}.netat"),
|
177
|
+
nw: sql("select * from #{BD}.netaw")
|
186
178
|
},
|
187
179
|
ops
|
188
180
|
)
|
@@ -192,12 +184,12 @@ module Cns
|
|
192
184
|
def apiesc
|
193
185
|
@apies ||= Etherscan.new(
|
194
186
|
{
|
195
|
-
wb: sql("select * from #{BD}.
|
196
|
-
|
197
|
-
|
198
|
-
np: sql("select * from #{BD}.
|
199
|
-
|
200
|
-
|
187
|
+
wb: sql("select * from #{BD}.wetc order by 2"),
|
188
|
+
ni: sql("select * from #{BD}.netbi"),
|
189
|
+
nk: sql("select * from #{BD}.netbk"),
|
190
|
+
np: sql("select * from #{BD}.netbp"),
|
191
|
+
nt: sql("select * from #{BD}.netbt"),
|
192
|
+
nw: sql("select * from #{BD}.netbw")
|
201
193
|
},
|
202
194
|
ops
|
203
195
|
)
|
@@ -207,8 +199,8 @@ module Cns
|
|
207
199
|
def apigm
|
208
200
|
@apigm ||= Greymass.new(
|
209
201
|
{
|
210
|
-
wb: sql("select * from #{BD}.
|
211
|
-
nt: sql("select * from #{BD}.
|
202
|
+
wb: sql("select * from #{BD}.weos order by 2"),
|
203
|
+
nt: sql("select * from #{BD}.neosx")
|
212
204
|
},
|
213
205
|
ops
|
214
206
|
)
|
@@ -218,9 +210,9 @@ module Cns
|
|
218
210
|
def apius
|
219
211
|
@apius ||= Kraken.new(
|
220
212
|
{
|
221
|
-
sl: sql("select
|
222
|
-
nt: sql("select * from #{BD}.
|
223
|
-
nl: sql("select * from #{BD}.
|
213
|
+
sl: sql("select * from #{BD}.cuss")[0],
|
214
|
+
nt: sql("select * from #{BD}.cust order by time,txid"),
|
215
|
+
nl: sql("select * from #{BD}.cusl order by time,txid")
|
224
216
|
},
|
225
217
|
ops
|
226
218
|
)
|
@@ -230,139 +222,124 @@ module Cns
|
|
230
222
|
def apide
|
231
223
|
@apide ||= Bitcoinde.new(
|
232
224
|
{
|
233
|
-
sl: sql("select
|
234
|
-
nt: sql("select * from #{BD}.
|
235
|
-
nl: sql("select * from #{BD}.
|
225
|
+
sl: sql("select * from #{BD}.cdes")[0],
|
226
|
+
nt: sql("select * from #{BD}.cdet order by time,txid"),
|
227
|
+
nl: sql("select * from #{BD}.cdel order by time,txid")
|
236
228
|
},
|
237
229
|
ops
|
238
230
|
)
|
239
231
|
end
|
240
232
|
|
241
|
-
# @return [
|
242
|
-
def
|
243
|
-
|
244
|
-
|
245
|
-
sl: sql("select sum(btc) btc,sum(eur) eur from #{BD}.frsl")[0],
|
246
|
-
nl: sql("select * from #{BD}.frlx order by time,txid")
|
247
|
-
},
|
248
|
-
ops
|
249
|
-
)
|
233
|
+
# @return [String] comando insert SQL formatado netht (norml)
|
234
|
+
def bnetht_ins
|
235
|
+
"insert #{BD}.netht(blocknumber,timestamp,txhash,nonce,blockhash,transactionindex,axfrom,axto,iax," \
|
236
|
+
'value,gas,gasprice,gasused,iserror,txreceipt_status,input,contractaddress,dias) VALUES'
|
250
237
|
end
|
251
238
|
|
252
|
-
# @return [
|
253
|
-
def
|
254
|
-
|
255
|
-
|
256
|
-
sl: sql("select sum(btc) btc,sum(eur) eur from #{BD}.mtsl")[0],
|
257
|
-
nl: sql("select * from #{BD}.mtlx order by time,txid")
|
258
|
-
},
|
259
|
-
ops
|
260
|
-
)
|
239
|
+
# @return [String] comando insert SQL formatado nethi (internas)
|
240
|
+
def bnethi_ins
|
241
|
+
"insert #{BD}.nethi(blocknumber,timestamp,txhash,axfrom,axto,iax," \
|
242
|
+
'value,contractaddress,input,type,gas,gasused,traceid,iserror,errcode) VALUES'
|
261
243
|
end
|
262
244
|
|
263
|
-
# @return [String] comando insert SQL formatado
|
264
|
-
def
|
265
|
-
"insert #{BD}.
|
266
|
-
'value,gas,gasprice,gasused,iserror,txreceipt_status,input,contractaddress,dias' \
|
267
|
-
") VALUES#{apies.novtx.map { |obj| etht_1val(obj) }.join(',')}"
|
245
|
+
# @return [String] comando insert SQL formatado nethp (block)
|
246
|
+
def bnethp_ins
|
247
|
+
"insert #{BD}.nethp(blocknumber,timestamp,blockreward,iax) VALUES"
|
268
248
|
end
|
269
249
|
|
270
|
-
# @return [String] comando insert SQL formatado
|
271
|
-
def
|
272
|
-
"insert #{BD}.
|
273
|
-
'value,contractaddress,input,type,gas,gasused,traceid,iserror,errcode' \
|
274
|
-
") VALUES#{apies.novix.map { |obj| ethi_1val(obj) }.join(',')}"
|
250
|
+
# @return [String] comando insert SQL formatado nethw (withdrawals)
|
251
|
+
def bnethw_ins
|
252
|
+
"insert #{BD}.nethw(withdrawalindex,validatorindex,address,amount,blocknumber,timestamp) VALUES"
|
275
253
|
end
|
276
254
|
|
277
|
-
# @return [String] comando insert SQL formatado
|
278
|
-
def
|
279
|
-
"insert #{BD}.
|
280
|
-
|
255
|
+
# @return [String] comando insert SQL formatado nethk (token)
|
256
|
+
def bnethk_ins
|
257
|
+
"insert #{BD}.nethk(blocknumber,timestamp,txhash,nonce,blockhash,transactionindex,axfrom,axto,iax," \
|
258
|
+
'value,tokenname,tokensymbol,tokendecimal,gas,gasprice,gasused,input,contractaddress,dias) VALUES'
|
281
259
|
end
|
282
260
|
|
283
|
-
# @return [String] comando insert SQL formatado
|
284
|
-
def
|
285
|
-
"
|
286
|
-
") VALUES#{apies.novwx.map { |obj| ethw_1val(obj) }.join(',')}"
|
261
|
+
# @return [String] comando insert SQL formatado netht (norml)
|
262
|
+
def netht_ins
|
263
|
+
"#{bnetht_ins}#{apies.novtx.map { |obj| netht_1val(obj) }.join(',')}"
|
287
264
|
end
|
288
265
|
|
289
|
-
# @return [String] comando insert SQL formatado
|
290
|
-
def
|
291
|
-
"
|
292
|
-
'value,tokenname,tokensymbol,tokendecimal,gas,gasprice,gasused,input,contractaddress,dias' \
|
293
|
-
") VALUES#{apies.novkx.map { |obj| ethk_1val(obj) }.join(',')}"
|
266
|
+
# @return [String] comando insert SQL formatado nethi (internas)
|
267
|
+
def nethi_ins
|
268
|
+
"#{bnethi_ins}#{apies.novix.map { |obj| nethi_1val(obj) }.join(',')}"
|
294
269
|
end
|
295
270
|
|
296
|
-
# @return [String] comando insert SQL formatado
|
297
|
-
def
|
298
|
-
"
|
299
|
-
'value,gas,gasprice,gasused,iserror,txreceipt_status,input,contractaddress,dias' \
|
300
|
-
") VALUES#{apiesc.novtx.map { |obj| etht_1val(obj) }.join(',')}"
|
271
|
+
# @return [String] comando insert SQL formatado nethp (block)
|
272
|
+
def nethp_ins
|
273
|
+
"#{bnethp_ins}#{apies.novpx.map { |obj| nethp_1val(obj) }.join(',')}"
|
301
274
|
end
|
302
275
|
|
303
|
-
# @return [String] comando insert SQL formatado
|
304
|
-
def
|
305
|
-
"
|
306
|
-
'value,contractaddress,input,type,gas,gasused,traceid,iserror,errcode' \
|
307
|
-
") VALUES#{apiesc.novix.map { |obj| ethi_1val(obj) }.join(',')}"
|
276
|
+
# @return [String] comando insert SQL formatado nethw (withdrawals)
|
277
|
+
def nethw_ins
|
278
|
+
"#{bnethw_ins}#{apies.novwx.map { |obj| nethw_1val(obj) }.join(',')}"
|
308
279
|
end
|
309
280
|
|
310
|
-
# @return [String] comando insert SQL formatado
|
311
|
-
def
|
312
|
-
"
|
313
|
-
") VALUES#{apiesc.novpx.map { |obj| ethp_1val(obj) }.join(',')}"
|
281
|
+
# @return [String] comando insert SQL formatado nethk (token)
|
282
|
+
def nethk_ins
|
283
|
+
"#{bnethk_ins}#{apies.novkx.map { |obj| nethk_1val(obj) }.join(',')}"
|
314
284
|
end
|
315
285
|
|
316
|
-
# @return [String] comando insert SQL formatado
|
317
|
-
def
|
318
|
-
"
|
319
|
-
") VALUES#{apiesc.novwx.map { |obj| ethw_1val(obj) }.join(',')}"
|
286
|
+
# @return [String] comando insert SQL formatado netht (norml)
|
287
|
+
def netbt_ins
|
288
|
+
"#{bnetht_ins}#{apiesc.novtx.map { |obj| netht_1val(obj) }.join(',')}"
|
320
289
|
end
|
321
290
|
|
322
|
-
# @return [String] comando insert SQL formatado
|
323
|
-
def
|
324
|
-
"
|
325
|
-
|
326
|
-
|
291
|
+
# @return [String] comando insert SQL formatado nethi (internas)
|
292
|
+
def netbi_ins
|
293
|
+
"#{bnethi_ins}#{apiesc.novix.map { |obj| nethi_1val(obj) }.join(',')}"
|
294
|
+
end
|
295
|
+
|
296
|
+
# @return [String] comando insert SQL formatado nethp (block)
|
297
|
+
def netbp_ins
|
298
|
+
"#{bnethp_ins}#{apiesc.novpx.map { |obj| nethp_1val(obj) }.join(',')}"
|
299
|
+
end
|
300
|
+
|
301
|
+
# @return [String] comando insert SQL formatado nethw (withdrawals)
|
302
|
+
def netbw_ins
|
303
|
+
"#{bnethw_ins}#{apiesc.novwx.map { |obj| nethw_1val(obj) }.join(',')}"
|
304
|
+
end
|
305
|
+
|
306
|
+
# @return [String] comando insert SQL formatado nethk (token)
|
307
|
+
def netbk_ins
|
308
|
+
"#{bnethk_ins}#{apiesc.novkx.map { |obj| nethk_1val(obj) }.join(',')}"
|
327
309
|
end
|
328
310
|
|
329
311
|
# @return [String] comando insert SQL formatado eos
|
330
312
|
def eost_ins
|
331
|
-
"insert #{BD}.
|
313
|
+
"insert #{BD}.neost(gseq,aseq,bnum,time,contract,action,acfrom,acto,iax,amount,moeda,memo,dias" \
|
332
314
|
") VALUES#{apigm.novax.map { |obj| eost_1val(obj) }.join(',')}"
|
333
315
|
end
|
334
316
|
|
335
317
|
# @return [String] comando insert SQL formatado det (trades)
|
336
318
|
def det_ins
|
337
|
-
"insert #{BD}.
|
319
|
+
"insert #{BD}.cdet(txid,time,tp,user,btc,eur,dtc,dias) VALUES#{apide.trades.map { |obj| det_1val(obj) }.join(',')}"
|
338
320
|
end
|
339
321
|
|
340
322
|
# @return [String] comando insert SQL formatado del (ledger)
|
341
323
|
def del_ins
|
342
|
-
"insert #{BD}.
|
324
|
+
"insert #{BD}.cdel(txid,time,tp,add,moe,qt,fee) VALUES#{apide.ledger.map { |obj| del_val(obj) }.join(',')}"
|
343
325
|
end
|
344
326
|
|
345
327
|
# @return [String] comando insert SQL formatado ust (trades)
|
346
328
|
def ust_ins
|
347
|
-
"insert #{BD}.
|
329
|
+
"insert #{BD}.cust(txid,ordertxid,pair,time,type,ordertype,price,cost,fee,vol,margin,misc,ledgers,dias) " \
|
348
330
|
"VALUES#{apius.trades.map { |key, val| ust_1val(key, val) }.join(',')}"
|
349
331
|
end
|
350
332
|
|
351
333
|
# @return [String] comando insert SQL formatado usl (ledger)
|
352
334
|
def usl_ins
|
353
|
-
"insert #{BD}.
|
335
|
+
"insert #{BD}.cusl(txid,refid,time,type,aclass,asset,amount,fee) " \
|
354
336
|
"VALUES#{apius.ledger.map { |key, val| usl_val(key, val) }.join(',')}"
|
355
337
|
end
|
356
338
|
|
357
|
-
# @return [String] comando insert SQL formatado fr (ledger)
|
358
|
-
def frl_ins
|
359
|
-
"insert #{BD}.fr(uuid,tipo,valor,moe,time,dias) VALUES#{apifr.ledger.map { |obj| frl_val(obj) }.join(',')}"
|
360
|
-
end
|
361
|
-
|
362
339
|
# @example (see Apibc#norml_es)
|
363
340
|
# @param [Hash] htx transacao norml etherscan
|
364
|
-
# @return [String] valores formatados
|
365
|
-
def
|
341
|
+
# @return [String] valores formatados netht (norml parte1)
|
342
|
+
def netht_1val(htx)
|
366
343
|
"(#{Integer(htx[:blockNumber])}," \
|
367
344
|
"#{Integer(htx[:timeStamp])}," \
|
368
345
|
"'#{htx[:hash]}'," \
|
@@ -372,12 +349,12 @@ module Cns
|
|
372
349
|
"'#{htx[:from]}'," \
|
373
350
|
"'#{htx[:to]}'," \
|
374
351
|
"'#{htx[:iax]}'," \
|
375
|
-
"#{
|
352
|
+
"#{netht_2val(htx)}"
|
376
353
|
end
|
377
354
|
|
378
|
-
# @param (see
|
379
|
-
# @return [String] valores formatados
|
380
|
-
def
|
355
|
+
# @param (see netht_1val)
|
356
|
+
# @return [String] valores formatados netht (norml parte2)
|
357
|
+
def netht_2val(htx)
|
381
358
|
txr = htx[:txreceipt_status]
|
382
359
|
"cast('#{htx[:value]}' as numeric)," \
|
383
360
|
"cast('#{htx[:gas]}' as numeric)," \
|
@@ -385,12 +362,12 @@ module Cns
|
|
385
362
|
"cast('#{htx[:gasUsed]}' as numeric)," \
|
386
363
|
"#{Integer(htx[:isError])}," \
|
387
364
|
"#{txr.length.zero? ? 'null' : txr}," \
|
388
|
-
"#{
|
365
|
+
"#{netht_3val(htx)}"
|
389
366
|
end
|
390
367
|
|
391
|
-
# @param (see
|
392
|
-
# @return [String] valores formatados
|
393
|
-
def
|
368
|
+
# @param (see netht_1val)
|
369
|
+
# @return [String] valores formatados netht (norml parte3)
|
370
|
+
def netht_3val(htx)
|
394
371
|
cta = htx[:contractAddress]
|
395
372
|
inp = htx[:input]
|
396
373
|
"#{inp.length.zero? ? 'null' : "'#{inp}'"}," \
|
@@ -400,8 +377,8 @@ module Cns
|
|
400
377
|
|
401
378
|
# @example (see Apibc#inter_es)
|
402
379
|
# @param [Hash] htx transacao internas etherscan
|
403
|
-
# @return [String] valores formatados
|
404
|
-
def
|
380
|
+
# @return [String] valores formatados nethi (internas parte1)
|
381
|
+
def nethi_1val(htx)
|
405
382
|
cta = htx[:contractAddress]
|
406
383
|
"(#{Integer(htx[:blockNumber])}," \
|
407
384
|
"#{Integer(htx[:timeStamp])}," \
|
@@ -411,12 +388,12 @@ module Cns
|
|
411
388
|
"'#{htx[:iax]}'," \
|
412
389
|
"cast('#{htx[:value]}' as numeric)," \
|
413
390
|
"#{cta.length.zero? ? 'null' : "'#{cta}'"}," \
|
414
|
-
"#{
|
391
|
+
"#{nethi_2val(htx)}"
|
415
392
|
end
|
416
393
|
|
417
|
-
# @param (see
|
418
|
-
# @return [String] valores formatados
|
419
|
-
def
|
394
|
+
# @param (see nethi_1val)
|
395
|
+
# @return [String] valores formatados nethi (internas parte2)
|
396
|
+
def nethi_2val(htx)
|
420
397
|
inp = htx[:input]
|
421
398
|
tid = htx[:traceId]
|
422
399
|
txr = htx[:errCode]
|
@@ -431,8 +408,8 @@ module Cns
|
|
431
408
|
|
432
409
|
# @example (see Apibc#block_es)
|
433
410
|
# @param [Hash] htx transacao block etherscan
|
434
|
-
# @return [String] valores formatados
|
435
|
-
def
|
411
|
+
# @return [String] valores formatados nethi (block parte1)
|
412
|
+
def nethp_1val(htx)
|
436
413
|
"(#{Integer(htx[:blockNumber])}," \
|
437
414
|
"#{Integer(htx[:timeStamp])}," \
|
438
415
|
"cast('#{htx[:blockReward]}' as numeric)," \
|
@@ -441,8 +418,8 @@ module Cns
|
|
441
418
|
|
442
419
|
# @example (see Apibc#block_es)
|
443
420
|
# @param [Hash] htx transacao withdrawals etherscan
|
444
|
-
# @return [String] valores formatados
|
445
|
-
def
|
421
|
+
# @return [String] valores formatados nethi (withdrawals parte1)
|
422
|
+
def nethw_1val(htx)
|
446
423
|
"(#{Integer(htx[:withdrawalIndex])}," \
|
447
424
|
"#{Integer(htx[:validatorIndex])}," \
|
448
425
|
"'#{htx[:address]}'," \
|
@@ -453,8 +430,8 @@ module Cns
|
|
453
430
|
|
454
431
|
# @example (see Apibc#token_es)
|
455
432
|
# @param [Hash] hkx token event etherscan
|
456
|
-
# @return [String] valores formatados
|
457
|
-
def
|
433
|
+
# @return [String] valores formatados nethk (token parte1)
|
434
|
+
def nethk_1val(hkx)
|
458
435
|
"(#{Integer(hkx[:blockNumber])}," \
|
459
436
|
"#{Integer(hkx[:timeStamp])}," \
|
460
437
|
"'#{hkx[:hash]}'," \
|
@@ -464,12 +441,12 @@ module Cns
|
|
464
441
|
"'#{hkx[:from]}'," \
|
465
442
|
"'#{hkx[:to]}'," \
|
466
443
|
"'#{hkx[:iax]}'," \
|
467
|
-
"#{
|
444
|
+
"#{nethk_2val(hkx)}"
|
468
445
|
end
|
469
446
|
|
470
|
-
# @param (see
|
471
|
-
# @return [String] valores formatados
|
472
|
-
def
|
447
|
+
# @param (see nethk_1val)
|
448
|
+
# @return [String] valores formatados nethk (token parte2)
|
449
|
+
def nethk_2val(hkx)
|
473
450
|
"cast('#{hkx[:value]}' as numeric)," \
|
474
451
|
"'#{hkx[:tokenName]}'," \
|
475
452
|
"'#{hkx[:tokenSymbol]}'," \
|
@@ -477,12 +454,12 @@ module Cns
|
|
477
454
|
"cast('#{hkx[:gas]}' as numeric)," \
|
478
455
|
"cast('#{hkx[:gasPrice]}' as numeric)," \
|
479
456
|
"cast('#{hkx[:gasUsed]}' as numeric)," \
|
480
|
-
"#{
|
457
|
+
"#{nethk_3val(hkx)}"
|
481
458
|
end
|
482
459
|
|
483
|
-
# @param (see
|
484
|
-
# @return [String] valores formatados
|
485
|
-
def
|
460
|
+
# @param (see nethk_1val)
|
461
|
+
# @return [String] valores formatados nethk (token parte3)
|
462
|
+
def nethk_3val(hkx)
|
486
463
|
cta = hkx[:contractAddress]
|
487
464
|
inp = hkx[:input]
|
488
465
|
"#{inp.length.zero? ? 'null' : "'#{inp}'"}," \
|
@@ -600,43 +577,76 @@ module Cns
|
|
600
577
|
"cast(#{hlx[:fee]} as numeric))"
|
601
578
|
end
|
602
579
|
|
580
|
+
# @return [Paymium] API exchange paymium
|
581
|
+
# def apifr
|
582
|
+
# @apifr ||= Paymium.new(
|
583
|
+
# {
|
584
|
+
# sl: sql("select * from #{BD}.frsl")[0],
|
585
|
+
# nl: sql("select uuid txid,tipo,valor,moe,time,dias from #{BD}.fr order by time,1")
|
586
|
+
# },
|
587
|
+
# ops
|
588
|
+
# )
|
589
|
+
# end
|
590
|
+
#
|
591
|
+
# @return [TheRock] API exchange therock
|
592
|
+
# def apimt
|
593
|
+
# @apimt ||= TheRock.new(
|
594
|
+
# {
|
595
|
+
# sl: sql("select sum(btc) btc,sum(eur) eur from #{BD}.mtsl")[0],
|
596
|
+
# nl: sql("select id txid,time,type,valor,moe,pair,note,dias from #{BD}.mt order by time,1")
|
597
|
+
# },
|
598
|
+
# ops
|
599
|
+
# )
|
600
|
+
# end
|
601
|
+
#
|
602
|
+
# @return [String] comando insert SQL formatado fr (ledger)
|
603
|
+
# def frl_ins
|
604
|
+
# "insert #{BD}.fr(uuid,tipo,valor,moe,time,dias) VALUES#{apifr.ledger.map { |obj| frl_val(obj) }.join(',')}"
|
605
|
+
# end
|
606
|
+
#
|
607
|
+
# @return [String] comando insert SQL formatado fr (ledger)
|
608
|
+
# def mtl_ins
|
609
|
+
# "insert #{BD}.mt(id,time,type,valor,moe,pair,note,trade_id,dias) " \
|
610
|
+
# "VALUES#{apimt.ledger.map { |obj| mtl_1val(obj) }.join(',')}"
|
611
|
+
# end
|
612
|
+
#
|
603
613
|
# @example (see Apice#ledger_fr)
|
604
614
|
# @param [Hash] hlx ledger paymium
|
605
615
|
# @return [String] valores formatados frl (ledger)
|
606
|
-
def frl_val(hlx)
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
end
|
615
|
-
|
616
|
+
# def frl_val(hlx)
|
617
|
+
# uid = hlx[:uuid]
|
618
|
+
# "('#{uid}'," \
|
619
|
+
# "'#{hlx[:name]}'," \
|
620
|
+
# "cast(#{hlx[:amount]} as numeric)," \
|
621
|
+
# "'#{hlx[:currency]}'," \
|
622
|
+
# "PARSE_DATETIME('%s', '#{hlx[:created_at_int]}')," \
|
623
|
+
# "#{Integer(ops[:h][uid] || 0)})"
|
624
|
+
# end
|
625
|
+
#
|
616
626
|
# @example (see Apice#ledger_mt)
|
617
627
|
# @param [Hash] hlx ledger therock
|
618
628
|
# @return [String] valores formatados mtl (ledger parte1)
|
619
|
-
def mtl_1val(hlx)
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
end
|
629
|
-
|
629
|
+
# def mtl_1val(hlx)
|
630
|
+
# fid = hlx[:fund_id].to_s
|
631
|
+
# "(#{hlx[:id]}," \
|
632
|
+
# "DATETIME(TIMESTAMP('#{hlx[:date]}'))," \
|
633
|
+
# "'#{hlx[:type]}'," \
|
634
|
+
# "cast(#{hlx[:price]} as numeric)," \
|
635
|
+
# "'#{hlx[:currency]}'," \
|
636
|
+
# "#{fid.empty? ? 'null' : "'#{fid}'"}," \
|
637
|
+
# "#{mtl_2val(hlx)}"
|
638
|
+
# end
|
639
|
+
#
|
630
640
|
# @param (see mtl_1val)
|
631
641
|
# @return [String] valores formatados mtl (ledger parte2)
|
632
|
-
def mtl_2val(hlx)
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
end
|
639
|
-
|
642
|
+
# def mtl_2val(hlx)
|
643
|
+
# nte = hlx[:note].to_s
|
644
|
+
# tid = hlx[:trade_id].to_s
|
645
|
+
# "#{nte.empty? ? 'null' : "'#{nte}'"}," \
|
646
|
+
# "#{tid.empty? ? 'null' : tid.to_s}," \
|
647
|
+
# "#{Integer(ops[:h][String(hlx[:id])] || 0)})"
|
648
|
+
# end
|
649
|
+
#
|
640
650
|
# @example (see Beaconchain#formata_saldos)
|
641
651
|
# @param (see Beaconchain#formata_saldos)
|
642
652
|
# @return [String] valores formatados etht (norml parte1)
|
data/lib/cns/etherscan.rb
CHANGED
@@ -259,24 +259,6 @@ module Cns
|
|
259
259
|
)
|
260
260
|
end
|
261
261
|
|
262
|
-
# @param (see formata_carteira)
|
263
|
-
# @example set hjn
|
264
|
-
# {
|
265
|
-
# id: wbq[:id],
|
266
|
-
# ax: xbq = wbq[:ax],
|
267
|
-
# bs: wbq[:sl], INPORTANTE saldo bigquery
|
268
|
-
# bt: bqd[:nt].select { |ont| ont[:axfrom].casecmp?(xbq) },
|
269
|
-
# bi: bqd[:ni].select { |oni| oni[:iax].casecmp?(xbq) },
|
270
|
-
# bp: bqd[:np].select { |onp| onp[:iax].casecmp?(xbq) },
|
271
|
-
# bw: bqd[:nw].select { |onw| onw[:iax].casecmp?(xbq) },
|
272
|
-
# bk: bqd[:nk].select { |onk| onk[:iax].casecmp?(xbq) },
|
273
|
-
# es: hbc[:sl], INPORTANTE saldo etherscan
|
274
|
-
# et: hbc[:tx],
|
275
|
-
# ei: hbc[:ix],
|
276
|
-
# ep: hbc[:px],
|
277
|
-
# ew: hbc[:wx],
|
278
|
-
# ek: hbc[:kx]
|
279
|
-
# }
|
280
262
|
# @return [Boolean] carteira tem transacoes novas(sim=NOK, nao=OK)?
|
281
263
|
def ok?(hjn)
|
282
264
|
hjn[:es].round(4) == hjn[:bs].round(4) && hjn[:bi].count == hjn[:ei].count && hjn[:bp].count == hjn[:ep].count && hjn[:bw].count == hjn[:ew].count
|
data/lib/cns/version.rb
CHANGED
data/lib/cns.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cns
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hernâni Rodrigues Vaz
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-02-
|
11
|
+
date: 2025-02-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -209,8 +209,6 @@ files:
|
|
209
209
|
- lib/cns/etherscan.rb
|
210
210
|
- lib/cns/greymass.rb
|
211
211
|
- lib/cns/kraken.rb
|
212
|
-
- lib/cns/paymium.rb
|
213
|
-
- lib/cns/therock.rb
|
214
212
|
- lib/cns/version.rb
|
215
213
|
- ruby-lint.yml
|
216
214
|
homepage: https://github.com/hernanirvaz/cns
|
data/lib/cns/paymium.rb
DELETED
@@ -1,113 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require('bigdecimal/util')
|
4
|
-
|
5
|
-
# @author Hernani Rodrigues Vaz
|
6
|
-
module Cns
|
7
|
-
# classe para processar transacoes ledger do paymium
|
8
|
-
class Paymium
|
9
|
-
# @return [Apius] API paymium
|
10
|
-
attr_reader :api
|
11
|
-
# @return [Array<Hash>] todos os dados bigquery
|
12
|
-
attr_reader :bqd
|
13
|
-
# @return [Thor::CoreExt::HashWithIndifferentAccess] opcoes trabalho
|
14
|
-
attr_reader :ops
|
15
|
-
|
16
|
-
# @param [Hash] dad todos os dados bigquery
|
17
|
-
# @param [Thor::CoreExt::HashWithIndifferentAccess] pop opcoes trabalho
|
18
|
-
# @option pop [Hash] :h ({}) configuracao dias ajuste reposicionamento temporal
|
19
|
-
# @option pop [Boolean] :v (false) mostra dados transacoes trades & ledger?
|
20
|
-
# @option pop [Boolean] :t (false) mostra transacoes todas ou somente novas?
|
21
|
-
# @return [Paymium] API paymium - obter saldos & transacoes ledger
|
22
|
-
def initialize(dad, pop)
|
23
|
-
@api = Apice.new
|
24
|
-
@bqd = dad
|
25
|
-
@ops = pop
|
26
|
-
end
|
27
|
-
|
28
|
-
# @return [Array<Hash>] lista ledger paymium novos
|
29
|
-
def ledger
|
30
|
-
@ledger ||= exd[:kl].map { |map| map[:account_operations].select { |obj| kyl.include?(obj[:uuid]) } }.flatten
|
31
|
-
end
|
32
|
-
|
33
|
-
# @return [String] texto saldos & transacoes & ajuste dias
|
34
|
-
def mostra_resumo
|
35
|
-
puts("\nPAYMIUM\ntipo paymium bigquery")
|
36
|
-
puts(formata_saldos(:btc))
|
37
|
-
puts(formata_saldos(:eur))
|
38
|
-
mostra_totais
|
39
|
-
|
40
|
-
mostra_ledger
|
41
|
-
return unless ledger.count.positive?
|
42
|
-
|
43
|
-
puts("\nstring ajuste dias da ledger\n-h=#{kyl.map { |obj| "#{obj}:0" }.join(' ')}")
|
44
|
-
end
|
45
|
-
|
46
|
-
# @return [Hash] dados exchange paymium - saldos & transacoes ledger
|
47
|
-
def exd
|
48
|
-
@exd ||= {
|
49
|
-
sl: api.account_fr,
|
50
|
-
kl: api.ledger_fr
|
51
|
-
}
|
52
|
-
end
|
53
|
-
|
54
|
-
# @return [Array<String>] lista txid dos ledger novos
|
55
|
-
def kyl
|
56
|
-
@kyl ||= exd[:kl].map { |oex| oex[:account_operations].map { |obj| obj[:uuid] } }.flatten -
|
57
|
-
(ops[:t] ? [] : bqd[:nl].map { |obq| obq[:txid] })
|
58
|
-
end
|
59
|
-
|
60
|
-
# @example (see Apice#account_fr)
|
61
|
-
# @param [Symbol] bqm symbol paymium da moeda
|
62
|
-
# @return [String] texto formatado saldos
|
63
|
-
def formata_saldos(bqm)
|
64
|
-
vbq = bqd[:sl][bqm].to_d
|
65
|
-
vkr = exd[:sl]["balance_#{bqm}".to_sym].to_d
|
66
|
-
format(
|
67
|
-
'%<mo>-5.5s %<kr>21.9f %<bq>21.9f %<ok>3.3s',
|
68
|
-
mo: bqm.upcase,
|
69
|
-
kr: vkr,
|
70
|
-
bq: vbq,
|
71
|
-
ok: vkr == vbq ? 'OK' : 'NOK'
|
72
|
-
)
|
73
|
-
end
|
74
|
-
|
75
|
-
# @example (see Apice#ledger_fr)
|
76
|
-
# @param (see Bigquery#frl_val)
|
77
|
-
# @return [String] texto formatado ledger
|
78
|
-
def formata_ledger(hlx)
|
79
|
-
format(
|
80
|
-
'%<ky>-18.18s %<dt>19.19s %<ty>-17.17s %<mo>-4.4s %<vl>18.7f',
|
81
|
-
ky: formata_uuid(hlx[:uuid], 18),
|
82
|
-
dt: Time.at(hlx[:created_at_int]),
|
83
|
-
ty: hlx[:name],
|
84
|
-
mo: hlx[:currency].upcase,
|
85
|
-
vl: hlx[:amount].to_d
|
86
|
-
)
|
87
|
-
end
|
88
|
-
|
89
|
-
# @param [String] uid identificacor da ledger
|
90
|
-
# @param [Integer] max chars a mostrar
|
91
|
-
# @return [String] texto formatado identificacor da ledger
|
92
|
-
def formata_uuid(uid, max)
|
93
|
-
int = Integer(max / 2)
|
94
|
-
max < 7 ? 'erro' : "#{uid[0, int]}#{uid[-int..]}"
|
95
|
-
end
|
96
|
-
|
97
|
-
# @return [String] texto totais numero de transacoes
|
98
|
-
def mostra_totais
|
99
|
-
vkl = exd[:kl].map { |obj| obj[:account_operations].count }.flatten.inject(:+)
|
100
|
-
vnl = bqd[:nl].count
|
101
|
-
|
102
|
-
puts("LEDGER #{format('%<c>20i %<d>21i %<o>3.3s', c: vkl, d: vnl, o: vkl == vnl ? 'OK' : 'NOK')}")
|
103
|
-
end
|
104
|
-
|
105
|
-
# @return [String] texto transacoes ledger
|
106
|
-
def mostra_ledger
|
107
|
-
return unless ops[:v] && ledger.count.positive?
|
108
|
-
|
109
|
-
puts("\nledger data hora tipo moeda quantidade")
|
110
|
-
ledger.sort { |ant, prx| prx[:created_at_int] <=> ant[:created_at_int] }.each { |obj| puts(formata_ledger(obj)) }
|
111
|
-
end
|
112
|
-
end
|
113
|
-
end
|
data/lib/cns/therock.rb
DELETED
@@ -1,104 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require('bigdecimal/util')
|
4
|
-
|
5
|
-
# @author Hernani Rodrigues Vaz
|
6
|
-
module Cns
|
7
|
-
# classe para processar transacoes ledger do therock
|
8
|
-
class TheRock
|
9
|
-
# @return [Apius] API therock
|
10
|
-
attr_reader :api
|
11
|
-
# @return [Array<Hash>] todos os dados bigquery
|
12
|
-
attr_reader :bqd
|
13
|
-
# @return [Thor::CoreExt::HashWithIndifferentAccess] opcoes trabalho
|
14
|
-
attr_reader :ops
|
15
|
-
|
16
|
-
# @param [Hash] dad todos os dados bigquery
|
17
|
-
# @param [Thor::CoreExt::HashWithIndifferentAccess] pop opcoes trabalho
|
18
|
-
# @option pop [Hash] :h ({}) configuracao dias ajuste reposicionamento temporal
|
19
|
-
# @option pop [Boolean] :v (false) mostra dados transacoes trades & ledger?
|
20
|
-
# @option pop [Boolean] :t (false) mostra transacoes todas ou somente novas?
|
21
|
-
# @return [TheRock] API therock - obter saldos & transacoes ledger
|
22
|
-
def initialize(dad, pop)
|
23
|
-
@api = Apice.new
|
24
|
-
@bqd = dad
|
25
|
-
@ops = pop
|
26
|
-
end
|
27
|
-
|
28
|
-
# @return [Array<Hash>] lista ledger therock novos
|
29
|
-
def ledger
|
30
|
-
@ledger ||= exd[:kl].select { |obj| kyl.include?(obj[:id]) }
|
31
|
-
end
|
32
|
-
|
33
|
-
# @return [String] texto saldos & transacoes & ajuste dias
|
34
|
-
def mostra_resumo
|
35
|
-
puts("\nTHEROCK\ntipo therock bigquery")
|
36
|
-
exd[:sl].each { |obj| puts(formata_saldos(obj)) }
|
37
|
-
mostra_totais
|
38
|
-
|
39
|
-
mostra_ledger
|
40
|
-
return unless ledger.count.positive?
|
41
|
-
|
42
|
-
puts("\nstring ajuste dias da ledger\n-h=#{kyl.map { |obj| "#{obj}:0" }.join(' ')}")
|
43
|
-
end
|
44
|
-
|
45
|
-
# @return [Hash] dados exchange therock - saldos & transacoes ledger
|
46
|
-
def exd
|
47
|
-
@exd ||= {
|
48
|
-
sl: api.account_mt,
|
49
|
-
kl: api.ledger_mt
|
50
|
-
}
|
51
|
-
end
|
52
|
-
|
53
|
-
# @return [Array<String>] lista txid dos ledger novos
|
54
|
-
def kyl
|
55
|
-
@kyl ||= exd[:kl].map { |oex| oex[:id] } - (ops[:t] ? [] : bqd[:nl].map { |obq| obq[:txid] })
|
56
|
-
end
|
57
|
-
|
58
|
-
# @example (see Apice#account_mt)
|
59
|
-
# @param [Hash] hsl saldo therock da moeda
|
60
|
-
# @return [String] texto formatado saldos
|
61
|
-
def formata_saldos(hsl)
|
62
|
-
cur = hsl[:currency]
|
63
|
-
vbq = bqd[:sl][cur.downcase.to_sym].to_d
|
64
|
-
vkr = hsl[:balance].to_d
|
65
|
-
format(
|
66
|
-
'%<mo>-5.5s %<kr>21.9f %<bq>21.9f %<ok>3.3s',
|
67
|
-
mo: cur.upcase,
|
68
|
-
kr: vkr,
|
69
|
-
bq: vbq,
|
70
|
-
ok: vkr == vbq ? 'OK' : 'NOK'
|
71
|
-
)
|
72
|
-
end
|
73
|
-
|
74
|
-
# @example (see Apice#ledger_mt)
|
75
|
-
# @param (see Bigquery#mtl_val1)
|
76
|
-
# @return [String] texto formatado ledger
|
77
|
-
def formata_ledger(hlx)
|
78
|
-
format(
|
79
|
-
'%<ky>6i %<dt>19.19s %<ty>-27.27s %<mo>-4.4s %<vl>20.7f',
|
80
|
-
ky: hlx[:id],
|
81
|
-
dt: Time.parse(hlx[:date]),
|
82
|
-
ty: hlx[:type],
|
83
|
-
mo: hlx[:currency].upcase,
|
84
|
-
vl: hlx[:price].to_d
|
85
|
-
)
|
86
|
-
end
|
87
|
-
|
88
|
-
# @return [String] texto totais numero de transacoes
|
89
|
-
def mostra_totais
|
90
|
-
vkl = exd[:kl].count
|
91
|
-
vnl = bqd[:nl].count
|
92
|
-
|
93
|
-
puts("LEDGER #{format('%<c>20i %<d>21i %<o>3.3s', c: vkl, d: vnl, o: vkl == vnl ? 'OK' : 'NOK')}")
|
94
|
-
end
|
95
|
-
|
96
|
-
# @return [String] texto transacoes ledger
|
97
|
-
def mostra_ledger
|
98
|
-
return unless ops[:v] && ledger.count.positive?
|
99
|
-
|
100
|
-
puts("\nledger data hora tipo moeda quantidade")
|
101
|
-
ledger.sort { |ant, prx| prx[:id] <=> ant[:id] }.each { |obj| puts(formata_ledger(obj)) }
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|