Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update reward pool on provider_boost or unstake #1699 #1948

Merged

Conversation

shannonwells
Copy link
Collaborator

@shannonwells shannonwells commented Apr 22, 2024

Goal

The goal of this PR is to update the StakingRewardPool on a provider_boost or unstake extrinsic call.

Closes #1699

Discussion

Also includes a bunch of lint changes

Checklist

  • Design doc(s) updated
  • Tests added
  • Benchmarks corrected and updated
  • Weights updated

@shannonwells shannonwells changed the base branch from main to feat/capacity-staking-rewards-impl April 22, 2024 18:16
@shannonwells shannonwells force-pushed the feat/update-reward-pool-#1699 branch from 1cad250 to 0cee861 Compare April 22, 2024 18:41
updates to impl design doc
* Make some functions pass by reference (performance)
* fix broken tests & calls
The goal of this PR is to implement storage of reward pool history.

Closes #1710
The goal of this PR is to split the `stake` extrinsic into two: `stake` and `provider_boost`
Closes #1707
The goal of this PR is to split up storage of boosting and maximized staking accounts,
as well as store retarget history separately, which can store retargeting events for
any type of staking.

Closes #1726

* Lots of rattle, causing several helper functions to be split up -
rather than having a bunch of conditionals due to type differences.
* In the interest of limiting the size of this PR/merge into the branch
I left a lot of TODOs for when reward pool updates on a
stake/boost/unstake is resumed
* Add staking_history to StakingAccountDetails
* Change type of some Configs
* Stub some tests
* separate provider_boost tests into own file
@shannonwells shannonwells force-pushed the feat/update-reward-pool-#1699 branch from 57f1d42 to b310d91 Compare April 23, 2024 20:59
@shannonwells shannonwells changed the title [WIP, may be deleted] Feat/update reward pool #1699 [WIP, may be deleted] update reward pool #1699 Apr 24, 2024
* Fix capacity benchmarking
* Set up reward pool info in new_test_ext() in capacity mocks
* Implement and fix tests
@shannonwells shannonwells marked this pull request as ready for review April 25, 2024 00:29
@shannonwells shannonwells requested a review from wilwade as a code owner April 25, 2024 00:29
@shannonwells shannonwells changed the title [WIP, may be deleted] update reward pool #1699 Update reward pool on provider_boost or unstake #1699 Apr 25, 2024
Copy link
Collaborator

@aramikm aramikm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added some questions and comments

  • Read the code
  • Ran the tests
  • Not able to verify the arithmetic changes compared to what was expected since don't have enough context about it.

pallets/capacity/src/benchmarking.rs Show resolved Hide resolved
pallets/capacity/src/benchmarking.rs Show resolved Hide resolved
pallets/capacity/src/tests/mock.rs Show resolved Hide resolved
@@ -767,6 +771,10 @@ impl<T: Config> Pallet<T> {
CapacityLedger::<T>::insert(target, capacity_details);
}

