class Scale::Types::MetadataModuleStorage
Public Class Methods
decode(scale_bytes)
click to toggle source
# File lib/metadata/metadata.rb, line 93 def self.decode(scale_bytes) name = String.decode(scale_bytes).value enum = { "type" => "enum", "value_list" => ["Optional", "Default"] } modifier = Scale::Types.get(enum).decode(scale_bytes).value result = { name: name, modifier: modifier } is_key_value = Bool.decode(scale_bytes).value result[:type] = if is_key_value { Map: { key: String.decode(scale_bytes).value, value: String.decode(scale_bytes).value, linked: Bool.decode(scale_bytes).value } } else { Plain: String.decode(scale_bytes).value } end result[:fallback] = Hex.decode(scale_bytes).value result[:documentation] = Scale::Types.get("Vec<String>").decode(scale_bytes).value.map(&:value) MetadataModuleStorage.new(result) end