penumbra_sdk_governance/
event.rs1use 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}