Co #10719: Use into_account_truncating (#4947)

* Use into_account_truncating

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* more truncating

* more truncating

* more

* clean up parachain primitives

* more truncating

* update lockfile for {"substrate"}

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: parity-processbot <>
This commit is contained in:
Oliver Tale-Yazdi
2022-05-17 23:53:14 +02:00
committed by GitHub
parent 2907a7aeae
commit 157b5186ba
15 changed files with 279 additions and 236 deletions
+7 -7
View File
@@ -687,7 +687,7 @@ impl<T: Config> Pallet<T> {
// Return the deposit of the sender, but only if it is not the para being offboarded.
if !outgoing.contains(&req_id.sender) {
T::Currency::unreserve(
&req_id.sender.into_account(),
&req_id.sender.into_account_truncating(),
req_data.sender_deposit.unique_saturated_into(),
);
}
@@ -700,7 +700,7 @@ impl<T: Config> Pallet<T> {
if req_data.confirmed {
if !outgoing.contains(&req_id.recipient) {
T::Currency::unreserve(
&req_id.recipient.into_account(),
&req_id.recipient.into_account_truncating(),
config.hrmp_recipient_deposit.unique_saturated_into(),
);
}
@@ -817,11 +817,11 @@ impl<T: Config> Pallet<T> {
<Self as Store>::HrmpChannels::take(channel_id)
{
T::Currency::unreserve(
&channel_id.sender.into_account(),
&channel_id.sender.into_account_truncating(),
sender_deposit.unique_saturated_into(),
);
T::Currency::unreserve(
&channel_id.recipient.into_account(),
&channel_id.recipient.into_account_truncating(),
recipient_deposit.unique_saturated_into(),
);
}
@@ -1137,7 +1137,7 @@ impl<T: Config> Pallet<T> {
);
T::Currency::reserve(
&origin.into_account(),
&origin.into_account_truncating(),
config.hrmp_sender_deposit.unique_saturated_into(),
)?;
@@ -1210,7 +1210,7 @@ impl<T: Config> Pallet<T> {
);
T::Currency::reserve(
&origin.into_account(),
&origin.into_account_truncating(),
config.hrmp_recipient_deposit.unique_saturated_into(),
)?;
@@ -1264,7 +1264,7 @@ impl<T: Config> Pallet<T> {
// Unreserve the sender's deposit. The recipient could not have left their deposit because
// we ensured that the request is not confirmed.
T::Currency::unreserve(
&channel_id.sender.into_account(),
&channel_id.sender.into_account_truncating(),
open_channel_req.sender_deposit.unique_saturated_into(),
);
@@ -36,7 +36,7 @@ fn register_parachain_with_balance<T: Config>(id: ParaId, balance: BalanceOf<T>)
validation_code: vec![1].into(),
},
);
T::Currency::make_free_balance_be(&id.into_account(), balance);
T::Currency::make_free_balance_be(&id.into_account_truncating(), balance);
}
fn assert_last_event<T: Config>(generic_event: <T as Config>::Event) {
@@ -201,7 +201,7 @@ frame_benchmarking::benchmarks! {
let para: ParaId = 1u32.into();
let para_origin: crate::Origin = 1u32.into();
register_parachain_with_balance::<T>(para, deposit);
T::Currency::make_free_balance_be(&para.into_account(), deposit * 256u32.into());
T::Currency::make_free_balance_be(&para.into_account_truncating(), deposit * 256u32.into());
for ingress_para_id in 0..i {
// establish ingress channels to `para`.
+32 -14
View File
@@ -135,7 +135,7 @@ fn register_parachain_with_balance(id: ParaId, balance: Balance) {
validation_code: vec![1].into(),
},
));
<Test as Config>::Currency::make_free_balance_be(&id.into_account(), balance);
<Test as Config>::Currency::make_free_balance_be(&id.into_account_truncating(), balance);
}
fn register_parachain(id: ParaId) {
@@ -490,15 +490,21 @@ fn refund_deposit_on_normal_closure() {
run_to_block(5, Some(vec![4, 5]));
Hrmp::init_open_channel(para_a, para_b, 2, 8).unwrap();
Hrmp::accept_open_channel(para_b, para_a).unwrap();
assert_eq!(<Test as Config>::Currency::free_balance(&para_a.into_account()), 80);
assert_eq!(<Test as Config>::Currency::free_balance(&para_b.into_account()), 95);
assert_eq!(<Test as Config>::Currency::free_balance(&para_a.into_account_truncating()), 80);
assert_eq!(<Test as Config>::Currency::free_balance(&para_b.into_account_truncating()), 95);
run_to_block(8, Some(vec![8]));
// Now, we close the channel and wait until the next session.
Hrmp::close_channel(para_b, HrmpChannelId { sender: para_a, recipient: para_b }).unwrap();
run_to_block(10, Some(vec![10]));
assert_eq!(<Test as Config>::Currency::free_balance(&para_a.into_account()), 100);
assert_eq!(<Test as Config>::Currency::free_balance(&para_b.into_account()), 110);
assert_eq!(
<Test as Config>::Currency::free_balance(&para_a.into_account_truncating()),
100
);
assert_eq!(
<Test as Config>::Currency::free_balance(&para_b.into_account_truncating()),
110
);
});
}
@@ -517,8 +523,8 @@ fn refund_deposit_on_offboarding() {
run_to_block(5, Some(vec![4, 5]));
Hrmp::init_open_channel(para_a, para_b, 2, 8).unwrap();
Hrmp::accept_open_channel(para_b, para_a).unwrap();
assert_eq!(<Test as Config>::Currency::free_balance(&para_a.into_account()), 80);
assert_eq!(<Test as Config>::Currency::free_balance(&para_b.into_account()), 95);
assert_eq!(<Test as Config>::Currency::free_balance(&para_a.into_account_truncating()), 80);
assert_eq!(<Test as Config>::Currency::free_balance(&para_b.into_account_truncating()), 95);
run_to_block(8, Some(vec![8]));
assert!(channel_exists(para_a, para_b));
@@ -531,8 +537,14 @@ fn refund_deposit_on_offboarding() {
assert!(!channel_exists(para_a, para_b));
Hrmp::assert_storage_consistency_exhaustive();
assert_eq!(<Test as Config>::Currency::free_balance(&para_a.into_account()), 100);
assert_eq!(<Test as Config>::Currency::free_balance(&para_b.into_account()), 110);
assert_eq!(
<Test as Config>::Currency::free_balance(&para_a.into_account_truncating()),
100
);
assert_eq!(
<Test as Config>::Currency::free_balance(&para_b.into_account_truncating()),
110
);
});
}
@@ -552,7 +564,7 @@ fn no_dangling_open_requests() {
// Start opening a channel a->b
Hrmp::init_open_channel(para_a, para_b, 2, 8).unwrap();
assert_eq!(<Test as Config>::Currency::free_balance(&para_a.into_account()), 80);
assert_eq!(<Test as Config>::Currency::free_balance(&para_a.into_account_truncating()), 80);
// Then deregister one parachain, but don't wait two sessions until it takes effect.
// Instead, `para_b` will confirm the request, which will take place the same time
@@ -560,12 +572,15 @@ fn no_dangling_open_requests() {
deregister_parachain(para_a);
run_to_block(9, Some(vec![9]));
Hrmp::accept_open_channel(para_b, para_a).unwrap();
assert_eq!(<Test as Config>::Currency::free_balance(&para_b.into_account()), 95);
assert_eq!(<Test as Config>::Currency::free_balance(&para_b.into_account_truncating()), 95);
assert!(!channel_exists(para_a, para_b));
run_to_block(10, Some(vec![10]));
// The outcome we expect is `para_b` should receive the refund.
assert_eq!(<Test as Config>::Currency::free_balance(&para_b.into_account()), 110);
assert_eq!(
<Test as Config>::Currency::free_balance(&para_b.into_account_truncating()),
110
);
assert!(!channel_exists(para_a, para_b));
Hrmp::assert_storage_consistency_exhaustive();
});
@@ -587,12 +602,15 @@ fn cancel_pending_open_channel_request() {
// Start opening a channel a->b
Hrmp::init_open_channel(para_a, para_b, 2, 8).unwrap();
assert_eq!(<Test as Config>::Currency::free_balance(&para_a.into_account()), 80);
assert_eq!(<Test as Config>::Currency::free_balance(&para_a.into_account_truncating()), 80);
// Cancel opening the channel
Hrmp::cancel_open_request(para_a, HrmpChannelId { sender: para_a, recipient: para_b })
.unwrap();
assert_eq!(<Test as Config>::Currency::free_balance(&para_a.into_account()), 100);
assert_eq!(
<Test as Config>::Currency::free_balance(&para_a.into_account_truncating()),
100
);
run_to_block(10, Some(vec![10]));
assert!(!channel_exists(para_a, para_b));