cns 0.1.5 → 0.1.6

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.
@@ -50,13 +50,11 @@ module Cns
50
50
  # @param [String] uri Uniform Resource Identifier do pedido HTTP
51
51
  # @return [Array<Hash>] lista completa trades bitcoinde
52
52
  def trades_de(pag = 0, ary = [], uri = 'https://api.bitcoin.de/v4/trades')
53
- p = "#{uri}?#{URI.encode_www_form(state: 1, page: pag + 1)}"
54
- r = JSON.parse(
55
- Curl.get(p) { |h| h.headers = hde(p) }.body,
56
- symbolize_names: true
57
- )
58
- ary += r[:trades]
59
- r[:page][:current] < r[:page][:last] ? trades_de(pag + 1, ary) : ary
53
+ par = "#{uri}?#{URI.encode_www_form(state: 1, page: pag += 1)}"
54
+ res = JSON.parse(Curl.get(par) { |obj| obj.headers = hde(par) }.body, symbolize_names: true)
55
+ ary += res[:trades]
56
+ rep = res[:page]
57
+ rep[:current] < rep[:last] ? trades_de(pag, ary) : ary
60
58
  rescue StandardError
61
59
  ary
62
60
  end
@@ -82,17 +80,38 @@ module Cns
82
80
  # @param (see trades_de)
83
81
  # @return [Array<Hash>] lista completa uniformizada depositos bitcoinde
84
82
  def deposits_de(pag = 0, ary = [], uri = 'https://api.bitcoin.de/v4/btc/deposits')
85
- p = "#{uri}?#{URI.encode_www_form(state: 2, page: pag + 1)}"
86
- r = JSON.parse(
87
- Curl.get(p) { |h| h.headers = hde(p) }.body,
88
- symbolize_names: true
89
- )
90
- ary += deposits_unif_de(r)
91
- r[:page][:current] < r[:page][:last] ? deposits_de(pag + 1, ary) : ary
83
+ par = "#{uri}?#{URI.encode_www_form(state: 2, page: pag += 1)}"
84
+ res = JSON.parse(Curl.get(par) { |obj| obj.headers = hde(par) }.body, symbolize_names: true)
85
+ ary += res[:deposits].map { |has| deposit_unif(has) }
86
+ rep = res[:page]
87
+ rep[:current] < rep[:last] ? deposits_de(pag, ary) : ary
92
88
  rescue StandardError
93
89
  ary
94
90
  end
95
91
 
92
+ # @example deposit_unif
93
+ # [
94
+ # {
95
+ # txid: 177_245,
96
+ # time: '2014-01-31T22:01:30+01:00',
97
+ # tp: 'deposit',
98
+ # add: '1KK6HhG3quojFS4CY1mPcbyrjQ8BMDQxmT',
99
+ # qt: '0.13283',
100
+ # moe: 'btc',
101
+ # fee: '0'
102
+ # },
103
+ # {}
104
+ # ]
105
+ # @return [Hash] deposit uniformizado bitcoinde
106
+ def deposit_unif(has)
107
+ {
108
+ add: has[:address],
109
+ time: Time.parse(has[:created_at]),
110
+ qt: has[:amount],
111
+ txid: Integer(has[:deposit_id])
112
+ }.merge(tp: 'deposit', moe: 'btc', fee: '0')
113
+ end
114
+
96
115
  # @example withdrawals_de
97
116
  # {
98
117
  # withdrawals: [
@@ -116,17 +135,39 @@ module Cns
116
135
  # @param (see deposits_de)
117
136
  # @return [Array<Hash>] lista completa uniformizada withdrawals bitcoinde
118
137
  def withdrawals_de(pag = 0, ary = [], uri = 'https://api.bitcoin.de/v4/btc/withdrawals')
