Skip to content
This repository was archived by the owner on Aug 15, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
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
Prev Previous commit
Next Next commit
More tests
  • Loading branch information
yrong committed Feb 27, 2024
commit 2df183044152f2cda1d29d6ff307c3f3e3744854
8 changes: 6 additions & 2 deletions bridges/snowbridge/pallets/inbound-queue/src/mock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use super::*;

use frame_support::{
parameter_types,
traits::{ConstU128, ConstU32, Everything},
traits::{ConstU32, Everything},
weights::IdentityFee,
};
use hex_literal::hex;
Expand Down Expand Up @@ -74,14 +74,18 @@ impl frame_system::Config for Test {
type Block = Block;
}

parameter_types! {
pub const ExistentialDeposit: u128 = 1;
}

impl pallet_balances::Config for Test {
type MaxLocks = ();
type MaxReserves = ();
type ReserveIdentifier = [u8; 8];
type Balance = Balance;
type RuntimeEvent = RuntimeEvent;
type DustRemoval = ();
type ExistentialDeposit = ConstU128<1>;
type ExistentialDeposit = ExistentialDeposit;
type AccountStore = System;
type WeightInfo = ();
type FreezeIdentifier = ();
Expand Down
41 changes: 41 additions & 0 deletions bridges/snowbridge/pallets/inbound-queue/src/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -207,3 +207,44 @@ fn test_set_operating_mode_root_only() {
);
});
}

#[test]
fn test_submit_no_funds_to_reward_relayers_and_sovereign_preserve_ed() {
new_tester().execute_with(|| {
let relayer: AccountId = Keyring::Bob.into();
let origin = RuntimeOrigin::signed(relayer);

// Reset balance of sovereign_account to zero so to trigger the FundsUnavailable error
let sovereign_account = sibling_sovereign_account::<Test>(ASSET_HUB_PARAID.into());
Balances::set_balance(&sovereign_account, ExistentialDeposit::get() + 1);

// Submit message
let message = Message {
event_log: mock_event_log(),
proof: Proof {
block_hash: Default::default(),
tx_index: Default::default(),
data: Default::default(),
},
};
assert_ok!(InboundQueue::submit(origin.clone(), message.clone()));

let amount = Balances::balance(&sovereign_account);
assert_eq!(amount, ExistentialDeposit::get());

let mut event_log = mock_event_log();
event_log.data[31] = 2;
let message = Message {
event_log,
proof: Proof {
block_hash: Default::default(),
tx_index: Default::default(),
data: Default::default(),
},
};
assert_ok!(InboundQueue::submit(origin.clone(), message.clone()));
// does not change and preserve ED
let amount = Balances::balance(&sovereign_account);
assert_eq!(amount, ExistentialDeposit::get());
});
}