1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
// Copyright 2021 MaidSafe.net limited. // // This SAFE Network Software is licensed to you under the MIT license <LICENSE-MIT // https://opensource.org/licenses/MIT> or the Modified BSD license <LICENSE-BSD // https://opensource.org/licenses/BSD-3-Clause>, at your option. This file may not be copied, // modified, or distributed except according to those terms. Please review the Licences for the // specific language governing permissions and limitations relating to use of the SAFE Network // Software. use crate::{CreditId, SignatureShare, SignedCredit, SignedCreditShare}; use serde::{Deserialize, Serialize}; /// Node age, the number of times /// it has been relocated between sections. pub type NodeAge = u8; /// Proposed credits resulting from a churn. #[derive(Debug, Eq, PartialEq, Clone, Serialize, Deserialize)] pub struct RewardProposal { /// The section paying out the rewards. pub section_key: crate::PublicKey, /// Any proposed rewards pub rewards: Vec<SignedCreditShare>, } /// Accumulation of proof for the churn credits. #[derive(Debug, Eq, PartialEq, Clone, Serialize, Deserialize)] pub struct RewardAccumulation { /// The section paying out the rewards. pub section_key: crate::PublicKey, /// Any agreed rewards pub rewards: Vec<AccumulatingReward>, } /// #[derive(Debug, Eq, PartialEq, Clone, Serialize, Deserialize)] pub struct AccumulatingReward { /// A credit . pub signed_credit: SignedCredit, /// An individual Elder's sig share. pub sig: SignatureShare, } impl AccumulatingReward { /// Returns the id of the signed credit. pub fn id(&self) -> &CreditId { self.signed_credit.id() } }