cardano_sdk/cardano/
redeemer_pointer.rs1use crate::{cbor, pallas};
6use std::fmt;
7
8#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, cbor::Encode, cbor::Decode)]
10#[repr(transparent)]
11#[cbor(transparent)]
12pub struct RedeemerPointer(#[n(0)] pallas::RedeemersKey);
13
14impl fmt::Display for RedeemerPointer {
15 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
16 match self.0.tag {
17 pallas_primitives::conway::RedeemerTag::Mint => write!(f, "Mint({})", self.0.index),
18 pallas_primitives::conway::RedeemerTag::Spend => write!(f, "Spend({})", self.0.index),
19 pallas_primitives::conway::RedeemerTag::Reward => {
20 write!(f, "Withdraw({})", self.0.index)
21 }
22 pallas_primitives::conway::RedeemerTag::Cert => write!(f, "Publish({})", self.0.index),
23 pallas_primitives::conway::RedeemerTag::Vote => write!(f, "Vote({})", self.0.index),
24 pallas_primitives::conway::RedeemerTag::Propose => {
25 write!(f, "Propose({})", self.0.index)
26 }
27 }
28 }
29}
30
31impl RedeemerPointer {
34 pub fn from_mint(index: u32) -> Self {
35 RedeemerPointer(pallas::RedeemersKey {
36 tag: pallas::RedeemerTag::Mint,
37 index,
38 })
39 }
40
41 pub fn from_spend(index: u32) -> Self {
42 RedeemerPointer(pallas::RedeemersKey {
43 tag: pallas::RedeemerTag::Spend,
44 index,
45 })
46 }
47 pub fn from_withdraw(index: u32) -> Self {
48 RedeemerPointer(pallas::RedeemersKey {
49 tag: pallas::RedeemerTag::Reward,
50 index,
51 })
52 }
53
54 pub fn from_publish(index: u32) -> Self {
55 RedeemerPointer(pallas::RedeemersKey {
56 tag: pallas::RedeemerTag::Cert,
57 index,
58 })
59 }
60
61 pub fn from_vote(index: u32) -> Self {
62 RedeemerPointer(pallas::RedeemersKey {
63 tag: pallas::RedeemerTag::Vote,
64 index,
65 })
66 }
67
68 pub fn from_propose(index: u32) -> Self {
69 RedeemerPointer(pallas::RedeemersKey {
70 tag: pallas::RedeemerTag::Propose,
71 index,
72 })
73 }
74}
75
76impl From<pallas::RedeemersKey> for RedeemerPointer {
79 fn from(key: pallas::RedeemersKey) -> Self {
80 Self(key)
81 }
82}
83
84impl From<RedeemerPointer> for pallas::RedeemersKey {
87 fn from(ptr: RedeemerPointer) -> Self {
88 ptr.0
89 }
90}