scale_rb 0.1.15 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/hasher.rb CHANGED
@@ -3,52 +3,54 @@
3
3
  require 'xxhash'
4
4
  require 'blake2b'
5
5
 
6
- module Hasher
7
- class << self
8
- # params:
9
- # hasher: 'Identity' | 'Twox64Concat' | 'Blake2128Concat'
10
- # bytes: u8 array
11
- # return: u8 array
12
- def apply_hasher(hasher, bytes)
13
- function_name = hasher.gsub('_', '').underscore
14
- Hasher.send(function_name, bytes)
6
+ module ScaleRb
7
+ module Hasher
8
+ class << self
9
+ # params:
10
+ # hasher: 'Identity' | 'Twox64Concat' | 'Blake2128Concat'
11
+ # bytes: u8 array
12
+ # return: u8 array
13
+ def apply_hasher(hasher, bytes)
14
+ function_name = hasher.gsub('_', '')._underscore
15
+ Hasher.send(function_name, bytes)
16
+ end
15
17
  end
16
- end
17
18
 
18
- class << self
19
- def identity(bytes)
20
- bytes
21
- end
19
+ class << self
20
+ def identity(bytes)
21
+ bytes
22
+ end
22
23
 
23
- def twox64_concat(bytes)
24
- data = bytes.to_utf8
25
- twox64(data) + bytes
26
- end
24
+ def twox64_concat(bytes)
25
+ data = bytes._to_utf8
26
+ twox64(data) + bytes
27
+ end
27
28
 
28
- def blake2128_concat(bytes)
29
- blake2_128(bytes) + bytes
30
- end
29
+ def blake2128_concat(bytes)
30
+ blake2_128(bytes) + bytes
31
+ end
31
32
 
32
- def twox64(str)
33
- result = XXhash.xxh64 str, 0
34
- result.to_bytes.reverse
35
- end
33
+ def twox64(str)
34
+ result = XXhash.xxh64 str, 0
35
+ result._to_bytes.reverse
36
+ end
36
37
 
37
- def twox128(str)
38
- bytes = []
39
- 2.times do |i|
40
- result = XXhash.xxh64 str, i
41
- bytes += result.to_bytes.reverse
38
+ def twox128(str)
39
+ bytes = []
40
+ 2.times do |i|
41
+ result = XXhash.xxh64 str, i
42
+ bytes += result._to_bytes.reverse
43
+ end
44
+ bytes
42
45
  end
43
- bytes
44
- end
45
46
 
46
- def blake2_128(bytes)
47
- Blake2b.hex(bytes, 16).to_bytes
48
- end
47
+ def blake2_128(bytes)
48
+ Blake2b.hex(bytes, 16)._to_bytes
49
+ end
49
50
 
50
- def blake2_256(bytes)
51
- Blake2b.hex(bytes, 32).to_bytes
51
+ def blake2_256(bytes)
52
+ Blake2b.hex(bytes, 32)._to_bytes
53
+ end
52
54
  end
53
55
  end
54
56
  end
