iq_cometbft/
privval.rs

1//! Types used in the Privval protocol (Tendermint Core [ADR-063])
2//!
3//! [ADR-063]: https://github.com/cometbft/cometbft/blob/main/docs/architecture/adr-063-privval-grpc.md
4
5use crate::prelude::*;
6
7#[derive(Clone, Debug, PartialEq, Eq)]
8pub struct RemoteSignerError {
9    pub code: i32,
10    pub description: String,
11}
12
13// =============================================================================
14// Protobuf conversions
15// =============================================================================
16
17cometbft_old_pb_modules! {
18    use super::RemoteSignerError;
19    use pb::privval::RemoteSignerError as RawRemoteSignerError;
20
21    impl TryFrom<RawRemoteSignerError> for RemoteSignerError {
22        type Error = crate::Error;
23
24        fn try_from(message: RawRemoteSignerError) -> Result<Self, Self::Error> {
25            Ok(Self {
26                code: message.code,
27                description: message.description,
28            })
29        }
30    }
31
32    impl From<RemoteSignerError> for RawRemoteSignerError {
33        fn from(value: RemoteSignerError) -> Self {
34            Self {
35                code: value.code,
36                description: value.description,
37            }
38        }
39    }
40}
41
42mod v1 {
43    use super::RemoteSignerError;
44    use cometbft_proto::privval::v1::RemoteSignerError as RawRemoteSignerError;
45
46    impl TryFrom<RawRemoteSignerError> for RemoteSignerError {
47        type Error = crate::Error;
48
49        fn try_from(message: RawRemoteSignerError) -> Result<Self, Self::Error> {
50            Ok(Self {
51                code: message.code,
52                description: message.description,
53            })
54        }
55    }
56
57    impl From<RemoteSignerError> for RawRemoteSignerError {
58        fn from(value: RemoteSignerError) -> Self {
59            Self {
60                code: value.code,
61                description: value.description,
62            }
63        }
64    }
65}
66
67mod v1beta1 {
68    use super::RemoteSignerError;
69    use cometbft_proto::privval::v1beta1::RemoteSignerError as RawRemoteSignerError;
70
71    impl TryFrom<RawRemoteSignerError> for RemoteSignerError {
72        type Error = crate::Error;
73
74        fn try_from(message: RawRemoteSignerError) -> Result<Self, Self::Error> {
75            Ok(Self {
76                code: message.code,
77                description: message.description,
78            })
79        }
80    }
81
82    impl From<RemoteSignerError> for RawRemoteSignerError {
83        fn from(value: RemoteSignerError) -> Self {
84            Self {
85                code: value.code,
86                description: value.description,
87            }
88        }
89    }
90}