class Hashtastic::EthereumSHA3
Public Class Methods
call(*values)
click to toggle source
# File lib/hashtastic/ethereum_sha3.rb, line 6 def call(*values) values = values.flatten.map do |value| if value.is_a?(String) if value[0..1] == '0x' value[2..-1] else value.unpack('H*') end elsif value.is_a?(Numeric) value.to_s(16).rjust(64, '0') else '' end end "0x#{Digest::SHA3.hexdigest(packed_values(values), 256)}" end
Also aliased as: digest
packed_values(values)
click to toggle source
# File lib/hashtastic/ethereum_sha3.rb, line 24 def packed_values(values) [values.join].pack('H*') end