119
- p = "#{uri}?#{URI.encode_www_form(state: 1, page: pag + 1)}"
120
- r = JSON.parse(
121
- Curl.get(p) { |h| h.headers = hde(p) }.body,
122
- symbolize_names: true
123
- )
124
- ary += withdrawals_unif_de(r)
125
- r[:page][:current] < r[:page][:last] ? withdrawals_de(pag + 1, ary) : ary
138
+ par = "#{uri}?#{URI.encode_www_form(state: 1, page: pag += 1)}"
139
+ res = JSON.parse(Curl.get(par) { |obj| obj.headers = hde(par) }.body, symbolize_names: true)
140
+ ary += res[:withdrawals].map { |has| withdrawal_unif(has) }
141
+ rep = res[:page]
142
+ rep[:current] < rep[:last] ? withdrawals_de(pag, ary) : ary
126
143
  rescue StandardError
127
144
  ary
128
145
  end
129
146
 
147
+ # @example withdrawal_unif
148
+ # [
149
+ # {
150
+ # txid: 136_605,
151
+ # time: '2014-02-05T13:05:17+01:00',
152
+ # tp: 'withdrawal',
153
+ # add: '1K9YMDDrmMV25EoYNqi7KUEK57Kn3TCNUJ',
154
+ # qt: '0.120087',
155
+ # fee: '0',
156
+ # moe: 'btc'
157
+ # },
158
+ # {}
159
+ # ]
160
+ # @return [Hash] withdrawal uniformizada bitcoinde
161
+ def withdrawal_unif(has)
162
+ {
163
+ add: has[:address],
164
+ time: Time.parse(has[:transferred_at]),
165
+ qt: has[:amount],
166
+ fee: has[:network_fee],
167
+ txid: Integer(has[:withdrawal_id])
168
+ }.merge(tp: 'withdrawal', moe: 'btc')
169
+ end
170
+
130
171
  # @example ledger_fr
131
172
  # [
132
173
  # {
@@ -156,11 +197,11 @@ module Cns
156
197
  # @param (see trades_de)
157
198
  # @return [Array<Hash>] lista ledger paymium
158
199
  def ledger_fr(pag = 0, ary = [], uri = 'https://paymium.com/api/v1/user/orders')
