pub type BridgeRococoGrandpa = Pallet<Runtime, Instance1>;
Aliased Type§
struct BridgeRococoGrandpa(/* private fields */);
Implementations
Source§impl<T, I> Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> Pallet<T, I>where
T: Config<I>,
I: 'static,
Sourcepub fn submit_finality_proof(
origin: <T as Config>::RuntimeOrigin,
finality_target: Box<<<T as Config<I>>::BridgedChain as Chain>::Header>,
justification: GrandpaJustification<<<T as Config<I>>::BridgedChain as Chain>::Header>,
) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
👎Deprecated: submit_finality_proof
will be removed in May 2024. Use submit_finality_proof_ex
instead.
pub fn submit_finality_proof( origin: <T as Config>::RuntimeOrigin, finality_target: Box<<<T as Config<I>>::BridgedChain as Chain>::Header>, justification: GrandpaJustification<<<T as Config<I>>::BridgedChain as Chain>::Header>, ) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
submit_finality_proof
will be removed in May 2024. Use submit_finality_proof_ex
instead.This call is deprecated and will be removed around May 2024. Use the
submit_finality_proof_ex
instead. Semantically, this call is an equivalent of the
submit_finality_proof_ex
call without current authority set id check.
Sourcepub fn initialize(
origin: <T as Config>::RuntimeOrigin,
init_data: InitializationData<<<T as Config<I>>::BridgedChain as Chain>::Header>,
) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
pub fn initialize( origin: <T as Config>::RuntimeOrigin, init_data: InitializationData<<<T as Config<I>>::BridgedChain as Chain>::Header>, ) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
Bootstrap the bridge pallet with an initial header and authority set from which to sync.
The initial configuration provided does not need to be the genesis header of the bridged chain, it can be any arbitrary header. You can also provide the next scheduled set change if it is already know.
This function is only allowed to be called from a trusted origin and writes to storage with practically no checks in terms of the validity of the data. It is important that you ensure that valid data is being passed in.
Sourcepub fn set_owner(
origin: <T as Config>::RuntimeOrigin,
new_owner: Option<<T as Config>::AccountId>,
) -> Result<(), DispatchError>
pub fn set_owner( origin: <T as Config>::RuntimeOrigin, new_owner: Option<<T as Config>::AccountId>, ) -> Result<(), DispatchError>
Change PalletOwner
.
May only be called either by root, or by PalletOwner
.
Sourcepub fn set_operating_mode(
origin: <T as Config>::RuntimeOrigin,
operating_mode: BasicOperatingMode,
) -> Result<(), DispatchError>
pub fn set_operating_mode( origin: <T as Config>::RuntimeOrigin, operating_mode: BasicOperatingMode, ) -> Result<(), DispatchError>
Halt or resume all pallet operations.
May only be called either by root, or by PalletOwner
.
Sourcepub fn submit_finality_proof_ex(
origin: <T as Config>::RuntimeOrigin,
finality_target: Box<<<T as Config<I>>::BridgedChain as Chain>::Header>,
justification: GrandpaJustification<<<T as Config<I>>::BridgedChain as Chain>::Header>,
current_set_id: u64,
_is_free_execution_expected: bool,
) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
pub fn submit_finality_proof_ex( origin: <T as Config>::RuntimeOrigin, finality_target: Box<<<T as Config<I>>::BridgedChain as Chain>::Header>, justification: GrandpaJustification<<<T as Config<I>>::BridgedChain as Chain>::Header>, current_set_id: u64, _is_free_execution_expected: bool, ) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
Verify a target header is finalized according to the given finality proof. The proof
is assumed to be signed by GRANDPA authorities set with current_set_id
id.
It will use the underlying storage pallet to fetch information about the current authorities and best finalized header in order to verify that the header is finalized.
If successful in verification, it will write the target header to the underlying storage pallet.
The call fails if:
-
the pallet is halted;
-
the pallet knows better header than the
finality_target
; -
the id of best GRANDPA authority set, known to the pallet is not equal to the
current_set_id
; -
verification is not optimized or invalid;
-
header contains forced authorities set change or change with non-zero delay.
The is_free_execution_expected
parameter is not really used inside the call. It is
used by the transaction extension, which should be registered at the runtime level. If
this parameter is true
, the transaction will be treated as invalid, if the call won’t
be executed for free. If transaction extension is not used by the runtime, this
parameter is not used at all.
Sourcepub fn force_set_pallet_state(
origin: <T as Config>::RuntimeOrigin,
new_current_set_id: u64,
new_authorities: Vec<(Public, u64)>,
new_best_header: Box<<<T as Config<I>>::BridgedChain as Chain>::Header>,
) -> Result<(), DispatchError>
pub fn force_set_pallet_state( origin: <T as Config>::RuntimeOrigin, new_current_set_id: u64, new_authorities: Vec<(Public, u64)>, new_best_header: Box<<<T as Config<I>>::BridgedChain as Chain>::Header>, ) -> Result<(), DispatchError>
Set current authorities set and best finalized bridged header to given values (almost) without any checks. This call can fail only if:
-
the call origin is not a root or a pallet owner;
-
there are too many authorities in the new set.
No other checks are made. Previously imported headers stay in the storage and are still accessible after the call.
Source§impl<T, I> Pallet<T, I>
impl<T, I> Pallet<T, I>
Sourcepub fn synced_headers_grandpa_info() -> Vec<HeaderFinalityInfo<GrandpaJustification<<<T as Config<I>>::BridgedChain as Chain>::Header>, AuthoritySet>>
pub fn synced_headers_grandpa_info() -> Vec<HeaderFinalityInfo<GrandpaJustification<<<T as Config<I>>::BridgedChain as Chain>::Header>, AuthoritySet>>
Get the GRANDPA justifications accepted in the current block.
Source§impl<T, I> Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> Pallet<T, I>where
T: Config<I>,
I: 'static,
Sourcepub fn best_finalized() -> Option<HeaderId<<<T as Config<I>>::BridgedChain as Chain>::Hash, <<T as Config<I>>::BridgedChain as Chain>::BlockNumber>>
pub fn best_finalized() -> Option<HeaderId<<<T as Config<I>>::BridgedChain as Chain>::Hash, <<T as Config<I>>::BridgedChain as Chain>::BlockNumber>>
Returns the hash of the best finalized header.
Trait Implementations
Source§impl<T, I> BeforeAllRuntimeMigrations for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> BeforeAllRuntimeMigrations for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn before_all_runtime_migrations() -> Weight
fn before_all_runtime_migrations() -> Weight
Source§impl<T, I> Benchmarking for Pallet<T, I>
impl<T, I> Benchmarking for Pallet<T, I>
Source§fn benchmarks(extra: bool) -> Vec<BenchmarkMetadata>
fn benchmarks(extra: bool) -> Vec<BenchmarkMetadata>
Source§fn run_benchmark(
extrinsic: &[u8],
c: &[(BenchmarkParameter, u32)],
whitelist: &[TrackedStorageKey],
verify: bool,
internal_repeats: u32,
) -> Result<Vec<BenchmarkResult>, BenchmarkError>
fn run_benchmark( extrinsic: &[u8], c: &[(BenchmarkParameter, u32)], whitelist: &[TrackedStorageKey], verify: bool, internal_repeats: u32, ) -> Result<Vec<BenchmarkResult>, BenchmarkError>
Source§impl<T, I> BridgeRuntimeFilterCall<<T as Config>::AccountId, <T as Config>::RuntimeCall> for Pallet<T, I>
impl<T, I> BridgeRuntimeFilterCall<<T as Config>::AccountId, <T as Config>::RuntimeCall> for Pallet<T, I>
Source§type ToPostDispatch = ()
type ToPostDispatch = ()
post_dispatch
.Source§fn validate(
_who: &<T as Config>::AccountId,
call: &<T as Config>::RuntimeCall,
) -> ((), Result<ValidTransaction, TransactionValidityError>)
fn validate( _who: &<T as Config>::AccountId, call: &<T as Config>::RuntimeCall, ) -> ((), Result<ValidTransaction, TransactionValidityError>)
who
is valid. Transactions not signed are not validated.Source§fn post_dispatch(
_who: &AccountId,
_has_failed: bool,
_to_post_dispatch: Self::ToPostDispatch,
)
fn post_dispatch( _who: &AccountId, _has_failed: bool, _to_post_dispatch: Self::ToPostDispatch, )
Source§impl<T, I> Callable<T> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> Callable<T> for Pallet<T, I>where
T: Config<I>,
I: 'static,
type RuntimeCall = Call<T, I>
Source§impl<T, I> DispatchViewFunction for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> DispatchViewFunction for Pallet<T, I>where
T: Config<I>,
I: 'static,
fn dispatch_view_function<O>(
id: &ViewFunctionId,
input: &mut &[u8],
output: &mut O,
) -> Result<(), ViewFunctionDispatchError>where
O: Output,
Source§impl<T, I> GetStorageVersion for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> GetStorageVersion for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn in_code_storage_version() -> <Pallet<T, I> as GetStorageVersion>::InCodeStorageVersion
fn in_code_storage_version() -> <Pallet<T, I> as GetStorageVersion>::InCodeStorageVersion
storage_version
attribute, or
NoStorageVersionSet
if the attribute is missing.Source§fn on_chain_storage_version() -> StorageVersion
fn on_chain_storage_version() -> StorageVersion
Source§fn current_storage_version() -> Self::InCodeStorageVersion
fn current_storage_version() -> Self::InCodeStorageVersion
in_code_storage_version
and will be removed after March 2024.Self::current_storage_version
instead. Read moreSource§impl<T, I> HeaderChain<<T as Config<I>>::BridgedChain> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> HeaderChain<<T as Config<I>>::BridgedChain> for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn finalized_header_state_root(
header_hash: <<T as Config<I>>::BridgedChain as Chain>::Hash,
) -> Option<<<T as Config<I>>::BridgedChain as Chain>::Hash>
fn finalized_header_state_root( header_hash: <<T as Config<I>>::BridgedChain as Chain>::Hash, ) -> Option<<<T as Config<I>>::BridgedChain as Chain>::Hash>
Source§fn verify_storage_proof(
header_hash: <C as Chain>::Hash,
storage_proof: Vec<Vec<u8>>,
) -> Result<StorageProofChecker<<C as Chain>::Hasher>, HeaderChainError>
fn verify_storage_proof( header_hash: <C as Chain>::Hash, storage_proof: Vec<Vec<u8>>, ) -> Result<StorageProofChecker<<C as Chain>::Hasher>, HeaderChainError>
Source§impl<T, I> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn on_initialize(
_n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
) -> Weight
fn on_initialize( _n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, ) -> Weight
Source§fn on_finalize(
_n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
)
fn on_finalize( _n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, )
Source§fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
Hooks::on_finalize
). Read moreSource§fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)
fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)
Source§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
Executive
pallet. Read moreSource§fn try_state(_n: BlockNumber) -> Result<(), DispatchError>
fn try_state(_n: BlockNumber) -> Result<(), DispatchError>
Source§fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
Source§fn post_upgrade(_state: Vec<u8>) -> Result<(), DispatchError>
fn post_upgrade(_state: Vec<u8>) -> Result<(), DispatchError>
Source§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
Source§fn integrity_test()
fn integrity_test()
Source§impl<T, I> IntegrityTest for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> IntegrityTest for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§impl<T, I> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§impl<T, I> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn on_finalize(
n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
)
fn on_finalize( n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, )
Hooks::on_finalize
.Source§impl<T, I> OnGenesis for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> OnGenesis for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn on_genesis()
fn on_genesis()
Source§impl<T, I> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§impl<T, I> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn on_initialize(
n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
) -> Weight
fn on_initialize( n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, ) -> Weight
Hooks::on_initialize
.Source§impl<T, I> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§impl<T, I> OnRuntimeUpgrade for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> OnRuntimeUpgrade for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
Source§fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
Hooks::pre_upgrade
.Source§fn post_upgrade(state: Vec<u8>) -> Result<(), DispatchError>
fn post_upgrade(state: Vec<u8>) -> Result<(), DispatchError>
Hooks::post_upgrade
.Source§fn try_on_runtime_upgrade(checks: bool) -> Result<Weight, DispatchError>
fn try_on_runtime_upgrade(checks: bool) -> Result<Weight, DispatchError>
pre_upgrade
->
on_runtime_upgrade
-> post_upgrade
hooks for a migration. Read moreSource§impl<T, I> OwnedBridgeModule<T> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> OwnedBridgeModule<T> for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§const LOG_TARGET: &'static str = LOG_TARGET
const LOG_TARGET: &'static str = LOG_TARGET
Source§type OwnerStorage = StorageValue<_GeneratedPrefixForStoragePalletOwner<T, I>, <T as Config>::AccountId>
type OwnerStorage = StorageValue<_GeneratedPrefixForStoragePalletOwner<T, I>, <T as Config>::AccountId>
Owner
account.Source§type OperatingMode = BasicOperatingMode
type OperatingMode = BasicOperatingMode
Source§type OperatingModeStorage = StorageValue<_GeneratedPrefixForStoragePalletOperatingMode<T, I>, BasicOperatingMode, ValueQuery>
type OperatingModeStorage = StorageValue<_GeneratedPrefixForStoragePalletOperatingMode<T, I>, BasicOperatingMode, ValueQuery>
Source§fn ensure_owner_or_root(
origin: <T as Config>::RuntimeOrigin,
) -> Result<(), BadOrigin>
fn ensure_owner_or_root( origin: <T as Config>::RuntimeOrigin, ) -> Result<(), BadOrigin>
PalletOwner
.Source§fn ensure_not_halted() -> Result<(), OwnedBridgeModuleError>
fn ensure_not_halted() -> Result<(), OwnedBridgeModuleError>
Source§fn set_owner(
origin: <T as Config>::RuntimeOrigin,
maybe_owner: Option<<T as Config>::AccountId>,
) -> Result<(), DispatchError>
fn set_owner( origin: <T as Config>::RuntimeOrigin, maybe_owner: Option<<T as Config>::AccountId>, ) -> Result<(), DispatchError>
Source§fn set_operating_mode(
origin: <T as Config>::RuntimeOrigin,
operating_mode: Self::OperatingMode,
) -> Result<(), DispatchError>
fn set_operating_mode( origin: <T as Config>::RuntimeOrigin, operating_mode: Self::OperatingMode, ) -> Result<(), DispatchError>
Source§fn module_owner() -> Option<<T as Config>::AccountId>
fn module_owner() -> Option<<T as Config>::AccountId>
None
,
then there are no direct ways to halt/resume module operations, but other runtime methods
may still be used to do that (i.e. democracy::referendum to update halt flag directly
or call the set_operating_mode
).Source§fn operating_mode() -> Self::OperatingMode
fn operating_mode() -> Self::OperatingMode
Source§impl<T, I> PalletInfoAccess for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> PalletInfoAccess for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn module_name() -> &'static str
fn module_name() -> &'static str
Source§fn crate_version() -> CrateVersion
fn crate_version() -> CrateVersion
Source§impl<T, I> PalletsInfoAccess for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> PalletsInfoAccess for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§impl<T, I> StorageInfoTrait for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> StorageInfoTrait for Pallet<T, I>where
T: Config<I>,
I: 'static,
fn storage_info() -> Vec<StorageInfo>
Source§impl<T, I> TryDecodeEntireStorage for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> TryDecodeEntireStorage for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn try_decode_entire_state() -> Result<usize, Vec<TryDecodeEntireStorageError>>
fn try_decode_entire_state() -> Result<usize, Vec<TryDecodeEntireStorageError>>
Ok(bytes_decoded)
if success.Source§impl<T, I> TryState<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> TryState<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§impl<T, I> ViewFunctionIdPrefix for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> ViewFunctionIdPrefix for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§impl<T, I> WhitelistedStorageKeys for Pallet<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> WhitelistedStorageKeys for Pallet<T, I>where
T: Config<I>,
I: 'static,
Source§fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>
fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>
Vec<TrackedStorageKey>
indicating the storage keys that
should be whitelisted during benchmarking. This means that those keys
will be excluded from the benchmarking performance calculation.