mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-09 20:11:09 +00:00
rpc: Expose chainHead_unpin method for blocks
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
This commit is contained in:
@@ -64,20 +64,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
.call("AccountNonceApi_account_nonce".into(), Some(&call_params))
|
||||
.await?;
|
||||
println!("[hash={:?}] call={:?}", block.hash(), call);
|
||||
}
|
||||
|
||||
// Subscribe to the `chainHead_follow` method.
|
||||
let mut follow_sub = api.rpc().subscribe_chainhead_follow(false).await?;
|
||||
|
||||
// Handle all subscriptions from the `chainHead_follow`.
|
||||
while let Some(event) = follow_sub.next().await {
|
||||
let event = event?;
|
||||
|
||||
println!(
|
||||
"sub_id: {:?} event: {:?}",
|
||||
follow_sub.subscription_id(),
|
||||
event
|
||||
);
|
||||
// Unpin the block as last step.
|
||||
block.unpin().await?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
|
||||
@@ -162,6 +162,22 @@ where
|
||||
"Failed to execute the runtime API call".into(),
|
||||
))
|
||||
}
|
||||
|
||||
/// Unpin this block.
|
||||
///
|
||||
/// # Note
|
||||
///
|
||||
/// Call this method when you are no longer interested in making queries
|
||||
/// against this block.
|
||||
///
|
||||
/// Failing to call this method will eventually terminate the subscription.
|
||||
pub async fn unpin(self) -> Result<(), Error> {
|
||||
self.client
|
||||
.rpc()
|
||||
.chainhead_unpin(self.subscription_id, self.hash)
|
||||
.await?;
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
/// A representation of a block.
|
||||
|
||||
@@ -698,6 +698,22 @@ impl<T: Config> Rpc<T> {
|
||||
Ok(header)
|
||||
}
|
||||
|
||||
/// Unpin a block reported by the `chainHead_follow` subscription.
|
||||
pub async fn chainhead_unpin(
|
||||
&self,
|
||||
subscription_id: String,
|
||||
hash: T::Hash,
|
||||
) -> Result<(), Error> {
|
||||
self.client
|
||||
.request(
|
||||
"chainHead_unstable_unpin",
|
||||
rpc_params![subscription_id, hash],
|
||||
)
|
||||
.await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Parse `chaiHead_header` response and return the block's header.
|
||||
///
|
||||
/// # Note
|
||||
|
||||
Reference in New Issue
Block a user