159
- r = JSON.parse(
160
- Curl.get(uri, offset: pag) { |h| h.headers = hfr("#{uri}?#{URI.encode_www_form(offset: pag)}") }.body,
200
+ res = JSON.parse(
201
+ Curl.get(uri, offset: pag) { |obj| obj.headers = hfr("#{uri}?#{URI.encode_www_form(offset: pag)}") }.body,
161
202
  symbolize_names: true
162
203
  )
163
- r.empty? ? ary : ledger_fr(pag + r.size, ary + r)
204
+ res.empty? ? ary : ledger_fr(pag + res.size, ary + res)
164
205
  rescue StandardError
165
206
  ary
166
207
  end
@@ -194,11 +235,11 @@ module Cns
194
235
  # @param (see trades_de)
195
236
  # @return [Array<Hash>] lista ledger therock
196
237
  def ledger_mt(pag = 1, ary = [], uri = 'https://api.therocktrading.com/v1/transactions')
197
- r = JSON.parse(
198
- Curl.get(uri, page: pag) { |h| h.headers = hmt("#{uri}?#{URI.encode_www_form(page: pag)}") }.body,
238
+ res = JSON.parse(
239
+ Curl.get(uri, page: pag) { |obj| obj.headers = hmt("#{uri}?#{URI.encode_www_form(page: pag)}") }.body,
199
240
  symbolize_names: true
200
241
  )[:transactions]
201
- r.empty? ? ary : ledger_mt(pag + r.size, ary + r)
242
+ res.empty? ? ary : ledger_mt(pag + res.size, ary + res)
202
243
  rescue StandardError
203
244
  ary
204
245
  end
@@ -230,14 +271,15 @@ module Cns
230
271
  # @param [Hash] has acumulador dos dados
231
272
  # @param (see account_us)
232
273
  # @return [Hash] dados trades kraken
233
- def trades_us(ofs = 0, has = {}, urb = 'https://api.kraken.com/0/private', uri = 'TradesHistory', non = nnc)
234
- r = JSON.parse(
235
- Curl.post("#{urb}/#{uri}", nonce: non, ofs: ofs) { |h| h.headers = hus(uri, nonce: non, ofs: ofs) }.body,
274
+ def trades_us(ofs = 0, has = {}, urb = 'https://api.kraken.com/0/private')
275
+ uri = 'TradesHistory'
276
+ non = nnc
277
+ res = JSON.parse(
278
+ Curl.post("#{urb}/#{uri}", nonce: non, ofs: ofs) { |obj| obj.headers = hus(uri, nonce: non, ofs: ofs) }.body,
236
279
  symbolize_names: true
237
280
  )[:result]
238
- has.merge!(r[:trades])
239
- ofs += 50
240
- ofs < r[:count] ? trades_us(ofs, has) : has
281
+ has.merge!(res[:trades])
282
+ (ofs += 50) < res[:count] ? trades_us(ofs, has) : has
241
283
  rescue StandardError
242
284
  has
243
285
  end
@@ -265,14 +307,15 @@ module Cns
265
307
  # }
266
308
  # @param (see trades_us)
267
309
  # @return [Hash] dados ledger kraken
268
- def ledger_us(ofs = 0, has = {}, urb = 'https://api.kraken.com/0/private', uri = 'Ledgers', non = nnc)
269
- r = JSON.parse(
270
- Curl.post("#{urb}/#{uri}", nonce: non, ofs: ofs) { |h| h.headers = hus(uri, nonce: non, ofs: ofs) }.body,
310
+ def ledger_us(ofs = 0, has = {}, urb = 'https://api.kraken.com/0/private')
311
+ uri = 'Ledgers'
312
+ non = nnc
313
+ res = JSON.parse(
314
+ Curl.post("#{urb}/#{uri}", nonce: non, ofs: ofs) { |obj| obj.headers = hus(uri, nonce: non, ofs: ofs) }.body,
271
315
  symbolize_names: true
272
316
  )[:result]
273
- has.merge!(r[:ledger])
274
- ofs += 50
275
- ofs < r[:count] ? ledger_us(ofs, has) : has
317
+ has.merge!(res[:ledger])
318
+ (ofs += 50) < res[:count] ? ledger_us(ofs, has) : has
276
319
  rescue StandardError
277
320
  has
278
321
  end
@@ -8,7 +8,7 @@ module Cns
8
8
  BD = 'hernanirvaz.coins'
9
9
 
10
10
  # (see Bigquery)
11
- class Cns::Bigquery
11
+ class Bigquery
12
12
  # @return [Google::Cloud::Bigquery] API bigquery
13
13
  attr_reader :api
14
14
  # @return [Google::Cloud::Bigquery::QueryJob] job bigquery
@@ -91,9 +91,10 @@ module Cns
91
91
  # @return [Boolean] job ok?
92
92
  def job?(cmd)
93
93
  @job = api.query_job(cmd)
94
- @job.wait_until_done!
95
- puts(@job.error['message']) if @job.failed?
96
- @job.failed?
94
+ job.wait_until_done!
95
+ fld = job.failed?
96
+ puts(job.error['message']) if fld
97
+ fld
97
98
  end
98
99
 
99
100
  # cria Structured Query Language (SQL) job bigquery
@@ -13,13 +13,36 @@ module Cns
13
13
  def etht_ins
14
14
  "insert #{BD}.etht(blocknumber,timestamp,txhash,nonce,blockhash,transactionindex,axfrom,axto,iax," \
15
15
  'value,gas,gasprice,gasused,iserror,txreceipt_status,input,contractaddress,dias' \
16
- ") VALUES#{apies.novtx.map { |e| etht_val1(e) }.join(',')}"
16
+ ") VALUES#{apies.novtx.map { |obj| etht_1val(obj) }.join(',')}"
17
+ end
18
+
19
+ # @return [String] comando insert SQL formatado ethk (token)
20
+ def ethk_ins
21
+ "insert #{BD}.ethk(blocknumber,timestamp,txhash,nonce,blockhash,transactionindex,axfrom,axto,iax," \
22
+ 'value,tokenname,tokensymbol,tokendecimal,gas,gasprice,gasused,input,contractaddress,dias' \
23
+ ") VALUES#{apies.novkx.map { |obj| ethk_1val(obj) }.join(',')}"
24
+ end
25
+
26
+ # @return [String] comando insert SQL formatado eos
27
+ def eost_ins
28
+ "insert #{BD}.eos(gseq,aseq,bnum,time,contract,action,acfrom,acto,iax,amount,moeda,memo,dias" \
29
+ ") VALUES#{apigm.novax.map { |obj| eost_1val(obj) }.join(',')}"
30
+ end
31
+
32
+ # @return [String] comando insert SQL formatado det (trades)
33
+ def det_ins
34
+ "insert #{BD}.det(txid,time,tp,user,btc,eur,dtc,dias) VALUES#{apide.trades.map { |obj| det_1val(obj) }.join(',')}"
35
+ end
36
+
37
+ # @return [String] comando insert SQL formatado del (ledger)
38
+ def del_ins
39
+ "insert #{BD}.del(txid,time,tp,add,moe,qt,fee) VALUES#{apide.ledger.map { |obj| del_val(obj) }.join(',')}"
17
40
  end
18
41
 
19
42
  # @example (see Apibc#norml_es)
20
43
  # @param [Hash] htx transacao norml etherscan
21
44
  # @return [String] valores formatados etht (norml parte1)
22
- def etht_val1(htx)
45
+ def etht_1val(htx)
23
46
  "(#{Integer(htx[:blockNumber])}," \
24
47
  "#{Integer(htx[:timeStamp])}," \
25
48
  "'#{htx[:hash]}'," \
@@ -29,40 +52,36 @@ module Cns
29
52
  "'#{htx[:from]}'," \
30
53
  "'#{htx[:to]}'," \
31
54
  "'#{htx[:iax]}'," \
32
- "#{etht_val2(htx)}"
55
+ "#{etht_2val(htx)}"
33
56
  end
34
57
 
35
- # @param (see etht_val1)
58
+ # @param (see etht_1val)
36
59
  # @return [String] valores formatados etht (norml parte2)
37
- def etht_val2(htx)
60
+ def etht_2val(htx)
61
+ txr = htx[:txreceipt_status]
38
62
  "cast('#{htx[:value]}' as numeric)," \
39
63
  "cast('#{htx[:gas]}' as numeric)," \
40
64
  "cast('#{htx[:gasPrice]}' as numeric)," \
41
65
  "cast('#{htx[:gasUsed]}' as numeric)," \
42
66
  "#{Integer(htx[:isError])}," \
43
- "#{htx[:txreceipt_status].length.zero? ? 'null' : htx[:txreceipt_status]}," \
44
- "#{etht_val3(htx)}"
67
+ "#{txr.length.zero? ? 'null' : txr}," \
68
+ "#{etht_3val(htx)}"
45
69
  end
46
70
 
47
- # @param (see etht_val1)
71
+ # @param (see etht_1val)
48
72
  # @return [String] valores formatados etht (norml parte3)
49
- def etht_val3(htx)
50
- "#{htx[:input].length.zero? ? 'null' : "'#{htx[:input]}'"}," \
51
- "#{htx[:contractAddress].length.zero? ? 'null' : "'#{htx[:contractAddress]}'"}," \
73
+ def etht_3val(htx)
74
+ cta = htx[:contractAddress]
75
+ inp = htx[:input]
76
+ "#{inp.length.zero? ? 'null' : "'#{inp}'"}," \
77
+ "#{cta.length.zero? ? 'null' : "'#{cta}'"}," \
52
78
  "#{Integer(ops[:h][htx[:blockNumber]] || 0)})"
53
79
  end
54
80
 
55
- # @return [String] comando insert SQL formatado ethk (token)
56
- def ethk_ins
57
- "insert #{BD}.ethk(blocknumber,timestamp,txhash,nonce,blockhash,transactionindex,axfrom,axto,iax," \
58
- 'value,tokenname,tokensymbol,tokendecimal,gas,gasprice,gasused,input,contractaddress,dias' \
59
- ") VALUES#{apies.novkx.map { |e| ethk_val1(e) }.join(',')}"
60
- end
61
-
62
81
  # @example (see Apibc#token_es)
63
82
  # @param [Hash] hkx token event etherscan
64
83
  # @return [String] valores formatados ethk (token parte1)
65
- def ethk_val1(hkx)
84
+ def ethk_1val(hkx)
66
85
  "(#{Integer(hkx[:blockNumber])}," \
67
86
  "#{Integer(hkx[:timeStamp])}," \
68
87
  "'#{hkx[:hash]}'," \
@@ -72,12 +91,12 @@ module Cns
72
91
  "'#{hkx[:from]}'," \
73
92
  "'#{hkx[:to]}'," \
74
93
  "'#{hkx[:iax]}'," \
75
- "#{ethk_val2(hkx)}"
94
+ "#{ethk_2val(hkx)}"
76
95
  end
77
96
 
78
- # @param (see ethk_val1)
97
+ # @param (see ethk_1val)
79
98
  # @return [String] valores formatados ethk (token parte2)
80
- def ethk_val2(hkx)
99
+ def ethk_2val(hkx)
81
100
  "cast('#{hkx[:value]}' as numeric)," \
82
101
  "'#{hkx[:tokenName]}'," \
83
102
  "'#{hkx[:tokenSymbol]}'," \
@@ -85,49 +104,45 @@ module Cns
85
104
  "cast('#{hkx[:gas]}' as numeric)," \
86
105
  "cast('#{hkx[:gasPrice]}' as numeric)," \
87
106
  "cast('#{hkx[:gasUsed]}' as numeric)," \
88
- "#{ethk_val3(hkx)}"
107
+ "#{ethk_3val(hkx)}"
89
108
  end
90
109
 
91
- # @param (see ethk_val1)
110
+ # @param (see ethk_1val)
92
111
  # @return [String] valores formatados ethk (token parte3)
93
- def ethk_val3(hkx)
94
- "#{hkx[:input].length.zero? ? 'null' : "'#{hkx[:input]}'"}," \
95
- "#{hkx[:contractAddress].length.zero? ? 'null' : "'#{hkx[:contractAddress]}'"}," \
112
+ def ethk_3val(hkx)
113
+ cta = hkx[:contractAddress]
114
+ inp = hkx[:input]
115
+ "#{inp.length.zero? ? 'null' : "'#{inp}'"}," \
116
+ "#{cta.length.zero? ? 'null' : "'#{cta}'"}," \
96
117
  "#{Integer(ops[:h][hkx[:blockNumber]] || 0)})"
97
118
  end
98
119
 
99
- # @return [String] comando insert SQL formatado eos
100
- def eost_ins
101
- "insert #{BD}.eos(gseq,aseq,bnum,time,contract,action,acfrom,acto,iax,amount,moeda,memo,dias" \
102
- ") VALUES#{apigm.novax.map { |e| eost_val1(e) }.join(',')}"
103
- end
104
-
105
120
  # @example (see Apibc#ledger_gm)
106
121
  # @param [Hash] hlx ledger greymass
107
122
  # @return [String] valores formatados para insert eos (parte1)
108
- def eost_val1(hlx)
109
- a = hlx[:action_trace][:act]
123
+ def eost_1val(hlx)
124
+ act = hlx[:action_trace][:act]
110
125
  "(#{hlx[:global_action_seq]}," \
111
126
  "#{hlx[:account_action_seq]}," \
112
127
  "#{hlx[:block_num]}," \
113
128
  "DATETIME(TIMESTAMP('#{hlx[:block_time]}'))," \
114
- "'#{a[:account]}'," \
115
- "'#{a[:name]}'," \
116
- "#{eost_val2(hlx, a)}"
129
+ "'#{act[:account]}'," \
130
+ "'#{act[:name]}'," \
131
+ "#{eost_2val(hlx, act)}"
117
132
  end
118
133
 
119
- # @param (see eost_val1)
134
+ # @param (see eost_1val)
120
135
  # @param [Hash] act dados da acao
121
136
  # @return [String] valores formatados para insert eos (parte2)
122
- def eost_val2(hlx, act)
123
- d = act[:data]
124
- q = d[:quantity].to_s
125
- s = d[:memo].inspect
126
- "'#{d[:from]}'," \
127
- "'#{d[:to]}'," \
137
+ def eost_2val(hlx, act)
138
+ dat = act[:data]
139
+ qtd = dat[:quantity].to_s
140
+ str = dat[:memo].inspect
141
+ "'#{dat[:from]}'," \
142
+ "'#{dat[:to]}'," \
128
143
  "'#{hlx[:iax]}'," \
129
- "#{q.to_d},'#{q[/[[:upper:]]+/]}'," \
130
- "nullif('#{s.gsub(/['"]/, '')}','nil')," \
144
+ "#{qtd.to_d},'#{qtd[/[[:upper:]]+/]}'," \
145
+ "nullif('#{str.gsub(/['"]/, '')}','nil')," \
131
146
  "#{ops[:h][String(hlx[:itx])] || 0})"
