Skip to content

Commit 4dc63dc

Browse files
philipstanislausvedhavyas
authored andcommitted
Update metadatav10 (#51)
* Add support for metadata v10 * Fix linting errors
1 parent b277fcc commit 4dc63dc

11 files changed

Lines changed: 762 additions & 50 deletions

.golangci.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ run:
3535
# no need to include all autogenerated files, we confidently recognize
3636
# autogenerated files. If it's not please let us know.
3737
skip-files:
38-
- types/metadata_examplary.go
38+
- types/metadataV[0-9]+_examplary.go
3939
# - ".*\\.my\\.go$"
4040
# - lib/bad.go
4141

@@ -114,6 +114,12 @@ issues:
114114
- path: types/uint.go
115115
linters:
116116
- dupl
117+
- path: types/metadataV8.go
118+
linters:
119+
- dupl
120+
- path: types/metadataV10.go
121+
linters:
122+
- dupl
117123
- path: types/option_int.go
118124
linters:
119125
- dupl
@@ -126,12 +132,6 @@ issues:
126132
- path: types/storage_data_raw_test.go
127133
linters:
128134
- dupl
129-
- path: types/metadata_examplary.go
130-
text: ".*"
131-
# linters:
132-
# - dupl
133-
# - golint
134-
# - misspell
135135
- path: doc.go
136136
linters:
137137
- lll

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ run-substrate-docker: ## runs the Substrate 1.0 Default Docker image, this can
5050
docker run -p 9933:9933 -p 9944:9944 -p 30333:30333 parity/substrate:latest-v1.0 --dev --rpc-external --ws-external
5151

5252
run-substrate-docker-v2: ## runs the Substrate 2.0 Default Docker image, this can be used to run the tests
53-
docker run -p 9933:9933 -p 9944:9944 -p 30333:30333 parity/substrate:2.0.0-5dece71 --dev --rpc-external --ws-external
53+
docker run -p 9933:9933 -p 9944:9944 -p 30333:30333 parity/substrate:2.0.0-ddb309ae --dev --rpc-external --ws-external
5454

5555
help: ## shows this help
5656
@sed -ne '/@sed/!s/## //p' $(MAKEFILE_LIST)

types/metadata.go

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,18 @@ const MagicNumber uint32 = 0x6174656d
2727
// Modelled after https://github.com/paritytech/substrate/blob/v1.0.0rc2/srml/metadata/src/lib.rs
2828

2929
type Metadata struct {
30-
MagicNumber uint32
31-
Version uint8
32-
IsMetadataV4 bool
33-
AsMetadataV4 MetadataV4
34-
IsMetadataV7 bool
35-
AsMetadataV7 MetadataV7
36-
IsMetadataV8 bool
37-
AsMetadataV8 MetadataV8
38-
IsMetadataV9 bool
39-
AsMetadataV9 MetadataV9
30+
MagicNumber uint32
31+
Version uint8
32+
IsMetadataV4 bool
33+
AsMetadataV4 MetadataV4
34+
IsMetadataV7 bool
35+
AsMetadataV7 MetadataV7
36+
IsMetadataV8 bool
37+
AsMetadataV8 MetadataV8
38+
IsMetadataV9 bool
39+
AsMetadataV9 MetadataV9
40+
IsMetadataV10 bool
41+
AsMetadataV10 MetadataV10
4042
}
4143

4244
func NewMetadataV4() *Metadata {
@@ -55,6 +57,10 @@ func NewMetadataV9() *Metadata {
5557
return &Metadata{Version: 9, IsMetadataV9: true, AsMetadataV9: MetadataV9{make([]ModuleMetadataV8, 0)}}
5658
}
5759

60+
func NewMetadataV10() *Metadata {
61+
return &Metadata{Version: 10, IsMetadataV10: true, AsMetadataV10: MetadataV10{make([]ModuleMetadataV10, 0)}}
62+
}
63+
5864
func (m *Metadata) Decode(decoder scale.Decoder) error {
5965
err := decoder.Decode(&m.MagicNumber)
6066
if err != nil {
@@ -82,6 +88,9 @@ func (m *Metadata) Decode(decoder scale.Decoder) error {
8288
case 9:
8389
m.IsMetadataV9 = true
8490
err = decoder.Decode(&m.AsMetadataV9)
91+
case 10:
92+
m.IsMetadataV10 = true
93+
err = decoder.Decode(&m.AsMetadataV10)
8594
default:
8695
return fmt.Errorf("unsupported metadata version %v", m.Version)
8796
}
@@ -109,6 +118,8 @@ func (m Metadata) Encode(encoder scale.Encoder) error {
109118
err = encoder.Encode(m.AsMetadataV8)
110119
case 9:
111120
err = encoder.Encode(m.AsMetadataV9)
121+
case 10:
122+
err = encoder.Encode(m.AsMetadataV10)
112123
default:
113124
return fmt.Errorf("unsupported metadata version %v", m.Version)
114125
}
@@ -126,6 +137,8 @@ func (m *Metadata) FindCallIndex(call string) (CallIndex, error) {
126137
return m.AsMetadataV8.FindCallIndex(call)
127138
case m.IsMetadataV9:
128139
return m.AsMetadataV9.FindCallIndex(call)
140+
case m.IsMetadataV10:
141+
return m.AsMetadataV10.FindCallIndex(call)
129142
default:
130143
return CallIndex{}, fmt.Errorf("unsupported metadata version")
131144
}
@@ -141,6 +154,8 @@ func (m *Metadata) FindEventNamesForEventID(eventID EventID) (Text, Text, error)
141154
return m.AsMetadataV8.FindEventNamesForEventID(eventID)
142155
case m.IsMetadataV9:
143156
return m.AsMetadataV9.FindEventNamesForEventID(eventID)
157+
case m.IsMetadataV10:
158+
return m.AsMetadataV10.FindEventNamesForEventID(eventID)
144159
default:
145160
return "", "", fmt.Errorf("unsupported metadata version")
146161
}
@@ -156,6 +171,8 @@ func (m *Metadata) FindStorageEntryMetadata(module string, fn string) (StorageEn
156171
return m.AsMetadataV8.FindStorageEntryMetadata(module, fn)
157172
case m.IsMetadataV9:
158173
return m.AsMetadataV9.FindStorageEntryMetadata(module, fn)
174+
case m.IsMetadataV10:
175+
return m.AsMetadataV10.FindStorageEntryMetadata(module, fn)
159176
default:
160177
return nil, fmt.Errorf("unsupported metadata version")
161178
}

0 commit comments

Comments
 (0)