cardano_sdk/wallet/
single.rs

1use super::address::Credential;
2use crate::chain::Ed25519KeyHash;
3use crate::crypto::key::*;
4
5pub struct SingleWalletKey {
6    key: Ed25519Key,
7}
8
9pub struct SingleWallet {
10    public: Ed25519PublicKey,
11}
12
13impl SingleWalletKey {
14    pub fn from_key(key: Ed25519Key) -> Self {
15        SingleWalletKey { key }
16    }
17
18    pub fn to_public(&self) -> SingleWallet {
19        let public = self.key.to_public();
20        SingleWallet { public }
21    }
22
23    /// Return a reference to the key of the single wallet
24    pub fn key(&self) -> &Ed25519Key {
25        &self.key
26    }
27}
28
29impl SingleWallet {
30    pub fn credential(&self) -> Credential {
31        Credential::Key(self.public.hash())
32    }
33
34    pub fn match_credential(&self, h: &Ed25519KeyHash) -> Option<()> {
35        if h == &self.public.hash() {
36            Some(())
37        } else {
38            None
39        }
40    }
41}