class Scale::Types::MetadataV0
Attributes
call_index[RW]
event_index[RW]
Public Class Methods
decode(scale_bytes)
click to toggle source
# File lib/metadata/metadata_v0.rb, line 13 def self.decode(scale_bytes) value = { metadata: { version: 0, outerEvent: { name: Bytes.decode(scale_bytes).value, events: [] }, modules: [], outerDispatch: { name: "Call", calls: [] } } } events_modules = Scale::Types.get("Vec<MetadataV0EventModule>").decode(scale_bytes).value.map(&:value) modules = Scale::Types.get("Vec<MetadataV0Module>").decode(scale_bytes).value.map(&:value) Bytes.decode(scale_bytes).value sections = Scale::Types.get("Vec<MetadataV0Section>").decode(scale_bytes).value.map(&:value) value[:metadata][:outerEvent][:events] = events_modules value[:metadata][:modules] = modules value[:metadata][:outerDispatch][:calls] = sections result = MetadataV0.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" % [call_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_v0.rb, line 7 def initialize(value) @call_index = {} @event_index = {} super(value) end