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