132
147
  end
133
148
  end
@@ -6,25 +6,43 @@ module Cns
6
6
  class Bigquery
7
7
  private
8
8
 
9
- # @return [String] comando insert SQL formatado det (trades)
10
- def det_ins
11
- "insert #{BD}.det(txid,time,tp,user,btc,eur,dtc,dias) VALUES#{apide.trades.map { |h| det_val1(h) }.join(',')}"
9
+ # @return [String] comando insert SQL formatado ust (trades)
10
+ def ust_ins
11
+ "insert #{BD}.ust(txid,ordertxid,pair,time,type,ordertype,price,cost,fee,vol,margin,misc,ledgers,dias) " \
12
+ "VALUES#{apius.trades.map { |key, val| ust_1val(key, val) }.join(',')}"
13
+ end
14
+
15
+ # @return [String] comando insert SQL formatado usl (ledger)
16
+ def usl_ins
17
+ "insert #{BD}.usl(txid,refid,time,type,aclass,asset,amount,fee) " \
18
+ "VALUES#{apius.ledger.map { |key, val| usl_val(key, val) }.join(',')}"
19
+ end
20
+
21
+ # @return [String] comando insert SQL formatado fr (ledger)
22
+ def frl_ins
23
+ "insert #{BD}.fr(uuid,tipo,valor,moe,time,dias) VALUES#{apifr.ledger.map { |obj| frl_val(obj) }.join(',')}"
24
+ end
25
+
26
+ # @return [String] comando insert SQL formatado fr (ledger)
27
+ def mtl_ins
28
+ "insert #{BD}.mt(id,time,type,valor,moe,pair,note,trade_id,dias) " \
29
+ "VALUES#{apimt.ledger.map { |obj| mtl_1val(obj) }.join(',')}"
12
30
  end
