mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-27 17:28:00 +00:00
Initial: Offchain Workers (#1942)
* Refactor state-machine stuff. * Fix tests. * WiP * WiP2 * Service support for offchain workers. * Service support for offchain workers. * Testing offchain worker. * Initial version working. * Pass side effects in call. * Pass OffchainExt in context. * Submit extrinsics to the pool. * Support inherents. * Insert to inherents pool. * Inserting to the pool asynchronously. * Add test to offchain worker. * Implement convenience syntax for modules. * Dispatching offchain worker through executive. * Fix offchain test. * Remove offchain worker from timestamp. * Update Cargo.lock. * Address review comments. * Use latest patch version for futures. * Add CLI parameter for offchain worker. * Fix compilation. * Fix test. * Fix extrinsics format for tests. * Fix RPC test. * Bump spec version. * Fix executive. * Fix support macro. * Address grumbles. * Bump runtime
This commit is contained in:
@@ -76,6 +76,35 @@ pub use hash_db::Hasher;
|
||||
// pub use self::hasher::blake::BlakeHasher;
|
||||
pub use self::hasher::blake2::Blake2Hasher;
|
||||
|
||||
/// Context for executing a call into the runtime.
|
||||
#[repr(u8)]
|
||||
pub enum ExecutionContext {
|
||||
/// Context for general importing (including own blocks).
|
||||
Importing,
|
||||
/// Context used when syncing the blockchain.
|
||||
Syncing,
|
||||
/// Context used for block construction.
|
||||
BlockConstruction,
|
||||
/// Offchain worker context.
|
||||
OffchainWorker(Box<OffchainExt>),
|
||||
/// Context used for other calls.
|
||||
Other,
|
||||
}
|
||||
|
||||
/// An extended externalities for offchain workers.
|
||||
pub trait OffchainExt {
|
||||
/// Submits an extrinsics.
|
||||
///
|
||||
/// The extrinsic will either go to the pool (signed)
|
||||
/// or to the next produced block (inherent).
|
||||
fn submit_extrinsic(&mut self, extrinsic: Vec<u8>);
|
||||
}
|
||||
impl<T: OffchainExt + ?Sized> OffchainExt for Box<T> {
|
||||
fn submit_extrinsic(&mut self, ex: Vec<u8>) {
|
||||
(&mut **self).submit_extrinsic(ex)
|
||||
}
|
||||
}
|
||||
|
||||
/// Hex-serialised shim for `Vec<u8>`.
|
||||
#[derive(PartialEq, Eq, Clone)]
|
||||
#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug, Hash, PartialOrd, Ord))]
|
||||
|
||||
Reference in New Issue
Block a user