Skip to main content

solana_trader/
message.rs

1use solana_sdk::{signature::Signature, signer::Signer};
2
3use crate::wallet::Wallet;
4
5pub struct Message;
6impl Message {
7    /// sign message
8    /// # params
9    /// * w wallet object
10    /// * message byte array of the message
11    /// ```rust
12    /// let w = Wallet::from_private_key_64("private key");
13    /// let s = Message::sign_message(w, "message".as_bytes());
14    /// ```
15    pub fn sign_message(w: Wallet, message: &[u8]) -> Signature {
16        w.keypair.unwrap().sign_message(message)
17    }
18    /// verify message
19    /// # params
20    /// * signature signature object
21    /// * w wallet object
22    /// * message byte array of the message
23    /// ```rust
24    /// let w = Wallet::from_private_key_64("private key");
25    /// let s = Message::sign_message(w, "message".as_bytes());
26    /// let bool = Message::verify_message(s, w, "message".as_bytes());
27    /// ```
28    pub fn verify_message(signature: Signature, w: Wallet, message: &[u8]) -> bool {
29        signature.verify(w.keypair.unwrap().pubkey().as_ref(), message)
30    }
31}