13
31
 
14
32
  # @example (see Apice#trades_de)
15
33
  # @param [Hash] htx trade bitcoinde
16
34
  # @return [String] valores formatados det (trades parte1)
17
- def det_val1(htx)
35
+ def det_1val(htx)
18
36
  "('#{htx[:trade_id]}'," \
19
37
  "DATETIME(TIMESTAMP('#{htx[:successfully_finished_at]}'))," \
20
38
  "'#{htx[:type]}'," \
21
39
  "'#{htx[:trading_partner_information][:username]}'," \
22
- "#{det_val2(htx)}"
40
+ "#{det_2val(htx)}"
23
41
  end
24
42
 
25
- # @param (see det_val1)
43
+ # @param (see det_1val)
26
44
  # @return [String] valores formatados det (trades parte2)
27
- def det_val2(htx)
45
+ def det_2val(htx)
28
46
  'cast(' \
29
47
  "#{htx[:type] == 'buy' ? htx[:amount_currency_to_trade_after_fee] : "-#{htx[:amount_currency_to_trade]}"}" \
30
48
  ' as numeric),' \
@@ -33,36 +51,26 @@ module Cns
33
51
  "#{Integer(ops[:h][htx[:trade_id]] || 0)})"
34
52
  end
35
53
 
36
- # @return [String] comando insert SQL formatado del (ledger)
37
- def del_ins
38
- "insert #{BD}.del(txid,time,tp,add,moe,qt,fee) VALUES#{apide.ledger.map { |h| del_val(h) }.join(',')}"
39
- end
40
-
41
54
  # @example (see Apice#deposits_de)
