diff --git a/CHANGELOG.md b/CHANGELOG.md index e738cc1..0702f37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [14.0.0-rc.2] - 2021-08-04 +### Changed +Combine Map/NMap/DoubleMap StorageEntryTypes [#23](https://github.com/paritytech/frame-metadata/pull/23) + ## [14.0.0-rc.1] - 2021-07-30 ### Added - Metadata V14 \ No newline at end of file diff --git a/frame-metadata/Cargo.toml b/frame-metadata/Cargo.toml index 0157e72..ec41e37 100644 --- a/frame-metadata/Cargo.toml +++ b/frame-metadata/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "frame-metadata" -version = "14.0.0-rc.1" +version = "14.0.0-rc.2" authors = ["Parity Technologies "] edition = "2018" license = "Apache-2.0" diff --git a/frame-metadata/src/v14.rs b/frame-metadata/src/v14.rs index f394f09..8e794fd 100644 --- a/frame-metadata/src/v14.rs +++ b/frame-metadata/src/v14.rs @@ -240,20 +240,11 @@ pub enum StorageHasher { pub enum StorageEntryType { Plain(T::Type), Map { - hasher: StorageHasher, - key: T::Type, - value: T::Type, - }, - DoubleMap { - hasher: StorageHasher, - key1: T::Type, - key2: T::Type, - value: T::Type, - key2_hasher: StorageHasher, - }, - NMap { - keys: T::Type, + /// One or more hashers, should be one hasher per key element. hashers: Vec, + /// The type of the key, can be a tuple with elements for each of the hashers. + key: T::Type, + /// The type of the value. value: T::Type, }, } @@ -264,33 +255,15 @@ impl IntoPortable for StorageEntryType { fn into_portable(self, registry: &mut Registry) -> Self::Output { match self { Self::Plain(plain) => StorageEntryType::Plain(registry.register_type(&plain)), - Self::Map { hasher, key, value } => StorageEntryType::Map { - hasher, + Self::Map { + hashers, + key, + value, + } => StorageEntryType::Map { + hashers, key: registry.register_type(&key), value: registry.register_type(&value), }, - Self::DoubleMap { - hasher, - key1, - key2, - value, - key2_hasher, - } => StorageEntryType::DoubleMap { - hasher, - key1: registry.register_type(&key1), - key2: registry.register_type(&key2), - value: registry.register_type(&value), - key2_hasher, - }, - StorageEntryType::NMap { - keys, - hashers, - value, - } => StorageEntryType::NMap { - keys: registry.register_type(&keys), - hashers, - value: registry.register_type(&value), - }, } } }