class Ethereum::Receipt
Public Class Methods
new(*args)
click to toggle source
initialize(state_root, gas_used, logs, bloom: nil)
Calls superclass method
# File lib/ethereum/receipt.rb, line 16 def initialize(*args) h = normalize_args args super(h) raise ArgumentError, "Invalid bloom filter" if h[:bloom] && h[:bloom] != self.bloom end
Public Instance Methods
bloom()
click to toggle source
# File lib/ethereum/receipt.rb, line 22 def bloom bloomables = logs.map {|l| l.bloomables } Bloom.from_array bloomables.flatten end
Private Instance Methods
normalize_args(args)
click to toggle source
# File lib/ethereum/receipt.rb, line 29 def normalize_args(args) options = args.last.is_a?(Hash) ? args.pop : {} field_set = %i(state_root gas_used logs bloom) # different order than serializable fields h = {} fields = field_set[0,args.size] fields.zip(args).each do |(field, arg)| h[field] = arg field_set.delete field end options.each do |field, value| if field_set.include?(field) h[field] = value field_set.delete field end end field_set.each {|field| h[field] = nil } h end