42
55
  # @example (see Apice#withdrawals_de)
43
56
  # @param [Hash] hlx ledger (deposits + withdrawals) bitcoinde
44
57
  # @return [String] valores formatados del (ledger)
45
58
  def del_val(hlx)
59
+ tip = hlx[:tp]
46
60
  "(#{hlx[:txid]}," \
47
61
  "DATETIME(TIMESTAMP('#{hlx[:time].iso8601}'))," \
48
- "'#{hlx[:tp]}'," \
62
+ "'#{tip}'," \
49
63
  "'#{hlx[:add]}'," \
50
64
  "'#{hlx[:moe]}'," \
51
- "cast(#{hlx[:tp] =='withdrawal' ? '-' : ''}#{hlx[:qt]} as numeric)," \
65
+ "cast(#{tip == 'withdrawal' ? '-' : ''}#{hlx[:qt]} as numeric)," \
52
66
  "cast(#{hlx[:fee]} as numeric))"
53
67
  end
54
68
 
55
- # @return [String] comando insert SQL formatado ust (trades)
56
- def ust_ins
57
- "insert #{BD}.ust(txid,ordertxid,pair,time,type,ordertype,price,cost,fee,vol,margin,misc,ledgers,dias) " \
58
- "VALUES#{apius.trades.map { |k, v| ust_val1(k, v) }.join(',')}"
59
- end
60
-
61
69
  # @example (see Apice#trades_us)
