From fa6e4b4488dc88ab38b545473d249178f5d67851 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= 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 5fb3f49308..6c4e63861c 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 for Statement { fn encode_as(&self) -> Vec { self.to_compact().encode() diff --git a/polkadot/primitives/src/v0.rs b/polkadot/primitives/src/v0.rs index 7ce060c528..348b5ad4b1 100644 --- a/polkadot/primitives/src/v0.rs +++ b/polkadot/primitives/src/v0.rs @@ -921,6 +921,16 @@ impl, RealPayload: Encode> Signed Payload { self.payload } + + /// Convert `Payload` into `RealPayload`. + pub fn convert_payload(&self) -> Signed where for<'a> &'a Payload: Into { + 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.