mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-09 20:11:09 +00:00
* Fix #1536: do not require to construct a block for encoding it * Bump `impl_version` * Improve `Block::encode_from` signature and rustdoc (from review by @bkchr)
This commit is contained in:
committed by
Bastian Köcher
parent
6a2afdb204
commit
8ef20a5534
@@ -1059,10 +1059,10 @@ impl<B, E, Block, RA> Client<B, E, Block, RA> where
|
||||
}
|
||||
};
|
||||
|
||||
let encoded_block = <Block as BlockT>::new(
|
||||
import_headers.pre().clone(),
|
||||
body.unwrap_or_default(),
|
||||
).encode();
|
||||
let encoded_block = <Block as BlockT>::encode_from(
|
||||
import_headers.pre(),
|
||||
&body.unwrap_or_default()
|
||||
);
|
||||
|
||||
let (_, storage_update, changes_update) = self.executor
|
||||
.call_at_state::<_, _, NeverNativeValue, fn() -> _>(
|
||||
|
||||
@@ -93,6 +93,9 @@ where
|
||||
fn new(header: Self::Header, extrinsics: Vec<Self::Extrinsic>) -> Self {
|
||||
Block { header, extrinsics }
|
||||
}
|
||||
fn encode_from(header: &Self::Header, extrinsics: &[Self::Extrinsic]) -> Vec<u8> {
|
||||
(header, extrinsics).encode()
|
||||
}
|
||||
}
|
||||
|
||||
/// Abstraction over a substrate block and justification.
|
||||
|
||||
@@ -259,6 +259,9 @@ impl<Xt: 'static + Codec + Sized + Send + Sync + Serialize + Clone + Eq + Debug
|
||||
fn new(header: Self::Header, extrinsics: Vec<Self::Extrinsic>) -> Self {
|
||||
Block { header, extrinsics }
|
||||
}
|
||||
fn encode_from(header: &Self::Header, extrinsics: &[Self::Extrinsic]) -> Vec<u8> {
|
||||
(header, extrinsics).encode()
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a, Xt> Deserialize<'a> for Block<Xt> where Block<Xt>: Decode {
|
||||
|
||||
@@ -687,6 +687,8 @@ pub trait Block: Clone + Send + Sync + Codec + Eq + MaybeSerializeDebugButNotDes
|
||||
fn hash(&self) -> Self::Hash {
|
||||
<<Self::Header as Header>::Hashing as Hash>::hash_of(self.header())
|
||||
}
|
||||
/// Create an encoded block from the given `header` and `extrinsics` without requiring to create an instance.
|
||||
fn encode_from(header: &Self::Header, extrinsics: &[Self::Extrinsic]) -> Vec<u8>;
|
||||
}
|
||||
|
||||
/// Something that acts like an `Extrinsic`.
|
||||
|
||||
@@ -85,7 +85,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion {
|
||||
// implementation changes and behavior does not, then leave spec_version as
|
||||
// is and increment impl_version.
|
||||
spec_version: 175,
|
||||
impl_version: 175,
|
||||
impl_version: 176,
|
||||
apis: RUNTIME_API_VERSIONS,
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user