1use anchor_lang::solana_program::pubkey::Pubkey;
2
3pub fn to_bytes(pubkey: &Pubkey) -> [u8; 32] {
5 pubkey.to_bytes()
6}
7
8pub const DEFAULT_PUBKEY: Pubkey = Pubkey::new_from_array([0; 32]);
10
11pub fn optional_address(pubkey: &Pubkey) -> Option<&Pubkey> {
13 if *pubkey == DEFAULT_PUBKEY {
14 None
15 } else {
16 Some(pubkey)
17 }
18}
19
20#[cfg(test)]
21mod tests {
22 use super::*;
23
24 #[test]
25 fn test_optional_address() {
26 assert_eq!(Pubkey::default(), DEFAULT_PUBKEY);
27 assert_eq!(optional_address(&DEFAULT_PUBKEY), None);
28 assert_eq!(optional_address(&Pubkey::default()), None);
29 let address = Pubkey::new_unique();
30 assert_eq!(optional_address(&address), Some(&address));
31 }
32}