-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Labels
T1-FRAMEThis PR/Issue is related to core FRAME, the framework.This PR/Issue is related to core FRAME, the framework.
Description
@gavofyork proposed an overhaul of the current SignedExtension to allow for a few new things; called TransactionExtension. The key points that should be possible with the new solution are:
- Arbitrary origin conversion in the form of
Option<Origin> -> Option<Origin>bypre_validate. - Attaching additional data to unsigned TX (this is important to make good use of the origin conversion).
- Removing the distinction between signed and unsigned TX and instead moving the signature check into a TE.
- Merging
pre_dispatch_unsigned/pre_dispatchandvalidate_unsigned/validate.
Concretely, this would mean that pre_dispatch would change like this:
fn pre_dispatch(
self,
- who: &Self::AccountId,
+ who: &Option<<Self::Call as Dispatchable>::RuntimeOrigin>,
call: &Self::Call,
info: &DispatchInfoOf<Self::Call>,
len: usize,
- ) -> Result<Self::Pre, TransactionValidityError>;
+ ) -> Result<(Self::Pre, Option<<Self::Call as Dispatchable>::RuntimeOrigin>), TransactionValidityError>;In the process of this we will probably bump the transaction version. Gav considered to keep it backwards compatible by a TE that can read the old signatures, but it was discarded since we would need to keep this compatibility TE forever until we decide to bump the TX version. Having the 6 months deprecation cycle is preferred here.
gupnik and kianenigma
Metadata
Metadata
Assignees
Labels
T1-FRAMEThis PR/Issue is related to core FRAME, the framework.This PR/Issue is related to core FRAME, the framework.
Type
Projects
Status
Done