Skip to content

Commit 5849244

Browse files
fix(platform)!: token distribution fixes and tests (#2494)
1 parent a2bba66 commit 5849244

File tree

83 files changed

+4750
-1118
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+4750
-1118
lines changed

packages/rs-dpp/src/block/finalized_epoch_info/getters.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use crate::block::finalized_epoch_info::FinalizedEpochInfo;
33
use crate::fee::Credits;
44
use crate::prelude::{BlockHeight, BlockHeightInterval, CoreBlockHeight, TimestampMillis};
55
use platform_value::Identifier;
6+
use std::collections::BTreeMap;
67

78
impl FinalizedEpochInfoGettersV0 for FinalizedEpochInfo {
89
fn first_block_time(&self) -> TimestampMillis {
@@ -59,7 +60,7 @@ impl FinalizedEpochInfoGettersV0 for FinalizedEpochInfo {
5960
}
6061
}
6162

62-
fn block_proposers(&self) -> &Vec<(Identifier, u64)> {
63+
fn block_proposers(&self) -> &BTreeMap<Identifier, u64> {
6364
match self {
6465
FinalizedEpochInfo::V0(v0) => v0.block_proposers(),
6566
}

packages/rs-dpp/src/block/finalized_epoch_info/v0/getters.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use crate::block::finalized_epoch_info::v0::FinalizedEpochInfoV0;
22
use crate::fee::Credits;
33
use crate::prelude::{BlockHeight, BlockHeightInterval, CoreBlockHeight, TimestampMillis};
44
use platform_value::Identifier;
5+
use std::collections::BTreeMap;
56

67
/// Trait for accessing fields of `FinalizedEpochInfoV0`.
78
pub trait FinalizedEpochInfoGettersV0 {
@@ -33,7 +34,7 @@ pub trait FinalizedEpochInfoGettersV0 {
3334
fn core_block_rewards(&self) -> Credits;
3435

3536
/// Returns a reference to the block proposers map.
36-
fn block_proposers(&self) -> &Vec<(Identifier, u64)>;
37+
fn block_proposers(&self) -> &BTreeMap<Identifier, u64>;
3738

3839
/// Returns the fee multiplier (permille).
3940
fn fee_multiplier_permille(&self) -> u64;
@@ -79,7 +80,7 @@ impl FinalizedEpochInfoGettersV0 for FinalizedEpochInfoV0 {
7980
self.core_block_rewards
8081
}
8182

82-
fn block_proposers(&self) -> &Vec<(Identifier, u64)> {
83+
fn block_proposers(&self) -> &BTreeMap<Identifier, u64> {
8384
&self.block_proposers
8485
}
8586

packages/rs-dpp/src/block/finalized_epoch_info/v0/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use crate::prelude::{BlockHeight, BlockHeightInterval, CoreBlockHeight, Timestam
55
use bincode::{Decode, Encode};
66
use platform_value::Identifier;
77
use serde::{Deserialize, Serialize};
8+
use std::collections::BTreeMap;
89

910
/// Finalized Epoch information
1011
#[derive(Clone, Debug, PartialEq, Encode, Decode, Serialize, Deserialize)]
@@ -28,7 +29,7 @@ pub struct FinalizedEpochInfoV0 {
2829
/// Total rewards given from core subsidy
2930
pub core_block_rewards: Credits,
3031
/// Block proposers
31-
pub block_proposers: Vec<(Identifier, u64)>,
32+
pub block_proposers: BTreeMap<Identifier, u64>,
3233
/// Fee multiplier that you would divide by 1000 to get float value
3334
pub fee_multiplier_permille: u64,
3435
/// Protocol version

packages/rs-dpp/src/data_contract/associated_token/token_configuration_convention/accessors/mod.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
pub mod v0;
22

3-
use crate::data_contract::associated_token::token_configuration::accessors::v0::{
4-
TokenConfigurationV0Getters, TokenConfigurationV0Setters,
5-
};
63
use crate::data_contract::associated_token::token_configuration_convention::accessors::v0::TokenConfigurationConventionV0Getters;
74
use crate::data_contract::associated_token::token_configuration_convention::TokenConfigurationConvention;
85
use crate::data_contract::associated_token::token_configuration_localization::TokenConfigurationLocalization;

packages/rs-dpp/src/data_contract/associated_token/token_configuration_localization/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use crate::data_contract::associated_token::token_configuration_localization::accessors::v0::TokenConfigurationLocalizationV0Getters;
21
use crate::data_contract::associated_token::token_configuration_localization::v0::TokenConfigurationLocalizationV0;
32
use bincode::Encode;
43
use derive_more::From;

packages/rs-dpp/src/data_contract/associated_token/token_distribution_key.rs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,10 @@ pub enum TokenDistributionInfo {
4848
/// Contains the scheduled timestamp and the recipient’s identifier.
4949
PreProgrammed(TimestampMillis, Identifier),
5050

51-
/// A perpetual token distribution with previous and next moments.
51+
/// A perpetual token distribution with moment for distribution.
52+
/// The moment is the beginning of the perpetual distribution cycle
5253
/// Includes the last and next distribution times and the resolved recipient.
53-
Perpetual(
54-
RewardDistributionMoment,
55-
RewardDistributionMoment,
56-
TokenDistributionResolvedRecipient,
57-
),
54+
Perpetual(RewardDistributionMoment, TokenDistributionResolvedRecipient),
5855
}
5956

6057
impl From<TokenDistributionInfo> for TokenDistributionTypeWithResolvedRecipient {
@@ -63,7 +60,7 @@ impl From<TokenDistributionInfo> for TokenDistributionTypeWithResolvedRecipient
6360
TokenDistributionInfo::PreProgrammed(_, recipient) => {
6461
TokenDistributionTypeWithResolvedRecipient::PreProgrammed(recipient)
6562
}
66-
TokenDistributionInfo::Perpetual(_, _, recipient) => {
63+
TokenDistributionInfo::Perpetual(_, recipient) => {
6764
TokenDistributionTypeWithResolvedRecipient::Perpetual(recipient)
6865
}
6966
}
@@ -76,7 +73,7 @@ impl From<&TokenDistributionInfo> for TokenDistributionTypeWithResolvedRecipient
7673
TokenDistributionInfo::PreProgrammed(_, recipient) => {
7774
TokenDistributionTypeWithResolvedRecipient::PreProgrammed(*recipient)
7875
}
79-
TokenDistributionInfo::Perpetual(_, _, recipient) => {
76+
TokenDistributionInfo::Perpetual(_, recipient) => {
8077
TokenDistributionTypeWithResolvedRecipient::Perpetual(recipient.clone())
8178
}
8279
}

packages/rs-dpp/src/data_contract/associated_token/token_perpetual_distribution/distribution_function/encode.rs

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ impl Encode for DistributionFunction {
4141
DistributionFunction::Linear {
4242
a,
4343
d,
44-
s,
45-
b,
44+
start_step: s,
45+
starting_amount: b,
4646
min_value,
4747
max_value,
4848
} => {
@@ -60,7 +60,7 @@ impl Encode for DistributionFunction {
6060
m,
6161
n,
6262
o,
63-
s,
63+
start_moment: s,
6464
b,
6565
min_value,
6666
max_value,
@@ -82,7 +82,7 @@ impl Encode for DistributionFunction {
8282
m,
8383
n,
8484
o,
85-
s,
85+
start_moment: s,
8686
c,
8787
min_value,
8888
max_value,
@@ -104,7 +104,7 @@ impl Encode for DistributionFunction {
104104
m,
105105
n,
106106
o,
107-
s,
107+
start_moment: s,
108108
b,
109109
min_value,
110110
max_value,
@@ -126,7 +126,7 @@ impl Encode for DistributionFunction {
126126
m,
127127
n,
128128
o,
129-
s,
129+
start_moment: s,
130130
b,
131131
min_value,
132132
max_value,
@@ -192,8 +192,8 @@ impl Decode for DistributionFunction {
192192
Ok(Self::Linear {
193193
a,
194194
d,
195-
s,
196-
b,
195+
start_step: s,
196+
starting_amount: b,
197197
min_value,
198198
max_value,
199199
})
@@ -214,7 +214,7 @@ impl Decode for DistributionFunction {
214214
m,
215215
n,
216216
o,
217-
s,
217+
start_moment: s,
218218
b,
219219
min_value,
220220
max_value,
@@ -236,7 +236,7 @@ impl Decode for DistributionFunction {
236236
m,
237237
n,
238238
o,
239-
s,
239+
start_moment: s,
240240
c,
241241
min_value,
242242
max_value,
@@ -258,7 +258,7 @@ impl Decode for DistributionFunction {
258258
m,
259259
n,
260260
o,
261-
s,
261+
start_moment: s,
262262
b,
263263
min_value,
264264
max_value,
@@ -280,7 +280,7 @@ impl Decode for DistributionFunction {
280280
m,
281281
n,
282282
o,
283-
s,
283+
start_moment: s,
284284
b,
285285
min_value,
286286
max_value,
@@ -338,8 +338,8 @@ impl<'de> BorrowDecode<'de> for DistributionFunction {
338338
Ok(Self::Linear {
339339
a,
340340
d,
341-
s,
342-
b,
341+
start_step: s,
342+
starting_amount: b,
343343
min_value,
344344
max_value,
345345
})
@@ -360,7 +360,7 @@ impl<'de> BorrowDecode<'de> for DistributionFunction {
360360
m,
361361
n,
362362
o,
363-
s,
363+
start_moment: s,
364364
b,
365365
min_value,
366366
max_value,
@@ -382,7 +382,7 @@ impl<'de> BorrowDecode<'de> for DistributionFunction {
382382
m,
383383
n,
384384
o,
385-
s,
385+
start_moment: s,
386386
c,
387387
min_value,
388388
max_value,
@@ -404,7 +404,7 @@ impl<'de> BorrowDecode<'de> for DistributionFunction {
404404
m,
405405
n,
406406
o,
407-
s,
407+
start_moment: s,
408408
b,
409409
min_value,
410410
max_value,
@@ -426,7 +426,7 @@ impl<'de> BorrowDecode<'de> for DistributionFunction {
426426
m,
427427
n,
428428
o,
429-
s,
429+
start_moment: s,
430430
b,
431431
min_value,
432432
max_value,

0 commit comments

Comments
 (0)