Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.
Merged
Changes from 1 commit
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
4def98e
TODOs
gavofyork Dec 18, 2019
338362a
Remove superfluous:
gavofyork Dec 18, 2019
0c22a21
Merge remote-tracking branch 'origin/master' into gav-lazy-rewards
gui1117 Jan 7, 2020
f92f0e8
partial implementation
gui1117 Jan 7, 2020
bb71353
full implementation
gui1117 Jan 8, 2020
3a4a9be
fix preferences
gui1117 Jan 9, 2020
7a80d10
Merge remote-tracking branch 'origin/master' into gav-lazy-rewards
gui1117 Jan 9, 2020
5345095
update comments
gui1117 Jan 9, 2020
dbe3a64
upgrade test WIP
gui1117 Jan 9, 2020
f41ee81
fix more tests
gui1117 Jan 10, 2020
fd48681
fix cutoff
gui1117 Jan 10, 2020
fa38f84
fix saturation
gui1117 Jan 10, 2020
c4b0f2f
comment
gui1117 Jan 10, 2020
4315218
upgrade mock
gui1117 Jan 10, 2020
a26e9da
upgrade test
gui1117 Jan 10, 2020
cc6dd63
Merge remote-tracking branch 'origin/master' into gav-lazy-rewards
gui1117 Jan 13, 2020
245ec98
WIP migration
gui1117 Jan 13, 2020
4206435
WIP migration
gui1117 Jan 14, 2020
f1586b2
Merge commit '857f7338b2066a03dc956acf004b101b4bdcf593' into gav-lazy…
gui1117 Jan 14, 2020
8e0bfa4
Merge commit 'd63ff7b9ac8d766b87a7a2cd99d5d73a521f97a9' into gav-lazy…
gui1117 Jan 14, 2020
70b9ff8
remove slot stake stuff
gui1117 Jan 14, 2020
61881d6
Merge commit '6688c3be1ff71803d5963935df7a0d646b2d50d2' into gav-lazy…
gui1117 Jan 14, 2020
fd5bafc
Merge remote-tracking branch 'origin/master' into gav-lazy-rewards
gui1117 Jan 14, 2020
f392d4a
fix merge
gui1117 Jan 14, 2020
2b9f806
migration of ledger
gui1117 Jan 14, 2020
d0431f4
remove equalize from test
gui1117 Jan 14, 2020
10232de
add test
gui1117 Jan 14, 2020
6367fda
fix
gui1117 Jan 14, 2020
30eb57c
update doc
gui1117 Jan 14, 2020
8eb8a58
fix compilation
gui1117 Jan 14, 2020
eb0d4e5
improve test readibility
gui1117 Jan 15, 2020
54b670f
Merge remote-tracking branch 'origin/master' into gav-lazy-rewards
gui1117 Jan 16, 2020
16a6fd0
improve doc
gui1117 Jan 20, 2020
ceffbfd
Merge commit 'c3af86cee45d98dd5f97fb2de419ba4e25ac14b7' into gav-lazy…
gui1117 Jan 20, 2020
c2cda09
Merge commit '561bd727489501cfb24d29020062b3a5d4fdcca9' into gav-lazy…
gui1117 Jan 20, 2020
a241d95
Merge remote-tracking branch 'origin/master' into gav-lazy-rewards
gui1117 Jan 20, 2020
3d426bb
fix most todo
gui1117 Jan 20, 2020
5d4c2e5
fix migration and test
gui1117 Jan 21, 2020
3590769
remove println
gui1117 Jan 21, 2020
df3a4de
WIP
gui1117 Jan 21, 2020
70979ac
add test and spec
gui1117 Jan 22, 2020
3c56ab3
weight
gui1117 Jan 22, 2020
c088756
update doc
gui1117 Jan 22, 2020
72ff737
safer end_era
gui1117 Jan 30, 2020
58a2c90
fix exposure of conversion
gui1117 Jan 30, 2020
02c05b2
Merge remote-tracking branch 'origin/master' into gav-lazy-rewards
gui1117 Jan 30, 2020
dd7590f
Revert "safer end_era"
gui1117 Jan 30, 2020
c99772b
fix useless put
gui1117 Jan 30, 2020
eb1a6ef
exposure clipped
gui1117 Jan 30, 2020
4e1d12d
doc
gui1117 Jan 30, 2020
33afe32
fix payout with clipped
gui1117 Jan 30, 2020
35f76ab
fix node runtime
gui1117 Jan 30, 2020
d35dafc
add doc
gui1117 Jan 31, 2020
381d5ef
pluggable and generalized staking module
gui1117 Jan 31, 2020
2519aef
remove print
gui1117 Jan 31, 2020
e881add
update doc
gui1117 Jan 31, 2020
1f7b353
refactor
gui1117 Jan 31, 2020
086eb8d
improve documentation and implementation
gui1117 Feb 1, 2020
5162c0b
fix test
gui1117 Feb 1, 2020
1d9f460
Merge remote-tracking branch 'origin/master' into gav-lazy-rewards
gui1117 Feb 1, 2020
9cd88e2
Fix test
gui1117 Feb 1, 2020
68105c8
fix test
gui1117 Feb 1, 2020
827847b
fix test
gui1117 Feb 1, 2020
e2af768
fix remove lowest stake from exposure, not biggest.
gui1117 Feb 3, 2020
ea4ef67
nomination index arguments in nominator_payout
gui1117 Feb 3, 2020
74a4cbe
add test
gui1117 Feb 3, 2020
0116e20
Merge remote-tracking branch 'origin/master' into gav-lazy-rewards
gui1117 Feb 3, 2020
faaddec
try to fix offence
gui1117 Feb 3, 2020
20b28b3
apply slashed and bond eras until active era
gui1117 Feb 3, 2020
7dd7975
doc
gui1117 Feb 3, 2020
a89202e
update spec version
gui1117 Feb 3, 2020
3f860bd
Merge branch 'master' into gav-lazy-rewards
gavofyork Feb 12, 2020
8e652b1
Merge branch 'master' into gav-lazy-rewards
gavofyork Feb 12, 2020
89974f8
Merge remote-tracking branch 'origin/master' into gav-lazy-rewards
gui1117 Feb 19, 2020
c87a3d6
add test upgrade from previous test environment
gui1117 Feb 19, 2020
961618d
Apply suggestions from code review
gui1117 Feb 21, 2020
751b993
nominators upgrade has been cleaned
gui1117 Feb 21, 2020
e56e70a
dynamic history depth implementation
gui1117 Feb 21, 2020
975a6eb
make current_era - history_depth included
gui1117 Feb 21, 2020
3d78f79
Change equality check to start era to less than or equal
shawntabrizi Feb 22, 2020
b834b4e
Use era specific validator prefs
shawntabrizi Feb 23, 2020
23a4b2b
Add print statement and comment about start era if <
shawntabrizi Feb 23, 2020
45bf05b
fix next_reward overflow
gui1117 Feb 24, 2020
3dce1b0
make more check for bad era claim for zero cost
gui1117 Feb 24, 2020
22c46b5
small refactor
gui1117 Feb 24, 2020
2f70fbe
Merge branch 'master' into gav-lazy-rewards
shawntabrizi Feb 24, 2020
24d334f
code refactor + fix use of deprecated storage
gui1117 Feb 26, 2020
7edfdae
fix wasm build
gui1117 Feb 26, 2020
5627b2b
Merge remote-tracking branch 'origin/master' into gav-lazy-rewards
gui1117 Feb 26, 2020
4caa747
add comment
gui1117 Feb 26, 2020
015c39a
Fix tests
shawntabrizi Feb 28, 2020
f7ba093
Merge remote-tracking branch 'origin/master' into gav-lazy-rewards
gui1117 Mar 2, 2020
c4d27b2
remove outdated comment
gui1117 Mar 2, 2020
129a6d9
Apply suggestions from code review
gui1117 Mar 3, 2020
d5b3080
gather active era information into one storage
gui1117 Mar 3, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
update comments
  • Loading branch information
