class Scale::Types::MetadataModule

Public Class Methods

decode(scale_bytes) click to toggle source
# File lib/metadata/metadata.rb, line 56
def self.decode(scale_bytes)
  name = String.decode(scale_bytes).value
  prefix = String.decode(scale_bytes).value

  result = {
    name: name,
    prefix: prefix
  }

  has_storage = Bool.decode(scale_bytes).value
  if has_storage
    storages = Scale::Types.get("Vec<MetadataModuleStorage>").decode(scale_bytes).value
    result[:storage] = storages.map(&:value)
  end

  has_calls = Bool.decode(scale_bytes).value
  if has_calls
    calls = Scale::Types.get("Vec<MetadataModuleCall>").decode(scale_bytes).value
    result[:calls] = calls.map(&:value)
  end

  has_events = Bool.decode(scale_bytes).value
  if has_events
    events = Scale::Types.get("Vec<MetadataModuleEvent>").decode(scale_bytes).value
    result[:events] = events.map(&:value)
  end

  MetadataModule.new(result)
end

Public Instance Methods

get_storage(storage_name) click to toggle source
# File lib/metadata/metadata.rb, line 86
def get_storage(storage_name)
  self.value[:storage].find { |storage| storage[:name].downcase == storage_name.downcase }
end