fn set_reward_pool(era: <T>::RewardEra, new_reward_pool: &RewardPoolInfo<BalanceOf<T>>) {
StakingRewardPool::<T>::set(era, Some(new_reward_pool.clone()));
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we mutate here ? set is cool assuming it serves dual purpose of remove/update but need to check

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm following our previous pattern of let mut foo = Capacity::get_a_stored_thing(key) followed by a set. We've been moving away from mutate.

Copy link
Collaborator

@saraswatpuneet saraswatpuneet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a nit

@shannonwells shannonwells merged commit 4994281 into feat/capacity-staking-rewards-impl Apr 25, 2024
@shannonwells shannonwells deleted the feat/update-reward-pool-#1699 branch April 25, 2024 21:54
shannonwells added a commit that referenced this pull request May 3, 2024
# Goal
The goal of this PR is to update the StakingRewardPool on a `provider_boost` or `unstake` extrinsic call.

Closes #1699 

# Discussion
Also includes a bunch of lint changes

# Checklist
- [x] Design doc(s) updated
- [x] Tests added
- [x] Benchmarks corrected and updated
- [x] Weights updated
shannonwells added a commit that referenced this pull request May 6, 2024
The goal of this PR is to update the StakingRewardPool on a `provider_boost` or `unstake` extrinsic call.

Closes #1699

Also includes a bunch of lint changes

- [x] Design doc(s) updated
- [x] Tests added
- [x] Benchmarks corrected and updated
- [x] Weights updated
shannonwells added a commit that referenced this pull request May 7, 2024
The goal of this PR is to update the StakingRewardPool on a `provider_boost` or `unstake` extrinsic call.

Closes #1699

Also includes a bunch of lint changes

- [x] Design doc(s) updated
- [x] Tests added
- [x] Benchmarks corrected and updated
- [x] Weights updated
shannonwells added a commit that referenced this pull request May 14, 2024
The goal of this PR is to update the StakingRewardPool on a `provider_boost` or `unstake` extrinsic call.

Closes #1699

Also includes a bunch of lint changes

- [x] Design doc(s) updated
- [x] Tests added
- [x] Benchmarks corrected and updated
- [x] Weights updated
shannonwells added a commit that referenced this pull request May 21, 2024
The goal of this PR is to update the StakingRewardPool on a `provider_boost` or `unstake` extrinsic call.

Closes #1699

Also includes a bunch of lint changes

- [x] Design doc(s) updated
- [x] Tests added
- [x] Benchmarks corrected and updated
- [x] Weights updated
shannonwells added a commit that referenced this pull request May 22, 2024
The goal of this PR is to update the StakingRewardPool on a `provider_boost` or `unstake` extrinsic call.

Closes #1699

Also includes a bunch of lint changes

- [x] Design doc(s) updated
- [x] Tests added
- [x] Benchmarks corrected and updated
- [x] Weights updated
shannonwells added a commit that referenced this pull request Jun 12, 2024
The goal of this PR is to update the StakingRewardPool on a `provider_boost` or `unstake` extrinsic call.

Closes #1699

Also includes a bunch of lint changes

- [x] Design doc(s) updated
- [x] Tests added
- [x] Benchmarks corrected and updated
- [x] Weights updated
shannonwells added a commit that referenced this pull request Jun 25, 2024
The goal of this PR is to update the StakingRewardPool on a `provider_boost` or `unstake` extrinsic call.

Closes #1699

Also includes a bunch of lint changes

- [x] Design doc(s) updated
- [x] Tests added
- [x] Benchmarks corrected and updated
- [x] Weights updated
shannonwells added a commit that referenced this pull request Jul 18, 2024
The goal of this PR is to update the StakingRewardPool on a `provider_boost` or `unstake` extrinsic call.

Closes #1699

Also includes a bunch of lint changes

- [x] Design doc(s) updated
- [x] Tests added
- [x] Benchmarks corrected and updated
- [x] Weights updated
shannonwells added a commit that referenced this pull request Jul 23, 2024
The goal of this PR is to update the StakingRewardPool on a `provider_boost` or `unstake` extrinsic call.

Closes #1699

Also includes a bunch of lint changes

- [x] Design doc(s) updated
- [x] Tests added
- [x] Benchmarks corrected and updated
- [x] Weights updated
shannonwells added a commit that referenced this pull request Oct 9, 2024
The goal of this PR is to update the StakingRewardPool on a `provider_boost` or `unstake` extrinsic call.

Closes #1699

Also includes a bunch of lint changes

- [x] Design doc(s) updated
- [x] Tests added
- [x] Benchmarks corrected and updated
- [x] Weights updated
shannonwells added a commit that referenced this pull request Oct 10, 2024
updates to design docs to use a capacity rewards interface
Prototypes, make check working
refinements to design doc

Implement Staking Reward Eras basics (#1589)

Implement the basic functionality of tracking and rotating Reward Era. Closes #1567
Does not include anything to do with the Reward Pool.

Feat/staking rewards rewards provider #1572 (#1598)

The goal of this PR is to implement a really basic version of the
StakingRewardsProvider in the Capacity pallet and in the test mock,
neither of which is actively used.

Closes #1572

Does not include anything to do with setting and storing RewardPoolInfo
when each new Era starts.

change staking target extrinsic, closes #1570 (#1623)

comments, capacity boost fn added to StakingRewardsProvider trait

* Refactor staking type to go in StakingTargetDetails
* Make some functions pass by reference (performance)
* fix broken tests & calls

use capacity_boost and StakingType to adjust capacity generation, add/adjust tests

* Check from/to aren't the same when retargeting
* Performance: move non-db checks to top when retargeting
* Lots more tests
* Fix a bug where we weren't setting the staking type on a retarget
* Remove staking type from StakingAccountDetails
* Fix broken tests from last commit

Feat/reward pool history (#1710)
Closes #1710

Feat/split stake extrinsic #1699 (#1717)

The goal of this PR is to split the `stake` extrinsic into two: `stake` and `provider_boost`
Closes #1707

Feat/split storage #1726 (#1744)

The goal of this PR is to split up storage of boosting and maximized staking accounts,
as well as store retarget history separately, which can store retargeting events for
any type of staking.

Closes #1726

fix e2e tests, correction to implementation design doc

initialize storage for ProviderBoost on runtime upgrade

Set ProviderBoost capacity generated and fix tests (#1947)

* set the amount of capacity generated by a provider boost to the final amount, 50% of what is generated by MaximizedCapacity staking.
* Also Fixes some tests broken from the last rebase with main.
Closes #1569

Update reward pool on `provider_boost` or `unstake` #1699 (#1948)

The goal of this PR is to update the StakingRewardPool on a `provider_boost` or `unstake` extrinsic call.

Closes #1699

Implement rewards calculation formula #1941 (#1956)

The goal of this PR is to implement (but not really use yet) the chosen
formula for calculation of a reward in a single Provider Boost Reward
Era.

Closes #1941

updates after rebase

upsert staking history #1699 (#1963)

The goal of this PR is to add and use storage for individual staking history so that rewards can be calculated and paid out.  Benchmarks run to update capacity weights.

Relates to #1699

Chores/update capacity benchmarks #1949 (#1966)

The goal of this PR is to update the benchmark for `on_initialize` to include the weight when a new RewardEra must be created.

Closes #1949

Feat/check unclaimed rewards 1969 (#1972)

The goal of this PR is to implement `list_unclaimed_rewards`, and also
one that is lighter weight, `has_unclaimed_rewards`, which returns a
`bool` and which `unstake` extrinsic uses. Unstake now fails if there
are any unclaimed rewards.

Closes #1969
Closes #1578

Feat/reward pool refactor #1976 (#2005)

The goal of this PR is to implement a "chunk" version of the overall
reward pool history to reduce read/write load and hence weight for
transactions and `on_initialize` when a new `RewardEra` needs to start.

Part of #1976

Co-authored-by: Wil Wade <[email protected]>

Revise Provider Boost implementation design doc #2016 (#2020)

The goal of this PR is to review and update the implementation design doc in light of the chosen economic model, and to reflect some changes in behavior.  Review of the design doc also fed back into the code itself. Some code
is no longer needed.

Closes #2016

Co-authored-by: Aramik <[email protected]>

E2e for new extrinsics (#2067)

The goal of this PR is to add some e2e tests for the `provider_boost` extrinsic, and update the `change_staking_target` extrinsic after a rebase with main.

Refactor reward era (#2069)

The goal of this PR is primarily to pull RewardEra out of the Capacity Config and make it the same type everywhere.

`claim_staking_rewards` extrinsic (#2080)
Closes #1970

Capacity runtime api with list_unclaimed_rewards endpoint (#2088)
The goal of this PR is to implement a capacity runtime api for the `list_unclaimed_rewards` endpoint.
Closes #1698

Update Capacity README

address the lint failure.  updates after rebase with main

Remove TODO since it's already been addressed.
Add a minor test case to unstaking tests
Add new extrinsics to Capacity README
shannonwells added a commit that referenced this pull request Oct 18, 2024
updates to design docs to use a capacity rewards interface
Prototypes, make check working
refinements to design doc

Implement Staking Reward Eras basics (#1589)

Implement the basic functionality of tracking and rotating Reward Era. Closes #1567
Does not include anything to do with the Reward Pool.

Feat/staking rewards rewards provider #1572 (#1598)

The goal of this PR is to implement a really basic version of the
StakingRewardsProvider in the Capacity pallet and in the test mock,
neither of which is actively used.

Closes #1572

Does not include anything to do with setting and storing RewardPoolInfo
when each new Era starts.

change staking target extrinsic, closes #1570 (#1623)

comments, capacity boost fn added to StakingRewardsProvider trait

* Refactor staking type to go in StakingTargetDetails
* Make some functions pass by reference (performance)
* fix broken tests & calls

use capacity_boost and StakingType to adjust capacity generation, add/adjust tests

* Check from/to aren't the same when retargeting
* Performance: move non-db checks to top when retargeting
* Lots more tests
* Fix a bug where we weren't setting the staking type on a retarget
* Remove staking type from StakingAccountDetails
* Fix broken tests from last commit

Feat/reward pool history (#1710)
Closes #1710

Feat/split stake extrinsic #1699 (#1717)

The goal of this PR is to split the `stake` extrinsic into two: `stake` and `provider_boost`
Closes #1707

Feat/split storage #1726 (#1744)

The goal of this PR is to split up storage of boosting and maximized staking accounts,
as well as store retarget history separately, which can store retargeting events for
any type of staking.

Closes #1726

fix e2e tests, correction to implementation design doc

initialize storage for ProviderBoost on runtime upgrade

Set ProviderBoost capacity generated and fix tests (#1947)

* set the amount of capacity generated by a provider boost to the final amount, 50% of what is generated by MaximizedCapacity staking.
* Also Fixes some tests broken from the last rebase with main.
Closes #1569

Update reward pool on `provider_boost` or `unstake` #1699 (#1948)

The goal of this PR is to update the StakingRewardPool on a `provider_boost` or `unstake` extrinsic call.

Closes #1699

Implement rewards calculation formula #1941 (#1956)

The goal of this PR is to implement (but not really use yet) the chosen
formula for calculation of a reward in a single Provider Boost Reward
Era.

Closes #1941

updates after rebase

upsert staking history #1699 (#1963)

The goal of this PR is to add and use storage for individual staking history so that rewards can be calculated and paid out.  Benchmarks run to update capacity weights.

Relates to #1699

Chores/update capacity benchmarks #1949 (#1966)

The goal of this PR is to update the benchmark for `on_initialize` to include the weight when a new RewardEra must be created.

Closes #1949

Feat/check unclaimed rewards 1969 (#1972)

The goal of this PR is to implement `list_unclaimed_rewards`, and also
one that is lighter weight, `has_unclaimed_rewards`, which returns a
`bool` and which `unstake` extrinsic uses. Unstake now fails if there
are any unclaimed rewards.

Closes #1969
Closes #1578

Feat/reward pool refactor #1976 (#2005)

The goal of this PR is to implement a "chunk" version of the overall
reward pool history to reduce read/write load and hence weight for
transactions and `on_initialize` when a new `RewardEra` needs to start.

Part of #1976

Co-authored-by: Wil Wade <[email protected]>

Revise Provider Boost implementation design doc #2016 (#2020)

The goal of this PR is to review and update the implementation design doc in light of the chosen economic model, and to reflect some changes in behavior.  Review of the design doc also fed back into the code itself. Some code
is no longer needed.

Closes #2016

Co-authored-by: Aramik <[email protected]>

E2e for new extrinsics (#2067)

The goal of this PR is to add some e2e tests for the `provider_boost` extrinsic, and update the `change_staking_target` extrinsic after a rebase with main.

Refactor reward era (#2069)

The goal of this PR is primarily to pull RewardEra out of the Capacity Config and make it the same type everywhere.

`claim_staking_rewards` extrinsic (#2080)
Closes #1970

Capacity runtime api with list_unclaimed_rewards endpoint (#2088)
The goal of this PR is to implement a capacity runtime api for the `list_unclaimed_rewards` endpoint.
Closes #1698

Update Capacity README

address the lint failure.  updates after rebase with main

Remove TODO since it's already been addressed.
Add a minor test case to unstaking tests
Add new extrinsics to Capacity README
shannonwells added a commit that referenced this pull request Oct 25, 2024
updates to design docs to use a capacity rewards interface
Prototypes, make check working
refinements to design doc

Implement Staking Reward Eras basics (#1589)

Implement the basic functionality of tracking and rotating Reward Era. Closes #1567
Does not include anything to do with the Reward Pool.

Feat/staking rewards rewards provider #1572 (#1598)

The goal of this PR is to implement a really basic version of the
StakingRewardsProvider in the Capacity pallet and in the test mock,
neither of which is actively used.

Closes #1572

Does not include anything to do with setting and storing RewardPoolInfo
when each new Era starts.

change staking target extrinsic, closes #1570 (#1623)

comments, capacity boost fn added to StakingRewardsProvider trait

* Refactor staking type to go in StakingTargetDetails
* Make some functions pass by reference (performance)
* fix broken tests & calls

use capacity_boost and StakingType to adjust capacity generation, add/adjust tests

* Check from/to aren't the same when retargeting
* Performance: move non-db checks to top when retargeting
* Lots more tests
* Fix a bug where we weren't setting the staking type on a retarget
* Remove staking type from StakingAccountDetails
* Fix broken tests from last commit

Feat/reward pool history (#1710)
Closes #1710

Feat/split stake extrinsic #1699 (#1717)

The goal of this PR is to split the `stake` extrinsic into two: `stake` and `provider_boost`
Closes #1707

Feat/split storage #1726 (#1744)

The goal of this PR is to split up storage of boosting and maximized staking accounts,
as well as store retarget history separately, which can store retargeting events for
any type of staking.

Closes #1726

fix e2e tests, correction to implementation design doc

initialize storage for ProviderBoost on runtime upgrade

Set ProviderBoost capacity generated and fix tests (#1947)

* set the amount of capacity generated by a provider boost to the final amount, 50% of what is generated by MaximizedCapacity staking.
* Also Fixes some tests broken from the last rebase with main.
Closes #1569

Update reward pool on `provider_boost` or `unstake` #1699 (#1948)

The goal of this PR is to update the StakingRewardPool on a `provider_boost` or `unstake` extrinsic call.

Closes #1699

Implement rewards calculation formula #1941 (#1956)

The goal of this PR is to implement (but not really use yet) the chosen
formula for calculation of a reward in a single Provider Boost Reward
Era.

Closes #1941

updates after rebase

upsert staking history #1699 (#1963)

The goal of this PR is to add and use storage for individual staking history so that rewards can be calculated and paid out.  Benchmarks run to update capacity weights.

Relates to #1699

Chores/update capacity benchmarks #1949 (#1966)

The goal of this PR is to update the benchmark for `on_initialize` to include the weight when a new RewardEra must be created.

Closes #1949

Feat/check unclaimed rewards 1969 (#1972)

The goal of this PR is to implement `list_unclaimed_rewards`, and also
one that is lighter weight, `has_unclaimed_rewards`, which returns a
`bool` and which `unstake` extrinsic uses. Unstake now fails if there
are any unclaimed rewards.

Closes #1969
Closes #1578

Feat/reward pool refactor #1976 (#2005)

The goal of this PR is to implement a "chunk" version of the overall
reward pool history to reduce read/write load and hence weight for
transactions and `on_initialize` when a new `RewardEra` needs to start.

Part of #1976

Co-authored-by: Wil Wade <[email protected]>

Revise Provider Boost implementation design doc #2016 (#2020)

The goal of this PR is to review and update the implementation design doc in light of the chosen economic model, and to reflect some changes in behavior.  Review of the design doc also fed back into the code itself. Some code
is no longer needed.

Closes #2016

Co-authored-by: Aramik <[email protected]>

E2e for new extrinsics (#2067)

The goal of this PR is to add some e2e tests for the `provider_boost` extrinsic, and update the `change_staking_target` extrinsic after a rebase with main.

Refactor reward era (#2069)

The goal of this PR is primarily to pull RewardEra out of the Capacity Config and make it the same type everywhere.

`claim_staking_rewards` extrinsic (#2080)
Closes #1970

Capacity runtime api with list_unclaimed_rewards endpoint (#2088)
The goal of this PR is to implement a capacity runtime api for the `list_unclaimed_rewards` endpoint.
Closes #1698

Update Capacity README

address the lint failure.  updates after rebase with main

Remove TODO since it's already been addressed.
Add a minor test case to unstaking tests
Add new extrinsics to Capacity README
shannonwells added a commit that referenced this pull request Oct 29, 2024
updates to design docs to use a capacity rewards interface
Prototypes, make check working
refinements to design doc

Implement Staking Reward Eras basics (#1589)

Implement the basic functionality of tracking and rotating Reward Era. Closes #1567
Does not include anything to do with the Reward Pool.

Feat/staking rewards rewards provider #1572 (#1598)

The goal of this PR is to implement a really basic version of the
StakingRewardsProvider in the Capacity pallet and in the test mock,
neither of which is actively used.

Closes #1572

Does not include anything to do with setting and storing RewardPoolInfo
when each new Era starts.

change staking target extrinsic, closes #1570 (#1623)

comments, capacity boost fn added to StakingRewardsProvider trait

* Refactor staking type to go in StakingTargetDetails
* Make some functions pass by reference (performance)
* fix broken tests & calls

use capacity_boost and StakingType to adjust capacity generation, add/adjust tests

* Check from/to aren't the same when retargeting
* Performance: move non-db checks to top when retargeting
* Lots more tests
* Fix a bug where we weren't setting the staking type on a retarget
* Remove staking type from StakingAccountDetails
* Fix broken tests from last commit

Feat/reward pool history (#1710)
Closes #1710

Feat/split stake extrinsic #1699 (#1717)

The goal of this PR is to split the `stake` extrinsic into two: `stake` and `provider_boost`
Closes #1707

Feat/split storage #1726 (#1744)

The goal of this PR is to split up storage of boosting and maximized staking accounts,
as well as store retarget history separately, which can store retargeting events for
any type of staking.

Closes #1726

fix e2e tests, correction to implementation design doc

initialize storage for ProviderBoost on runtime upgrade

Set ProviderBoost capacity generated and fix tests (#1947)

* set the amount of capacity generated by a provider boost to the final amount, 50% of what is generated by MaximizedCapacity staking.
* Also Fixes some tests broken from the last rebase with main.
Closes #1569

Update reward pool on `provider_boost` or `unstake` #1699 (#1948)

The goal of this PR is to update the StakingRewardPool on a `provider_boost` or `unstake` extrinsic call.

Closes #1699

Implement rewards calculation formula #1941 (#1956)

The goal of this PR is to implement (but not really use yet) the chosen
formula for calculation of a reward in a single Provider Boost Reward
Era.

Closes #1941

updates after rebase

upsert staking history #1699 (#1963)

The goal of this PR is to add and use storage for individual staking history so that rewards can be calculated and paid out.  Benchmarks run to update capacity weights.

Relates to #1699

Chores/update capacity benchmarks #1949 (#1966)

The goal of this PR is to update the benchmark for `on_initialize` to include the weight when a new RewardEra must be created.

Closes #1949

Feat/check unclaimed rewards 1969 (#1972)

The goal of this PR is to implement `list_unclaimed_rewards`, and also
one that is lighter weight, `has_unclaimed_rewards`, which returns a
`bool` and which `unstake` extrinsic uses. Unstake now fails if there
are any unclaimed rewards.

Closes #1969
Closes #1578

Feat/reward pool refactor #1976 (#2005)

The goal of this PR is to implement a "chunk" version of the overall
reward pool history to reduce read/write load and hence weight for
transactions and `on_initialize` when a new `RewardEra` needs to start.

Part of #1976

Co-authored-by: Wil Wade <[email protected]>

Revise Provider Boost implementation design doc #2016 (#2020)

The goal of this PR is to review and update the implementation design doc in light of the chosen economic model, and to reflect some changes in behavior.  Review of the design doc also fed back into the code itself. Some code
is no longer needed.

Closes #2016

Co-authored-by: Aramik <[email protected]>

E2e for new extrinsics (#2067)

The goal of this PR is to add some e2e tests for the `provider_boost` extrinsic, and update the `change_staking_target` extrinsic after a rebase with main.

Refactor reward era (#2069)

The goal of this PR is primarily to pull RewardEra out of the Capacity Config and make it the same type everywhere.

`claim_staking_rewards` extrinsic (#2080)
Closes #1970

Capacity runtime api with list_unclaimed_rewards endpoint (#2088)
The goal of this PR is to implement a capacity runtime api for the `list_unclaimed_rewards` endpoint.
Closes #1698

Update Capacity README

address the lint failure.  updates after rebase with main

Remove TODO since it's already been addressed.
Add a minor test case to unstaking tests
Add new extrinsics to Capacity README
shannonwells added a commit that referenced this pull request Oct 30, 2024
updates to design docs to use a capacity rewards interface
Prototypes, make check working
refinements to design doc

Implement Staking Reward Eras basics (#1589)

Implement the basic functionality of tracking and rotating Reward Era. Closes #1567
Does not include anything to do with the Reward Pool.

Feat/staking rewards rewards provider #1572 (#1598)

The goal of this PR is to implement a really basic version of the
StakingRewardsProvider in the Capacity pallet and in the test mock,
neither of which is actively used.

Closes #1572

Does not include anything to do with setting and storing RewardPoolInfo
when each new Era starts.

change staking target extrinsic, closes #1570 (#1623)

comments, capacity boost fn added to StakingRewardsProvider trait

* Refactor staking type to go in StakingTargetDetails
* Make some functions pass by reference (performance)
* fix broken tests & calls

use capacity_boost and StakingType to adjust capacity generation, add/adjust tests

* Check from/to aren't the same when retargeting
* Performance: move non-db checks to top when retargeting
* Lots more tests
* Fix a bug where we weren't setting the staking type on a retarget
* Remove staking type from StakingAccountDetails
* Fix broken tests from last commit

Feat/reward pool history (#1710)
Closes #1710

Feat/split stake extrinsic #1699 (#1717)

The goal of this PR is to split the `stake` extrinsic into two: `stake` and `provider_boost`
Closes #1707

Feat/split storage #1726 (#1744)

The goal of this PR is to split up storage of boosting and maximized staking accounts,
as well as store retarget history separately, which can store retargeting events for
any type of staking.

Closes #1726

fix e2e tests, correction to implementation design doc

initialize storage for ProviderBoost on runtime upgrade

Set ProviderBoost capacity generated and fix tests (#1947)

* set the amount of capacity generated by a provider boost to the final amount, 50% of what is generated by MaximizedCapacity staking.
* Also Fixes some tests broken from the last rebase with main.
Closes #1569

Update reward pool on `provider_boost` or `unstake` #1699 (#1948)

The goal of this PR is to update the StakingRewardPool on a `provider_boost` or `unstake` extrinsic call.

Closes #1699

Implement rewards calculation formula #1941 (#1956)

The goal of this PR is to implement (but not really use yet) the chosen
formula for calculation of a reward in a single Provider Boost Reward
Era.

Closes #1941

updates after rebase

upsert staking history #1699 (#1963)

The goal of this PR is to add and use storage for individual staking history so that rewards can be calculated and paid out.  Benchmarks run to update capacity weights.

Relates to #1699

Chores/update capacity benchmarks #1949 (#1966)

The goal of this PR is to update the benchmark for `on_initialize` to include the weight when a new RewardEra must be created.

Closes #1949

Feat/check unclaimed rewards 1969 (#1972)

The goal of this PR is to implement `list_unclaimed_rewards`, and also
one that is lighter weight, `has_unclaimed_rewards`, which returns a
`bool` and which `unstake` extrinsic uses. Unstake now fails if there
are any unclaimed rewards.

Closes #1969
Closes #1578

Feat/reward pool refactor #1976 (#2005)

The goal of this PR is to implement a "chunk" version of the overall
reward pool history to reduce read/write load and hence weight for
transactions and `on_initialize` when a new `RewardEra` needs to start.

Part of #1976

Co-authored-by: Wil Wade <[email protected]>

Revise Provider Boost implementation design doc #2016 (#2020)

The goal of this PR is to review and update the implementation design doc in light of the chosen economic model, and to reflect some changes in behavior.  Review of the design doc also fed back into the code itself. Some code
is no longer needed.

Closes #2016

Co-authored-by: Aramik <[email protected]>

E2e for new extrinsics (#2067)

The goal of this PR is to add some e2e tests for the `provider_boost` extrinsic, and update the `change_staking_target` extrinsic after a rebase with main.

Refactor reward era (#2069)

The goal of this PR is primarily to pull RewardEra out of the Capacity Config and make it the same type everywhere.

`claim_staking_rewards` extrinsic (#2080)
Closes #1970

Capacity runtime api with list_unclaimed_rewards endpoint (#2088)
The goal of this PR is to implement a capacity runtime api for the `list_unclaimed_rewards` endpoint.
Closes #1698

Update Capacity README

address the lint failure.  updates after rebase with main

Remove TODO since it's already been addressed.
Add a minor test case to unstaking tests
Add new extrinsics to Capacity README
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants