class EvmClient::EventLog
Attributes
address[R]
block_hash[R]
block_number[R]
contract[R]
data[R]
event[R]
log_index[R]
removed[R]
signature[R]
topics[R]
transaction_hash[R]
transaction_index[R]
Public Class Methods
build(raw_response:, contract:)
click to toggle source
# File lib/evm_client/event_log.rb, line 6 def self.build(raw_response:, contract:) signature = raw_response['topics'][0] event = contract.events.find { |event| signature.match(event.signature) } new( address: raw_response['address'], block_hash: raw_response['blockHash'], block_number: raw_response['blockNumber'].to_i(16), data: raw_response['data'], log_index: raw_response['logIndex'], removed: raw_response['removed'], topics: raw_response['topics'], transaction_hash: raw_response['transactionHash'], transaction_index: raw_response['transactionIndex'], signature: signature, contract: contract, event: event ) end
new( address:, block_hash:, block_number:, data:, log_index:, removed:, topics:, transaction_hash:, transaction_index:, signature:, contract:, event:)
click to toggle source
# File lib/evm_client/event_log.rb, line 26 def initialize( address:, block_hash:, block_number:, data:, log_index:, removed:, topics:, transaction_hash:, transaction_index:, signature:, contract:, event:) @address = address @block_hash = block_hash @block_number = block_number @data = data @log_index = log_index @removed = removed @topics = topics @transaction_hash = transaction_hash @transaction_index = transaction_index @signature = signature @contract = contract @event = event end
Public Instance Methods
name()
click to toggle source
# File lib/evm_client/event_log.rb, line 42 def name event.name end
return_values()
click to toggle source
# File lib/evm_client/event_log.rb, line 46 def return_values return_values = {} indexed_params.each_with_index do |param, index| return_values[param.name] = topics[index+1] end non_indexed_params.each_with_index do |param, index| return_values[param.name] = Decoder.new.decode_arguments(non_indexed_params, data)[index] end return_values end
to_h()
click to toggle source
# File lib/evm_client/event_log.rb, line 60 def to_h { address: address, block_hash: block_hash, block_number: block_number, data: data, log_index: log_index, removed: removed, topics: topics, transaction_hash: transaction_hash, transaction_index: transaction_index, signature: signature, name: name, contract_name: contract.name, return_values: return_values } end
Private Instance Methods
indexed_params()
click to toggle source
# File lib/evm_client/event_log.rb, line 80 def indexed_params [event.indexed_inputs, event.indexed_outputs].flatten.map { |input| OpenStruct.new(input) } end
non_indexed_params()
click to toggle source
# File lib/evm_client/event_log.rb, line 84 def non_indexed_params [event.non_indexed_inputs, event.non_indexed_outputs].flatten.map { |output| OpenStruct.new(output) } end