penumbra_sdk_distributions/
params.rs1use penumbra_sdk_proto::core::component::distributions::v1 as pb;
2use penumbra_sdk_proto::DomainType;
3use serde::{Deserialize, Serialize};
4
5#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
6#[serde(
7 try_from = "pb::DistributionsParameters",
8 into = "pb::DistributionsParameters"
9)]
10pub struct DistributionsParameters {
11 pub staking_issuance_per_block: u64,
12}
13
14impl DomainType for DistributionsParameters {
15 type Proto = pb::DistributionsParameters;
16}
17
18impl TryFrom<pb::DistributionsParameters> for DistributionsParameters {
19 type Error = anyhow::Error;
20
21 fn try_from(msg: pb::DistributionsParameters) -> anyhow::Result<Self> {
22 Ok(DistributionsParameters {
23 staking_issuance_per_block: msg.staking_issuance_per_block,
24 })
25 }
26}
27
28impl From<DistributionsParameters> for pb::DistributionsParameters {
29 fn from(params: DistributionsParameters) -> Self {
30 pb::DistributionsParameters {
31 staking_issuance_per_block: params.staking_issuance_per_block,
32 }
33 }
34}
35
36impl Default for DistributionsParameters {
37 fn default() -> Self {
38 Self {
39 staking_issuance_per_block: 1_000_000,
40 }
41 }
42}