@@ -1,129 +1,137 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Metadata
4
- class << self
5
- def decode_metadata(bytes)
6
- metadata, = ScaleRb.decode('MetadataTop', bytes, TYPES)
7
- metadata
3
+ module ScaleRb
4
+ module Metadata
5
+ class << self
6
+ def decode_metadata(bytes)
7
+ metadata, = ScaleRb.decode('MetadataTop', bytes, TYPES)
8
+ metadata
9
+ end
10
+
11
+ def build_registry(metadata)
12
+ raise ScaleRb::NotImplemented, metadata._get(:metadata).keys.first unless metadata._get(:metadata)._key?(:v14)
13
+
14
+ metadata_v14 = metadata._get(:metadata)._get(:v14)
15
+ MetadataV14.build_registry(metadata_v14)
16
+ end
17
+
18
+ def get_module(pallet_name, metadata)
19
+ version = metadata._get(:metadata).keys.first
20
+ raise ScaleRb::NotImplemented, metadata._get(:metadata).keys.first unless %w[v9 v10 v11 v12 v13
21
+ v14].include?(version.to_s)
22
+
23
+ Metadata.const_get("Metadata#{version.upcase}").get_module(pallet_name, metadata)
24
+ end
25
+
26
+ def get_module_by_index(pallet_index, metadata)
27
+ version = metadata._get(:metadata).keys.first
28
+ raise ScaleRb::NotImplemented, metadata._get(:metadata).keys.first unless %w[v9 v10 v11 v12 v13
29
+ v14].include?(version.to_s)
30
+
31
+ Metadata.const_get("Metadata#{version.upcase}").get_module_by_index(pallet_index, metadata)
32
+ end
33
+
34
+ def get_storage_item(pallet_name, item_name, metadata)
35
+ version = metadata._get(:metadata).keys.first
36
+ raise ScaleRb::NotImplemented, metadata._get(:metadata).keys.first unless %w[v9 v10 v11 v12 v13
37
+ v14].include?(version.to_s)
38
+
39
+ Metadata.const_get("Metadata#{version.upcase}").get_storage_item(pallet_name, item_name, metadata)
40
+ end
41
+
42
+ def get_calls_type(pallet_name, metadata)
43
+ version = metadata._get(:metadata).keys.first
44
+ raise ScaleRb::NotImplemented, metadata._get(:metadata).keys.first unless %w[v9 v10 v11 v12 v13
45
+ v14].include?(version.to_s)
46
+
47
+ Metadata.const_get("Metadata#{version.upcase}").get_calls_type(pallet_name, metadata)
48
+ end
49
+
50
+ def get_calls_type_id(pallet_name, metadata)
51
+ version = metadata._get(:metadata).keys.first
52
+ raise ScaleRb::NotImplemented, metadata._get(:metadata).keys.first unless %w[v9 v10 v11 v12 v13
53
+ v14].include?(version.to_s)
54
+
55
+ Metadata.const_get("Metadata#{version.upcase}").get_calls_type_id(pallet_name, metadata)
56
+ end
57
+
58
+ def get_call_type(pallet_name, call_name, metadata)
59
+ version = metadata._get(:metadata).keys.first
60
+ raise ScaleRb::NotImplemented, metadata._get(:metadata).keys.first unless %w[v9 v10 v11 v12 v13
61
+ v14].include?(version.to_s)
62
+
63
+ Metadata.const_get("Metadata#{version.upcase}").get_call_type(pallet_name, call_name, metadata)
64
+ end
65
+
66
+ # call examples:
67
+ # {:pallet_name=>"Deposit", :call_name=>"Claim", :call=>["claim", []]}
68
+ # {:pallet_name=>"Balances", :call_name=>"Transfer", :call=>[{:transfer=>{:dest=>[10, 18, 135, 151, 117, 120, 248, 136, 189, 193, 199, 98, 119, 129, 175, 28, 192, 0, 230, 171], :value=>11000000000000000000}}, []]}
69
+ def encode_call(call, metadata)
70
+ calls_type_id = get_calls_type_id(call[:pallet_name], metadata)
71
+ pallet_index = get_module(call[:pallet_name], metadata)._get(:index)
72
+ [pallet_index] + PortableCodec.encode(calls_type_id, call[:call].first, build_registry(metadata))
73
+ end
74
+
75
+ # callbytes's structure is: pallet_index + call_index + argsbytes
76
+ #
77
+ # callbytes examples:
78
+ # "0x0901"._to_bytes
79
+ # "0x05000a1287977578f888bdc1c7627781af1cc000e6ab1300004c31b8d9a798"._to_bytes
80
+ def decode_call(callbytes, metadata)
81
+ pallet_index = callbytes[0]
82
+ pallet = get_module_by_index(pallet_index, metadata)
83
+
84
+ pallet_name = pallet._get(:name)
85
+
86
+ # Remove the pallet_index
87
+ # The callbytes we used below should not contain the pallet index.
88
+ # This is because the pallet index is not part of the call type.
89
+ # Its structure is: call_index + call_args
90
+ callbytes_without_pallet_index = callbytes[1..]
91
+ calls_type_id = pallet._get(:calls)._get(:type)
92
+ decoded = PortableCodec.decode(
93
+ calls_type_id,
94
+ callbytes_without_pallet_index,
95
+ build_registry(metadata)
96
+ )
97
+
98
+ {
99
+ pallet_name: pallet_name,
100
+ call_name: decoded.first.is_a?(String) ? decoded.first._to_camel : decoded.first.keys.first.to_s._to_camel,
101
+ call: decoded
102
+ }
103
+ end
8
104
  end
