amaru_kernel/cardano/
stake_credential_kind.rs1use crate::{StakeCredential, Voter};
16
17#[derive(Debug)]
18pub enum StakeCredentialKind {
19 VerificationKey,
20 Script,
21}
22
23impl std::fmt::Display for StakeCredentialKind {
24 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
25 f.write_str(match self {
26 Self::VerificationKey => "verification_key",
27 Self::Script => "script",
28 })
29 }
30}
31
32impl From<&StakeCredential> for StakeCredentialKind {
33 fn from(credential: &StakeCredential) -> Self {
34 match credential {
35 StakeCredential::AddrKeyhash(..) => Self::VerificationKey,
36 StakeCredential::ScriptHash(..) => Self::Script,
37 }
38 }
39}
40
41impl From<&Voter> for StakeCredentialKind {
42 fn from(voter: &Voter) -> Self {
43 match voter {
44 Voter::DRepKey(..) | Voter::ConstitutionalCommitteeKey(..) | Voter::StakePoolKey(..) => {
45 Self::VerificationKey
46 }
47 Voter::DRepScript(..) | Voter::ConstitutionalCommitteeScript(..) => Self::Script,
48 }
49 }
50}