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
digest(*values)
Alias for: call
packed_values(values) click to toggle source
# File lib/hashtastic/ethereum_sha3.rb, line 24
def packed_values(values)
  [values.join].pack('H*')
end