mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-25 10:35:48 +00:00
Remove execute_extrinsics_without_checks as it will not be required (#2145)
This functionality was added by me for Cumulus, but after better understanding Cumulus, this will not be required.
This commit is contained in:
@@ -21,7 +21,7 @@ use rstd::prelude::*;
|
|||||||
use runtime_io::{storage_root, enumerated_trie_root, storage_changes_root, twox_128};
|
use runtime_io::{storage_root, enumerated_trie_root, storage_changes_root, twox_128};
|
||||||
use runtime_support::storage::{self, StorageValue, StorageMap};
|
use runtime_support::storage::{self, StorageValue, StorageMap};
|
||||||
use runtime_support::storage_items;
|
use runtime_support::storage_items;
|
||||||
use runtime_primitives::traits::{Hash as HashT, BlakeTwo256, Digest as DigestT, NumberFor, Block as BlockT};
|
use runtime_primitives::traits::{Hash as HashT, BlakeTwo256, Digest as DigestT};
|
||||||
use runtime_primitives::generic;
|
use runtime_primitives::generic;
|
||||||
use runtime_primitives::{ApplyError, ApplyOutcome, ApplyResult, transaction_validity::TransactionValidity};
|
use runtime_primitives::{ApplyError, ApplyOutcome, ApplyResult, transaction_validity::TransactionValidity};
|
||||||
use parity_codec::{KeyedVec, Encode};
|
use parity_codec::{KeyedVec, Encode};
|
||||||
@@ -70,15 +70,6 @@ pub fn initialize_block(header: &Header) {
|
|||||||
storage::unhashed::put(well_known_keys::EXTRINSIC_INDEX, &0u32);
|
storage::unhashed::put(well_known_keys::EXTRINSIC_INDEX, &0u32);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn execute_extrinsics_without_checks(extrinsics: Vec<<Block as BlockT>::Extrinsic>) {
|
|
||||||
// execute transactions
|
|
||||||
extrinsics.into_iter().enumerate().for_each(|(i, e)| {
|
|
||||||
storage::unhashed::put(well_known_keys::EXTRINSIC_INDEX, &(i as u32));
|
|
||||||
execute_transaction_backend(&e).unwrap_or_else(|_| panic!("Invalid transaction"));
|
|
||||||
storage::unhashed::kill(well_known_keys::EXTRINSIC_INDEX);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Actually execute all transitioning for `block`.
|
/// Actually execute all transitioning for `block`.
|
||||||
pub fn polish_block(block: &mut Block) {
|
pub fn polish_block(block: &mut Block) {
|
||||||
let header = &mut block.header;
|
let header = &mut block.header;
|
||||||
@@ -120,7 +111,12 @@ pub fn execute_block(block: Block) {
|
|||||||
info_expect_equal_hash(&txs_root, &header.extrinsics_root);
|
info_expect_equal_hash(&txs_root, &header.extrinsics_root);
|
||||||
assert!(txs_root == header.extrinsics_root, "Transaction trie root must be valid.");
|
assert!(txs_root == header.extrinsics_root, "Transaction trie root must be valid.");
|
||||||
|
|
||||||
execute_extrinsics_without_checks(block.extrinsics);
|
// execute transactions
|
||||||
|
block.extrinsics.into_iter().enumerate().for_each(|(i, e)| {
|
||||||
|
storage::unhashed::put(well_known_keys::EXTRINSIC_INDEX, &(i as u32));
|
||||||
|
execute_transaction_backend(&e).unwrap_or_else(|_| panic!("Invalid transaction"));
|
||||||
|
storage::unhashed::kill(well_known_keys::EXTRINSIC_INDEX);
|
||||||
|
});
|
||||||
|
|
||||||
// check storage root.
|
// check storage root.
|
||||||
let storage_root = storage_root().into();
|
let storage_root = storage_root().into();
|
||||||
@@ -145,10 +141,6 @@ impl executive::ExecuteBlock<Block> for BlockExecutor {
|
|||||||
fn execute_block(block: Block) {
|
fn execute_block(block: Block) {
|
||||||
execute_block(block);
|
execute_block(block);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn execute_extrinsics_without_checks(_: NumberFor<Block>, extrinsics: Vec<<Block as BlockT>::Extrinsic>) {
|
|
||||||
execute_extrinsics_without_checks(extrinsics);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Execute a transaction outside of the block execution function.
|
/// Execute a transaction outside of the block execution function.
|
||||||
|
|||||||
BIN
Binary file not shown.
@@ -59,8 +59,8 @@ pub const VERSION: RuntimeVersion = RuntimeVersion {
|
|||||||
spec_name: create_runtime_str!("node"),
|
spec_name: create_runtime_str!("node"),
|
||||||
impl_name: create_runtime_str!("substrate-node"),
|
impl_name: create_runtime_str!("substrate-node"),
|
||||||
authoring_version: 10,
|
authoring_version: 10,
|
||||||
spec_version: 54,
|
spec_version: 55,
|
||||||
impl_version: 54,
|
impl_version: 55,
|
||||||
apis: RUNTIME_API_VERSIONS,
|
apis: RUNTIME_API_VERSIONS,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
BIN
Binary file not shown.
@@ -52,8 +52,6 @@ mod internal {
|
|||||||
pub trait ExecuteBlock<Block: BlockT> {
|
pub trait ExecuteBlock<Block: BlockT> {
|
||||||
/// Actually execute all transitioning for `block`.
|
/// Actually execute all transitioning for `block`.
|
||||||
fn execute_block(block: Block);
|
fn execute_block(block: Block);
|
||||||
/// Execute all extrinsics like when executing a `block`, but with dropping intial and final checks.
|
|
||||||
fn execute_extrinsics_without_checks(block_number: NumberFor<Block>, extrinsics: Vec<Block::Extrinsic>);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct Executive<System, Block, Context, Payment, AllModules>(
|
pub struct Executive<System, Block, Context, Payment, AllModules>(
|
||||||
@@ -75,10 +73,6 @@ impl<
|
|||||||
fn execute_block(block: Block) {
|
fn execute_block(block: Block) {
|
||||||
Executive::<System, Block, Context, Payment, AllModules>::execute_block(block);
|
Executive::<System, Block, Context, Payment, AllModules>::execute_block(block);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn execute_extrinsics_without_checks(block_number: NumberFor<Block>, extrinsics: Vec<Block::Extrinsic>) {
|
|
||||||
Executive::<System, Block, Context, Payment, AllModules>::execute_extrinsics_without_checks(block_number, extrinsics);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<
|
impl<
|
||||||
@@ -134,18 +128,6 @@ impl<
|
|||||||
Self::final_checks(&header);
|
Self::final_checks(&header);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Execute all extrinsics like when executing a `block`, but with dropping intial and final checks.
|
|
||||||
pub fn execute_extrinsics_without_checks(block_number: NumberFor<Block>, extrinsics: Vec<Block::Extrinsic>) {
|
|
||||||
// Make the api happy, but maybe we should not set them at all.
|
|
||||||
let parent_hash = <Block::Header as Header>::Hashing::hash(b"parent_hash");
|
|
||||||
let extrinsics_root = <Block::Header as Header>::Hashing::hash(b"extrinsics_root");
|
|
||||||
|
|
||||||
Self::initialize_block_impl(&block_number, &parent_hash, &extrinsics_root);
|
|
||||||
|
|
||||||
// execute extrinsics
|
|
||||||
Self::execute_extrinsics_with_book_keeping(extrinsics, block_number);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Execute given extrinsics and take care of post-extrinsics book-keeping
|
/// Execute given extrinsics and take care of post-extrinsics book-keeping
|
||||||
fn execute_extrinsics_with_book_keeping(extrinsics: Vec<Block::Extrinsic>, block_number: NumberFor<Block>) {
|
fn execute_extrinsics_with_book_keeping(extrinsics: Vec<Block::Extrinsic>, block_number: NumberFor<Block>) {
|
||||||
extrinsics.into_iter().for_each(Self::apply_extrinsic_no_note);
|
extrinsics.into_iter().for_each(Self::apply_extrinsic_no_note);
|
||||||
|
|||||||
Reference in New Issue
Block a user