62
70
  # @param [String] idx identificador transacao
63
71
  # @param [Hash] htx trade kraken
64
72
  # @return [String] valores formatados ust (trades parte1)
65
- def ust_val1(idx, htx)
73
+ def ust_1val(idx, htx)
66
74
  "('#{idx}'," \
67
75
  "'#{htx[:ordertxid]}'," \
68
76
  "'#{htx[:pair]}'," \
@@ -72,81 +80,70 @@ module Cns
72
80
  "cast(#{htx[:price]} as numeric)," \
73
81
  "cast(#{htx[:cost]} as numeric)," \
74
82
  "cast(#{htx[:fee]} as numeric)," \
75
- "#{ust_val2(idx, htx)}"
83
+ "#{ust_2val(idx, htx)}"
76
84
  end
77
85
 
78
- # @param (see ust_val1)
86
+ # @param (see ust_1val)
79
87
  # @return [String] valores formatados ust (trades parte2)
80
- def ust_val2(idx, htx)
88
+ def ust_2val(idx, htx)
89
+ msc = htx[:misc].to_s
81
90
  "cast(#{htx[:vol]} as numeric)," \
82
91
  "cast(#{htx[:margin]} as numeric)," \
83
- "#{htx[:misc].to_s.empty? ? 'null' : "'#{htx[:misc]}'"}," \
84
- "'#{apius.ledger.select { |_, v| v[:refid] == idx }.keys.join(',') || ''}'," \
92
+ "#{msc.empty? ? 'null' : "'#{msc}'"}," \
93
+ "'#{apius.ledger.select { |_, val| val[:refid] == idx }.keys.join(',') || ''}'," \
85
94
  "#{Integer(ops[:h][idx] || 0)})"
86
95
  end
87
96
 
88
- # @return [String] comando insert SQL formatado usl (ledger)
89
- def usl_ins
90
- "insert #{BD}.usl(txid,refid,time,type,aclass,asset,amount,fee) " \
91
- "VALUES#{apius.ledger.map { |k, v| usl_val(k, v) }.join(',')}"
92
- end
93
-
94
97
  # @example (see Apice#ledger_us)
95
- # @param idx (see ust_val1)
98
+ # @param idx (see ust_1val)
96
99
  # @param [Hash] hlx ledger kraken
97
100
  # @return [String] valores formatados usl (ledger)
