Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Migrate from SignedExtension to TransactionExtension #2454

Merged
merged 35 commits into from
Nov 27, 2023
Merged
Show file tree
Hide file tree
Changes from 36 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
d9bd0df
Impl `TransactionExtension` for basic extensions
georgepisaltu Nov 21, 2023
dcd60f2
Merge remote-tracking branch 'upstream/gav-tx-ext' into george-tx-ext
georgepisaltu Nov 22, 2023
0eea424
Migrate `CheckOnlySudoAccount`
georgepisaltu Nov 22, 2023
256c074
Migrate `RefundSignedExtensionAdapter`
georgepisaltu Nov 22, 2023
2e2701a
Migrate `ChargeAssetTxPayment`
georgepisaltu Nov 22, 2023
f1b4f48
Merge remote-tracking branch 'upstream/gav-tx-ext' into george-tx-ext
georgepisaltu Nov 22, 2023
46c82b0
Migrate `PrevalidateAttests`
georgepisaltu Nov 22, 2023
faee522
Migrate `GenericSignedExtension`
georgepisaltu Nov 22, 2023
7859598
Migrate `SignedExtension` bridges bulletin
georgepisaltu Nov 22, 2023
19ea781
Remove `AsTransactionExtension` adapter usage
georgepisaltu Nov 22, 2023
2866e20
Remove `AsTransactionExtension` adapter
georgepisaltu Nov 22, 2023
f3cb7c1
Migrate `WatchDummy`
georgepisaltu Nov 22, 2023
18bbbe8
Merge remote-tracking branch 'upstream/gav-tx-ext' into wip-tx
georgepisaltu Nov 23, 2023
2a0bc1a
Remove `SignedExtension`
georgepisaltu Nov 23, 2023
ec022e3
Fix `ChargeTransactionPayment` not withdrawing
georgepisaltu Nov 23, 2023
8227bbd
Merge remote-tracking branch 'upstream/gav-tx-ext' into george-tx-ext
georgepisaltu Nov 23, 2023
b3752aa
Cleanup
georgepisaltu Nov 23, 2023
8aad0cf
Fix inherent check on XT in construct runtime
georgepisaltu Nov 24, 2023
822bb96
Fix fmt
georgepisaltu Nov 24, 2023
fa2852f
Fix clippy
georgepisaltu Nov 24, 2023
f880fcb
Merge remote-tracking branch 'upstream/master' into george-tx-ext
georgepisaltu Nov 24, 2023
64c013b
Fix double import after upstream/master merge
georgepisaltu Nov 24, 2023
2f44051
Fix another clippy
georgepisaltu Nov 24, 2023
328b5df
Use `AsSystemOriginSigner` instead of cloning
georgepisaltu Nov 24, 2023
93361ca
Switch to `tuplex` fork with `no_std`
georgepisaltu Nov 24, 2023
229291b
Fix `DisallowUnsigned` impl after merge
georgepisaltu Nov 24, 2023
92e34b6
Fix silent errors
georgepisaltu Nov 24, 2023
bb0a63e
Propagate `std` to `tuplex` fork
georgepisaltu Nov 24, 2023
e6c2c24
Fix `ChargeTransactionPayment` dry-run
georgepisaltu Nov 24, 2023
a267c60
Revert metadata renames
georgepisaltu Nov 24, 2023
9a91125
Merge branch 'gav-tx-ext' into george-tx-ext
gavofyork Nov 26, 2023
219ac9e
Fix imports
georgepisaltu Nov 27, 2023
d2574f9
Revert `AsTransactionExtension` removal
georgepisaltu Nov 27, 2023
5b89c11
Documentation on `cargo doc`
georgepisaltu Nov 27, 2023
7203fe0
Fix doc line wrapping
georgepisaltu Nov 27, 2023
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
7 changes: 2 additions & 5 deletions .github/workflows/check-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,7 @@ on:

