packages/types-support/src/metadata/v9/substrate-json.json
{
"magicNumber": 1635018093,
"metadata": {
"v9": {
"modules": [
{
"name": "System",
"storage": {
"prefix": "System",
"items": [
{
"name": "AccountNonce",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "Index",
"linked": false
}
},
"fallback": "0x00000000",
"docs": [
" Extrinsics nonce for accounts."
]
},
{
"name": "ExtrinsicCount",
"modifier": "Optional",
"type": {
"plain": "u32"
},
"fallback": "0x00",
"docs": [
" Total extrinsics count for the current block."
]
},
{
"name": "AllExtrinsicsWeight",
"modifier": "Optional",
"type": {
"plain": "Weight"
},
"fallback": "0x00",
"docs": [
" Total weight for all extrinsics put together, for the current block."
]
},
{
"name": "AllExtrinsicsLen",
"modifier": "Optional",
"type": {
"plain": "u32"
},
"fallback": "0x00",
"docs": [
" Total length (in bytes) for all extrinsics put together, for the current block."
]
},
{
"name": "BlockHash",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "BlockNumber",
"value": "Hash",
"linked": false
}
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"docs": [
" Map of block numbers to block hashes."
]
},
{
"name": "ExtrinsicData",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "u32",
"value": "Bytes",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Extrinsics data for the current block (maps an extrinsic's index to its data)."
]
},
{
"name": "Number",
"modifier": "Default",
"type": {
"plain": "BlockNumber"
},
"fallback": "0x00000000",
"docs": [
" The current block number being processed. Set by `execute_block`."
]
},
{
"name": "ParentHash",
"modifier": "Default",
"type": {
"plain": "Hash"
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"docs": [
" Hash of the previous block."
]
},
{
"name": "ExtrinsicsRoot",
"modifier": "Default",
"type": {
"plain": "Hash"
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"docs": [
" Extrinsics root of the current block, also part of the block header."
]
},
{
"name": "Digest",
"modifier": "Default",
"type": {
"plain": "DigestOf"
},
"fallback": "0x00",
"docs": [
" Digest of the current block, also part of the block header."
]
},
{
"name": "Events",
"modifier": "Default",
"type": {
"plain": "Vec<EventRecord>"
},
"fallback": "0x00",
"docs": [
" Events deposited for the current block."
]
},
{
"name": "EventCount",
"modifier": "Default",
"type": {
"plain": "EventIndex"
},
"fallback": "0x00000000",
"docs": [
" The number of events in the `Events<T>` list."
]
},
{
"name": "EventTopics",
"modifier": "Default",
"type": {
"doubleMap": {
"hasher": "Blake2_256",
"key1": "()",
"key2": "Hash",
"value": "Vec<(BlockNumber,EventIndex)>",
"key2Hasher": "Blake2_256"
}
},
"fallback": "0x00",
"docs": [
" Mapping between a topic (represented by T::Hash) and a vector of indexes",
" of events in the `<Events<T>>` list.",
"",
" The first key serves no purpose. This field is declared as double_map just",
" for convenience of using `remove_prefix`.",
"",
" All topic vectors have deterministic storage locations depending on the topic. This",
" allows light-clients to leverage the changes trie storage tracking mechanism and",
" in case of changes fetch the list of events of interest.",
"",
" The value has the type `(T::BlockNumber, EventIndex)` because if we used only just",
" 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."
]
}
]
},
"calls": [
{
"name": "fill_block",
"args": [],
"docs": [
" A big dispatch that will disallow any other transaction to be included."
]
},
{
"name": "remark",
"args": [
{
"name": "_remark",
"type": "Bytes"
}
],
"docs": [
" Make some on-chain remark."
]
},
{
"name": "set_heap_pages",
"args": [
{
"name": "pages",
"type": "u64"
}
],
"docs": [
" Set the number of pages in the WebAssembly environment's heap."
]
},
{
"name": "set_code",
"args": [
{
"name": "new",
"type": "Bytes"
}
],
"docs": [
" Set the new code."
]
},
{
"name": "set_storage",
"args": [
{
"name": "items",
"type": "Vec<KeyValue>"
}
],
"docs": [
" Set some items of storage."
]
},
{
"name": "kill_storage",
"args": [
{
"name": "keys",
"type": "Vec<Key>"
}
],
"docs": [
" Kill some items from storage."
]
},
{
"name": "kill_prefix",
"args": [
{
"name": "prefix",
"type": "Key"
}
],
"docs": [
" Kill all storage items with a key that starts with the given prefix."
]
}
],
"events": [
{
"name": "ExtrinsicSuccess",
"args": [
"DispatchInfo"
],
"docs": [
" An extrinsic completed successfully."
]
},
{
"name": "ExtrinsicFailed",
"args": [
"DispatchError",
"DispatchInfo"
],
"docs": [
" An extrinsic failed."
]
}
],
"constants": [],
"errors": [
{
"name": "RequireSignedOrigin",
"docs": []
},
{
"name": "RequireRootOrigin",
"docs": []
},
{
"name": "RequireNoOrigin",
"docs": []
}
]
},
{
"name": "Utility",
"storage": null,
"calls": [
{
"name": "batch",
"args": [
{
"name": "calls",
"type": "Vec<Call>"
}
],
"docs": [
" Send a batch of dispatch calls (only root)."
]
}
],
"events": [
{
"name": "BatchExecuted",
"args": [
"Vec<Result<(),DispatchError>>"
],
"docs": []
}
],
"constants": [],
"errors": []
},
{
"name": "Babe",
"storage": {
"prefix": "Babe",
"items": [
{
"name": "EpochIndex",
"modifier": "Default",
"type": {
"plain": "u64"
},
"fallback": "0x0000000000000000",
"docs": [
" Current epoch index."
]
},
{
"name": "Authorities",
"modifier": "Default",
"type": {
"plain": "Vec<(AuthorityId,BabeAuthorityWeight)>"
},
"fallback": "0x00",
"docs": [
" Current epoch authorities."
]
},
{
"name": "GenesisSlot",
"modifier": "Default",
"type": {
"plain": "u64"
},
"fallback": "0x0000000000000000",
"docs": [
" The slot at which the first epoch actually started. This is 0",
" until the first block of the chain."
]
},
{
"name": "CurrentSlot",
"modifier": "Default",
"type": {
"plain": "u64"
},
"fallback": "0x0000000000000000",
"docs": [
" Current slot number."
]
},
{
"name": "Randomness",
"modifier": "Default",
"type": {
"plain": "[u8;32]"
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"docs": [
" 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."
]
},
{
"name": "NextRandomness",
"modifier": "Default",
"type": {
"plain": "[u8;32]"
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"docs": [
" Next epoch randomness."
]
},
{
"name": "SegmentIndex",
"modifier": "Default",
"type": {
"plain": "u32"
},
"fallback": "0x00000000",
"docs": [
" 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."
]
},
{
"name": "UnderConstruction",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "u32",
"value": "Vec<[u8;32]>",
"linked": false
}
},
"fallback": "0x00",
"docs": []
},
{
"name": "Initialized",
"modifier": "Optional",
"type": {
"plain": "MaybeVrf"
},
"fallback": "0x00",
"docs": [
" Temporary value (cleared at block finalization) which is `Some`",
" if per-block initialization has already been called for current block."
]
}
]
},
"calls": [],
"events": null,
"constants": [
{
"name": "EpochDuration",
"type": "u64",
"value": "0xc800000000000000",
"docs": [
" The number of **slots** that an epoch takes. We couple sessions to",
" epochs, i.e. we start a new session once the new epoch begins."
]
},
{
"name": "ExpectedBlockTime",
"type": "Moment",
"value": "0xb80b000000000000",
"docs": [
" 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)."
]
}
],
"errors": []
},
{
"name": "Timestamp",
"storage": {
"prefix": "Timestamp",
"items": [
{
"name": "Now",
"modifier": "Default",
"type": {
"plain": "Moment"
},
"fallback": "0x0000000000000000",
"docs": [
" Current time for the current block."
]
},
{
"name": "DidUpdate",
"modifier": "Default",
"type": {
"plain": "bool"
},
"fallback": "0x00",
"docs": [
" Did the timestamp get updated in this block?"
]
}
]
},
"calls": [
{
"name": "set",
"args": [
{
"name": "now",
"type": "Compact<Moment>"
}
],
"docs": [
" Set the current time.",
"",
" 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.",
"",
" The timestamp should be greater than the previous one by the amount specified by",
" `MinimumPeriod`.",
"",
" The dispatch origin for this call must be `Inherent`."
]
}
],
"events": null,
"constants": [
{
"name": "MinimumPeriod",
"type": "Moment",
"value": "0xdc05000000000000",
"docs": [
" The minimum period between blocks. Beware that this is different to the *expected* period",
" that the block production apparatus provides. Your chosen consensus system will generally",
" work with this to determine a sensible block time. e.g. For Aura, it will be double this",
" period on default settings."
]
}
],
"errors": []
},
{
"name": "Authorship",
"storage": {
"prefix": "Authorship",
"items": [
{
"name": "Uncles",
"modifier": "Default",
"type": {
"plain": "Vec<UncleEntryItem>"
},
"fallback": "0x00",
"docs": [
" Uncles"
]
},
{
"name": "Author",
"modifier": "Optional",
"type": {
"plain": "AccountId"
},
"fallback": "0x00",
"docs": [
" Author of current block."
]
},
{
"name": "DidSetUncles",
"modifier": "Default",
"type": {
"plain": "bool"
},
"fallback": "0x00",
"docs": [
" Whether uncles were already set in this block."
]
}
]
},
"calls": [
{
"name": "set_uncles",
"args": [
{
"name": "new_uncles",
"type": "Vec<Header>"
}
],
"docs": [
" Provide a set of uncles."
]
}
],
"events": null,
"constants": [],
"errors": []
},
{
"name": "Indices",
"storage": {
"prefix": "Indices",
"items": [
{
"name": "NextEnumSet",
"modifier": "Default",
"type": {
"plain": "AccountIndex"
},
"fallback": "0x00000000",
"docs": [
" The next free enumeration set."
]
},
{
"name": "EnumSet",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountIndex",
"value": "Vec<AccountId>",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" The enumeration sets."
]
}
]
},
"calls": [],
"events": [
{
"name": "NewAccountIndex",
"args": [
"AccountId",
"AccountIndex"
],
"docs": [
" A new account index was assigned.",
"",
" This event is not triggered when an existing index is reassigned",
" to another `AccountId`."
]
}
],
"constants": [],
"errors": []
},
{
"name": "Balances",
"storage": {
"prefix": "Balances",
"items": [
{
"name": "TotalIssuance",
"modifier": "Default",
"type": {
"plain": "Balance"
},
"fallback": "0x00000000000000000000000000000000",
"docs": [
" The total units issued in the system."
]
},
{
"name": "Vesting",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "VestingSchedule",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Information regarding the vesting of a given account."
]
},
{
"name": "FreeBalance",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "Balance",
"linked": false
}
},
"fallback": "0x00000000000000000000000000000000",
"docs": [
" The 'free' balance of a given account.",
"",
" This is the only balance that matters in terms of most operations on tokens. It",
" alone is used to determine the balance when in the contract execution environment. When this",
" balance falls below the value of `ExistentialDeposit`, then the 'current account' is",
" deleted: specifically `FreeBalance`. Further, the `OnFreeBalanceZero` callback",
" is invoked, giving a chance to external modules to clean up data associated with",
" the deleted account.",
"",
" `system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets",
" collapsed to zero if it ever becomes less than `ExistentialDeposit`."
]
},
{
"name": "ReservedBalance",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "Balance",
"linked": false
}
},
"fallback": "0x00000000000000000000000000000000",
"docs": [
" The amount of the balance of a given account that is externally reserved; this can still get",
" slashed, but gets slashed last of all.",
"",
" This balance is a 'reserve' balance that other subsystems use in order to set aside tokens",
" that are still 'owned' by the account holder, but which are suspendable.",
"",
" When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'",
" is deleted: specifically, `ReservedBalance`.",
"",
" `system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets",
" collapsed to zero if it ever becomes less than `ExistentialDeposit`.)"
]
},
{
"name": "Locks",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "Vec<BalanceLock>",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Any liquidity locks on some account balances."
]
}
]
},
"calls": [
{
"name": "transfer",
"args": [
{
"name": "dest",
"type": "LookupSource"
},
{
"name": "value",
"type": "Compact<Balance>"
}
],
"docs": [
" 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>",
" - Dependent on arguments but not critical, given proper implementations for",
" input config types. See related functions below.",
" - It contains a limited number of reads and writes internally and no complex computation.",
"",
" Related functions:",
"",
" - `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.",
" - Removing enough funds from an account will trigger",
" `T::DustRemoval::on_unbalanced` and `T::OnFreeBalanceZero::on_free_balance_zero`.",
" - `transfer_keep_alive` works the same way as `transfer`, but has an additional",
" check that the transfer will not kill the origin account.",
"",
" # </weight>"
]
},
{
"name": "set_balance",
"args": [
{
"name": "who",
"type": "LookupSource"
},
{
"name": "new_free",
"type": "Compact<Balance>"
},
{
"name": "new_reserved",
"type": "Compact<Balance>"
}
],
"docs": [
" 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 (`system::AccountNonce`).",
"",
" The dispatch origin for this call is `root`.",
"",
" # <weight>",
" - Independent of the arguments.",
" - Contains a limited number of reads and writes.",
" # </weight>"
]
},
{
"name": "force_transfer",
"args": [
{
"name": "source",
"type": "LookupSource"
},
{
"name": "dest",
"type": "LookupSource"
},
{
"name": "value",
"type": "Compact<Balance>"
}
],
"docs": [
" Exactly as `transfer`, except the origin must be root and the source account may be",
" specified."
]
},
{
"name": "transfer_keep_alive",
"args": [
{
"name": "dest",
"type": "LookupSource"
},
{
"name": "value",
"type": "Compact<Balance>"
}
],
"docs": [
" 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.Module.html#method.transfer"
]
}
],
"events": [
{
"name": "NewAccount",
"args": [
"AccountId",
"Balance"
],
"docs": [
" A new account was created."
]
},
{
"name": "ReapedAccount",
"args": [
"AccountId"
],
"docs": [
" An account was reaped."
]
},
{
"name": "Transfer",
"args": [
"AccountId",
"AccountId",
"Balance",
"Balance"
],
"docs": [
" Transfer succeeded (from, to, value, fees)."
]
}
],
"constants": [
{
"name": "ExistentialDeposit",
"type": "Balance",
"value": "0x00407a10f35a00000000000000000000",
"docs": [
" The minimum amount required to keep an account open."
]
},
{
"name": "TransferFee",
"type": "Balance",
"value": "0x0010a5d4e80000000000000000000000",
"docs": [
" The fee required to make a transfer."
]
},
{
"name": "CreationFee",
"type": "Balance",
"value": "0x0010a5d4e80000000000000000000000",
"docs": [
" The fee required to create an account."
]
}
],
"errors": []
},
{
"name": "TransactionPayment",
"storage": {
"prefix": "Balances",
"items": [
{
"name": "NextFeeMultiplier",
"modifier": "Default",
"type": {
"plain": "Multiplier"
},
"fallback": "0x0000000000000000",
"docs": []
}
]
},
"calls": null,
"events": null,
"constants": [
{
"name": "TransactionBaseFee",
"type": "BalanceOf",
"value": "0x0010a5d4e80000000000000000000000",
"docs": [
" The fee to be paid for making a transaction; the base."
]
},
{
"name": "TransactionByteFee",
"type": "BalanceOf",
"value": "0x00e40b54020000000000000000000000",
"docs": [
" The fee to be paid for making a transaction; the per-byte portion."
]
}
],
"errors": []
},
{
"name": "Staking",
"storage": {
"prefix": "Staking",
"items": [
{
"name": "ValidatorCount",
"modifier": "Default",
"type": {
"plain": "u32"
},
"fallback": "0x00000000",
"docs": [
" The ideal number of staking participants."
]
},
{
"name": "MinimumValidatorCount",
"modifier": "Default",
"type": {
"plain": "u32"
},
"fallback": "0x04000000",
"docs": [
" Minimum number of staking participants before emergency conditions are imposed."
]
},
{
"name": "Invulnerables",
"modifier": "Default",
"type": {
"plain": "Vec<AccountId>"
},
"fallback": "0x00",
"docs": [
" Any validators that may never be slashed or forcibly kicked. It's a Vec since they're",
" easy to initialize and the performance hit is minimal (we expect no more than four",
" invulnerables) and restricted to testnets."
]
},
{
"name": "Bonded",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "AccountId",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Map from all locked \"stash\" accounts to the controller account."
]
},
{
"name": "Ledger",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "StakingLedger",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Map from all (unlocked) \"controller\" accounts to the info regarding the staking."
]
},
{
"name": "Payee",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "RewardDestination",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Where the reward payment should be made. Keyed by stash."
]
},
{
"name": "Validators",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "ValidatorPrefs",
"linked": true
}
},
"fallback": "0x00",
"docs": [
" The map from (wannabe) validator stash key to the preferences of that validator."
]
},
{
"name": "Nominators",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "Nominations",
"linked": true
}
},
"fallback": "0x00",
"docs": [
" The map from nominator stash key to the set of stash keys of all validators to nominate.",
"",
" NOTE: is private so that we can ensure upgraded before all typical accesses.",
" Direct storage APIs can still bypass this protection."
]
},
{
"name": "Stakers",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "Exposure",
"linked": false
}
},
"fallback": "0x000000",
"docs": [
" Nominators for a particular account that is in action right now. You can't iterate",
" through validators here, but you can find them in the Session module.",
"",
" This is keyed by the stash account."
]
},
{
"name": "CurrentElected",
"modifier": "Default",
"type": {
"plain": "Vec<AccountId>"
},
"fallback": "0x00",
"docs": [
" The currently elected validator set keyed by stash account ID."
]
},
{
"name": "CurrentEra",
"modifier": "Default",
"type": {
"plain": "EraIndex"
},
"fallback": "0x00000000",
"docs": [
" The current era index."
]
},
{
"name": "CurrentEraStart",
"modifier": "Default",
"type": {
"plain": "MomentOf"
},
"fallback": "0x0000000000000000",
"docs": [
" The start of the current era."
]
},
{
"name": "CurrentEraStartSessionIndex",
"modifier": "Default",
"type": {
"plain": "SessionIndex"
},
"fallback": "0x00000000",
"docs": [
" The session index at which the current era started."
]
},
{
"name": "CurrentEraPointsEarned",
"modifier": "Default",
"type": {
"plain": "EraPoints"
},
"fallback": "0x0000000000",
"docs": [
" Rewards for the current era. Using indices of current elected set."
]
},
{
"name": "SlotStake",
"modifier": "Default",
"type": {
"plain": "BalanceOf"
},
"fallback": "0x00000000000000000000000000000000",
"docs": [
" The amount of balance actively at stake for each validator slot, currently.",
"",
" This is used to derive rewards and punishments."
]
},
{
"name": "ForceEra",
"modifier": "Default",
"type": {
"plain": "Forcing"
},
"fallback": "0x00",
"docs": [
" True if the next session change will be a new era regardless of index."
]
},
{
"name": "SlashRewardFraction",
"modifier": "Default",
"type": {
"plain": "Perbill"
},
"fallback": "0x00000000",
"docs": [
" The percentage of the slash that is distributed to reporters.",
"",
" The rest of the slashed value is handled by the `Slash`."
]
},
{
"name": "CanceledSlashPayout",
"modifier": "Default",
"type": {
"plain": "BalanceOf"
},
"fallback": "0x00000000000000000000000000000000",
"docs": [
" The amount of currency given to reporters of a slash event which was",
" canceled by extraordinary circumstances (e.g. governance)."
]
},
{
"name": "UnappliedSlashes",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "EraIndex",
"value": "Vec<UnappliedSlash>",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" All unapplied slashes that are queued for later."
]
},
{
"name": "BondedEras",
"modifier": "Default",
"type": {
"plain": "Vec<(EraIndex,SessionIndex)>"
},
"fallback": "0x00",
"docs": [
" A mapping from still-bonded eras to the first session index of that era."
]
},
{
"name": "ValidatorSlashInEra",
"modifier": "Optional",
"type": {
"doubleMap": {
"hasher": "Blake2_256",
"key1": "EraIndex",
"key2": "AccountId",
"value": "(Perbill,BalanceOf)",
"key2Hasher": "Twox128"
}
},
"fallback": "0x00",
"docs": [
" All slashing events on validators, mapped by era to the highest slash proportion",
" and slash value of the era."
]
},
{
"name": "NominatorSlashInEra",
"modifier": "Optional",
"type": {
"doubleMap": {
"hasher": "Blake2_256",
"key1": "EraIndex",
"key2": "AccountId",
"value": "BalanceOf",
"key2Hasher": "Twox128"
}
},
"fallback": "0x00",
"docs": [
" All slashing events on nominators, mapped by era to the highest slash value of the era."
]
},
{
"name": "SlashingSpans",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "SlashingSpans",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Slashing spans for stash accounts."
]
},
{
"name": "SpanSlash",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "(AccountId,SpanIndex)",
"value": "SpanRecord",
"linked": false
}
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"docs": [
" Records information about the maximum slash of a stash within a slashing span,",
" as well as how much reward has been paid out."
]
},
{
"name": "EarliestUnappliedSlash",
"modifier": "Optional",
"type": {
"plain": "EraIndex"
},
"fallback": "0x00",
"docs": [
" The earliest era for which we have a pending, unapplied slash."
]
},
{
"name": "StorageVersion",
"modifier": "Default",
"type": {
"plain": "u32"
},
"fallback": "0x00000000",
"docs": [
" The version of storage for upgrade."
]
}
]
},
"calls": [
{
"name": "bond",
"args": [
{
"name": "controller",
"type": "LookupSource"
},
{
"name": "value",
"type": "Compact<BalanceOf>"
},
{
"name": "payee",
"type": "RewardDestination"
}
],
"docs": [
" Take the origin account as a stash and lock up `value` of its balance. `controller` will",
" be the account that controls it.",
"",
" `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.",
"",
" # <weight>",
" - Independent of the arguments. Moderate complexity.",
" - O(1).",
" - Three extra DB entries.",
"",
" NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned unless",
" the `origin` falls below _existential deposit_ and gets removed as dust.",
" # </weight>"
]
},
{
"name": "bond_extra",
"args": [
{
"name": "max_additional",
"type": "Compact<BalanceOf>"
}
],
"docs": [
" Add some extra amount that have appeared in the stash `free_balance` into the balance up",
" for staking.",
"",
" Use this if there are additional funds in your stash account that you wish to bond.",
" Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount",
" that can be added.",
"",
" The dispatch origin for this call must be _Signed_ by the stash, not the controller.",
"",
" # <weight>",
" - Independent of the arguments. Insignificant complexity.",
" - O(1).",
" - One DB entry.",
" # </weight>"
]
},
{
"name": "unbond",
"args": [
{
"name": "value",
"type": "Compact<BalanceOf>"
}
],
"docs": [
" 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.",
"",
" 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).",
"",
" The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
"",
" See also [`Call::withdraw_unbonded`].",
"",
" # <weight>",
" - Independent of the arguments. Limited but potentially exploitable complexity.",
" - Contains a limited number of reads.",
" - Each call (requires the remainder of the bonded balance to be above `minimum_balance`)",
" will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage.",
" The only way to clean the aforementioned storage item is also user-controlled via `withdraw_unbonded`.",
" - One DB entry.",
" </weight>"
]
},
{
"name": "withdraw_unbonded",
"args": [],
"docs": [
" Remove any unlocked chunks from the `unlocking` queue from our management.",
"",
" This essentially frees up that balance to be used by the stash account to do",
" whatever it wants.",
"",
" The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
"",
" See also [`Call::unbond`].",
"",
" # <weight>",
" - Could be dependent on the `origin` argument and how much `unlocking` chunks exist.",
" It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is",
" indirectly user-controlled. See [`unbond`] for more detail.",
" - 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.",
" # </weight>"
]
},
{
"name": "validate",
"args": [
{
"name": "prefs",
"type": "ValidatorPrefs"
}
],
"docs": [
" Declare the desire to validate for the origin controller.",
"",
" Effects will be felt at the beginning of the next era.",
"",
" 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>"
]
},
{
"name": "nominate",
"args": [
{
"name": "targets",
"type": "Vec<LookupSource>"
}
],
"docs": [
" Declare the desire to nominate `targets` for the origin controller.",
"",
" Effects will be felt at the beginning of the next era.",
"",
" The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
"",
" # <weight>",
" - The transaction's complexity is proportional to the size of `targets`,",
" which is capped at `MAX_NOMINATIONS`.",
" - Both the reads and writes follow a similar pattern.",
" # </weight>"
]
},
{
"name": "chill",
"args": [],
"docs": [
" Declare no desire to either validate or nominate.",
"",
" Effects will be felt at the beginning of the next era.",
"",
" The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
"",
" # <weight>",
" - Independent of the arguments. Insignificant complexity.",
" - Contains one read.",
" - Writes are limited to the `origin` account key.",
" # </weight>"
]
},
{
"name": "set_payee",
"args": [
{
"name": "payee",
"type": "RewardDestination"
}
],
"docs": [
" (Re-)set the payment target for a controller.",
"",
" Effects will be felt at the beginning of the next era.",
"",
" 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>"
]
},
{
"name": "set_controller",
"args": [
{
"name": "controller",
"type": "LookupSource"
}
],
"docs": [
" (Re-)set the controller of a stash.",
"",
" Effects will be felt at the beginning of the next era.",
"",
" 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.",
" # </weight>"
]
},
{
"name": "set_validator_count",
"args": [
{
"name": "new",
"type": "Compact<u32>"
}
],
"docs": [
" The ideal number of validators."
]
},
{
"name": "force_no_eras",
"args": [],
"docs": [
" Force there to be no new eras indefinitely.",
"",
" # <weight>",
" - No arguments.",
" # </weight>"
]
},
{
"name": "force_new_era",
"args": [],
"docs": [
" 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.",
"",
" # <weight>",
" - No arguments.",
" # </weight>"
]
},
{
"name": "set_invulnerables",
"args": [
{
"name": "validators",
"type": "Vec<AccountId>"
}
],
"docs": [
" Set the validators who cannot be slashed (if any)."
]
},
{
"name": "force_unstake",
"args": [
{
"name": "stash",
"type": "AccountId"
}
],
"docs": [
" Force a current staker to become completely unstaked, immediately."
]
},
{
"name": "force_new_era_always",
"args": [],
"docs": [
" Force there to be a new era at the end of sessions indefinitely.",
"",
" # <weight>",
" - One storage write",
" # </weight>"
]
},
{
"name": "cancel_deferred_slash",
"args": [
{
"name": "era",
"type": "EraIndex"
},
{
"name": "slash_indices",
"type": "Vec<u32>"
}
],
"docs": [
" Cancel enactment of a deferred slash. Can be called by either the root origin or",
" the `T::SlashCancelOrigin`.",
" passing the era and indices of the slashes for that era to kill.",
"",
" # <weight>",
" - One storage write.",
" # </weight>"
]
}
],
"events": [
{
"name": "Reward",
"args": [
"Balance",
"Balance"
],
"docs": [
" All validators have been rewarded by the first balance; the second is the remainder",
" from the maximum amount of reward."
]
},
{
"name": "Slash",
"args": [
"AccountId",
"Balance"
],
"docs": [
" One validator (and its nominators) has been slashed by the given amount."
]
},
{
"name": "OldSlashingReportDiscarded",
"args": [
"SessionIndex"
],
"docs": [
" An old slashing report from a prior era was discarded because it could",
" not be processed."
]
}
],
"constants": [
{
"name": "SessionsPerEra",
"type": "SessionIndex",
"value": "0x06000000",
"docs": [
" Number of sessions per era."
]
},
{
"name": "BondingDuration",
"type": "EraIndex",
"value": "0xa0020000",
"docs": [
" Number of eras that staked funds must remain bonded for."
]
}
],
"errors": []
},
{
"name": "Session",
"storage": {
"prefix": "Session",
"items": [
{
"name": "Validators",
"modifier": "Default",
"type": {
"plain": "Vec<ValidatorId>"
},
"fallback": "0x00",
"docs": [
" The current set of validators."
]
},
{
"name": "CurrentIndex",
"modifier": "Default",
"type": {
"plain": "SessionIndex"
},
"fallback": "0x00000000",
"docs": [
" Current index of the session."
]
},
{
"name": "QueuedChanged",
"modifier": "Default",
"type": {
"plain": "bool"
},
"fallback": "0x00",
"docs": [
" True if the underlying economic identities or weighting behind the validators",
" has changed in the queued validator set."
]
},
{
"name": "QueuedKeys",
"modifier": "Default",
"type": {
"plain": "Vec<(ValidatorId,Keys)>"
},
"fallback": "0x00",
"docs": [
" The queued keys for the next session. When the next session begins, these keys",
" will be used to determine the validator's session keys."
]
},
{
"name": "DisabledValidators",
"modifier": "Default",
"type": {
"plain": "Vec<u32>"
},
"fallback": "0x00",
"docs": [
" Indices of disabled validators.",
"",
" The set is cleared when `on_session_ending` returns a new set of identities."
]
},
{
"name": "NextKeys",
"modifier": "Optional",
"type": {
"doubleMap": {
"hasher": "Twox64Concat",
"key1": "Bytes",
"key2": "ValidatorId",
"value": "Keys",
"key2Hasher": "Blake2_256"
}
},
"fallback": "0x00",
"docs": [
" The next session keys for a validator.",
"",
" The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of",
" the trie. Having all data in the same branch should prevent slowing down other queries."
]
},
{
"name": "KeyOwner",
"modifier": "Optional",
"type": {
"doubleMap": {
"hasher": "Twox64Concat",
"key1": "Bytes",
"key2": "(KeyTypeId,Bytes)",
"value": "ValidatorId",
"key2Hasher": "Blake2_256"
}
},
"fallback": "0x00",
"docs": [
" The owner of a key. The second key is the `KeyTypeId` + the encoded key.",
"",
" The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of",
" the trie. Having all data in the same branch should prevent slowing down other queries."
]
}
]
},
"calls": [
{
"name": "set_keys",
"args": [
{
"name": "keys",
"type": "Keys"
},
{
"name": "proof",
"type": "Bytes"
}
],
"docs": [
" Sets the session key(s) of the function caller to `key`.",
" 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>",
" - O(log n) in number of accounts.",
" - One extra DB entry.",
" # </weight>"
]
}
],
"events": [
{
"name": "NewSession",
"args": [
"SessionIndex"
],
"docs": [
" New session has happened. Note that the argument is the session index, not the block",
" number as the type might suggest."
]
}
],
"constants": [
{
"name": "DEDUP_KEY_PREFIX",
"type": "Bytes",
"value": "0x343a73657373696f6e3a6b657973",
"docs": [
" Used as first key for `NextKeys` and `KeyOwner` to put all the data into the same branch",
" of the trie."
]
}
],
"errors": []
},
{
"name": "Democracy",
"storage": {
"prefix": "Democracy",
"items": [
{
"name": "PublicPropCount",
"modifier": "Default",
"type": {
"plain": "PropIndex"
},
"fallback": "0x00000000",
"docs": [
" The number of (public) proposals that have been made so far."
]
},
{
"name": "PublicProps",
"modifier": "Default",
"type": {
"plain": "Vec<(PropIndex,Hash,AccountId)>"
},
"fallback": "0x00",
"docs": [
" The public proposals. Unsorted. The second item is the proposal's hash."
]
},
{
"name": "Preimages",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "Hash",
"value": "(Bytes,AccountId,BalanceOf,BlockNumber)",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" 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."
]
},
{
"name": "DepositOf",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "PropIndex",
"value": "(BalanceOf,Vec<AccountId>)",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Those who have locked a deposit."
]
},
{
"name": "ReferendumCount",
"modifier": "Default",
"type": {
"plain": "ReferendumIndex"
},
"fallback": "0x00000000",
"docs": [
" The next free referendum index, aka the number of referenda started so far."
]
},
{
"name": "NextTally",
"modifier": "Default",
"type": {
"plain": "ReferendumIndex"
},
"fallback": "0x00000000",
"docs": [
" The next referendum index that should be tallied."
]
},
{
"name": "ReferendumInfoOf",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "ReferendumIndex",
"value": "ReferendumInfo",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Information concerning any given referendum."
]
},
{
"name": "DispatchQueue",
"modifier": "Default",
"type": {
"map": {
"hasher": "Twox64Concat",
"key": "BlockNumber",
"value": "Vec<Option<(Hash,ReferendumIndex)>>",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Queue of successful referenda to be dispatched."
]
},
{
"name": "VotersFor",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "ReferendumIndex",
"value": "Vec<AccountId>",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Get the voters for the current proposal."
]
},
{
"name": "VoteOf",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "(ReferendumIndex,AccountId)",
"value": "Vote",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Get the vote in a given referendum of a particular voter. The result is meaningful only",
" if `voters_for` includes the voter when called with the referendum (you'll get the",
" default `Vote` value otherwise). If you don't want to check `voters_for`, then you can",
" also check for simple existence with `VoteOf::exists` first."
]
},
{
"name": "Proxy",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "AccountId",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Who is able to vote for whom. Value is the fund-holding account, key is the",
" vote-transaction-sending account."
]
},
{
"name": "Delegations",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "(AccountId,Conviction)",
"linked": true
}
},
"fallback": "0x000000000000000000000000000000000000000000000000000000000000000000",
"docs": [
" Get the account (and lock periods) to which another account is delegating vote."
]
},
{
"name": "LastTabledWasExternal",
"modifier": "Default",
"type": {
"plain": "bool"
},
"fallback": "0x00",
"docs": [
" True if the last referendum tabled was submitted externally. False if it was a public",
" proposal."
]
},
{
"name": "NextExternal",
"modifier": "Optional",
"type": {
"plain": "(Hash,VoteThreshold)"
},
"fallback": "0x00",
"docs": [
" The referendum to be tabled whenever it would be valid to table an external proposal.",
" This happens when a referendum needs to be tabled and one of two conditions are met:",
" - `LastTabledWasExternal` is `false`; or",
" - `PublicProps` is empty."
]
},
{
"name": "Blacklist",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "Hash",
"value": "(BlockNumber,Vec<AccountId>)",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" 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."
]
},
{
"name": "Cancellations",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "Hash",
"value": "bool",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Record of all proposals that have been subject to emergency cancellation."
]
}
]
},
"calls": [
{
"name": "propose",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
},
{
"name": "value",
"type": "Compact<BalanceOf>"
}
],
"docs": [
" Propose a sensitive action to be taken.",
"",
" # <weight>",
" - O(1).",
" - Two DB changes, one DB entry.",
" # </weight>"
]
},
{
"name": "second",
"args": [
{
"name": "proposal",
"type": "Compact<PropIndex>"
}
],
"docs": [
" Propose a sensitive action to be taken.",
"",
" # <weight>",
" - O(1).",
" - One DB entry.",
" # </weight>"
]
},
{
"name": "vote",
"args": [
{
"name": "ref_index",
"type": "Compact<ReferendumIndex>"
},
{
"name": "vote",
"type": "Vote"
}
],
"docs": [
" 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.",
"",
" # <weight>",
" - O(1).",
" - One DB change, one DB entry.",
" # </weight>"
]
},
{
"name": "proxy_vote",
"args": [
{
"name": "ref_index",
"type": "Compact<ReferendumIndex>"
},
{
"name": "vote",
"type": "Vote"
}
],
"docs": [
" Vote in a referendum on behalf of a stash. If `vote.is_aye()`, the vote is to enact",
" the proposal; otherwise it is a vote to keep the status quo.",
"",
" # <weight>",
" - O(1).",
" - One DB change, one DB entry.",
" # </weight>"
]
},
{
"name": "emergency_cancel",
"args": [
{
"name": "ref_index",
"type": "ReferendumIndex"
}
],
"docs": [
" Schedule an emergency cancellation of a referendum. Cannot happen twice to the same",
" referendum."
]
},
{
"name": "external_propose",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
}
],
"docs": [
" Schedule a referendum to be tabled once it is legal to schedule an external",
" referendum."
]
},
{
"name": "external_propose_majority",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
}
],
"docs": [
" Schedule a majority-carries referendum to be tabled next once it is legal to schedule",
" an external referendum.",
"",
" Unlike `external_propose`, blacklisting has no effect on this and it may replace a",
" pre-scheduled `external_propose` call."
]
},
{
"name": "external_propose_default",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
}
],
"docs": [
" Schedule a negative-turnout-bias referendum to be tabled next once it is legal to",
" schedule an external referendum.",
"",
" Unlike `external_propose`, blacklisting has no effect on this and it may replace a",
" pre-scheduled `external_propose` call."
]
},
{
"name": "fast_track",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
},
{
"name": "voting_period",
"type": "BlockNumber"
},
{
"name": "delay",
"type": "BlockNumber"
}
],
"docs": [
" Schedule the currently externally-proposed majority-carries referendum to be tabled",
" 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.",
"",
" - `proposal_hash`: The hash of the current external proposal.",
" - `voting_period`: The period that is allowed for voting on this proposal. Increased to",
" `EmergencyVotingPeriod` if too low.",
" - `delay`: The number of block after voting has ended in approval and this should be",
" enacted. This doesn't have a minimum amount."
]
},
{
"name": "veto_external",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
}
],
"docs": [
" Veto and blacklist the external proposal hash."
]
},
{
"name": "cancel_referendum",
"args": [
{
"name": "ref_index",
"type": "Compact<ReferendumIndex>"
}
],
"docs": [
" Remove a referendum."
]
},
{
"name": "cancel_queued",
"args": [
{
"name": "when",
"type": "Compact<BlockNumber>"
},
{
"name": "which",
"type": "Compact<u32>"
},
{
"name": "what",
"type": "Compact<ReferendumIndex>"
}
],
"docs": [
" Cancel a proposal queued for enactment."
]
},
{
"name": "set_proxy",
"args": [
{
"name": "proxy",
"type": "AccountId"
}
],
"docs": [
" Specify a proxy. Called by the stash.",
"",
" # <weight>",
" - One extra DB entry.",
" # </weight>"
]
},
{
"name": "resign_proxy",
"args": [],
"docs": [
" Clear the proxy. Called by the proxy.",
"",
" # <weight>",
" - One DB clear.",
" # </weight>"
]
},
{
"name": "remove_proxy",
"args": [
{
"name": "proxy",
"type": "AccountId"
}
],
"docs": [
" Clear the proxy. Called by the stash.",
"",
" # <weight>",
" - One DB clear.",
" # </weight>"
]
},
{
"name": "delegate",
"args": [
{
"name": "to",
"type": "AccountId"
},
{
"name": "conviction",
"type": "Conviction"
}
],
"docs": [
" Delegate vote.",
"",
" # <weight>",
" - One extra DB entry.",
" # </weight>"
]
},
{
"name": "undelegate",
"args": [],
"docs": [
" Undelegate vote.",
"",
" # <weight>",
" - O(1).",
" # </weight>"
]
},
{
"name": "clear_public_proposals",
"args": [],
"docs": [
" Veto and blacklist the proposal hash. Must be from Root origin."
]
},
{
"name": "note_preimage",
"args": [
{
"name": "encoded_proposal",
"type": "Bytes"
}
],
"docs": [
" 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."
]
},
{
"name": "note_imminent_preimage",
"args": [
{
"name": "encoded_proposal",
"type": "Bytes"
},
{
"name": "when",
"type": "BlockNumber"
},
{
"name": "which",
"type": "u32"
}
],
"docs": [
" Register the preimage for an upcoming proposal. This requires the proposal to be",
" in the dispatch queue. No deposit is needed."
]
},
{
"name": "reap_preimage",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
}
],
"docs": [
" Remove an expired proposal preimage and collect the deposit."
]
}
],
"events": [
{
"name": "Proposed",
"args": [
"PropIndex",
"Balance"
],
"docs": [
" A motion has been proposed by a public account."
]
},
{
"name": "Tabled",
"args": [
"PropIndex",
"Balance",
"Vec<AccountId>"
],
"docs": [
" A public proposal has been tabled for referendum vote."
]
},
{
"name": "ExternalTabled",
"args": [],
"docs": [
" An external proposal has been tabled."
]
},
{
"name": "Started",
"args": [
"ReferendumIndex",
"VoteThreshold"
],
"docs": [
" A referendum has begun."
]
},
{
"name": "Passed",
"args": [
"ReferendumIndex"
],
"docs": [
" A proposal has been approved by referendum."
]
},
{
"name": "NotPassed",
"args": [
"ReferendumIndex"
],
"docs": [
" A proposal has been rejected by referendum."
]
},
{
"name": "Cancelled",
"args": [
"ReferendumIndex"
],
"docs": [
" A referendum has been cancelled."
]
},
{
"name": "Executed",
"args": [
"ReferendumIndex",
"bool"
],
"docs": [
" A proposal has been enacted."
]
},
{
"name": "Delegated",
"args": [
"AccountId",
"AccountId"
],
"docs": [
" An account has delegated their vote to another account."
]
},
{
"name": "Undelegated",
"args": [
"AccountId"
],
"docs": [
" An account has cancelled a previous delegation operation."
]
},
{
"name": "Vetoed",
"args": [
"AccountId",
"Hash",
"BlockNumber"
],
"docs": [
" An external proposal has been vetoed."
]
},
{
"name": "PreimageNoted",
"args": [
"Hash",
"AccountId",
"Balance"
],
"docs": [
" A proposal's preimage was noted, and the deposit taken."
]
},
{
"name": "PreimageUsed",
"args": [
"Hash",
"AccountId",
"Balance"
],
"docs": [
" A proposal preimage was removed and used (the deposit was returned)."
]
},
{
"name": "PreimageInvalid",
"args": [
"Hash",
"ReferendumIndex"
],
"docs": [
" A proposal could not be executed because its preimage was invalid."
]
},
{
"name": "PreimageMissing",
"args": [
"Hash",
"ReferendumIndex"
],
"docs": [
" A proposal could not be executed because its preimage was missing."
]
},
{
"name": "PreimageReaped",
"args": [
"Hash",
"AccountId",
"Balance",
"AccountId"
],
"docs": [
" A registered preimage was removed and the deposit collected by the reaper (last item)."
]
}
],
"constants": [
{
"name": "EnactmentPeriod",
"type": "BlockNumber",
"value": "0x002f0d00",
"docs": [
" The minimum period of locking and the period between a proposal being approved and enacted.",
"",
" It should generally be a little more than the unstake period to ensure that",
" voting stakers have an opportunity to remove themselves from the system in the case where",
" they are on the losing side of a vote."
]
},
{
"name": "LaunchPeriod",
"type": "BlockNumber",
"value": "0x004e0c00",
"docs": [
" How often (in blocks) new public referenda are launched."
]
},
{
"name": "VotingPeriod",
"type": "BlockNumber",
"value": "0x004e0c00",
"docs": [
" How often (in blocks) to check for new votes."
]
},
{
"name": "MinimumDeposit",
"type": "BalanceOf",
"value": "0x0000c16ff28623000000000000000000",
"docs": [
" The minimum amount to be used as a deposit for a public referendum proposal."
]
},
{
"name": "EmergencyVotingPeriod",
"type": "BlockNumber",
"value": "0x80510100",
"docs": [
" Minimum voting period allowed for an emergency referendum."
]
},
{
"name": "CooloffPeriod",
"type": "BlockNumber",
"value": "0x004e0c00",
"docs": [
" Period in blocks where an external proposal may not be re-submitted after being vetoed."
]
},
{
"name": "PreimageByteDeposit",
"type": "BalanceOf",
"value": "0x0010a5d4e80000000000000000000000",
"docs": [
" The amount of balance that must be deposited per byte of preimage stored."
]
}
],
"errors": []
},
{
"name": "Council",
"storage": {
"prefix": "Instance1Collective",
"items": [
{
"name": "Proposals",
"modifier": "Default",
"type": {
"plain": "Vec<Hash>"
},
"fallback": "0x00",
"docs": [
" The hashes of the active proposals."
]
},
{
"name": "ProposalOf",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "Hash",
"value": "Proposal",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Actual proposal for a given hash, if it's current."
]
},
{
"name": "Voting",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "Hash",
"value": "Votes",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Votes on a given proposal, if it is ongoing."
]
},
{
"name": "ProposalCount",
"modifier": "Default",
"type": {
"plain": "u32"
},
"fallback": "0x00000000",
"docs": [
" Proposals so far."
]
},
{
"name": "Members",
"modifier": "Default",
"type": {
"plain": "Vec<AccountId>"
},
"fallback": "0x00",
"docs": [
" The current members of the collective. This is stored sorted (just by value)."
]
}
]
},
"calls": [
{
"name": "set_members",
"args": [
{
"name": "new_members",
"type": "Vec<AccountId>"
}
],
"docs": [
" Set the collective's membership manually to `new_members`. Be nice to the chain and",
" provide it pre-sorted.",
"",
" Requires root origin."
]
},
{
"name": "execute",
"args": [
{
"name": "proposal",
"type": "Proposal"
}
],
"docs": [
" Dispatch a proposal from a member using the `Member` origin.",
"",
" Origin must be a member of the collective."
]
},
{
"name": "propose",
"args": [
{
"name": "threshold",
"type": "Compact<MemberCount>"
},
{
"name": "proposal",
"type": "Proposal"
}
],
"docs": [
" # <weight>",
" - Bounded storage reads and writes.",
" - Argument `threshold` has bearing on weight.",
" # </weight>"
]
},
{
"name": "vote",
"args": [
{
"name": "proposal",
"type": "Hash"
},
{
"name": "index",
"type": "Compact<ProposalIndex>"
},
{
"name": "approve",
"type": "bool"
}
],
"docs": [
" # <weight>",
" - Bounded storage read and writes.",
" - Will be slightly heavier if the proposal is approved / disapproved after the vote.",
" # </weight>"
]
}
],
"events": [
{
"name": "Proposed",
"args": [
"AccountId",
"ProposalIndex",
"Hash",
"MemberCount"
],
"docs": [
" A motion (given hash) has been proposed (by given account) with a threshold (given",
" `MemberCount`)."
]
},
{
"name": "Voted",
"args": [
"AccountId",
"Hash",
"bool",
"MemberCount",
"MemberCount"
],
"docs": [
" A motion (given hash) has been voted on by given account, leaving",
" a tally (yes votes and no votes given respectively as `MemberCount`)."
]
},
{
"name": "Approved",
"args": [
"Hash"
],
"docs": [
" A motion was approved by the required threshold."
]
},
{
"name": "Disapproved",
"args": [
"Hash"
],
"docs": [
" A motion was not approved by the required threshold."
]
},
{
"name": "Executed",
"args": [
"Hash",
"bool"
],
"docs": [
" A motion was executed; `bool` is true if returned without error."
]
},
{
"name": "MemberExecuted",
"args": [
"Hash",
"bool"
],
"docs": [
" A single member did some action; `bool` is true if returned without error."
]
}
],
"constants": [],
"errors": []
},
{
"name": "TechnicalCommittee",
"storage": {
"prefix": "Instance2Collective",
"items": [
{
"name": "Proposals",
"modifier": "Default",
"type": {
"plain": "Vec<Hash>"
},
"fallback": "0x00",
"docs": [
" The hashes of the active proposals."
]
},
{
"name": "ProposalOf",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "Hash",
"value": "Proposal",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Actual proposal for a given hash, if it's current."
]
},
{
"name": "Voting",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "Hash",
"value": "Votes",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Votes on a given proposal, if it is ongoing."
]
},
{
"name": "ProposalCount",
"modifier": "Default",
"type": {
"plain": "u32"
},
"fallback": "0x00000000",
"docs": [
" Proposals so far."
]
},
{
"name": "Members",
"modifier": "Default",
"type": {
"plain": "Vec<AccountId>"
},
"fallback": "0x00",
"docs": [
" The current members of the collective. This is stored sorted (just by value)."
]
}
]
},
"calls": [
{
"name": "set_members",
"args": [
{
"name": "new_members",
"type": "Vec<AccountId>"
}
],
"docs": [
" Set the collective's membership manually to `new_members`. Be nice to the chain and",
" provide it pre-sorted.",
"",
" Requires root origin."
]
},
{
"name": "execute",
"args": [
{
"name": "proposal",
"type": "Proposal"
}
],
"docs": [
" Dispatch a proposal from a member using the `Member` origin.",
"",
" Origin must be a member of the collective."
]
},
{
"name": "propose",
"args": [
{
"name": "threshold",
"type": "Compact<MemberCount>"
},
{
"name": "proposal",
"type": "Proposal"
}
],
"docs": [
" # <weight>",
" - Bounded storage reads and writes.",
" - Argument `threshold` has bearing on weight.",
" # </weight>"
]
},
{
"name": "vote",
"args": [
{
"name": "proposal",
"type": "Hash"
},
{
"name": "index",
"type": "Compact<ProposalIndex>"
},
{
"name": "approve",
"type": "bool"
}
],
"docs": [
" # <weight>",
" - Bounded storage read and writes.",
" - Will be slightly heavier if the proposal is approved / disapproved after the vote.",
" # </weight>"
]
}
],
"events": [
{
"name": "Proposed",
"args": [
"AccountId",
"ProposalIndex",
"Hash",
"MemberCount"
],
"docs": [
" A motion (given hash) has been proposed (by given account) with a threshold (given",
" `MemberCount`)."
]
},
{
"name": "Voted",
"args": [
"AccountId",
"Hash",
"bool",
"MemberCount",
"MemberCount"
],
"docs": [
" A motion (given hash) has been voted on by given account, leaving",
" a tally (yes votes and no votes given respectively as `MemberCount`)."
]
},
{
"name": "Approved",
"args": [
"Hash"
],
"docs": [
" A motion was approved by the required threshold."
]
},
{
"name": "Disapproved",
"args": [
"Hash"
],
"docs": [
" A motion was not approved by the required threshold."
]
},
{
"name": "Executed",
"args": [
"Hash",
"bool"
],
"docs": [
" A motion was executed; `bool` is true if returned without error."
]
},
{
"name": "MemberExecuted",
"args": [
"Hash",
"bool"
],
"docs": [
" A single member did some action; `bool` is true if returned without error."
]
}
],
"constants": [],
"errors": []
},
{
"name": "Elections",
"storage": {
"prefix": "PhragmenElection",
"items": [
{
"name": "Members",
"modifier": "Default",
"type": {
"plain": "Vec<(AccountId,BalanceOf)>"
},
"fallback": "0x00",
"docs": [
" The current elected membership. Sorted based on account id."
]
},
{
"name": "RunnersUp",
"modifier": "Default",
"type": {
"plain": "Vec<(AccountId,BalanceOf)>"
},
"fallback": "0x00",
"docs": [
" The current runners_up. Sorted based on low to high merit (worse to best runner)."
]
},
{
"name": "ElectionRounds",
"modifier": "Default",
"type": {
"plain": "u32"
},
"fallback": "0x00000000",
"docs": [
" The total number of vote rounds that have happened, excluding the upcoming one."
]
},
{
"name": "VotesOf",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "Vec<AccountId>",
"linked": true
}
},
"fallback": "0x00",
"docs": [
" Votes of a particular voter, with the round index of the votes."
]
},
{
"name": "StakeOf",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "BalanceOf",
"linked": false
}
},
"fallback": "0x00000000000000000000000000000000",
"docs": [
" Locked stake of a voter."
]
},
{
"name": "Candidates",
"modifier": "Default",
"type": {
"plain": "Vec<AccountId>"
},
"fallback": "0x00",
"docs": [
" The present candidate list. Sorted based on account id. A current member can never enter",
" this vector and is always implicitly assumed to be a candidate."
]
}
]
},
"calls": [
{
"name": "vote",
"args": [
{
"name": "votes",
"type": "Vec<AccountId>"
},
{
"name": "value",
"type": "Compact<BalanceOf>"
}
],
"docs": [
" Vote for a set of candidates for the upcoming round of election.",
"",
" The `votes` should:",
" - not be empty.",
" - be less than the number of candidates.",
"",
" Upon voting, `value` units of `who`'s balance is locked and a bond amount is reserved.",
" It is the responsibility of the caller to not place all of their balance into the lock",
" and keep some for further transactions.",
"",
" # <weight>",
" #### State",
" Reads: O(1)",
" Writes: O(V) given `V` votes. V is bounded by 16.",
" # </weight>"
]
},
{
"name": "remove_voter",
"args": [],
"docs": [
" Remove `origin` as a voter. This removes the lock and returns the bond.",
"",
" # <weight>",
" #### State",
" Reads: O(1)",
" Writes: O(1)",
" # </weight>"
]
},
{
"name": "report_defunct_voter",
"args": [
{
"name": "target",
"type": "LookupSource"
}
],
"docs": [
" Report `target` for being an defunct voter. In case of a valid report, the reporter is",
" rewarded by the bond amount of `target`. Otherwise, the reporter itself is removed and",
" their bond is slashed.",
"",
" A defunct voter is defined to be:",
" - a voter whose current submitted votes are all invalid. i.e. all of them are no",
" longer a candidate nor an active member.",
"",
" # <weight>",
" #### State",
" Reads: O(NLogM) given M current candidates and N votes for `target`.",
" Writes: O(1)",
" # </weight>"
]
},
{
"name": "submit_candidacy",
"args": [],
"docs": [
" Submit oneself for candidacy.",
"",
" A candidate will either:",
" - Lose at the end of the term and forfeit their deposit.",
" - Win and become a member. Members will eventually get their stash back.",
" - Become a runner-up. Runners-ups are reserved members in case one gets forcefully",
" removed.",
"",
" # <weight>",
" #### State",
" Reads: O(LogN) Given N candidates.",
" Writes: O(1)",
" # </weight>"
]
},
{
"name": "renounce_candidacy",
"args": [],
"docs": [
" Renounce one's intention to be a candidate for the next election round. 3 potential",
" outcomes exist:",
" - `origin` is a candidate and not elected in any set. In this case, the bond is",
" unreserved, returned and origin is removed as a candidate.",
" - `origin` is a current runner up. In this case, the bond is unreserved, returned and",
" origin is removed as a runner.",
" - `origin` is a current member. In this case, the bond is unreserved and origin is",
" removed as a member, consequently not being a candidate for the next round anymore.",
" Similar to [`remove_voter`], if replacement runners exists, they are immediately used."
]
},
{
"name": "remove_member",
"args": [
{
"name": "who",
"type": "LookupSource"
}
],
"docs": [
" Remove a particular member from the set. This is effective immediately and the bond of",
" the outgoing member is slashed.",
"",
" If a runner-up is available, then the best runner-up will be removed and replaces the",
" outgoing member. Otherwise, a new phragmen round is started.",
"",
" Note that this does not affect the designated block number of the next election.",
"",
" # <weight>",
" #### State",
" Reads: O(do_phragmen)",
" Writes: O(do_phragmen)",
" # </weight>"
]
}
],
"events": [
{
"name": "NewTerm",
"args": [
"Vec<(AccountId,Balance)>"
],
"docs": [
" A new term with new members. This indicates that enough candidates existed, not that",
" enough have has been elected. The inner value must be examined for this purpose."
]
},
{
"name": "EmptyTerm",
"args": [],
"docs": [
" No (or not enough) candidates existed for this round."
]
},
{
"name": "MemberKicked",
"args": [
"AccountId"
],
"docs": [
" A member has been removed. This should always be followed by either `NewTerm` ot",
" `EmptyTerm`."
]
},
{
"name": "MemberRenounced",
"args": [
"AccountId"
],
"docs": [
" A member has renounced their candidacy."
]
},
{
"name": "VoterReported",
"args": [
"AccountId",
"AccountId",
"bool"
],
"docs": [
" A voter (first element) was reported (byt the second element) with the the report being",
" successful or not (third element)."
]
}
],
"constants": [
{
"name": "CandidacyBond",
"type": "BalanceOf",
"value": "0x0080c6a47e8d03000000000000000000",
"docs": []
},
{
"name": "VotingBond",
"type": "BalanceOf",
"value": "0x00407a10f35a00000000000000000000",
"docs": []
},
{
"name": "DesiredMembers",
"type": "u32",
"value": "0x0d000000",
"docs": []
},
{
"name": "DesiredRunnersUp",
"type": "u32",
"value": "0x07000000",
"docs": []
},
{
"name": "TermDuration",
"type": "BlockNumber",
"value": "0x80130300",
"docs": []
}
],
"errors": []
},
{
"name": "TechnicalMembership",
"storage": {
"prefix": "Instance1Membership",
"items": [
{
"name": "Members",
"modifier": "Default",
"type": {
"plain": "Vec<AccountId>"
},
"fallback": "0x00",
"docs": [
" The current membership, stored as an ordered Vec."
]
}
]
},
"calls": [
{
"name": "add_member",
"args": [
{
"name": "who",
"type": "AccountId"
}
],
"docs": [
" Add a member `who` to the set.",
"",
" May only be called from `AddOrigin` or root."
]
},
{
"name": "remove_member",
"args": [
{
"name": "who",
"type": "AccountId"
}
],
"docs": [
" Remove a member `who` from the set.",
"",
" May only be called from `RemoveOrigin` or root."
]
},
{
"name": "swap_member",
"args": [
{
"name": "remove",
"type": "AccountId"
},
{
"name": "add",
"type": "AccountId"
}
],
"docs": [
" Swap out one member `remove` for another `add`.",
"",
" May only be called from `SwapOrigin` or root."
]
},
{
"name": "reset_members",
"args": [
{
"name": "members",
"type": "Vec<AccountId>"
}
],
"docs": [
" Change the membership to a new set, disregarding the existing membership. Be nice and",
" pass `members` pre-sorted.",
"",
" May only be called from `ResetOrigin` or root."
]
},
{
"name": "change_key",
"args": [
{
"name": "new",
"type": "AccountId"
}
],
"docs": [
" Swap out the sending member for some other key `new`.",
"",
" May only be called from `Signed` origin of a current member."
]
}
],
"events": [
{
"name": "MemberAdded",
"args": [],
"docs": [
" The given member was added; see the transaction for who."
]
},
{
"name": "MemberRemoved",
"args": [],
"docs": [
" The given member was removed; see the transaction for who."
]
},
{
"name": "MembersSwapped",
"args": [],
"docs": [
" Two members were swapped; see the transaction for who."
]
},
{
"name": "MembersReset",
"args": [],
"docs": [
" The membership was reset; see the transaction for who the new set is."
]
},
{
"name": "KeyChanged",
"args": [],
"docs": [
" One of the members' keys changed."
]
},
{
"name": "Dummy",
"args": [
"PhantomData"
],
"docs": [
" Phantom member, never used."
]
}
],
"constants": [],
"errors": []
},
{
"name": "FinalityTracker",
"storage": null,
"calls": [
{
"name": "final_hint",
"args": [
{
"name": "hint",
"type": "Compact<BlockNumber>"
}
],
"docs": [
" Hint that the author of this block thinks the best finalized",
" block is the given number."
]
}
],
"events": null,
"constants": [
{
"name": "WindowSize",
"type": "BlockNumber",
"value": "0x65000000",
"docs": [
" The number of recent samples to keep from this chain. Default is 101."
]
},
{
"name": "ReportLatency",
"type": "BlockNumber",
"value": "0xe8030000",
"docs": [
" The delay after which point things become suspicious. Default is 1000."
]
}
],
"errors": []
},
{
"name": "Grandpa",
"storage": {
"prefix": "GrandpaFinality",
"items": [
{
"name": "Authorities",
"modifier": "Default",
"type": {
"plain": "AuthorityList"
},
"fallback": "0x00",
"docs": [
" DEPRECATED",
"",
" This used to store the current authority set, which has been migrated to the well-known",
" GRANDPA_AUTHORITES_KEY unhashed key."
]
},
{
"name": "State",
"modifier": "Default",
"type": {
"plain": "StoredState"
},
"fallback": "0x00",
"docs": [
" State of the current authority set."
]
},
{
"name": "PendingChange",
"modifier": "Optional",
"type": {
"plain": "StoredPendingChange"
},
"fallback": "0x00",
"docs": [
" Pending change: (signaled at, scheduled change)."
]
},
{
"name": "NextForced",
"modifier": "Optional",
"type": {
"plain": "BlockNumber"
},
"fallback": "0x00",
"docs": [
" next block number where we can force a change."
]
},
{
"name": "Stalled",
"modifier": "Optional",
"type": {
"plain": "(BlockNumber,BlockNumber)"
},
"fallback": "0x00",
"docs": [
" `true` if we are currently stalled."
]
},
{
"name": "CurrentSetId",
"modifier": "Default",
"type": {
"plain": "SetId"
},
"fallback": "0x0000000000000000",
"docs": [
" The number of changes (both in terms of keys and underlying economic responsibilities)",
" in the \"set\" of Grandpa validators from genesis."
]
},
{
"name": "SetIdSession",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "SetId",
"value": "SessionIndex",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" A mapping from grandpa set ID to the index of the *most recent* session for which its members were responsible."
]
}
]
},
"calls": [
{
"name": "report_misbehavior",
"args": [
{
"name": "_report",
"type": "Bytes"
}
],
"docs": [
" Report some misbehavior."
]
}
],
"events": [
{
"name": "NewAuthorities",
"args": [
"AuthorityList"
],
"docs": [
" New authority set has been applied."
]
},
{
"name": "Paused",
"args": [],
"docs": [
" Current authority set has been paused."
]
},
{
"name": "Resumed",
"args": [],
"docs": [
" Current authority set has been resumed."
]
}
],
"constants": [],
"errors": []
},
{
"name": "Treasury",
"storage": {
"prefix": "Treasury",
"items": [
{
"name": "ProposalCount",
"modifier": "Default",
"type": {
"plain": "ProposalIndex"
},
"fallback": "0x00000000",
"docs": [
" Number of proposals that have been made."
]
},
{
"name": "Proposals",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "ProposalIndex",
"value": "TreasuryProposal",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Proposals that have been made."
]
},
{
"name": "Approvals",
"modifier": "Default",
"type": {
"plain": "Vec<ProposalIndex>"
},
"fallback": "0x00",
"docs": [
" Proposal indices that have been approved but not yet awarded."
]
}
]
},
"calls": [
{
"name": "propose_spend",
"args": [
{
"name": "value",
"type": "Compact<BalanceOf>"
},
{
"name": "beneficiary",
"type": "LookupSource"
}
],
"docs": [
" Put forward a suggestion for spending. A deposit proportional to the value",
" is reserved and slashed if the proposal is rejected. It is returned once the",
" proposal is awarded.",
"",
" # <weight>",
" - O(1).",
" - Limited storage reads.",
" - One DB change, one extra DB entry.",
" # </weight>"
]
},
{
"name": "reject_proposal",
"args": [
{
"name": "proposal_id",
"type": "Compact<ProposalIndex>"
}
],
"docs": [
" Reject a proposed spend. The original deposit will be slashed.",
"",
" # <weight>",
" - O(1).",
" - Limited storage reads.",
" - One DB clear.",
" # </weight>"
]
},
{
"name": "approve_proposal",
"args": [
{
"name": "proposal_id",
"type": "Compact<ProposalIndex>"
}
],
"docs": [
" Approve a proposal. At a later time, the proposal will be allocated to the beneficiary",
" and the original deposit will be returned.",
"",
" # <weight>",
" - O(1).",
" - Limited storage reads.",
" - One DB change.",
" # </weight>"
]
}
],
"events": [
{
"name": "Proposed",
"args": [
"ProposalIndex"
],
"docs": [
" New proposal."
]
},
{
"name": "Spending",
"args": [
"Balance"
],
"docs": [
" We have ended a spend period and will now allocate funds."
]
},
{
"name": "Awarded",
"args": [
"ProposalIndex",
"Balance",
"AccountId"
],
"docs": [
" Some funds have been allocated."
]
},
{
"name": "Burnt",
"args": [
"Balance"
],
"docs": [
" Some of our funds have been burnt."
]
},
{
"name": "Rollover",
"args": [
"Balance"
],
"docs": [
" Spending has finished; this is the amount that rolls over until next spend."
]
},
{
"name": "Deposit",
"args": [
"Balance"
],
"docs": [
" Some funds have been deposited."
]
}
],
"constants": [
{
"name": "ProposalBond",
"type": "Permill",
"value": "0x50c30000",
"docs": [
" 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."
]
},
{
"name": "ProposalBondMinimum",
"type": "BalanceOf",
"value": "0x00407a10f35a00000000000000000000",
"docs": [
" Minimum amount of funds that should be placed in a deposit for making a proposal."
]
},
{
"name": "SpendPeriod",
"type": "BlockNumber",
"value": "0x80700000",
"docs": [
" Period between successive spends."
]
},
{
"name": "Burn",
"type": "Permill",
"value": "0x20a10700",
"docs": [
" Percentage of spare funds (if any) that are burnt per spend period."
]
}
],
"errors": []
},
{
"name": "Contracts",
"storage": {
"prefix": "Contract",
"items": [
{
"name": "GasSpent",
"modifier": "Default",
"type": {
"plain": "Gas"
},
"fallback": "0x0000000000000000",
"docs": [
" Gas spent so far in this block."
]
},
{
"name": "CurrentSchedule",
"modifier": "Default",
"type": {
"plain": "Schedule"
},
"fallback": "0x0000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000008700000000000000af0000000000000001000000000000000100000000000000040000000000010010000000004000000020000000",
"docs": [
" Current cost schedule for contracts."
]
},
{
"name": "PristineCode",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "CodeHash",
"value": "Bytes",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" A mapping from an original code hash to the original code, untouched by instrumentation."
]
},
{
"name": "CodeStorage",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "CodeHash",
"value": "PrefabWasmModule",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" A mapping between an original code hash and instrumented wasm code, ready for execution."
]
},
{
"name": "AccountCounter",
"modifier": "Default",
"type": {
"plain": "u64"
},
"fallback": "0x0000000000000000",
"docs": [
" The subtrie counter."
]
},
{
"name": "ContractInfoOf",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "ContractInfo",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" The code associated with a given account."
]
},
{
"name": "GasPrice",
"modifier": "Default",
"type": {
"plain": "BalanceOf"
},
"fallback": "0x01000000000000000000000000000000",
"docs": [
" The price of one unit of gas."
]
}
]
},
"calls": [
{
"name": "update_schedule",
"args": [
{
"name": "schedule",
"type": "Schedule"
}
],
"docs": [
" Updates the schedule for metering contracts.",
"",
" The schedule must have a greater version than the stored schedule."
]
},
{
"name": "put_code",
"args": [
{
"name": "gas_limit",
"type": "Compact<Gas>"
},
{
"name": "code",
"type": "Bytes"
}
],
"docs": [
" Stores the given binary Wasm code into the chain's storage and returns its `codehash`.",
" You can instantiate contracts only with stored code."
]
},
{
"name": "call",
"args": [
{
"name": "dest",
"type": "LookupSource"
},
{
"name": "value",
"type": "Compact<BalanceOf>"
},
{
"name": "gas_limit",
"type": "Compact<Gas>"
},
{
"name": "data",
"type": "Bytes"
}
],
"docs": [
" Makes a call to an account, optionally transferring some balance.",
"",
" * If the account is a smart-contract account, the associated code will be",
" executed and any value will be transferred.",
" * If the account is a regular account, any value will be transferred.",
" * If no account exists and the call value is not less than `existential_deposit`,",
" a regular account will be created and any value will be transferred."
]
},
{
"name": "instantiate",
"args": [
{
"name": "endowment",
"type": "Compact<BalanceOf>"
},
{
"name": "gas_limit",
"type": "Compact<Gas>"
},
{
"name": "code_hash",
"type": "CodeHash"
},
{
"name": "data",
"type": "Bytes"
}
],
"docs": [
" Instantiates a new contract from the `codehash` generated by `put_code`, optionally transferring some balance.",
"",
" Instantiation is executed as follows:",
"",
" - The destination address is computed based on the sender and hash of the code.",
" - The smart-contract account is created at the computed address.",
" - The `ctor_code` is executed in the context of the newly-created account. Buffer returned",
" after the execution is saved as the `code` of the account. That code will be invoked",
" upon any call received by this account.",
" - The contract is initialized."
]
},
{
"name": "claim_surcharge",
"args": [
{
"name": "dest",
"type": "AccountId"
},
{
"name": "aux_sender",
"type": "Option<AccountId>"
}
],
"docs": [
" Allows block producers to claim a small reward for evicting a contract. If a block producer",
" fails to do so, a regular users will be allowed to claim the reward.",
"",
" If contract is not evicted as a result of this call, no actions are taken and",
" the sender is not eligible for the reward."
]
}
],
"events": [
{
"name": "Transfer",
"args": [
"AccountId",
"AccountId",
"Balance"
],
"docs": [
" Transfer happened `from` to `to` with given `value` as part of a `call` or `instantiate`."
]
},
{
"name": "Instantiated",
"args": [
"AccountId",
"AccountId"
],
"docs": [
" Contract deployed by address at the specified address."
]
},
{
"name": "CodeStored",
"args": [
"Hash"
],
"docs": [
" Code with the specified hash has been stored."
]
},
{
"name": "ScheduleUpdated",
"args": [
"u32"
],
"docs": [
" Triggered when the current schedule is updated."
]
},
{
"name": "Dispatched",
"args": [
"AccountId",
"bool"
],
"docs": [
" A call was dispatched from the given account. The bool signals whether it was",
" successful execution or not."
]
},
{
"name": "Contract",
"args": [
"AccountId",
"Bytes"
],
"docs": [
" An event from contract of account."
]
}
],
"constants": [
{
"name": "SignedClaimHandicap",
"type": "BlockNumber",
"value": "0x02000000",
"docs": [
" Number of block delay an extrinsic claim surcharge has.",
"",
" When claim surcharge is called by an extrinsic the rent is checked",
" for current_block - delay"
]
},
{
"name": "TombstoneDeposit",
"type": "BalanceOf",
"value": "0x00407a10f35a00000000000000000000",
"docs": [
" The minimum amount required to generate a tombstone."
]
},
{
"name": "StorageSizeOffset",
"type": "u32",
"value": "0x08000000",
"docs": [
" Size of a contract at the time of instantiaion. This is a simple way to ensure that",
" empty contracts eventually gets deleted."
]
},
{
"name": "RentByteFee",
"type": "BalanceOf",
"value": "0x00407a10f35a00000000000000000000",
"docs": [
" Price of a byte of storage per one block interval. Should be greater than 0."
]
},
{
"name": "RentDepositOffset",
"type": "BalanceOf",
"value": "0x00008a5d784563010000000000000000",
"docs": [
" The amount of funds a contract should deposit in order to offset",
" the cost of one byte.",
"",
" Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1 BU/byte/day,",
" then a contract with 1,000,000 BU that uses 1,000 bytes of storage would pay no rent.",
" But if the balance reduced to 500,000 BU and the storage stayed the same at 1,000,",
" then it would pay 500 BU/day."
]
},
{
"name": "SurchargeReward",
"type": "BalanceOf",
"value": "0x0080a1a76b4a35000000000000000000",
"docs": [
" Reward that is received by the party whose touch has led",
" to removal of a contract."
]
},
{
"name": "TransferFee",
"type": "BalanceOf",
"value": "0x0010a5d4e80000000000000000000000",
"docs": [
" The fee required to make a transfer."
]
},
{
"name": "CreationFee",
"type": "BalanceOf",
"value": "0x0010a5d4e80000000000000000000000",
"docs": [
" The fee required to create an account."
]
},
{
"name": "TransactionBaseFee",
"type": "BalanceOf",
"value": "0x0010a5d4e80000000000000000000000",
"docs": [
" The fee to be paid for making a transaction; the base."
]
},
{
"name": "TransactionByteFee",
"type": "BalanceOf",
"value": "0x00e40b54020000000000000000000000",
"docs": [
" The fee to be paid for making a transaction; the per-byte portion."
]
},
{
"name": "ContractFee",
"type": "BalanceOf",
"value": "0x0010a5d4e80000000000000000000000",
"docs": [
" The fee required to instantiate a contract instance. A reasonable default value",
" is 21."
]
},
{
"name": "CallBaseFee",
"type": "Gas",
"value": "0xe803000000000000",
"docs": [
" The base fee charged for calling into a contract. A reasonable default",
" value is 135."
]
},
{
"name": "InstantiateBaseFee",
"type": "Gas",
"value": "0xe803000000000000",
"docs": [
" The base fee charged for instantiating a contract. A reasonable default value",
" is 175."
]
},
{
"name": "MaxDepth",
"type": "u32",
"value": "0x20000000",
"docs": [
" The maximum nesting level of a call/instantiate stack. A reasonable default",
" value is 100."
]
},
{
"name": "MaxValueSize",
"type": "u32",
"value": "0x00400000",
"docs": [
" The maximum size of a storage value in bytes. A reasonable default is 16 KiB."
]
},
{
"name": "BlockGasLimit",
"type": "Gas",
"value": "0x8096980000000000",
"docs": [
" The maximum amount of gas that could be expended per block. A reasonable",
" default value is 10_000_000."
]
}
],
"errors": []
},
{
"name": "Sudo",
"storage": {
"prefix": "Sudo",
"items": [
{
"name": "Key",
"modifier": "Default",
"type": {
"plain": "AccountId"
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"docs": [
" The `AccountId` of the sudo key."
]
}
]
},
"calls": [
{
"name": "sudo",
"args": [
{
"name": "proposal",
"type": "Proposal"
}
],
"docs": [
" Authenticates the sudo key and dispatches a function call with `Root` origin.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" # <weight>",
" - O(1).",
" - Limited storage reads.",
" - One DB write (event).",
" - Unknown weight of derivative `proposal` execution.",
" # </weight>"
]
},
{
"name": "set_key",
"args": [
{
"name": "new",
"type": "LookupSource"
}
],
"docs": [
" Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" # <weight>",
" - O(1).",
" - Limited storage reads.",
" - One DB change.",
" # </weight>"
]
},
{
"name": "sudo_as",
"args": [
{
"name": "who",
"type": "LookupSource"
},
{
"name": "proposal",
"type": "Proposal"
}
],
"docs": [
" Authenticates the sudo key and dispatches a function call with `Signed` origin from",
" a given account.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" # <weight>",
" - O(1).",
" - Limited storage reads.",
" - One DB write (event).",
" - Unknown weight of derivative `proposal` execution.",
" # </weight>"
]
}
],
"events": [
{
"name": "Sudid",
"args": [
"bool"
],
"docs": [
" A sudo just took place."
]
},
{
"name": "KeyChanged",
"args": [
"AccountId"
],
"docs": [
" The sudoer just switched identity; the old key is supplied."
]
},
{
"name": "SudoAsDone",
"args": [
"bool"
],
"docs": [
" A sudo just took place."
]
}
],
"constants": [],
"errors": []
},
{
"name": "ImOnline",
"storage": {
"prefix": "ImOnline",
"items": [
{
"name": "GossipAt",
"modifier": "Default",
"type": {
"plain": "BlockNumber"
},
"fallback": "0x00000000",
"docs": [
" The block number when we should gossip."
]
},
{
"name": "Keys",
"modifier": "Default",
"type": {
"plain": "Vec<AuthorityId>"
},
"fallback": "0x00",
"docs": [
" The current set of keys that may issue a heartbeat."
]
},
{
"name": "ReceivedHeartbeats",
"modifier": "Optional",
"type": {
"doubleMap": {
"hasher": "Blake2_256",
"key1": "SessionIndex",
"key2": "AuthIndex",
"value": "Bytes",
"key2Hasher": "Blake2_256"
}
},
"fallback": "0x00",
"docs": [
" For each session index, we keep a mapping of `AuthIndex`",
" to `offchain::OpaqueNetworkState`."
]
},
{
"name": "AuthoredBlocks",
"modifier": "Default",
"type": {
"doubleMap": {
"hasher": "Blake2_256",
"key1": "SessionIndex",
"key2": "ValidatorId",
"value": "u32",
"key2Hasher": "Blake2_256"
}
},
"fallback": "0x00000000",
"docs": [
" For each session index, we keep a mapping of `T::ValidatorId` to the",
" number of blocks authored by the given authority."
]
}
]
},
"calls": [
{
"name": "heartbeat",
"args": [
{
"name": "heartbeat",
"type": "Heartbeat"
},
{
"name": "_signature",
"type": "Signature"
}
],
"docs": []
}
],
"events": [
{
"name": "HeartbeatReceived",
"args": [
"AuthorityId"
],
"docs": [
" A new heartbeat was received from `AuthorityId`"
]
},
{
"name": "AllGood",
"args": [],
"docs": [
" At the end of the session, no offence was committed."
]
},
{
"name": "SomeOffline",
"args": [
"Vec<IdentificationTuple>"
],
"docs": [
" At the end of the session, at least once validator was found to be offline."
]
}
],
"constants": [],
"errors": []
},
{
"name": "AuthorityDiscovery",
"storage": null,
"calls": [],
"events": null,
"constants": [],
"errors": []
},
{
"name": "Offences",
"storage": {
"prefix": "Offences",
"items": [
{
"name": "Reports",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "ReportIdOf",
"value": "OffenceDetails",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" The primary structure that holds all offence records keyed by report identifiers."
]
},
{
"name": "ConcurrentReportsIndex",
"modifier": "Default",
"type": {
"doubleMap": {
"hasher": "Blake2_256",
"key1": "Kind",
"key2": "OpaqueTimeSlot",
"value": "Vec<ReportIdOf>",
"key2Hasher": "Blake2_256"
}
},
"fallback": "0x00",
"docs": [
" A vector of reports of the same kind that happened at the same time slot."
]
},
{
"name": "ReportsByKindIndex",
"modifier": "Default",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "Kind",
"value": "Bytes",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" Enumerates all reports of a kind along with the time they happened.",
"",
" All reports are sorted by the time of offence.",
"",
" Note that the actual type of this mapping is `Vec<u8>`, this is because values of",
" different types are not supported at the moment so we are doing the manual serialization."
]
}
]
},
"calls": [],
"events": [
{
"name": "Offence",
"args": [
"Kind",
"OpaqueTimeSlot"
],
"docs": [
" There is an offence reported of the given `kind` happened at the `session_index` and",
" (kind-specific) time slot. This event is not deposited for duplicate slashes."
]
}
],
"constants": [],
"errors": []
},
{
"name": "RandomnessCollectiveFlip",
"storage": {
"prefix": "RandomnessCollectiveFlip",
"items": [
{
"name": "RandomMaterial",
"modifier": "Default",
"type": {
"plain": "Vec<Hash>"
},
"fallback": "0x00",
"docs": [
" Series of block headers from the last 81 blocks that acts as random seed material. This",
" is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of",
" the oldest hash."
]
}
]
},
"calls": [],
"events": null,
"constants": [],
"errors": []
},
{
"name": "Nicks",
"storage": {
"prefix": "Sudo",
"items": [
{
"name": "NameOf",
"modifier": "Optional",
"type": {
"map": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "(Bytes,BalanceOf)",
"linked": false
}
},
"fallback": "0x00",
"docs": [
" The lookup table for names."
]
}
]
},
"calls": [
{
"name": "set_name",
"args": [
{
"name": "name",
"type": "Bytes"
}
],
"docs": [
" Set an account's name. The name should be a UTF-8-encoded string by convention, though",
" we don't check it.",
"",
" The name may not be more than `T::MaxLength` bytes, nor less than `T::MinLength` bytes.",
"",
" If the account doesn't already have a name, then a fee of `ReservationFee` is reserved",
" in the account.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" # <weight>",
" - O(1).",
" - At most one balance operation.",
" - One storage read/write.",
" - One event.",
" # </weight>"
]
},
{
"name": "clear_name",
"args": [],
"docs": [
" Clear an account's name and return the deposit. Fails if the account was not named.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" # <weight>",
" - O(1).",
" - One balance operation.",
" - One storage read/write.",
" - One event.",
" # </weight>"
]
},
{
"name": "kill_name",
"args": [
{
"name": "target",
"type": "LookupSource"
}
],
"docs": [
" Remove an account's name and take charge of the deposit.",
"",
" Fails if `who` has not been named. The deposit is dealt with through `T::Slashed`",
" imbalance handler.",
"",
" The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.",
"",
" # <weight>",
" - O(1).",
" - One unbalanced handler (probably a balance transfer)",
" - One storage read/write.",
" - One event.",
" # </weight>"
]
},
{
"name": "force_name",
"args": [
{
"name": "target",
"type": "LookupSource"
},
{
"name": "name",
"type": "Bytes"
}
],
"docs": [
" Set a third-party account's name with no deposit.",
"",
" No length checking is done on the name.",
"",
" The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.",
"",
" # <weight>",
" - O(1).",
" - At most one balance operation.",
" - One storage read/write.",
" - One event.",
" # </weight>"
]
}
],
"events": [
{
"name": "NameSet",
"args": [
"AccountId"
],
"docs": [
" A name was set."
]
},
{
"name": "NameForced",
"args": [
"AccountId"
],
"docs": [
" A name was forcibly set."
]
},
{
"name": "NameChanged",
"args": [
"AccountId"
],
"docs": [
" A name was changed."
]
},
{
"name": "NameCleared",
"args": [
"AccountId",
"Balance"
],
"docs": [
" A name was cleared, and the given balance returned."
]
},
{
"name": "NameKilled",
"args": [
"AccountId",
"Balance"
],
"docs": [
" A name was removed and the given balance slashed."
]
}
],
"constants": [
{
"name": "ReservationFee",
"type": "BalanceOf",
"value": "0x00407a10f35a00000000000000000000",
"docs": [
" Reservation fee."
]
},
{
"name": "MinLength",
"type": "u32",
"value": "0x03000000",
"docs": [
" The minimum length a name may be."
]
},
{
"name": "MaxLength",
"type": "u32",
"value": "0x10000000",
"docs": [
" The maximum length a name may be."
]
}
],
"errors": []
}
]
}
}
}