Make system properties an arbitrary JSON object, plus CI fixes (#349)

* Make system properties an arbitrary JSON object

* Add comment

* Make timestamp test more reliable

* Fmt

* Update src/client.rs

Co-authored-by: David <dvdplm@gmail.com>

* Update src/client.rs

Co-authored-by: David <dvdplm@gmail.com>

* Fix clippy errors and warnings

* Fix tests

Co-authored-by: David <dvdplm@gmail.com>
This commit is contained in:
Andrew Jones
2021-12-02 17:02:11 +00:00
committed by GitHub
parent a4f1cbd9a1
commit e05d24bd8a
7 changed files with 26 additions and 44 deletions
+8 -1
View File
@@ -157,7 +157,14 @@ impl<T: Config> Client<T> {
&self.metadata
}
/// Returns the system properties
/// Returns the properties defined in the chain spec as a JSON object.
///
/// # Note
///
/// Many chains use this to define common properties such as `token_decimals` and `token_symbol`
/// required for UIs, but this is merely a convention. It is up to the library user to
/// deserialize the JSON into the appropriate type or otherwise extract the properties defined
/// in the target chain's spec.
pub fn properties(&self) -> &SystemProperties {
&self.properties
}
+5
View File
@@ -143,6 +143,11 @@ pub struct PalletMetadata {
}
impl PalletMetadata {
/// Get the name of the pallet.
pub fn name(&self) -> &str {
&self.name
}
/// Encode a call based on this pallet metadata.
pub fn encode_call<C>(&self, call: &C) -> Result<Encoded, MetadataError>
where
+2 -11
View File
@@ -141,17 +141,8 @@ impl From<u32> for BlockNumber {
}
}
/// System properties for a Substrate-based runtime
#[derive(serde::Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Default)]
#[serde(rename_all = "camelCase")]
pub struct SystemProperties {
/// The address format
pub ss58_format: u8,
/// The number of digits after the decimal point in the native token
pub token_decimals: u8,
/// The symbol of the native token
pub token_symbol: String,
}
/// Arbitrary properties defined in the chain spec as a JSON object.
pub type SystemProperties = serde_json::Map<String, serde_json::Value>;
/// Possible transaction status events.
///