gui1117 committed Jan 9, 2020
commit 534509551f3c72d52c56023b055b7f29bb124ca9
18 changes: 5 additions & 13 deletions frame/staking/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
// TODO TODO:
// * migration
// * upgrade test
// * update doc
// * new test
//! # Staking Module
//!
Expand Down Expand Up @@ -311,9 +312,6 @@ pub struct EraRewardPoints<AccountId: Ord> {
/// The reward points earned by a given validator.
individual: BTreeMap<AccountId, RewardPoint>,
}
// TODO TODO: when does this rewards can be spend: we need a mecanism to tell when reward can be
// spend, either by asking session or by just saying only reward from finished session can be spend
// but then we are following sessions delay

/// Indicates the initial status of the staker.
#[derive(RuntimeDebug)]
Expand Down Expand Up @@ -345,7 +343,6 @@ impl Default for RewardDestination {
}

/// Preference of what happens regarding validation.
// TODO TODO: put this into the Exposure!
#[derive(PartialEq, Eq, Clone, Encode, Decode, RuntimeDebug)]
pub struct ValidatorPrefs {
/// Reward that validator takes up-front; only the rest is split between themselves and
Expand Down Expand Up @@ -700,8 +697,6 @@ decl_storage! {
/// Direct storage APIs can still bypass this protection.
Nominators get(fn nominators): linked_map T::AccountId => Option<Nominations<T::AccountId>>;

/// TODO: Will likely need initialising for the migration.

// /// The currently elected validator set keyed by stash account ID.
// pub CurrentElected get(fn current_elected): Vec<T::AccountId>;
// TODO TODO: migration: clean this!!!
Expand All @@ -711,7 +706,6 @@ decl_storage! {

// /// The start of the current era.
// // TODO TODO: actually no this doesn't match the start of the era at index CurrentEra.
// // TODO TODO: rename ActiveEra
// pub CurrentEraStart get(fn current_era_start): MomentOf<T>;
// TODO TODO: clean this!!

Expand Down Expand Up @@ -758,7 +752,7 @@ decl_storage! {
//pub SlotStake get(fn slot_stake) build(|config: &GenesisConfig<T>| {
// config.stakers.iter().map(|&(_, _, value, _)| value).min().unwrap_or_default()
//}): BalanceOf<T>;
//TODO TODO: clean this!!
//TODO TODO: Slot stake is not longer used. clean this!!

/// True if the next session change will be a new era regardless of index.
pub ForceEra get(fn force_era) config(): Forcing;
Expand Down Expand Up @@ -1443,8 +1437,6 @@ impl<T: Trait> Module<T> {
// TODO: at the end of session, ensure that points are accumulated within the correct era.
// TODO: currently, validator set changes lag by one session, therefore, in the first session of
// TODO: an era, the points should be accumulated by the validator set of the era before.
// TODO TODO: I'm not sure I understand that, staking doesn't rely on delay anymore at all. it just know that after HISTORY_DEPTH it removes the rewards.
// TODO TODO: either we make the reward giving the era to reward, or we follow what is the current era used in session!

/// Update the ledger for a controller. This will also update the stash lock. The lock will
/// will lock the entire funds except paying for further transactions.
Expand Down Expand Up @@ -1552,6 +1544,7 @@ impl<T: Trait> Module<T> {
// Increment current era.
let current_era = CurrentEra::mutate(|s| { *s += 1; *s });
// TODO TODO: either start_session_index strictly increase or we must remove old era overriden
// TODO TODO: update doc or code to make this correct
ErasStartSessionIndex::insert(&current_era, &start_session_index);

// Clean old era information.
Expand Down Expand Up @@ -1615,7 +1608,6 @@ impl<T: Trait> Module<T> {
/// Returns a set of newly selected _stash_ IDs.
///
/// Assumes storage is coherent with the declaration.
// TODO TODO: maybe remove storage alteration here and return types!!!
fn select_validators() -> Option<Vec<T::AccountId>> {
let mut all_nominators: Vec<(T::AccountId, Vec<T::AccountId>)> = Vec::new();
let all_validator_candidates_iter = <Validators<T>>::enumerate();
Expand Down Expand Up @@ -1833,7 +1825,7 @@ impl<T: Trait> OnSessionEnding<T::AccountId, Exposure<T::AccountId, BalanceOf<T>
-> Option<(Vec<T::AccountId>, Vec<(T::AccountId, Exposure<T::AccountId, BalanceOf<T>>)>)>
{
Self::ensure_storage_upgraded();
let maybe_validator_sets = Self::new_session(will_apply_at); // TODO TODO: why was it -1 before ?
let maybe_validator_sets = Self::new_session(will_apply_at);
Self::end_session(session_ending);
maybe_validator_sets
}
Expand Down Expand Up @@ -1883,7 +1875,7 @@ impl<T: Trait> Convert<T::AccountId, Option<Exposure<T::AccountId, BalanceOf<T>>
for ExposureOf<T>
{
fn convert(validator: T::AccountId) -> Option<Exposure<T::AccountId, BalanceOf<T>>> {
// TODO TODO: which exposure do we want here ??? active era or current era ??
// TODO TODO: which exposure do we want here ? active era or current era ?
Some(<Module<T>>::eras_stakers(<Module<T>>::current_era(), &validator))
}
}
Expand Down