referrerpolicy=no-referrer-when-downgrade

snowbridge_test_utils/
mock_rewards.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: 2023 Snowfork <hello@snowfork.com>
3use bp_relayers::{PaymentProcedure, RewardLedger, RewardsAccountOwner, RewardsAccountParams};
4use codec::{Decode, DecodeWithMemTracking, Encode, MaxEncodedLen};
5use frame_support::{pallet_prelude::DispatchResult, parameter_types, sp_runtime};
6use scale_info::TypeInfo;
7use xcm::opaque::latest::Location;
8
9/// Showcasing that we can handle multiple different rewards with the same pallet.
10#[derive(
11	Clone,
12	Copy,
13	Debug,
14	Decode,
15	DecodeWithMemTracking,
16	Encode,
17	Eq,
18	MaxEncodedLen,
19	PartialEq,
20	TypeInfo,
21)]
22pub enum BridgeReward {
23	/// Rewards for Snowbridge.
24	Snowbridge,
25}
26
27pub struct MockPaymentProcedure;
28
29// Provide a no-op or mock implementation for the required trait
30impl PaymentProcedure<sp_runtime::AccountId32, RewardsAccountParams<u64>, u128>
31	for MockPaymentProcedure
32{
33	type Error = DispatchResult;
34	type Beneficiary = Location;
35	fn pay_reward(
36		_who: &sp_runtime::AccountId32,
37		_reward_params: bp_relayers::RewardsAccountParams<u64>,
38		_reward_balance: u128,
39		_beneficiary: Self::Beneficiary,
40	) -> Result<(), Self::Error> {
41		Ok(())
42	}
43}
44
45impl From<BridgeReward> for RewardsAccountParams<u64> {
46	fn from(_bridge_reward: BridgeReward) -> Self {
47		RewardsAccountParams::new(1, [0; 4], RewardsAccountOwner::ThisChain)
48	}
49}
50
51parameter_types! {
52	pub static RegisteredRewardsCount: u128 = 0;
53}
54
55pub struct MockRewardLedger;
56
57impl RewardLedger<sp_runtime::AccountId32, BridgeReward, u128> for MockRewardLedger {
58	fn register_reward(
59		_relayer: &sp_runtime::AccountId32,
60		_reward: BridgeReward,
61		_reward_balance: u128,
62	) {
63		RegisteredRewardsCount::set(RegisteredRewardsCount::get().saturating_add(1));
64	}
65}