Type Alias moonbeam_runtime::Randomness
source · pub type Randomness = Pallet<Runtime>;
Aliased Type§
struct Randomness(/* private fields */);
Implementations
§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
pub fn set_babe_randomness_results(
origin: <T as Config>::RuntimeOrigin
) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
pub fn set_babe_randomness_results( origin: <T as Config>::RuntimeOrigin ) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
Populates RandomnessResults
due this epoch with BABE epoch randomness
§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
pub fn account_id() -> <T as Config>::AccountId
pub fn account_id() -> <T as Config>::AccountId
Returns the pallet account
pub fn total_locked(
) -> <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance
pub fn total_locked( ) -> <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance
Returns total balance in the pallet account
§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
pub fn request_randomness(
request: Request<<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, RequestType<T>>
) -> Result<u64, DispatchError>
pub fn request_randomness( request: Request<<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, RequestType<T>> ) -> Result<u64, DispatchError>
Make request for future randomness
pub fn prepare_fulfillment(id: u64) -> Result<FulfillArgs<T>, DispatchError>
pub fn prepare_fulfillment(id: u64) -> Result<FulfillArgs<T>, DispatchError>
Prepare fulfillment Returns all arguments needed for fulfillment
pub fn finish_fulfillment(
id: u64,
request: Request<<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, RequestInfo<T>>,
deposit: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
caller: &H160,
cost_of_execution: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance
)
pub fn finish_fulfillment( id: u64, request: Request<<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, RequestInfo<T>>, deposit: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, caller: &H160, cost_of_execution: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance )
Finish fulfillment
Caller MUST ensure id
corresponds to request
or there will be side effects
pub fn increase_request_fee(
caller: &H160,
id: u64,
fee_increase: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance
) -> Result<(), DispatchError>
pub fn increase_request_fee( caller: &H160, id: u64, fee_increase: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance ) -> Result<(), DispatchError>
Increase fee associated with request
pub fn execute_request_expiration(
caller: &H160,
id: u64
) -> Result<(), DispatchError>
pub fn execute_request_expiration( caller: &H160, id: u64 ) -> Result<(), DispatchError>
Execute request expiration transfers fee to caller && purges request iff it has expired does NOT try to fulfill the request
§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
pub fn request_count() -> u64
pub fn request_count() -> u64
An auto-generated getter for [RequestCount
].
§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
pub fn local_vrf_output() -> Option<<T as Config>::Hash>
pub fn local_vrf_output() -> Option<<T as Config>::Hash>
An auto-generated getter for [LocalVrfOutput
].
§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
pub fn relay_epoch() -> u64
pub fn relay_epoch() -> u64
An auto-generated getter for RelayEpoch
.
§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
pub fn inherent_included() -> Option<()>
pub fn inherent_included() -> Option<()>
An auto-generated getter for InherentIncluded
.
§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
pub fn not_first_block() -> Option<()>
pub fn not_first_block() -> Option<()>
An auto-generated getter for [NotFirstBlock
].
§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
pub fn randomness_results<KArg>(
k: KArg
) -> Option<RandomnessResult<<T as Config>::Hash>>where
KArg: EncodeLike<RequestType<T>>,
pub fn randomness_results<KArg>(
k: KArg
) -> Option<RandomnessResult<<T as Config>::Hash>>where
KArg: EncodeLike<RequestType<T>>,
An auto-generated getter for [RandomnessResults
].
§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
pub fn previous_local_vrf_output() -> <T as Config>::Hash
pub fn previous_local_vrf_output() -> <T as Config>::Hash
An auto-generated getter for [PreviousLocalVrfOutput
].
Trait Implementations
§impl<T> PalletInfoAccess for Pallet<T>where
T: Config,
impl<T> PalletInfoAccess for Pallet<T>where
T: Config,
§fn module_name() -> &'static str
fn module_name() -> &'static str
§fn crate_version() -> CrateVersion
fn crate_version() -> CrateVersion
§impl<T> WhitelistedStorageKeys for Pallet<T>where
T: Config,
impl<T> WhitelistedStorageKeys for Pallet<T>where
T: Config,
§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.§impl<T> Randomness<<T as Config>::Hash, <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> Randomness<<T as Config>::Hash, <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
§fn random(
subject: &[u8]
) -> (<T as Config>::Hash, <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number)
fn random( subject: &[u8] ) -> (<T as Config>::Hash, <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number)
Uses the vrf output of previous block to generate a random seed. The provided subject
must have the property to uniquely generate different randomness given the same vrf
output (e.g. relay block number).
In our case the subject
is provided via Nimbus and consists of three parts:
1. Constant string *b“filter“ - to identify author-slot-filter pallet
2. First 2 bytes of index.to_le_bytes() when selecting the ith eligible author
3. First 4 bytes of slot_number.to_be_bytes()
Note: This needs to be updated when asynchronous backing is in effect, as it will be unsafe.
§fn random_seed() -> (Output, BlockNumber)
fn random_seed() -> (Output, BlockNumber)
§impl<T> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
§fn offchain_worker(
n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number
)
fn offchain_worker( n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number )
§impl<T> GetStorageVersion for Pallet<T>where
T: Config,
impl<T> GetStorageVersion for Pallet<T>where
T: Config,
§type InCodeStorageVersion = NoStorageVersionSet
type InCodeStorageVersion = NoStorageVersionSet
§fn in_code_storage_version(
) -> <Pallet<T> as GetStorageVersion>::InCodeStorageVersion
fn in_code_storage_version( ) -> <Pallet<T> as GetStorageVersion>::InCodeStorageVersion
storage_version
attribute, or
[NoStorageVersionSet
] if the attribute is missing.§fn on_chain_storage_version() -> StorageVersion
fn on_chain_storage_version() -> StorageVersion
§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 more§impl<T> OnRuntimeUpgrade for Pallet<T>where
T: Config,
impl<T> OnRuntimeUpgrade for Pallet<T>where
T: Config,
§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
Hooks::on_runtime_upgrade
].§impl<T> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
§impl<T> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
§fn on_initialize(
_now: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number
) -> Weight
fn on_initialize( _now: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number ) -> Weight
§fn on_finalize(
_now: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number
)
fn on_finalize( _now: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number )
§fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
Hooks::on_finalize
]). Read more§fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)
fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)
§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
Executive
pallet. Read more§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
§fn integrity_test()
fn integrity_test()
§impl<T> PalletsInfoAccess for Pallet<T>where
T: Config,
impl<T> PalletsInfoAccess for Pallet<T>where
T: Config,
§impl<T> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
§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
].§impl<T> ProvideInherent for Pallet<T>where
T: Config,
impl<T> ProvideInherent for Pallet<T>where
T: Config,
§const INHERENT_IDENTIFIER: [u8; 8] = INHERENT_IDENTIFIER
const INHERENT_IDENTIFIER: [u8; 8] = INHERENT_IDENTIFIER
§fn is_inherent_required(
_: &InherentData
) -> Result<Option<<Pallet<T> as ProvideInherent>::Error>, <Pallet<T> as ProvideInherent>::Error>
fn is_inherent_required( _: &InherentData ) -> Result<Option<<Pallet<T> as ProvideInherent>::Error>, <Pallet<T> as ProvideInherent>::Error>
§fn create_inherent(
_data: &InherentData
) -> Option<<Pallet<T> as ProvideInherent>::Call>
fn create_inherent( _data: &InherentData ) -> Option<<Pallet<T> as ProvideInherent>::Call>
InherentData
. Read more§fn is_inherent(call: &<Pallet<T> as ProvideInherent>::Call) -> bool
fn is_inherent(call: &<Pallet<T> as ProvideInherent>::Call) -> bool
§fn check_inherent(_: &Self::Call, _: &InherentData) -> Result<(), Self::Error>
fn check_inherent(_: &Self::Call, _: &InherentData) -> Result<(), Self::Error>
§impl<T> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
§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
].§impl<T> Callable<T> for Pallet<T>where
T: Config,
impl<T> Callable<T> for Pallet<T>where
T: Config,
type RuntimeCall = Call<T>
§impl<T> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
§impl<T> OnGenesis for Pallet<T>where
T: Config,
impl<T> OnGenesis for Pallet<T>where
T: Config,
§fn on_genesis()
fn on_genesis()
impl<T> Eq for Pallet<T>
§impl<T> StorageInfoTrait for Pallet<T>where
T: Config,
impl<T> StorageInfoTrait for Pallet<T>where
T: Config,
fn storage_info() -> Vec<StorageInfo>
§impl<T> IntegrityTest for Pallet<T>where
T: Config,
impl<T> IntegrityTest for Pallet<T>where
T: Config,
§fn integrity_test()
fn integrity_test()
Hooks::integrity_test
].