class Scale::Types::MetadataV2
Attributes
call_index[RW]
event_index[RW]
Public Class Methods
decode(scale_bytes)
click to toggle source
# File lib/metadata/metadata_v2.rb, line 13 def self.decode(scale_bytes) modules = Scale::Types.get("Vec<MetadataModule>").decode(scale_bytes).value value = { magicNumber: 1_635_018_093, metadata: { version: 2, modules: modules.map(&:value) } } result = MetadataV2.new(value) call_module_index = 0 event_module_index = 0 modules.map(&:value).each do |m| if m[:calls] m[:calls].each_with_index do |call, index| call[:lookup] = "%02x%02x" % [call_module_index, index] result.call_index[call[:lookup]] = [m, call] end call_module_index += 1 end if m[:events] m[:events].each_with_index do |event, index| event[:lookup] = "%02x%02x" % [event_module_index, index] result.event_index[event[:lookup]] = [m, event] end event_module_index += 1 end end result end
new(value)
click to toggle source
Calls superclass method
Scale::Types::Base::new
# File lib/metadata/metadata_v2.rb, line 7 def initialize(value) @call_index = {} @event_index = {} super(value) end