Skip to content

[Staking] Runtime api if era rewards are pending to be claimed#4301

Merged
Ank4n merged 8 commits into
masterfrom
ankan/staking/runtime-api-pending-rewards
Apr 28, 2024
Merged

[Staking] Runtime api if era rewards are pending to be claimed#4301
Ank4n merged 8 commits into
masterfrom
ankan/staking/runtime-api-pending-rewards

Conversation

@Ank4n

@Ank4n Ank4n commented Apr 25, 2024

Copy link
Copy Markdown
Contributor

closes #426.
related to #1189.

Would help offchain programs to query if there are unclaimed pages of rewards for a given era.

The logic could look like below

// loop as long as all era pages are claimed.
while (api.call.stakingApi.pendingRewards(era, validator_stash)) {
  api.tx.staking.payout_stakers(validator_stash, era)
}

@Ank4n Ank4n added T4-runtime_API This PR/Issue is related to runtime APIs. D0-easy Can be fixed primarily by duplicating and adapting code by an intermediate coder. labels Apr 25, 2024

@acatangiu acatangiu left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Nice!

@kianenigma kianenigma left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

How can we do even better, you might ask?

ask @TarikGul and @rossbulat to tell you in which places in their codebase they have to re-implement some formula of some sort and expose those as APIs as well.

Comment thread prdoc/pr_4301.prdoc Outdated
title: New runtime api to check if a validator has pending pages of rewards for an era.

doc:
- audience: Node Dev

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
- audience: Node Dev
- audience: Node Dev | Runtime Dev

I think it is worth pursuing a new audience type here, wdyt?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Added Runtime user which is defined in schema as Anyone using the runtime. This can be a token holder or a dev writing a front end for a chain.

@Ank4n Ank4n added this pull request to the merge queue Apr 28, 2024
Merged via the queue into master with commit 73b9a83 Apr 28, 2024
@Ank4n Ank4n deleted the ankan/staking/runtime-api-pending-rewards branch April 28, 2024 13:03
Morganamilo pushed a commit that referenced this pull request May 2, 2024
closes #426.
related to #1189.

Would help offchain programs to query if there are unclaimed pages of
rewards for a given era.

The logic could look like below

```js
// loop as long as all era pages are claimed.
while (api.call.stakingApi.pendingRewards(era, validator_stash)) {
  api.tx.staking.payout_stakers(validator_stash, era)
}
```
@TarikGul

TarikGul commented May 8, 2024

Copy link
Copy Markdown
Member

This is awesome, I'll make sure this is supported in the API when ready. Do we know what runtime this will be apart of?

Ank4n added a commit that referenced this pull request May 20, 2024
closes #426.
related to #1189.

Would help offchain programs to query if there are unclaimed pages of
rewards for a given era.

The logic could look like below

```js
// loop as long as all era pages are claimed.
while (api.call.stakingApi.pendingRewards(era, validator_stash)) {
  api.tx.staking.payout_stakers(validator_stash, era)
}
```
Ank4n added a commit that referenced this pull request May 20, 2024
Backport of #4301 to
polkadot-sdk 1.7.0.

Expect patch `pallet-staking` from `29.0.2` to `29.0.3` and
`pallet-staking-runtime-api` from `15.0.0` to `15.0.01`.
fellowship-merge-bot Bot pushed a commit to polkadot-fellows/runtimes that referenced this pull request May 21, 2024
Changes:
- Fixes the issue [preventing nomination pools from getting
destroyed](paritytech/polkadot-sdk#4440).
- Adds a new staking runtime api to Kusama and Polkadot to help with
checking if era rewards are pending for a validator. Refer
paritytech/polkadot-sdk#4301.
TarekkMA pushed a commit to moonbeam-foundation/polkadot-sdk that referenced this pull request Aug 2, 2024
…ytech#4301)

closes paritytech#426.
related to paritytech#1189.

Would help offchain programs to query if there are unclaimed pages of
rewards for a given era.

The logic could look like below

```js
// loop as long as all era pages are claimed.
while (api.call.stakingApi.pendingRewards(era, validator_stash)) {
  api.tx.staking.payout_stakers(validator_stash, era)
}
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

D0-easy Can be fixed primarily by duplicating and adapting code by an intermediate coder. T4-runtime_API This PR/Issue is related to runtime APIs.

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

Staking runtime apis to help with paged reward payouts

4 participants