From fa6e4b4488dc88ab38b545473d249178f5d67851 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= <bkchr@users.noreply.github.com> Date: Mon, 25 Jan 2021 21:50:45 +0100 Subject: [PATCH] Add a `convert_payload` function to `Signed` (#2320) * Add a `convert_payload` function to `Signed` * Review feedback --- polkadot/node/primitives/src/lib.rs | 6 ++++++ polkadot/primitives/src/v0.rs | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/polkadot/node/primitives/src/lib.rs b/polkadot/node/primitives/src/lib.rs index 5fb3f49308f..6c4e63861c1 100644 --- a/polkadot/node/primitives/src/lib.rs +++ b/polkadot/node/primitives/src/lib.rs @@ -85,6 +85,12 @@ impl Statement { } } +impl From<&'_ Statement> for CompactStatement { + fn from(stmt: &Statement) -> Self { + stmt.to_compact() + } +} + impl EncodeAs<CompactStatement> for Statement { fn encode_as(&self) -> Vec<u8> { self.to_compact().encode() diff --git a/polkadot/primitives/src/v0.rs b/polkadot/primitives/src/v0.rs index 7ce060c528a..348b5ad4b1d 100644 --- a/polkadot/primitives/src/v0.rs +++ b/polkadot/primitives/src/v0.rs @@ -921,6 +921,16 @@ impl<Payload: EncodeAs<RealPayload>, RealPayload: Encode> Signed<Payload, RealPa pub fn into_payload(self) -> Payload { self.payload } + + /// Convert `Payload` into `RealPayload`. + pub fn convert_payload(&self) -> Signed<RealPayload> where for<'a> &'a Payload: Into<RealPayload> { + Signed { + signature: self.signature.clone(), + validator_index: self.validator_index, + payload: self.payload().into(), + real_payload: sp_std::marker::PhantomData, + } + } } /// Custom validity errors used in Polkadot while validating transactions. -- GitLab