Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Rpc for pending rewards #11831

Merged
merged 52 commits into from
Jul 26, 2022
Merged
Show file tree
Hide file tree
Changes from 50 commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
5e4ab1e
rpc pending rewards
Szegoo Jul 13, 2022
f548a89
commit
Szegoo Jul 13, 2022
26004a3
remove unused imports
Szegoo Jul 13, 2022
08bcda5
fix
Szegoo Jul 13, 2022
9b5cf9e
fix
Szegoo Jul 13, 2022
180f7ef
fmt
Szegoo Jul 13, 2022
0d50df7
fix
Szegoo Jul 14, 2022
c95d155
fmt
Szegoo Jul 14, 2022
611d410
fix
Szegoo Jul 14, 2022
6419f43
docs
Szegoo Jul 14, 2022
a9582a0
docs & formatting
Szegoo Jul 14, 2022
830ae63
better formatting
Szegoo Jul 14, 2022
e9b183b
temporary fix
Szegoo Jul 14, 2022
b3b3e18
error handling
Szegoo Jul 14, 2022
cf98349
fix?
Szegoo Jul 14, 2022
3978023
fmt
Szegoo Jul 14, 2022
c8273c2
use to_string
Szegoo Jul 14, 2022
3a866ff
fmt
Szegoo Jul 14, 2022
3266173
fixed error handling
Szegoo Jul 15, 2022
34857e5
fix
Szegoo Jul 15, 2022
ff745f1
rpc added to client
Szegoo Jul 15, 2022
29fa77c
Merge branch 'paritytech:master' into rpc-pending-rewards
Szegoo Jul 16, 2022
3beb5ba
Merge branch 'paritytech:master' into rpc-pending-rewards
Szegoo Jul 17, 2022
83a1b3f
Update Cargo.toml
Szegoo Jul 17, 2022
3eeb3e6
Update Cargo.toml
Szegoo Jul 17, 2022
24c1230
fix wrong reward counter
Szegoo Jul 17, 2022
685a116
expose function
Szegoo Jul 17, 2022
756f1b0
move implementation
Szegoo Jul 17, 2022
36dfaf3
docs
Szegoo Jul 17, 2022
2c26af8
Merge branch 'paritytech:master' into rpc-pending-rewards
Szegoo Jul 17, 2022
23d2b67
Merge branch 'paritytech:master' into rpc-pending-rewards
Szegoo Jul 18, 2022
6b8968a
docs
Szegoo Jul 18, 2022
6d976b3
docs
Szegoo Jul 18, 2022
5650a9a
Update lib.rs
Szegoo Jul 18, 2022
1bb1bd6
Update lib.rs
Szegoo Jul 18, 2022
5357b48
Merge branch 'paritytech:master' into rpc-pending-rewards
Szegoo Jul 18, 2022
2fef04c
Merge branch 'paritytech:master' into rpc-pending-rewards
Szegoo Jul 18, 2022
0d9477f
unexpose functions
Szegoo Jul 18, 2022
3964f8c
unused dependency
Szegoo Jul 19, 2022
8d26315
update Cargo.lock
Szegoo Jul 19, 2022
f38fded
Update frame/nomination-pools/src/lib.rs
kianenigma Jul 22, 2022
7f0b4b3
Merge branch 'paritytech:master' into rpc-pending-rewards
Szegoo Jul 23, 2022
6a25e61
Update lib.rs
Szegoo Jul 23, 2022
38f5cf0
Update lib.rs
Szegoo Jul 23, 2022
b53a766
Merge branch 'paritytech:master' into rpc-pending-rewards
Szegoo Jul 23, 2022
ebd072c
Merge branch 'paritytech:master' into rpc-pending-rewards
Szegoo Jul 24, 2022
f65f9df
Merge branch 'paritytech:master' into rpc-pending-rewards
Szegoo Jul 25, 2022
c198ade
Update frame/nomination-pools/rpc/runtime-api/src/lib.rs
Szegoo Jul 25, 2022
75d72f4
remove rpc
Szegoo Jul 25, 2022
8528ba2
Merge branch 'paritytech:master' into rpc-pending-rewards
Szegoo Jul 26, 2022
c17560b
remove rpc directory
Szegoo Jul 26, 2022
18cb8f5
final fix
Szegoo Jul 26, 2022
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
10 changes: 10 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ members = [
"frame/nomination-pools",
"frame/nomination-pools/benchmarking",
"frame/nomination-pools/test-staking",
"frame/nomination-pools/rpc/runtime-api",
"frame/randomness-collective-flip",
"frame/ranked-collective",
"frame/recovery",
Expand Down
2 changes: 2 additions & 0 deletions bin/node/runtime/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ pallet-mmr = { version = "4.0.0-dev", default-features = false, path = "../../..
pallet-multisig = { version = "4.0.0-dev", default-features = false, path = "../../../frame/multisig" }
pallet-nomination-pools = { version = "1.0.0", default-features = false, path = "../../../frame/nomination-pools"}
pallet-nomination-pools-benchmarking = { version = "1.0.0", default-features = false, optional = true, path = "../../../frame/nomination-pools/benchmarking" }
pallet-nomination-pools-rpc-runtime-api = { version = "1.0.0-dev", default-features = false, path = "../../../frame/nomination-pools/rpc/runtime-api" }
pallet-offences = { version = "4.0.0-dev", default-features = false, path = "../../../frame/offences" }
pallet-offences-benchmarking = { version = "4.0.0-dev", path = "../../../frame/offences/benchmarking", default-features = false, optional = true }
pallet-preimage = { version = "4.0.0-dev", default-features = false, path = "../../../frame/preimage" }
Expand Down Expand Up @@ -145,6 +146,7 @@ std = [
"pallet-mmr/std",
"pallet-multisig/std",
"pallet-nomination-pools/std",
"pallet-nomination-pools-rpc-runtime-api/std",
"pallet-identity/std",
"pallet-scheduler/std",
"node-primitives/std",
Expand Down
6 changes: 6 additions & 0 deletions bin/node/runtime/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1835,6 +1835,12 @@ impl_runtime_apis! {
}
}

impl pallet_nomination_pools_rpc_runtime_api::NominationPoolsApi<Block, AccountId, Balance> for Runtime {
Szegoo marked this conversation as resolved.
Show resolved Hide resolved
fn pending_rewards(member_account: AccountId) -> Balance {
NominationPools::pending_rewards(member_account)
}
}

impl sp_consensus_babe::BabeApi<Block> for Runtime {
fn configuration() -> sp_consensus_babe::BabeGenesisConfiguration {
// The choice of `c` parameter (where `1 - c` represents the
Expand Down
26 changes: 26 additions & 0 deletions frame/nomination-pools/rpc/runtime-api/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
[package]
Szegoo marked this conversation as resolved.
Show resolved Hide resolved
name = "pallet-nomination-pools-rpc-runtime-api"
version = "1.0.0-dev"
authors = ["Parity Technologies <[email protected]>"]
edition = "2021"
license = "Apache-2.0"
homepage = "https://substrate.io"
repository = "https://github.com/paritytech/substrate/"
description = "RPC runtime API for nomination-pools FRAME pallet"
readme = "README.md"

[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

[dependencies]
codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] }
sp-api = { version = "4.0.0-dev", default-features = false, path = "../../../../primitives/api" }
sp-std = { version = "4.0.0-dev", default-features = false, path = "../../../../primitives/std" }

[features]
default = ["std"]
std = [
"codec/std",
"sp-api/std",
"sp-std/std",
]
3 changes: 3 additions & 0 deletions frame/nomination-pools/rpc/runtime-api/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Runtime API definition for nomination-pools pallet.

License: Apache-2.0
33 changes: 33 additions & 0 deletions frame/nomination-pools/rpc/runtime-api/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// This file is part of Substrate.

// Copyright (C) 2022 Parity Technologies (UK) Ltd.
// SPDX-License-Identifier: Apache-2.0

// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

//! Runtime API definition for nomination-pools pallet.
//! Currently supports only one rpc endpoint.

#![cfg_attr(not(feature = "std"), no_std)]

use codec::Codec;

sp_api::decl_runtime_apis! {
/// Runtime api for accessing information about nomination pools.
pub trait NominationPoolsApi<AccountId, Balance>
Szegoo marked this conversation as resolved.
Show resolved Hide resolved
where AccountId: Codec, Balance: Codec
{
/// Returns the pending rewards for the member that the AccountId was given for.
fn pending_rewards(member: AccountId) -> Balance;
}
}
16 changes: 15 additions & 1 deletion frame/nomination-pools/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -939,7 +939,7 @@ pub struct RewardPool<T: Config> {

impl<T: Config> RewardPool<T> {
/// Getter for [`RewardPool::last_recorded_reward_counter`].
fn last_recorded_reward_counter(&self) -> T::RewardCounter {
pub(crate) fn last_recorded_reward_counter(&self) -> T::RewardCounter {
self.last_recorded_reward_counter
}

Expand Down Expand Up @@ -2147,6 +2147,20 @@ pub mod pallet {
}

impl<T: Config> Pallet<T> {
/// Returns the pending rewards for the specified `member_account`.
///
/// In the case of error the function returns balance of zero.
pub fn pending_rewards(member_account: T::AccountId) -> BalanceOf<T> {
if let Some(pool_member) = PoolMembers::<T>::get(member_account) {
if let Some(reward_pool) = RewardPools::<T>::get(pool_member.pool_id) {
return pool_member
.pending_rewards(reward_pool.last_recorded_reward_counter())
.unwrap_or_default()
}
}
BalanceOf::<T>::default()
}

/// The amount of bond that MUST REMAIN IN BONDED in ALL POOLS.
///
/// It is the responsibility of the depositor to put these funds into the pool initially. Upon
Expand Down