1use solana_pubkey::Pubkey;
2use solana_signature::Signature;
3use solana_signer::{Signer, SignerError};
4
5pub struct NoopSigner {
6 pubkey: Pubkey,
7}
8
9impl NoopSigner {
10 pub fn new(pubkey: Pubkey) -> Self {
11 Self { pubkey }
12 }
13}
14
15impl Signer for NoopSigner {
16 fn try_pubkey(&self) -> Result<Pubkey, SignerError> {
17 Ok(self.pubkey)
18 }
19
20 fn try_sign_message(&self, _: &[u8]) -> Result<Signature, SignerError> {
21 Err(SignerError::Custom(
22 "NoopSigner cannot sign transactions".to_string(),
23 ))
24 }
25
26 fn is_interactive(&self) -> bool {
27 false
28 }
29}