cardano_sdk/wallet/
single.rs1use 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 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}