diff --git a/bridges/primitives/runtime/src/chain.rs b/bridges/primitives/runtime/src/chain.rs
index b78023efb1b8..469c839ba151 100644
--- a/bridges/primitives/runtime/src/chain.rs
+++ b/bridges/primitives/runtime/src/chain.rs
@@ -15,7 +15,7 @@
// along with Parity Bridges Common. If not, see .
use crate::HeaderIdProvider;
-use codec::{Decode, Encode, MaxEncodedLen};
+use codec::{Codec, Decode, Encode, MaxEncodedLen};
use frame_support::{weights::Weight, Parameter};
use num_traits::{AsPrimitive, Bounded, CheckedSub, Saturating, SaturatingAdd, Zero};
use sp_runtime::{
@@ -39,7 +39,7 @@ pub enum EncodedOrDecodedCall {
Decoded(ChainCall),
}
-impl EncodedOrDecodedCall {
+impl EncodedOrDecodedCall {
/// Returns decoded call.
pub fn to_decoded(&self) -> Result {
match self {
@@ -57,6 +57,14 @@ impl EncodedOrDecodedCall {
Self::Decoded(decoded_call) => Ok(decoded_call),
}
}
+
+ /// Converts self to encoded call.
+ pub fn into_encoded(self) -> Vec {
+ match self {
+ Self::Encoded(encoded_call) => encoded_call,
+ Self::Decoded(decoded_call) => decoded_call.encode(),
+ }
+ }
}
impl From for EncodedOrDecodedCall {