frame-decode 0.17.2

Decode extrinsics and storage from Substrate based chains
Documentation
1
2
3
4
|SystemSystem@Account0T::AccountId�AccountInfo<T::Index, T::AccountData>A� The full account information for a particular account ID.8ExtrinsicCountu32� Total extrinsics count for the current block.,BlockWeight8ConsumedWeight`� The current weight for the block.@AllExtrinsicsLenu32A Total length (in bytes) for all extrinsics put together, for the current block.$BlockHash8T::BlockNumberT::Hash�� Map of block numbers to block hashes.4ExtrinsicDatau32Vec<u8>= Extrinsics data for the current block (maps an extrinsic's index to its data).Number8T::BlockNumber	 The current block number being processed. Set by `execute_block`.(ParentHashT::Hash�p Hash of the previous block.Digest,DigestOf<T>� Digest of the current block, also part of the block header.Events�Vec<EventRecord<T::Event, T::Hash>>� Events deposited for the current block.(EventCount(EventIndex� The number of events in the `Events<T>` list.,EventTopicsT::Hash�Vec<(T::BlockNumber, EventIndex)>(% Mapping between a topic (represented by T::Hash) and a vector of indexes� of events in the `<Events<T>>` list.Q All topic vectors have deterministic storage locations depending on the topic. ThisE allows light-clients to leverage the changes trie storage tracking mechanism and� in case of changes fetch the list of events of interest.M The value has the type `(T::BlockNumber, EventIndex)` because if we used only justM the `EventIndex` then in case if the topic has the same contents on the next block no notification will be triggered thus the event might be lost.HLastRuntimeUpgradeXLastRuntimeUpgradeInfoU Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened.TUpgradedToU32RefCountboolM True if we have upgraded so that `type RefCount` is `u32`. False (default) if not.`UpgradedToTripleRefCountbool] True if we have upgraded so that AccountInfo contains three types of `RefCount`. FalseH (default) if not.8ExecutionPhasePhase� The execution phase of the block.((fill_block_ratioPerbill	 A dispatch that will fill the block weight up to the given ratio.remark_remarkVec<u8>l Make some on-chain remark., # <weight>$ - `O(1)`0 # </weight>8set_heap_pagespagesu64 � Set the number of pages in the WebAssembly environment's heap., # <weight>$ - `O(1)`L - 1 storage write.d - Base Weight: 1.405 µs` - 1 write to HEAP_PAGES0 # </weight> set_codecodeVec<u8>(h Set the new runtime code., # <weight>5 - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`� - 1 storage write (codec `O(C)`).y - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is expensive)., - 1 event.} The weight of this function is dependent on the runtime, but generally this is very expensive.� We will treat this as a full block.0 # </weight>\set_code_without_checkscodeVec<u8>  Set the new runtime code without doing any checks of the given `code`., # <weight>� - `O(C)` where `C` length of `code`� - 1 storage write (codec `O(C)`)., - 1 event.u The weight of this function is dependent on the runtime. We will treat this as a full block.0 # </weight>\set_changes_trie_configLchanges_trie_config�Option<ChangesTrieConfiguration>(� Set the new changes trie configuration., # <weight>$ - `O(1)`� - 1 storage write or delete (codec `O(1)`).� - 1 call to `deposit_log`: Uses `append` API, so O(1)d - Base Weight: 7.218 µs4 - DB Weight:�     - Writes: Changes Trie, System Digest0 # </weight>,set_storageitems4Vec<KeyValue> l Set some items of storage., # <weight>� - `O(I)` where `I` length of `items`| - `I` storage writes (`O(1)`).t - Base Weight: 0.568 * i µsh - Writes: Number of items0 # </weight>0kill_storagekeys Vec<Key> x Kill some items from storage., # <weight>� - `O(IK)` where `I` length of `keys` and `K` length of one keyd - `I` storage deletions.p - Base Weight: .378 * i µsh - Writes: Number of items0 # </weight>,kill_prefixprefixKey _subkeysu32, Kill all storage items with a key that starts with the given prefix.= **NOTE:** We rely on the Root origin to provide us the number of subkeys underA the prefix we are removing to accurately calculate the weight of this function., # <weight>� - `O(P)` where `P` amount of keys with prefix `prefix`d - `P` storage deletions.t - Base Weight: 0.834 * P µs� - Writes: Number of subkeys + 10 # </weight>Dremark_with_eventremarkVec<u8>� Make some on-chain remark and emit event., # <weight>� - `O(b)` where b is the length of the remark., - 1 event.0 # </weight>@ExtrinsicSuccess0DispatchInfo� An extrinsic completed successfully. \[info\]<ExtrinsicFailed4DispatchError0DispatchInfo� An extrinsic failed. \[error, info\],CodeUpdatedT `:code` was updated.(NewAccount$AccountId| A new \[account\] was created.4KilledAccount$AccountIdl An \[account\] was reaped. Remarked$AccountIdHash� On on-chain remark happened. \[origin, remark_hash\]0BlockWeightsPlimits::BlockWeights��* J��@Ys�vl�X��>]@Ys����� J���Rjt@Ys� Block & extrinsics weights: base values and limits.,BlockLengthLlimits::BlockLength0<PP� The maximum length of a block (in bytes).8BlockHashCount8T::BlockNumber`	U Maximum number of block number to block hash mappings to keep (oldest pruned first). DbWeight<RuntimeDbWeight@@x}��	 The weight of runtime database operations the runtime can invoke.Version8RuntimeVersion� polkadot<parity-polkadot0�j�h�`�7��|���@�:����Ҽ���Џ��'��?EL�,��>m=�Ŭ�^����%�#�hz�J���<r)�����O[�?7ȻP���� Get the chain's current version.(SS58Prefixu8� The designated SS85 prefix of this chain.9 This replaces the "ss58Format" property declared in the chain spec. Reason is1 that the runtime should know about the prefix in order to make use of it asp an identifier of the chain.<InvalidSpecName The name of specification does not match between the current runtimeT and the new runtime.hSpecVersionNeedsToIncreaseE The specification version is not allowed to decrease between the current runtimeT and the new runtime.tFailedToExtractRuntimeVersion� Failed to extract the runtime version from the new runtime.
 Either calling `Core_version` or decoding `RuntimeVersion` failed.LNonDefaultComposite Suicide called when the account has non-default composite data.<NonZeroRefCount9 There is a non-zero reference count preventing the account from being purged.`RandomnessCollectiveFlip`RandomnessCollectiveFlip8RandomMaterial0Vec<T::Hash>a Series of block headers from the last 81 blocks that acts as random seed material. Thisa is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` ofD the oldest hash.$Scheduler$SchedulerAgenda8T::BlockNumberqVec<Option<Scheduled<<T as Config>::Call, T::BlockNumber, T::
PalletsOrigin, T::AccountId>>>M Items to be executed, indexed by the block number that they should be executed on.LookupVec<u8>lTaskAddress<T::BlockNumber> Lookup from identity to the block number and index of the task.8StorageVersion Releases| Storage version of the pallet.� New networks start with last version. schedulewhen8T::BlockNumber8maybe_periodic�Option<schedule::Period<T::BlockNumber>> priorityHschedule::Prioritycall`Box<<T as Config>::Call>(t Anonymously schedule a task., # <weight>� - S = Number of already scheduled calls� - Base Weight: 22.29 + .126 * S µs4 - DB Weight:L     - Read: AgendaP     - Write: Agenda= - Will use base weight of 25 which should be good for up to 30 scheduled calls0 # </weight>cancelwhen8T::BlockNumberindexu32(� Cancel an anonymously scheduled task., # <weight>� - S = Number of already scheduled calls� - Base Weight: 22.15 + 2.869 * S µs4 - DB Weight:L     - Read: Agendap     - Write: Agenda, LookupA - Will use base weight of 100 which should be good for up to 30 scheduled calls0 # </weight>8schedule_namedidVec<u8>when8T::BlockNumber8maybe_periodic�Option<schedule::Period<T::BlockNumber>> priorityHschedule::Prioritycall`Box<<T as Config>::Call>(\ Schedule a named task., # <weight>� - S = Number of already scheduled calls� - Base Weight: 29.6 + .159 * S µs4 - DB Weight:l     - Read: Agenda, Lookupp     - Write: Agenda, LookupM - Will use base weight of 35 which should be good for more than 30 scheduled calls0 # </weight>0cancel_namedidVec<u8>(| Cancel a named scheduled task., # <weight>� - S = Number of already scheduled calls� - Base Weight: 24.91 + 2.907 * S µs4 - DB Weight:l     - Read: Agenda, Lookupp     - Write: Agenda, LookupA - Will use base weight of 100 which should be good for up to 30 scheduled calls0 # </weight>8schedule_afterafter8T::BlockNumber8maybe_periodic�Option<schedule::Period<T::BlockNumber>> priorityHschedule::Prioritycall`Box<<T as Config>::Call>� Anonymously schedule a task after a delay., # <weight>X Same as [`schedule`].0 # </weight>Pschedule_named_afteridVec<u8>after8T::BlockNumber8maybe_periodic�Option<schedule::Period<T::BlockNumber>> priorityHschedule::Prioritycall`Box<<T as Config>::Call>� Schedule a named task after a delay., # <weight>p Same as [`schedule_named`].0 # </weight>$Scheduled,BlockNumberu32� Scheduled some task. \[when, index\] Canceled,BlockNumberu32� Canceled some task. \[when, index\](Dispatched`TaskAddress<BlockNumber><Option<Vec<u8>>8DispatchResult� Dispatched some task. \[task, id, result\]@FailedToScheduleh Failed to schedule a call NotFound� Cannot find the scheduled call.\TargetBlockNumberInPast� Given target block number is in the past.HRescheduleNoChange� Reschedule failed because it does not change scheduled time.BabeBabe@(EpochIndexu64 T Current epoch index.,Authorities�Vec<(AuthorityId, BabeAuthorityWeight)>l Current epoch authorities.,GenesisSlotSlot � The slot at which the first epoch actually started. This is 0� until the first block of the chain.,CurrentSlotSlot T Current slot number.(RandomnessXschnorrkel::Randomness�(� The epoch randomness for the *current* epoch., # Security This MUST NOT be used for gambling, as it can be influenced by a� malicious validator in the short term. It MAY be used in many cryptographic protocols, however, so long as one remembers that this (like everything else on-chain) it is public. For example, it can be used where a number is needed that cannot have been chosen by an
 adversary, for purposes such as public-coin zero-knowledge proofs.`PendingEpochConfigChangePNextConfigDescriptora Pending epoch configuration change that will be applied when the next epoch is enacted.8NextRandomnessXschnorrkel::Randomness�\ Next epoch randomness.<NextAuthorities�Vec<(AuthorityId, BabeAuthorityWeight)>` Next epoch authorities.0SegmentIndexu32$| Randomness under construction.� We make a tradeoff between storage accesses and list length. We store the under-construction randomness in segments of up to� `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.� Once a segment reaches this length, we begin the next one.	 We reset all segments and return to `0` at the beginning of every epoch.DUnderConstructionu32lVec<schnorrkel::Randomness> TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay.,Initialized<MaybeRandomness Temporary value (cleared at block finalization) which is `Some` if per-block initialization has already been called for current block.LAuthorVrfRandomness<MaybeRandomness] Temporary value (cleared at block finalization) that includes the VRF output generatedQ at this block. This field should always be populated during block processing unless secondary plain slots are enabled (which don't contain a VRF output).(EpochStart�(T::BlockNumber, T::BlockNumber) ] The block numbers when the last and current epoch have started, respectively `N-1` and `N`.I NOTE: We track this is in order to annotate the block number when a given pool ofY entropy was fixed (i.e. it was known to chain observers). Since epochs are defined inY slots, which may be skipped, the block numbers may not line up with the slot numbers. Lateness8T::BlockNumber� How late the current block is compared to its parent. This entry is populated as part of block execution and is cleaned up on block finalization. Querying this storage entry outside of block� execution context should always yield zero.,EpochConfigXBabeEpochConfiguration� The configuration for the current epoch. Should never be `None` as it is initialized in genesis.<NextEpochConfigXBabeEpochConfiguration- The configuration for the next epoch, `None` if the config will not change� (you can fallback to `EpochConfig` instead in that case).Lreport_equivocationHequivocation_proofpEquivocationProof<T::Header><key_owner_proof@T::KeyOwnerProof
 Report authority equivocation/misbehavior. This method will verify	 the equivocation proof and validate the given key ownership proof against the extracted offender. If both are valid, the offence will4 be reported.preport_equivocation_unsignedHequivocation_proofpEquivocationProof<T::Header><key_owner_proof@T::KeyOwnerProof 
 Report authority equivocation/misbehavior. This method will verify	 the equivocation proof and validate the given key ownership proof against the extracted offender. If both are valid, the offence will4 be reported. This extrinsic must be called unsigned and it is expected that only block authors will call it (validated in `ValidateUnsigned`), as such if the block author is defined it will be defined as the equivocation( reporter.Hplan_config_changeconfigPNextConfigDescriptora Plan an epoch config change. The epoch config change is recorded and will be enacted onU the next call to `enact_epoch_change`. The config will be activated one epoch after.] Multiple calls to this method will replace any existing planned config change that hadX not been enacted yet.4EpochDurationu64 `	� The amount of time, in slots, that each epoch should last. NOTE: Currently it is not possible to change the epoch duration after! the chain has started. Attempting to do so will brick block production.DExpectedBlockTime$T::Moment p The expected average block time at which BABE should be creating blocks. Since BABE is probabilistic it is not trivial to figure out what the expected average block time should be based on the slot	 duration and the security parameter `c` (where `1 - c` represents� the probability of a slot being empty).`InvalidEquivocationProof5 An equivocation proof provided as part of an equivocation report is invalid.`InvalidKeyOwnershipProof5 A key ownership proof provided as part of an equivocation report is invalid.XDuplicateOffenceReport A given equivocation report is valid but already previously reported.$Timestamp$TimestampNow$T::Moment � Current time for the current block.$DidUpdatebool� Did the timestamp get updated in this block?setnowHCompact<T::Moment><X Set the current time.Y This call should be invoked exactly once per block. It will panic at the finalization� phase, if this call hasn't been invoked by that time.E The timestamp should be greater than the previous one by the amount specified byD `MinimumPeriod`.� The dispatch origin for this call must be `Inherent`., # <weight>5 - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)� - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in `on_finalize`)� - 1 event handler `on_timestamp_set`. Must be `O(1)`.0 # </weight>4MinimumPeriod$T::Moment �i The minimum period between blocks. Beware that this is different to the *expected* periodi that the block production apparatus provides. Your chosen consensus system will generallye work with this to determine a sensible block time. e.g. For Aura, it will be double thisp period on default settings.IndicesIndices Accounts<T::AccountIndex�(T::AccountId, BalanceOf<T>, bool)� The lookup from index to account.claimindex<T::AccountIndexH� Assign an previously unassigned index.� Payment: `Deposit` is reserved from the sender account.� The dispatch origin for this call must be _Signed_.� - `index`: the index to be claimed. This must not be in use.� Emits `IndexAssigned` if successful., # <weight>( - `O(1)`.� - One storage mutation (codec `O(1)`).d - One reserve operation.4 - One event.P -------------------� - DB Weight: 1 Read/Write (Accounts)0 # </weight> transfernew0T::AccountIdindex<T::AccountIndexPa Assign an index already owned by the sender to another account. The balance reservation� is effectively transferred to the new account.� The dispatch origin for this call must be _Signed_.) - `index`: the index to be re-assigned. This must be owned by the sender.a - `new`: the new owner of the index. This function is a no-op if it is equal to sender.� Emits `IndexAssigned` if successful., # <weight>( - `O(1)`.� - One storage mutation (codec `O(1)`).h - One transfer operation.4 - One event.P -------------------4 - DB Weight:�    - Reads: Indices Accounts, System Account (recipient)�    - Writes: Indices Accounts, System Account (recipient)0 # </weight>freeindex<T::AccountIndexH� Free up an index owned by the sender.a Payment: Any previous deposit placed for the index is unreserved in the sender account.Y The dispatch origin for this call must be _Signed_ and the sender must own the index. - `index`: the index to be freed. This must be owned by the sender.� Emits `IndexFreed` if successful., # <weight>( - `O(1)`.� - One storage mutation (codec `O(1)`).d - One reserve operation.4 - One event.P -------------------� - DB Weight: 1 Read/Write (Accounts)0 # </weight>8force_transfernew0T::AccountIdindex<T::AccountIndexfreezeboolTY Force an index to an account. This doesn't require a deposit. If the index is already� held, then any deposit is reimbursed to its current owner.� The dispatch origin for this call must be _Root_.� - `index`: the index to be (re-)assigned.a - `new`: the new owner of the index. This function is a no-op if it is equal to sender.E - `freeze`: if set to `true`, will freeze the index so it cannot be transferred.� Emits `IndexAssigned` if successful., # <weight>( - `O(1)`.� - One storage mutation (codec `O(1)`).| - Up to one reserve operation.4 - One event.P -------------------4 - DB Weight:�    - Reads: Indices Accounts, System Account (original owner)�    - Writes: Indices Accounts, System Account (original owner)0 # </weight>freezeindex<T::AccountIndexDi Freeze an index so it will always point to the sender account. This consumes the deposit.] The dispatch origin for this call must be _Signed_ and the signing account must have ap non-frozen account `index`.� - `index`: the index to be frozen in place.� Emits `IndexFrozen` if successful., # <weight>( - `O(1)`.� - One storage mutation (codec `O(1)`).t - Up to one slash operation.4 - One event.P -------------------� - DB Weight: 1 Read/Write (Accounts)0 # </weight>4IndexAssigned$AccountId0AccountIndex� A account index was assigned. \[index, who\](IndexFreed0AccountIndex� A account index has been freed up (unassigned). \[index\],IndexFrozen0AccountIndex$AccountId) A account index has been frozen to its current account ID. \[index, who\]Deposit0BalanceOf<T>@�vH� The deposit needed for reserving an index. Balances Balances4TotalIssuance(T::Balance@� The total units issued in the system.Account0T::AccountId\AccountData<T::Balance>l The balance of an account.A NOTE: This is only used in the case that this pallet is used to store balances.Locks0T::AccountIdpVec<BalanceLock<T::Balance>>� Any liquidity locks on some account balances.% NOTE: Should only be accessed when setting, changing and freeing a lock.8StorageVersion Releases| Storage version of the pallet.� This is set to v2.0.0 for new networks. transferdest�<T::Lookup as StaticLookup>::SourcevalueLCompact<T::Balance>l� Transfer some liquid free balance to another account.	 `transfer` will set the `FreeBalance` of the sender and receiver.! It will decrease the total issuance of the system by the `TransferFee`. If the sender's account is below the existential deposit as a result� of the transfer, the account will be reaped. The dispatch origin for this call must be `Signed` by the transactor., # <weight>1 - Dependent on arguments but not critical, given proper implementations for�   input config types. See related functions below.i - It contains a limited number of reads and writes internally and no complex computation.L Related functions:Q   - `ensure_can_withdraw` is always called internally but has a bounded complexity.-   - Transferring balances to accounts that did not exist before will cause�      `T::OnNewAccount::on_new_account` to be called.a   - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.I   - `transfer_keep_alive` works the same way as `transfer`, but has an additional�     check that the transfer will not kill the origin account.� ---------------------------------E - Base Weight: 73.64 µs, worst case scenario (account created, account removed)� - DB Weight: 1 Read and 1 Write to destination account - Origin account is already in memory, so no DB operations for them.0 # </weight>,set_balancewho�<T::Lookup as StaticLookup>::Source new_freeLCompact<T::Balance>0new_reservedLCompact<T::Balance>H� Set the balances of a given account.! This will alter `FreeBalance` and `ReservedBalance` in storage. it will	 also decrease the total issuance of the system (`TotalIssuance`). If the new free or reserved balance is below the existential deposit, it will reset the account nonce (`frame_system::AccountNonce`).� The dispatch origin for this call is `root`., # <weight>� - Independent of the arguments.� - Contains a limited number of reads and writes.X ---------------------< - Base Weight:h     - Creating: 27.56 µsd     - Killing: 35.11 µs� - DB Weight: 1 Read, 1 Write to `who`0 # </weight>8force_transfersource�<T::Lookup as StaticLookup>::Sourcedest�<T::Lookup as StaticLookup>::SourcevalueLCompact<T::Balance>Q Exactly as `transfer`, except the origin must be root and the source account may be, specified., # <weight>A - Same as transfer, but additional read and write because the source account is�   not assumed to be in the overlay.0 # </weight>Ltransfer_keep_alivedest�<T::Lookup as StaticLookup>::SourcevalueLCompact<T::Balance>,Q Same as the [`transfer`] call, but with a check that the transfer will not kill the@ origin account.� 99% of the time you want [`transfer`] instead.� [`transfer`]: struct.Pallet.html#method.transfer, # <weight>� - Cheaper than transfer because account cannot be killed.` - Base Weight: 51.4 µs - DB Weight: 1 Read and 1 Write to dest (sender is in overlay already), #</weight> Endowed$AccountIdBalance% An account was created with some free balance. \[account, free_balance\] DustLost$AccountIdBalanceA An account was removed whose balance was non-zero but below ExistentialDeposit,� resulting in an outright loss. \[account, balance\] Transfer$AccountId$AccountIdBalance� Transfer succeeded. \[from, to, value\](BalanceSet$AccountIdBalanceBalance� A balance was set by root. \[who, free, reserved\]Deposit$AccountIdBalance! Some amount was deposited (e.g. for transaction fees). \[who, deposit\] Reserved$AccountIdBalance! Some balance was reserved (moved from free to reserved). \[who, value\](Unreserved$AccountIdBalance) Some balance was unreserved (moved from reserved to free). \[who, value\]HReserveRepatriated$AccountId$AccountIdBalanceStatusQ Some balance was moved from the reserve of the first account to the second account.� Final argument indicates the destination balance type.� \[from, to, balance, destination_status\]HExistentialDeposit(T::Balance@�T� The minimum amount required to keep an account open. 8VestingBalance� Vesting balance too high to send valueTLiquidityRestrictions� Account liquidity restrictions prevent withdrawal Overflowt Got an overflow after addingLInsufficientBalancex Balance too low to send valueHExistentialDeposit� Value too low to create account due to existential deposit$KeepAlive� Transfer/payment would kill account\ExistingVestingSchedule� A vesting schedule already exists for this account,DeadAccount� Beneficiary account must pre-existHTransactionPaymentHTransactionPaymentDNextFeeMultiplier(Multiplier@d����
8StorageVersion ReleasesHTransactionByteFee0BalanceOf<T>@@B
 The fee to be paid for making a transaction; the per-byte portion.,WeightToFee�Vec<WeightToFeeCoefficient<BalanceOf<T>>>\��
 The polynomial that is applied in order to derive fee from weight. (Authorship(AuthorshipUncles�Vec<UncleEntryItem<T::BlockNumber, T::Hash, T::AccountId>> UnclesAuthor0T::AccountIdd Author of current block.0DidSetUnclesbool� Whether uncles were already set in this block.(set_uncles(new_uncles8Vec<T::Header>d Provide a set of uncles.HInvalidUncleParent� The uncle parent not in the chain.@UnclesAlreadySet� Uncles already set in the block.4TooManyUnclesD Too many uncles.0GenesisUncleX The uncle is genesis.0TooHighUncle� The uncle is too high in chain.PUncleAlreadyIncluded| The uncle is already included. OldUncle� The uncle isn't recent enough to be included.StakingStakingx0HistoryDepthu32T� Number of eras to keep in history.9 Information is kept for eras in `[current_era - history_depth; current_era]`.a Must be more than the number of eras delayed by session otherwise. I.e. active era must9 always be in history. I.e. `active_era > current_era - history_depth` must be0 guaranteed.8ValidatorCountu32� The ideal number of staking participants.TMinimumValidatorCountu32A Minimum number of staking participants before emergency conditions are imposed.4InvulnerablesDVec<T::AccountId>Y Any validators that may never be slashed or forcibly kicked. It's a Vec since they'reM easy to initialize and the performance hit is minimal (we expect no more than four� invulnerables) and restricted to testnets.Bonded0T::AccountId0T::AccountId Map from all locked "stash" accounts to the controller account.Ledger0T::AccountId�StakingLedger<T::AccountId, BalanceOf<T>>E Map from all (unlocked) "controller" accounts to the info regarding the staking.Payee0T::AccountId|RewardDestination<T::AccountId>� Where the reward payment should be made. Keyed by stash.(Validators0T::AccountId8ValidatorPrefsE The map from (wannabe) validator stash key to the preferences of that validator.(Nominators0T::AccountIddNominations<T::AccountId>e The map from nominator stash key to the set of stash keys of all validators to nominate.(CurrentEra EraIndex\ The current era index.e This is the latest planned era, depending on how the Session pallet queues the validator� set, it might be active or not.$ActiveEra4ActiveEraInfo� The active era information, it holds index and start.Y The active era is the era being currently rewarded. Validator set of this era must be� equal to [`SessionInterface::validators`].TErasStartSessionIndex EraIndex0SessionIndex1 The session index at which the era start for the last `HISTORY_DEPTH` eras.a Note: This tracks the starting session (i.e. session index when era start being active)� for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`.,ErasStakers EraIndex0T::AccountId�Exposure<T::AccountId, BalanceOf<T>>x Exposure of validator at era.a This is keyed first by the era index to allow bulk deletion and then the stash account.� Is it removed after `HISTORY_DEPTH` eras.A If stakers hasn't been set or has been removed then empty exposure is returned.HErasStakersClipped EraIndex0T::AccountId�Exposure<T::AccountId, BalanceOf<T>>,� Clipped Exposure of validator at era.Y This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the� `T::MaxNominatorRewardedPerValidator` biggest stakers. (Note: the field `total` and `own` of the exposure remains unchanged).� This is used to limit the i/o cost for the nominator payout.] This is keyed fist by the era index to allow bulk deletion and then the stash account.� Is it removed after `HISTORY_DEPTH` eras.A If stakers hasn't been set or has been removed then empty exposure is returned.HErasValidatorPrefs EraIndex0T::AccountId8ValidatorPrefs Similar to `ErasStakers`, this holds the preferences of validators.a This is keyed first by the era index to allow bulk deletion and then the stash account.� Is it removed after `HISTORY_DEPTH` eras.LErasValidatorReward EraIndex0BalanceOf<T>	 The total validator era payout for the last `HISTORY_DEPTH` eras.! Eras that haven't finished yet or has been removed doesn't have reward.@ErasRewardPoints EraIndextEraRewardPoints<T::AccountId>� Rewards for the last `HISTORY_DEPTH` eras.% If reward hasn't been set or has been removed then 0 reward is returned.8ErasTotalStake EraIndex0BalanceOf<T>@� The total amount staked for the last `HISTORY_DEPTH` eras. If total hasn't been set or has been removed then 0 stake is returned. ForceEraForcingT Mode of era forcing.LSlashRewardFractionPerbill� The percentage of the slash that is distributed to reporters.� The rest of the slashed value is handled by the `Slash`.LCanceledSlashPayout0BalanceOf<T>@ The amount of currency given to reporters of a slash event which was� canceled by extraordinary circumstances (e.g. governance).@UnappliedSlashes EraIndex�Vec<UnappliedSlash<T::AccountId, BalanceOf<T>>>� All unapplied slashes that are queued for later.(BondedErastVec<(EraIndex, SessionIndex)>% A mapping from still-bonded eras to the first session index of that era.� Must contains information for eras for the range:� `[active_era - bounding_duration; active_era]`LValidatorSlashInEra EraIndex0T::AccountId\(Perbill, BalanceOf<T>)E All slashing events on validators, mapped by era to the highest slash proportionp and slash value of the era.LNominatorSlashInEra EraIndex0T::AccountId0BalanceOf<T>a All slashing events on nominators, mapped by era to the highest slash value of the era.4SlashingSpans0T::AccountId\slashing::SlashingSpans� Slashing spans for stash accounts.$SpanSlash�(T::AccountId, slashing::SpanIndex)�slashing::SpanRecord<BalanceOf<T>>�= Records information about the maximum slash of a stash within a slashing span,� as well as how much reward has been paid out.XEarliestUnappliedSlash EraIndex� The earliest era for which we have a pending, unapplied slash.TCurrentPlannedSession0SessionIndex� The last planned session scheduled by the session pallet.1 This is basically in sync with the call to [`SessionManager::new_session`].8StorageVersion Releases� True if network has been upgraded to this version.| Storage version of the pallet.� This is set to v6.0.0 for new networks.\bond(controller�<T::Lookup as StaticLookup>::SourcevalueTCompact<BalanceOf<T>>payee|RewardDestination<T::AccountId>Xe Take the origin account as a stash and lock up `value` of its balance. `controller` will� be the account that controls it.1 `value` must be more than the `minimum_balance` specified by `T::Currency`.% The dispatch origin for this call must be _Signed_ by the stash account.@ Emits `Bonded`., # <weight>� - Independent of the arguments. Moderate complexity.  - O(1).h - Three extra DB entries.Q NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleanedA unless the `origin` falls below _existential deposit_ and gets removed as dust.L ------------------4 Weight: O(1), DB Weight:1 - Read: Bonded, Ledger, [Origin Account], Current Era, History Depth, Locks� - Write: Bonded, Payee, [Origin Account], Locks, Ledger0 # </weight>(bond_extra8max_additionalTCompact<BalanceOf<T>>Te Add some extra amount that have appeared in the stash `free_balance` into the balance up4 for staking.Q Use this if there are additional funds in your stash account that you wish to bond.e Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amountL that can be added.a The dispatch origin for this call must be _Signed_ by the stash, not the controller and� it can be only called when [`EraElectionStatus`] is `Closed`.@ Emits `Bonded`., # <weight>� - Independent of the arguments. Insignificant complexity.  - O(1).@ - One DB entry.4 ------------, DB Weight: - Read: Era Election Status, Bonded, Ledger, [Origin Account], Locks� - Write: [Origin Account], Locks, Ledger0 # </weight>unbondvalueTCompact<BalanceOf<T>>�U Schedule a portion of the stash to be unlocked ready for transfer out after the bond period ends. If this leaves an amount actively bonded less than% T::Currency::minimum_balance(), then it is increased to the full amount.I Once the unlock period is done, you can call `withdraw_unbonded` to actually move� the funds out of management ready for transfer.= No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)= can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need� to be called first to remove some of the chunks (if possible).U The dispatch origin for this call must be _Signed_ by the controller, not the stash.
 And, it can be only called when [`EraElectionStatus`] is `Closed`.H Emits `Unbonded`.� See also [`Call::withdraw_unbonded`]., # <weight>A - Independent of the arguments. Limited but potentially exploitable complexity.� - Contains a limited number of reads.e - Each call (requires the remainder of the bonded balance to be above `minimum_balance`)q   will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage.Q   The only way to clean the aforementioned storage item is also user-controlled via\   `withdraw_unbonded`.@ - One DB entry., ----------4 Weight: O(1), DB Weight: - Read: EraElectionStatus, Ledger, CurrentEra, Locks, BalanceOf Stash,� - Write: Locks, Ledger, BalanceOf Stash,( </weight>Dwithdraw_unbondedHnum_slashing_spansu32|- Remove any unlocked chunks from the `unlocking` queue from our management.5 This essentially frees up that balance to be used by the stash account to doL whatever it wants.U The dispatch origin for this call must be _Signed_ by the controller, not the stash.
 And, it can be only called when [`EraElectionStatus`] is `Closed`.L Emits `Withdrawn`.l See also [`Call::unbond`]., # <weight>U - Could be dependent on the `origin` argument and how much `unlocking` chunks exist.E  It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is�  indirectly user-controlled. See [`unbond`] for more detail.y - Contains a limited number of reads, yet the size of which could be large based on `ledger`.� - Writes are limited to the `origin` account key.@ ---------------	 Complexity O(S) where S is the number of slashing spans to remove  Update:% - Reads: EraElectionStatus, Ledger, Current Era, Locks, [Origin Account]� - Writes: [Origin Account], Locks, Ledger Kill:E - Reads: EraElectionStatus, Ledger, Current Era, Bonded, Slashing Spans, [Origin�   Account], Locks, BalanceOf stashQ - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,�   [Origin Account], Locks, BalanceOf stash.t - Writes Each: SpanSlash * S
 NOTE: Weight annotation is the kill scenario, we refund otherwise.0 # </weight> validateprefs8ValidatorPrefsD� Declare the desire to validate for the origin controller.� Effects will be felt at the beginning of the next era.U The dispatch origin for this call must be _Signed_ by the controller, not the stash.
 And, it can be only called when [`EraElectionStatus`] is `Closed`., # <weight>� - Independent of the arguments. Insignificant complexity.� - Contains a limited number of reads.� - Writes are limited to the `origin` account key.0 -----------4 Weight: O(1), DB Weight:� - Read: Era Election Status, Ledger� - Write: Nominators, Validators0 # </weight> nominatetargets�Vec<<T::Lookup as StaticLookup>::Source>L Declare the desire to nominate `targets` for the origin controller.Q Effects will be felt at the beginning of the next era. This can only be called when� [`EraElectionStatus`] is `Closed`.U The dispatch origin for this call must be _Signed_ by the controller, not the stash.
 And, it can be only called when [`EraElectionStatus`] is `Closed`., # <weight>1 - The transaction's complexity is proportional to the size of `targets` (N) which is capped at CompactAssignments::LIMIT (MAX_NOMINATIONS).� - Both the reads and writes follow a similar pattern.( ---------4 Weight: O(N)� where N is the number of targets, DB Weight:� - Reads: Era Election Status, Ledger, Current Era� - Writes: Validators, Nominators0 # </weight>chillD� Declare no desire to either validate or nominate.� Effects will be felt at the beginning of the next era.U The dispatch origin for this call must be _Signed_ by the controller, not the stash.
 And, it can be only called when [`EraElectionStatus`] is `Closed`., # <weight>� - Independent of the arguments. Insignificant complexity.T - Contains one read.� - Writes are limited to the `origin` account key.$ --------4 Weight: O(1), DB Weight:� - Read: EraElectionStatus, Ledger� - Write: Validators, Nominators0 # </weight>$set_payeepayee|RewardDestination<T::AccountId>@� (Re-)set the payment target for a controller.� Effects will be felt at the beginning of the next era.U The dispatch origin for this call must be _Signed_ by the controller, not the stash., # <weight>� - Independent of the arguments. Insignificant complexity.� - Contains a limited number of reads.� - Writes are limited to the `origin` account key.( ---------< - Weight: O(1)4 - DB Weight:L     - Read: LedgerL     - Write: Payee0 # </weight>8set_controller(controller�<T::Lookup as StaticLookup>::Source@� (Re-)set the controller of a stash.� Effects will be felt at the beginning of the next era.U The dispatch origin for this call must be _Signed_ by the stash, not the controller., # <weight>� - Independent of the arguments. Insignificant complexity.� - Contains a limited number of reads.� - Writes are limited to the `origin` account key., ----------4 Weight: O(1), DB Weight:� - Read: Bonded, Ledger New Controller, Ledger Old Controller� - Write: Bonded, Ledger New Controller, Ledger Old Controller0 # </weight>Lset_validator_countnew0Compact<u32> � Sets the ideal number of validators.� The dispatch origin must be Root., # <weight>4 Weight: O(1)\ Write: Validator Count0 # </weight>`increase_validator_count(additional0Compact<u32>� Increments the ideal number of validators.� The dispatch origin must be Root., # <weight>� Same as [`set_validator_count`].0 # </weight>Tscale_validator_countfactorPercent� Scale up the ideal number of validators by a factor.� The dispatch origin must be Root., # <weight>� Same as [`set_validator_count`].0 # </weight>4force_no_eras$� Force there to be no new eras indefinitely.� The dispatch origin must be Root., # <weight>@ - No arguments.< - Weight: O(1)H - Write: ForceEra0 # </weight>4force_new_era(M Force there to be a new era at the end of the next session. After this, it will be� reset to normal (non-forced) behaviour.� The dispatch origin must be Root., # <weight>@ - No arguments.< - Weight: O(1)D - Write ForceEra0 # </weight>Dset_invulnerables4invulnerablesDVec<T::AccountId> � Set the validators who cannot be slashed (if any).� The dispatch origin must be Root., # <weight> - O(V)\ - Write: Invulnerables0 # </weight>4force_unstakestash0T::AccountIdHnum_slashing_spansu32(
 Force a current staker to become completely unstaked, immediately.� The dispatch origin must be Root., # <weight>� O(S) where S is the number of slashing spans to be removed� Reads: Bonded, Slashing Spans, Account, Locks� Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Account, Locksl Writes Each: SpanSlash * S0 # </weight>Pforce_new_era_always  Force there to be a new era at the end of sessions indefinitely.� The dispatch origin must be Root., # <weight>< - Weight: O(1)H - Write: ForceEra0 # </weight>Tcancel_deferred_slashera EraIndex4slash_indices Vec<u32>4� Cancel enactment of a deferred slash.� Can be called by the `T::SlashCancelOrigin`. Parameters: era and indices of the slashes for that era to kill., # <weight>T Complexity: O(U + S)� with U unapplied slashes weighted with U=1000� and S is the number of slash indices to be canceled.h - Read: Unapplied Slashesl - Write: Unapplied Slashes0 # </weight>8payout_stakers<validator_stash0T::AccountIdera EraIndexp Pay out all the stakers behind a single validator for a single era.M - `validator_stash` is the stash account of the validator. Their nominators, up to)   `T::MaxNominatorRewardedPerValidator`, will also receive their rewards.5 - `era` may be any era between `[current_era - history_depth; current_era]`.Y The origin of this call must be _Signed_. Any account can call this function, even ifx it is not one of the stakers. This can only be called when [`EraElectionStatus`] is `Closed`., # <weight> - Time complexity: at most O(MaxNominatorRewardedPerValidator).� - Contains a limited number of reads and writes.0 ----------- N is the Number of payouts for the validator (including the validator)  Weight:� - Reward Destination Staked: O(N)� - Reward Destination Controller (Creating): O(N), DB Weight:) - Read: EraElectionStatus, CurrentEra, HistoryDepth, ErasValidatorReward,-         ErasStakersClipped, ErasRewardPoints, ErasValidatorPrefs (8 items) - Read Each: Bonded, Ledger, Payee, Locks, System Account (5 items)� - Write Each: System Account, Locks, Ledger (3 items)Q   NOTE: weights are assuming that payouts are made to alive stash account (Staked).Y   Paying even a dead controller is cheaper weight-wise. We don't do any refunds here.0 # </weight>rebondvalueTCompact<BalanceOf<T>>8� Rebond a portion of the stash scheduled to be unlocked.U The dispatch origin must be signed by the controller, and it can be only called when� [`EraElectionStatus`] is `Closed`., # <weight>� - Time complexity: O(L), where L is unlocking chunks� - Bounded by `MAX_UNLOCKING_CHUNKS`.� - Storage changes: Can't increase storage, only decrease it.@ ---------------4 - DB Weight:     - Reads: EraElectionStatus, Ledger, Locks, [Origin Account]�     - Writes: [Origin Account], Locks, Ledger0 # </weight>Dset_history_depthDnew_history_depthDCompact<EraIndex>H_era_items_deleted0Compact<u32>T1 Set `HistoryDepth` value. This function will delete any history information� when `HistoryDepth` is reduced.0 Parameters: - `new_history_depth`: The new history depth you would like to set.I - `era_items_deleted`: The number of items that will be deleted by this dispatch.E    This should report all the storage items that will be deleted by clearing oldE    era history. Needed to report an accurate weight for the dispatch. Trusted by�    `Root` to report an accurate number.T Origin must be root., # <weight>� - E: Number of history depths removed, i.e. 10 -> 7 = 3< - Weight: O(E)4 - DB Weight:�     - Reads: Current Era, History Depthp     - Writes: History Depth1     - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs�     - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, ErasStartSessionIndex0 # </weight>(reap_stashstash0T::AccountIdHnum_slashing_spansu32<a Remove all data structure concerning a staker/stash once its balance is at the minimum.a This is essentially equivalent to `withdraw_unbonded` except it can be called by anyone� and the target `stash` must have no funds left beyond the ED.� This can be called from any origin. - `stash`: The stash account to reap. Its balance must be zero., # <weight>% Complexity: O(S) where S is the number of slashing spans on the account., DB Weight:� - Reads: Stash Account, Bonded, Slashing Spans, Locks� - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Stash Account, Lockst - Writes Each: SpanSlash * S0 # </weight>kickwho�Vec<<T::Lookup as StaticLookup>::Source>4� Remove the given nominations from the calling validator.� Effects will be felt at the beginning of the next era.U The dispatch origin for this call must be _Signed_ by the controller, not the stash.I And, it can be only called when [`EraElectionStatus`] is `Closed`. The controller� account should represent a validator.Q - `who`: A list of nominator stash accounts who are nominating this validator which�   should no longer be nominating this validator.Y Note: Making this call only makes sense if you first set the validator preferences to| block any further nominations.$$EraPayout EraIndexBalanceBalanceY The era payout has been set; the first balance is the validator-payout; the second is� the remainder from the maximum amount of reward.� \[era_index, validator_payout, remainder\]Reward$AccountIdBalance� The staker has been rewarded by this amount. \[stash, amount\]Slash$AccountIdBalance% One validator (and its nominators) has been slashed by the given amount.X \[validator, amount\]hOldSlashingReportDiscarded0SessionIndex An old slashing report from a prior era was discarded because it could� not be processed. \[session_index\]<StakingElection� A new set of stakers was elected.Bonded$AccountIdBalance� An account has bonded this amount. \[stash, amount\]Q NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,% it will not be emitted for staking rewards when they are added to stake. Unbonded$AccountIdBalance� An account has unbonded this amount. \[stash, amount\]$Withdrawn$AccountIdBalance] An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`� from the unlocking queue. \[stash, amount\]Kicked$AccountId$AccountId
 A nominator has been kicked from a validator. \[nominator, stash\]8SessionsPerEra0SessionIndexp Number of sessions per era.<BondingDuration EraIndex� Number of eras that staked funds must remain bonded for.HSlashDeferDuration EraIndex Number of eras that slashes are deferred by, after computation.� This should be less than the bonding duration.- Set to 0 if slashes should be applied immediately, without opportunity for8 intervention.�MaxNominatorRewardedPerValidatoru32� The maximum number of nominators rewarded for each validator.i For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can claim! their reward. This used to limit the i/o cost for the nominator payout.8MaxNominationsu32� Maximum number of nominations per nominator.P4NotControllerh Not a controller account. NotStashT Not a stash account.4AlreadyBondedd Stash is already bonded.4AlreadyPairedx Controller is already paired.0EmptyTargetsd Targets cannot be empty.8DuplicateIndexD Duplicate index.DInvalidSlashIndex� Slash record index out of bounds.DInsufficientValue� Can not bond with value less than minimum balance.0NoMoreChunks� Can not schedule more unlock chunks.4NoUnlockChunk� Can not rebond without unlocking chunks.0FundedTarget� Attempting to target a stash that still has funds.HInvalidEraToReward\ Invalid era to reward.hInvalidNumberOfNominations| Invalid number of nominations.HNotSortedAndUnique� Items are not sorted and unique.8AlreadyClaimed
 Rewards for this era have already been claimed for this validator.TIncorrectHistoryDepth� Incorrect previous history depth input provided.XIncorrectSlashingSpans� Incorrect number of slashing spans provided. BadState= Internal state has become somehow corrupted and the operation cannot continue.8TooManyTargets� Too many nomination targets supplied.$BadTargetA A nomination target was supplied that was blocked or otherwise not a validator. Offences OffencesReports4ReportIdOf<T>�OffenceDetails<T::AccountId, T::IdentificationTuple>I The primary structure that holds all offence records keyed by report identifiers.@DeferredOffencesdVec<DeferredOffenceOf<T>>e Deferred reports that have been rejected by the offence handler and need to be submittedD at a later time.XConcurrentReportsIndexKind8OpaqueTimeSlotHVec<ReportIdOf<T>>) A vector of reports of the same kind that happened at the same time slot.HReportsByKindIndexKindVec<u8> Enumerates all reports of a kind along with the time they happened.� All reports are sorted by the time of offence.I Note that the actual type of this mapping is `Vec<u8>`, this is because values ofi different types are not supported at the moment so we are doing the manual serialization.OffenceKind8OpaqueTimeSlotboolU There is an offence reported of the given `kind` happened at the `session_index` andM (kind-specific) time slot. This event is not deposited for duplicate slashes. last element indicates of the offence was applied (true) or queued (false)t \[kind, timeslot, applied\].(Historical!SessionSession(ValidatorsLVec<T::ValidatorId>| The current set of validators.0CurrentIndex0SessionIndexx Current index of the session.4QueuedChangedbool9 True if the underlying economic identities or weighting behind the validators� has changed in the queued validator set.(QueuedKeysxVec<(T::ValidatorId, T::Keys)>= The queued keys for the next session. When the next session begins, these keys� will be used to determine the validator's session keys.HDisabledValidators Vec<u32>� Indices of disabled validators.5 The set is cleared when `on_session_ending` returns a new set of identities. NextKeys8T::ValidatorIdT::Keys� The next session keys for a validator. KeyOwnerP(KeyTypeId, Vec<u8>)8T::ValidatorId	 The owner of a key. The key is the `KeyTypeId` + the encoded key. set_keyskeysT::KeysproofVec<u8>8� Sets the session key(s) of the function caller to `keys`.! Allows an account to set its session key prior to becoming a validator.� This doesn't take effect until the next session.� The dispatch origin of this function must be signed., # <weight>T - Complexity: `O(1)`Y   Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.� - DbReads: `origin account`, `T::ValidatorIdOf`, `NextKeys`� - DbWrites: `origin account`, `NextKeys`� - DbReads per key id: `KeyOwner`� - DbWrites per key id: `KeyOwner`0 # </weight>(purge_keys0� Removes any session key(s) of the function caller.� This doesn't take effect until the next session.� The dispatch origin of this function must be signed., # <weight>� - Complexity: `O(1)` in number of key types.Y   Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.� - DbReads: `T::ValidatorIdOf`, `NextKeys`, `origin account`� - DbWrites: `NextKeys`, `origin account`� - DbWrites per key id: `KeyOwnder`0 # </weight>(NewSession0SessionIndexe New session has happened. Note that the argument is the \[session_index\], not the block� number as the type might suggest.0InvalidProofd Invalid ownership proof.\NoAssociatedValidatorId� No associated validator ID for account.4DuplicatedKeyh Registered duplicate key.NoKeys� No keys are associated with this account.$NoAccount Key setting account is not live, so it's impossible to associate keys.	Grandpa<GrandpaFinalityStatelStoredState<T::BlockNumber>� State of the current authority set.4PendingChange�StoredPendingChange<T::BlockNumber>� Pending change: (signaled at, scheduled change).(NextForced8T::BlockNumber� next block number where we can force a change.Stalled�(T::BlockNumber, T::BlockNumber)� `true` if we are currently stalled.0CurrentSetIdSetId ] The number of changes (both in terms of keys and underlying economic responsibilities)� in the "set" of Grandpa validators from genesis.0SetIdSessionSetId0SessionIndexY A mapping from grandpa set ID to the index of the *most recent* session for which itsh members were responsible.� TWOX-NOTE: `SetId` is not under user control.Lreport_equivocationHequivocation_proof�EquivocationProof<T::Hash, T::BlockNumber><key_owner_proof@T::KeyOwnerProof
 Report voter equivocation/misbehavior. This method will verify the� equivocation proof and validate the given key ownership proof� against the extracted offender. If both are valid, the offenceH will be reported.preport_equivocation_unsignedHequivocation_proof�EquivocationProof<T::Hash, T::BlockNumber><key_owner_proof@T::KeyOwnerProof$
 Report voter equivocation/misbehavior. This method will verify the� equivocation proof and validate the given key ownership proof� against the extracted offender. If both are valid, the offenceH will be reported. This extrinsic must be called unsigned and it is expected that only block authors will call it (validated in `ValidateUnsigned`), as such if the block author is defined it will be defined as the equivocation( reporter.0note_stalleddelay8T::BlockNumberlbest_finalized_block_number8T::BlockNumber Note that the current authority set of the GRANDPA finality gadget has) stalled. This will trigger a forced authority set change at the beginning! of the next session, to be enacted `delay` blocks after that. The delay should be high enough to safely assume that the block signalling the) forced change will not be re-orged (e.g. 1000 blocks). The GRANDPA voters) will start the new authority set using the given finalized block as base.\ Only callable by root.8NewAuthorities4AuthorityList� New authority set has been applied. \[authority_set\]Paused� Current authority set has been paused.Resumed� Current authority set has been resumed.,PauseFailed	 Attempt to signal GRANDPA pause when the authority set isn't live� (either paused or already pending pause).0ResumeFailed Attempt to signal GRANDPA resume when the authority set isn't paused� (either live or already pending resume).4ChangePending� Attempt to signal GRANDPA change with one already pending.TooSoon� Cannot signal forced change so soon after last.`InvalidKeyOwnershipProof5 A key ownership proof provided as part of an equivocation report is invalid.`InvalidEquivocationProof5 An equivocation proof provided as part of an equivocation report is invalid.XDuplicateOffenceReport A given equivocation report is valid but already previously reported. ImOnline ImOnline8HeartbeatAfter8T::BlockNumber, The block number after which it's ok to send heartbeats in the current$ session.% At the beginning of each session we set this to a value that should fall5 roughly in the middle of the session duration. The idea is to first wait for the validators to produce a block in the current session, so that the� heartbeat later on will not be necessary.9 This value will only be used as a fallback if we fail to get a proper session- progress estimate from `NextSessionRotation`, as those estimates should be more accurate then the value we calculate for `HeartbeatAfter`.KeysLVec<T::AuthorityId>� The current set of keys that may issue a heartbeat.HReceivedHeartbeats0SessionIndex$AuthIndexVec<u8>� For each session index, we keep a mapping of `AuthIndex` to� `offchain::OpaqueNetworkState`.8AuthoredBlocks0SessionIndex8ValidatorId<T>u32 For each session index, we keep a mapping of `ValidatorId<T>` to the� number of blocks authored by the given authority.$heartbeat$heartbeatdHeartbeat<T::BlockNumber>(_signature�<T::AuthorityId as RuntimeAppPublic>::Signature$, # <weight>A - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len)   and E is length of `heartbeat.network_state.external_address`�   - `O(K)`: decoding of length `K`�   - `O(E)`: decoding/encoding of length `E`= - DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,\   `ReceivedHeartbeats`� - DbWrites: `ReceivedHeartbeats`0 # </weight>DHeartbeatReceived,AuthorityId A new heartbeat was received from `AuthorityId` \[authority_id\]AllGood� At the end of the session, no offence was committed.,SomeOffline`Vec<IdentificationTuple>= At the end of the session, at least one validator was found to be \[offline\].(InvalidKeyd Non existent public key.LDuplicatedHeartbeatX Duplicated heartbeat.HAuthorityDiscovery
$Democracy$Democracy8<PublicPropCount$PropIndex� The number of (public) proposals that have been made so far.,PublicProps�Vec<(PropIndex, T::Hash, T::AccountId)>! The public proposals. Unsorted. The second item is the proposal's hash.$DepositOf$PropIndex�(Vec<T::AccountId>, BalanceOf<T>)� Those who have locked a deposit.� TWOX-NOTE: Safe, as increasing integer keys are safe.$PreimagesT::Hash�PreimageStatus<T::AccountId, BalanceOf<T>, T::BlockNumber>a Map of hashes to the proposal preimage, along with who registered it and their deposit.� The block number is the block at which it was deposited.<ReferendumCount<ReferendumIndex1 The next free referendum index, aka the number of referenda started so far.4LowestUnbaked<ReferendumIndex% The lowest referendum index representing an unbaked referendum. Equal to� `ReferendumCount` if there isn't a unbaked referendum.@ReferendumInfoOf<ReferendumIndex�ReferendumInfo<T::BlockNumber, T::Hash, BalanceOf<T>>� Information concerning any given referendum.	 TWOX-NOTE: SAFE as indexes are not under an attacker’s control. VotingOf0T::AccountId�Voting<BalanceOf<T>, T::AccountId, T::BlockNumber>�] All votes for a particular voter. We store the balance for the number of votes that we] have recorded. The second item is the total amount of delegations, that will be added.� TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway.Locks0T::AccountId8T::BlockNumber] Accounts for which there are locks in action which may be removed at some point in theQ future. The value is the block number at which the lock expires and may be removed.� TWOX-NOTE: OK ― `AccountId` is a secure hash.TLastTabledWasExternalboolY True if the last referendum tabled was submitted externally. False if it was a public( proposal.0NextExternal`(T::Hash, VoteThreshold)Y The referendum to be tabled whenever it would be valid to table an external proposal.U This happens when a referendum needs to be tabled and one of two conditions are met:� - `LastTabledWasExternal` is `false`; orh - `PublicProps` is empty.$BlacklistT::Hash�(T::BlockNumber, Vec<T::AccountId>)Q A record of who vetoed what. Maps proposal hash to a possible existent block number� (until when it may not be resubmitted) and who vetoed it.4CancellationsT::Hashbool) Record of all proposals that have been subject to emergency cancellation.8StorageVersion Releases| Storage version of the pallet.� New networks start with last version.dpropose4proposal_hashT::HashvalueTCompact<BalanceOf<T>>,� Propose a sensitive action to be taken. The dispatch origin of this call must be _Signed_ and the sender must� have funds to cover the deposit.� - `proposal_hash`: The hash of the proposal preimage. - `value`: The amount of deposit (must be at least `MinimumDeposit`).H Emits `Proposed`.< Weight: `O(p)`second proposalHCompact<PropIndex>Lseconds_upper_bound0Compact<u32>(� Signals agreement with a particular proposal. The dispatch origin of this call must be _Signed_ and the sender must have funds to cover the deposit, equal to the original deposit.� - `proposal`: The index of the proposal to second.E - `seconds_upper_bound`: an upper bound on the current number of seconds on this)   proposal. Extrinsic is weighted according to this value with no refund.! Weight: `O(S)` where S is the number of seconds a proposal already has.vote$ref_index`Compact<ReferendumIndex>votedAccountVote<BalanceOf<T>>$5 Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;� otherwise it is a vote to keep the status quo.� The dispatch origin of this call must be _Signed_.� - `ref_index`: The index of the referendum to vote for.� - `vote`: The vote configuration.1 Weight: `O(R)` where R is the number of referendums the voter has voted on.@emergency_cancel$ref_index<ReferendumIndex Q Schedule an emergency cancellation of a referendum. Cannot happen twice to the same0 referendum.� The dispatch origin of this call must be `CancellationOrigin`.� -`ref_index`: The index of the referendum to cancel.@ Weight: `O(1)`.@external_propose4proposal_hashT::Hash$1 Schedule a referendum to be tabled once it is legal to schedule an external0 referendum.� The dispatch origin of this call must be `ExternalOrigin`.� - `proposal_hash`: The preimage hash of the proposal. Weight: `O(V)` with V number of vetoers in the blacklist of proposal.�   Decoding vec of length V. Charged as maximumdexternal_propose_majority4proposal_hashT::Hash,Y Schedule a majority-carries referendum to be tabled next once it is legal to schedule` an external referendum.� The dispatch of this call must be `ExternalMajorityOrigin`.� - `proposal_hash`: The preimage hash of the proposal.M Unlike `external_propose`, blacklisting has no effect on this and it may replace a� pre-scheduled `external_propose` call.< Weight: `O(1)``external_propose_default4proposal_hashT::Hash,I Schedule a negative-turnout-bias referendum to be tabled next once it is legal to� schedule an external referendum.� The dispatch of this call must be `ExternalDefaultOrigin`.� - `proposal_hash`: The preimage hash of the proposal.M Unlike `external_propose`, blacklisting has no effect on this and it may replace a� pre-scheduled `external_propose` call.< Weight: `O(1)`(fast_track4proposal_hashT::Hash4voting_period8T::BlockNumberdelay8T::BlockNumber<Q Schedule the currently externally-proposed majority-carries referendum to be tablede immediately. If there is no externally-proposed referendum currently, or if there is one� but it is not a majority-carries referendum then it fails.� The dispatch of this call must be `FastTrackOrigin`.� - `proposal_hash`: The hash of the current external proposal.a - `voting_period`: The period that is allowed for voting on this proposal. Increased to�   `FastTrackVotingPeriod` if too low.U - `delay`: The number of block after voting has ended in approval and this should be�   enacted. This doesn't have a minimum amount.D Emits `Started`.< Weight: `O(1)`4veto_external4proposal_hashT::Hash$� Veto and blacklist the external proposal hash.� The dispatch origin of this call must be `VetoOrigin`.1 - `proposal_hash`: The preimage hash of the proposal to veto and blacklist.@ Emits `Vetoed`. Weight: `O(V + log(V))` where V is number of `existing vetoers`Dcancel_referendum$ref_index`Compact<ReferendumIndex>T Remove a referendum.� The dispatch origin of this call must be _Root_.� - `ref_index`: The index of the referendum to cancel.H # Weight: `O(1)`.4cancel_queuedwhich<ReferendumIndex� Cancel a proposal queued for enactment.� The dispatch origin of this call must be _Root_.� - `which`: The index of the referendum to cancel.M Weight: `O(D)` where `D` is the items in the dispatch queue. Weighted as `D = 10`. delegateto0T::AccountId(conviction(Convictionbalance0BalanceOf<T>P= Delegate the voting power (with some given conviction) of the sending account.Y The balance delegated is locked for as long as it's delegated, and thereafter for the� time appropriate for the conviction's lock period.a The dispatch origin of this call must be _Signed_, and the signing account must either:x   - be delegating already; or]   - have no voting activity (if there is, then it will need to be removed/consolidated�     through `reap_vote` or `unvote`).I - `to`: The account whose voting the `target` account's voting power will follow.Y - `conviction`: The conviction that will be attached to the delegated votes. When theE   account is undelegated, the funds will be locked for the corresponding period.U - `balance`: The amount of the account's balance to be used in delegating. This must�   not be more than the account's current balance.L Emits `Delegated`.A Weight: `O(R)` where R is the number of referendums the voter delegating to has�   voted on. Weight is charged as if maximum votes.(undelegate0� Undelegate the voting power of the sending account.a Tokens may be unlocked following once an amount of time consistent with the lock period� of the conviction with which the delegation was issued.I The dispatch origin of this call must be _Signed_ and the signing account must beX currently delegating.T Emits `Undelegated`.A Weight: `O(R)` where R is the number of referendums the voter delegating to has�   voted on. Weight is charged as if maximum votes.Xclear_public_proposalst Clears all public proposals.� The dispatch origin of this call must be _Root_.@ Weight: `O(1)`.4note_preimage@encoded_proposalVec<u8>(a Register the preimage for an upcoming proposal. This doesn't require the proposal to be% in the dispatch queue but does require a deposit, returned once enacted.� The dispatch origin of this call must be _Signed_.� - `encoded_proposal`: The preimage of a proposal.\ Emits `PreimageNoted`.Q Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit).dnote_preimage_operational@encoded_proposalVec<u8>
 Same as `note_preimage` but origin is `OperationalPreimageOrigin`.Xnote_imminent_preimage@encoded_proposalVec<u8>0E Register the preimage for an upcoming proposal. This requires the proposal to beA in the dispatch queue. No deposit is needed. When this call is successful, i.e.9 the preimage has not been uploaded before and matches some imminent proposal,@ no fee is paid.� The dispatch origin of this call must be _Signed_.� - `encoded_proposal`: The preimage of a proposal.\ Emits `PreimageNoted`.Q Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit).�note_imminent_preimage_operational@encoded_proposalVec<u8>1 Same as `note_imminent_preimage` but origin is `OperationalPreimageOrigin`.4reap_preimage4proposal_hashT::Hash`proposal_len_upper_bound0Compact<u32><� Remove an expired proposal preimage and collect the deposit.� The dispatch origin of this call must be _Signed_.� - `proposal_hash`: The preimage hash of a proposal.- - `proposal_length_upper_bound`: an upper bound on length of the proposal.   Extrinsic is weighted according to this value with no refund.Q This will only work after `VotingPeriod` blocks from the time that the preimage was] noted, if it's the same account doing it. If it's a different account, then it'll only� work an additional `EnactmentPeriod` later.` Emits `PreimageReaped`.� Weight: `O(D)` where D is length of proposal.unlocktarget0T::AccountId� Unlock tokens that have an expired lock.� The dispatch origin of this call must be _Signed_.� - `target`: The account to remove the lock on.� Weight: `O(R)` with R number of vote of target.,remove_voteindex<ReferendumIndexl� Remove a vote for a referendum. If:� - the referendum was cancelled, or� - the referendum is ongoing, or� - the referendum has ended such that   - the vote of the account was in opposition to the result; or�   - there was no conviction to the account's vote; or�   - the account made a split votea ...then the vote is removed cleanly and a following call to `unlock` may result in more\ funds being available.� If, however, the referendum has ended and:� - it finished corresponding to the vote of the account, and� - the account made a standard vote with conviction, and� - the lock period of the conviction is not over] ...then the lock will be aggregated into the overall account's lock, which may involve] *overlocking* (where the two locks are combined into a single lock that is the maximum� of both the amount locked and the time is it locked for).M The dispatch origin of this call must be _Signed_, and the signer must have a vote� registered for referendum `index`.� - `index`: The index of referendum of the vote to be removed.Y Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.�   Weight is calculated for the maximum number of vote.Dremove_other_votetarget0T::AccountIdindex<ReferendumIndex<� Remove a vote for a referendum.Q If the `target` is equal to the signer, then this function is exactly equivalent to1 `remove_vote`. If not equal to the signer, then the vote must have expired,Y either because the referendum was cancelled, because the voter lost the referendum or� because the conviction period is over.� The dispatch origin of this call must be _Signed_.Q - `target`: The account of the vote to be removed; this account must have voted forX   referendum `index`.� - `index`: The index of referendum of the vote to be removed.Y Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.�   Weight is calculated for the maximum number of vote.8enact_proposal4proposal_hashT::Hashindex<ReferendumIndexQ Enact a proposal from a referendum. For now we just make the weight be the maximum.$blacklist4proposal_hashT::Hash<maybe_ref_index\Option<ReferendumIndex><I Permanently place a proposal into the blacklist. This prevents it from ever being@ proposed again.U If called on a queued public or external proposal, then this will result in it beingU removed. If the `ref_index` supplied is an active referendum with the proposal hash,l then it will be cancelled.� The dispatch origin of this call must be `BlacklistOrigin`.� - `proposal_hash`: The proposal hash to blacklist permanently.I - `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be, cancelled.E Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has aT   reasonable value).<cancel_proposal(prop_indexHCompact<PropIndex>L Remove a proposal. The dispatch origin of this call must be `CancelProposalOrigin`.� - `prop_index`: The index of the proposal to cancel.� Weight: `O(p)` where `p = PublicProps::<T>::decode_len()`H Proposed$PropIndexBalance1 A motion has been proposed by a public account. \[proposal_index, deposit\]Tabled$PropIndexBalance8Vec<AccountId>} A public proposal has been tabled for referendum vote. \[proposal_index, deposit, depositors\]8ExternalTabled� An external proposal has been tabled.Started<ReferendumIndex4VoteThreshold� A referendum has begun. \[ref_index, threshold\]Passed<ReferendumIndex� A proposal has been approved by referendum. \[ref_index\]$NotPassed<ReferendumIndex� A proposal has been rejected by referendum. \[ref_index\]$Cancelled<ReferendumIndex� A referendum has been cancelled. \[ref_index\] Executed<ReferendumIndexbool� A proposal has been enacted. \[ref_index, is_ok\]$Delegated$AccountId$AccountId! An account has delegated their vote to another account. \[who, target\],Undelegated$AccountId� An \[account\] has cancelled a previous delegation operation.Vetoed$AccountIdHash,BlockNumber An external proposal has been vetoed. \[who, proposal_hash, until\]4PreimageNotedHash$AccountIdBalancea A proposal's preimage was noted, and the deposit taken. \[proposal_hash, who, deposit\]0PreimageUsedHash$AccountIdBalance A proposal preimage was removed and used (the deposit was returned).� \[proposal_hash, provider, deposit\]<PreimageInvalidHash<ReferendumIndex
 A proposal could not be executed because its preimage was invalid.t \[proposal_hash, ref_index\]<PreimageMissingHash<ReferendumIndex
 A proposal could not be executed because its preimage was missing.t \[proposal_hash, ref_index\]8PreimageReapedHash$AccountIdBalance$AccountId- A registered preimage was removed and the deposit collected by the reaper.� \[proposal_hash, provider, deposit, reaper\] Unlocked$AccountId� An \[account\] has been unlocked successfully.,BlacklistedHash� A proposal \[hash\] has been blacklisted permanently. <EnactmentPeriod8T::BlockNumber'q The minimum period of locking and the period between a proposal being approved and enacted.1 It should generally be a little more than the unstake period to ensure thati voting stakers have an opportunity to remove themselves from the system in the case where� they are on the losing side of a vote.0LaunchPeriod8T::BlockNumber'� How often (in blocks) new public referenda are launched.0VotingPeriod8T::BlockNumber'� How often (in blocks) to check for new votes.8MinimumDeposit0BalanceOf<T>@���5 The minimum amount to be used as a deposit for a public referendum proposal.TFastTrackVotingPeriod8T::BlockNumber� Minimum voting period allowed for an emergency referendum.4CooloffPeriod8T::BlockNumber��a Period in blocks where an external proposal may not be re-submitted after being vetoed.LPreimageByteDeposit0BalanceOf<T>@��) The amount of balance that must be deposited per byte of preimage stored. MaxVotesu32d� The maximum number of votes for an account.� ValueLow8 Value too low<ProposalMissing` Proposal does not exist BadIndex8 Unknown index<AlreadyCanceled� Cannot cancel the same proposal twiceDDuplicateProposalX Proposal already madeLProposalBlacklistedl Proposal still blacklistedDNotSimpleMajority� Next external proposal not simple majority,InvalidHash4 Invalid hash(NoProposalT No external proposal4AlreadyVetoed� Identity may not veto a proposal twice0NotDelegated8 Not delegatedDDuplicatePreimage\ Preimage already noted,NotImminent4 Not imminent TooEarly( Too early Imminent$ Imminent<PreimageMissingL Preimage not foundDReferendumInvalid� Vote given for invalid referendum<PreimageInvalidD Invalid preimage,NoneWaitingT No proposals waiting$NotLocked� The target account does not have a lock.(NotExpired� The lock on the account to be unlocked has not yet expired. NotVoter� The given account did not vote on the referendum.0NoPermission� The actor has no permission to conduct the action.DAlreadyDelegating� The account is already delegating. Overflow� An unexpected integer overflow occurred.$Underflow� An unexpected integer underflow occurred.DInsufficientFunds Too high a balance was provided that the account cannot afford.4NotDelegating� The account is not currently delegating.(VotesExistY The account currently has votes attached to it and the operation cannot succeed until� these are removed, either through `unvote` or `reap_vote`.DInstantNotAllowed� The instant referendum origin is currently disallowed. Nonsense� Delegation to oneself makes no sense.<WrongUpperBoundT Invalid upper bound.<MaxVotesReached� Maximum number of votes reached.8InvalidWitness� The provided witness data is wrong.@TooManyProposals� Maximum number of proposals reached.CouncilLInstance1Collective$Proposals0Vec<T::Hash>� The hashes of the active proposals.(ProposalOfT::Hashh<T as Config<I>>::Proposal� Actual proposal for a given hash, if it's current.VotingT::Hash�Votes<T::AccountId, T::BlockNumber>� Votes on a given proposal, if it is ongoing.4ProposalCountu32H Proposals so far.MembersDVec<T::AccountId>9 The current members of the collective. This is stored sorted (just by value).Prime0T::AccountIde The prime member that helps determine the default vote behavior in case of absentations.,set_members,new_membersDVec<T::AccountId>primePOption<T::AccountId>$old_count,MemberCount`� Set the collective's membership.I - `new_members`: The new member list. Be nice to the chain and provide it sorted.� - `prime`: The prime member whose vote sets the default.9 - `old_count`: The upper bound for the previous number of members in storage.�                Used for weight estimation.X Requires root origin.U NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but%       the weight estimations rely on it to estimate dispatchable weight., # <weight>( ## WeightT - `O(MP + N)` where:�   - `M` old-members-count (code- and governance-bounded)�   - `N` new-members-count (code- and governance-bounded)�   - `P` proposals-count (code-bounded) - DB:u   - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members�   - 1 storage read (codec `O(P)`) for reading the proposalsI   - `P` storage mutations (codec `O(M)`) for updating the votes for each proposala   - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one0 # </weight>execute proposal|Box<<T as Config<I>>::Proposal>0length_bound0Compact<u32>(� Dispatch a proposal from a member using the `Member` origin.� Origin must be a member of the collective., # <weight>( ## Weight� - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`� - DB: 1 read (codec `O(M)`) + DB access of `proposal`( - 1 event0 # </weight>propose$thresholdPCompact<MemberCount> proposal|Box<<T as Config<I>>::Proposal>0length_bound0Compact<u32>l� Add a new proposal to either be voted on or executed directly.� Requires the sender to be member.E `threshold` determines whether `proposal` is executed directly (`threshold < 2`)X or put up for voting., # <weight>( ## Weight� - `O(B + M + P1)` or `O(B + M + P2)` where:�   - `B` is `proposal` size in bytes (length-fee-bounded)�   - `M` is members-count (code- and governance-bounded)�   - branching is influenced by `threshold` where:�     - `P1` is proposal execution complexity (`threshold < 2`)     - `P2` is proposals-count (code-bounded) (`threshold >= 2`) - DB:�   - 1 storage read `is_member` (codec `O(M)`)�   - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)�   - DB accesses influenced by `threshold`:
     - EITHER storage accesses done by `proposal` (`threshold < 2`)�     - OR proposal insertion (`threshold <= 2`)�       - 1 storage mutation `Proposals` (codec `O(P2)`)�       - 1 storage mutation `ProposalCount` (codec `O(1)`)�       - 1 storage write `ProposalOf` (codec `O(B)`)�       - 1 storage write `Voting` (codec `O(M)`)0   - 1 event0 # </weight>vote proposalT::HashindexXCompact<ProposalIndex>approvebool8� Add an aye or nay vote for the sender to the given proposal.� Requires the sender to be a member.M Transaction fees will be waived if the member is voting on any particular proposali for the first time and the call is successful. Subsequent vote changes will charge a fee., # <weight>( ## Weight
 - `O(M)` where `M` is members-count (code- and governance-bounded) - DB:�   - 1 storage read `Members` (codec `O(M)`)�   - 1 storage mutation `Voting` (codec `O(M)`)( - 1 event0 # </weight>close4proposal_hashT::HashindexXCompact<ProposalIndex>Tproposal_weight_bound<Compact<Weight>0length_bound0Compact<u32>xQ Close a vote that is either approved, disapproved or whose voting period has ended.Y May be called by any signed account in order to finish voting and close the proposal.M If called before the end of the voting period it will only close the vote if it is� has enough votes to be approved or disapproved.M If called after the end of the voting period abstentions are counted as rejections) unless there is a prime member set and the prime member cast an approval.e If the close operation completes successfully with disapproval, the transaction fee willa be waived. Otherwise execution of the approved operation will be charged to the caller.� + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.e + `length_bound`: The upper bound for the length of the proposal in storage. Checked via�                   `storage::read` so it is `size_of::<u32>() == 4` larger than the pure length., # <weight>( ## Weightx - `O(B + M + P1 + P2)` where:�   - `B` is `proposal` size in bytes (length-fee-bounded)�   - `M` is members-count (code- and governance-bounded)�   - `P1` is the complexity of `proposal` preimage.�   - `P2` is proposal-count (code-bounded) - DB:  - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)�  - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)�  - any mutations done while executing `proposal` (`P1`)D - up to 3 events0 # </weight>Ldisapprove_proposal4proposal_hashT::Hash4y Disapprove a proposal, close, and remove it from the system, regardless of its current state.� Must be called by the Root origin.0 Parameters:! * `proposal_hash`: The hash of the proposal that should be disapproved., # <weight>� Complexity: O(P) where P is the number of max proposals, DB Weight:L * Reads: Proposals� * Writes: Voting, Proposals, ProposalOf0 # </weight> Proposed$AccountId4ProposalIndexHash,MemberCountM A motion (given hash) has been proposed (by given account) with a threshold (given@ `MemberCount`).� \[account, proposal_index, proposal_hash, threshold\]Voted$AccountIdHashbool,MemberCount,MemberCount	 A motion (given hash) has been voted on by given account, leaving a tally (yes votes and no votes given respectively as `MemberCount`).� \[account, proposal_hash, voted, yes, no\] ApprovedHash� A motion was approved by the required threshold.H \[proposal_hash\],DisapprovedHash� A motion was not approved by the required threshold.H \[proposal_hash\] ExecutedHash8DispatchResult% A motion was executed; result will be `Ok` if it returned without error.h \[proposal_hash, result\]8MemberExecutedHash8DispatchResultM A single member did some action; result will be `Ok` if it returned without error.h \[proposal_hash, result\]ClosedHash,MemberCount,MemberCountY A proposal was closed because its threshold was reached or after its duration was up.l \[proposal_hash, yes, no\]($NotMember` Account is not a memberDDuplicateProposal� Duplicate proposals not allowed<ProposalMissingP Proposal must exist(WrongIndexD Mismatched index4DuplicateVote\ Duplicate vote ignoredHAlreadyInitialized� Members are already initialized! TooEarly The close call was made too early, before the end of the voting.@TooManyProposals There can only be a maximum of `MaxProposals` active proposals.LWrongProposalWeight� The given weight bound for the proposal was too low.LWrongProposalLength� The given length bound for the proposal was too low.HTechnicalCommitteeLInstance2Collective$Proposals0Vec<T::Hash>� The hashes of the active proposals.(ProposalOfT::Hashh<T as Config<I>>::Proposal� Actual proposal for a given hash, if it's current.VotingT::Hash�Votes<T::AccountId, T::BlockNumber>� Votes on a given proposal, if it is ongoing.4ProposalCountu32H Proposals so far.MembersDVec<T::AccountId>9 The current members of the collective. This is stored sorted (just by value).Prime0T::AccountIde The prime member that helps determine the default vote behavior in case of absentations.,set_members,new_membersDVec<T::AccountId>primePOption<T::AccountId>$old_count,MemberCount`� Set the collective's membership.I - `new_members`: The new member list. Be nice to the chain and provide it sorted.� - `prime`: The prime member whose vote sets the default.9 - `old_count`: The upper bound for the previous number of members in storage.�                Used for weight estimation.X Requires root origin.U NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but%       the weight estimations rely on it to estimate dispatchable weight., # <weight>( ## WeightT - `O(MP + N)` where:�   - `M` old-members-count (code- and governance-bounded)�   - `N` new-members-count (code- and governance-bounded)�   - `P` proposals-count (code-bounded) - DB:u   - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members�   - 1 storage read (codec `O(P)`) for reading the proposalsI   - `P` storage mutations (codec `O(M)`) for updating the votes for each proposala   - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one0 # </weight>execute proposal|Box<<T as Config<I>>::Proposal>0length_bound0Compact<u32>(� Dispatch a proposal from a member using the `Member` origin.� Origin must be a member of the collective., # <weight>( ## Weight� - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`� - DB: 1 read (codec `O(M)`) + DB access of `proposal`( - 1 event0 # </weight>propose$thresholdPCompact<MemberCount> proposal|Box<<T as Config<I>>::Proposal>0length_bound0Compact<u32>l� Add a new proposal to either be voted on or executed directly.� Requires the sender to be member.E `threshold` determines whether `proposal` is executed directly (`threshold < 2`)X or put up for voting., # <weight>( ## Weight� - `O(B + M + P1)` or `O(B + M + P2)` where:�   - `B` is `proposal` size in bytes (length-fee-bounded)�   - `M` is members-count (code- and governance-bounded)�   - branching is influenced by `threshold` where:�     - `P1` is proposal execution complexity (`threshold < 2`)     - `P2` is proposals-count (code-bounded) (`threshold >= 2`) - DB:�   - 1 storage read `is_member` (codec `O(M)`)�   - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)�   - DB accesses influenced by `threshold`:
     - EITHER storage accesses done by `proposal` (`threshold < 2`)�     - OR proposal insertion (`threshold <= 2`)�       - 1 storage mutation `Proposals` (codec `O(P2)`)�       - 1 storage mutation `ProposalCount` (codec `O(1)`)�       - 1 storage write `ProposalOf` (codec `O(B)`)�       - 1 storage write `Voting` (codec `O(M)`)0   - 1 event0 # </weight>vote proposalT::HashindexXCompact<ProposalIndex>approvebool8� Add an aye or nay vote for the sender to the given proposal.� Requires the sender to be a member.M Transaction fees will be waived if the member is voting on any particular proposali for the first time and the call is successful. Subsequent vote changes will charge a fee., # <weight>( ## Weight
 - `O(M)` where `M` is members-count (code- and governance-bounded) - DB:�   - 1 storage read `Members` (codec `O(M)`)�   - 1 storage mutation `Voting` (codec `O(M)`)( - 1 event0 # </weight>close4proposal_hashT::HashindexXCompact<ProposalIndex>Tproposal_weight_bound<Compact<Weight>0length_bound0Compact<u32>xQ Close a vote that is either approved, disapproved or whose voting period has ended.Y May be called by any signed account in order to finish voting and close the proposal.M If called before the end of the voting period it will only close the vote if it is� has enough votes to be approved or disapproved.M If called after the end of the voting period abstentions are counted as rejections) unless there is a prime member set and the prime member cast an approval.e If the close operation completes successfully with disapproval, the transaction fee willa be waived. Otherwise execution of the approved operation will be charged to the caller.� + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.e + `length_bound`: The upper bound for the length of the proposal in storage. Checked via�                   `storage::read` so it is `size_of::<u32>() == 4` larger than the pure length., # <weight>( ## Weightx - `O(B + M + P1 + P2)` where:�   - `B` is `proposal` size in bytes (length-fee-bounded)�   - `M` is members-count (code- and governance-bounded)�   - `P1` is the complexity of `proposal` preimage.�   - `P2` is proposal-count (code-bounded) - DB:  - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)�  - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)�  - any mutations done while executing `proposal` (`P1`)D - up to 3 events0 # </weight>Ldisapprove_proposal4proposal_hashT::Hash4y Disapprove a proposal, close, and remove it from the system, regardless of its current state.� Must be called by the Root origin.0 Parameters:! * `proposal_hash`: The hash of the proposal that should be disapproved., # <weight>� Complexity: O(P) where P is the number of max proposals, DB Weight:L * Reads: Proposals� * Writes: Voting, Proposals, ProposalOf0 # </weight> Proposed$AccountId4ProposalIndexHash,MemberCountM A motion (given hash) has been proposed (by given account) with a threshold (given@ `MemberCount`).� \[account, proposal_index, proposal_hash, threshold\]Voted$AccountIdHashbool,MemberCount,MemberCount	 A motion (given hash) has been voted on by given account, leaving a tally (yes votes and no votes given respectively as `MemberCount`).� \[account, proposal_hash, voted, yes, no\] ApprovedHash� A motion was approved by the required threshold.H \[proposal_hash\],DisapprovedHash� A motion was not approved by the required threshold.H \[proposal_hash\] ExecutedHash8DispatchResult% A motion was executed; result will be `Ok` if it returned without error.h \[proposal_hash, result\]8MemberExecutedHash8DispatchResultM A single member did some action; result will be `Ok` if it returned without error.h \[proposal_hash, result\]ClosedHash,MemberCount,MemberCountY A proposal was closed because its threshold was reached or after its duration was up.l \[proposal_hash, yes, no\]($NotMember` Account is not a memberDDuplicateProposal� Duplicate proposals not allowed<ProposalMissingP Proposal must exist(WrongIndexD Mismatched index4DuplicateVote\ Duplicate vote ignoredHAlreadyInitialized� Members are already initialized! TooEarly The close call was made too early, before the end of the voting.@TooManyProposals There can only be a maximum of `MaxProposals` active proposals.LWrongProposalWeight� The given weight bound for the proposal was too low.LWrongProposalLength� The given length bound for the proposal was too low.DElectionsPhragmen@PhragmenElectionMembers�Vec<SeatHolder<T::AccountId, BalanceOf<T>>>t The current elected members.� Invariant: Always sorted based on account id.$RunnersUp�Vec<SeatHolder<T::AccountId, BalanceOf<T>>>� The current reserved runners-up.Y Invariant: Always sorted based on rank (worse to best). Upon removal of a member, the� last (i.e. _best_) runner-up will be replaced.(Candidates�Vec<(T::AccountId, BalanceOf<T>)>Y The present candidate list. A current member or runner-up can never enter this vector� and is always implicitly assumed to be a candidate.| Second element is the deposit.� Invariant: Always sorted based on account id.8ElectionRoundsu32A The total number of vote rounds that have happened, excluding the upcoming one.Voting0T::AccountId�Voter<T::AccountId, BalanceOf<T>>�� Votes and locked stake of a particular voter.� TWOX-NOTE: SAFE as `AccountId` is a crypto hash.votevotesDVec<T::AccountId>valueTCompact<BalanceOf<T>>\] Vote for a set of candidates for the upcoming round of election. This can be called to� set the initial votes, or update already existing votes.a Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount isQ reserved. The deposit is based on the number of votes and can be updated over time.P The `votes` should:H   - not be empty.Y   - be less than the number of possible candidates. Note that all current members and     runners-up are also automatically candidates for the next round.Q If `value` is more than `who`'s total balance, then the maximum of the two is used.� The dispatch origin of this call must be signed.0 ### WarningY It is the responsibility of the caller to **NOT** place all of their balance into the� lock and keep some for further operations., # <weight>U We assume the maximum weight among all 3 cases: vote_equal, vote_more and vote_less.0 # </weight>0remove_voterp Remove `origin` as a voter.� This removes the lock and returns the deposit. The dispatch origin of this call must be signed and be a voter.@submit_candidacy<candidate_count0Compact<u32>< Submit oneself for candidacy. A fixed amount of deposit is recorded.a All candidates are wiped at the end of the term. They either become a member/runner-up,� or leave the system while their deposit is slashed.� The dispatch origin of this call must be signed.0 ### Warninga Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]] to get their deposit back. Losing the spot in an election will always lead to a slash., # <weight>
 The number of current candidates must be provided as witness data.0 # </weight>Hrenounce_candidacy(renouncing(RenouncingDQ Renounce one's intention to be a candidate for the next election round. 3 potential@ outcomes exist:M - `origin` is a candidate and not elected in any set. In this case, the deposit is�   unreserved, returned and origin is removed as a candidate.e - `origin` is a current runner-up. In this case, the deposit is unreserved, returned and�   origin is removed as a runner-up.Y - `origin` is a current member. In this case, the deposit is unreserved and origin isY   removed as a member, consequently not being a candidate for the next round anymore.m   Similar to [`remove_members`], if replacement runners exists, they are immediately used.5   If the prime is renouncing, then no prime will exist until the next round.I The dispatch origin of this call must be signed, and have one of the above roles., # <weight>� The type of renouncing must be provided as witness data.0 # </weight>4remove_memberwho�<T::Lookup as StaticLookup>::Source<has_replacementbool8] Remove a particular member from the set. This is effective immediately and the bond of� the outgoing member is slashed.Y If a runner-up is available, then the best runner-up will be removed and replaces the outgoing member. Otherwise, a new phragmen election is started.� The dispatch origin of this call must be root.E Note that this does not affect the designated block number of the next election., # <weight>U If we have a replacement, we use a small weight. Else, since this is a root call and� will go into phragmen, we assume full block for now.0 # </weight>Pclean_defunct_voters,_num_votersu320_num_defunctu32(I Clean all voters who are defunct (i.e. they do not serve any purpose at all). The� deposit of the removed voters are returned. This is an root function to be used only for cleaning the state.� The dispatch origin of this call must be root., # <weight>a The total number of voters and those that are defunct must be provided as witness data.0 # </weight>NewTermdVec<(AccountId, Balance)>i A new term with \[new_members\]. This indicates that enough candidates existed to run theY election, not that enough have has been elected. The inner value must be examined fori this purpose. A `NewTerm(\[\])` indicates that some candidates got their bond slashed andY none were elected, whilst `EmptyTerm` means that no candidates existed to begin with.$EmptyTerm5 No (or not enough) candidates existed for this round. This is different from� `NewTerm(\[\])`. See the description of `NewTerm`.4ElectionError� Internal error happened while trying to perform election.0MemberKicked$AccountIdU A \[member\] has been removed. This should always be followed by either `NewTerm` or4 `EmptyTerm`.$Renounced$AccountId� Someone has renounced their candidacy.@CandidateSlashed$AccountIdBalance] A \[candidate\] was slashed by \[amount\] due to failing to obtain a seat as member or, runner-up.� Note that old members and runners-up are also candidates.DSeatHolderSlashed$AccountIdBalanceY A \[seat holder\] was slashed by \[amount\] by being forcefully removed from the set.4CandidacyBond0BalanceOf<T>@���8VotingBondBase0BalanceOf<T>@p�.@VotingBondFactor0BalanceOf<T>@�8DesiredMembersu32
@DesiredRunnersUpu320TermDuration8T::BlockNumber�� ModuleId8LockIdentifier phrelectD0UnableToVote� Cannot vote when no candidates or members exist.NoVotes� Must vote for at least one candidate.0TooManyVotes� Cannot vote more than candidates.PMaximumVotesExceeded� Cannot vote more than maximum allowed.(LowBalance� Cannot vote with stake less than minimum balance.<UnableToPayBond| Voter can not pay voting bond.,MustBeVoterD Must be a voter.(ReportSelfP Cannot report self.LDuplicatedCandidate� Duplicated candidate submission.0MemberSubmit� Member cannot re-submit candidacy.8RunnerUpSubmit� Runner cannot re-submit candidacy.hInsufficientCandidateFunds� Candidate does not have enough funds.$NotMember8 Not a member.HInvalidWitnessData� The provided count of number of candidates is incorrect.@InvalidVoteCount� The provided count of number of votes is incorrect.DInvalidRenouncing The renouncing origin presented a wrong `Renouncing` parameter.HInvalidReplacement Prediction regarding replacement after member removal is wrong.LTechnicalMembershipLInstance1MembershipMembersDVec<T::AccountId>� The current membership, stored as an ordered Vec.Prime0T::AccountId� The current prime member, if one exists.(add_memberwho0T::AccountId| Add a member `who` to the set.� May only be called from `T::AddOrigin`.4remove_memberwho0T::AccountId� Remove a member `who` from the set.� May only be called from `T::RemoveOrigin`.,swap_memberremove0T::AccountIdadd0T::AccountId� Swap out one member `remove` for another `add`.� May only be called from `T::SwapOrigin`. Prime membership is *not* passed from `remove` to `add`, if extant.4reset_membersmembersDVec<T::AccountId>Y Change the membership to a new set, disregarding the existing membership. Be nice andl pass `members` pre-sorted.� May only be called from `T::ResetOrigin`.(change_keynew0T::AccountId� Swap out the sending member for some other key `new`.� May only be called from `Signed` origin of a current member.! Prime membership is passed from the origin account to `new`, if extant.$set_primewho0T::AccountId� Set the prime member. Must be a current member.� May only be called from `T::PrimeOrigin`.,clear_prime� Remove the prime member if it exists.� May only be called from `T::PrimeOrigin`.,MemberAdded� The given member was added; see the transaction for who.4MemberRemoved� The given member was removed; see the transaction for who.8MembersSwapped� Two members were swapped; see the transaction for who.0MembersReset The membership was reset; see the transaction for who the new set is.(KeyChanged� One of the members' keys changed.Dummy�sp_std::marker::PhantomData<(AccountId, Event)>p Phantom member, never used. Treasury Treasury4ProposalCount4ProposalIndex� Number of proposals that have been made.$Proposals4ProposalIndex�Proposal<T::AccountId, BalanceOf<T, I>>| Proposals that have been made.$ApprovalsHVec<ProposalIndex>� Proposal indices that have been approved but not yet awarded.4propose_spendvalue`Compact<BalanceOf<T, I>>,beneficiary�<T::Lookup as StaticLookup>::Source$- Put forward a suggestion for spending. A deposit proportional to the value5 is reserved and slashed if the proposal is rejected. It is returned once theT proposal is awarded., # <weight>L - Complexity: O(1)� - DbReads: `ProposalCount`, `origin account`� - DbWrites: `ProposalCount`, `Proposals`, `origin account`0 # </weight><reject_proposal,proposal_idXCompact<ProposalIndex>$� Reject a proposed spend. The original deposit will be slashed.� May only be called from `T::RejectOrigin`., # <weight>L - Complexity: O(1)� - DbReads: `Proposals`, `rejected proposer account`� - DbWrites: `Proposals`, `rejected proposer account`0 # </weight>@approve_proposal,proposal_idXCompact<ProposalIndex>(] Approve a proposal. At a later time, the proposal will be allocated to the beneficiary� and the original deposit will be returned.� May only be called from `T::ApproveOrigin`., # <weight>P - Complexity: O(1).� - DbReads: `Proposals`, `Approvals`\ - DbWrite: `Approvals`0 # </weight> Proposed4ProposalIndex� New proposal. \[proposal_index\] SpendingBalance= We have ended a spend period and will now allocate funds. \[budget_remaining\]Awarded4ProposalIndexBalance$AccountId Some funds have been allocated. \[proposal_index, award, beneficiary\] Rejected4ProposalIndexBalance% A proposal was rejected; funds were slashed. \[proposal_index, slashed\]BurntBalance� Some of our funds have been burnt. \[burn\] RolloverBalance1 Spending has finished; this is the amount that rolls over until next spend.T \[budget_remaining\]DepositBalance� Some funds have been deposited. \[deposit\]0ProposalBondPermillP�U Fraction of a proposal's value that should be bonded in order to place the proposal. An accepted proposal gets these back. A rejected proposal does not.LProposalBondMinimum<BalanceOf<T, I>@���I Minimum amount of funds that should be placed in a deposit for making a proposal.,SpendPeriod8T::BlockNumberF� Period between successive spends.BurnPermill' Percentage of spare funds (if any) that are burnt per spend period. ModuleId ModuleId py/trsry The treasury's module id, used for deriving its sovereign account ID.pInsufficientProposersBalance| Proposer's balance is too low.0InvalidIndex� No proposal or bounty at that index.ClaimsClaimsClaims<EthereumAddress0BalanceOf<T>Total0BalanceOf<T>@Vesting<EthereumAddress�(BalanceOf<T>, BalanceOf<T>, T::BlockNumber)x Vesting schedule for a claim.
 First balance is the total amount that should be held for vesting.� Second balance is how much should be unlocked per block.� The block number is when the vesting should start.Signing<EthereumAddress4StatementKind� The statement kind that must be signed, if any.$Preclaims0T::AccountId<EthereumAddress- Pre-claimed Ethereum accounts, by the Account ID that they are claimed to.claimdest0T::AccountIdHethereum_signature8EcdsaSignature`� Make a claim to collect your DOTs.� The dispatch origin for this call must be _None_.T Unsigned Validation:	 A call to claim is deemed valid if the signature provided matches� the expected signed message of:l > Ethereum Signed Message:� > (configured prefix string)(address)� and `address` matches the `dest` account.0 Parameters:� - `dest`: The destination account to payout the claim. - `ethereum_signature`: The signature of an ethereum signed message�    matching the format described above.$ <weight> The weight of this call is invariant over the input parameters.� Weight includes logic to validate unsigned `claim` call.\ Total Complexity: O(1)( </weight>(mint_claimwho<EthereumAddressvalue0BalanceOf<T>@vesting_schedule�Option<(BalanceOf<T>, BalanceOf<T>, T::BlockNumber)>$statementTOption<StatementKind><� Mint a new claim to collect DOTs.� The dispatch origin for this call must be _Root_.0 Parameters:� - `who`: The Ethereum address allowed to collect this claim.� - `value`: The number of DOTs that will be claimed.
 - `vesting_schedule`: An optional vesting schedule for these DOTs.$ <weight> The weight of this call is invariant over the input parameters.! We assume worst case that both vesting and statement is being inserted.\ Total Complexity: O(1)( </weight>0claim_attestdest0T::AccountIdHethereum_signature8EcdsaSignature$statementVec<u8>h� Make a claim to collect your DOTs by signing a statement.� The dispatch origin for this call must be _None_.T Unsigned Validation:- A call to `claim_attest` is deemed valid if the signature provided matches� the expected signed message of:l > Ethereum Signed Message:� > (configured prefix string)(address)(statement)M and `address` matches the `dest` account; the `statement` must match that which is� expected according to your purchase arrangement.0 Parameters:� - `dest`: The destination account to payout the claim. - `ethereum_signature`: The signature of an ethereum signed message�    matching the format described above.i - `statement`: The identity of the statement which is being attested to in the signature.$ <weight> The weight of this call is invariant over the input parameters. Weight includes logic to validate unsigned `claim_attest` call.\ Total Complexity: O(1)( </weight>attest$statementVec<u8>D� Attest to a statement, needed to finalize the claims process.i WARNING: Insecure unless your chain includes `PrevalidateAttests` as a `SignedExtension`.T Unsigned Validation:- A call to attest is deemed valid if the sender has a `Preclaim` registered� and provides a `statement` which is expected for the account.0 Parameters:i - `statement`: The identity of the statement which is being attested to in the signature.$ <weight> The weight of this call is invariant over the input parameters.� Weight includes logic to do pre-validation on `attest` call.\ Total Complexity: O(1)( </weight>(move_claimold<EthereumAddressnew<EthereumAddress8maybe_preclaimPOption<T::AccountId>Claimed$AccountId<EthereumAddressBalance� Someone claimed some DOTs. [who, ethereum_address, amount]Prefix&[u8]��Pay DOTs to the Polkadot account: The Prefix that is used in signed Ethereum messages for this network`InvalidEthereumSignaturep Invalid Ethereum signature.@SignerHasNoClaim| Ethereum address has no claim.@SenderHasNoClaim� Account ID sending tx has no claim.0PotUnderflowe There's not enough in the pot to pay out some unvested amount. Generally implies a logic error.@InvalidStatement� A needed statement was not included.LVestedBalanceExists� The account already has a vested balance.VestingVestingVesting0T::AccountId�VestingInfo<BalanceOf<T>, T::BlockNumber>� Information regarding the vesting of a given account.vest4� Unlock any vested funds of the sender account.a The dispatch origin for this call must be _Signed_ and the sender must have funds stillh locked under this pallet.� Emits either `VestingCompleted` or `VestingUpdated`., # <weight>( - `O(1)`.x - DbWeight: 2 Reads, 2 Writes�     - Reads: Vesting Storage, Balances Locks, [Sender Account]     - Writes: Vesting Storage, Balances Locks, [Sender Account]0 # </weight>(vest_othertarget�<T::Lookup as StaticLookup>::Source<� Unlock any vested funds of a `target` account.� The dispatch origin for this call must be _Signed_.U - `target`: The account whose vested funds should be unlocked. Must have funds stillh locked under this pallet.� Emits either `VestingCompleted` or `VestingUpdated`., # <weight>( - `O(1)`.x - DbWeight: 3 Reads, 3 Writes�     - Reads: Vesting Storage, Balances Locks, Target Account�     - Writes: Vesting Storage, Balances Locks, Target Account0 # </weight><vested_transfertarget�<T::Lookup as StaticLookup>::Source schedule�VestingInfo<BalanceOf<T>, T::BlockNumber>@h Create a vested transfer.� The dispatch origin for this call must be _Signed_. - `target`: The account that should be transferred the vested funds. - `amount`: The amount of funds to transfer and will be vested.� - `schedule`: The vesting schedule attached to the transfer.` Emits `VestingCreated`., # <weight>( - `O(1)`.x - DbWeight: 3 Reads, 3 Writes=     - Reads: Vesting Storage, Balances Locks, Target Account, [Sender Account]A     - Writes: Vesting Storage, Balances Locks, Target Account, [Sender Account]0 # </weight>Tforce_vested_transfersource�<T::Lookup as StaticLookup>::Sourcetarget�<T::Lookup as StaticLookup>::Source schedule�VestingInfo<BalanceOf<T>, T::BlockNumber>Dd Force a vested transfer.� The dispatch origin for this call must be _Root_.� - `source`: The account whose funds should be transferred. - `target`: The account that should be transferred the vested funds. - `amount`: The amount of funds to transfer and will be vested.� - `schedule`: The vesting schedule attached to the transfer.` Emits `VestingCreated`., # <weight>( - `O(1)`.x - DbWeight: 4 Reads, 4 Writes5     - Reads: Vesting Storage, Balances Locks, Target Account, Source Account9     - Writes: Vesting Storage, Balances Locks, Target Account, Source Account0 # </weight>8VestingUpdated$AccountIdBalanceY The amount vested has been updated. This could indicate more funds are available. The balance given is the amount which is left unvested (and thus locked).X \[account, unvested\]@VestingCompleted$AccountId An \[account\] has become fully vested. No further vesting can happen.DMinVestedTransfer0BalanceOf<T>@���� The minimum amount transferred to call `vested_transfer`.(NotVesting� The account given is not vesting.\ExistingVestingSchedule] An existing vesting schedule already exists for this account that cannot be clobbered.$AmountLow	 Amount being transferred is too low to create a vesting schedule.Utilitybatchcalls`Vec<<T as Config>::Call>H� Send a batch of dispatch calls.| May be called from any origin.� - `calls`: The calls to be dispatched from the same origin.a If origin is root then call are dispatch without checking origin filter. (This includes� bypassing `frame_system::Config::BaseCallFilter`)., # <weight> - Complexity: O(C) where C is the number of calls to be batched.0 # </weight>Y This will return `Ok` in all circumstances. To determine the success of the batch, an5 event is deposited. If a call failed and the batch was interrupted, then theY `BatchInterrupted` event is deposited, along with the number of successful calls madeQ and the error of the failed call. If all were successful, then the `BatchCompleted`P event is deposited.4as_derivativeindexu16call`Box<<T as Config>::Call>4� Send a call through an indexed pseudonym of the sender.Y Filter from origin are passed along. The call will be dispatched with an origin which� use the same filter as the origin of this call.I NOTE: If you need to ensure that any account-based filtering is not honored (i.e.e because you expect `proxy` to have been used prior in the call stack and you do not wantU the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`� in the Multisig pallet instead.� NOTE: Prior to version *12, this was called `as_limited_sub`.� The dispatch origin for this call must be _Signed_.$batch_allcalls`Vec<<T as Config>::Call>4� Send a batch of dispatch calls and atomically execute them.% The whole transaction will rollback and fail if any of the calls failed.| May be called from any origin.� - `calls`: The calls to be dispatched from the same origin.a If origin is root then call are dispatch without checking origin filter. (This includes� bypassing `frame_system::Config::BaseCallFilter`)., # <weight> - Complexity: O(C) where C is the number of calls to be batched.0 # </weight>@BatchInterruptedu324DispatchErrorY Batch of dispatches did not complete fully. Index of first failing dispatch given, as� well as the error. \[index, error\]8BatchCompleted� Batch of dispatches completed fully with no error. Identity Identity(IdentityOf0T::AccountIdhRegistration<BalanceOf<T>>! Information that is pertinent to identify the entity behind an account.� TWOX-NOTE: OK ― `AccountId` is a secure hash.SuperOf0T::AccountIdP(T::AccountId, Data)a The super-identity of an alternative "sub" identity together with its name, within thatQ context. If the account is not some other account's sub-identity, then just `None`.SubsOf0T::AccountId�(BalanceOf<T>, Vec<T::AccountId>)D� Alternative "sub" identities of this account. The first item is the deposit, the second is a vector of the accounts.� TWOX-NOTE: OK ― `AccountId` is a secure hash.(Registrars�Vec<Option<RegistrarInfo<BalanceOf<T>, T::AccountId>>>M The set of registrars. Not expected to get very big as can only be added through a� special origin (likely a council motion).) The index into this can be cast to `RegistrarIndex` to get a valid value.<4add_registraraccount0T::AccountId4| Add a registrar to the system. The dispatch origin for this call must be `T::RegistrarOrigin`.� - `account`: the account of the registrar.� Emits `RegistrarAdded` if successful., # <weight>) - `O(R)` where `R` registrar-count (governance-bounded and code-bounded).� - One storage mutation (codec `O(R)`).4 - One event.0 # </weight>0set_identityinfo0IdentityInfoL- Set an account's identity information and reserve the appropriate deposit.Y If the account already has identity information, the deposit is taken as part paymentT for the new deposit.� The dispatch origin for this call must be _Signed_.� - `info`: The identity information.� Emits `IdentitySet` if successful., # <weight>H - `O(X + X' + R)`!   - where `X` additional-field-count (deposit-bounded and code-bounded)�   - where `R` judgements-count (registrar-count-bounded)� - One balance reserve operation.% - One storage mutation (codec-read `O(X' + R)`, codec-write `O(X + R)`).4 - One event.0 # </weight> set_subssubsdVec<(T::AccountId, Data)>T� Set the sub-accounts of the sender.Y Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned1 and an amount `SubAccountDeposit` will be reserved for each item in `subs`.e The dispatch origin for this call must be _Signed_ and the sender must have a registered( identity.� - `subs`: The identity's (new) sub-accounts., # <weight>4 - `O(P + S)`�   - where `P` old-subs-count (hard- and deposit-bounded).�   - where `S` subs-count (hard- and deposit-bounded).� - At most one balance operations. - DB:�   - `P + S` storage mutations (codec complexity `O(1)`)�   - One storage read (codec complexity `O(P)`).�   - One storage write (codec complexity `O(S)`).�   - One storage-exists (`IdentityOf::contains_key`).0 # </weight>8clear_identityH= Clear an account's identity info and all sub-accounts and return all deposits.� Payment: All reserved balances on the account are returned.e The dispatch origin for this call must be _Signed_ and the sender must have a registered( identity.� Emits `IdentityCleared` if successful., # <weight>D - `O(R + S + X)`�   - where `R` registrar-count (governance-bounded).�   - where `S` subs-count (hard- and deposit-bounded).%   - where `X` additional-field-count (deposit-bounded and code-bounded).� - One balance-unreserve operation.� - `2` storage reads and `S + 2` storage deletions.4 - One event.0 # </weight>Drequest_judgement$reg_index\Compact<RegistrarIndex>max_feeTCompact<BalanceOf<T>>\� Request a judgement from a registrar.Y Payment: At most `max_fee` will be reserved for payment to the registrar if judgement given.9 The dispatch origin for this call must be _Signed_ and the sender must have aT registered identity.! - `reg_index`: The index of the registrar whose judgement is requested.Y - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:4 ```nocompile� Self::registrars().get(reg_index).unwrap().fee ```� Emits `JudgementRequested` if successful., # <weight>8 - `O(R + X)`.� - One balance-reserve operation.� - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.4 - One event.0 # </weight>8cancel_request$reg_index8RegistrarIndexDl Cancel a previous request.� Payment: A previously reserved deposit is returned on success.9 The dispatch origin for this call must be _Signed_ and the sender must have aT registered identity.I - `reg_index`: The index of the registrar whose judgement is no longer requested.� Emits `JudgementUnrequested` if successful., # <weight>8 - `O(R + X)`.� - One balance-reserve operation.� - One storage mutation `O(R + X)`.0 - One event0 # </weight>set_feeindex\Compact<RegistrarIndex>feeTCompact<BalanceOf<T>>4 Set the fee required for a judgement to be requested from a registrar.Y The dispatch origin for this call must be _Signed_ and the sender must be the account� of the registrar whose index is `index`.� - `index`: the index of the registrar whose fee is to be set.X - `fee`: the new fee., # <weight>( - `O(R)`.| - One storage mutation `O(R)`.� - Benchmark: 7.315 + R * 0.329 µs (min squares analysis)0 # </weight>8set_account_idindex\Compact<RegistrarIndex>new0T::AccountId4� Change the account associated with a registrar.Y The dispatch origin for this call must be _Signed_ and the sender must be the account� of the registrar whose index is `index`.� - `index`: the index of the registrar whose fee is to be set.t - `new`: the new account ID., # <weight>( - `O(R)`.| - One storage mutation `O(R)`.� - Benchmark: 8.823 + R * 0.32 µs (min squares analysis)0 # </weight>(set_fieldsindex\Compact<RegistrarIndex>fields8IdentityFields4� Set the field information for a registrar.Y The dispatch origin for this call must be _Signed_ and the sender must be the account� of the registrar whose index is `index`.� - `index`: the index of the registrar whose fee is to be set. - `fields`: the fields that the registrar concerns themselves with., # <weight>( - `O(R)`.| - One storage mutation `O(R)`.� - Benchmark: 7.464 + R * 0.325 µs (min squares analysis)0 # </weight>Dprovide_judgement$reg_index\Compact<RegistrarIndex>target�<T::Lookup as StaticLookup>::Source$judgement\Judgement<BalanceOf<T>>L� Provide a judgement for an account's identity.Y The dispatch origin for this call must be _Signed_ and the sender must be the account� of the registrar whose index is `reg_index`.% - `reg_index`: the index of the registrar whose judgement is being made.Y - `target`: the account whose identity the judgement is upon. This must be an accountx   with a registered identity.M - `judgement`: the judgement of the registrar of index `reg_index` about `target`.� Emits `JudgementGiven` if successful., # <weight>8 - `O(R + X)`.� - One balance-transfer operation.� - Up to one account-lookup operation.� - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.4 - One event.0 # </weight>4kill_identitytarget�<T::Lookup as StaticLookup>::SourceLE Remove an account's identity and sub-account information and slash the deposits.e Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled byI `Slash`. Verification request deposits are not returned; they should be cancelled� manually using `cancel_request`.� The dispatch origin for this call must match `T::ForceOrigin`.Y - `target`: the account whose identity the judgement is upon. This must be an accountx   with a registered identity.� Emits `IdentityKilled` if successful., # <weight>H - `O(R + S + X)`.� - One balance-reserve operation.t - `S + 2` storage mutations.4 - One event.0 # </weight>add_subsub�<T::Lookup as StaticLookup>::SourcedataData� Add the given account to the sender's subs.a Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated< to the sender.e The dispatch origin for this call must be _Signed_ and the sender must have a registered\ sub identity of `sub`.(rename_subsub�<T::Lookup as StaticLookup>::SourcedataData� Alter the associated name of the given sub-account.e The dispatch origin for this call must be _Signed_ and the sender must have a registered\ sub identity of `sub`.(remove_subsub�<T::Lookup as StaticLookup>::Source� Remove the given account from the sender's subs.a Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated< to the sender.e The dispatch origin for this call must be _Signed_ and the sender must have a registered\ sub identity of `sub`. quit_sub(� Remove the sender as a sub-account.a Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated� to the sender (*not* the original depositor).e The dispatch origin for this call must be _Signed_ and the sender must have a registered@ super-identity.I NOTE: This should not normally be used, but is provided in the case that the non- controller of an account is maliciously registered as a sub-account.(,IdentitySet$AccountId A name was set or reset (which will remove all judgements). \[who\]<IdentityCleared$AccountIdBalance A name was cleared, and the given balance returned. \[who, deposit\]8IdentityKilled$AccountIdBalance
 A name was removed and the given balance slashed. \[who, deposit\]HJudgementRequested$AccountId8RegistrarIndex A judgement was asked from a registrar. \[who, registrar_index\]PJudgementUnrequested$AccountId8RegistrarIndex� A judgement request was retracted. \[who, registrar_index\]8JudgementGiven$AccountId8RegistrarIndex	 A judgement was given by a registrar. \[target, registrar_index\]8RegistrarAdded8RegistrarIndex� A registrar was added. \[registrar_index\]@SubIdentityAdded$AccountId$AccountIdBalanceU A sub-identity was added to an identity and the deposit paid. \[sub, main, deposit\]HSubIdentityRemoved$AccountId$AccountIdBalance
 A sub-identity was removed from an identity and the deposit freed.\ \[sub, main, deposit\]HSubIdentityRevoked$AccountId$AccountIdBalance A sub-identity was cleared, and the given deposit repatriated from the) main identity account to the sub-identity account. \[sub, main, deposit\]0BasicDeposit0BalanceOf<T>@}�*/� The amount held on deposit for a registered identity.0FieldDeposit0BalanceOf<T>@�V'- The amount held on deposit per additional field for a registered identity.DSubAccountDeposit0BalanceOf<T>@����.e The amount held on deposit for a registered subaccount. This should account for the factq that one storage item's value will increase by the size of an account ID, and there will be) another trie item whose value is the size of an account ID plus 32 bytes.8MaxSubAccountsu32d
 The maximum number of sub-accounts allowed per identified account.LMaxAdditionalFieldsu32de Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O� required to access an identity, but can be pretty high.4MaxRegistrarsu32Q Maxmimum number of registrars allowed in the system. Needed to bound the complexity| of, e.g., updating judgements.@HTooManySubAccounts` Too many subs-accounts. NotFoundT Account isn't found. NotNamedT Account isn't named.(EmptyIndex4 Empty index.(FeeChanged@ Fee is changed.(NoIdentityL No identity found.<StickyJudgementH Sticky judgement.8JudgementGivenD Judgement given.@InvalidJudgementL Invalid judgement.0InvalidIndexX The index is invalid.4InvalidTarget\ The target is invalid.4TooManyFieldsp Too many additional fields.DTooManyRegistrars� Maximum amount of registrars reached. Cannot add any more.8AlreadyClaimedt Account ID is already named.NotSubt Sender is not a sub-account. NotOwned� Sub-account isn't owned by sender.ProxyProxyProxies0T::AccountIdE(Vec<ProxyDefinition<T::AccountId, T::ProxyType, T::BlockNumber>>,
 BalanceOf<T>)DE The set of account proxies. Maps the account which has delegated to the accounts! which are being delegated to, together with the amount held on deposit.4Announcements0T::AccountId=(Vec<Announcement<T::AccountId, CallHashOf<T>, T::BlockNumber>>,
 BalanceOf<T>)D� The announcements made by the proxy (key).(proxyreal0T::AccountId@force_proxy_typePOption<T::ProxyType>call`Box<<T as Config>::Call><Q Dispatch the given `call` from an account that the sender is authorised for through4 `add_proxy`.� Removes any corresponding announcement(s).� The dispatch origin for this call must be _Signed_.0 Parameters: - `real`: The account that the proxy will make a call on behalf of.e - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.� - `call`: The call to be made by the `real` account., # <weight> Weight is a function of the number of proxies the user has (P).0 # </weight>$add_proxy delegate0T::AccountId(proxy_type0T::ProxyTypedelay8T::BlockNumber4I Register a proxy account for the sender that is able to make calls on its behalf.� The dispatch origin for this call must be _Signed_.0 Parameters: - `proxy`: The account that the `caller` would like to make a proxy. - `proxy_type`: The permissions allowed for this proxy account.Q - `delay`: The announcement period required of the initial proxy. Will generally be zero., # <weight> Weight is a function of the number of proxies the user has (P).0 # </weight>0remove_proxy delegate0T::AccountId(proxy_type0T::ProxyTypedelay8T::BlockNumber,� Unregister a proxy account for the sender.� The dispatch origin for this call must be _Signed_.0 Parameters:) - `proxy`: The account that the `caller` would like to remove as a proxy.E - `proxy_type`: The permissions currently enabled for the removed proxy account., # <weight> Weight is a function of the number of proxies the user has (P).0 # </weight>8remove_proxies(� Unregister all proxy accounts for the sender.� The dispatch origin for this call must be _Signed_.Y WARNING: This may be called on accounts created by `anonymous`, however if done, then] the unreserved fees will be inaccessible. **All access to this account will be lost.**, # <weight> Weight is a function of the number of proxies the user has (P).0 # </weight>$anonymous(proxy_type0T::ProxyTypedelay8T::BlockNumberindexu16\= Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and initialize it with a proxy of `proxy_type` for `origin` sender.p Requires a `Signed` origin.U - `proxy_type`: The type of the proxy that the sender will be registered as over theQ new account. This will almost always be the most permissive `ProxyType` possible to| allow for maximum flexibility.U - `index`: A disambiguation index, in case this is called multiple times in the samea transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably justD want to use `0`.Q - `delay`: The announcement period required of the initial proxy. Will generally be zero.U Fails with `Duplicate` if this has already been called in this transaction, from the� same sender, with the same parameters.� Fails if there are insufficient funds to pay for deposit., # <weight> Weight is a function of the number of proxies the user has (P).0 # </weight>� TODO: Might be over counting 1 read8kill_anonymousspawner0T::AccountId(proxy_type0T::ProxyTypeindexu16height\Compact<T::BlockNumber>$ext_index0Compact<u32>P� Removes a previously spawned anonymous proxy.M WARNING: **All access to this account will be lost.** Any funds held in it will be8 inaccessible.] Requires a `Signed` origin, and the sender account must have been created by a call to� `anonymous` with corresponding parameters.Q - `spawner`: The account that originally called `anonymous` to create this account.Q - `index`: The disambiguation index originally passed to `anonymous`. Probably `0`. - `proxy_type`: The proxy type originally passed to `anonymous`.A - `height`: The height of the chain when the call to `anonymous` was processed.M - `ext_index`: The extrinsic index in which the call to `anonymous` was processed.M Fails with `NoPermission` in case the caller is not a previously created anonymous� account whose `anonymous` call has corresponding parameters., # <weight> Weight is a function of the number of proxies the user has (P).0 # </weight> announcereal0T::AccountId$call_hash4CallHashOf<T>T	 Publish the hash of a proxy-call that will be made in the future.a This must be called some number of blocks before the corresponding `proxy` is attempted) if the delay associated with the proxy relationship is greater than zero. No more than `MaxPending` announcements may be made at any one time.
 This will take a deposit of `AnnouncementDepositFactor` as well as `AnnouncementDepositBase` if there are no other pending announcements.) The dispatch origin for this call must be _Signed_ and a proxy of `real`.0 Parameters: - `real`: The account that the proxy will make a call on behalf of. - `call_hash`: The hash of the call to be made by the `real` account., # <weight>d Weight is a function of:� - A: the number of announcements made.� - P: the number of proxies the user has.0 # </weight>Lremove_announcementreal0T::AccountId$call_hash4CallHashOf<T>@t Remove a given announcement.] May be called by a proxy account to remove a call they previously announced and return4 the deposit.� The dispatch origin for this call must be _Signed_.0 Parameters: - `real`: The account that the proxy will make a call on behalf of. - `call_hash`: The hash of the call to be made by the `real` account., # <weight>d Weight is a function of:� - A: the number of announcements made.� - P: the number of proxies the user has.0 # </weight>Lreject_announcement delegate0T::AccountId$call_hash4CallHashOf<T>@� Remove the given announcement of a delegate.e May be called by a target (proxied) account to remove a call that one of their delegates) (`delegate`) has announced they want to execute. The deposit is returned.� The dispatch origin for this call must be _Signed_.0 Parameters:� - `delegate`: The account that previously announced the call.� - `call_hash`: The hash of the call to be made., # <weight>d Weight is a function of:� - A: the number of announcements made.� - P: the number of proxies the user has.0 # </weight><proxy_announced delegate0T::AccountIdreal0T::AccountId@force_proxy_typePOption<T::ProxyType>call`Box<<T as Config>::Call>DQ Dispatch the given `call` from an account that the sender is authorized for through4 `add_proxy`.� Removes any corresponding announcement(s).� The dispatch origin for this call must be _Signed_.0 Parameters: - `real`: The account that the proxy will make a call on behalf of.e - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.� - `call`: The call to be made by the `real` account., # <weight>d Weight is a function of:� - A: the number of announcements made.� - P: the number of proxies the user has.0 # </weight>4ProxyExecuted8DispatchResult� A proxy was executed correctly, with the given \[result\].@AnonymousCreated$AccountId$AccountId$ProxyTypeu16� Anonymous account has been created by new proxy with giveni disambiguation index and proxy type. \[anonymous, who, proxy_type, disambiguation_index\]$Announced$AccountId$AccountIdHashQ An announcement was placed to make a call in the future. \[real, proxy, call_hash\]@ProxyDepositBase0BalanceOf<T>@���. The base amount of currency needed to reserve for creating a proxy. This is held for an additional storage item whose value size is% `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes.HProxyDepositFactor0BalanceOf<T>@�f�� The amount of currency needed per proxy added.i This is held for adding 32 bytes plus an instance of `ProxyType` more into a pre-existinga storage value. Thus, when configuring `ProxyDepositFactor` one should take into account� `32 + proxy_type.encode().len()` bytes of data.(MaxProxiesu16 � The maximum amount of proxies allowed for a single account.(MaxPendingu32 E The maximum amount of time-delayed announcements that are allowed to be pending.\AnnouncementDepositBase0BalanceOf<T>@���.1 The base amount of currency needed to reserve for creating an announcement.i This is held when a new storage item holding a `Balance` is created (typically 16 bytes).dAnnouncementDepositFactor0BalanceOf<T>@�V'� The amount of currency needed per announcement made.Y This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)� into a pre-existing storage value. TooMany% There are too many proxies registered or too many announcements pending. NotFoundx Proxy registration not found. NotProxy� Sender is not a proxy of the account to be proxied.,Unproxyable% A call which is incompatible with the proxy type's filter was attempted.$Duplicatep Account is already a proxy.0NoPermission Call may not be made by proxy because it may escalate its privileges.,Unannounced� Announcement, if made at all, was made too recently.,NoSelfProxyh Cannot add self as proxy. Multisig Multisig$Multisigs0T::AccountId [u8; 32]�Multisig<T::BlockNumber, BalanceOf<T>, T::AccountId>� The set of open multisig operations.Calls [u8; 32]�(OpaqueCall, T::AccountId, BalanceOf<T>)Pas_multi_threshold_1Dother_signatoriesDVec<T::AccountId>call`Box<<T as Config>::Call>@U Immediately dispatch a multi-signature call using a single approval from the caller.� The dispatch origin for this call must be _Signed_.A - `other_signatories`: The accounts (other than the sender) who are part of the multi-signature, but do not participate in the approval process.� - `call`: The call to be executed.� Result is equivalent to the dispatched result., # <weight> O(Z + C) where Z is the length of the call and C its execution weight.� -------------------------------H - DB Weight: NoneL - Plus Call Weight0 # </weight> as_multi$thresholdu16Dother_signatoriesDVec<T::AccountId><maybe_timepoint�Option<Timepoint<T::BlockNumber>>call(OpaqueCall(store_callbool(max_weightWeight�Y Register approval for a dispatch to be made from a deterministic composite account if� approved by a total of `threshold - 1` of `other_signatories`.� If there are enough, then dispatch the call.1 Payment: `DepositBase` will be reserved if this is the first approval, plusA `threshold` times `DepositFactor`. It is returned once this dispatch happens or8 is cancelled.� The dispatch origin for this call must be _Signed_.Y - `threshold`: The total number of approvals for this dispatch before it is executed.E - `other_signatories`: The accounts (other than the sender) who can approve thisp dispatch. May not be empty.] - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it isU not the first approval, then it must be `Some`, with the timepoint (block number and� transaction index) of the first approval transaction.� - `call`: The call to be executed.! NOTE: Unless this is the final approval, you will generally want to use `approve_as_multi` instead, since it only requires a hash of the call.] Result is equivalent to the dispatched result if `threshold` is exactly `1`. OtherwiseY on success, result is `Ok` and the result from the interior call, if it was executed,� may be found in the deposited `MultisigExecuted` event., # <weight>T - `O(S + Z + Call)`.� - Up to one balance-reserve or unreserve operation.A - One passthrough operation, one insert, both `O(S)` where `S` is the number ofI   signatories. `S` is capped by `MaxSignatories`, with weight being proportional.% - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.� - One encode & hash, both of complexity `O(S)`.� - Up to one binary search and insert (`O(logS + S)`).� - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.4 - One event.p - The weight of the `call`.1 - Storage: inserts one item, value size bounded by `MaxSignatories`, with a�   deposit taken for its lifetime of�   `DepositBase + threshold * DepositFactor`.� -------------------------------4 - DB Weight:%     - Reads: Multisig Storage, [Caller Account], Calls (if `store_call`))     - Writes: Multisig Storage, [Caller Account], Calls (if `store_call`)L - Plus Call Weight0 # </weight>@approve_as_multi$thresholdu16Dother_signatoriesDVec<T::AccountId><maybe_timepoint�Option<Timepoint<T::BlockNumber>>$call_hash [u8; 32](max_weightWeight�Y Register approval for a dispatch to be made from a deterministic composite account if� approved by a total of `threshold - 1` of `other_signatories`.1 Payment: `DepositBase` will be reserved if this is the first approval, plusA `threshold` times `DepositFactor`. It is returned once this dispatch happens or8 is cancelled.� The dispatch origin for this call must be _Signed_.Y - `threshold`: The total number of approvals for this dispatch before it is executed.E - `other_signatories`: The accounts (other than the sender) who can approve thisp dispatch. May not be empty.] - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it isU not the first approval, then it must be `Some`, with the timepoint (block number and� transaction index) of the first approval transaction.� - `call_hash`: The hash of the call to be executed.9 NOTE: If this is the final approval, you will want to use `as_multi` instead., # <weight>( - `O(S)`.� - Up to one balance-reserve or unreserve operation.A - One passthrough operation, one insert, both `O(S)` where `S` is the number ofI   signatories. `S` is capped by `MaxSignatories`, with weight being proportional.� - One encode & hash, both of complexity `O(S)`.� - Up to one binary search and insert (`O(logS + S)`).� - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.4 - One event.1 - Storage: inserts one item, value size bounded by `MaxSignatories`, with a�   deposit taken for its lifetime of�   `DepositBase + threshold * DepositFactor`.� ----------------------------------4 - DB Weight:�     - Read: Multisig Storage, [Caller Account]�     - Write: Multisig Storage, [Caller Account]0 # </weight><cancel_as_multi$thresholdu16Dother_signatoriesDVec<T::AccountId>$timepointdTimepoint<T::BlockNumber>$call_hash [u8; 32]hY Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously� for this operation will be unreserved on success.� The dispatch origin for this call must be _Signed_.Y - `threshold`: The total number of approvals for this dispatch before it is executed.E - `other_signatories`: The accounts (other than the sender) who can approve thisp dispatch. May not be empty.a - `timepoint`: The timepoint (block number and transaction index) of the first approval| transaction for this dispatch.� - `call_hash`: The hash of the call to be executed., # <weight>( - `O(S)`.� - Up to one balance-reserve or unreserve operation.A - One passthrough operation, one insert, both `O(S)` where `S` is the number ofI   signatories. `S` is capped by `MaxSignatories`, with weight being proportional.� - One encode & hash, both of complexity `O(S)`.4 - One event.� - I/O: 1 read `O(S)`, one remove.t - Storage: removes one item.� ----------------------------------4 - DB Weight:     - Read: Multisig Storage, [Caller Account], Refund Account, Calls     - Write: Multisig Storage, [Caller Account], Refund Account, Calls0 # </weight>,NewMultisig$AccountId$AccountId CallHash A new multisig operation has begun. \[approving, multisig, call_hash\]@MultisigApproval$AccountIdXTimepoint<BlockNumber>$AccountId CallHash� A multisig operation has been approved by someone.� \[approving, timepoint, multisig, call_hash\]@MultisigExecuted$AccountIdXTimepoint<BlockNumber>$AccountId CallHash8DispatchResultY A multisig operation has been executed. \[approving, timepoint, multisig, call_hash\]DMultisigCancelled$AccountIdXTimepoint<BlockNumber>$AccountId CallHasha A multisig operation has been cancelled. \[cancelling, timepoint, multisig, call_hash\],DepositBase0BalanceOf<T>@�a�.q The base amount of currency needed to reserve for creating a multisig execution or to storel a dispatch call for later.4DepositFactor0BalanceOf<T>@�U The amount of currency needed per unit threshold when creating a multisig execution.8MaxSignatoriesu16d The maximum amount of signatories allowed for a given multisig.8@MinimumThreshold� Threshold must be 2 or greater.<AlreadyApproved� Call is already approved by this signatory.DNoApprovalsNeeded� Call doesn't need any (more) approvals.DTooFewSignatories� There are too few signatories in the list.HTooManySignatories� There are too many signatories in the list.TSignatoriesOutOfOrder The signatories were provided out of order; they should be ordered.LSenderInSignatories The sender was contained in the other signatories; it shouldn't be. NotFound� Multisig operation not found when attempting to cancel. NotOwner1 Only the account that originally created the multisig is able to cancel it.,NoTimepoint! No timepoint was given, yet the multisig operation is already underway.8WrongTimepoint1 A different timepoint was given to the multisig operation that is underway.LUnexpectedTimepoint� A timepoint was given, yet no multisig operation is underway.<MaxWeightTooLow� The maximum weight information provided was too low.4AlreadyStored� The data to be stored is already stored. Bounties Treasury,BountyCount,BountyIndex� Number of bounty proposals that have been made. Bounties,BountyIndex�Bounty<T::AccountId, BalanceOf<T>, T::BlockNumber>x Bounties that have been made.HBountyDescriptions,BountyIndexVec<u8>� The description of each bounty.<BountyApprovals@Vec<BountyIndex>� Bounty indices that have been approved but not yet funded.$8propose_bountyvalueTCompact<BalanceOf<T>>,descriptionVec<u8>0X Propose a new bounty.� The dispatch origin for this call must be _Signed_.U Payment: `TipReportDepositBase` will be reserved from the origin account, as well asU `DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,h or slashed when rejected.� - `curator`: The curator account whom will manage this bounty.h - `fee`: The curator fee.) - `value`: The total payment amount of this bounty, curator fee included.� - `description`: The description of this bounty.8approve_bounty$bounty_idPCompact<BountyIndex> a Approve a bounty proposal. At a later time, the bounty will be funded and become active� and the original deposit will be returned.� May only be called from `T::ApproveOrigin`., # <weight>  - O(1).0 # </weight><propose_curator$bounty_idPCompact<BountyIndex>curator�<T::Lookup as StaticLookup>::SourcefeeTCompact<BalanceOf<T>>� Assign a curator to a funded bounty.� May only be called from `T::ApproveOrigin`., # <weight>  - O(1).0 # </weight>@unassign_curator$bounty_idPCompact<BountyIndex>H� Unassign curator from a bounty.! This function can only be called by the `RejectOrigin` a signed origin.i If this function is called by the `RejectOrigin`, we assume that the curator is malicious
 or inactive. As a result, we will slash the curator when possible.e If the origin is the curator, we take this as a sign they are unable to do their job anda they willingly give up. We could slash them, but for now we allow them to recover their9 deposit and exit without issue. (We may want to change this if it is abused.)a Finally, the origin can be anyone if and only if the curator is "inactive". This allowse anyone in the community to call out that a curator is not doing their due diligence, and= we should pick a new curator. In this case the curator should also be slashed., # <weight>  - O(1).0 # </weight>8accept_curator$bounty_idPCompact<BountyIndex> � Accept the curator role for a bounty.- A deposit will be reserved from curator and refund upon successful payout.� May only be called from the curator., # <weight>  - O(1).0 # </weight>0award_bounty$bounty_idPCompact<BountyIndex>,beneficiary�<T::Lookup as StaticLookup>::Source(� Award bounty to a beneficiary account. The beneficiary will be able to claim the funds after a delay. The dispatch origin for this call must be the curator of this bounty.� - `bounty_id`: Bounty ID to award. - `beneficiary`: The beneficiary account whom will receive the payout., # <weight>  - O(1).0 # </weight>0claim_bounty$bounty_idPCompact<BountyIndex>$� Claim the payout from an awarded bounty after payout delay.) The dispatch origin for this call must be the beneficiary of this bounty.� - `bounty_id`: Bounty ID to claim., # <weight>  - O(1).0 # </weight>0close_bounty$bounty_idPCompact<BountyIndex>(= Cancel a proposed or active bounty. All the funds will be sent to treasury and� the curator deposit will be unreserved if possible.� Only `T::RejectOrigin` is able to cancel a bounty.� - `bounty_id`: Bounty ID to cancel., # <weight>  - O(1).0 # </weight>Pextend_bounty_expiry$bounty_idPCompact<BountyIndex>_remarkVec<u8>(� Extend the expiry time of an active bounty. The dispatch origin for this call must be the curator of this bounty.� - `bounty_id`: Bounty ID to extend.� - `remark`: additional information., # <weight>  - O(1).0 # </weight>8BountyProposed,BountyIndex| New bounty proposal. \[index\]8BountyRejected,BountyIndexBalance A bounty proposal was rejected; funds were slashed. \[index, bond\]HBountyBecameActive,BountyIndex� A bounty proposal is funded and became active. \[index\]4BountyAwarded,BountyIndex$AccountId� A bounty is awarded to a beneficiary. \[index, beneficiary\]4BountyClaimed,BountyIndexBalance$AccountId
 A bounty is claimed by beneficiary. \[index, payout, beneficiary\]8BountyCanceled,BountyIndex� A bounty is cancelled. \[index\]8BountyExtended,BountyIndex� A bounty expiry is extended. \[index\]HDataDepositPerByte0BalanceOf<T>@��� The amount held on deposit per byte within bounty description.DBountyDepositBase0BalanceOf<T>@�T� The amount held on deposit for placing a bounty proposal.`BountyDepositPayoutDelay8T::BlockNumber�Y The delay period for which a bounty beneficiary need to wait before claim the payout.HBountyUpdatePeriod8T::BlockNumber��l Bounty duration in blocks.PBountyCuratorDepositPermill �m Percentage of the curator fee that will be reserved upfront as deposit for bounty curator.HBountyValueMinimum0BalanceOf<T>@�vHp Minimum value for a bounty.LMaximumReasonLengthu32@� Maximum acceptable reason length.$pInsufficientProposersBalance| Proposer's balance is too low.0InvalidIndex� No proposal or bounty at that index.0ReasonTooBig� The reason given is just too big.@UnexpectedStatus� The bounty status is unexpected.8RequireCurator` Require bounty curator.0InvalidValueX Invalid bounty value.(InvalidFeeP Invalid bounty fee.4PendingPayoutp A bounty payout is pending.� To cancel the bounty, you must unassign and slash the curator.$PrematureI The bounties cannot be claimed/closed because it's still in the countdown period."Tips TreasuryTipsT::Hash�OpenTip<T::AccountId, BalanceOf<T>, T::BlockNumber, T::Hash>e TipsMap that are not yet completed. Keyed by the hash of `(reason, who)` from the value.= This has the insecure enumerable hash function since the key itself is already� guaranteed to be a secure hash.ReasonsT::HashVec<u8>I Simple preimage lookup from the reason's hash to the original data. Again, has ana insecure enumerable hash since the key is guaranteed to be the result of a secure hash.8report_awesomereasonVec<u8>who0T::AccountIdL] Report something `reason` that deserves a tip and claim any eventual the finder's fee.� The dispatch origin for this call must be _Signed_.U Payment: `TipReportDepositBase` will be reserved from the origin account, as well as� `DataDepositPerByte` for each byte in `reason`.a - `reason`: The reason for, or the thing that deserves, the tip; generally this will be\   a UTF-8-encoded URL.� - `who`: The account which should be credited for the tip.x Emits `NewTip` if successful., # <weight>� - Complexity: `O(R)` where `R` length of `reason`.�   - encoding and hashing of 'reason't - DbReads: `Reasons`, `Tips`x - DbWrites: `Reasons`, `Tips`0 # </weight>,retract_tiphashT::HashLU Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.� If successful, the original deposit will be unreserved.Q The dispatch origin for this call must be _Signed_ and the tip identified by `hash`E must have been reported by the signing account through `report_awesome` (and notP through `tip_new`).e - `hash`: The identity of the open tip for which a tip value is declared. This is formeda   as the hash of the tuple of the original tip `reason` and the beneficiary account ID.� Emits `TipRetracted` if successful., # <weight>T - Complexity: `O(1)`�   - Depends on the length of `T::Hash` which is fixed.� - DbReads: `Tips`, `origin account`� - DbWrites: `Reasons`, `Tips`, `origin account`0 # </weight>tip_newreasonVec<u8>who0T::AccountId$tip_valueTCompact<BalanceOf<T>>X� Give a tip for something new; no finder's fee will be taken.U The dispatch origin for this call must be _Signed_ and the signing account must be at member of the `Tippers` set.a - `reason`: The reason for, or the thing that deserves, the tip; generally this will be\   a UTF-8-encoded URL.� - `who`: The account which should be credited for the tip.Q - `tip_value`: The amount of tip that the sender would like to give. The median tip�   value of active tippers will be given to the `who`.x Emits `NewTip` if successful., # <weight>U - Complexity: `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.�   - `O(T)`: decoding `Tipper` vec of length `T`	     `T` is charged as upper bound given by `ContainsLengthBound`.
     The actual cost depends on the implementation of `T::Tippers`.�   - `O(R)`: hashing and encoding of reason of length `R`� - DbReads: `Tippers`, `Reasons`x - DbWrites: `Reasons`, `Tips`0 # </weight>tiphashT::Hash$tip_valueTCompact<BalanceOf<T>>d� Declare a tip value for an already-open tip.U The dispatch origin for this call must be _Signed_ and the signing account must be at member of the `Tippers` set.e - `hash`: The identity of the open tip for which a tip value is declared. This is formeda   as the hash of the tuple of the hash of the original tip `reason` and the beneficiary8   account ID.Q - `tip_value`: The amount of tip that the sender would like to give. The median tip�   value of active tippers will be given to the `who`.e Emits `TipClosing` if the threshold of tippers has been reached and the countdown period4 has started., # <weight>� - Complexity: `O(T)` where `T` is the number of tippers.   decoding `Tipper` vec of length `T`, insert tip and check closing,   `T` is charged as upper bound given by `ContainsLengthBound`.   The actual cost depends on the implementation of `T::Tippers`.a   Actually weight could be lower as it depends on how many tips are in `OpenTip` but it�   is weighted as if almost full i.e of length `T-1`.t - DbReads: `Tippers`, `Tips`L - DbWrites: `Tips`0 # </weight>$close_tiphashT::HashD` Close and payout a tip.� The dispatch origin for this call must be _Signed_. The tip identified by `hash` must have finished its countdown period.e - `hash`: The identity of the open tip for which a tip value is declared. This is formeda   as the hash of the tuple of the original tip `reason` and the beneficiary account ID., # <weight>� - Complexity: `O(T)` where `T` is the number of tippers.�   decoding `Tipper` vec of length `T`.   `T` is charged as upper bound given by `ContainsLengthBound`.   The actual cost depends on the implementation of `T::Tippers`.� - DbReads: `Tips`, `Tippers`, `tip finder`� - DbWrites: `Reasons`, `Tips`, `Tippers`, `tip finder`0 # </weight>$slash_tiphashT::Hash0� Remove and slash an already-open tip.� May only be called from `T::RejectOrigin`.� As a result, the finder is slashed and the deposits are lost.� Emits `TipSlashed` if successful., # <weight>   `T` is charged as upper bound given by `ContainsLengthBound`.   The actual cost depends on the implementation of `T::Tippers`.0 # </weight>NewTipHash� A new tip suggestion has been opened. \[tip_hash\](TipClosingHash A tip suggestion has reached threshold and is closing. \[tip_hash\]$TipClosedHash$AccountIdBalance� A tip suggestion has been closed. \[tip_hash, who, payout\]0TipRetractedHash� A tip suggestion has been retracted. \[tip_hash\](TipSlashedHash$AccountIdBalance A tip suggestion has been slashed. \[tip_hash, finder, deposit\]0TipCountdown8T::BlockNumber@8E The period for which a tip remains open after is has achieved threshold tippers.4TipFindersFeePercent1 The amount of the final tip which goes to the original reporter of the tip.PTipReportDepositBase0BalanceOf<T>@�T� The amount held on deposit for placing a tip report.HDataDepositPerByte0BalanceOf<T>@��	 The amount held on deposit per byte within the tip report reason.LMaximumReasonLengthu32@� Maximum acceptable reason length.0ReasonTooBig� The reason given is just too big.0AlreadyKnown� The tip was already found/started.(UnknownTipd The tip hash is unknown.$NotFinder! The account attempting to retract the tip is not the finder of the tip.$StillOpen- The tip cannot be claimed/closed because there are not enough tippers yet.$Premature5 The tip cannot be claimed/closed because it's still in the countdown period.#hElectionProviderMultiPhasehElectionProviderMultiPhaseRoundu32� Internal counter for the number of rounds.U This is useful for de-duplication of transactions submitted to the pool, and generall diagnostics of the pallet.M This is merely incremented once per every time that an upstream `elect` is called.0CurrentPhaseTPhase<T::BlockNumber>< Current phase.8QueuedSolutionlReadySolution<T::AccountId>= Current best solution, signed or unsigned, queued to be returned upon `elect`. SnapshotlRoundSnapshot<T::AccountId>p Snapshot data of the round.] This is created at the beginning of the signed phase and cleared upon calling `elect`.8DesiredTargetsu32� Desired number of targets to elect for this round.� Only exists when [`Snapshot`] is present.@SnapshotMetadataXSolutionOrSnapshotSize� The metadata of the [`RoundSnapshot`]� Only exists when [`Snapshot`] is present.<submit_unsigned solutiondRawSolution<CompactOf<T>>witnessXSolutionOrSnapshotSize8� Submit a solution for the unsigned phase.� The dispatch origin fo this call must be __none__.A This submission is checked on the fly. Moreover, this unsigned solution is onlyY validated when submitted to the pool from the **local** node. Effectively, this meansa that only active validators can submit this transaction when authoring a block (similarD to an inherent).] To prevent any incorrect solution (and thus wasted time/weight), this transaction willQ panic if the solution submitted by the validator is invalid in any way, effectively� putting their authoring reward at risk.� No deposit or reward is associated with this submission.8SolutionStored<ElectionCompute� A solution was stored with the given compute.A If the solution is signed, this means that it hasn't yet been processed. If the	 solution is unsigned, this means that it has also been processed.DElectionFinalized\Option<ElectionCompute>Y The election has been finalized, with `Some` of the given computation, or else if thed election failed, `None`. Rewarded$AccountId) An account has been rewarded for their signed submission being finalized.Slashed$AccountId% An account has been slashed for submitting an invalid signed submission.HSignedPhaseStartedu32� The signed phase of the given round has started.PUnsignedPhaseStartedu32� The unsigned phase of the given round has started.4UnsignedPhase8T::BlockNumberX� Duration of the unsigned phase.,SignedPhase8T::BlockNumberx Duration of the signed phase.pSolutionImprovementThresholdPerbill �M The minimum amount of improvement to the solution score that defines a solution asd "better" (in any phase).hPreDispatchEarlySubmissionh Submission was too early.lPreDispatchWrongWinnerCount� Wrong number of winners presented.dPreDispatchWeakSubmission� Submission was too weak, score-wise.$ @CheckSpecVersion8CheckTxVersion0CheckGenesis8CheckMortality(CheckNonce,CheckWeight`ChargeTransactionPaymentHPrevalidateAttests