extras_filecoin/
signed_message.rs

1use fvm_shared::crypto::signature::Signature;
2use fvm_shared::message::Message;
3use serde::{Deserialize, Serialize};
4
5use super::message::MessageAPI;
6use super::signature::SignatureAPI;
7
8pub mod ref_fvm {
9    // TODO: this is temporary. It should be part of ref-fvm
10    use fvm_ipld_encoding::tuple::*;
11    use fvm_ipld_encoding::Cbor;
12    use fvm_shared::crypto::signature::Signature;
13    use fvm_shared::message::Message;
14
15    /// Represents a wrapped message with signature bytes.
16    #[derive(Debug, Serialize_tuple, Deserialize_tuple, Clone)]
17    pub struct SignedMessage {
18        pub message: Message,
19        pub signature: Signature,
20    }
21
22    impl Cbor for SignedMessage {}
23}
24
25#[derive(Debug, Serialize, Deserialize)]
26#[serde(remote = "ref_fvm::SignedMessage", rename_all = "PascalCase")]
27pub struct SignedMessageAPI {
28    #[serde(with = "MessageAPI")]
29    pub message: Message,
30    #[serde(with = "SignatureAPI")]
31    pub signature: Signature,
32}