//! in this pallet. This proof will then be valid as long as that relay block is not removed from
//! This pallet SHOULD NOT be used for data that can change quickly, because we allow the user to
//! submit a proof of an old state. Therefore a valid proof does not imply that the current relay
//! One storage root is inserted per parachain block, but there may be more than one relay block in
//! mapping. When creating a proof, users should ensure that they are using the latest storage root
//! The `RelayStorageRoot` mapping is bounded by `MaxStorageRoots`. To ensure that oldest storage
//! roots are removed first, there is an additional `RelayStorageRootKeys` storage item that stores
//! mapping in order (unless if using an `Identity` hash). The `MaxStorageRoots` limit applies to
//! the number of items, not to their age. Decreasing the value of `MaxStorageRoots` is a breaking
log::error!("Corrupted storage `RelayStorageRootKeys`. Need to manually cleanup entries from `RelayStorageRoot` map.");