98
101
  def usl_val(idx, hlx)
102
+ acl = hlx[:aclass].to_s
99
103
  "('#{idx}'," \
100
104
  "'#{hlx[:refid]}'," \
101
105
  "PARSE_DATETIME('%s', '#{String(hlx[:time].round)}')," \
102
106
  "'#{hlx[:type]}'," \
103
- "#{hlx[:aclass].to_s.empty? ? 'null' : "'#{hlx[:aclass]}'"}," \
107
+ "#{acl.empty? ? 'null' : "'#{acl}'"}," \
104
108
  "'#{hlx[:asset]}'," \
105
109
  "cast(#{hlx[:amount]} as numeric)," \
106
110
  "cast(#{hlx[:fee]} as numeric))"
107
111
  end
108
112
 
109
- # @return [String] comando insert SQL formatado fr (ledger)
110
- def frl_ins
111
- "insert #{BD}.fr(uuid,tipo,valor,moe,time,dias) VALUES#{apifr.ledger.map { |h| frl_val(h) }.join(',')}"
112
- end
113
-
114
113
  # @example (see Apice#ledger_fr)
115
114
  # @param [Hash] hlx ledger paymium
116
115
  # @return [String] valores formatados frl (ledger)
117
116
  def frl_val(hlx)
118
- "('#{hlx[:uuid]}'," \
117
+ uid = hlx[:uuid]
118
+ "('#{uid}'," \
119
119
  "'#{hlx[:name]}'," \
120
120
  "cast(#{hlx[:amount]} as numeric)," \
121
121
  "'#{hlx[:currency]}'," \
122
122
  "PARSE_DATETIME('%s', '#{hlx[:created_at_int]}')," \
123
- "#{Integer(ops[:h][hlx[:uuid]] || 0)})"
124
- end
125
-
126
- # @return [String] comando insert SQL formatado fr (ledger)
127
- def mtl_ins
128
- "insert #{BD}.mt(id,time,type,valor,moe,pair,note,trade_id,dias) " \
129
- "VALUES#{apimt.ledger.map { |h| mtl_val1(h) }.join(',')}"
123
+ "#{Integer(ops[:h][uid] || 0)})"
130
124
  end
131
125
 
132
126
  # @example (see Apice#ledger_mt)
133
127
  # @param [Hash] hlx ledger therock
134
128
  # @return [String] valores formatados mtl (ledger parte1)
135
- def mtl_val1(hlx)
129
+ def mtl_1val(hlx)
130
+ fid = hlx[:fund_id].to_s
136
131
  "(#{hlx[:id]}," \
137
132
  "DATETIME(TIMESTAMP('#{hlx[:date]}'))," \
138
133
  "'#{hlx[:type]}'," \
139
134
  "cast(#{hlx[:price]} as numeric)," \
140
135
  "'#{hlx[:currency]}'," \
141
- "#{hlx[:fund_id].to_s.empty? ? 'null' : "'#{hlx[:fund_id]}'"}," \
142
- "#{mtl_val2(hlx)}"
136
+ "#{fid.empty? ? 'null' : "'#{fid}'"}," \
137
+ "#{mtl_2val(hlx)}"
143
138
  end
144
139
 
145
- # @param (see mtl_val1)
140
+ # @param (see mtl_1val)
146
141
  # @return [String] valores formatados mtl (ledger parte2)
147
- def mtl_val2(hlx)
148
- "#{hlx[:note].to_s.empty? ? 'null' : "'#{hlx[:note]}'"}," \
149
- "#{hlx[:trade_id].to_s.empty? ? 'null' : (hlx[:trade_id]).to_s}," \
142
+ def mtl_2val(hlx)
143
+ nte = hlx[:note].to_s
144
+ tid = hlx[:trade_id].to_s
145
+ "#{nte.empty? ? 'null' : "'#{nte}'"}," \
146
+ "#{tid.empty? ? 'null' : tid.to_s}," \
150
147
  "#{Integer(ops[:h][String(hlx[:id])] || 0)})"
151
148
  end
152
149
  end