mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 12:11:02 +00:00
New relayer rewards scheme integration (#1652)
* relayer rewards integration: initial commit * added refund-relayer-extension to the millau runtime * spelling * spelling again * new -> Default
This commit is contained in:
committed by
Bastian Köcher
parent
161d861d9b
commit
2c5e2f09eb
@@ -24,6 +24,7 @@ use bp_runtime::{BasicOperatingMode, OperatingMode};
|
||||
use codec::{Decode, Encode, MaxEncodedLen};
|
||||
use frame_support::RuntimeDebug;
|
||||
use scale_info::TypeInfo;
|
||||
use source_chain::RelayersRewards;
|
||||
use sp_core::TypeId;
|
||||
use sp_std::{collections::vec_deque::VecDeque, ops::RangeInclusive, prelude::*};
|
||||
|
||||
@@ -364,19 +365,16 @@ pub fn total_unrewarded_messages<RelayerId>(
|
||||
pub fn calc_relayers_rewards<AccountId>(
|
||||
messages_relayers: VecDeque<UnrewardedRelayer<AccountId>>,
|
||||
received_range: &RangeInclusive<MessageNonce>,
|
||||
) -> source_chain::RelayersRewards<AccountId>
|
||||
) -> RelayersRewards<AccountId>
|
||||
where
|
||||
AccountId: sp_std::cmp::Ord,
|
||||
{
|
||||
// remember to reward relayers that have delivered messages
|
||||
// this loop is bounded by `T::MaxUnrewardedRelayerEntriesAtInboundLane` on the bridged chain
|
||||
let mut relayers_rewards = source_chain::RelayersRewards::new();
|
||||
let mut relayers_rewards = RelayersRewards::new();
|
||||
for entry in messages_relayers {
|
||||
let nonce_begin = sp_std::cmp::max(entry.messages.begin, *received_range.start());
|
||||
let nonce_end = sp_std::cmp::min(entry.messages.end, *received_range.end());
|
||||
|
||||
// loop won't proceed if current entry is ahead of received range (begin > end).
|
||||
// this loop is bound by `T::MaxUnconfirmedMessagesAtInboundLane` on the bridged chain
|
||||
if nonce_end >= nonce_begin {
|
||||
*relayers_rewards.entry(entry.relayer).or_default() += nonce_end - nonce_begin + 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user