lib/etht/carteiras.rb in etht-0.1.5 vs lib/etht/carteiras.rb in etht-0.1.6
- old
+ new
@@ -20,57 +20,58 @@
# @return [Carteiras] API etherscan - processar transacoes normais e tokens
def initialize(dad, pop)
@api = Etherscan.new
@dbq = dad
@ops = pop
+ p(ops)
end
# @return [Array<Hash>] todos os dados etherscan - saldos & transacoes
- def dadoses
- @dadoses ||= api.multi_address_balance(dbq[:wb].map { |c| c[:ax] }).map { |e| base_etherscan(e) }
+ def des
+ @des ||= api.multi_address_balance(dbq[:wb].map { |c| c[:ax] }).map { |e| base_etherscan(e) }
end
- # @return [Array<Integer>] lista blocknumbers novos de transacoes normais
- def novobnt
- @novobnt ||= (dadoses.map { |e| e[:tx].map { |n| Integer(n['blockNumber']) } }.flatten -
- dbq[:nt].map { |t| t[:blocknumber] }).uniq
+ # @return [Array<Hash>] todos os dados juntos bigquery & etherscan
+ def djn
+ @djn ||= dbq[:wb].map { |b| bigquery_etherscan(b, des.select { |s| b[:ax] == s[:ax] }.first) }
end
- # @return [Array<Integer>] lista blocknumbers novos de transacoes token
- def novobnk
- @novobnk ||= (dadoses.map { |e| e[:kx].map { |n| Integer(n['blockNumber']) } }.flatten -
- dbq[:nk].map { |t| t[:blocknumber] }).uniq
+ # @return [Array<Integer>] lista blocknumbers de transacoes normais
+ def bnt
+ @bnt ||= (des.map { |e| e[:tx].map { |n| Integer(n['blockNumber']) } }.flatten -
+ (ops[:t] ? [] : dbq[:nt].map { |t| t[:blocknumber] })).uniq
end
- # @return [Array<Hash>] lista transacoes normais novas
- def novaest
- @novaest ||= dadoses.map { |e| e[:tx].select { |s| novobnt.include?(Integer(s['blockNumber'])) } }.flatten.uniq
+ # @return [Array<Integer>] lista blocknumbers de transacoes token
+ def bnk
+ @bnk ||= (des.map { |e| e[:kx].map { |n| Integer(n['blockNumber']) } }.flatten -
+ (ops[:t] ? [] : dbq[:nk].map { |t| t[:blocknumber] })).uniq
end
- # @return [Array<Hash>] lista transacoes tokan novas
- def novaesk
- @novaesk ||= dadoses.map { |e| e[:kx].select { |s| novobnk.include?(Integer(s['blockNumber'])) } }.flatten.uniq
+ # @return [Array<Hash>] lista transacoes normais
+ def norml
+ @norml ||= des.map { |e| e[:tx].select { |s| bnt.include?(Integer(s['blockNumber'])) } }.flatten.uniq
end
- # @return [Array<Hash>] totdos dados juntos bigquery & etherscan
- def dadosjn
- @dadosjn ||= dbq[:wb].map { |b| bigquery_etherscan(b, dadoses.select { |s| b[:ax] == s[:ax] }.first) }
+ # @return [Array<Hash>] lista transacoes tokan
+ def token
+ @token ||= des.map { |e| e[:kx].select { |s| bnk.include?(Integer(s['blockNumber'])) } }.flatten.uniq
end
- # @return [Array<Hash>] lista ordenada transacoes normais novas
- def sortest
- novaest.sort { |a, b| Integer(a['blockNumber']) <=> Integer(b['blockNumber']) }
+ # @return [Array<Hash>] lista ordenada transacoes normais
+ def norml_sort
+ norml.sort { |a, b| Integer(a['blockNumber']) <=> Integer(b['blockNumber']) }
end
- # @return [Array<Hash>] lista ordenada transacoes tokan novas
- def sortesk
- novaesk.sort { |a, b| Integer(a['blockNumber']) <=> Integer(b['blockNumber']) }
+ # @return [Array<Hash>] lista ordenada transacoes tokan
+ def token_sort
+ token.sort { |a, b| Integer(a['blockNumber']) <=> Integer(b['blockNumber']) }
end
- # @return [Array<Hash>] lista ordenada transacoes normais & tokan novas
- def totalha
- (novaest + novaesk).sort { |a, b| Integer(a['blockNumber']) <=> Integer(b['blockNumber']) }
+ # @return [Array<Hash>] lista ordenada todas as transacoes (normais & tokan)
+ def todas_sort
+ (norml + token).sort { |a, b| Integer(a['blockNumber']) <=> Integer(b['blockNumber']) }
end
# @param [Hash] hes dados etherscan
# @return [Hash] dados etherscan - address, saldo & transacoes
def base_etherscan(hes)
@@ -96,31 +97,26 @@
et: hes[:tx],
ek: hes[:kx]
}
end
- # @param [String] add endereco da carteira
+ # @param add (see formata_endereco)
# @return [Array<Hash>] lista transacoes normais ligadas a uma carteira - sem elementos irrelevantes
def etherscan_tx(add)
api.normal_tx(add).map do |e|
e.delete('cumulativeGasUsed')
e.delete('confirmations')
e
end
end
- # @param (see etherscan_tx)
+ # @param add (see formata_endereco)
# @return [Array<Hash>] lista transacoes token ligadas a uma carteira - sem elementos irrelevantes
def etherscan_kx(add)
api.token_tx(add).map do |e|
e.delete('cumulativeGasUsed')
e.delete('confirmations')
e
end
- end
-
- # @return [Boolean] carteira tem transacoes novas(sim=NOK, nao=OK)?
- def ok?(hjn)
- hjn[:bs] == hjn[:es] && hjn[:bt].count == hjn[:et].count && hjn[:bk].count == hjn[:ek].count
end
end
end