jobs:
check-publish:
strategy:
matrix:
os: ["ubuntu-latest"]
runs-on: ${{ matrix.os }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0

Expand All @@ -23,7 +20,7 @@ jobs:
cache-on-failure: true

- name: install parity-publish
run: cargo install parity-publish --profile dev
run: cargo install parity-publish@0.3.0

- name: parity-publish check
run: parity-publish check --allow-unpublished
2 changes: 1 addition & 1 deletion .github/workflows/claim-crates.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
cache-on-failure: true

- name: install parity-publish
run: cargo install parity-publish@0.2.0
run: cargo install parity-publish@0.3.0

- name: parity-publish claim
env:
Expand Down
5 changes: 3 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

56 changes: 11 additions & 45 deletions bridges/bin/runtime-common/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -104,45 +104,6 @@ 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::SignedExtension for BridgeRejectObsoleteHeadersAndMessages {
const IDENTIFIER: &'static str = "BridgeRejectObsoleteHeadersAndMessages";
type AccountId = $account_id;
type Call = $call;
type AdditionalSigned = ();
type Pre = ();

fn additional_signed(&self) -> sp_std::result::Result<
(),
sp_runtime::transaction_validity::TransactionValidityError,
> {
Ok(())
}

fn validate(
&self,
_who: &Self::AccountId,
call: &Self::Call,
_info: &sp_runtime::traits::DispatchInfoOf<Self::Call>,
_len: usize,
) -> sp_runtime::transaction_validity::TransactionValidity {
let valid = sp_runtime::transaction_validity::ValidTransaction::default();
$(
let valid = valid
.combine_with(<$filter_call as $crate::BridgeRuntimeFilterCall<$call>>::validate(call)?);
)*
Ok(valid)
}

fn pre_dispatch(
self,
who: &Self::AccountId,
call: &Self::Call,
info: &sp_runtime::traits::DispatchInfoOf<Self::Call>,
len: usize,
) -> Result<Self::Pre, sp_runtime::transaction_validity::TransactionValidityError> {
self.validate(who, call, info, len).map(drop)
}
}
impl sp_runtime::traits::TransactionExtensionBase for BridgeRejectObsoleteHeadersAndMessages {
const IDENTIFIER: &'static str = "BridgeRejectObsoleteHeadersAndMessages";
type Implicit = ();
Expand Down Expand Up @@ -193,12 +154,14 @@ macro_rules! generate_bridge_reject_obsolete_headers_and_messages {
#[cfg(test)]
mod tests {
use crate::BridgeRuntimeFilterCall;
use frame_support::{assert_err, assert_ok};
use codec::Encode;
use frame_support::assert_err;
use sp_runtime::{
traits::SignedExtension,
traits::DispatchTransaction,
transaction_validity::{InvalidTransaction, TransactionValidity, ValidTransaction},
};

#[derive(Encode)]
pub struct MockCall {
data: u32,
}
Expand Down Expand Up @@ -249,17 +212,20 @@ mod tests {
);

assert_err!(
BridgeRejectObsoleteHeadersAndMessages.validate(&(), &MockCall { data: 1 }, &(), 0),
BridgeRejectObsoleteHeadersAndMessages.validate_only((), &MockCall { data: 1 }, &(), 0),
InvalidTransaction::Custom(1)
);

assert_err!(
BridgeRejectObsoleteHeadersAndMessages.validate(&(), &MockCall { data: 2 }, &(), 0),
BridgeRejectObsoleteHeadersAndMessages.validate_only((), &MockCall { data: 2 }, &(), 0),
InvalidTransaction::Custom(2)
);

assert_ok!(
BridgeRejectObsoleteHeadersAndMessages.validate(&(), &MockCall { data: 3 }, &(), 0),
assert_eq!(
BridgeRejectObsoleteHeadersAndMessages
.validate_only((), &MockCall { data: 3 }, &(), 0)
.unwrap()
.0,
ValidTransaction { priority: 3, ..Default::default() }
)
}
Expand Down
Loading