penumbra_sdk_governance/
state_key.rs

1use penumbra_sdk_sct::Nullifier;
2use penumbra_sdk_stake::IdentityKey;
3
4pub fn governance_params() -> &'static str {
5    "governance/params"
6}
7
8pub fn next_proposal_id() -> &'static str {
9    "governance/next_proposal_id"
10}
11
12pub fn proposal_definition(proposal_id: u64) -> String {
13    format!("governance/proposal/{proposal_id:020}/data")
14}
15
16pub fn community_pool_transaction(proposal_id: u64) -> String {
17    format!("governance/proposal/{proposal_id:020}/community_pool_transaction")
18}
19
20pub fn proposal_state(proposal_id: u64) -> String {
21    format!("governance/proposal/{proposal_id:020}/state")
22}
23
24pub fn proposal_deposit_amount(proposal_id: u64) -> String {
25    format!("governance/proposal/{proposal_id:020}/deposit_amount")
26}
27
28pub fn proposal_voting_start(proposal_id: u64) -> String {
29    format!("governance/proposal/{proposal_id:020}/voting_start")
30}
31
32pub fn proposal_voting_start_position(proposal_id: u64) -> String {
33    format!("governance/proposal/{proposal_id:020}/voting_start_position")
34}
35
36pub fn proposal_voting_end(proposal_id: u64) -> String {
37    format!("governance/proposal/{proposal_id:020}/voting_end")
38}
39
40pub fn unfinished_proposal(proposal_id: u64) -> String {
41    format!("governance/unfinished_proposals/{proposal_id:020}")
42}
43
44pub fn all_unfinished_proposals() -> &'static str {
45    // Note: this has to be the prefix of the `unfinished_proposal` function above.
46    "governance/unfinished_proposals/"
47}
48
49pub fn voted_nullifier_lookup_for_proposal(proposal_id: u64, nullifier: &Nullifier) -> String {
50    format!("governance/proposal/{proposal_id:020}/voted_nullifiers/{nullifier}")
51}
52
53pub fn rate_data_at_proposal_start(proposal_id: u64, identity_key: IdentityKey) -> String {
54    format!("governance/proposal/{proposal_id:020}/rate_data_at_start/{identity_key}")
55}
56
57pub fn all_rate_data_at_proposal_start(proposal_id: u64) -> String {
58    // Note: this has to be the prefix of the `rate_data_at_proposal_start` function above.
59    format!("governance/proposal/{proposal_id:020}/rate_data_at_start/")
60}
61
62pub fn voting_power_at_proposal_start(proposal_id: u64, identity_key: IdentityKey) -> String {
63    format!("governance/proposal/{proposal_id:020}/voting_power_at_start/{identity_key}")
64}
65
66pub fn all_voting_power_at_proposal_start(proposal_id: u64) -> String {
67    // Note: this has to be the prefix of the `voting_power_at_proposal_start` function above.
68    format!("governance/proposal/{proposal_id:020}/voting_power_at_start/")
69}
70
71pub fn validator_vote(proposal_id: u64, identity_key: IdentityKey) -> String {
72    format!("governance/validator_vote/{proposal_id:020}/{identity_key}")
73}
74
75pub fn validator_vote_reason(proposal_id: u64, identity_key: IdentityKey) -> String {
76    format!("governance/validator_vote_reason/{proposal_id:020}/{identity_key}")
77}
78
79pub fn all_validator_votes_for_proposal(proposal_id: u64) -> String {
80    // Note: this has to be the prefix of the `validator_vote` function above.
81    format!("governance/validator_vote/{proposal_id:020}/")
82}
83
84pub fn tallied_delegator_votes(proposal_id: u64, identity_key: IdentityKey) -> String {
85    format!("governance/tallied_delegator_votes/{proposal_id:020}/{identity_key}")
86}
87
88pub fn all_tallied_delegator_votes_for_proposal(proposal_id: u64) -> String {
89    // Note: this has to be the prefix of the `tallied_delegator_votes` function above.
90    format!("governance/tallied_delegator_votes/{proposal_id:020}/")
91}
92
93pub fn untallied_delegator_vote(
94    proposal_id: u64,
95    identity_key: IdentityKey,
96    nullifier: &Nullifier,
97) -> String {
98    format!("governance/untallied_delegator_vote/{proposal_id:020}/{identity_key}/{nullifier}")
99}
100
101pub fn all_untallied_delegator_votes_for_proposal(proposal_id: u64) -> String {
102    // Note: this has to be the prefix of the `untallied_delegator_vote` function above.
103    format!("governance/untallied_delegator_vote/{proposal_id:020}/")
104}
105
106pub fn all_untallied_delegator_votes() -> &'static str {
107    // Note: this has to be the prefix of the `untallied_delegator_vote` function above.
108    "governance/untallied_delegator_vote/"
109}
110
111pub fn deliver_single_community_pool_transaction_at_height(
112    block_height: u64,
113    proposal_id: u64,
114) -> String {
115    format!("governance/deliver_community_pool_transactions/{block_height}/{proposal_id:020}")
116}
117
118pub fn deliver_community_pool_transactions_at_height(block_height: u64) -> String {
119    // Note: this has to be the prefix of the `deliver_single_community_pool_transaction_at_height` function above.
120    format!("governance/deliver_community_pool_transactions/{block_height}/")
121}
122
123pub fn param_changes_for_height(block_height: u64) -> String {
124    format!("governance/param_changes/{block_height}/")
125}
126
127pub fn proposal_started() -> &'static str {
128    "governance/proposal_started"
129}
130
131pub mod upgrades {
132    pub fn next_upgrade() -> &'static str {
133        "governance/upgrades/next_upgrade"
134    }
135}
136
137pub mod persistent_flags {
138    pub fn halt_bit() -> &'static str {
139        "governance/persistent_flags/halt_bit"
140    }
141}