mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-28 00:28:01 +00:00
Move create_inherents into the block-builder (#6553)
* Move `create_inherents` into the block-builder This moves the `create_inherents` call into the block-builder. This has the advantage that `create_inherents` will be able to reuse the same context that will be used when applying the extrinsics and we also save one call to `on_initialize`. To make sure that `create_inherents` does not modify any state, we execute it in a transaction that is rolled-back after doing the runtime call. * Feedback and build fix * Update primitives/runtime/src/lib.rs Co-authored-by: Sergei Shulepov <sergei@parity.io> * Update client/block-builder/src/lib.rs Co-authored-by: Sergei Shulepov <sergei@parity.io>
This commit is contained in:
@@ -801,6 +801,23 @@ impl Drop for SignatureBatching {
|
||||
}
|
||||
}
|
||||
|
||||
/// Describes on what should happen with a storage transaction.
|
||||
pub enum TransactionOutcome<R> {
|
||||
/// Commit the transaction.
|
||||
Commit(R),
|
||||
/// Rollback the transaction.
|
||||
Rollback(R),
|
||||
}
|
||||
|
||||
impl<R> TransactionOutcome<R> {
|
||||
/// Convert into the inner type.
|
||||
pub fn into_inner(self) -> R {
|
||||
match self {
|
||||
Self::Commit(r) => r,
|
||||
Self::Rollback(r) => r,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
|
||||
Reference in New Issue
Block a user