9
105
 
10
- def build_registry(metadata)
11
- raise ScaleRb::NotImplemented, metadata._get(:metadata).keys.first unless metadata._get(:metadata)._key?(:v14)
12
-
13
- metadata_v14 = metadata._get(:metadata)._get(:v14)
14
- MetadataV14.build_registry(metadata_v14)
15
- end
16
-
17
- def get_module(pallet_name, metadata)
18
- version = metadata._get(:metadata).keys.first
19
- raise ScaleRb::NotImplemented, metadata._get(:metadata).keys.first unless %w[v9 v10 v11 v12 v13 v14].include?(version.to_s)
20
-
21
- Metadata.const_get("Metadata#{version.upcase}").get_module(pallet_name, metadata)
22
- end
23
-
24
- def get_module_by_index(pallet_index, metadata)
25
- version = metadata._get(:metadata).keys.first
26
- raise ScaleRb::NotImplemented, metadata._get(:metadata).keys.first unless %w[v9 v10 v11 v12 v13 v14].include?(version.to_s)
27
-
28
- Metadata.const_get("Metadata#{version.upcase}").get_module_by_index(pallet_index, metadata)
29
- end
30
-
31
- def get_storage_item(pallet_name, item_name, metadata)
32
- version = metadata._get(:metadata).keys.first
33
- raise ScaleRb::NotImplemented, metadata._get(:metadata).keys.first unless %w[v9 v10 v11 v12 v13 v14].include?(version.to_s)
34
-
35
- Metadata.const_get("Metadata#{version.upcase}").get_storage_item(pallet_name, item_name, metadata)
36
- end
37
-
38
- def get_calls_type(pallet_name, metadata)
39
- version = metadata._get(:metadata).keys.first
40
- raise ScaleRb::NotImplemented, metadata._get(:metadata).keys.first unless %w[v9 v10 v11 v12 v13 v14].include?(version.to_s)
41
-
42
- Metadata.const_get("Metadata#{version.upcase}").get_calls_type(pallet_name, metadata)
43
- end
44
-
45
- def get_calls_type_id(pallet_name, metadata)
46
- version = metadata._get(:metadata).keys.first
47
- raise ScaleRb::NotImplemented, metadata._get(:metadata).keys.first unless %w[v9 v10 v11 v12 v13 v14].include?(version.to_s)
48
-
49
- Metadata.const_get("Metadata#{version.upcase}").get_calls_type_id(pallet_name, metadata)
50
- end
51
-
52
- def get_call_type(pallet_name, call_name, metadata)
53
- version = metadata._get(:metadata).keys.first
54
- raise ScaleRb::NotImplemented, metadata._get(:metadata).keys.first unless %w[v9 v10 v11 v12 v13 v14].include?(version.to_s)
55
-
56
- Metadata.const_get("Metadata#{version.upcase}").get_call_type(pallet_name, call_name, metadata)
57
- end
58
-
59
- # call examples:
60
- # {:pallet_name=>"Deposit", :call_name=>"Claim", :call=>["claim", []]}
61
- # {:pallet_name=>"Balances", :call_name=>"Transfer", :call=>[{:transfer=>{:dest=>[10, 18, 135, 151, 117, 120, 248, 136, 189, 193, 199, 98, 119, 129, 175, 28, 192, 0, 230, 171], :value=>11000000000000000000}}, []]}
62
- def encode_call(call, metadata)
63
- calls_type_id = get_calls_type_id(call[:pallet_name], metadata)
64
- pallet_index = get_module(call[:pallet_name], metadata)._get(:index)
65
- [pallet_index] + PortableCodec.encode(calls_type_id, call[:call].first, build_registry(metadata))
66
- end
67
-
68
- # callbytes's structure is: pallet_index + call_index + argsbytes
69
- #
70
- # callbytes examples:
71
- # "0x0901".to_bytes
72
- # "0x05000a1287977578f888bdc1c7627781af1cc000e6ab1300004c31b8d9a798".to_bytes
73
- def decode_call(callbytes, metadata)
74
- pallet_index = callbytes[0]
75
- pallet = get_module_by_index(pallet_index, metadata)
76
-
77
- pallet_name = pallet._get(:name)
78
-
79
- # Remove the pallet_index
80
- # The callbytes we used below should not contain the pallet index.
81
- # This is because the pallet index is not part of the call type.
82
- # Its structure is: call_index + call_args
83
- callbytes_without_pallet_index = callbytes[1..]
84
- calls_type_id = pallet._get(:calls)._get(:type)
85
- decoded = PortableCodec.decode(
86
- calls_type_id,
87
- callbytes_without_pallet_index,
88
- build_registry(metadata)
89
- )
90
-
91
- {
92
- pallet_name: pallet_name,
93
- call_name: decoded.first.is_a?(String) ? decoded.first.to_camel : decoded.first.keys.first.to_s.to_camel,
94
- call: decoded
106
+ TYPES = {
107
+ 'MetadataTop' => {
108
+ magicNumber: 'U32',
109
+ metadata: 'Metadata'
110
+ },
111
+ 'Metadata' => {
112
+ _enum: {
113
+ v0: 'MetadataV0',
114
+ v1: 'MetadataV1',
115
+ v2: 'MetadataV2',
116
+ v3: 'MetadataV3',
117
+ v4: 'MetadataV4',
118
+ v5: 'MetadataV5',
119
+ v6: 'MetadataV6',
120
+ v7: 'MetadataV7',
121
+ v8: 'MetadataV8',
122
+ v9: 'MetadataV9',
123
+ v10: 'MetadataV10',
124
+ v11: 'MetadataV11',
125
+ v12: 'MetadataV12',
126
+ v13: 'MetadataV13',
127
+ v14: 'MetadataV14'
128
+ }
95
129
  }
96
- end
130
+ }.merge(MetadataV14::TYPES)
131
+ .merge(MetadataV13::TYPES)
132
+ .merge(MetadataV12::TYPES)
133
+ .merge(MetadataV11::TYPES)
134
+ .merge(MetadataV10::TYPES)
135
+ .merge(MetadataV9::TYPES)
97
136
  end
98
-
99
- TYPES = {
100
- 'MetadataTop' => {
101
- magicNumber: 'U32',
102
- metadata: 'Metadata'
103
- },
104
- 'Metadata' => {
105
- _enum: {
106
- v0: 'MetadataV0',
107
- v1: 'MetadataV1',
108
- v2: 'MetadataV2',
109
- v3: 'MetadataV3',
110
- v4: 'MetadataV4',
111
- v5: 'MetadataV5',
112
- v6: 'MetadataV6',
113
- v7: 'MetadataV7',
114
- v8: 'MetadataV8',
115
- v9: 'MetadataV9',
116
- v10: 'MetadataV10',
117
- v11: 'MetadataV11',
118
- v12: 'MetadataV12',
119
- v13: 'MetadataV13',
120
- v14: 'MetadataV14'
121
- }
122
- }
123
- }.merge(MetadataV14::TYPES)
124
- .merge(MetadataV13::TYPES)
125
- .merge(MetadataV12::TYPES)
126
- .merge(MetadataV11::TYPES)
127
- .merge(MetadataV10::TYPES)
128
- .merge(MetadataV9::TYPES)
129
137
  end
@@ -1,80 +1,83 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Metadata
4
- module MetadataV10
5
- class << self
6
- def get_module(module_name, metadata)
7
- metadata._get(:metadata)._get(:v10)._get(:modules).find do |m|
8
- m._get(:name) == module_name
3
+ module ScaleRb
4
+ module Metadata
5
+ module MetadataV10
6
+ class << self
7
+ def get_module(module_name, metadata)
8
+ metadata._get(:metadata)._get(:v10)._get(:modules).find do |m|
9
+ m._get(:name) == module_name
10
+ end
9
11
  end
10
- end
11
12
 
12
- def get_storage_item(module_name, item_name, metadata)
13
- modula = get_module(module_name, metadata)
14
- raise "Module `#{module_name}` not found" if modula.nil?
15
- modula._get(:storage)._get(:items).find do |item|
16
- item._get(:name) == item_name
13
+ def get_storage_item(module_name, item_name, metadata)
14
+ modula = get_module(module_name, metadata)
15
+ raise "Module `#{module_name}` not found" if modula.nil?
16
+
17
+ modula._get(:storage)._get(:items).find do |item|
18
+ item._get(:name) == item_name
19
+ end
17
20
  end
18
21
  end
19
- end
20
22
 
21
- TYPES = {
22
- ErrorMetadataV10: 'ErrorMetadataV9',
23
- EventMetadataV10: 'EventMetadataV9',
24
- FunctionArgumentMetadataV10: 'FunctionArgumentMetadataV9',
25
- FunctionMetadataV10: 'FunctionMetadataV9',
26
- MetadataV10: {
27
- modules: 'Vec<ModuleMetadataV10>'
28
- },
29
- ModuleConstantMetadataV10: 'ModuleConstantMetadataV9',
30
- ModuleMetadataV10: {
31
- name: 'Text',
32
- storage: 'Option<StorageMetadataV10>',
33
- calls: 'Option<Vec<FunctionMetadataV10>>',
34
- events: 'Option<Vec<EventMetadataV10>>',
35
- constants: 'Vec<ModuleConstantMetadataV10>',
36
- errors: 'Vec<ErrorMetadataV10>'
37
- },
38
- StorageEntryModifierV10: 'StorageEntryModifierV9',
39
- StorageEntryMetadataV10: {
40
- name: 'Text',
41
- modifier: 'StorageEntryModifierV10',
42
- type: 'StorageEntryTypeV10',
43
- fallback: 'Bytes',
44
- docs: 'Vec<Text>'
45
- },
46
- StorageEntryTypeV10: {
47
- _enum: {
48
- Plain: 'Type',
49
- Map: {
50
- hasher: 'StorageHasherV10',
51
- key: 'Type',
52
- value: 'Type',
53
- linked: 'bool'
54
- },
55
- DoubleMap: {
56
- hasher: 'StorageHasherV10',
57
- key1: 'Type',
58
- key2: 'Type',
59
- value: 'Type',
60
- key2Hasher: 'StorageHasherV10'
23
+ TYPES = {
24
+ ErrorMetadataV10: 'ErrorMetadataV9',
25
+ EventMetadataV10: 'EventMetadataV9',
26
+ FunctionArgumentMetadataV10: 'FunctionArgumentMetadataV9',
27
+ FunctionMetadataV10: 'FunctionMetadataV9',
28
+ MetadataV10: {
29
+ modules: 'Vec<ModuleMetadataV10>'
30
+ },
31
+ ModuleConstantMetadataV10: 'ModuleConstantMetadataV9',
32
+ ModuleMetadataV10: {
33
+ name: 'Text',
34
+ storage: 'Option<StorageMetadataV10>',
35
+ calls: 'Option<Vec<FunctionMetadataV10>>',
36
+ events: 'Option<Vec<EventMetadataV10>>',
37
+ constants: 'Vec<ModuleConstantMetadataV10>',
38
+ errors: 'Vec<ErrorMetadataV10>'
39
+ },
40
+ StorageEntryModifierV10: 'StorageEntryModifierV9',
41
+ StorageEntryMetadataV10: {
42
+ name: 'Text',
43
+ modifier: 'StorageEntryModifierV10',
44
+ type: 'StorageEntryTypeV10',
45
+ fallback: 'Bytes',
46
+ docs: 'Vec<Text>'
47
+ },
48
+ StorageEntryTypeV10: {
49
+ _enum: {
50
+ Plain: 'Type',
51
+ Map: {
52
+ hasher: 'StorageHasherV10',
53
+ key: 'Type',
54
+ value: 'Type',
55
+ linked: 'bool'
56
+ },
57
+ DoubleMap: {
58
+ hasher: 'StorageHasherV10',
59
+ key1: 'Type',
60
+ key2: 'Type',
61
+ value: 'Type',
62
+ key2Hasher: 'StorageHasherV10'
63
+ }
61
64
  }
65
+ },
66
+ StorageMetadataV10: {
67
+ prefix: 'Text',
68
+ items: 'Vec<StorageEntryMetadataV10>'
69
+ },
70
+ StorageHasherV10: {
71
+ _enum: %w[
72
+ Blake2_128
73
+ Blake2_256
74
+ Blake2_128Concat
75
+ Twox128
76
+ Twox256
77
+ Twox64Concat
78
+ ]
62
79
  }
63
- },
64
- StorageMetadataV10: {
65
- prefix: 'Text',
66
- items: 'Vec<StorageEntryMetadataV10>'
67
- },
68
- StorageHasherV10: {
69
- _enum: %w[
70
- Blake2_128
71
- Blake2_256
72
- Blake2_128Concat
73
- Twox128
74
- Twox256
75
- Twox64Concat
76
- ]
77
- }
78
- }.freeze
80
+ }.freeze
81
+ end
79
82
  end
80
83
  end
@@ -1,86 +1,89 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Metadata
4
- module MetadataV11
5
- class << self
6
- def get_module(module_name, metadata)
7
- metadata._get(:metadata)._get(:v11)._get(:modules).find do |m|
8
- m._get(:name) == module_name
3
+ module ScaleRb
4
+ module Metadata
5
+ module MetadataV11
6
+ class << self
7
+ def get_module(module_name, metadata)
8
+ metadata._get(:metadata)._get(:v11)._get(:modules).find do |m|
9
+ m._get(:name) == module_name
10
+ end
9
11
  end
10
- end
11
12
 
12
- def get_storage_item(module_name, item_name, metadata)
13
- modula = get_module(module_name, metadata)
14
- raise "Module `#{module_name}` not found" if modula.nil?
15
- modula._get(:storage)._get(:items).find do |item|
16
- item._get(:name) == item_name
13
+ def get_storage_item(module_name, item_name, metadata)
14
+ modula = get_module(module_name, metadata)
15
+ raise "Module `#{module_name}` not found" if modula.nil?
16
+
17
+ modula._get(:storage)._get(:items).find do |item|
18
+ item._get(:name) == item_name
19
+ end
17
20
  end
18
21
  end
19
- end
20
22
 
21
- TYPES = {
22
- ErrorMetadataV11: 'ErrorMetadataV10',
23
- EventMetadataV11: 'EventMetadataV10',
24
- ExtrinsicMetadataV11: {
25
- version: 'u8',
26
- signedExtensions: 'Vec<Text>'
27
- },
28
- FunctionArgumentMetadataV11: 'FunctionArgumentMetadataV10',
29
- FunctionMetadataV11: 'FunctionMetadataV10',
30
- MetadataV11: {
31
- modules: 'Vec<ModuleMetadataV11>',
32
- extrinsic: 'ExtrinsicMetadataV11'
33
- },
34
- ModuleConstantMetadataV11: 'ModuleConstantMetadataV10',
35
- ModuleMetadataV11: {
36
- name: 'Text',
37
- storage: 'Option<StorageMetadataV11>',
38
- calls: 'Option<Vec<FunctionMetadataV11>>',
39
- events: 'Option<Vec<EventMetadataV11>>',
40
- constants: 'Vec<ModuleConstantMetadataV11>',
41
- errors: 'Vec<ErrorMetadataV11>'
42
- },
43
- StorageEntryModifierV11: 'StorageEntryModifierV10',
44
- StorageEntryMetadataV11: {
45
- name: 'Text',
46
- modifier: 'StorageEntryModifierV11',
47
- type: 'StorageEntryTypeV11',
48
- fallback: 'Bytes',
49
- docs: 'Vec<Text>'
50
- },
51
- StorageEntryTypeV11: {
52
- _enum: {
53
- Plain: 'Type',
54
- Map: {
55
- hasher: 'StorageHasherV11',
56
- key: 'Type',
57
- value: 'Type',
58
- linked: 'bool'
59
- },
60
- DoubleMap: {
61
- hasher: 'StorageHasherV11',
62
- key1: 'Type',
63
- key2: 'Type',
64
- value: 'Type',
65
- key2Hasher: 'StorageHasherV11'
23
+ TYPES = {
24
+ ErrorMetadataV11: 'ErrorMetadataV10',
25
+ EventMetadataV11: 'EventMetadataV10',
26
+ ExtrinsicMetadataV11: {
27
+ version: 'u8',
28
+ signedExtensions: 'Vec<Text>'
29
+ },
30
+ FunctionArgumentMetadataV11: 'FunctionArgumentMetadataV10',
31
+ FunctionMetadataV11: 'FunctionMetadataV10',
32
+ MetadataV11: {
33
+ modules: 'Vec<ModuleMetadataV11>',
34
+ extrinsic: 'ExtrinsicMetadataV11'
35
+ },
36
+ ModuleConstantMetadataV11: 'ModuleConstantMetadataV10',
37
+ ModuleMetadataV11: {
38
+ name: 'Text',
39
+ storage: 'Option<StorageMetadataV11>',
40
+ calls: 'Option<Vec<FunctionMetadataV11>>',
41
+ events: 'Option<Vec<EventMetadataV11>>',
42
+ constants: 'Vec<ModuleConstantMetadataV11>',
43
+ errors: 'Vec<ErrorMetadataV11>'
44
+ },
45
+ StorageEntryModifierV11: 'StorageEntryModifierV10',
46
+ StorageEntryMetadataV11: {
47
+ name: 'Text',
48
+ modifier: 'StorageEntryModifierV11',
49
+ type: 'StorageEntryTypeV11',
50
+ fallback: 'Bytes',
51
+ docs: 'Vec<Text>'
52
+ },
53
+ StorageEntryTypeV11: {
54
+ _enum: {
55
+ Plain: 'Type',
56
+ Map: {
57
+ hasher: 'StorageHasherV11',
58
+ key: 'Type',
59
+ value: 'Type',
60
+ linked: 'bool'
61
+ },
62
+ DoubleMap: {
63
+ hasher: 'StorageHasherV11',
64
+ key1: 'Type',
65
+ key2: 'Type',
66
+ value: 'Type',
67
+ key2Hasher: 'StorageHasherV11'
68
+ }
66
69
  }
70
+ },
71
+ StorageMetadataV11: {
72
+ prefix: 'Text',
73
+ items: 'Vec<StorageEntryMetadataV11>'
74
+ },
75
+ StorageHasherV11: {
76
+ _enum: %w[
77
+ Blake2_128
78
+ Blake2_256
79
+ Blake2_128Concat
80
+ Twox128
81
+ Twox256
82
+ Twox64Concat
83
+ Identity
84
+ ]
67
85
  }
68
- },
69
- StorageMetadataV11: {
70
- prefix: 'Text',
71
- items: 'Vec<StorageEntryMetadataV11>'
72
- },
73
- StorageHasherV11: {
74
- _enum: %w[
75
- Blake2_128
76
- Blake2_256
77
- Blake2_128Concat
78
- Twox128
79
- Twox256
80
- Twox64Concat
81
- Identity
82
- ]
83
- }
84
- }.freeze
86
+ }.freeze
87
+ end
85
88
  end
86
89
  end