mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 23:21:02 +00:00
refactor overseer into proc-macro based pattern (#2962)
This commit is contained in:
committed by
GitHub
parent
2510bfc5d7
commit
3c9104daff
@@ -11,7 +11,6 @@ tracing = "0.1.26"
|
||||
thiserror = "1.0.23"
|
||||
async-trait = "0.1.47"
|
||||
polkadot-node-subsystem = { path = "../../subsystem" }
|
||||
polkadot-overseer = { path = "../../overseer" }
|
||||
polkadot-primitives = { path = "../../../primitives" }
|
||||
sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||
sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||
|
||||
@@ -26,9 +26,9 @@
|
||||
|
||||
use futures::{select, FutureExt};
|
||||
use polkadot_node_subsystem::{
|
||||
messages::{AllMessages, ProvisionerMessage}, SubsystemError,
|
||||
overseer::Handle,
|
||||
messages::ProvisionerMessage, errors::SubsystemError,
|
||||
};
|
||||
use polkadot_overseer::OverseerHandler;
|
||||
use polkadot_primitives::v1::{
|
||||
Block, Hash, InherentData as ParachainsInherentData,
|
||||
};
|
||||
@@ -48,19 +48,17 @@ impl ParachainsInherentDataProvider {
|
||||
/// Create a new instance of the [`ParachainsInherentDataProvider`].
|
||||
pub async fn create<C: HeaderBackend<Block>>(
|
||||
client: &C,
|
||||
mut overseer: OverseerHandler,
|
||||
mut overseer: Handle,
|
||||
parent: Hash,
|
||||
) -> Result<Self, Error> {
|
||||
let pid = async {
|
||||
let (sender, receiver) = futures::channel::oneshot::channel();
|
||||
overseer.wait_for_activation(parent, sender).await;
|
||||
receiver.await.map_err(|_| Error::ClosedChannelAwaitingActivation)?.map_err(Error::Subsystem)?;
|
||||
receiver.await.map_err(|_| Error::ClosedChannelAwaitingActivation)?.map_err(|e| Error::Subsystem(e))?;
|
||||
|
||||
let (sender, receiver) = futures::channel::oneshot::channel();
|
||||
overseer.send_msg(
|
||||
AllMessages::Provisioner(
|
||||
ProvisionerMessage::RequestInherentData(parent, sender),
|
||||
),
|
||||
ProvisionerMessage::RequestInherentData(parent, sender),
|
||||
std::any::type_name::<Self>(),
|
||||
).await;
|
||||
|
||||
@@ -127,7 +125,7 @@ impl sp_inherents::InherentDataProvider for ParachainsInherentDataProvider {
|
||||
#[derive(thiserror::Error, Debug)]
|
||||
pub enum Error {
|
||||
#[error("Blockchain error")]
|
||||
Blockchain(sp_blockchain::Error),
|
||||
Blockchain(#[from] sp_blockchain::Error),
|
||||
#[error("Timeout: provisioner did not return inherent data after {:?}", PROVISIONER_TIMEOUT)]
|
||||
Timeout,
|
||||
#[error("Could not find the parent header in the blockchain: {:?}", _0)]
|
||||
@@ -137,5 +135,5 @@ pub enum Error {
|
||||
#[error("Closed channel from provisioner when awaiting inherent data")]
|
||||
ClosedChannelAwaitingInherentData,
|
||||
#[error("Subsystem failed")]
|
||||
Subsystem(SubsystemError),
|
||||
Subsystem(#[from] SubsystemError),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user