module Scale::Types::Set::ClassMethods

Public Instance Methods

decode(scale_bytes) click to toggle source
# File lib/scale/base.rb, line 358
def decode(scale_bytes)
  puts "  BEGIN " + self::TYPE_NAME + ": #{scale_bytes}" if Scale::Types.debug == true
  value = "Scale::Types::U#{self::BYTE_LENGTH * 8}".constantize2.decode(scale_bytes).value
  return new [] unless value || value <= 0

  result = self::ITEMS.select { |_, mask| value & mask > 0 }.keys
  puts "  END " + self::TYPE_NAME + ": #{scale_bytes}" if Scale::Types.debug == true
  new result
end
items(items, bytes_length = 1) click to toggle source

items is a hash:

{
  "TransactionPayment" => 0b00000001,
  "Transfer" => 0b00000010,
  "Reserve" => 0b00000100,
  ...
}
# File lib/scale/base.rb, line 375
def items(items, bytes_length = 1)
  raise "byte length is wrong: #{bytes_length}" unless [1, 2, 4, 8, 16].include?(bytes_length)
  const_set(:ITEMS, items)
  const_set(:BYTE_LENGTH, bytes_length)
end