penumbra_sdk_governance/
event.rs

1use penumbra_sdk_proto::penumbra::core::component::governance::v1 as pb;
2use penumbra_sdk_stake::IdentityKey;
3
4use crate::{
5    DelegatorVote, Proposal, ProposalDepositClaim, ProposalSubmit, ProposalWithdraw, ValidatorVote,
6};
7
8pub fn delegator_vote(
9    delegator_vote: &DelegatorVote,
10    validator_identity_key: &IdentityKey,
11) -> pb::EventDelegatorVote {
12    pb::EventDelegatorVote {
13        vote: Some(pb::DelegatorVote::from(*delegator_vote)),
14        validator_identity_key: Some(validator_identity_key.clone().into()),
15    }
16}
17
18pub fn proposal_deposit_claim(
19    deposit_claim: &ProposalDepositClaim,
20) -> pb::EventProposalDepositClaim {
21    pb::EventProposalDepositClaim {
22        deposit_claim: Some(pb::ProposalDepositClaim::from(*deposit_claim)),
23    }
24}
25
26pub fn validator_vote(validator_vote: &ValidatorVote, voting_power: u64) -> pb::EventValidatorVote {
27    pb::EventValidatorVote {
28        vote: Some(pb::ValidatorVote::from(validator_vote.clone())),
29        voting_power,
30    }
31}
32
33pub fn proposal_withdraw(withdraw: &ProposalWithdraw) -> pb::EventProposalWithdraw {
34    pb::EventProposalWithdraw {
35        withdraw: Some(pb::ProposalWithdraw::from(withdraw.clone())),
36    }
37}
38
39pub fn proposal_submit(
40    submit: &ProposalSubmit,
41    start_height: u64,
42    end_height: u64,
43) -> pb::EventProposalSubmit {
44    pb::EventProposalSubmit {
45        submit: Some(pb::ProposalSubmit::from(submit.clone())),
46        start_height,
47        end_height,
48    }
49}
50
51pub fn proposal_passed(proposal: &Proposal) -> pb::EventProposalPassed {
52    pb::EventProposalPassed {
53        proposal: Some(pb::Proposal::from(proposal.clone())),
54    }
55}
56
57pub fn proposal_failed(proposal: &Proposal) -> pb::EventProposalFailed {
58    pb::EventProposalFailed {
59        proposal: Some(pb::Proposal::from(proposal.clone())),
60    }
61}
62
63pub fn proposal_slashed(proposal: &Proposal) -> pb::EventProposalSlashed {
64    pb::EventProposalSlashed {
65        proposal: Some(pb::Proposal::from(proposal.clone())),
66    }
67}