Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
310 changes: 0 additions & 310 deletions bridges/snowbridge/pallets/outbound-queue-v2/src/test.rs

This file was deleted.

46 changes: 11 additions & 35 deletions bridges/snowbridge/pallets/system/src/migration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ pub mod v1 {
T: Config,
{
/// Calculate the fee required to pay for gas on Ethereum.
fn calculate_remote_fee_v1(params: &PricingParametersOf<T>) -> U256 {
use snowbridge_outbound_queue_primitives::v1::{
fn calculate_remote_fee(params: &PricingParametersOf<T>) -> U256 {
use snowbridge_core::outbound::{
AgentExecuteCommand, Command, ConstantGasMeter, GasMeter,
};
let command = Command::AgentExecute {
Expand All @@ -114,21 +114,6 @@ pub mod v1 {
.saturating_mul(gas_used_at_most.into())
.saturating_add(params.rewards.remote)
}

/// Calculate the fee required to pay for gas on Ethereum.
fn calculate_remote_fee_v2(params: &PricingParametersOf<T>) -> U256 {
use snowbridge_outbound_queue_primitives::v2::{Command, ConstantGasMeter, GasMeter};
let command = Command::UnlockNativeToken {
token: H160::zero(),
recipient: H160::zero(),
amount: 0,
};
let gas_used_at_most = ConstantGasMeter::maximum_dispatch_gas_used_at_most(&command);
params
.fee_per_gas
.saturating_mul(gas_used_at_most.into())
.saturating_add(params.rewards.remote)
}
}

/// The percentage gas increase. We must adjust the fee per gas by this percentage.
Expand Down Expand Up @@ -162,25 +147,21 @@ pub mod v1 {
use codec::Encode;

let params = Pallet::<T>::parameters();
let remote_fee_v1 = Self::calculate_remote_fee_v1(&params);
let remote_fee_v2 = Self::calculate_remote_fee_v2(&params);
let remote_fee = Self::calculate_remote_fee(&params);

log::info!(
target: LOG_TARGET,
"Pre fee per gas migration: pricing parameters = {params:?}, remote_fee_v1 = {remote_fee_v1:?}, remote_fee_v2 = {remote_fee_v2:?}"
"Pre fee per gas migration: pricing parameters = {params:?}, remote_fee = {remote_fee:?}"
);
Ok((params, remote_fee_v1, remote_fee_v2).encode())
Ok((params, remote_fee).encode())
}

#[cfg(feature = "try-runtime")]
fn post_upgrade(state: Vec<u8>) -> Result<(), TryRuntimeError> {
use codec::Decode;

let (old_params, old_remote_fee_v1, old_remote_fee_v2): (
PricingParametersOf<T>,
U256,
U256,
) = Decode::decode(&mut &state[..]).unwrap();
let (old_params, old_remote_fee): (PricingParametersOf<T>, U256) =
Decode::decode(&mut &state[..]).unwrap();

let params = Pallet::<T>::parameters();
ensure!(old_params.exchange_rate == params.exchange_rate, "Exchange rate unchanged.");
Expand All @@ -191,20 +172,15 @@ pub mod v1 {
);
ensure!(old_params.multiplier == params.multiplier, "Multiplier unchanged.");

let remote_fee_v1 = Self::calculate_remote_fee_v1(&params);
let remote_fee_v2 = Self::calculate_remote_fee_v2(&params);
ensure!(
remote_fee_v1 <= old_remote_fee_v1,
"The v1 remote fee can cover the cost of the previous fee."
);
let remote_fee = Self::calculate_remote_fee(&params);
ensure!(
remote_fee_v2 <= old_remote_fee_v2,
"The v2 remote fee can cover the cost of the previous fee."
remote_fee <= old_remote_fee,
"The remote fee can cover the cost of the previous fee."
);

log::info!(
target: LOG_TARGET,
"Post fee per gas migration: pricing parameters = {params:?} remote_fee_v1 = {remote_fee_v1:?} remote_fee_v2 = {remote_fee_v2:?}"
"Post fee per gas migration: pricing parameters = {params:?} remote_fee = {remote_fee:?}"
);
Ok(())
}
Expand Down
Loading
Loading