message: [types] add display impl for OnChainConfigPayload
diff: @@ -14,7 +14,7 @@ use move_core_types::{
  move_resource::MoveResource,
  };
  use serde::{de::DeserializeOwned, Deserialize, Serialize};
  -use std::{collections::HashMap, sync::Arc};
  +use std::{collections::HashMap, fmt, sync::Arc};
  mod libra_version;
  mod registered_currencies;
  @@ -49,6 +49,16 @@ impl ConfigID {
  }
  }
  +impl fmt::Display for ConfigID {
  + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
  + write!(
  + f,
  + "OnChain config ID [address: {}, identifier: {}]",
  + self.0, self.1
  + )
  + }
  +}
  +
  /// State sync will panic if the value of any config in this registry is uninitialized
  pub const ON_CHAIN_CONFIG_REGISTRY: &[ConfigID] = &[
  VMConfig::CONFIG_ID,
  @@ -86,6 +96,20 @@ impl OnChainConfigPayload {
  }
  }
  +impl fmt::Display for OnChainConfigPayload {
  + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
  + let mut config_ids = "".to_string();
  + for id in self.configs.keys() {
  + config_ids += &id.to_string();
  + }
  + write!(
  + f,
  + "OnChainConfigPayload [epoch: {}, configs: {}]",
  + self.epoch, config_ids
  + )
  + }
  +}
  +
  /// Trait to be implemented by a storage type from which to read on-chain configs
  pub trait ConfigStorage {
  fn fetch_config(&self, access_path: AccessPath) -> Option<Vec<u8>>;
  