mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 22:41:02 +00:00
Extrinsics root is calculated as part of block-building (#120)
* extrinsics root is calculated as part of block-building. * Fix build. * Fix xt root. * Couple of fixes. * Logging and more useful APIs. * Fix test. * Update log version. * Switch back to correct version of log.
This commit is contained in:
committed by
Robert Habermeier
parent
54d6970efc
commit
1972d612fa
@@ -31,6 +31,9 @@ extern crate substrate_state_machine as state_machine;
|
||||
#[macro_use]
|
||||
extern crate error_chain;
|
||||
|
||||
#[macro_use]
|
||||
extern crate log;
|
||||
|
||||
#[cfg(test)]
|
||||
extern crate substrate_keyring as keyring;
|
||||
|
||||
@@ -174,7 +177,7 @@ impl<B: Backend> PolkadotApi for Client<B, NativeExecutor<LocalDispatch>>
|
||||
fn check_id(&self, id: BlockId) -> Result<CheckedId> {
|
||||
// bail if the code is not the same as the natively linked.
|
||||
if self.code_at(&id)? != LocalDispatch::native_equivalent() {
|
||||
bail!(ErrorKind::UnknownRuntime);
|
||||
warn!("This node is out of date. Block authoring may not work correctly.")
|
||||
}
|
||||
|
||||
Ok(CheckedId(id))
|
||||
@@ -324,19 +327,15 @@ impl<S: state_machine::Backend> BlockBuilder for ClientBlockBuilder<S>
|
||||
}
|
||||
|
||||
fn bake(mut self) -> Block {
|
||||
use substrate_runtime_executive::extrinsics_root;
|
||||
|
||||
let mut ext = state_machine::Ext {
|
||||
overlay: &mut self.changes,
|
||||
backend: &self.state,
|
||||
};
|
||||
|
||||
let mut final_header = ::substrate_executor::with_native_environment(
|
||||
let final_header = ::substrate_executor::with_native_environment(
|
||||
&mut ext,
|
||||
move || runtime::Executive::finalise_block()
|
||||
).expect("all inherent extrinsics pushed; all other extrinsics executed correctly; qed");
|
||||
|
||||
final_header.extrinsics_root = extrinsics_root::<runtime_io::BlakeTwo256, _>(&self.extrinsics);
|
||||
Block {
|
||||
header: final_header,
|
||||
extrinsics: self.extrinsics,
|
||||
|
||||
Reference in New Issue
Block a user