Fix optional store items. (#120)

* Fix optional store items.

* Support querying a block hash.
This commit is contained in:
David Craven
2020-06-01 13:24:56 +02:00
committed by GitHub
parent a2eead0c3d
commit 26ada75dec
8 changed files with 94 additions and 38 deletions
+5 -12
View File
@@ -132,22 +132,15 @@ impl<T: System> Rpc<T> {
}
/// Fetch a storage key
pub async fn storage<V: Decode>(
pub async fn storage(
&self,
key: StorageKey,
hash: Option<T::Hash>,
) -> Result<Option<V>, Error> {
) -> Result<Option<StorageData>, Error> {
let params = Params::Array(vec![to_json_value(key)?, to_json_value(hash)?]);
let data: Option<StorageData> =
self.client.request("state_getStorage", params).await?;
match data {
Some(data) => {
log::debug!("state_getStorage {:?}", data.0);
let value = Decode::decode(&mut &data.0[..])?;
Ok(Some(value))
}
None => Ok(None),
}
let data = self.client.request("state_getStorage", params).await?;
log::debug!("state_getStorage {:?}", data);
Ok(data)
}
/// Query historical storage entries