Skip to content

Commit

Permalink
remove From<u64> and TransactionExtensionBase
Browse files Browse the repository at this point in the history
  • Loading branch information
gui1117 committed Sep 18, 2024
1 parent 6794d72 commit 44b58a3
Show file tree
Hide file tree
Showing 40 changed files with 149 additions and 295 deletions.
4 changes: 1 addition & 3 deletions bridges/bin/runtime-common/src/extensions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -274,11 +274,9 @@ macro_rules! generate_bridge_reject_obsolete_headers_and_messages {
($call:ty, $account_id:ty, $($filter_call:ty),*) => {
#[derive(Clone, codec::Decode, Default, codec::Encode, Eq, PartialEq, sp_runtime::RuntimeDebug, scale_info::TypeInfo)]
pub struct BridgeRejectObsoleteHeadersAndMessages;
impl sp_runtime::traits::TransactionExtensionBase for BridgeRejectObsoleteHeadersAndMessages {
impl sp_runtime::traits::TransactionExtension<$call> for BridgeRejectObsoleteHeadersAndMessages {
const IDENTIFIER: &'static str = "BridgeRejectObsoleteHeadersAndMessages";
type Implicit = ();
}
impl sp_runtime::traits::TransactionExtension<$call> for BridgeRejectObsoleteHeadersAndMessages {
type Pre = Option<(
$account_id,
( $(
Expand Down
17 changes: 7 additions & 10 deletions bridges/chains/chain-polkadot-bulletin/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ use frame_system::limits;
use scale_info::TypeInfo;
use sp_runtime::{
impl_tx_ext_default,
traits::{Dispatchable, TransactionExtensionBase},
traits::{Dispatchable},
transaction_validity::TransactionValidityError,
Perbill, StateVersion,
};
Expand Down Expand Up @@ -96,19 +96,16 @@ pub type TransactionExtensionSchema = GenericTransactionExtension<(
#[derive(Encode, Decode, Debug, PartialEq, Eq, Clone, TypeInfo)]
pub struct TransactionExtension(TransactionExtensionSchema);

impl TransactionExtensionBase for TransactionExtension {
const IDENTIFIER: &'static str = "Not needed.";
type Implicit = <TransactionExtensionSchema as TransactionExtensionBase>::Implicit;

fn implicit(&self) -> Result<Self::Implicit, TransactionValidityError> {
<TransactionExtensionSchema as TransactionExtensionBase>::implicit(&self.0)
}
}

impl<C> sp_runtime::traits::TransactionExtension<C> for TransactionExtension
where
C: Dispatchable,
{
const IDENTIFIER: &'static str = "Not needed.";
type Implicit = <TransactionExtensionSchema as sp_runtime::traits::TransactionExtension<C>>::Implicit;

fn implicit(&self) -> Result<Self::Implicit, TransactionValidityError> {
<TransactionExtensionSchema as sp_runtime::traits::TransactionExtension<C>>::implicit(&self.0)
}
type Pre = ();
type Val = ();

Expand Down
20 changes: 4 additions & 16 deletions bridges/modules/relayers/src/extension/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ use scale_info::TypeInfo;
use sp_runtime::{
traits::{
AsSystemOriginSigner, DispatchInfoOf, Dispatchable, PostDispatchInfoOf,
TransactionExtension, TransactionExtensionBase, ValidateResult, Zero,
TransactionExtension, ValidateResult, Zero,
},
transaction_validity::{InvalidTransaction, TransactionValidityError, ValidTransactionBuilder},
DispatchResult, RuntimeDebug,
Expand Down Expand Up @@ -125,6 +125,7 @@ where
+ TransactionPaymentConfig,
C: ExtensionConfig<Runtime = R, Reward = R::Reward>,
R::RuntimeCall: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo>,
<R::RuntimeCall as Dispatchable>::RuntimeOrigin: AsSystemOriginSigner<R::AccountId> + Clone,
<R as TransactionPaymentConfig>::OnChargeTransaction:
OnChargeTransaction<R, Balance = R::Reward>,
{
Expand Down Expand Up @@ -265,21 +266,6 @@ where
}
}

impl<R, C> TransactionExtensionBase for BridgeRelayersTransactionExtension<R, C>
where
Self: 'static + Send + Sync,
R: RelayersConfig
+ BridgeMessagesConfig<C::BridgeMessagesPalletInstance>
+ TransactionPaymentConfig,
C: ExtensionConfig<Runtime = R, Reward = R::Reward>,
R::RuntimeCall: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo>,
<R as TransactionPaymentConfig>::OnChargeTransaction:
OnChargeTransaction<R, Balance = R::Reward>,
{
const IDENTIFIER: &'static str = C::IdProvider::STR;
type Implicit = ();
}

impl<R, C> TransactionExtension<R::RuntimeCall> for BridgeRelayersTransactionExtension<R, C>
where
Self: 'static + Send + Sync,
Expand All @@ -292,6 +278,8 @@ where
<R as TransactionPaymentConfig>::OnChargeTransaction:
OnChargeTransaction<R, Balance = R::Reward>,
{
const IDENTIFIER: &'static str = C::IdProvider::STR;
type Implicit = ();
type Pre = Option<PreDispatchData<R::AccountId, C::RemoteGrandpaChainBlockNumber>>;
type Val = Option<ExtensionCallInfo<C::RemoteGrandpaChainBlockNumber>>;

Expand Down
13 changes: 3 additions & 10 deletions bridges/primitives/runtime/src/extensions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ use impl_trait_for_tuples::impl_for_tuples;
use scale_info::{StaticTypeInfo, TypeInfo};
use sp_runtime::{
impl_tx_ext_default,
traits::{Dispatchable, TransactionExtension, TransactionExtensionBase},
traits::{Dispatchable, TransactionExtension},
transaction_validity::TransactionValidityError,
};
use sp_std::{fmt::Debug, marker::PhantomData};
Expand Down Expand Up @@ -123,8 +123,9 @@ impl<S: TransactionExtensionSchema> GenericTransactionExtension<S> {
}
}

impl<S> TransactionExtensionBase for GenericTransactionExtension<S>
impl<S, C> TransactionExtension<C> for GenericTransactionExtension<S>
where
C: Dispatchable,
S: TransactionExtensionSchema,
S::Payload: Send + Sync,
S::Implicit: Send + Sync,
Expand All @@ -142,14 +143,6 @@ where
frame_support::unsigned::UnknownTransaction::Custom(0xFF),
))
}
}
impl<S, C> TransactionExtension<C> for GenericTransactionExtension<S>
where
C: Dispatchable,
S: TransactionExtensionSchema,
S::Payload: Send + Sync,
S::Implicit: Send + Sync,
{
type Pre = ();
type Val = ();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1475,7 +1475,7 @@ mod tests {
use codec::Encode;
use sp_runtime::{
generic::Era,
traits::{TransactionExtensionBase, Zero},
traits::{TransactionExtension, Zero},
};

#[test]
Expand Down Expand Up @@ -1515,8 +1515,8 @@ mod tests {
);
assert_eq!(payload.encode().split_last().unwrap().1, bhr_indirect_payload.encode());
assert_eq!(
payload.implicit().unwrap().encode().split_last().unwrap().1,
bhr_indirect_payload.implicit().unwrap().encode()
TxExtension::implicit(&payload).unwrap().encode().split_last().unwrap().1,
sp_runtime::traits::TransactionExtension::<RuntimeCall>::implicit(&bhr_indirect_payload).unwrap().encode()
)
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1321,7 +1321,7 @@ mod tests {
use codec::Encode;
use sp_runtime::{
generic::Era,
traits::{TransactionExtensionBase, Zero},
traits::{TransactionExtension, Zero},
};

#[test]
Expand Down Expand Up @@ -1359,8 +1359,8 @@ mod tests {
);
assert_eq!(payload.encode().split_last().unwrap().1, bh_indirect_payload.encode());
assert_eq!(
payload.implicit().unwrap().encode().split_last().unwrap().1,
bh_indirect_payload.implicit().unwrap().encode()
TxExtension::implicit(&payload).unwrap().encode().split_last().unwrap().1,
sp_runtime::traits::TransactionExtension::<RuntimeCall>::implicit(&bh_indirect_payload).unwrap().encode()
)
}
});
Expand Down
7 changes: 2 additions & 5 deletions cumulus/parachains/runtimes/starters/shell/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ use sp_runtime::{
create_runtime_str, generic, impl_opaque_keys,
traits::{
AccountIdLookup, BlakeTwo256, Block as BlockT, DispatchInfoOf, OriginOf,
TransactionExtension, TransactionExtensionBase, ValidateResult,
TransactionExtension, ValidateResult,
},
transaction_validity::{
InvalidTransaction, TransactionSource, TransactionValidity, TransactionValidityError,
Expand Down Expand Up @@ -279,12 +279,9 @@ construct_runtime! {
#[derive(Eq, PartialEq, Clone, Default, sp_core::RuntimeDebug, Encode, Decode, TypeInfo)]
pub struct DisallowSigned;

impl TransactionExtensionBase for DisallowSigned {
impl TransactionExtension<RuntimeCall> for DisallowSigned {
const IDENTIFIER: &'static str = "DisallowSigned";
type Implicit = ();
}

impl TransactionExtension<RuntimeCall> for DisallowSigned {
type Val = ();
type Pre = ();
fn validate(
Expand Down
8 changes: 2 additions & 6 deletions cumulus/primitives/storage-weight-reclaim/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ use sp_runtime::{
impl_tx_ext_default,
traits::{
DispatchInfoOf, Dispatchable, PostDispatchInfoOf, TransactionExtension,
TransactionExtensionBase,
},
transaction_validity::TransactionValidityError,
DispatchResult,
Expand Down Expand Up @@ -126,15 +125,12 @@ impl<T: Config + Send + Sync> core::fmt::Debug for StorageWeightReclaim<T> {
}
}

impl<T: Config + Send + Sync> TransactionExtensionBase for StorageWeightReclaim<T> {
const IDENTIFIER: &'static str = "StorageWeightReclaim";
type Implicit = ();
}

impl<T: Config + Send + Sync> TransactionExtension<T::RuntimeCall> for StorageWeightReclaim<T>
where
T::RuntimeCall: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo>,
{
const IDENTIFIER: &'static str = "StorageWeightReclaim";
type Implicit = ();
type Val = ();
type Pre = Option<u64>;

Expand Down
2 changes: 1 addition & 1 deletion docs/sdk/src/reference_docs/extrinsic_encoding.rs
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@
//!
//! The bytes representing `call_data` and `transaction_extensions_extra` can be obtained as
//! descibed above. `transaction_extensions_implicit` is constructed by SCALE encoding the
//! ["implicit" data][sp_runtime::traits::TransactionExtensionBase::Implicit] for each transaction
//! ["implicit" data][sp_runtime::traits::TransactionExtension::Implicit] for each transaction
//! extension that the chain is using, in order.
//!
//! Once we've concatenated those together, we hash the result using a Blake2 256bit hasher.
Expand Down
12 changes: 3 additions & 9 deletions docs/sdk/src/reference_docs/transaction_extensions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ pub mod transaction_extensions_example {
use scale_info::TypeInfo;
use sp_runtime::{
impl_tx_ext_default,
traits::{Dispatchable, TransactionExtension, TransactionExtensionBase},
traits::{Dispatchable, TransactionExtension},
transaction_validity::TransactionValidityError,
};

Expand All @@ -73,12 +73,9 @@ pub mod transaction_extensions_example {
#[derive(Debug, Encode, Decode, Clone, Eq, PartialEq, TypeInfo)]
pub struct AddToPayload(pub u32);

impl TransactionExtensionBase for AddToPayload {
impl<Call: Dispatchable> TransactionExtension<Call> for AddToPayload {
const IDENTIFIER: &'static str = "AddToPayload";
type Implicit = ();
}

impl<Call: Dispatchable> TransactionExtension<Call> for AddToPayload {
type Pre = ();
type Val = ();

Expand All @@ -91,16 +88,13 @@ pub mod transaction_extensions_example {
#[derive(Debug, Encode, Decode, Clone, Eq, PartialEq, TypeInfo)]
pub struct AddToSignaturePayload;

impl TransactionExtensionBase for AddToSignaturePayload {
impl<Call: Dispatchable> TransactionExtension<Call> for AddToSignaturePayload {
const IDENTIFIER: &'static str = "AddToSignaturePayload";
type Implicit = u32;

fn implicit(&self) -> Result<Self::Implicit, TransactionValidityError> {
Ok(1234)
}
}

impl<Call: Dispatchable> TransactionExtension<Call> for AddToSignaturePayload {
type Pre = ();
type Val = ();

Expand Down
12 changes: 3 additions & 9 deletions polkadot/runtime/common/src/claims.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ use sp_runtime::{
impl_tx_ext_default,
traits::{
AsAuthorizedOrigin, AsSystemOriginSigner, CheckedSub, DispatchInfoOf, Dispatchable,
TransactionExtension, TransactionExtensionBase, Zero,
TransactionExtension, Zero,
},
transaction_validity::{
InvalidTransaction, TransactionValidity, TransactionValidityError, ValidTransaction,
Expand Down Expand Up @@ -625,20 +625,14 @@ where
}
}

impl<T: Config> TransactionExtensionBase for PrevalidateAttests<T>
where
<T as frame_system::Config>::RuntimeCall: IsSubType<Call<T>>,
{
const IDENTIFIER: &'static str = "PrevalidateAttests";
type Implicit = ();
}

impl<T: Config> TransactionExtension<T::RuntimeCall> for PrevalidateAttests<T>
where
<T as frame_system::Config>::RuntimeCall: IsSubType<Call<T>>,
<<T as frame_system::Config>::RuntimeCall as Dispatchable>::RuntimeOrigin:
AsSystemOriginSigner<T::AccountId> + AsAuthorizedOrigin + Clone,
{
const IDENTIFIER: &'static str = "PrevalidateAttests";
type Implicit = ();
type Pre = ();
type Val = ();

Expand Down
2 changes: 1 addition & 1 deletion prdoc/pr_2280.prdoc
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ doc:
contextual data that is injected into the transaction extension logic. It is unused in
instances migrated from `SignedExtension`.
- Extensions now track the weight they consume during valdiation, preparation and
post-dispatch through the `TransactionExtensionBase::weight` function.
post-dispatch through the `TransactionExtension::weight` function.
- `TestXt` was removed and its usage in tests was replaced with `UncheckedExtrinsic`
instances.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ use scale_info::TypeInfo;
use sp_runtime::{
impl_tx_ext_default,
traits::{
DispatchInfoOf, IdentifyAccount, OriginOf, TransactionExtension, TransactionExtensionBase,
DispatchInfoOf, IdentifyAccount, OriginOf, TransactionExtension,
ValidateResult, Verify,
},
transaction_validity::{InvalidTransaction, ValidTransaction},
Expand Down Expand Up @@ -75,25 +75,6 @@ impl<T: Config, Signer, Signature> fmt::Debug for AuthorizeCoownership<T, Signer
}
}

impl<T: Config + Send + Sync, Signer, Signature> TransactionExtensionBase
for AuthorizeCoownership<T, Signer, Signature>
where
Signer: Clone + Eq + PartialEq + Encode + Decode + TypeInfo + Send + Sync + 'static,
Signature: Verify<Signer = Signer>
+ Clone
+ Eq
+ PartialEq
+ Encode
+ Decode
+ TypeInfo
+ Send
+ Sync
+ 'static,
{
const IDENTIFIER: &'static str = "AuthorizeCoownership";
type Implicit = ();
}

impl<T: Config + Send + Sync, Signer, Signature> TransactionExtension<T::RuntimeCall>
for AuthorizeCoownership<T, Signer, Signature>
where
Expand All @@ -118,6 +99,8 @@ where
+ Sync
+ 'static,
{
const IDENTIFIER: &'static str = "AuthorizeCoownership";
type Implicit = ();
type Val = ();
type Pre = ();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ use frame_support::{
};
use sp_keyring::AccountKeyring;
use sp_runtime::{
traits::{Applyable, Checkable, IdentityLookup, TransactionExtensionBase},
traits::{Applyable, Checkable, IdentityLookup, TransactionExtension},
MultiSignature, MultiSigner,
};

Expand Down
8 changes: 3 additions & 5 deletions substrate/frame/examples/basic/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ use sp_runtime::{
impl_tx_ext_default,
traits::{
Bounded, DispatchInfoOf, OriginOf, SaturatedConversion, Saturating, TransactionExtension,
TransactionExtensionBase, ValidateResult,
ValidateResult,
},
transaction_validity::{InvalidTransaction, ValidTransaction},
};
Expand Down Expand Up @@ -489,15 +489,13 @@ impl<T: Config + Send + Sync> core::fmt::Debug for WatchDummy<T> {
}
}

impl<T: Config + Send + Sync> TransactionExtensionBase for WatchDummy<T> {
const IDENTIFIER: &'static str = "WatchDummy";
type Implicit = ();
}
impl<T: Config + Send + Sync> TransactionExtension<<T as frame_system::Config>::RuntimeCall>
for WatchDummy<T>
where
<T as frame_system::Config>::RuntimeCall: IsSubType<Call<T>>,
{
const IDENTIFIER: &'static str = "WatchDummy";
type Implicit = ();
type Pre = ();
type Val = ();

Expand Down
Loading

0 comments on commit 44b58a3

Please sign in to comment.