Revert "FRAME: Create TransactionExtension as a replacement for SignedExtension (#2280)" (#3665)

This PR reverts #2280 which introduced `TransactionExtension` to replace
`SignedExtension`.

As a result of the discussion
[here](https://github.com/paritytech/polkadot-sdk/pull/3623#issuecomment-1986789700),
the changes will be reverted for now with plans to reintroduce the
concept in the future.

---------

Signed-off-by: georgepisaltu <george.pisaltu@parity.io>
This commit is contained in:
georgepisaltu
2024-03-13 16:10:59 +02:00
committed by GitHub
parent 60ac5a723c
commit bbd51ce867
350 changed files with 15826 additions and 24304 deletions
+23 -142
View File
@@ -560,7 +560,6 @@ impl pallet_transaction_payment::Config for Runtime {
MinimumMultiplier,
MaximumMultiplier,
>;
type WeightInfo = pallet_transaction_payment::weights::SubstrateWeight<Runtime>;
}
impl pallet_asset_tx_payment::Config for Runtime {
@@ -570,9 +569,6 @@ impl pallet_asset_tx_payment::Config for Runtime {
pallet_assets::BalanceToAssetBalance<Balances, Runtime, ConvertInto, Instance1>,
CreditToBlockAuthor,
>;
type WeightInfo = pallet_asset_tx_payment::weights::SubstrateWeight<Runtime>;
#[cfg(feature = "runtime-benchmarks")]
type BenchmarkHelper = AssetTxHelper;
}
impl pallet_asset_conversion_tx_payment::Config for Runtime {
@@ -583,9 +579,6 @@ impl pallet_asset_conversion_tx_payment::Config for Runtime {
AssetConversion,
Native,
>;
type WeightInfo = pallet_asset_conversion_tx_payment::weights::SubstrateWeight<Runtime>;
#[cfg(feature = "runtime-benchmarks")]
type BenchmarkHelper = AssetConversionTxHelper;
}
impl pallet_skip_feeless_payment::Config for Runtime {
@@ -1416,33 +1409,29 @@ where
// so the actual block number is `n`.
.saturating_sub(1);
let era = Era::mortal(period, current_block);
let tx_ext: TxExtension = (
(
frame_system::CheckNonZeroSender::<Runtime>::new(),
frame_system::CheckSpecVersion::<Runtime>::new(),
frame_system::CheckTxVersion::<Runtime>::new(),
frame_system::CheckGenesis::<Runtime>::new(),
frame_system::CheckEra::<Runtime>::from(era),
frame_system::CheckNonce::<Runtime>::from(nonce),
frame_system::CheckWeight::<Runtime>::new(),
)
.into(),
let extra = (
frame_system::CheckNonZeroSender::<Runtime>::new(),
frame_system::CheckSpecVersion::<Runtime>::new(),
frame_system::CheckTxVersion::<Runtime>::new(),
frame_system::CheckGenesis::<Runtime>::new(),
frame_system::CheckEra::<Runtime>::from(era),
frame_system::CheckNonce::<Runtime>::from(nonce),
frame_system::CheckWeight::<Runtime>::new(),
pallet_skip_feeless_payment::SkipCheckIfFeeless::from(
pallet_asset_conversion_tx_payment::ChargeAssetTxPayment::<Runtime>::from(
tip, None,
),
),
);
let raw_payload = SignedPayload::new(call, tx_ext)
let raw_payload = SignedPayload::new(call, extra)
.map_err(|e| {
log::warn!("Unable to create signed payload: {:?}", e);
})
.ok()?;
let signature = raw_payload.using_encoded(|payload| C::sign(payload, public))?;
let address = Indices::unlookup(account);
let (call, tx_ext, _) = raw_payload.deconstruct();
Some((call, (address, signature, tx_ext)))
let (call, extra, _) = raw_payload.deconstruct();
Some((call, (address, signature, extra)))
}
}
@@ -2461,21 +2450,19 @@ pub type Block = generic::Block<Header, UncheckedExtrinsic>;
pub type SignedBlock = generic::SignedBlock<Block>;
/// BlockId type as expected by this runtime.
pub type BlockId = generic::BlockId<Block>;
/// The TransactionExtension to the basic transaction logic.
/// The SignedExtension to the basic transaction logic.
///
/// When you change this, you **MUST** modify [`sign`] in `bin/node/testing/src/keyring.rs`!
///
/// [`sign`]: <../../testing/src/keyring.rs.html>
pub type TxExtension = (
(
frame_system::CheckNonZeroSender<Runtime>,
frame_system::CheckSpecVersion<Runtime>,
frame_system::CheckTxVersion<Runtime>,
frame_system::CheckGenesis<Runtime>,
frame_system::CheckEra<Runtime>,
frame_system::CheckNonce<Runtime>,
frame_system::CheckWeight<Runtime>,
),
pub type SignedExtra = (
frame_system::CheckNonZeroSender<Runtime>,
frame_system::CheckSpecVersion<Runtime>,
frame_system::CheckTxVersion<Runtime>,
frame_system::CheckGenesis<Runtime>,
frame_system::CheckEra<Runtime>,
frame_system::CheckNonce<Runtime>,
frame_system::CheckWeight<Runtime>,
pallet_skip_feeless_payment::SkipCheckIfFeeless<
Runtime,
pallet_asset_conversion_tx_payment::ChargeAssetTxPayment<Runtime>,
@@ -2484,11 +2471,11 @@ pub type TxExtension = (
/// Unchecked extrinsic type as expected by this runtime.
pub type UncheckedExtrinsic =
generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
/// The payload being signed in transactions.
pub type SignedPayload = generic::SignedPayload<RuntimeCall, TxExtension>;
pub type SignedPayload = generic::SignedPayload<RuntimeCall, SignedExtra>;
/// Extrinsic type that has already been checked.
pub type CheckedExtrinsic = generic::CheckedExtrinsic<AccountId, RuntimeCall, TxExtension>;
pub type CheckedExtrinsic = generic::CheckedExtrinsic<AccountId, RuntimeCall, SignedExtra>;
/// Executive: handles dispatch to the various modules.
pub type Executive = frame_executive::Executive<
Runtime,
@@ -2543,106 +2530,6 @@ mod mmr {
pub type Hashing = <Runtime as pallet_mmr::Config>::Hashing;
}
#[cfg(feature = "runtime-benchmarks")]
pub struct AssetConversionTxHelper;
#[cfg(feature = "runtime-benchmarks")]
impl pallet_asset_conversion_tx_payment::BenchmarkHelperTrait<AccountId, u32, u32>
for AssetConversionTxHelper
{
fn create_asset_id_parameter(seed: u32) -> (u32, u32) {
(seed, seed)
}
fn setup_balances_and_pool(asset_id: u32, account: AccountId) {
use frame_support::{assert_ok, traits::fungibles::Mutate};
assert_ok!(Assets::force_create(
RuntimeOrigin::root(),
asset_id.into(),
account.clone().into(), /* owner */
true, /* is_sufficient */
1,
));
let lp_provider = account.clone();
let _ = Balances::deposit_creating(&lp_provider, ((u64::MAX as u128) * 100).into());
assert_ok!(Assets::mint_into(
asset_id.into(),
&lp_provider,
((u64::MAX as u128) * 100).into()
));
let token_native = Box::new(NativeOrWithId::Native);
let token_second = Box::new(NativeOrWithId::WithId(asset_id));
assert_ok!(AssetConversion::create_pool(
RuntimeOrigin::signed(lp_provider.clone()),
token_native.clone(),
token_second.clone()
));
assert_ok!(AssetConversion::add_liquidity(
RuntimeOrigin::signed(lp_provider.clone()),
token_native,
token_second,
u64::MAX.into(), // 1 desired
u64::MAX.into(), // 2 desired
1, // 1 min
1, // 2 min
lp_provider,
));
}
}
#[cfg(feature = "runtime-benchmarks")]
pub struct AssetTxHelper;
#[cfg(feature = "runtime-benchmarks")]
impl pallet_asset_tx_payment::BenchmarkHelperTrait<AccountId, u32, u32> for AssetTxHelper {
fn create_asset_id_parameter(seed: u32) -> (u32, u32) {
(seed, seed)
}
fn setup_balances_and_pool(asset_id: u32, account: AccountId) {
use frame_support::{assert_ok, traits::fungibles::Mutate};
assert_ok!(Assets::force_create(
RuntimeOrigin::root(),
asset_id.into(),
account.clone().into(), /* owner */
true, /* is_sufficient */
1,
));
let lp_provider = account.clone();
let _ = Balances::deposit_creating(&lp_provider, ((u64::MAX as u128) * 100).into());
assert_ok!(Assets::mint_into(
asset_id.into(),
&lp_provider,
((u64::MAX as u128) * 100).into()
));
let token_native = Box::new(NativeOrWithId::Native);
let token_second = Box::new(NativeOrWithId::WithId(asset_id));
assert_ok!(AssetConversion::create_pool(
RuntimeOrigin::signed(lp_provider.clone()),
token_native.clone(),
token_second.clone()
));
assert_ok!(AssetConversion::add_liquidity(
RuntimeOrigin::signed(lp_provider.clone()),
token_native,
token_second,
u64::MAX.into(), // 1 desired
u64::MAX.into(), // 2 desired
1, // 1 min
1, // 2 min
lp_provider,
));
}
}
#[cfg(feature = "runtime-benchmarks")]
mod benches {
frame_benchmarking::define_benchmarks!(
@@ -2663,9 +2550,6 @@ mod benches {
[tasks_example, TasksExample]
[pallet_democracy, Democracy]
[pallet_asset_conversion, AssetConversion]
[pallet_asset_conversion_tx_payment, AssetConversionTxPayment]
[pallet_asset_tx_payment, AssetTxPayment]
[pallet_transaction_payment, TransactionPayment]
[pallet_election_provider_multi_phase, ElectionProviderMultiPhase]
[pallet_election_provider_support_benchmarking, EPSBench::<Runtime>]
[pallet_elections_phragmen, Elections]
@@ -2699,7 +2583,6 @@ mod benches {
[pallet_state_trie_migration, StateTrieMigration]
[pallet_sudo, Sudo]
[frame_system, SystemBench::<Runtime>]
[frame_system_extensions, SystemExtensionsBench::<Runtime>]
[pallet_timestamp, Timestamp]
[pallet_tips, Tips]
[pallet_transaction_storage, TransactionStorage]
@@ -3247,7 +3130,6 @@ impl_runtime_apis! {
use pallet_offences_benchmarking::Pallet as OffencesBench;
use pallet_election_provider_support_benchmarking::Pallet as EPSBench;
use frame_system_benchmarking::Pallet as SystemBench;
use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
use baseline::Pallet as BaselineBench;
use pallet_nomination_pools_benchmarking::Pallet as NominationPoolsBench;
@@ -3272,7 +3154,6 @@ impl_runtime_apis! {
use pallet_offences_benchmarking::Pallet as OffencesBench;
use pallet_election_provider_support_benchmarking::Pallet as EPSBench;
use frame_system_benchmarking::Pallet as SystemBench;
use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
use baseline::Pallet as BaselineBench;
use pallet_nomination_pools_benchmarking::Pallet as NominationPoolsBench;