Skip to content

Instantly share code, notes, and snippets.

@XuNeal
Created March 19, 2020 07:04
Show Gist options
  • Save XuNeal/f6347bf591b9e584b691f76ab5227155 to your computer and use it in GitHub Desktop.
Save XuNeal/f6347bf591b9e584b691f76ab5227155 to your computer and use it in GitHub Desktop.
{
"consts": {
"babe": {
"epochDuration": 200,
"expectedBlockTime": 3000
},
"timestamp": {
"minimumPeriod": 1500
},
"balances": {
"existentialDeposit": 100000000000000,
"transferFee": 1000000000000,
"creationFee": 1000000000000
},
"transactionPayment": {
"transactionBaseFee": 1000000000000,
"transactionByteFee": 10000000000
},
"staking": {
"sessionsPerEra": 6,
"bondingDuration": 672
},
"session": {
"dedupKeyPrefix": "0x3a73657373696f6e3a6b657973"
},
"democracy": {
"enactmentPeriod": 864000,
"launchPeriod": 806400,
"votingPeriod": 806400,
"minimumDeposit": "0x0000000000000000002386f26fc10000",
"emergencyVotingPeriod": 86400,
"cooloffPeriod": 806400,
"preimageByteDeposit": 1000000000000
},
"elections": {
"candidacyBond": 1000000000000000,
"votingBond": 100000000000000,
"desiredMembers": 13,
"desiredRunnersUp": 7,
"termDuration": 201600
},
"finalityTracker": {
"windowSize": 101,
"reportLatency": 1000
},
"treasury": {
"proposalBond": 50000,
"proposalBondMinimum": 100000000000000,
"spendPeriod": 28800,
"burn": 500000,
"tipCountdown": 28800,
"tipFindersFee": 20,
"tipReportDepositBase": 100000000000000,
"tipReportDepositPerByte": 1000000000000
},
"contracts": {
"signedClaimHandicap": 2,
"tombstoneDeposit": 100000000000000,
"storageSizeOffset": 8,
"rentByteFee": 100000000000000,
"rentDepositOffset": "0x0000000000000000016345785d8a0000",
"surchargeReward": "0x000000000000000000354a6ba7a18000",
"transferFee": 1000000000000,
"creationFee": 1000000000000,
"transactionBaseFee": 1000000000000,
"transactionByteFee": 10000000000,
"contractFee": 1000000000000,
"callBaseFee": 1000,
"instantiateBaseFee": 1000,
"maxDepth": 32,
"maxValueSize": 16384,
"blockGasLimit": 10000000
},
"society": {
"candidateDeposit": 1000000000000000,
"wrongSideDeduction": 200000000000000,
"maxStrikes": 10,
"periodSpend": "0x000000000000000000b1a2bc2ec50000",
"rotationPeriod": 96000,
"challengePeriod": 201600
}
},
"metadata": {
"magicNumber": 1635018093,
"metadata": {
"V10": {
"modules": [
{
"name": "System",
"storage": {
"prefix": "System",
"items": [
{
"name": "AccountNonce",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "Index",
"linked": false
}
},
"fallback": "0x00000000",
"documentation": [
" Extrinsics nonce for accounts."
]
},
{
"name": "ExtrinsicCount",
"modifier": "optional",
"type": {
"Plain": "u32"
},
"fallback": "0x00",
"documentation": [
" Total extrinsics count for the current block."
]
},
{
"name": "AllExtrinsicsWeight",
"modifier": "optional",
"type": {
"Plain": "Weight"
},
"fallback": "0x00",
"documentation": [
" Total weight for all extrinsics put together, for the current block."
]
},
{
"name": "AllExtrinsicsLen",
"modifier": "optional",
"type": {
"Plain": "u32"
},
"fallback": "0x00",
"documentation": [
" Total length (in bytes) for all extrinsics put together, for the current block."
]
},
{
"name": "BlockHash",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "BlockNumber",
"value": "Hash",
"linked": false
}
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" Map of block numbers to block hashes."
]
},
{
"name": "ExtrinsicData",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "u32",
"value": "Bytes",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Extrinsics data for the current block (maps an extrinsic's index to its data)."
]
},
{
"name": "Number",
"modifier": "default",
"type": {
"Plain": "BlockNumber"
},
"fallback": "0x00000000",
"documentation": [
" The current block number being processed. Set by `execute_block`."
]
},
{
"name": "ParentHash",
"modifier": "default",
"type": {
"Plain": "Hash"
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" Hash of the previous block."
]
},
{
"name": "ExtrinsicsRoot",
"modifier": "default",
"type": {
"Plain": "Hash"
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" Extrinsics root of the current block, also part of the block header."
]
},
{
"name": "Digest",
"modifier": "default",
"type": {
"Plain": "DigestOf"
},
"fallback": "0x00",
"documentation": [
" Digest of the current block, also part of the block header."
]
},
{
"name": "Events",
"modifier": "default",
"type": {
"Plain": "Vec<EventRecord>"
},
"fallback": "0x00",
"documentation": [
" Events deposited for the current block."
]
},
{
"name": "EventCount",
"modifier": "default",
"type": {
"Plain": "EventIndex"
},
"fallback": "0x00000000",
"documentation": [
" The number of events in the `Events<T>` list."
]
},
{
"name": "EventTopics",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "Hash",
"value": "Vec<(BlockNumber,EventIndex)>",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Mapping between a topic (represented by T::Hash) and a vector of indexes",
" of events in the `<Events<T>>` list.",
"",
" 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": [],
"documentation": [
" A big dispatch that will disallow any other transaction to be included."
]
},
{
"name": "remark",
"args": [
{
"name": "_remark",
"type": "Bytes"
}
],
"documentation": [
" Make some on-chain remark."
]
},
{
"name": "set_heap_pages",
"args": [
{
"name": "pages",
"type": "u64"
}
],
"documentation": [
" Set the number of pages in the WebAssembly environment's heap."
]
},
{
"name": "set_code",
"args": [
{
"name": "code",
"type": "Bytes"
}
],
"documentation": [
" Set the new runtime code."
]
},
{
"name": "set_code_without_checks",
"args": [
{
"name": "code",
"type": "Bytes"
}
],
"documentation": [
" Set the new runtime code without doing any checks of the given `code`."
]
},
{
"name": "set_changes_trie_config",
"args": [
{
"name": "changes_trie_config",
"type": "Option<ChangesTrieConfiguration>"
}
],
"documentation": [
" Set the new changes trie configuration."
]
},
{
"name": "set_storage",
"args": [
{
"name": "items",
"type": "Vec<KeyValue>"
}
],
"documentation": [
" Set some items of storage."
]
},
{
"name": "kill_storage",
"args": [
{
"name": "keys",
"type": "Vec<Key>"
}
],
"documentation": [
" Kill some items from storage."
]
},
{
"name": "kill_prefix",
"args": [
{
"name": "prefix",
"type": "Key"
}
],
"documentation": [
" Kill all storage items with a key that starts with the given prefix."
]
}
],
"events": [
{
"name": "ExtrinsicSuccess",
"args": [
"DispatchInfo"
],
"documentation": [
" An extrinsic completed successfully."
]
},
{
"name": "ExtrinsicFailed",
"args": [
"DispatchError",
"DispatchInfo"
],
"documentation": [
" An extrinsic failed."
]
}
],
"constants": [],
"errors": [
{
"name": "InvalidSpecName",
"documentation": [
" The name of specification does not match between the current runtime",
" and the new runtime."
]
},
{
"name": "SpecVersionNotAllowedToDecrease",
"documentation": [
" The specification version is not allowed to decrease between the current runtime",
" and the new runtime."
]
},
{
"name": "ImplVersionNotAllowedToDecrease",
"documentation": [
" The implementation version is not allowed to decrease between the current runtime",
" and the new runtime."
]
},
{
"name": "SpecOrImplVersionNeedToIncrease",
"documentation": [
" The specification or the implementation version need to increase between the",
" current runtime and the new runtime."
]
},
{
"name": "FailedToExtractRuntimeVersion",
"documentation": [
" Failed to extract the runtime version from the new runtime.",
"",
" Either calling `Core_version` or decoding `RuntimeVersion` failed."
]
}
]
},
{
"name": "Utility",
"storage": {
"prefix": "Utility",
"items": [
{
"name": "Multisigs",
"modifier": "optional",
"type": {
"DoubleMap": {
"hasher": "twox64Concat",
"key1": "AccountId",
"key2": "[u8;32]",
"value": "Multisig",
"key2Hasher": "blake2128Concat"
}
},
"fallback": "0x00",
"documentation": [
" The set of open multisig operations."
]
}
]
},
"calls": [
{
"name": "batch",
"args": [
{
"name": "calls",
"type": "Vec<Call>"
}
],
"documentation": [
" Send a batch of dispatch calls.",
"",
" This will execute until the first one fails and then stop.",
"",
" May be called from any origin.",
"",
" - `calls`: The calls to be dispatched from the same origin.",
"",
" # <weight>",
" - The sum of the weights of the `calls`.",
" - One event.",
" # </weight>",
"",
" This will return `Ok` in all circumstances. To determine the success of the batch, an",
" event is deposited. If a call failed and the batch was interrupted, then the",
" `BatchInterrupted` event is deposited, along with the number of successful calls made",
" and the error of the failed call. If all were successful, then the `BatchCompleted`",
" event is deposited."
]
},
{
"name": "as_sub",
"args": [
{
"name": "index",
"type": "u16"
},
{
"name": "call",
"type": "Call"
}
],
"documentation": [
" Send a call through an indexed pseudonym of the sender.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" # <weight>",
" - The weight of the `call`.",
" # </weight>"
]
},
{
"name": "as_multi",
"args": [
{
"name": "threshold",
"type": "u16"
},
{
"name": "other_signatories",
"type": "Vec<AccountId>"
},
{
"name": "maybe_timepoint",
"type": "Option<Timepoint>"
},
{
"name": "call",
"type": "Call"
}
],
"documentation": [
" 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.",
"",
" Payment: `MultisigDepositBase` will be reserved if this is the first approval, plus",
" `threshold` times `MultisigDepositFactor`. It is returned once this dispatch happens or",
" is cancelled.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" - `threshold`: The total number of approvals for this dispatch before it is executed.",
" - `other_signatories`: The accounts (other than the sender) who can approve this",
" dispatch. May not be empty.",
" - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is",
" 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`. Otherwise",
" 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>",
" - `O(S + Z + Call)`.",
" - Up to one balance-reserve or unreserve operation.",
" - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
" 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.",
" - One event.",
" - The weight of the `call`.",
" - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
" deposit taken for its lifetime of",
" `MultisigDepositBase + threshold * MultisigDepositFactor`.",
" # </weight>"
]
},
{
"name": "approve_as_multi",
"args": [
{
"name": "threshold",
"type": "u16"
},
{
"name": "other_signatories",
"type": "Vec<AccountId>"
},
{
"name": "maybe_timepoint",
"type": "Option<Timepoint>"
},
{
"name": "call_hash",
"type": "[u8;32]"
}
],
"documentation": [
" Register approval for a dispatch to be made from a deterministic composite account if",
" approved by a total of `threshold - 1` of `other_signatories`.",
"",
" Payment: `MultisigDepositBase` will be reserved if this is the first approval, plus",
" `threshold` times `MultisigDepositFactor`. It is returned once this dispatch happens or",
" is cancelled.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" - `threshold`: The total number of approvals for this dispatch before it is executed.",
" - `other_signatories`: The accounts (other than the sender) who can approve this",
" dispatch. May not be empty.",
" - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is",
" 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.",
"",
" 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.",
" - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
" 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.",
" - One event.",
" - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
" deposit taken for its lifetime of",
" `MultisigDepositBase + threshold * MultisigDepositFactor`.",
" # </weight>"
]
},
{
"name": "cancel_as_multi",
"args": [
{
"name": "threshold",
"type": "u16"
},
{
"name": "other_signatories",
"type": "Vec<AccountId>"
},
{
"name": "timepoint",
"type": "Timepoint"
},
{
"name": "call_hash",
"type": "[u8;32]"
}
],
"documentation": [
" 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_.",
"",
" - `threshold`: The total number of approvals for this dispatch before it is executed.",
" - `other_signatories`: The accounts (other than the sender) who can approve this",
" dispatch. May not be empty.",
" - `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.",
" - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
" signatories. `S` is capped by `MaxSignatories`, with weight being proportional.",
" - One encode & hash, both of complexity `O(S)`.",
" - One event.",
" - I/O: 1 read `O(S)`, one remove.",
" - Storage: removes one item.",
" # </weight>"
]
}
],
"events": [
{
"name": "BatchInterrupted",
"args": [
"u32",
"DispatchError"
],
"documentation": [
" Batch of dispatches did not complete fully. Index of first failing dispatch given, as",
" well as the error."
]
},
{
"name": "BatchCompleted",
"args": [],
"documentation": [
" Batch of dispatches completed fully with no error."
]
},
{
"name": "NewMultisig",
"args": [
"AccountId",
"AccountId"
],
"documentation": [
" A new multisig operation has begun. First param is the account that is approving,",
" second is the multisig account."
]
},
{
"name": "MultisigApproval",
"args": [
"AccountId",
"Timepoint",
"AccountId"
],
"documentation": [
" A multisig operation has been approved by someone. First param is the account that is",
" approving, third is the multisig account."
]
},
{
"name": "MultisigExecuted",
"args": [
"AccountId",
"Timepoint",
"AccountId",
"DispatchResult"
],
"documentation": [
" A multisig operation has been executed. First param is the account that is",
" approving, third is the multisig account."
]
},
{
"name": "MultisigCancelled",
"args": [
"AccountId",
"Timepoint",
"AccountId"
],
"documentation": [
" A multisig operation has been cancelled. First param is the account that is",
" cancelling, third is the multisig account."
]
}
],
"constants": [],
"errors": []
},
{
"name": "Babe",
"storage": {
"prefix": "Babe",
"items": [
{
"name": "EpochIndex",
"modifier": "default",
"type": {
"Plain": "u64"
},
"fallback": "0x0000000000000000",
"documentation": [
" Current epoch index."
]
},
{
"name": "Authorities",
"modifier": "default",
"type": {
"Plain": "Vec<(AuthorityId,BabeAuthorityWeight)>"
},
"fallback": "0x00",
"documentation": [
" Current epoch authorities."
]
},
{
"name": "GenesisSlot",
"modifier": "default",
"type": {
"Plain": "u64"
},
"fallback": "0x0000000000000000",
"documentation": [
" 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",
"documentation": [
" Current slot number."
]
},
{
"name": "Randomness",
"modifier": "default",
"type": {
"Plain": "[u8;32]"
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" 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",
"documentation": [
" Next epoch randomness."
]
},
{
"name": "SegmentIndex",
"modifier": "default",
"type": {
"Plain": "u32"
},
"fallback": "0x00000000",
"documentation": [
" 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": "blake2256",
"key": "u32",
"value": "Vec<[u8;32]>",
"linked": false
}
},
"fallback": "0x00",
"documentation": []
},
{
"name": "Initialized",
"modifier": "optional",
"type": {
"Plain": "MaybeVrf"
},
"fallback": "0x00",
"documentation": [
" 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",
"documentation": [
" 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",
"documentation": [
" 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",
"documentation": [
" Current time for the current block."
]
},
{
"name": "DidUpdate",
"modifier": "default",
"type": {
"Plain": "bool"
},
"fallback": "0x00",
"documentation": [
" Did the timestamp get updated in this block?"
]
}
]
},
"calls": [
{
"name": "set",
"args": [
{
"name": "now",
"type": "Compact<Moment>"
}
],
"documentation": [
" 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",
"documentation": [
" 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",
"documentation": [
" Uncles"
]
},
{
"name": "Author",
"modifier": "optional",
"type": {
"Plain": "AccountId"
},
"fallback": "0x00",
"documentation": [
" Author of current block."
]
},
{
"name": "DidSetUncles",
"modifier": "default",
"type": {
"Plain": "bool"
},
"fallback": "0x00",
"documentation": [
" Whether uncles were already set in this block."
]
}
]
},
"calls": [
{
"name": "set_uncles",
"args": [
{
"name": "new_uncles",
"type": "Vec<Header>"
}
],
"documentation": [
" Provide a set of uncles."
]
}
],
"events": null,
"constants": [],
"errors": [
{
"name": "InvalidUncleParent",
"documentation": [
" The uncle parent not in the chain."
]
},
{
"name": "UnclesAlreadySet",
"documentation": [
" Uncles already set in the block."
]
},
{
"name": "TooManyUncles",
"documentation": [
" Too many uncles."
]
},
{
"name": "GenesisUncle",
"documentation": [
" The uncle is genesis."
]
},
{
"name": "TooHighUncle",
"documentation": [
" The uncle is too high in chain."
]
},
{
"name": "UncleAlreadyIncluded",
"documentation": [
" The uncle is already included."
]
},
{
"name": "OldUncle",
"documentation": [
" The uncle isn't recent enough to be included."
]
}
]
},
{
"name": "Indices",
"storage": {
"prefix": "Indices",
"items": [
{
"name": "NextEnumSet",
"modifier": "default",
"type": {
"Plain": "AccountIndex"
},
"fallback": "0x00000000",
"documentation": [
" The next free enumeration set."
]
},
{
"name": "EnumSet",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountIndex",
"value": "Vec<AccountId>",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" The enumeration sets."
]
}
]
},
"calls": [],
"events": [
{
"name": "NewAccountIndex",
"args": [
"AccountId",
"AccountIndex"
],
"documentation": [
" 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",
"documentation": [
" The total units issued in the system."
]
},
{
"name": "Vesting",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "VestingSchedule",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Information regarding the vesting of a given account."
]
},
{
"name": "FreeBalance",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "Balance",
"linked": false
}
},
"fallback": "0x00000000000000000000000000000000",
"documentation": [
" 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.",
"",
" `frame_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": "blake2256",
"key": "AccountId",
"value": "Balance",
"linked": false
}
},
"fallback": "0x00000000000000000000000000000000",
"documentation": [
" 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`.",
"",
" `frame_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": "blake2256",
"key": "AccountId",
"value": "Vec<BalanceLock>",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Any liquidity locks on some account balances."
]
}
]
},
"calls": [
{
"name": "transfer",
"args": [
{
"name": "dest",
"type": "Address"
},
{
"name": "value",
"type": "Compact<Balance>"
}
],
"documentation": [
" 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": "Address"
},
{
"name": "new_free",
"type": "Compact<Balance>"
},
{
"name": "new_reserved",
"type": "Compact<Balance>"
}
],
"documentation": [
" 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.",
" # </weight>"
]
},
{
"name": "force_transfer",
"args": [
{
"name": "source",
"type": "Address"
},
{
"name": "dest",
"type": "Address"
},
{
"name": "value",
"type": "Compact<Balance>"
}
],
"documentation": [
" Exactly as `transfer`, except the origin must be root and the source account may be",
" specified."
]
},
{
"name": "transfer_keep_alive",
"args": [
{
"name": "dest",
"type": "Address"
},
{
"name": "value",
"type": "Compact<Balance>"
}
],
"documentation": [
" 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"
],
"documentation": [
" A new account was created."
]
},
{
"name": "ReapedAccount",
"args": [
"AccountId",
"Balance"
],
"documentation": [
" An account was reaped."
]
},
{
"name": "Transfer",
"args": [
"AccountId",
"AccountId",
"Balance",
"Balance"
],
"documentation": [
" Transfer succeeded (from, to, value, fees)."
]
},
{
"name": "BalanceSet",
"args": [
"AccountId",
"Balance",
"Balance"
],
"documentation": [
" A balance was set by root (who, free, reserved)."
]
},
{
"name": "Deposit",
"args": [
"AccountId",
"Balance"
],
"documentation": [
" Some amount was deposited (e.g. for transaction fees)."
]
}
],
"constants": [
{
"name": "ExistentialDeposit",
"type": "Balance",
"value": "0x00407a10f35a00000000000000000000",
"documentation": [
" The minimum amount required to keep an account open."
]
},
{
"name": "TransferFee",
"type": "Balance",
"value": "0x0010a5d4e80000000000000000000000",
"documentation": [
" The fee required to make a transfer."
]
},
{
"name": "CreationFee",
"type": "Balance",
"value": "0x0010a5d4e80000000000000000000000",
"documentation": [
" The fee required to create an account."
]
}
],
"errors": [
{
"name": "VestingBalance",
"documentation": [
" Vesting balance too high to send value"
]
},
{
"name": "LiquidityRestrictions",
"documentation": [
" Account liquidity restrictions prevent withdrawal"
]
},
{
"name": "Overflow",
"documentation": [
" Got an overflow after adding"
]
},
{
"name": "InsufficientBalance",
"documentation": [
" Balance too low to send value"
]
},
{
"name": "ExistentialDeposit",
"documentation": [
" Value too low to create account due to existential deposit"
]
},
{
"name": "KeepAlive",
"documentation": [
" Transfer/payment would kill account"
]
},
{
"name": "ExistingVestingSchedule",
"documentation": [
" A vesting schedule already exists for this account"
]
},
{
"name": "DeadAccount",
"documentation": [
" Beneficiary account must pre-exist"
]
}
]
},
{
"name": "TransactionPayment",
"storage": {
"prefix": "Balances",
"items": [
{
"name": "NextFeeMultiplier",
"modifier": "default",
"type": {
"Plain": "Multiplier"
},
"fallback": "0x0000000000000000",
"documentation": []
}
]
},
"calls": null,
"events": null,
"constants": [
{
"name": "TransactionBaseFee",
"type": "BalanceOf",
"value": "0x0010a5d4e80000000000000000000000",
"documentation": [
" The fee to be paid for making a transaction; the base."
]
},
{
"name": "TransactionByteFee",
"type": "BalanceOf",
"value": "0x00e40b54020000000000000000000000",
"documentation": [
" 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",
"documentation": [
" The ideal number of staking participants."
]
},
{
"name": "MinimumValidatorCount",
"modifier": "default",
"type": {
"Plain": "u32"
},
"fallback": "0x04000000",
"documentation": [
" Minimum number of staking participants before emergency conditions are imposed."
]
},
{
"name": "Invulnerables",
"modifier": "default",
"type": {
"Plain": "Vec<AccountId>"
},
"fallback": "0x00",
"documentation": [
" 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": "blake2256",
"key": "AccountId",
"value": "AccountId",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Map from all locked \"stash\" accounts to the controller account."
]
},
{
"name": "Ledger",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "StakingLedger",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Map from all (unlocked) \"controller\" accounts to the info regarding the staking."
]
},
{
"name": "Payee",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "RewardDestination",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Where the reward payment should be made. Keyed by stash."
]
},
{
"name": "Validators",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "ValidatorPrefs",
"linked": true
}
},
"fallback": "0x00",
"documentation": [
" The map from (wannabe) validator stash key to the preferences of that validator."
]
},
{
"name": "Nominators",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "Nominations",
"linked": true
}
},
"fallback": "0x00",
"documentation": [
" 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": "blake2256",
"key": "AccountId",
"value": "Exposure",
"linked": false
}
},
"fallback": "0x000000",
"documentation": [
" 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",
"documentation": [
" The currently elected validator set keyed by stash account ID."
]
},
{
"name": "CurrentEra",
"modifier": "default",
"type": {
"Plain": "EraIndex"
},
"fallback": "0x00000000",
"documentation": [
" The current era index."
]
},
{
"name": "CurrentEraStart",
"modifier": "default",
"type": {
"Plain": "MomentOf"
},
"fallback": "0x0000000000000000",
"documentation": [
" The start of the current era."
]
},
{
"name": "CurrentEraStartSessionIndex",
"modifier": "default",
"type": {
"Plain": "SessionIndex"
},
"fallback": "0x00000000",
"documentation": [
" The session index at which the current era started."
]
},
{
"name": "CurrentEraPointsEarned",
"modifier": "default",
"type": {
"Plain": "EraPoints"
},
"fallback": "0x0000000000",
"documentation": [
" Rewards for the current era. Using indices of current elected set."
]
},
{
"name": "SlotStake",
"modifier": "default",
"type": {
"Plain": "BalanceOf"
},
"fallback": "0x00000000000000000000000000000000",
"documentation": [
" 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",
"documentation": [
" True if the next session change will be a new era regardless of index."
]
},
{
"name": "SlashRewardFraction",
"modifier": "default",
"type": {
"Plain": "Perbill"
},
"fallback": "0x00000000",
"documentation": [
" 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",
"documentation": [
" 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": "blake2256",
"key": "EraIndex",
"value": "Vec<UnappliedSlash>",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" All unapplied slashes that are queued for later."
]
},
{
"name": "BondedEras",
"modifier": "default",
"type": {
"Plain": "Vec<(EraIndex,SessionIndex)>"
},
"fallback": "0x00",
"documentation": [
" A mapping from still-bonded eras to the first session index of that era."
]
},
{
"name": "ValidatorSlashInEra",
"modifier": "optional",
"type": {
"DoubleMap": {
"hasher": "blake2256",
"key1": "EraIndex",
"key2": "AccountId",
"value": "(Perbill,BalanceOf)",
"key2Hasher": "twox128"
}
},
"fallback": "0x00",
"documentation": [
" 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": "blake2256",
"key1": "EraIndex",
"key2": "AccountId",
"value": "BalanceOf",
"key2Hasher": "twox128"
}
},
"fallback": "0x00",
"documentation": [
" All slashing events on nominators, mapped by era to the highest slash value of the era."
]
},
{
"name": "SlashingSpans",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "SlashingSpans",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Slashing spans for stash accounts."
]
},
{
"name": "SpanSlash",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "(AccountId,SpanIndex)",
"value": "SpanRecord",
"linked": false
}
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" 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",
"documentation": [
" The earliest era for which we have a pending, unapplied slash."
]
},
{
"name": "StorageVersion",
"modifier": "default",
"type": {
"Plain": "u32"
},
"fallback": "0x00000000",
"documentation": [
" The version of storage for upgrade."
]
}
]
},
"calls": [
{
"name": "bond",
"args": [
{
"name": "controller",
"type": "Address"
},
{
"name": "value",
"type": "Compact<BalanceOf>"
},
{
"name": "payee",
"type": "RewardDestination"
}
],
"documentation": [
" 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>"
}
],
"documentation": [
" 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>"
}
],
"documentation": [
" 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": [],
"documentation": [
" 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"
}
],
"documentation": [
" 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<Address>"
}
],
"documentation": [
" 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": [],
"documentation": [
" 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"
}
],
"documentation": [
" (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": "Address"
}
],
"documentation": [
" (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>"
}
],
"documentation": [
" The ideal number of validators."
]
},
{
"name": "force_no_eras",
"args": [],
"documentation": [
" Force there to be no new eras indefinitely.",
"",
" # <weight>",
" - No arguments.",
" # </weight>"
]
},
{
"name": "force_new_era",
"args": [],
"documentation": [
" 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>"
}
],
"documentation": [
" Set the validators who cannot be slashed (if any)."
]
},
{
"name": "force_unstake",
"args": [
{
"name": "stash",
"type": "AccountId"
}
],
"documentation": [
" Force a current staker to become completely unstaked, immediately."
]
},
{
"name": "force_new_era_always",
"args": [],
"documentation": [
" 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>"
}
],
"documentation": [
" 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>"
]
},
{
"name": "rebond",
"args": [
{
"name": "value",
"type": "Compact<BalanceOf>"
}
],
"documentation": [
" Rebond a portion of the stash scheduled to be unlocked.",
"",
" # <weight>",
" - Time complexity: O(1). Bounded by `MAX_UNLOCKING_CHUNKS`.",
" - Storage changes: Can't increase storage, only decrease it.",
" # </weight>"
]
}
],
"events": [
{
"name": "Reward",
"args": [
"Balance",
"Balance"
],
"documentation": [
" 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"
],
"documentation": [
" One validator (and its nominators) has been slashed by the given amount."
]
},
{
"name": "OldSlashingReportDiscarded",
"args": [
"SessionIndex"
],
"documentation": [
" An old slashing report from a prior era was discarded because it could",
" not be processed."
]
}
],
"constants": [
{
"name": "SessionsPerEra",
"type": "SessionIndex",
"value": "0x06000000",
"documentation": [
" Number of sessions per era."
]
},
{
"name": "BondingDuration",
"type": "EraIndex",
"value": "0xa0020000",
"documentation": [
" Number of eras that staked funds must remain bonded for."
]
}
],
"errors": [
{
"name": "NotController",
"documentation": [
" Not a controller account."
]
},
{
"name": "NotStash",
"documentation": [
" Not a stash account."
]
},
{
"name": "AlreadyBonded",
"documentation": [
" Stash is already bonded."
]
},
{
"name": "AlreadyPaired",
"documentation": [
" Controller is already paired."
]
},
{
"name": "EmptyTargets",
"documentation": [
" Targets cannot be empty."
]
},
{
"name": "DuplicateIndex",
"documentation": [
" Duplicate index."
]
},
{
"name": "InvalidSlashIndex",
"documentation": [
" Slash record index out of bounds."
]
},
{
"name": "InsufficientValue",
"documentation": [
" Can not bond with value less than minimum balance."
]
},
{
"name": "NoMoreChunks",
"documentation": [
" Can not schedule more unlock chunks."
]
},
{
"name": "NoUnlockChunk",
"documentation": [
" Can not rebond without unlocking chunks."
]
}
]
},
{
"name": "Session",
"storage": {
"prefix": "Session",
"items": [
{
"name": "Validators",
"modifier": "default",
"type": {
"Plain": "Vec<ValidatorId>"
},
"fallback": "0x00",
"documentation": [
" The current set of validators."
]
},
{
"name": "CurrentIndex",
"modifier": "default",
"type": {
"Plain": "SessionIndex"
},
"fallback": "0x00000000",
"documentation": [
" Current index of the session."
]
},
{
"name": "QueuedChanged",
"modifier": "default",
"type": {
"Plain": "bool"
},
"fallback": "0x00",
"documentation": [
" 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",
"documentation": [
" 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",
"documentation": [
" 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": "blake2256"
}
},
"fallback": "0x00",
"documentation": [
" 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": "blake2256"
}
},
"fallback": "0x00",
"documentation": [
" 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"
}
],
"documentation": [
" 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"
],
"documentation": [
" 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",
"documentation": [
" Used as first key for `NextKeys` and `KeyOwner` to put all the data into the same branch",
" of the trie."
]
}
],
"errors": [
{
"name": "InvalidProof",
"documentation": [
" Invalid ownership proof."
]
},
{
"name": "NoAssociatedValidatorId",
"documentation": [
" No associated validator ID for account."
]
},
{
"name": "DuplicatedKey",
"documentation": [
" Registered duplicate key."
]
}
]
},
{
"name": "Democracy",
"storage": {
"prefix": "Democracy",
"items": [
{
"name": "PublicPropCount",
"modifier": "default",
"type": {
"Plain": "PropIndex"
},
"fallback": "0x00000000",
"documentation": [
" The number of (public) proposals that have been made so far."
]
},
{
"name": "PublicProps",
"modifier": "default",
"type": {
"Plain": "Vec<(PropIndex,Hash,AccountId)>"
},
"fallback": "0x00",
"documentation": [
" The public proposals. Unsorted. The second item is the proposal's hash."
]
},
{
"name": "Preimages",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "Hash",
"value": "(Bytes,AccountId,BalanceOf,BlockNumber)",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" 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": "blake2256",
"key": "PropIndex",
"value": "(BalanceOf,Vec<AccountId>)",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Those who have locked a deposit."
]
},
{
"name": "ReferendumCount",
"modifier": "default",
"type": {
"Plain": "ReferendumIndex"
},
"fallback": "0x00000000",
"documentation": [
" The next free referendum index, aka the number of referenda started so far."
]
},
{
"name": "LowestUnbaked",
"modifier": "default",
"type": {
"Plain": "ReferendumIndex"
},
"fallback": "0x00000000",
"documentation": [
" The lowest referendum index representing an unbaked referendum. Equal to",
" `ReferendumCount` if there isn't a unbaked referendum."
]
},
{
"name": "ReferendumInfoOf",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "ReferendumIndex",
"value": "ReferendumInfo",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Information concerning any given referendum."
]
},
{
"name": "DispatchQueue",
"modifier": "default",
"type": {
"Plain": "Vec<(BlockNumber,Hash,ReferendumIndex)>"
},
"fallback": "0x00",
"documentation": [
" Queue of successful referenda to be dispatched. Stored ordered by block number."
]
},
{
"name": "VotersFor",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "ReferendumIndex",
"value": "Vec<AccountId>",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Get the voters for the current proposal."
]
},
{
"name": "VoteOf",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "(ReferendumIndex,AccountId)",
"value": "Vote",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" 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": "blake2256",
"key": "AccountId",
"value": "AccountId",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" 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": "blake2256",
"key": "AccountId",
"value": "(AccountId,Conviction)",
"linked": true
}
},
"fallback": "0x000000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" Get the account (and lock periods) to which another account is delegating vote."
]
},
{
"name": "LastTabledWasExternal",
"modifier": "default",
"type": {
"Plain": "bool"
},
"fallback": "0x00",
"documentation": [
" 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",
"documentation": [
" 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": "blake2256",
"key": "Hash",
"value": "(BlockNumber,Vec<AccountId>)",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" 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": "blake2256",
"key": "Hash",
"value": "bool",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" 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>"
}
],
"documentation": [
" 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>"
}
],
"documentation": [
" 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"
}
],
"documentation": [
" 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"
}
],
"documentation": [
" 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"
}
],
"documentation": [
" Schedule an emergency cancellation of a referendum. Cannot happen twice to the same",
" referendum."
]
},
{
"name": "external_propose",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
}
],
"documentation": [
" 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"
}
],
"documentation": [
" 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"
}
],
"documentation": [
" 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"
}
],
"documentation": [
" 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"
}
],
"documentation": [
" Veto and blacklist the external proposal hash."
]
},
{
"name": "cancel_referendum",
"args": [
{
"name": "ref_index",
"type": "Compact<ReferendumIndex>"
}
],
"documentation": [
" Remove a referendum."
]
},
{
"name": "cancel_queued",
"args": [
{
"name": "which",
"type": "ReferendumIndex"
}
],
"documentation": [
" Cancel a proposal queued for enactment."
]
},
{
"name": "set_proxy",
"args": [
{
"name": "proxy",
"type": "AccountId"
}
],
"documentation": [
" Specify a proxy. Called by the stash.",
"",
" # <weight>",
" - One extra DB entry.",
" # </weight>"
]
},
{
"name": "resign_proxy",
"args": [],
"documentation": [
" Clear the proxy. Called by the proxy.",
"",
" # <weight>",
" - One DB clear.",
" # </weight>"
]
},
{
"name": "remove_proxy",
"args": [
{
"name": "proxy",
"type": "AccountId"
}
],
"documentation": [
" Clear the proxy. Called by the stash.",
"",
" # <weight>",
" - One DB clear.",
" # </weight>"
]
},
{
"name": "delegate",
"args": [
{
"name": "to",
"type": "AccountId"
},
{
"name": "conviction",
"type": "Conviction"
}
],
"documentation": [
" Delegate vote.",
"",
" # <weight>",
" - One extra DB entry.",
" # </weight>"
]
},
{
"name": "undelegate",
"args": [],
"documentation": [
" Undelegate vote.",
"",
" # <weight>",
" - O(1).",
" # </weight>"
]
},
{
"name": "clear_public_proposals",
"args": [],
"documentation": [
" Veto and blacklist the proposal hash. Must be from Root origin."
]
},
{
"name": "note_preimage",
"args": [
{
"name": "encoded_proposal",
"type": "Bytes"
}
],
"documentation": [
" 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"
}
],
"documentation": [
" 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"
}
],
"documentation": [
" Remove an expired proposal preimage and collect the deposit.",
"",
" 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."
]
}
],
"events": [
{
"name": "Proposed",
"args": [
"PropIndex",
"Balance"
],
"documentation": [
" A motion has been proposed by a public account."
]
},
{
"name": "Tabled",
"args": [
"PropIndex",
"Balance",
"Vec<AccountId>"
],
"documentation": [
" A public proposal has been tabled for referendum vote."
]
},
{
"name": "ExternalTabled",
"args": [],
"documentation": [
" An external proposal has been tabled."
]
},
{
"name": "Started",
"args": [
"ReferendumIndex",
"VoteThreshold"
],
"documentation": [
" A referendum has begun."
]
},
{
"name": "Passed",
"args": [
"ReferendumIndex"
],
"documentation": [
" A proposal has been approved by referendum."
]
},
{
"name": "NotPassed",
"args": [
"ReferendumIndex"
],
"documentation": [
" A proposal has been rejected by referendum."
]
},
{
"name": "Cancelled",
"args": [
"ReferendumIndex"
],
"documentation": [
" A referendum has been cancelled."
]
},
{
"name": "Executed",
"args": [
"ReferendumIndex",
"bool"
],
"documentation": [
" A proposal has been enacted."
]
},
{
"name": "Delegated",
"args": [
"AccountId",
"AccountId"
],
"documentation": [
" An account has delegated their vote to another account."
]
},
{
"name": "Undelegated",
"args": [
"AccountId"
],
"documentation": [
" An account has cancelled a previous delegation operation."
]
},
{
"name": "Vetoed",
"args": [
"AccountId",
"Hash",
"BlockNumber"
],
"documentation": [
" An external proposal has been vetoed."
]
},
{
"name": "PreimageNoted",
"args": [
"Hash",
"AccountId",
"Balance"
],
"documentation": [
" A proposal's preimage was noted, and the deposit taken."
]
},
{
"name": "PreimageUsed",
"args": [
"Hash",
"AccountId",
"Balance"
],
"documentation": [
" A proposal preimage was removed and used (the deposit was returned)."
]
},
{
"name": "PreimageInvalid",
"args": [
"Hash",
"ReferendumIndex"
],
"documentation": [
" A proposal could not be executed because its preimage was invalid."
]
},
{
"name": "PreimageMissing",
"args": [
"Hash",
"ReferendumIndex"
],
"documentation": [
" A proposal could not be executed because its preimage was missing."
]
},
{
"name": "PreimageReaped",
"args": [
"Hash",
"AccountId",
"Balance",
"AccountId"
],
"documentation": [
" A registered preimage was removed and the deposit collected by the reaper (last item)."
]
}
],
"constants": [
{
"name": "EnactmentPeriod",
"type": "BlockNumber",
"value": "0x002f0d00",
"documentation": [
" 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",
"documentation": [
" How often (in blocks) new public referenda are launched."
]
},
{
"name": "VotingPeriod",
"type": "BlockNumber",
"value": "0x004e0c00",
"documentation": [
" How often (in blocks) to check for new votes."
]
},
{
"name": "MinimumDeposit",
"type": "BalanceOf",
"value": "0x0000c16ff28623000000000000000000",
"documentation": [
" The minimum amount to be used as a deposit for a public referendum proposal."
]
},
{
"name": "EmergencyVotingPeriod",
"type": "BlockNumber",
"value": "0x80510100",
"documentation": [
" Minimum voting period allowed for an emergency referendum."
]
},
{
"name": "CooloffPeriod",
"type": "BlockNumber",
"value": "0x004e0c00",
"documentation": [
" Period in blocks where an external proposal may not be re-submitted after being vetoed."
]
},
{
"name": "PreimageByteDeposit",
"type": "BalanceOf",
"value": "0x0010a5d4e80000000000000000000000",
"documentation": [
" The amount of balance that must be deposited per byte of preimage stored."
]
}
],
"errors": [
{
"name": "ValueLow",
"documentation": [
" Value too low"
]
},
{
"name": "ProposalMissing",
"documentation": [
" Proposal does not exist"
]
},
{
"name": "NotProxy",
"documentation": [
" Not a proxy"
]
},
{
"name": "BadIndex",
"documentation": [
" Unknown index"
]
},
{
"name": "AlreadyCanceled",
"documentation": [
" Cannot cancel the same proposal twice"
]
},
{
"name": "DuplicateProposal",
"documentation": [
" Proposal already made"
]
},
{
"name": "ProposalBlacklisted",
"documentation": [
" Proposal still blacklisted"
]
},
{
"name": "NotSimpleMajority",
"documentation": [
" Next external proposal not simple majority"
]
},
{
"name": "InvalidHash",
"documentation": [
" Invalid hash"
]
},
{
"name": "NoProposal",
"documentation": [
" No external proposal"
]
},
{
"name": "AlreadyVetoed",
"documentation": [
" Identity may not veto a proposal twice"
]
},
{
"name": "AlreadyProxy",
"documentation": [
" Already a proxy"
]
},
{
"name": "WrongProxy",
"documentation": [
" Wrong proxy"
]
},
{
"name": "NotDelegated",
"documentation": [
" Not delegated"
]
},
{
"name": "DuplicatePreimage",
"documentation": [
" Preimage already noted"
]
},
{
"name": "NotImminent",
"documentation": [
" Not imminent"
]
},
{
"name": "Early",
"documentation": [
" Too early"
]
},
{
"name": "Imminent",
"documentation": [
" Imminent"
]
},
{
"name": "PreimageMissing",
"documentation": [
" Preimage not found"
]
},
{
"name": "ReferendumInvalid",
"documentation": [
" Vote given for invalid referendum"
]
},
{
"name": "PreimageInvalid",
"documentation": [
" Invalid preimage"
]
},
{
"name": "NoneWaiting",
"documentation": [
" No proposals waiting"
]
}
]
},
{
"name": "Council",
"storage": {
"prefix": "Instance1Collective",
"items": [
{
"name": "Proposals",
"modifier": "default",
"type": {
"Plain": "Vec<Hash>"
},
"fallback": "0x00",
"documentation": [
" The hashes of the active proposals."
]
},
{
"name": "ProposalOf",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "Hash",
"value": "Proposal",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Actual proposal for a given hash, if it's current."
]
},
{
"name": "Voting",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "Hash",
"value": "Votes",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Votes on a given proposal, if it is ongoing."
]
},
{
"name": "ProposalCount",
"modifier": "default",
"type": {
"Plain": "u32"
},
"fallback": "0x00000000",
"documentation": [
" Proposals so far."
]
},
{
"name": "Members",
"modifier": "default",
"type": {
"Plain": "Vec<AccountId>"
},
"fallback": "0x00",
"documentation": [
" The current members of the collective. This is stored sorted (just by value)."
]
}
]
},
"calls": [
{
"name": "set_members",
"args": [
{
"name": "new_members",
"type": "Vec<AccountId>"
}
],
"documentation": [
" 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"
}
],
"documentation": [
" 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"
}
],
"documentation": [
" # <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"
}
],
"documentation": [
" # <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"
],
"documentation": [
" A motion (given hash) has been proposed (by given account) with a threshold (given",
" `MemberCount`)."
]
},
{
"name": "Voted",
"args": [
"AccountId",
"Hash",
"bool",
"MemberCount",
"MemberCount"
],
"documentation": [
" 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"
],
"documentation": [
" A motion was approved by the required threshold."
]
},
{
"name": "Disapproved",
"args": [
"Hash"
],
"documentation": [
" A motion was not approved by the required threshold."
]
},
{
"name": "Executed",
"args": [
"Hash",
"bool"
],
"documentation": [
" A motion was executed; `bool` is true if returned without error."
]
},
{
"name": "MemberExecuted",
"args": [
"Hash",
"bool"
],
"documentation": [
" A single member did some action; `bool` is true if returned without error."
]
}
],
"constants": [],
"errors": [
{
"name": "NotMember",
"documentation": [
" Account is not a member"
]
},
{
"name": "DuplicateProposal",
"documentation": [
" Duplicate proposals not allowed"
]
},
{
"name": "ProposalMissing",
"documentation": [
" Proposal must exist"
]
},
{
"name": "WrongIndex",
"documentation": [
" Mismatched index"
]
},
{
"name": "DuplicateVote",
"documentation": [
" Duplicate vote ignored"
]
},
{
"name": "AlreadyInitialized",
"documentation": [
" Members are already initialized!"
]
}
]
},
{
"name": "TechnicalCommittee",
"storage": {
"prefix": "Instance2Collective",
"items": [
{
"name": "Proposals",
"modifier": "default",
"type": {
"Plain": "Vec<Hash>"
},
"fallback": "0x00",
"documentation": [
" The hashes of the active proposals."
]
},
{
"name": "ProposalOf",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "Hash",
"value": "Proposal",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Actual proposal for a given hash, if it's current."
]
},
{
"name": "Voting",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "Hash",
"value": "Votes",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Votes on a given proposal, if it is ongoing."
]
},
{
"name": "ProposalCount",
"modifier": "default",
"type": {
"Plain": "u32"
},
"fallback": "0x00000000",
"documentation": [
" Proposals so far."
]
},
{
"name": "Members",
"modifier": "default",
"type": {
"Plain": "Vec<AccountId>"
},
"fallback": "0x00",
"documentation": [
" The current members of the collective. This is stored sorted (just by value)."
]
}
]
},
"calls": [
{
"name": "set_members",
"args": [
{
"name": "new_members",
"type": "Vec<AccountId>"
}
],
"documentation": [
" 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"
}
],
"documentation": [
" 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"
}
],
"documentation": [
" # <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"
}
],
"documentation": [
" # <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"
],
"documentation": [
" A motion (given hash) has been proposed (by given account) with a threshold (given",
" `MemberCount`)."
]
},
{
"name": "Voted",
"args": [
"AccountId",
"Hash",
"bool",
"MemberCount",
"MemberCount"
],
"documentation": [
" 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"
],
"documentation": [
" A motion was approved by the required threshold."
]
},
{
"name": "Disapproved",
"args": [
"Hash"
],
"documentation": [
" A motion was not approved by the required threshold."
]
},
{
"name": "Executed",
"args": [
"Hash",
"bool"
],
"documentation": [
" A motion was executed; `bool` is true if returned without error."
]
},
{
"name": "MemberExecuted",
"args": [
"Hash",
"bool"
],
"documentation": [
" A single member did some action; `bool` is true if returned without error."
]
}
],
"constants": [],
"errors": [
{
"name": "NotMember",
"documentation": [
" Account is not a member"
]
},
{
"name": "DuplicateProposal",
"documentation": [
" Duplicate proposals not allowed"
]
},
{
"name": "ProposalMissing",
"documentation": [
" Proposal must exist"
]
},
{
"name": "WrongIndex",
"documentation": [
" Mismatched index"
]
},
{
"name": "DuplicateVote",
"documentation": [
" Duplicate vote ignored"
]
},
{
"name": "AlreadyInitialized",
"documentation": [
" Members are already initialized!"
]
}
]
},
{
"name": "Elections",
"storage": {
"prefix": "PhragmenElection",
"items": [
{
"name": "Members",
"modifier": "default",
"type": {
"Plain": "Vec<(AccountId,BalanceOf)>"
},
"fallback": "0x00",
"documentation": [
" The current elected membership. Sorted based on account id."
]
},
{
"name": "RunnersUp",
"modifier": "default",
"type": {
"Plain": "Vec<(AccountId,BalanceOf)>"
},
"fallback": "0x00",
"documentation": [
" The current runners_up. Sorted based on low to high merit (worse to best runner)."
]
},
{
"name": "ElectionRounds",
"modifier": "default",
"type": {
"Plain": "u32"
},
"fallback": "0x00000000",
"documentation": [
" The total number of vote rounds that have happened, excluding the upcoming one."
]
},
{
"name": "VotesOf",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "Vec<AccountId>",
"linked": true
}
},
"fallback": "0x00",
"documentation": [
" Votes of a particular voter, with the round index of the votes."
]
},
{
"name": "StakeOf",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "BalanceOf",
"linked": false
}
},
"fallback": "0x00000000000000000000000000000000",
"documentation": [
" Locked stake of a voter."
]
},
{
"name": "Candidates",
"modifier": "default",
"type": {
"Plain": "Vec<AccountId>"
},
"fallback": "0x00",
"documentation": [
" The present candidate list. Sorted based on account-id. A current member or a runner 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>"
}
],
"documentation": [
" 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": [],
"documentation": [
" 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": "Address"
}
],
"documentation": [
" 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": [],
"documentation": [
" 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": [],
"documentation": [
" 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": "Address"
}
],
"documentation": [
" 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)>"
],
"documentation": [
" 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": [],
"documentation": [
" No (or not enough) candidates existed for this round."
]
},
{
"name": "MemberKicked",
"args": [
"AccountId"
],
"documentation": [
" A member has been removed. This should always be followed by either `NewTerm` ot",
" `EmptyTerm`."
]
},
{
"name": "MemberRenounced",
"args": [
"AccountId"
],
"documentation": [
" A member has renounced their candidacy."
]
},
{
"name": "VoterReported",
"args": [
"AccountId",
"AccountId",
"bool"
],
"documentation": [
" 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",
"documentation": []
},
{
"name": "VotingBond",
"type": "BalanceOf",
"value": "0x00407a10f35a00000000000000000000",
"documentation": []
},
{
"name": "DesiredMembers",
"type": "u32",
"value": "0x0d000000",
"documentation": []
},
{
"name": "DesiredRunnersUp",
"type": "u32",
"value": "0x07000000",
"documentation": []
},
{
"name": "TermDuration",
"type": "BlockNumber",
"value": "0x80130300",
"documentation": []
}
],
"errors": [
{
"name": "UnableToVote",
"documentation": [
" Cannot vote when no candidates or members exist."
]
},
{
"name": "NoVotes",
"documentation": [
" Must vote for at least one candidate."
]
},
{
"name": "TooManyVotes",
"documentation": [
" Cannot vote more than candidates."
]
},
{
"name": "MaximumVotesExceeded",
"documentation": [
" Cannot vote more than maximum allowed."
]
},
{
"name": "LowBalance",
"documentation": [
" Cannot vote with stake less than minimum balance."
]
},
{
"name": "UnableToPayBond",
"documentation": [
" Voter can not pay voting bond."
]
},
{
"name": "MustBeVoter",
"documentation": [
" Must be a voter."
]
},
{
"name": "ReportSelf",
"documentation": [
" Cannot report self."
]
},
{
"name": "DuplicatedCandidate",
"documentation": [
" Duplicated candidate submission."
]
},
{
"name": "MemberSubmit",
"documentation": [
" Member cannot re-submit candidacy."
]
},
{
"name": "RunnerSubmit",
"documentation": [
" Runner cannot re-submit candidacy."
]
},
{
"name": "InsufficientCandidateFunds",
"documentation": [
" Candidate does not have enough funds."
]
},
{
"name": "InvalidOrigin",
"documentation": [
" Origin is not a candidate, member or a runner up."
]
},
{
"name": "NotMember",
"documentation": [
" Not a member."
]
}
]
},
{
"name": "TechnicalMembership",
"storage": {
"prefix": "Instance1Membership",
"items": [
{
"name": "Members",
"modifier": "default",
"type": {
"Plain": "Vec<AccountId>"
},
"fallback": "0x00",
"documentation": [
" The current membership, stored as an ordered Vec."
]
}
]
},
"calls": [
{
"name": "add_member",
"args": [
{
"name": "who",
"type": "AccountId"
}
],
"documentation": [
" Add a member `who` to the set.",
"",
" May only be called from `AddOrigin` or root."
]
},
{
"name": "remove_member",
"args": [
{
"name": "who",
"type": "AccountId"
}
],
"documentation": [
" 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"
}
],
"documentation": [
" 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>"
}
],
"documentation": [
" 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"
}
],
"documentation": [
" 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": [],
"documentation": [
" The given member was added; see the transaction for who."
]
},
{
"name": "MemberRemoved",
"args": [],
"documentation": [
" The given member was removed; see the transaction for who."
]
},
{
"name": "MembersSwapped",
"args": [],
"documentation": [
" Two members were swapped; see the transaction for who."
]
},
{
"name": "MembersReset",
"args": [],
"documentation": [
" The membership was reset; see the transaction for who the new set is."
]
},
{
"name": "KeyChanged",
"args": [],
"documentation": [
" One of the members' keys changed."
]
},
{
"name": "Dummy",
"args": [
"PhantomData"
],
"documentation": [
" Phantom member, never used."
]
}
],
"constants": [],
"errors": []
},
{
"name": "FinalityTracker",
"storage": null,
"calls": [
{
"name": "final_hint",
"args": [
{
"name": "hint",
"type": "Compact<BlockNumber>"
}
],
"documentation": [
" 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",
"documentation": [
" The number of recent samples to keep from this chain. Default is 101."
]
},
{
"name": "ReportLatency",
"type": "BlockNumber",
"value": "0xe8030000",
"documentation": [
" The delay after which point things become suspicious. Default is 1000."
]
}
],
"errors": [
{
"name": "AlreadyUpdated",
"documentation": [
" Final hint must be updated only once in the block"
]
},
{
"name": "BadHint",
"documentation": [
" Finalized height above block number"
]
}
]
},
{
"name": "Grandpa",
"storage": {
"prefix": "GrandpaFinality",
"items": [
{
"name": "Authorities",
"modifier": "default",
"type": {
"Plain": "AuthorityList"
},
"fallback": "0x00",
"documentation": [
" 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",
"documentation": [
" State of the current authority set."
]
},
{
"name": "PendingChange",
"modifier": "optional",
"type": {
"Plain": "StoredPendingChange"
},
"fallback": "0x00",
"documentation": [
" Pending change: (signaled at, scheduled change)."
]
},
{
"name": "NextForced",
"modifier": "optional",
"type": {
"Plain": "BlockNumber"
},
"fallback": "0x00",
"documentation": [
" next block number where we can force a change."
]
},
{
"name": "Stalled",
"modifier": "optional",
"type": {
"Plain": "(BlockNumber,BlockNumber)"
},
"fallback": "0x00",
"documentation": [
" `true` if we are currently stalled."
]
},
{
"name": "CurrentSetId",
"modifier": "default",
"type": {
"Plain": "SetId"
},
"fallback": "0x0000000000000000",
"documentation": [
" 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": "blake2256",
"key": "SetId",
"value": "SessionIndex",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" 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"
}
],
"documentation": [
" Report some misbehavior."
]
}
],
"events": [
{
"name": "NewAuthorities",
"args": [
"AuthorityList"
],
"documentation": [
" New authority set has been applied."
]
},
{
"name": "Paused",
"args": [],
"documentation": [
" Current authority set has been paused."
]
},
{
"name": "Resumed",
"args": [],
"documentation": [
" Current authority set has been resumed."
]
}
],
"constants": [],
"errors": [
{
"name": "PauseFailed",
"documentation": [
" Attempt to signal GRANDPA pause when the authority set isn't live",
" (either paused or already pending pause)."
]
},
{
"name": "ResumeFailed",
"documentation": [
" Attempt to signal GRANDPA resume when the authority set isn't paused",
" (either live or already pending resume)."
]
},
{
"name": "ChangePending",
"documentation": [
" Attempt to signal GRANDPA change with one already pending."
]
},
{
"name": "TooSoon",
"documentation": [
" Cannot signal forced change so soon after last."
]
}
]
},
{
"name": "Treasury",
"storage": {
"prefix": "Treasury",
"items": [
{
"name": "ProposalCount",
"modifier": "default",
"type": {
"Plain": "ProposalIndex"
},
"fallback": "0x00000000",
"documentation": [
" Number of proposals that have been made."
]
},
{
"name": "Proposals",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "ProposalIndex",
"value": "TreasuryProposal",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Proposals that have been made."
]
},
{
"name": "Approvals",
"modifier": "default",
"type": {
"Plain": "Vec<ProposalIndex>"
},
"fallback": "0x00",
"documentation": [
" Proposal indices that have been approved but not yet awarded."
]
},
{
"name": "Tips",
"modifier": "optional",
"type": {
"Map": {
"hasher": "twox64Concat",
"key": "Hash",
"value": "OpenTip",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Tips 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."
]
},
{
"name": "Reasons",
"modifier": "optional",
"type": {
"Map": {
"hasher": "twox64Concat",
"key": "Hash",
"value": "Bytes",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Simple preimage lookup from the reason's hash to the original data. Again, has an",
" insecure enumerable hash since the key is guaranteed to be the result of a secure hash."
]
}
]
},
"calls": [
{
"name": "propose_spend",
"args": [
{
"name": "value",
"type": "Compact<BalanceOf>"
},
{
"name": "beneficiary",
"type": "Address"
}
],
"documentation": [
" 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>"
}
],
"documentation": [
" 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>"
}
],
"documentation": [
" 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>"
]
},
{
"name": "report_awesome",
"args": [
{
"name": "reason",
"type": "Bytes"
},
{
"name": "who",
"type": "AccountId"
}
],
"documentation": [
" Report something `reason` that deserves a tip and claim any eventual the finder's fee.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Payment: `TipReportDepositBase` will be reserved from the origin account, as well as",
" `TipReportDepositPerByte` for each byte in `reason`.",
"",
" - `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.",
"",
" Emits `NewTip` if successful.",
"",
" # <weight>",
" - `O(R)` where `R` length of `reason`.",
" - One balance operation.",
" - One storage mutation (codec `O(R)`).",
" - One event.",
" # </weight>"
]
},
{
"name": "retract_tip",
"args": [
{
"name": "hash",
"type": "Hash"
}
],
"documentation": [
" Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.",
"",
" If successful, the original deposit will be unreserved.",
"",
" The dispatch origin for this call must be _Signed_ and the tip identified by `hash`",
" must have been reported by the signing account through `report_awesome` (and not",
" through `tip_new`).",
"",
" - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
" as the hash of the tuple of the original tip `reason` and the beneficiary account ID.",
"",
" Emits `TipRetracted` if successful.",
"",
" # <weight>",
" - `O(T)`",
" - One balance operation.",
" - Two storage removals (one read, codec `O(T)`).",
" - One event.",
" # </weight>"
]
},
{
"name": "tip_new",
"args": [
{
"name": "reason",
"type": "Bytes"
},
{
"name": "who",
"type": "AccountId"
},
{
"name": "tip_value",
"type": "BalanceOf"
}
],
"documentation": [
" Give a tip for something new; no finder's fee will be taken.",
"",
" The dispatch origin for this call must be _Signed_ and the signing account must be a",
" member of the `Tippers` set.",
"",
" - `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.",
" - `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`.",
"",
" Emits `NewTip` if successful.",
"",
" # <weight>",
" - `O(R + T)` where `R` length of `reason`, `T` is the number of tippers. `T` is",
" naturally capped as a membership set, `R` is limited through transaction-size.",
" - Two storage insertions (codecs `O(R)`, `O(T)`), one read `O(1)`.",
" - One event.",
" # </weight>"
]
},
{
"name": "tip",
"args": [
{
"name": "hash",
"type": "Hash"
},
{
"name": "tip_value",
"type": "BalanceOf"
}
],
"documentation": [
" Declare a tip value for an already-open tip.",
"",
" The dispatch origin for this call must be _Signed_ and the signing account must be a",
" member of the `Tippers` set.",
"",
" - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
" as the hash of the tuple of the hash of the original tip `reason` and the beneficiary",
" account ID.",
" - `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`.",
"",
" Emits `TipClosing` if the threshold of tippers has been reached and the countdown period",
" has started.",
"",
" # <weight>",
" - `O(T)`",
" - One storage mutation (codec `O(T)`), one storage read `O(1)`.",
" - Up to one event.",
" # </weight>"
]
},
{
"name": "close_tip",
"args": [
{
"name": "hash",
"type": "Hash"
}
],
"documentation": [
" 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.",
"",
" - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
" as the hash of the tuple of the original tip `reason` and the beneficiary account ID.",
"",
" # <weight>",
" - `O(T)`",
" - One storage retrieval (codec `O(T)`) and two removals.",
" - Up to three balance operations.",
" # </weight>"
]
}
],
"events": [
{
"name": "Proposed",
"args": [
"ProposalIndex"
],
"documentation": [
" New proposal."
]
},
{
"name": "Spending",
"args": [
"Balance"
],
"documentation": [
" We have ended a spend period and will now allocate funds."
]
},
{
"name": "Awarded",
"args": [
"ProposalIndex",
"Balance",
"AccountId"
],
"documentation": [
" Some funds have been allocated."
]
},
{
"name": "Rejected",
"args": [
"ProposalIndex",
"Balance"
],
"documentation": [
" A proposal was rejected; funds were slashed."
]
},
{
"name": "Burnt",
"args": [
"Balance"
],
"documentation": [
" Some of our funds have been burnt."
]
},
{
"name": "Rollover",
"args": [
"Balance"
],
"documentation": [
" Spending has finished; this is the amount that rolls over until next spend."
]
},
{
"name": "Deposit",
"args": [
"Balance"
],
"documentation": [
" Some funds have been deposited."
]
},
{
"name": "NewTip",
"args": [
"Hash"
],
"documentation": [
" A new tip suggestion has been opened."
]
},
{
"name": "TipClosing",
"args": [
"Hash"
],
"documentation": [
" A tip suggestion has reached threshold and is closing."
]
},
{
"name": "TipClosed",
"args": [
"Hash",
"AccountId",
"Balance"
],
"documentation": [
" A tip suggestion has been closed."
]
},
{
"name": "TipRetracted",
"args": [
"Hash"
],
"documentation": [
" A tip suggestion has been retracted."
]
}
],
"constants": [
{
"name": "ProposalBond",
"type": "Permill",
"value": "0x50c30000",
"documentation": [
" 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",
"documentation": [
" Minimum amount of funds that should be placed in a deposit for making a proposal."
]
},
{
"name": "SpendPeriod",
"type": "BlockNumber",
"value": "0x80700000",
"documentation": [
" Period between successive spends."
]
},
{
"name": "Burn",
"type": "Permill",
"value": "0x20a10700",
"documentation": [
" Percentage of spare funds (if any) that are burnt per spend period."
]
},
{
"name": "TipCountdown",
"type": "BlockNumber",
"value": "0x80700000",
"documentation": [
" The period for which a tip remains open after is has achieved threshold tippers."
]
},
{
"name": "TipFindersFee",
"type": "Percent",
"value": "0x14",
"documentation": [
" The amount of the final tip which goes to the original reporter of the tip."
]
},
{
"name": "TipReportDepositBase",
"type": "BalanceOf",
"value": "0x00407a10f35a00000000000000000000",
"documentation": [
" The amount held on deposit for placing a tip report."
]
},
{
"name": "TipReportDepositPerByte",
"type": "BalanceOf",
"value": "0x0010a5d4e80000000000000000000000",
"documentation": [
" The amount held on deposit per byte within the tip report reason."
]
}
],
"errors": [
{
"name": "InsufficientProposersBalance",
"documentation": [
" Proposer's balance is too low."
]
},
{
"name": "InvalidProposalIndex",
"documentation": [
" No proposal at that index."
]
},
{
"name": "ReasonTooBig",
"documentation": [
" The reason given is just too big."
]
},
{
"name": "AlreadyKnown",
"documentation": [
" The tip was already found/started."
]
},
{
"name": "UnknownTip",
"documentation": [
" The tip hash is unknown."
]
},
{
"name": "NotFinder",
"documentation": [
" The account attempting to retract the tip is not the finder of the tip."
]
},
{
"name": "StillOpen",
"documentation": [
" The tip cannot be claimed/closed because there are not enough tippers yet."
]
},
{
"name": "Premature",
"documentation": [
" The tip cannot be claimed/closed because it's still in the countdown period."
]
}
]
},
{
"name": "Contracts",
"storage": {
"prefix": "Contract",
"items": [
{
"name": "GasSpent",
"modifier": "default",
"type": {
"Plain": "Gas"
},
"fallback": "0x0000000000000000",
"documentation": [
" Gas spent so far in this block."
]
},
{
"name": "CurrentSchedule",
"modifier": "default",
"type": {
"Plain": "Schedule"
},
"fallback": "0x0000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000008700000000000000af0000000000000001000000000000000100000000000000040000000000010010000000004000000020000000",
"documentation": [
" Current cost schedule for contracts."
]
},
{
"name": "PristineCode",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "CodeHash",
"value": "Bytes",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" A mapping from an original code hash to the original code, untouched by instrumentation."
]
},
{
"name": "CodeStorage",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "CodeHash",
"value": "PrefabWasmModule",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" A mapping between an original code hash and instrumented wasm code, ready for execution."
]
},
{
"name": "AccountCounter",
"modifier": "default",
"type": {
"Plain": "u64"
},
"fallback": "0x0000000000000000",
"documentation": [
" The subtrie counter."
]
},
{
"name": "ContractInfoOf",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "ContractInfo",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" The code associated with a given account."
]
},
{
"name": "GasPrice",
"modifier": "default",
"type": {
"Plain": "BalanceOf"
},
"fallback": "0x01000000000000000000000000000000",
"documentation": [
" The price of one unit of gas."
]
}
]
},
"calls": [
{
"name": "update_schedule",
"args": [
{
"name": "schedule",
"type": "Schedule"
}
],
"documentation": [
" 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"
}
],
"documentation": [
" 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": "Address"
},
{
"name": "value",
"type": "Compact<BalanceOf>"
},
{
"name": "gas_limit",
"type": "Compact<Gas>"
},
{
"name": "data",
"type": "Bytes"
}
],
"documentation": [
" 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"
}
],
"documentation": [
" 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>"
}
],
"documentation": [
" 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"
],
"documentation": [
" Transfer happened `from` to `to` with given `value` as part of a `call` or `instantiate`."
]
},
{
"name": "Instantiated",
"args": [
"AccountId",
"AccountId"
],
"documentation": [
" Contract deployed by address at the specified address."
]
},
{
"name": "CodeStored",
"args": [
"Hash"
],
"documentation": [
" Code with the specified hash has been stored."
]
},
{
"name": "ScheduleUpdated",
"args": [
"u32"
],
"documentation": [
" Triggered when the current schedule is updated."
]
},
{
"name": "Dispatched",
"args": [
"AccountId",
"bool"
],
"documentation": [
" A call was dispatched from the given account. The bool signals whether it was",
" successful execution or not."
]
},
{
"name": "Contract",
"args": [
"AccountId",
"Bytes"
],
"documentation": [
" An event from contract of account."
]
}
],
"constants": [
{
"name": "SignedClaimHandicap",
"type": "BlockNumber",
"value": "0x02000000",
"documentation": [
" 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",
"documentation": [
" The minimum amount required to generate a tombstone."
]
},
{
"name": "StorageSizeOffset",
"type": "u32",
"value": "0x08000000",
"documentation": [
" 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",
"documentation": [
" Price of a byte of storage per one block interval. Should be greater than 0."
]
},
{
"name": "RentDepositOffset",
"type": "BalanceOf",
"value": "0x00008a5d784563010000000000000000",
"documentation": [
" 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",
"documentation": [
" Reward that is received by the party whose touch has led",
" to removal of a contract."
]
},
{
"name": "TransferFee",
"type": "BalanceOf",
"value": "0x0010a5d4e80000000000000000000000",
"documentation": [
" The fee required to make a transfer."
]
},
{
"name": "CreationFee",
"type": "BalanceOf",
"value": "0x0010a5d4e80000000000000000000000",
"documentation": [
" The fee required to create an account."
]
},
{
"name": "TransactionBaseFee",
"type": "BalanceOf",
"value": "0x0010a5d4e80000000000000000000000",
"documentation": [
" The fee to be paid for making a transaction; the base."
]
},
{
"name": "TransactionByteFee",
"type": "BalanceOf",
"value": "0x00e40b54020000000000000000000000",
"documentation": [
" The fee to be paid for making a transaction; the per-byte portion."
]
},
{
"name": "ContractFee",
"type": "BalanceOf",
"value": "0x0010a5d4e80000000000000000000000",
"documentation": [
" The fee required to instantiate a contract instance. A reasonable default value",
" is 21."
]
},
{
"name": "CallBaseFee",
"type": "Gas",
"value": "0xe803000000000000",
"documentation": [
" The base fee charged for calling into a contract. A reasonable default",
" value is 135."
]
},
{
"name": "InstantiateBaseFee",
"type": "Gas",
"value": "0xe803000000000000",
"documentation": [
" The base fee charged for instantiating a contract. A reasonable default value",
" is 175."
]
},
{
"name": "MaxDepth",
"type": "u32",
"value": "0x20000000",
"documentation": [
" The maximum nesting level of a call/instantiate stack. A reasonable default",
" value is 100."
]
},
{
"name": "MaxValueSize",
"type": "u32",
"value": "0x00400000",
"documentation": [
" The maximum size of a storage value in bytes. A reasonable default is 16 KiB."
]
},
{
"name": "BlockGasLimit",
"type": "Gas",
"value": "0x8096980000000000",
"documentation": [
" The maximum amount of gas that could be expended per block. A reasonable",
" default value is 10_000_000."
]
}
],
"errors": [
{
"name": "InvalidScheduleVersion",
"documentation": [
" A new schedule must have a greater version than the current one."
]
},
{
"name": "InvalidSurchargeClaim",
"documentation": [
" An origin must be signed or inherent and auxiliary sender only provided on inherent."
]
},
{
"name": "InvalidSourceContract",
"documentation": [
" Cannot restore from nonexisting or tombstone contract."
]
},
{
"name": "InvalidDestinationContract",
"documentation": [
" Cannot restore to nonexisting or alive contract."
]
},
{
"name": "InvalidTombstone",
"documentation": [
" Tombstones don't match."
]
},
{
"name": "InvalidContractOrigin",
"documentation": [
" An origin TrieId written in the current block."
]
}
]
},
{
"name": "Sudo",
"storage": {
"prefix": "Sudo",
"items": [
{
"name": "Key",
"modifier": "default",
"type": {
"Plain": "AccountId"
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" The `AccountId` of the sudo key."
]
}
]
},
"calls": [
{
"name": "sudo",
"args": [
{
"name": "proposal",
"type": "Proposal"
}
],
"documentation": [
" 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": "Address"
}
],
"documentation": [
" 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": "Address"
},
{
"name": "proposal",
"type": "Proposal"
}
],
"documentation": [
" 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"
],
"documentation": [
" A sudo just took place."
]
},
{
"name": "KeyChanged",
"args": [
"AccountId"
],
"documentation": [
" The sudoer just switched identity; the old key is supplied."
]
},
{
"name": "SudoAsDone",
"args": [
"bool"
],
"documentation": [
" A sudo just took place."
]
}
],
"constants": [],
"errors": [
{
"name": "RequireSudo",
"documentation": [
" Sender must be the Sudo account"
]
}
]
},
{
"name": "ImOnline",
"storage": {
"prefix": "ImOnline",
"items": [
{
"name": "GossipAt",
"modifier": "default",
"type": {
"Plain": "BlockNumber"
},
"fallback": "0x00000000",
"documentation": [
" The block number when we should gossip."
]
},
{
"name": "Keys",
"modifier": "default",
"type": {
"Plain": "Vec<AuthorityId>"
},
"fallback": "0x00",
"documentation": [
" The current set of keys that may issue a heartbeat."
]
},
{
"name": "ReceivedHeartbeats",
"modifier": "optional",
"type": {
"DoubleMap": {
"hasher": "blake2256",
"key1": "SessionIndex",
"key2": "AuthIndex",
"value": "Bytes",
"key2Hasher": "blake2256"
}
},
"fallback": "0x00",
"documentation": [
" For each session index, we keep a mapping of `AuthIndex`",
" to `offchain::OpaqueNetworkState`."
]
},
{
"name": "AuthoredBlocks",
"modifier": "default",
"type": {
"DoubleMap": {
"hasher": "blake2256",
"key1": "SessionIndex",
"key2": "ValidatorId",
"value": "u32",
"key2Hasher": "blake2256"
}
},
"fallback": "0x00000000",
"documentation": [
" 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"
}
],
"documentation": []
}
],
"events": [
{
"name": "HeartbeatReceived",
"args": [
"AuthorityId"
],
"documentation": [
" A new heartbeat was received from `AuthorityId`"
]
},
{
"name": "AllGood",
"args": [],
"documentation": [
" At the end of the session, no offence was committed."
]
},
{
"name": "SomeOffline",
"args": [
"Vec<IdentificationTuple>"
],
"documentation": [
" At the end of the session, at least once validator was found to be offline."
]
}
],
"constants": [],
"errors": [
{
"name": "InvalidKey",
"documentation": [
" Non existent public key."
]
},
{
"name": "DuplicatedHeartbeat",
"documentation": [
" Duplicated heartbeat."
]
}
]
},
{
"name": "AuthorityDiscovery",
"storage": null,
"calls": [],
"events": null,
"constants": [],
"errors": []
},
{
"name": "Offences",
"storage": {
"prefix": "Offences",
"items": [
{
"name": "Reports",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "ReportIdOf",
"value": "OffenceDetails",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" The primary structure that holds all offence records keyed by report identifiers."
]
},
{
"name": "ConcurrentReportsIndex",
"modifier": "default",
"type": {
"DoubleMap": {
"hasher": "blake2256",
"key1": "Kind",
"key2": "OpaqueTimeSlot",
"value": "Vec<ReportIdOf>",
"key2Hasher": "blake2256"
}
},
"fallback": "0x00",
"documentation": [
" A vector of reports of the same kind that happened at the same time slot."
]
},
{
"name": "ReportsByKindIndex",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "Kind",
"value": "Bytes",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" 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"
],
"documentation": [
" 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",
"documentation": [
" 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": "Identity",
"storage": {
"prefix": "Sudo",
"items": [
{
"name": "IdentityOf",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "Registration",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Information that is pertinent to identify the entity behind an account."
]
},
{
"name": "SuperOf",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "(AccountId,Data)",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" The super-identity of an alternative \"sub\" identity together with its name, within that",
" context. If the account is not some other account's sub-identity, then just `None`."
]
},
{
"name": "SubsOf",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "(BalanceOf,Vec<AccountId>)",
"linked": false
}
},
"fallback": "0x0000000000000000000000000000000000",
"documentation": [
" Alternative \"sub\" identities of this account.",
"",
" The first item is the deposit, the second is a vector of the accounts."
]
},
{
"name": "Registrars",
"modifier": "default",
"type": {
"Plain": "Vec<Option<RegistrarInfo>>"
},
"fallback": "0x00",
"documentation": [
" 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."
]
}
]
},
"calls": [
{
"name": "add_registrar",
"args": [
{
"name": "account",
"type": "AccountId"
}
],
"documentation": [
" Add a registrar to the system.",
"",
" The dispatch origin for this call must be `RegistrarOrigin` or `Root`.",
"",
" - `account`: the account of the registrar.",
"",
" Emits `RegistrarAdded` if successful.",
"",
" # <weight>",
" - `O(R)` where `R` registrar-count (governance-bounded).",
" - One storage mutation (codec `O(R)`).",
" - One event.",
" # </weight>"
]
},
{
"name": "set_identity",
"args": [
{
"name": "info",
"type": "IdentityInfo"
}
],
"documentation": [
" Set an account's identity information and reserve the appropriate deposit.",
"",
" If the account already has identity information, the deposit is taken as part payment",
" for the new deposit.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a registered",
" identity.",
"",
" - `info`: The identity information.",
"",
" Emits `IdentitySet` if successful.",
"",
" # <weight>",
" - `O(X + R)` where `X` additional-field-count (deposit-bounded).",
" - At most two balance operations.",
" - One storage mutation (codec `O(X + R)`).",
" - One event.",
" # </weight>"
]
},
{
"name": "set_subs",
"args": [
{
"name": "subs",
"type": "Vec<(AccountId,Data)>"
}
],
"documentation": [
" Set the sub-accounts of the sender.",
"",
" Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned",
" and an amount `SubAccountDeposit` will be reserved for each item in `subs`.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a registered",
" identity.",
"",
" - `subs`: The identity's sub-accounts.",
"",
" # <weight>",
" - `O(S)` where `S` subs-count (hard- and deposit-bounded).",
" - At most two balance operations.",
" - At most O(2 * S + 1) storage mutations; codec complexity `O(1 * S + S * 1)`);",
" one storage-exists.",
" # </weight>"
]
},
{
"name": "clear_identity",
"args": [],
"documentation": [
" Clear an account's identity info and all sub-account and return all deposits.",
"",
" Payment: All reserved balances on the account are returned.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a registered",
" identity.",
"",
" Emits `IdentityCleared` if successful.",
"",
" # <weight>",
" - `O(R + S + X)`.",
" - One balance-reserve operation.",
" - `S + 2` storage deletions.",
" - One event.",
" # </weight>"
]
},
{
"name": "request_judgement",
"args": [
{
"name": "reg_index",
"type": "Compact<RegistrarIndex>"
},
{
"name": "max_fee",
"type": "Compact<BalanceOf>"
}
],
"documentation": [
" Request a judgement from a registrar.",
"",
" Payment: At most `max_fee` will be reserved for payment to the registrar if judgement",
" given.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a",
" registered identity.",
"",
" - `reg_index`: The index of the registrar whose judgement is requested.",
" - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:",
"",
" ```nocompile",
" Self::registrars(reg_index).uwnrap().fee",
" ```",
"",
" Emits `JudgementRequested` if successful.",
"",
" # <weight>",
" - `O(R + X)`.",
" - One balance-reserve operation.",
" - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.",
" - One event.",
" # </weight>"
]
},
{
"name": "cancel_request",
"args": [
{
"name": "reg_index",
"type": "RegistrarIndex"
}
],
"documentation": [
" Cancel a previous request.",
"",
" Payment: A previously reserved deposit is returned on success.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a",
" registered identity.",
"",
" - `reg_index`: The index of the registrar whose judgement is no longer requested.",
"",
" Emits `JudgementUnrequested` if successful.",
"",
" # <weight>",
" - `O(R + X)`.",
" - One balance-reserve operation.",
" - One storage mutation `O(R + X)`.",
" - One event.",
" # </weight>"
]
},
{
"name": "set_fee",
"args": [
{
"name": "index",
"type": "Compact<RegistrarIndex>"
},
{
"name": "fee",
"type": "Compact<BalanceOf>"
}
],
"documentation": [
" Set the fee required for a judgement to be requested from a registrar.",
"",
" 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.",
" - `fee`: the new fee.",
"",
" # <weight>",
" - `O(R)`.",
" - One storage mutation `O(R)`.",
" # </weight>"
]
},
{
"name": "set_account_id",
"args": [
{
"name": "index",
"type": "Compact<RegistrarIndex>"
},
{
"name": "new",
"type": "AccountId"
}
],
"documentation": [
" Change the account associated with a registrar.",
"",
" 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.",
" - `new`: the new account ID.",
"",
" # <weight>",
" - `O(R)`.",
" - One storage mutation `O(R)`.",
" # </weight>"
]
},
{
"name": "set_fields",
"args": [
{
"name": "index",
"type": "Compact<RegistrarIndex>"
},
{
"name": "fields",
"type": "IdentityFields"
}
],
"documentation": [
" Set the field information for a registrar.",
"",
" 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)`.",
" # </weight>"
]
},
{
"name": "provide_judgement",
"args": [
{
"name": "reg_index",
"type": "Compact<RegistrarIndex>"
},
{
"name": "target",
"type": "Address"
},
{
"name": "judgement",
"type": "Judgement"
}
],
"documentation": [
" Provide a judgement for an account's identity.",
"",
" 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.",
" - `target`: the account whose identity the judgement is upon. This must be an account",
" with a registered identity.",
" - `judgement`: the judgement of the registrar of index `reg_index` about `target`.",
"",
" Emits `JudgementGiven` if successful.",
"",
" # <weight>",
" - `O(R + X)`.",
" - One balance-transfer operation.",
" - Up to one account-lookup operation.",
" - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.",
" - One event.",
" # </weight>"
]
},
{
"name": "kill_identity",
"args": [
{
"name": "target",
"type": "Address"
}
],
"documentation": [
" Remove an account's identity and sub-account information and slash the deposits.",
"",
" Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by",
" `Slash`. Verification request deposits are not returned; they should be cancelled",
" manually using `cancel_request`.",
"",
" The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.",
"",
" - `target`: the account whose identity the judgement is upon. This must be an account",
" with a registered identity.",
"",
" Emits `IdentityKilled` if successful.",
"",
" # <weight>",
" - `O(R + S + X)`.",
" - One balance-reserve operation.",
" - `S + 2` storage mutations.",
" - One event.",
" # </weight>"
]
}
],
"events": [
{
"name": "IdentitySet",
"args": [
"AccountId"
],
"documentation": [
" A name was set or reset (which will remove all judgements)."
]
},
{
"name": "IdentityCleared",
"args": [
"AccountId",
"Balance"
],
"documentation": [
" A name was cleared, and the given balance returned."
]
},
{
"name": "IdentityKilled",
"args": [
"AccountId",
"Balance"
],
"documentation": [
" A name was removed and the given balance slashed."
]
},
{
"name": "JudgementRequested",
"args": [
"AccountId",
"RegistrarIndex"
],
"documentation": [
" A judgement was asked from a registrar."
]
},
{
"name": "JudgementUnrequested",
"args": [
"AccountId",
"RegistrarIndex"
],
"documentation": [
" A judgement request was retracted."
]
},
{
"name": "JudgementGiven",
"args": [
"AccountId",
"RegistrarIndex"
],
"documentation": [
" A judgement was given by a registrar."
]
},
{
"name": "RegistrarAdded",
"args": [
"RegistrarIndex"
],
"documentation": [
" A registrar was added."
]
}
],
"constants": [],
"errors": [
{
"name": "TooManySubAccounts",
"documentation": [
" Too many subs-accounts."
]
},
{
"name": "NotFound",
"documentation": [
" Account isn't found."
]
},
{
"name": "NotNamed",
"documentation": [
" Account isn't named."
]
},
{
"name": "EmptyIndex",
"documentation": [
" Empty index."
]
},
{
"name": "FeeChanged",
"documentation": [
" Fee is changed."
]
},
{
"name": "NoIdentity",
"documentation": [
" No identity found."
]
},
{
"name": "StickyJudgement",
"documentation": [
" Sticky judgement."
]
},
{
"name": "JudgementGiven",
"documentation": [
" Judgement given."
]
},
{
"name": "InvalidJudgement",
"documentation": [
" Invalid judgement."
]
},
{
"name": "InvalidIndex",
"documentation": [
" The index is invalid."
]
},
{
"name": "InvalidTarget",
"documentation": [
" The target is invalid."
]
}
]
},
{
"name": "Society",
"storage": {
"prefix": "Society",
"items": [
{
"name": "Founder",
"modifier": "optional",
"type": {
"Plain": "AccountId"
},
"fallback": "0x00",
"documentation": [
" The first member."
]
},
{
"name": "Rules",
"modifier": "optional",
"type": {
"Plain": "Hash"
},
"fallback": "0x00",
"documentation": [
" A hash of the rules of this society concerning membership. Can only be set once and",
" only by the founder."
]
},
{
"name": "Candidates",
"modifier": "default",
"type": {
"Plain": "Vec<Bid>"
},
"fallback": "0x00",
"documentation": [
" The current set of candidates; bidders that are attempting to become members."
]
},
{
"name": "SuspendedCandidates",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "(BalanceOf,BidKind)",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" The set of suspended candidates."
]
},
{
"name": "Pot",
"modifier": "default",
"type": {
"Plain": "BalanceOf"
},
"fallback": "0x00000000000000000000000000000000",
"documentation": [
" Amount of our account balance that is specifically for the next round's bid(s)."
]
},
{
"name": "Head",
"modifier": "optional",
"type": {
"Plain": "AccountId"
},
"fallback": "0x00",
"documentation": [
" The most primary from the most recently approved members."
]
},
{
"name": "Members",
"modifier": "default",
"type": {
"Plain": "Vec<AccountId>"
},
"fallback": "0x00",
"documentation": [
" The current set of members, ordered."
]
},
{
"name": "SuspendedMembers",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "bool",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" The set of suspended members."
]
},
{
"name": "Bids",
"modifier": "default",
"type": {
"Plain": "Vec<Bid>"
},
"fallback": "0x00",
"documentation": [
" The current bids, stored ordered by the value of the bid."
]
},
{
"name": "Vouching",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "VouchingStatus",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Members currently vouching or banned from vouching again"
]
},
{
"name": "Payouts",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "Vec<(BlockNumber,BalanceOf)>",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Pending payouts; ordered by block number, with the amount that should be paid out."
]
},
{
"name": "Strikes",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "StrikeCount",
"linked": false
}
},
"fallback": "0x00000000",
"documentation": [
" The ongoing number of losing votes cast by the member."
]
},
{
"name": "Votes",
"modifier": "optional",
"type": {
"DoubleMap": {
"hasher": "twox64Concat",
"key1": "AccountId",
"key2": "AccountId",
"value": "Vote",
"key2Hasher": "twox64Concat"
}
},
"fallback": "0x00",
"documentation": [
" Double map from Candidate -> Voter -> (Maybe) Vote."
]
},
{
"name": "Defender",
"modifier": "optional",
"type": {
"Plain": "AccountId"
},
"fallback": "0x00",
"documentation": [
" The defending member currently being challenged."
]
},
{
"name": "DefenderVotes",
"modifier": "optional",
"type": {
"Map": {
"hasher": "twox64Concat",
"key": "AccountId",
"value": "Vote",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" Votes for the defender."
]
},
{
"name": "MaxMembers",
"modifier": "default",
"type": {
"Plain": "u32"
},
"fallback": "0x00000000",
"documentation": [
" The max number of members for the society at one time."
]
}
]
},
"calls": [
{
"name": "bid",
"args": [
{
"name": "value",
"type": "BalanceOf"
}
],
"documentation": [
" A user outside of the society can make a bid for entry.",
"",
" Payment: `CandidateDeposit` will be reserved for making a bid. It is returned",
" when the bid becomes a member, or if the bid calls `unbid`.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `value`: A one time payment the bid would like to receive when joining the society.",
"",
" # <weight>",
" Key: B (len of bids), C (len of candidates), M (len of members), X (balance reserve)",
" - Storage Reads:",
" \t- One storage read to check for suspended candidate. O(1)",
" \t- One storage read to check for suspended member. O(1)",
" \t- One storage read to retrieve all current bids. O(B)",
" \t- One storage read to retrieve all current candidates. O(C)",
" \t- One storage read to retrieve all members. O(M)",
" - Storage Writes:",
" \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)",
" \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)",
" - Notable Computation:",
" \t- O(B + C + log M) search to check user is not already a part of society.",
" \t- O(log B) search to insert the new bid sorted.",
" - External Module Operations:",
" \t- One balance reserve operation. O(X)",
" \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.",
" - Events:",
" \t- One event for new bid.",
" \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.",
"",
" Total Complexity: O(M + B + C + logM + logB + X)",
" # </weight>"
]
},
{
"name": "unbid",
"args": [
{
"name": "pos",
"type": "u32"
}
],
"documentation": [
" A bidder can remove their bid for entry into society.",
" By doing so, they will have their candidate deposit returned or",
" they will unvouch their voucher.",
"",
" Payment: The bid deposit is unreserved if the user made a bid.",
"",
" The dispatch origin for this call must be _Signed_ and a bidder.",
"",
" Parameters:",
" - `pos`: Position in the `Bids` vector of the bid who wants to unbid.",
"",
" # <weight>",
" Key: B (len of bids), X (balance unreserve)",
" - One storage read and write to retrieve and update the bids. O(B)",
" - Either one unreserve balance action O(X) or one vouching storage removal. O(1)",
" - One event.",
"",
" Total Complexity: O(B + X)",
" # </weight>"
]
},
{
"name": "vouch",
"args": [
{
"name": "who",
"type": "AccountId"
},
{
"name": "value",
"type": "BalanceOf"
},
{
"name": "tip",
"type": "BalanceOf"
}
],
"documentation": [
" As a member, vouch for someone to join society by placing a bid on their behalf.",
"",
" There is no deposit required to vouch for a new bid, but a member can only vouch for",
" one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by",
" the suspension judgement origin, the member will be banned from vouching again.",
"",
" As a vouching member, you can claim a tip if the candidate is accepted. This tip will",
" be paid as a portion of the reward the member will receive for joining the society.",
"",
" The dispatch origin for this call must be _Signed_ and a member.",
"",
" Parameters:",
" - `who`: The user who you would like to vouch for.",
" - `value`: The total reward to be paid between you and the candidate if they become",
" a member in the society.",
" - `tip`: Your cut of the total `value` payout when the candidate is inducted into",
" the society. Tips larger than `value` will be saturated upon payout.",
"",
" # <weight>",
" Key: B (len of bids), C (len of candidates), M (len of members)",
" - Storage Reads:",
" \t- One storage read to retrieve all members. O(M)",
" \t- One storage read to check member is not already vouching. O(1)",
" \t- One storage read to check for suspended candidate. O(1)",
" \t- One storage read to check for suspended member. O(1)",
" \t- One storage read to retrieve all current bids. O(B)",
" \t- One storage read to retrieve all current candidates. O(C)",
" - Storage Writes:",
" \t- One storage write to insert vouching status to the member. O(1)",
" \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)",
" \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)",
" - Notable Computation:",
" \t- O(log M) search to check sender is a member.",
" \t- O(B + C + log M) search to check user is not already a part of society.",
" \t- O(log B) search to insert the new bid sorted.",
" - External Module Operations:",
" \t- One balance reserve operation. O(X)",
" \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.",
" - Events:",
" \t- One event for vouch.",
" \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.",
"",
" Total Complexity: O(M + B + C + logM + logB + X)",
" # </weight>"
]
},
{
"name": "unvouch",
"args": [
{
"name": "pos",
"type": "u32"
}
],
"documentation": [
" As a vouching member, unvouch a bid. This only works while vouched user is",
" only a bidder (and not a candidate).",
"",
" The dispatch origin for this call must be _Signed_ and a vouching member.",
"",
" Parameters:",
" - `pos`: Position in the `Bids` vector of the bid who should be unvouched.",
"",
" # <weight>",
" Key: B (len of bids)",
" - One storage read O(1) to check the signer is a vouching member.",
" - One storage mutate to retrieve and update the bids. O(B)",
" - One vouching storage removal. O(1)",
" - One event.",
"",
" Total Complexity: O(B)",
" # </weight>"
]
},
{
"name": "vote",
"args": [
{
"name": "candidate",
"type": "Address"
},
{
"name": "approve",
"type": "bool"
}
],
"documentation": [
" As a member, vote on a candidate.",
"",
" The dispatch origin for this call must be _Signed_ and a member.",
"",
" Parameters:",
" - `candidate`: The candidate that the member would like to bid on.",
" - `approve`: A boolean which says if the candidate should be",
" approved (`true`) or rejected (`false`).",
"",
" # <weight>",
" Key: C (len of candidates), M (len of members)",
" - One storage read O(M) and O(log M) search to check user is a member.",
" - One account lookup.",
" - One storage read O(C) and O(C) search to check that user is a candidate.",
" - One storage write to add vote to votes. O(1)",
" - One event.",
"",
" Total Complexity: O(M + logM + C)",
" # </weight>"
]
},
{
"name": "defender_vote",
"args": [
{
"name": "approve",
"type": "bool"
}
],
"documentation": [
" As a member, vote on the defender.",
"",
" The dispatch origin for this call must be _Signed_ and a member.",
"",
" Parameters:",
" - `approve`: A boolean which says if the candidate should be",
" approved (`true`) or rejected (`false`).",
"",
" # <weight>",
" - Key: M (len of members)",
" - One storage read O(M) and O(log M) search to check user is a member.",
" - One storage write to add vote to votes. O(1)",
" - One event.",
"",
" Total Complexity: O(M + logM)",
" # </weight>"
]
},
{
"name": "payout",
"args": [],
"documentation": [
" Transfer the first matured payout for the sender and remove it from the records.",
"",
" NOTE: This extrinsic needs to be called multiple times to claim multiple matured payouts.",
"",
" Payment: The member will receive a payment equal to their first matured",
" payout to their free balance.",
"",
" The dispatch origin for this call must be _Signed_ and a member with",
" payouts remaining.",
"",
" # <weight>",
" Key: M (len of members), P (number of payouts for a particular member)",
" - One storage read O(M) and O(log M) search to check signer is a member.",
" - One storage read O(P) to get all payouts for a member.",
" - One storage read O(1) to get the current block number.",
" - One currency transfer call. O(X)",
" - One storage write or removal to update the member's payouts. O(P)",
"",
" Total Complexity: O(M + logM + P + X)",
" # </weight>"
]
},
{
"name": "found",
"args": [
{
"name": "founder",
"type": "AccountId"
},
{
"name": "max_members",
"type": "u32"
},
{
"name": "rules",
"type": "Bytes"
}
],
"documentation": [
" Found the society.",
"",
" This is done as a discrete action in order to allow for the",
" module to be included into a running chain and can only be done once.",
"",
" The dispatch origin for this call must be from the _FounderSetOrigin_.",
"",
" Parameters:",
" - `founder` - The first member and head of the newly founded society.",
" - `max_members` - The initial max number of members for the society.",
" - `rules` - The rules of this society concerning membership.",
"",
" # <weight>",
" - Two storage mutates to set `Head` and `Founder`. O(1)",
" - One storage write to add the first member to society. O(1)",
" - One event.",
"",
" Total Complexity: O(1)",
" # </weight>"
]
},
{
"name": "unfound",
"args": [],
"documentation": [
" Anull the founding of the society.",
"",
" The dispatch origin for this call must be Signed, and the signing account must be both",
" the `Founder` and the `Head`. This implies that it may only be done when there is one",
" member.",
"",
" # <weight>",
" - Two storage reads O(1).",
" - Four storage removals O(1).",
" - One event.",
"",
" Total Complexity: O(1)",
" # </weight>"
]
},
{
"name": "judge_suspended_member",
"args": [
{
"name": "who",
"type": "AccountId"
},
{
"name": "forgive",
"type": "bool"
}
],
"documentation": [
" Allow suspension judgement origin to make judgement on a suspended member.",
"",
" If a suspended member is forgiven, we simply add them back as a member, not affecting",
" any of the existing storage items for that member.",
"",
" If a suspended member is rejected, remove all associated storage items, including",
" their payouts, and remove any vouched bids they currently have.",
"",
" The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.",
"",
" Parameters:",
" - `who` - The suspended member to be judged.",
" - `forgive` - A boolean representing whether the suspension judgement origin",
" forgives (`true`) or rejects (`false`) a suspended member.",
"",
" # <weight>",
" Key: B (len of bids), M (len of members)",
" - One storage read to check `who` is a suspended member. O(1)",
" - Up to one storage write O(M) with O(log M) binary search to add a member back to society.",
" - Up to 3 storage removals O(1) to clean up a removed member.",
" - Up to one storage write O(B) with O(B) search to remove vouched bid from bids.",
" - Up to one additional event if unvouch takes place.",
" - One storage removal. O(1)",
" - One event for the judgement.",
"",
" Total Complexity: O(M + logM + B)",
" # </weight>"
]
},
{
"name": "judge_suspended_candidate",
"args": [
{
"name": "who",
"type": "AccountId"
},
{
"name": "judgement",
"type": "Judgement"
}
],
"documentation": [
" Allow suspended judgement origin to make judgement on a suspended candidate.",
"",
" If the judgement is `Approve`, we add them to society as a member with the appropriate",
" payment for joining society.",
"",
" If the judgement is `Reject`, we either slash the deposit of the bid, giving it back",
" to the society treasury, or we ban the voucher from vouching again.",
"",
" If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go",
" through the induction process again.",
"",
" The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.",
"",
" Parameters:",
" - `who` - The suspended candidate to be judged.",
" - `judgement` - `Approve`, `Reject`, or `Rebid`.",
"",
" # <weight>",
" Key: B (len of bids), M (len of members), X (balance action)",
" - One storage read to check `who` is a suspended candidate.",
" - One storage removal of the suspended candidate.",
" - Approve Logic",
" \t- One storage read to get the available pot to pay users with. O(1)",
" \t- One storage write to update the available pot. O(1)",
" \t- One storage read to get the current block number. O(1)",
" \t- One storage read to get all members. O(M)",
" \t- Up to one unreserve currency action.",
" \t- Up to two new storage writes to payouts.",
" \t- Up to one storage write with O(log M) binary search to add a member to society.",
" - Reject Logic",
" \t- Up to one repatriate reserved currency action. O(X)",
" \t- Up to one storage write to ban the vouching member from vouching again.",
" - Rebid Logic",
" \t- Storage mutate with O(log B) binary search to place the user back into bids.",
" - Up to one additional event if unvouch takes place.",
" - One storage removal.",
" - One event for the judgement.",
"",
" Total Complexity: O(M + logM + B + X)",
" # </weight>"
]
},
{
"name": "set_max_members",
"args": [
{
"name": "max",
"type": "u32"
}
],
"documentation": [
" Allows root origin to change the maximum number of members in society.",
" Max membership count must be greater than 1.",
"",
" The dispatch origin for this call must be from _ROOT_.",
"",
" Parameters:",
" - `max` - The maximum number of members for the society.",
"",
" # <weight>",
" - One storage write to update the max. O(1)",
" - One event.",
"",
" Total Complexity: O(1)",
" # </weight>"
]
}
],
"events": [
{
"name": "Founded",
"args": [
"AccountId"
],
"documentation": [
" The society is founded by the given identity."
]
},
{
"name": "Bid",
"args": [
"AccountId",
"Balance"
],
"documentation": [
" A membership bid just happened. The given account is the candidate's ID and their offer",
" is the second."
]
},
{
"name": "Vouch",
"args": [
"AccountId",
"Balance",
"AccountId"
],
"documentation": [
" A membership bid just happened by vouching. The given account is the candidate's ID and",
" their offer is the second. The vouching party is the third."
]
},
{
"name": "AutoUnbid",
"args": [
"AccountId"
],
"documentation": [
" A candidate was dropped (due to an excess of bids in the system)."
]
},
{
"name": "Unbid",
"args": [
"AccountId"
],
"documentation": [
" A candidate was dropped (by their request)."
]
},
{
"name": "Unvouch",
"args": [
"AccountId"
],
"documentation": [
" A candidate was dropped (by request of who vouched for them)."
]
},
{
"name": "Inducted",
"args": [
"AccountId",
"Vec<AccountId>"
],
"documentation": [
" A group of candidates have been inducted. The batch's primary is the first value, the",
" batch in full is the second."
]
},
{
"name": "SuspendedMemberJudgement",
"args": [
"AccountId",
"bool"
],
"documentation": [
" A suspended member has been judged"
]
},
{
"name": "CandidateSuspended",
"args": [
"AccountId"
],
"documentation": [
" A candidate has been suspended"
]
},
{
"name": "MemberSuspended",
"args": [
"AccountId"
],
"documentation": [
" A member has been suspended"
]
},
{
"name": "Challenged",
"args": [
"AccountId"
],
"documentation": [
" A member has been challenged"
]
},
{
"name": "Vote",
"args": [
"AccountId",
"AccountId",
"bool"
],
"documentation": [
" A vote has been placed (candidate, voter, vote)"
]
},
{
"name": "DefenderVote",
"args": [
"AccountId",
"bool"
],
"documentation": [
" A vote has been placed for a defending member (voter, vote)"
]
},
{
"name": "NewMaxMembers",
"args": [
"u32"
],
"documentation": [
" A new max member count has been set"
]
},
{
"name": "Unfounded",
"args": [
"AccountId"
],
"documentation": [
" Society is unfounded."
]
}
],
"constants": [
{
"name": "CandidateDeposit",
"type": "BalanceOf",
"value": "0x0080c6a47e8d03000000000000000000",
"documentation": [
" The minimum amount of a deposit required for a bid to be made."
]
},
{
"name": "WrongSideDeduction",
"type": "BalanceOf",
"value": "0x0080f420e6b500000000000000000000",
"documentation": [
" The amount of the unpaid reward that gets deducted in the case that either a skeptic",
" doesn't vote or someone votes in the wrong way."
]
},
{
"name": "MaxStrikes",
"type": "u32",
"value": "0x0a000000",
"documentation": [
" The number of times a member may vote the wrong way (or not at all, when they are a skeptic)",
" before they become suspended."
]
},
{
"name": "PeriodSpend",
"type": "BalanceOf",
"value": "0x0000c52ebca2b1000000000000000000",
"documentation": [
" The amount of incentive paid within each period. Doesn't include VoterTip."
]
},
{
"name": "RotationPeriod",
"type": "BlockNumber",
"value": "0x00770100",
"documentation": [
" The number of blocks between candidate/membership rotation periods."
]
},
{
"name": "ChallengePeriod",
"type": "BlockNumber",
"value": "0x80130300",
"documentation": [
" The number of blocks between membership challenges."
]
}
],
"errors": [
{
"name": "BadPosition",
"documentation": [
" An incorrect position was provided."
]
},
{
"name": "NotMember",
"documentation": [
" User is not a member."
]
},
{
"name": "AlreadyMember",
"documentation": [
" User is already a member."
]
},
{
"name": "Suspended",
"documentation": [
" User is suspended."
]
},
{
"name": "NotSuspended",
"documentation": [
" User is not suspended."
]
},
{
"name": "NoPayout",
"documentation": [
" Nothing to payout."
]
},
{
"name": "AlreadyFounded",
"documentation": [
" Society already founded."
]
},
{
"name": "InsufficientPot",
"documentation": [
" Not enough in pot to accept candidate."
]
},
{
"name": "AlreadyVouching",
"documentation": [
" Member is already vouching or banned from vouching again."
]
},
{
"name": "NotVouching",
"documentation": [
" Member is not vouching."
]
},
{
"name": "Head",
"documentation": [
" Cannot remove the head of the chain."
]
},
{
"name": "Founder",
"documentation": [
" Cannot remove the founder."
]
},
{
"name": "AlreadyBid",
"documentation": [
" User has already made a bid."
]
},
{
"name": "AlreadyCandidate",
"documentation": [
" User is already a candidate."
]
},
{
"name": "NotCandidate",
"documentation": [
" User is not a candidate."
]
},
{
"name": "MaxMembers",
"documentation": [
" Too many members in the society."
]
},
{
"name": "NotFounder",
"documentation": [
" The caller is not the founder."
]
},
{
"name": "NotHead",
"documentation": [
" The caller is not the head."
]
}
]
},
{
"name": "Recovery",
"storage": {
"prefix": "Recovery",
"items": [
{
"name": "Recoverable",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "RecoveryConfig",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" The set of recoverable accounts and their recovery configuration."
]
},
{
"name": "ActiveRecoveries",
"modifier": "optional",
"type": {
"DoubleMap": {
"hasher": "twox64Concat",
"key1": "AccountId",
"key2": "AccountId",
"value": "ActiveRecovery",
"key2Hasher": "twox64Concat"
}
},
"fallback": "0x00",
"documentation": [
" Active recovery attempts.",
"",
" First account is the account to be recovered, and the second account",
" is the user trying to recover the account."
]
},
{
"name": "Recovered",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "AccountId",
"linked": false
}
},
"fallback": "0x00",
"documentation": [
" The final list of recovered accounts.",
"",
" Map from the recovered account to the user who can access it."
]
}
]
},
"calls": [
{
"name": "as_recovered",
"args": [
{
"name": "account",
"type": "AccountId"
},
{
"name": "call",
"type": "Call"
}
],
"documentation": [
" Send a call through a recovered account.",
"",
" The dispatch origin for this call must be _Signed_ and registered to",
" be able to make calls on behalf of the recovered account.",
"",
" Parameters:",
" - `account`: The recovered account you want to make a call on-behalf-of.",
" - `call`: The call you want to make with the recovered account.",
"",
" # <weight>",
" - The weight of the `call`.",
" - One storage lookup to check account is recovered by `who`. O(1)",
" # </weight>"
]
},
{
"name": "set_recovered",
"args": [
{
"name": "lost",
"type": "AccountId"
},
{
"name": "rescuer",
"type": "AccountId"
}
],
"documentation": [
" Allow ROOT to bypass the recovery process and set an a rescuer account",
" for a lost account directly.",
"",
" The dispatch origin for this call must be _ROOT_.",
"",
" Parameters:",
" - `lost`: The \"lost account\" to be recovered.",
" - `rescuer`: The \"rescuer account\" which can call as the lost account.",
"",
" # <weight>",
" - One storage write O(1)",
" - One event",
" # </weight>"
]
},
{
"name": "create_recovery",
"args": [
{
"name": "friends",
"type": "Vec<AccountId>"
},
{
"name": "threshold",
"type": "u16"
},
{
"name": "delay_period",
"type": "BlockNumber"
}
],
"documentation": [
" Create a recovery configuration for your account. This makes your account recoverable.",
"",
" Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance",
" will be reserved for storing the recovery configuration. This deposit is returned",
" in full when the user calls `remove_recovery`.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `friends`: A list of friends you trust to vouch for recovery attempts.",
" Should be ordered and contain no duplicate values.",
" - `threshold`: The number of friends that must vouch for a recovery attempt",
" before the account can be recovered. Should be less than or equal to",
" the length of the list of friends.",
" - `delay_period`: The number of blocks after a recovery attempt is initialized",
" that needs to pass before the account can be recovered.",
"",
" # <weight>",
" - Key: F (len of friends)",
" - One storage read to check that account is not already recoverable. O(1).",
" - A check that the friends list is sorted and unique. O(F)",
" - One currency reserve operation. O(X)",
" - One storage write. O(1). Codec O(F).",
" - One event.",
"",
" Total Complexity: O(F + X)",
" # </weight>"
]
},
{
"name": "initiate_recovery",
"args": [
{
"name": "account",
"type": "AccountId"
}
],
"documentation": [
" Initiate the process for recovering a recoverable account.",
"",
" Payment: `RecoveryDeposit` balance will be reserved for initiating the",
" recovery process. This deposit will always be repatriated to the account",
" trying to be recovered. See `close_recovery`.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `account`: The lost account that you want to recover. This account",
" needs to be recoverable (i.e. have a recovery configuration).",
"",
" # <weight>",
" - One storage read to check that account is recoverable. O(F)",
" - One storage read to check that this recovery process hasn't already started. O(1)",
" - One currency reserve operation. O(X)",
" - One storage read to get the current block number. O(1)",
" - One storage write. O(1).",
" - One event.",
"",
" Total Complexity: O(F + X)",
" # </weight>"
]
},
{
"name": "vouch_recovery",
"args": [
{
"name": "lost",
"type": "AccountId"
},
{
"name": "rescuer",
"type": "AccountId"
}
],
"documentation": [
" Allow a \"friend\" of a recoverable account to vouch for an active recovery",
" process for that account.",
"",
" The dispatch origin for this call must be _Signed_ and must be a \"friend\"",
" for the recoverable account.",
"",
" Parameters:",
" - `lost`: The lost account that you want to recover.",
" - `rescuer`: The account trying to rescue the lost account that you",
" want to vouch for.",
"",
" The combination of these two parameters must point to an active recovery",
" process.",
"",
" # <weight>",
" Key: F (len of friends in config), V (len of vouching friends)",
" - One storage read to get the recovery configuration. O(1), Codec O(F)",
" - One storage read to get the active recovery process. O(1), Codec O(V)",
" - One binary search to confirm caller is a friend. O(logF)",
" - One binary search to confirm caller has not already vouched. O(logV)",
" - One storage write. O(1), Codec O(V).",
" - One event.",
"",
" Total Complexity: O(F + logF + V + logV)",
" # </weight>"
]
},
{
"name": "claim_recovery",
"args": [
{
"name": "account",
"type": "AccountId"
}
],
"documentation": [
" Allow a successful rescuer to claim their recovered account.",
"",
" The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"",
" who has successfully completed the account recovery process: collected",
" `threshold` or more vouches, waited `delay_period` blocks since initiation.",
"",
" Parameters:",
" - `account`: The lost account that you want to claim has been successfully",
" recovered by you.",
"",
" # <weight>",
" Key: F (len of friends in config), V (len of vouching friends)",
" - One storage read to get the recovery configuration. O(1), Codec O(F)",
" - One storage read to get the active recovery process. O(1), Codec O(V)",
" - One storage read to get the current block number. O(1)",
" - One storage write. O(1), Codec O(V).",
" - One event.",
"",
" Total Complexity: O(F + V)",
" # </weight>"
]
},
{
"name": "close_recovery",
"args": [
{
"name": "rescuer",
"type": "AccountId"
}
],
"documentation": [
" As the controller of a recoverable account, close an active recovery",
" process for your account.",
"",
" Payment: By calling this function, the recoverable account will receive",
" the recovery deposit `RecoveryDeposit` placed by the rescuer.",
"",
" The dispatch origin for this call must be _Signed_ and must be a",
" recoverable account with an active recovery process for it.",
"",
" Parameters:",
" - `rescuer`: The account trying to rescue this recoverable account.",
"",
" # <weight>",
" Key: V (len of vouching friends)",
" - One storage read/remove to get the active recovery process. O(1), Codec O(V)",
" - One balance call to repatriate reserved. O(X)",
" - One event.",
"",
" Total Complexity: O(V + X)",
" # </weight>"
]
},
{
"name": "remove_recovery",
"args": [],
"documentation": [
" Remove the recovery process for your account.",
"",
" NOTE: The user must make sure to call `close_recovery` on all active",
" recovery attempts before calling this function else it will fail.",
"",
" Payment: By calling this function the recoverable account will unreserve",
" their recovery configuration deposit.",
" (`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)",
"",
" The dispatch origin for this call must be _Signed_ and must be a",
" recoverable account (i.e. has a recovery configuration).",
"",
" # <weight>",
" Key: F (len of friends)",
" - One storage read to get the prefix iterator for active recoveries. O(1)",
" - One storage read/remove to get the recovery configuration. O(1), Codec O(F)",
" - One balance call to unreserved. O(X)",
" - One event.",
"",
" Total Complexity: O(F + X)",
" # </weight>"
]
}
],
"events": [
{
"name": "RecoveryCreated",
"args": [
"AccountId"
],
"documentation": [
" A recovery process has been set up for an account"
]
},
{
"name": "RecoveryInitiated",
"args": [
"AccountId",
"AccountId"
],
"documentation": [
" A recovery process has been initiated for account_1 by account_2"
]
},
{
"name": "RecoveryVouched",
"args": [
"AccountId",
"AccountId",
"AccountId"
],
"documentation": [
" A recovery process for account_1 by account_2 has been vouched for by account_3"
]
},
{
"name": "RecoveryClosed",
"args": [
"AccountId",
"AccountId"
],
"documentation": [
" A recovery process for account_1 by account_2 has been closed"
]
},
{
"name": "AccountRecovered",
"args": [
"AccountId",
"AccountId"
],
"documentation": [
" Account_1 has been successfully recovered by account_2"
]
},
{
"name": "RecoveryRemoved",
"args": [
"AccountId"
],
"documentation": [
" A recovery process has been removed for an account"
]
}
],
"constants": [],
"errors": []
}
]
}
}
},
"registry": {
"_classes": {},
"_definitions": {},
"_metadataCalls": {
"0x0000": {
"name": "fill_block",
"args": [],
"documentation": [
" A big dispatch that will disallow any other transaction to be included."
]
},
"0x0001": {
"name": "remark",
"args": [
{
"name": "_remark",
"type": "Bytes"
}
],
"documentation": [
" Make some on-chain remark."
]
},
"0x0002": {
"name": "set_heap_pages",
"args": [
{
"name": "pages",
"type": "u64"
}
],
"documentation": [
" Set the number of pages in the WebAssembly environment's heap."
]
},
"0x0003": {
"name": "set_code",
"args": [
{
"name": "code",
"type": "Bytes"
}
],
"documentation": [
" Set the new runtime code."
]
},
"0x0004": {
"name": "set_code_without_checks",
"args": [
{
"name": "code",
"type": "Bytes"
}
],
"documentation": [
" Set the new runtime code without doing any checks of the given `code`."
]
},
"0x0005": {
"name": "set_changes_trie_config",
"args": [
{
"name": "changes_trie_config",
"type": "Option<ChangesTrieConfiguration>"
}
],
"documentation": [
" Set the new changes trie configuration."
]
},
"0x0006": {
"name": "set_storage",
"args": [
{
"name": "items",
"type": "Vec<KeyValue>"
}
],
"documentation": [
" Set some items of storage."
]
},
"0x0007": {
"name": "kill_storage",
"args": [
{
"name": "keys",
"type": "Vec<Key>"
}
],
"documentation": [
" Kill some items from storage."
]
},
"0x0008": {
"name": "kill_prefix",
"args": [
{
"name": "prefix",
"type": "Key"
}
],
"documentation": [
" Kill all storage items with a key that starts with the given prefix."
]
},
"0x0100": {
"name": "batch",
"args": [
{
"name": "calls",
"type": "Vec<Call>"
}
],
"documentation": [
" Send a batch of dispatch calls.",
"",
" This will execute until the first one fails and then stop.",
"",
" May be called from any origin.",
"",
" - `calls`: The calls to be dispatched from the same origin.",
"",
" # <weight>",
" - The sum of the weights of the `calls`.",
" - One event.",
" # </weight>",
"",
" This will return `Ok` in all circumstances. To determine the success of the batch, an",
" event is deposited. If a call failed and the batch was interrupted, then the",
" `BatchInterrupted` event is deposited, along with the number of successful calls made",
" and the error of the failed call. If all were successful, then the `BatchCompleted`",
" event is deposited."
]
},
"0x0101": {
"name": "as_sub",
"args": [
{
"name": "index",
"type": "u16"
},
{
"name": "call",
"type": "Call"
}
],
"documentation": [
" Send a call through an indexed pseudonym of the sender.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" # <weight>",
" - The weight of the `call`.",
" # </weight>"
]
},
"0x0102": {
"name": "as_multi",
"args": [
{
"name": "threshold",
"type": "u16"
},
{
"name": "other_signatories",
"type": "Vec<AccountId>"
},
{
"name": "maybe_timepoint",
"type": "Option<Timepoint>"
},
{
"name": "call",
"type": "Call"
}
],
"documentation": [
" 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.",
"",
" Payment: `MultisigDepositBase` will be reserved if this is the first approval, plus",
" `threshold` times `MultisigDepositFactor`. It is returned once this dispatch happens or",
" is cancelled.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" - `threshold`: The total number of approvals for this dispatch before it is executed.",
" - `other_signatories`: The accounts (other than the sender) who can approve this",
" dispatch. May not be empty.",
" - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is",
" 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`. Otherwise",
" 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>",
" - `O(S + Z + Call)`.",
" - Up to one balance-reserve or unreserve operation.",
" - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
" 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.",
" - One event.",
" - The weight of the `call`.",
" - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
" deposit taken for its lifetime of",
" `MultisigDepositBase + threshold * MultisigDepositFactor`.",
" # </weight>"
]
},
"0x0103": {
"name": "approve_as_multi",
"args": [
{
"name": "threshold",
"type": "u16"
},
{
"name": "other_signatories",
"type": "Vec<AccountId>"
},
{
"name": "maybe_timepoint",
"type": "Option<Timepoint>"
},
{
"name": "call_hash",
"type": "[u8;32]"
}
],
"documentation": [
" Register approval for a dispatch to be made from a deterministic composite account if",
" approved by a total of `threshold - 1` of `other_signatories`.",
"",
" Payment: `MultisigDepositBase` will be reserved if this is the first approval, plus",
" `threshold` times `MultisigDepositFactor`. It is returned once this dispatch happens or",
" is cancelled.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" - `threshold`: The total number of approvals for this dispatch before it is executed.",
" - `other_signatories`: The accounts (other than the sender) who can approve this",
" dispatch. May not be empty.",
" - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is",
" 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.",
"",
" 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.",
" - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
" 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.",
" - One event.",
" - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
" deposit taken for its lifetime of",
" `MultisigDepositBase + threshold * MultisigDepositFactor`.",
" # </weight>"
]
},
"0x0104": {
"name": "cancel_as_multi",
"args": [
{
"name": "threshold",
"type": "u16"
},
{
"name": "other_signatories",
"type": "Vec<AccountId>"
},
{
"name": "timepoint",
"type": "Timepoint"
},
{
"name": "call_hash",
"type": "[u8;32]"
}
],
"documentation": [
" 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_.",
"",
" - `threshold`: The total number of approvals for this dispatch before it is executed.",
" - `other_signatories`: The accounts (other than the sender) who can approve this",
" dispatch. May not be empty.",
" - `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.",
" - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
" signatories. `S` is capped by `MaxSignatories`, with weight being proportional.",
" - One encode & hash, both of complexity `O(S)`.",
" - One event.",
" - I/O: 1 read `O(S)`, one remove.",
" - Storage: removes one item.",
" # </weight>"
]
},
"0x0300": {
"name": "set",
"args": [
{
"name": "now",
"type": "Compact<Moment>"
}
],
"documentation": [
" 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`."
]
},
"0x0400": {
"name": "set_uncles",
"args": [
{
"name": "new_uncles",
"type": "Vec<Header>"
}
],
"documentation": [
" Provide a set of uncles."
]
},
"0x0600": {
"name": "transfer",
"args": [
{
"name": "dest",
"type": "Address"
},
{
"name": "value",
"type": "Compact<Balance>"
}
],
"documentation": [
" 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>"
]
},
"0x0601": {
"name": "set_balance",
"args": [
{
"name": "who",
"type": "Address"
},
{
"name": "new_free",
"type": "Compact<Balance>"
},
{
"name": "new_reserved",
"type": "Compact<Balance>"
}
],
"documentation": [
" 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.",
" # </weight>"
]
},
"0x0602": {
"name": "force_transfer",
"args": [
{
"name": "source",
"type": "Address"
},
{
"name": "dest",
"type": "Address"
},
{
"name": "value",
"type": "Compact<Balance>"
}
],
"documentation": [
" Exactly as `transfer`, except the origin must be root and the source account may be",
" specified."
]
},
"0x0603": {
"name": "transfer_keep_alive",
"args": [
{
"name": "dest",
"type": "Address"
},
{
"name": "value",
"type": "Compact<Balance>"
}
],
"documentation": [
" 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"
]
},
"0x0700": {
"name": "bond",
"args": [
{
"name": "controller",
"type": "Address"
},
{
"name": "value",
"type": "Compact<BalanceOf>"
},
{
"name": "payee",
"type": "RewardDestination"
}
],
"documentation": [
" 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>"
]
},
"0x0701": {
"name": "bond_extra",
"args": [
{
"name": "max_additional",
"type": "Compact<BalanceOf>"
}
],
"documentation": [
" 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>"
]
},
"0x0702": {
"name": "unbond",
"args": [
{
"name": "value",
"type": "Compact<BalanceOf>"
}
],
"documentation": [
" 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>"
]
},
"0x0703": {
"name": "withdraw_unbonded",
"args": [],
"documentation": [
" 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>"
]
},
"0x0704": {
"name": "validate",
"args": [
{
"name": "prefs",
"type": "ValidatorPrefs"
}
],
"documentation": [
" 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>"
]
},
"0x0705": {
"name": "nominate",
"args": [
{
"name": "targets",
"type": "Vec<Address>"
}
],
"documentation": [
" 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>"
]
},
"0x0706": {
"name": "chill",
"args": [],
"documentation": [
" 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>"
]
},
"0x0707": {
"name": "set_payee",
"args": [
{
"name": "payee",
"type": "RewardDestination"
}
],
"documentation": [
" (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>"
]
},
"0x0708": {
"name": "set_controller",
"args": [
{
"name": "controller",
"type": "Address"
}
],
"documentation": [
" (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>"
]
},
"0x0709": {
"name": "set_validator_count",
"args": [
{
"name": "new",
"type": "Compact<u32>"
}
],
"documentation": [
" The ideal number of validators."
]
},
"0x070a": {
"name": "force_no_eras",
"args": [],
"documentation": [
" Force there to be no new eras indefinitely.",
"",
" # <weight>",
" - No arguments.",
" # </weight>"
]
},
"0x070b": {
"name": "force_new_era",
"args": [],
"documentation": [
" 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>"
]
},
"0x070c": {
"name": "set_invulnerables",
"args": [
{
"name": "validators",
"type": "Vec<AccountId>"
}
],
"documentation": [
" Set the validators who cannot be slashed (if any)."
]
},
"0x070d": {
"name": "force_unstake",
"args": [
{
"name": "stash",
"type": "AccountId"
}
],
"documentation": [
" Force a current staker to become completely unstaked, immediately."
]
},
"0x070e": {
"name": "force_new_era_always",
"args": [],
"documentation": [
" Force there to be a new era at the end of sessions indefinitely.",
"",
" # <weight>",
" - One storage write",
" # </weight>"
]
},
"0x070f": {
"name": "cancel_deferred_slash",
"args": [
{
"name": "era",
"type": "EraIndex"
},
{
"name": "slash_indices",
"type": "Vec<u32>"
}
],
"documentation": [
" 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>"
]
},
"0x0710": {
"name": "rebond",
"args": [
{
"name": "value",
"type": "Compact<BalanceOf>"
}
],
"documentation": [
" Rebond a portion of the stash scheduled to be unlocked.",
"",
" # <weight>",
" - Time complexity: O(1). Bounded by `MAX_UNLOCKING_CHUNKS`.",
" - Storage changes: Can't increase storage, only decrease it.",
" # </weight>"
]
},
"0x0800": {
"name": "set_keys",
"args": [
{
"name": "keys",
"type": "Keys"
},
{
"name": "proof",
"type": "Bytes"
}
],
"documentation": [
" 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>"
]
},
"0x0900": {
"name": "propose",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
},
{
"name": "value",
"type": "Compact<BalanceOf>"
}
],
"documentation": [
" Propose a sensitive action to be taken.",
"",
" # <weight>",
" - O(1).",
" - Two DB changes, one DB entry.",
" # </weight>"
]
},
"0x0901": {
"name": "second",
"args": [
{
"name": "proposal",
"type": "Compact<PropIndex>"
}
],
"documentation": [
" Propose a sensitive action to be taken.",
"",
" # <weight>",
" - O(1).",
" - One DB entry.",
" # </weight>"
]
},
"0x0902": {
"name": "vote",
"args": [
{
"name": "ref_index",
"type": "Compact<ReferendumIndex>"
},
{
"name": "vote",
"type": "Vote"
}
],
"documentation": [
" 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>"
]
},
"0x0903": {
"name": "proxy_vote",
"args": [
{
"name": "ref_index",
"type": "Compact<ReferendumIndex>"
},
{
"name": "vote",
"type": "Vote"
}
],
"documentation": [
" 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>"
]
},
"0x0904": {
"name": "emergency_cancel",
"args": [
{
"name": "ref_index",
"type": "ReferendumIndex"
}
],
"documentation": [
" Schedule an emergency cancellation of a referendum. Cannot happen twice to the same",
" referendum."
]
},
"0x0905": {
"name": "external_propose",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
}
],
"documentation": [
" Schedule a referendum to be tabled once it is legal to schedule an external",
" referendum."
]
},
"0x0906": {
"name": "external_propose_majority",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
}
],
"documentation": [
" 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."
]
},
"0x0907": {
"name": "external_propose_default",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
}
],
"documentation": [
" 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."
]
},
"0x0908": {
"name": "fast_track",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
},
{
"name": "voting_period",
"type": "BlockNumber"
},
{
"name": "delay",
"type": "BlockNumber"
}
],
"documentation": [
" 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."
]
},
"0x0909": {
"name": "veto_external",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
}
],
"documentation": [
" Veto and blacklist the external proposal hash."
]
},
"0x090a": {
"name": "cancel_referendum",
"args": [
{
"name": "ref_index",
"type": "Compact<ReferendumIndex>"
}
],
"documentation": [
" Remove a referendum."
]
},
"0x090b": {
"name": "cancel_queued",
"args": [
{
"name": "which",
"type": "ReferendumIndex"
}
],
"documentation": [
" Cancel a proposal queued for enactment."
]
},
"0x090c": {
"name": "set_proxy",
"args": [
{
"name": "proxy",
"type": "AccountId"
}
],
"documentation": [
" Specify a proxy. Called by the stash.",
"",
" # <weight>",
" - One extra DB entry.",
" # </weight>"
]
},
"0x090d": {
"name": "resign_proxy",
"args": [],
"documentation": [
" Clear the proxy. Called by the proxy.",
"",
" # <weight>",
" - One DB clear.",
" # </weight>"
]
},
"0x090e": {
"name": "remove_proxy",
"args": [
{
"name": "proxy",
"type": "AccountId"
}
],
"documentation": [
" Clear the proxy. Called by the stash.",
"",
" # <weight>",
" - One DB clear.",
" # </weight>"
]
},
"0x090f": {
"name": "delegate",
"args": [
{
"name": "to",
"type": "AccountId"
},
{
"name": "conviction",
"type": "Conviction"
}
],
"documentation": [
" Delegate vote.",
"",
" # <weight>",
" - One extra DB entry.",
" # </weight>"
]
},
"0x0910": {
"name": "undelegate",
"args": [],
"documentation": [
" Undelegate vote.",
"",
" # <weight>",
" - O(1).",
" # </weight>"
]
},
"0x0911": {
"name": "clear_public_proposals",
"args": [],
"documentation": [
" Veto and blacklist the proposal hash. Must be from Root origin."
]
},
"0x0912": {
"name": "note_preimage",
"args": [
{
"name": "encoded_proposal",
"type": "Bytes"
}
],
"documentation": [
" 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."
]
},
"0x0913": {
"name": "note_imminent_preimage",
"args": [
{
"name": "encoded_proposal",
"type": "Bytes"
}
],
"documentation": [
" Register the preimage for an upcoming proposal. This requires the proposal to be",
" in the dispatch queue. No deposit is needed."
]
},
"0x0914": {
"name": "reap_preimage",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
}
],
"documentation": [
" Remove an expired proposal preimage and collect the deposit.",
"",
" 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."
]
},
"0x0a00": {
"name": "set_members",
"args": [
{
"name": "new_members",
"type": "Vec<AccountId>"
}
],
"documentation": [
" Set the collective's membership manually to `new_members`. Be nice to the chain and",
" provide it pre-sorted.",
"",
" Requires root origin."
]
},
"0x0a01": {
"name": "execute",
"args": [
{
"name": "proposal",
"type": "Proposal"
}
],
"documentation": [
" Dispatch a proposal from a member using the `Member` origin.",
"",
" Origin must be a member of the collective."
]
},
"0x0a02": {
"name": "propose",
"args": [
{
"name": "threshold",
"type": "Compact<MemberCount>"
},
{
"name": "proposal",
"type": "Proposal"
}
],
"documentation": [
" # <weight>",
" - Bounded storage reads and writes.",
" - Argument `threshold` has bearing on weight.",
" # </weight>"
]
},
"0x0a03": {
"name": "vote",
"args": [
{
"name": "proposal",
"type": "Hash"
},
{
"name": "index",
"type": "Compact<ProposalIndex>"
},
{
"name": "approve",
"type": "bool"
}
],
"documentation": [
" # <weight>",
" - Bounded storage read and writes.",
" - Will be slightly heavier if the proposal is approved / disapproved after the vote.",
" # </weight>"
]
},
"0x0b00": {
"name": "set_members",
"args": [
{
"name": "new_members",
"type": "Vec<AccountId>"
}
],
"documentation": [
" Set the collective's membership manually to `new_members`. Be nice to the chain and",
" provide it pre-sorted.",
"",
" Requires root origin."
]
},
"0x0b01": {
"name": "execute",
"args": [
{
"name": "proposal",
"type": "Proposal"
}
],
"documentation": [
" Dispatch a proposal from a member using the `Member` origin.",
"",
" Origin must be a member of the collective."
]
},
"0x0b02": {
"name": "propose",
"args": [
{
"name": "threshold",
"type": "Compact<MemberCount>"
},
{
"name": "proposal",
"type": "Proposal"
}
],
"documentation": [
" # <weight>",
" - Bounded storage reads and writes.",
" - Argument `threshold` has bearing on weight.",
" # </weight>"
]
},
"0x0b03": {
"name": "vote",
"args": [
{
"name": "proposal",
"type": "Hash"
},
{
"name": "index",
"type": "Compact<ProposalIndex>"
},
{
"name": "approve",
"type": "bool"
}
],
"documentation": [
" # <weight>",
" - Bounded storage read and writes.",
" - Will be slightly heavier if the proposal is approved / disapproved after the vote.",
" # </weight>"
]
},
"0x0c00": {
"name": "vote",
"args": [
{
"name": "votes",
"type": "Vec<AccountId>"
},
{
"name": "value",
"type": "Compact<BalanceOf>"
}
],
"documentation": [
" 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>"
]
},
"0x0c01": {
"name": "remove_voter",
"args": [],
"documentation": [
" Remove `origin` as a voter. This removes the lock and returns the bond.",
"",
" # <weight>",
" #### State",
" Reads: O(1)",
" Writes: O(1)",
" # </weight>"
]
},
"0x0c02": {
"name": "report_defunct_voter",
"args": [
{
"name": "target",
"type": "Address"
}
],
"documentation": [
" 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>"
]
},
"0x0c03": {
"name": "submit_candidacy",
"args": [],
"documentation": [
" 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>"
]
},
"0x0c04": {
"name": "renounce_candidacy",
"args": [],
"documentation": [
" 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."
]
},
"0x0c05": {
"name": "remove_member",
"args": [
{
"name": "who",
"type": "Address"
}
],
"documentation": [
" 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>"
]
},
"0x0d00": {
"name": "add_member",
"args": [
{
"name": "who",
"type": "AccountId"
}
],
"documentation": [
" Add a member `who` to the set.",
"",
" May only be called from `AddOrigin` or root."
]
},
"0x0d01": {
"name": "remove_member",
"args": [
{
"name": "who",
"type": "AccountId"
}
],
"documentation": [
" Remove a member `who` from the set.",
"",
" May only be called from `RemoveOrigin` or root."
]
},
"0x0d02": {
"name": "swap_member",
"args": [
{
"name": "remove",
"type": "AccountId"
},
{
"name": "add",
"type": "AccountId"
}
],
"documentation": [
" Swap out one member `remove` for another `add`.",
"",
" May only be called from `SwapOrigin` or root."
]
},
"0x0d03": {
"name": "reset_members",
"args": [
{
"name": "members",
"type": "Vec<AccountId>"
}
],
"documentation": [
" 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."
]
},
"0x0d04": {
"name": "change_key",
"args": [
{
"name": "new",
"type": "AccountId"
}
],
"documentation": [
" Swap out the sending member for some other key `new`.",
"",
" May only be called from `Signed` origin of a current member."
]
},
"0x0e00": {
"name": "final_hint",
"args": [
{
"name": "hint",
"type": "Compact<BlockNumber>"
}
],
"documentation": [
" Hint that the author of this block thinks the best finalized",
" block is the given number."
]
},
"0x0f00": {
"name": "report_misbehavior",
"args": [
{
"name": "_report",
"type": "Bytes"
}
],
"documentation": [
" Report some misbehavior."
]
},
"0x1000": {
"name": "propose_spend",
"args": [
{
"name": "value",
"type": "Compact<BalanceOf>"
},
{
"name": "beneficiary",
"type": "Address"
}
],
"documentation": [
" 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>"
]
},
"0x1001": {
"name": "reject_proposal",
"args": [
{
"name": "proposal_id",
"type": "Compact<ProposalIndex>"
}
],
"documentation": [
" Reject a proposed spend. The original deposit will be slashed.",
"",
" # <weight>",
" - O(1).",
" - Limited storage reads.",
" - One DB clear.",
" # </weight>"
]
},
"0x1002": {
"name": "approve_proposal",
"args": [
{
"name": "proposal_id",
"type": "Compact<ProposalIndex>"
}
],
"documentation": [
" 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>"
]
},
"0x1003": {
"name": "report_awesome",
"args": [
{
"name": "reason",
"type": "Bytes"
},
{
"name": "who",
"type": "AccountId"
}
],
"documentation": [
" Report something `reason` that deserves a tip and claim any eventual the finder's fee.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Payment: `TipReportDepositBase` will be reserved from the origin account, as well as",
" `TipReportDepositPerByte` for each byte in `reason`.",
"",
" - `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.",
"",
" Emits `NewTip` if successful.",
"",
" # <weight>",
" - `O(R)` where `R` length of `reason`.",
" - One balance operation.",
" - One storage mutation (codec `O(R)`).",
" - One event.",
" # </weight>"
]
},
"0x1004": {
"name": "retract_tip",
"args": [
{
"name": "hash",
"type": "Hash"
}
],
"documentation": [
" Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.",
"",
" If successful, the original deposit will be unreserved.",
"",
" The dispatch origin for this call must be _Signed_ and the tip identified by `hash`",
" must have been reported by the signing account through `report_awesome` (and not",
" through `tip_new`).",
"",
" - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
" as the hash of the tuple of the original tip `reason` and the beneficiary account ID.",
"",
" Emits `TipRetracted` if successful.",
"",
" # <weight>",
" - `O(T)`",
" - One balance operation.",
" - Two storage removals (one read, codec `O(T)`).",
" - One event.",
" # </weight>"
]
},
"0x1005": {
"name": "tip_new",
"args": [
{
"name": "reason",
"type": "Bytes"
},
{
"name": "who",
"type": "AccountId"
},
{
"name": "tip_value",
"type": "BalanceOf"
}
],
"documentation": [
" Give a tip for something new; no finder's fee will be taken.",
"",
" The dispatch origin for this call must be _Signed_ and the signing account must be a",
" member of the `Tippers` set.",
"",
" - `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.",
" - `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`.",
"",
" Emits `NewTip` if successful.",
"",
" # <weight>",
" - `O(R + T)` where `R` length of `reason`, `T` is the number of tippers. `T` is",
" naturally capped as a membership set, `R` is limited through transaction-size.",
" - Two storage insertions (codecs `O(R)`, `O(T)`), one read `O(1)`.",
" - One event.",
" # </weight>"
]
},
"0x1006": {
"name": "tip",
"args": [
{
"name": "hash",
"type": "Hash"
},
{
"name": "tip_value",
"type": "BalanceOf"
}
],
"documentation": [
" Declare a tip value for an already-open tip.",
"",
" The dispatch origin for this call must be _Signed_ and the signing account must be a",
" member of the `Tippers` set.",
"",
" - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
" as the hash of the tuple of the hash of the original tip `reason` and the beneficiary",
" account ID.",
" - `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`.",
"",
" Emits `TipClosing` if the threshold of tippers has been reached and the countdown period",
" has started.",
"",
" # <weight>",
" - `O(T)`",
" - One storage mutation (codec `O(T)`), one storage read `O(1)`.",
" - Up to one event.",
" # </weight>"
]
},
"0x1007": {
"name": "close_tip",
"args": [
{
"name": "hash",
"type": "Hash"
}
],
"documentation": [
" 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.",
"",
" - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
" as the hash of the tuple of the original tip `reason` and the beneficiary account ID.",
"",
" # <weight>",
" - `O(T)`",
" - One storage retrieval (codec `O(T)`) and two removals.",
" - Up to three balance operations.",
" # </weight>"
]
},
"0x1100": {
"name": "update_schedule",
"args": [
{
"name": "schedule",
"type": "Schedule"
}
],
"documentation": [
" Updates the schedule for metering contracts.",
"",
" The schedule must have a greater version than the stored schedule."
]
},
"0x1101": {
"name": "put_code",
"args": [
{
"name": "gas_limit",
"type": "Compact<Gas>"
},
{
"name": "code",
"type": "Bytes"
}
],
"documentation": [
" Stores the given binary Wasm code into the chain's storage and returns its `codehash`.",
" You can instantiate contracts only with stored code."
]
},
"0x1102": {
"name": "call",
"args": [
{
"name": "dest",
"type": "Address"
},
{
"name": "value",
"type": "Compact<BalanceOf>"
},
{
"name": "gas_limit",
"type": "Compact<Gas>"
},
{
"name": "data",
"type": "Bytes"
}
],
"documentation": [
" 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."
]
},
"0x1103": {
"name": "instantiate",
"args": [
{
"name": "endowment",
"type": "Compact<BalanceOf>"
},
{
"name": "gas_limit",
"type": "Compact<Gas>"
},
{
"name": "code_hash",
"type": "CodeHash"
},
{
"name": "data",
"type": "Bytes"
}
],
"documentation": [
" 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."
]
},
"0x1104": {
"name": "claim_surcharge",
"args": [
{
"name": "dest",
"type": "AccountId"
},
{
"name": "aux_sender",
"type": "Option<AccountId>"
}
],
"documentation": [
" 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."
]
},
"0x1200": {
"name": "sudo",
"args": [
{
"name": "proposal",
"type": "Proposal"
}
],
"documentation": [
" 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>"
]
},
"0x1201": {
"name": "set_key",
"args": [
{
"name": "new",
"type": "Address"
}
],
"documentation": [
" 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>"
]
},
"0x1202": {
"name": "sudo_as",
"args": [
{
"name": "who",
"type": "Address"
},
{
"name": "proposal",
"type": "Proposal"
}
],
"documentation": [
" 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>"
]
},
"0x1300": {
"name": "heartbeat",
"args": [
{
"name": "heartbeat",
"type": "Heartbeat"
},
{
"name": "_signature",
"type": "Signature"
}
],
"documentation": []
},
"0x1700": {
"name": "add_registrar",
"args": [
{
"name": "account",
"type": "AccountId"
}
],
"documentation": [
" Add a registrar to the system.",
"",
" The dispatch origin for this call must be `RegistrarOrigin` or `Root`.",
"",
" - `account`: the account of the registrar.",
"",
" Emits `RegistrarAdded` if successful.",
"",
" # <weight>",
" - `O(R)` where `R` registrar-count (governance-bounded).",
" - One storage mutation (codec `O(R)`).",
" - One event.",
" # </weight>"
]
},
"0x1701": {
"name": "set_identity",
"args": [
{
"name": "info",
"type": "IdentityInfo"
}
],
"documentation": [
" Set an account's identity information and reserve the appropriate deposit.",
"",
" If the account already has identity information, the deposit is taken as part payment",
" for the new deposit.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a registered",
" identity.",
"",
" - `info`: The identity information.",
"",
" Emits `IdentitySet` if successful.",
"",
" # <weight>",
" - `O(X + R)` where `X` additional-field-count (deposit-bounded).",
" - At most two balance operations.",
" - One storage mutation (codec `O(X + R)`).",
" - One event.",
" # </weight>"
]
},
"0x1702": {
"name": "set_subs",
"args": [
{
"name": "subs",
"type": "Vec<(AccountId,Data)>"
}
],
"documentation": [
" Set the sub-accounts of the sender.",
"",
" Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned",
" and an amount `SubAccountDeposit` will be reserved for each item in `subs`.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a registered",
" identity.",
"",
" - `subs`: The identity's sub-accounts.",
"",
" # <weight>",
" - `O(S)` where `S` subs-count (hard- and deposit-bounded).",
" - At most two balance operations.",
" - At most O(2 * S + 1) storage mutations; codec complexity `O(1 * S + S * 1)`);",
" one storage-exists.",
" # </weight>"
]
},
"0x1703": {
"name": "clear_identity",
"args": [],
"documentation": [
" Clear an account's identity info and all sub-account and return all deposits.",
"",
" Payment: All reserved balances on the account are returned.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a registered",
" identity.",
"",
" Emits `IdentityCleared` if successful.",
"",
" # <weight>",
" - `O(R + S + X)`.",
" - One balance-reserve operation.",
" - `S + 2` storage deletions.",
" - One event.",
" # </weight>"
]
},
"0x1704": {
"name": "request_judgement",
"args": [
{
"name": "reg_index",
"type": "Compact<RegistrarIndex>"
},
{
"name": "max_fee",
"type": "Compact<BalanceOf>"
}
],
"documentation": [
" Request a judgement from a registrar.",
"",
" Payment: At most `max_fee` will be reserved for payment to the registrar if judgement",
" given.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a",
" registered identity.",
"",
" - `reg_index`: The index of the registrar whose judgement is requested.",
" - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:",
"",
" ```nocompile",
" Self::registrars(reg_index).uwnrap().fee",
" ```",
"",
" Emits `JudgementRequested` if successful.",
"",
" # <weight>",
" - `O(R + X)`.",
" - One balance-reserve operation.",
" - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.",
" - One event.",
" # </weight>"
]
},
"0x1705": {
"name": "cancel_request",
"args": [
{
"name": "reg_index",
"type": "RegistrarIndex"
}
],
"documentation": [
" Cancel a previous request.",
"",
" Payment: A previously reserved deposit is returned on success.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a",
" registered identity.",
"",
" - `reg_index`: The index of the registrar whose judgement is no longer requested.",
"",
" Emits `JudgementUnrequested` if successful.",
"",
" # <weight>",
" - `O(R + X)`.",
" - One balance-reserve operation.",
" - One storage mutation `O(R + X)`.",
" - One event.",
" # </weight>"
]
},
"0x1706": {
"name": "set_fee",
"args": [
{
"name": "index",
"type": "Compact<RegistrarIndex>"
},
{
"name": "fee",
"type": "Compact<BalanceOf>"
}
],
"documentation": [
" Set the fee required for a judgement to be requested from a registrar.",
"",
" 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.",
" - `fee`: the new fee.",
"",
" # <weight>",
" - `O(R)`.",
" - One storage mutation `O(R)`.",
" # </weight>"
]
},
"0x1707": {
"name": "set_account_id",
"args": [
{
"name": "index",
"type": "Compact<RegistrarIndex>"
},
{
"name": "new",
"type": "AccountId"
}
],
"documentation": [
" Change the account associated with a registrar.",
"",
" 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.",
" - `new`: the new account ID.",
"",
" # <weight>",
" - `O(R)`.",
" - One storage mutation `O(R)`.",
" # </weight>"
]
},
"0x1708": {
"name": "set_fields",
"args": [
{
"name": "index",
"type": "Compact<RegistrarIndex>"
},
{
"name": "fields",
"type": "IdentityFields"
}
],
"documentation": [
" Set the field information for a registrar.",
"",
" 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)`.",
" # </weight>"
]
},
"0x1709": {
"name": "provide_judgement",
"args": [
{
"name": "reg_index",
"type": "Compact<RegistrarIndex>"
},
{
"name": "target",
"type": "Address"
},
{
"name": "judgement",
"type": "Judgement"
}
],
"documentation": [
" Provide a judgement for an account's identity.",
"",
" 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.",
" - `target`: the account whose identity the judgement is upon. This must be an account",
" with a registered identity.",
" - `judgement`: the judgement of the registrar of index `reg_index` about `target`.",
"",
" Emits `JudgementGiven` if successful.",
"",
" # <weight>",
" - `O(R + X)`.",
" - One balance-transfer operation.",
" - Up to one account-lookup operation.",
" - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.",
" - One event.",
" # </weight>"
]
},
"0x170a": {
"name": "kill_identity",
"args": [
{
"name": "target",
"type": "Address"
}
],
"documentation": [
" Remove an account's identity and sub-account information and slash the deposits.",
"",
" Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by",
" `Slash`. Verification request deposits are not returned; they should be cancelled",
" manually using `cancel_request`.",
"",
" The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.",
"",
" - `target`: the account whose identity the judgement is upon. This must be an account",
" with a registered identity.",
"",
" Emits `IdentityKilled` if successful.",
"",
" # <weight>",
" - `O(R + S + X)`.",
" - One balance-reserve operation.",
" - `S + 2` storage mutations.",
" - One event.",
" # </weight>"
]
},
"0x1800": {
"name": "bid",
"args": [
{
"name": "value",
"type": "BalanceOf"
}
],
"documentation": [
" A user outside of the society can make a bid for entry.",
"",
" Payment: `CandidateDeposit` will be reserved for making a bid. It is returned",
" when the bid becomes a member, or if the bid calls `unbid`.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `value`: A one time payment the bid would like to receive when joining the society.",
"",
" # <weight>",
" Key: B (len of bids), C (len of candidates), M (len of members), X (balance reserve)",
" - Storage Reads:",
" \t- One storage read to check for suspended candidate. O(1)",
" \t- One storage read to check for suspended member. O(1)",
" \t- One storage read to retrieve all current bids. O(B)",
" \t- One storage read to retrieve all current candidates. O(C)",
" \t- One storage read to retrieve all members. O(M)",
" - Storage Writes:",
" \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)",
" \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)",
" - Notable Computation:",
" \t- O(B + C + log M) search to check user is not already a part of society.",
" \t- O(log B) search to insert the new bid sorted.",
" - External Module Operations:",
" \t- One balance reserve operation. O(X)",
" \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.",
" - Events:",
" \t- One event for new bid.",
" \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.",
"",
" Total Complexity: O(M + B + C + logM + logB + X)",
" # </weight>"
]
},
"0x1801": {
"name": "unbid",
"args": [
{
"name": "pos",
"type": "u32"
}
],
"documentation": [
" A bidder can remove their bid for entry into society.",
" By doing so, they will have their candidate deposit returned or",
" they will unvouch their voucher.",
"",
" Payment: The bid deposit is unreserved if the user made a bid.",
"",
" The dispatch origin for this call must be _Signed_ and a bidder.",
"",
" Parameters:",
" - `pos`: Position in the `Bids` vector of the bid who wants to unbid.",
"",
" # <weight>",
" Key: B (len of bids), X (balance unreserve)",
" - One storage read and write to retrieve and update the bids. O(B)",
" - Either one unreserve balance action O(X) or one vouching storage removal. O(1)",
" - One event.",
"",
" Total Complexity: O(B + X)",
" # </weight>"
]
},
"0x1802": {
"name": "vouch",
"args": [
{
"name": "who",
"type": "AccountId"
},
{
"name": "value",
"type": "BalanceOf"
},
{
"name": "tip",
"type": "BalanceOf"
}
],
"documentation": [
" As a member, vouch for someone to join society by placing a bid on their behalf.",
"",
" There is no deposit required to vouch for a new bid, but a member can only vouch for",
" one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by",
" the suspension judgement origin, the member will be banned from vouching again.",
"",
" As a vouching member, you can claim a tip if the candidate is accepted. This tip will",
" be paid as a portion of the reward the member will receive for joining the society.",
"",
" The dispatch origin for this call must be _Signed_ and a member.",
"",
" Parameters:",
" - `who`: The user who you would like to vouch for.",
" - `value`: The total reward to be paid between you and the candidate if they become",
" a member in the society.",
" - `tip`: Your cut of the total `value` payout when the candidate is inducted into",
" the society. Tips larger than `value` will be saturated upon payout.",
"",
" # <weight>",
" Key: B (len of bids), C (len of candidates), M (len of members)",
" - Storage Reads:",
" \t- One storage read to retrieve all members. O(M)",
" \t- One storage read to check member is not already vouching. O(1)",
" \t- One storage read to check for suspended candidate. O(1)",
" \t- One storage read to check for suspended member. O(1)",
" \t- One storage read to retrieve all current bids. O(B)",
" \t- One storage read to retrieve all current candidates. O(C)",
" - Storage Writes:",
" \t- One storage write to insert vouching status to the member. O(1)",
" \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)",
" \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)",
" - Notable Computation:",
" \t- O(log M) search to check sender is a member.",
" \t- O(B + C + log M) search to check user is not already a part of society.",
" \t- O(log B) search to insert the new bid sorted.",
" - External Module Operations:",
" \t- One balance reserve operation. O(X)",
" \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.",
" - Events:",
" \t- One event for vouch.",
" \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.",
"",
" Total Complexity: O(M + B + C + logM + logB + X)",
" # </weight>"
]
},
"0x1803": {
"name": "unvouch",
"args": [
{
"name": "pos",
"type": "u32"
}
],
"documentation": [
" As a vouching member, unvouch a bid. This only works while vouched user is",
" only a bidder (and not a candidate).",
"",
" The dispatch origin for this call must be _Signed_ and a vouching member.",
"",
" Parameters:",
" - `pos`: Position in the `Bids` vector of the bid who should be unvouched.",
"",
" # <weight>",
" Key: B (len of bids)",
" - One storage read O(1) to check the signer is a vouching member.",
" - One storage mutate to retrieve and update the bids. O(B)",
" - One vouching storage removal. O(1)",
" - One event.",
"",
" Total Complexity: O(B)",
" # </weight>"
]
},
"0x1804": {
"name": "vote",
"args": [
{
"name": "candidate",
"type": "Address"
},
{
"name": "approve",
"type": "bool"
}
],
"documentation": [
" As a member, vote on a candidate.",
"",
" The dispatch origin for this call must be _Signed_ and a member.",
"",
" Parameters:",
" - `candidate`: The candidate that the member would like to bid on.",
" - `approve`: A boolean which says if the candidate should be",
" approved (`true`) or rejected (`false`).",
"",
" # <weight>",
" Key: C (len of candidates), M (len of members)",
" - One storage read O(M) and O(log M) search to check user is a member.",
" - One account lookup.",
" - One storage read O(C) and O(C) search to check that user is a candidate.",
" - One storage write to add vote to votes. O(1)",
" - One event.",
"",
" Total Complexity: O(M + logM + C)",
" # </weight>"
]
},
"0x1805": {
"name": "defender_vote",
"args": [
{
"name": "approve",
"type": "bool"
}
],
"documentation": [
" As a member, vote on the defender.",
"",
" The dispatch origin for this call must be _Signed_ and a member.",
"",
" Parameters:",
" - `approve`: A boolean which says if the candidate should be",
" approved (`true`) or rejected (`false`).",
"",
" # <weight>",
" - Key: M (len of members)",
" - One storage read O(M) and O(log M) search to check user is a member.",
" - One storage write to add vote to votes. O(1)",
" - One event.",
"",
" Total Complexity: O(M + logM)",
" # </weight>"
]
},
"0x1806": {
"name": "payout",
"args": [],
"documentation": [
" Transfer the first matured payout for the sender and remove it from the records.",
"",
" NOTE: This extrinsic needs to be called multiple times to claim multiple matured payouts.",
"",
" Payment: The member will receive a payment equal to their first matured",
" payout to their free balance.",
"",
" The dispatch origin for this call must be _Signed_ and a member with",
" payouts remaining.",
"",
" # <weight>",
" Key: M (len of members), P (number of payouts for a particular member)",
" - One storage read O(M) and O(log M) search to check signer is a member.",
" - One storage read O(P) to get all payouts for a member.",
" - One storage read O(1) to get the current block number.",
" - One currency transfer call. O(X)",
" - One storage write or removal to update the member's payouts. O(P)",
"",
" Total Complexity: O(M + logM + P + X)",
" # </weight>"
]
},
"0x1807": {
"name": "found",
"args": [
{
"name": "founder",
"type": "AccountId"
},
{
"name": "max_members",
"type": "u32"
},
{
"name": "rules",
"type": "Bytes"
}
],
"documentation": [
" Found the society.",
"",
" This is done as a discrete action in order to allow for the",
" module to be included into a running chain and can only be done once.",
"",
" The dispatch origin for this call must be from the _FounderSetOrigin_.",
"",
" Parameters:",
" - `founder` - The first member and head of the newly founded society.",
" - `max_members` - The initial max number of members for the society.",
" - `rules` - The rules of this society concerning membership.",
"",
" # <weight>",
" - Two storage mutates to set `Head` and `Founder`. O(1)",
" - One storage write to add the first member to society. O(1)",
" - One event.",
"",
" Total Complexity: O(1)",
" # </weight>"
]
},
"0x1808": {
"name": "unfound",
"args": [],
"documentation": [
" Anull the founding of the society.",
"",
" The dispatch origin for this call must be Signed, and the signing account must be both",
" the `Founder` and the `Head`. This implies that it may only be done when there is one",
" member.",
"",
" # <weight>",
" - Two storage reads O(1).",
" - Four storage removals O(1).",
" - One event.",
"",
" Total Complexity: O(1)",
" # </weight>"
]
},
"0x1809": {
"name": "judge_suspended_member",
"args": [
{
"name": "who",
"type": "AccountId"
},
{
"name": "forgive",
"type": "bool"
}
],
"documentation": [
" Allow suspension judgement origin to make judgement on a suspended member.",
"",
" If a suspended member is forgiven, we simply add them back as a member, not affecting",
" any of the existing storage items for that member.",
"",
" If a suspended member is rejected, remove all associated storage items, including",
" their payouts, and remove any vouched bids they currently have.",
"",
" The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.",
"",
" Parameters:",
" - `who` - The suspended member to be judged.",
" - `forgive` - A boolean representing whether the suspension judgement origin",
" forgives (`true`) or rejects (`false`) a suspended member.",
"",
" # <weight>",
" Key: B (len of bids), M (len of members)",
" - One storage read to check `who` is a suspended member. O(1)",
" - Up to one storage write O(M) with O(log M) binary search to add a member back to society.",
" - Up to 3 storage removals O(1) to clean up a removed member.",
" - Up to one storage write O(B) with O(B) search to remove vouched bid from bids.",
" - Up to one additional event if unvouch takes place.",
" - One storage removal. O(1)",
" - One event for the judgement.",
"",
" Total Complexity: O(M + logM + B)",
" # </weight>"
]
},
"0x180a": {
"name": "judge_suspended_candidate",
"args": [
{
"name": "who",
"type": "AccountId"
},
{
"name": "judgement",
"type": "Judgement"
}
],
"documentation": [
" Allow suspended judgement origin to make judgement on a suspended candidate.",
"",
" If the judgement is `Approve`, we add them to society as a member with the appropriate",
" payment for joining society.",
"",
" If the judgement is `Reject`, we either slash the deposit of the bid, giving it back",
" to the society treasury, or we ban the voucher from vouching again.",
"",
" If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go",
" through the induction process again.",
"",
" The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.",
"",
" Parameters:",
" - `who` - The suspended candidate to be judged.",
" - `judgement` - `Approve`, `Reject`, or `Rebid`.",
"",
" # <weight>",
" Key: B (len of bids), M (len of members), X (balance action)",
" - One storage read to check `who` is a suspended candidate.",
" - One storage removal of the suspended candidate.",
" - Approve Logic",
" \t- One storage read to get the available pot to pay users with. O(1)",
" \t- One storage write to update the available pot. O(1)",
" \t- One storage read to get the current block number. O(1)",
" \t- One storage read to get all members. O(M)",
" \t- Up to one unreserve currency action.",
" \t- Up to two new storage writes to payouts.",
" \t- Up to one storage write with O(log M) binary search to add a member to society.",
" - Reject Logic",
" \t- Up to one repatriate reserved currency action. O(X)",
" \t- Up to one storage write to ban the vouching member from vouching again.",
" - Rebid Logic",
" \t- Storage mutate with O(log B) binary search to place the user back into bids.",
" - Up to one additional event if unvouch takes place.",
" - One storage removal.",
" - One event for the judgement.",
"",
" Total Complexity: O(M + logM + B + X)",
" # </weight>"
]
},
"0x180b": {
"name": "set_max_members",
"args": [
{
"name": "max",
"type": "u32"
}
],
"documentation": [
" Allows root origin to change the maximum number of members in society.",
" Max membership count must be greater than 1.",
"",
" The dispatch origin for this call must be from _ROOT_.",
"",
" Parameters:",
" - `max` - The maximum number of members for the society.",
"",
" # <weight>",
" - One storage write to update the max. O(1)",
" - One event.",
"",
" Total Complexity: O(1)",
" # </weight>"
]
},
"0x1900": {
"name": "as_recovered",
"args": [
{
"name": "account",
"type": "AccountId"
},
{
"name": "call",
"type": "Call"
}
],
"documentation": [
" Send a call through a recovered account.",
"",
" The dispatch origin for this call must be _Signed_ and registered to",
" be able to make calls on behalf of the recovered account.",
"",
" Parameters:",
" - `account`: The recovered account you want to make a call on-behalf-of.",
" - `call`: The call you want to make with the recovered account.",
"",
" # <weight>",
" - The weight of the `call`.",
" - One storage lookup to check account is recovered by `who`. O(1)",
" # </weight>"
]
},
"0x1901": {
"name": "set_recovered",
"args": [
{
"name": "lost",
"type": "AccountId"
},
{
"name": "rescuer",
"type": "AccountId"
}
],
"documentation": [
" Allow ROOT to bypass the recovery process and set an a rescuer account",
" for a lost account directly.",
"",
" The dispatch origin for this call must be _ROOT_.",
"",
" Parameters:",
" - `lost`: The \"lost account\" to be recovered.",
" - `rescuer`: The \"rescuer account\" which can call as the lost account.",
"",
" # <weight>",
" - One storage write O(1)",
" - One event",
" # </weight>"
]
},
"0x1902": {
"name": "create_recovery",
"args": [
{
"name": "friends",
"type": "Vec<AccountId>"
},
{
"name": "threshold",
"type": "u16"
},
{
"name": "delay_period",
"type": "BlockNumber"
}
],
"documentation": [
" Create a recovery configuration for your account. This makes your account recoverable.",
"",
" Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance",
" will be reserved for storing the recovery configuration. This deposit is returned",
" in full when the user calls `remove_recovery`.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `friends`: A list of friends you trust to vouch for recovery attempts.",
" Should be ordered and contain no duplicate values.",
" - `threshold`: The number of friends that must vouch for a recovery attempt",
" before the account can be recovered. Should be less than or equal to",
" the length of the list of friends.",
" - `delay_period`: The number of blocks after a recovery attempt is initialized",
" that needs to pass before the account can be recovered.",
"",
" # <weight>",
" - Key: F (len of friends)",
" - One storage read to check that account is not already recoverable. O(1).",
" - A check that the friends list is sorted and unique. O(F)",
" - One currency reserve operation. O(X)",
" - One storage write. O(1). Codec O(F).",
" - One event.",
"",
" Total Complexity: O(F + X)",
" # </weight>"
]
},
"0x1903": {
"name": "initiate_recovery",
"args": [
{
"name": "account",
"type": "AccountId"
}
],
"documentation": [
" Initiate the process for recovering a recoverable account.",
"",
" Payment: `RecoveryDeposit` balance will be reserved for initiating the",
" recovery process. This deposit will always be repatriated to the account",
" trying to be recovered. See `close_recovery`.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `account`: The lost account that you want to recover. This account",
" needs to be recoverable (i.e. have a recovery configuration).",
"",
" # <weight>",
" - One storage read to check that account is recoverable. O(F)",
" - One storage read to check that this recovery process hasn't already started. O(1)",
" - One currency reserve operation. O(X)",
" - One storage read to get the current block number. O(1)",
" - One storage write. O(1).",
" - One event.",
"",
" Total Complexity: O(F + X)",
" # </weight>"
]
},
"0x1904": {
"name": "vouch_recovery",
"args": [
{
"name": "lost",
"type": "AccountId"
},
{
"name": "rescuer",
"type": "AccountId"
}
],
"documentation": [
" Allow a \"friend\" of a recoverable account to vouch for an active recovery",
" process for that account.",
"",
" The dispatch origin for this call must be _Signed_ and must be a \"friend\"",
" for the recoverable account.",
"",
" Parameters:",
" - `lost`: The lost account that you want to recover.",
" - `rescuer`: The account trying to rescue the lost account that you",
" want to vouch for.",
"",
" The combination of these two parameters must point to an active recovery",
" process.",
"",
" # <weight>",
" Key: F (len of friends in config), V (len of vouching friends)",
" - One storage read to get the recovery configuration. O(1), Codec O(F)",
" - One storage read to get the active recovery process. O(1), Codec O(V)",
" - One binary search to confirm caller is a friend. O(logF)",
" - One binary search to confirm caller has not already vouched. O(logV)",
" - One storage write. O(1), Codec O(V).",
" - One event.",
"",
" Total Complexity: O(F + logF + V + logV)",
" # </weight>"
]
},
"0x1905": {
"name": "claim_recovery",
"args": [
{
"name": "account",
"type": "AccountId"
}
],
"documentation": [
" Allow a successful rescuer to claim their recovered account.",
"",
" The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"",
" who has successfully completed the account recovery process: collected",
" `threshold` or more vouches, waited `delay_period` blocks since initiation.",
"",
" Parameters:",
" - `account`: The lost account that you want to claim has been successfully",
" recovered by you.",
"",
" # <weight>",
" Key: F (len of friends in config), V (len of vouching friends)",
" - One storage read to get the recovery configuration. O(1), Codec O(F)",
" - One storage read to get the active recovery process. O(1), Codec O(V)",
" - One storage read to get the current block number. O(1)",
" - One storage write. O(1), Codec O(V).",
" - One event.",
"",
" Total Complexity: O(F + V)",
" # </weight>"
]
},
"0x1906": {
"name": "close_recovery",
"args": [
{
"name": "rescuer",
"type": "AccountId"
}
],
"documentation": [
" As the controller of a recoverable account, close an active recovery",
" process for your account.",
"",
" Payment: By calling this function, the recoverable account will receive",
" the recovery deposit `RecoveryDeposit` placed by the rescuer.",
"",
" The dispatch origin for this call must be _Signed_ and must be a",
" recoverable account with an active recovery process for it.",
"",
" Parameters:",
" - `rescuer`: The account trying to rescue this recoverable account.",
"",
" # <weight>",
" Key: V (len of vouching friends)",
" - One storage read/remove to get the active recovery process. O(1), Codec O(V)",
" - One balance call to repatriate reserved. O(X)",
" - One event.",
"",
" Total Complexity: O(V + X)",
" # </weight>"
]
},
"0x1907": {
"name": "remove_recovery",
"args": [],
"documentation": [
" Remove the recovery process for your account.",
"",
" NOTE: The user must make sure to call `close_recovery` on all active",
" recovery attempts before calling this function else it will fail.",
"",
" Payment: By calling this function the recoverable account will unreserve",
" their recovery configuration deposit.",
" (`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)",
"",
" The dispatch origin for this call must be _Signed_ and must be a",
" recoverable account (i.e. has a recovery configuration).",
"",
" # <weight>",
" Key: F (len of friends)",
" - One storage read to get the prefix iterator for active recoveries. O(1)",
" - One storage read/remove to get the recovery configuration. O(1), Codec O(F)",
" - One balance call to unreserved. O(X)",
" - One event.",
"",
" Total Complexity: O(F + X)",
" # </weight>"
]
}
},
"_metadataErrors": {
"0x0000": {
"documentation": [
" The name of specification does not match between the current runtime",
" and the new runtime."
],
"index": 0,
"name": "InvalidSpecName",
"section": "system"
},
"0x0001": {
"documentation": [
" The specification version is not allowed to decrease between the current runtime",
" and the new runtime."
],
"index": 1,
"name": "SpecVersionNotAllowedToDecrease",
"section": "system"
},
"0x0002": {
"documentation": [
" The implementation version is not allowed to decrease between the current runtime",
" and the new runtime."
],
"index": 2,
"name": "ImplVersionNotAllowedToDecrease",
"section": "system"
},
"0x0003": {
"documentation": [
" The specification or the implementation version need to increase between the",
" current runtime and the new runtime."
],
"index": 3,
"name": "SpecOrImplVersionNeedToIncrease",
"section": "system"
},
"0x0004": {
"documentation": [
" Failed to extract the runtime version from the new runtime.",
"",
" Either calling `Core_version` or decoding `RuntimeVersion` failed."
],
"index": 4,
"name": "FailedToExtractRuntimeVersion",
"section": "system"
},
"0x0400": {
"documentation": [
" The uncle parent not in the chain."
],
"index": 0,
"name": "InvalidUncleParent",
"section": "authorship"
},
"0x0401": {
"documentation": [
" Uncles already set in the block."
],
"index": 1,
"name": "UnclesAlreadySet",
"section": "authorship"
},
"0x0402": {
"documentation": [
" Too many uncles."
],
"index": 2,
"name": "TooManyUncles",
"section": "authorship"
},
"0x0403": {
"documentation": [
" The uncle is genesis."
],
"index": 3,
"name": "GenesisUncle",
"section": "authorship"
},
"0x0404": {
"documentation": [
" The uncle is too high in chain."
],
"index": 4,
"name": "TooHighUncle",
"section": "authorship"
},
"0x0405": {
"documentation": [
" The uncle is already included."
],
"index": 5,
"name": "UncleAlreadyIncluded",
"section": "authorship"
},
"0x0406": {
"documentation": [
" The uncle isn't recent enough to be included."
],
"index": 6,
"name": "OldUncle",
"section": "authorship"
},
"0x0600": {
"documentation": [
" Vesting balance too high to send value"
],
"index": 0,
"name": "VestingBalance",
"section": "balances"
},
"0x0601": {
"documentation": [
" Account liquidity restrictions prevent withdrawal"
],
"index": 1,
"name": "LiquidityRestrictions",
"section": "balances"
},
"0x0602": {
"documentation": [
" Got an overflow after adding"
],
"index": 2,
"name": "Overflow",
"section": "balances"
},
"0x0603": {
"documentation": [
" Balance too low to send value"
],
"index": 3,
"name": "InsufficientBalance",
"section": "balances"
},
"0x0604": {
"documentation": [
" Value too low to create account due to existential deposit"
],
"index": 4,
"name": "ExistentialDeposit",
"section": "balances"
},
"0x0605": {
"documentation": [
" Transfer/payment would kill account"
],
"index": 5,
"name": "KeepAlive",
"section": "balances"
},
"0x0606": {
"documentation": [
" A vesting schedule already exists for this account"
],
"index": 6,
"name": "ExistingVestingSchedule",
"section": "balances"
},
"0x0607": {
"documentation": [
" Beneficiary account must pre-exist"
],
"index": 7,
"name": "DeadAccount",
"section": "balances"
},
"0x0800": {
"documentation": [
" Not a controller account."
],
"index": 0,
"name": "NotController",
"section": "staking"
},
"0x0801": {
"documentation": [
" Not a stash account."
],
"index": 1,
"name": "NotStash",
"section": "staking"
},
"0x0802": {
"documentation": [
" Stash is already bonded."
],
"index": 2,
"name": "AlreadyBonded",
"section": "staking"
},
"0x0803": {
"documentation": [
" Controller is already paired."
],
"index": 3,
"name": "AlreadyPaired",
"section": "staking"
},
"0x0804": {
"documentation": [
" Targets cannot be empty."
],
"index": 4,
"name": "EmptyTargets",
"section": "staking"
},
"0x0805": {
"documentation": [
" Duplicate index."
],
"index": 5,
"name": "DuplicateIndex",
"section": "staking"
},
"0x0806": {
"documentation": [
" Slash record index out of bounds."
],
"index": 6,
"name": "InvalidSlashIndex",
"section": "staking"
},
"0x0807": {
"documentation": [
" Can not bond with value less than minimum balance."
],
"index": 7,
"name": "InsufficientValue",
"section": "staking"
},
"0x0808": {
"documentation": [
" Can not schedule more unlock chunks."
],
"index": 8,
"name": "NoMoreChunks",
"section": "staking"
},
"0x0809": {
"documentation": [
" Can not rebond without unlocking chunks."
],
"index": 9,
"name": "NoUnlockChunk",
"section": "staking"
},
"0x0900": {
"documentation": [
" Invalid ownership proof."
],
"index": 0,
"name": "InvalidProof",
"section": "session"
},
"0x0901": {
"documentation": [
" No associated validator ID for account."
],
"index": 1,
"name": "NoAssociatedValidatorId",
"section": "session"
},
"0x0902": {
"documentation": [
" Registered duplicate key."
],
"index": 2,
"name": "DuplicatedKey",
"section": "session"
},
"0x0a00": {
"documentation": [
" Value too low"
],
"index": 0,
"name": "ValueLow",
"section": "democracy"
},
"0x0a01": {
"documentation": [
" Proposal does not exist"
],
"index": 1,
"name": "ProposalMissing",
"section": "democracy"
},
"0x0a02": {
"documentation": [
" Not a proxy"
],
"index": 2,
"name": "NotProxy",
"section": "democracy"
},
"0x0a03": {
"documentation": [
" Unknown index"
],
"index": 3,
"name": "BadIndex",
"section": "democracy"
},
"0x0a04": {
"documentation": [
" Cannot cancel the same proposal twice"
],
"index": 4,
"name": "AlreadyCanceled",
"section": "democracy"
},
"0x0a05": {
"documentation": [
" Proposal already made"
],
"index": 5,
"name": "DuplicateProposal",
"section": "democracy"
},
"0x0a06": {
"documentation": [
" Proposal still blacklisted"
],
"index": 6,
"name": "ProposalBlacklisted",
"section": "democracy"
},
"0x0a07": {
"documentation": [
" Next external proposal not simple majority"
],
"index": 7,
"name": "NotSimpleMajority",
"section": "democracy"
},
"0x0a08": {
"documentation": [
" Invalid hash"
],
"index": 8,
"name": "InvalidHash",
"section": "democracy"
},
"0x0a09": {
"documentation": [
" No external proposal"
],
"index": 9,
"name": "NoProposal",
"section": "democracy"
},
"0x0a0a": {
"documentation": [
" Identity may not veto a proposal twice"
],
"index": 10,
"name": "AlreadyVetoed",
"section": "democracy"
},
"0x0a0b": {
"documentation": [
" Already a proxy"
],
"index": 11,
"name": "AlreadyProxy",
"section": "democracy"
},
"0x0a0c": {
"documentation": [
" Wrong proxy"
],
"index": 12,
"name": "WrongProxy",
"section": "democracy"
},
"0x0a0d": {
"documentation": [
" Not delegated"
],
"index": 13,
"name": "NotDelegated",
"section": "democracy"
},
"0x0a0e": {
"documentation": [
" Preimage already noted"
],
"index": 14,
"name": "DuplicatePreimage",
"section": "democracy"
},
"0x0a0f": {
"documentation": [
" Not imminent"
],
"index": 15,
"name": "NotImminent",
"section": "democracy"
},
"0x0a10": {
"documentation": [
" Too early"
],
"index": 16,
"name": "Early",
"section": "democracy"
},
"0x0a11": {
"documentation": [
" Imminent"
],
"index": 17,
"name": "Imminent",
"section": "democracy"
},
"0x0a12": {
"documentation": [
" Preimage not found"
],
"index": 18,
"name": "PreimageMissing",
"section": "democracy"
},
"0x0a13": {
"documentation": [
" Vote given for invalid referendum"
],
"index": 19,
"name": "ReferendumInvalid",
"section": "democracy"
},
"0x0a14": {
"documentation": [
" Invalid preimage"
],
"index": 20,
"name": "PreimageInvalid",
"section": "democracy"
},
"0x0a15": {
"documentation": [
" No proposals waiting"
],
"index": 21,
"name": "NoneWaiting",
"section": "democracy"
},
"0x0b00": {
"documentation": [
" Account is not a member"
],
"index": 0,
"name": "NotMember",
"section": "council"
},
"0x0b01": {
"documentation": [
" Duplicate proposals not allowed"
],
"index": 1,
"name": "DuplicateProposal",
"section": "council"
},
"0x0b02": {
"documentation": [
" Proposal must exist"
],
"index": 2,
"name": "ProposalMissing",
"section": "council"
},
"0x0b03": {
"documentation": [
" Mismatched index"
],
"index": 3,
"name": "WrongIndex",
"section": "council"
},
"0x0b04": {
"documentation": [
" Duplicate vote ignored"
],
"index": 4,
"name": "DuplicateVote",
"section": "council"
},
"0x0b05": {
"documentation": [
" Members are already initialized!"
],
"index": 5,
"name": "AlreadyInitialized",
"section": "council"
},
"0x0c00": {
"documentation": [
" Account is not a member"
],
"index": 0,
"name": "NotMember",
"section": "technicalCommittee"
},
"0x0c01": {
"documentation": [
" Duplicate proposals not allowed"
],
"index": 1,
"name": "DuplicateProposal",
"section": "technicalCommittee"
},
"0x0c02": {
"documentation": [
" Proposal must exist"
],
"index": 2,
"name": "ProposalMissing",
"section": "technicalCommittee"
},
"0x0c03": {
"documentation": [
" Mismatched index"
],
"index": 3,
"name": "WrongIndex",
"section": "technicalCommittee"
},
"0x0c04": {
"documentation": [
" Duplicate vote ignored"
],
"index": 4,
"name": "DuplicateVote",
"section": "technicalCommittee"
},
"0x0c05": {
"documentation": [
" Members are already initialized!"
],
"index": 5,
"name": "AlreadyInitialized",
"section": "technicalCommittee"
},
"0x0d00": {
"documentation": [
" Cannot vote when no candidates or members exist."
],
"index": 0,
"name": "UnableToVote",
"section": "elections"
},
"0x0d01": {
"documentation": [
" Must vote for at least one candidate."
],
"index": 1,
"name": "NoVotes",
"section": "elections"
},
"0x0d02": {
"documentation": [
" Cannot vote more than candidates."
],
"index": 2,
"name": "TooManyVotes",
"section": "elections"
},
"0x0d03": {
"documentation": [
" Cannot vote more than maximum allowed."
],
"index": 3,
"name": "MaximumVotesExceeded",
"section": "elections"
},
"0x0d04": {
"documentation": [
" Cannot vote with stake less than minimum balance."
],
"index": 4,
"name": "LowBalance",
"section": "elections"
},
"0x0d05": {
"documentation": [
" Voter can not pay voting bond."
],
"index": 5,
"name": "UnableToPayBond",
"section": "elections"
},
"0x0d06": {
"documentation": [
" Must be a voter."
],
"index": 6,
"name": "MustBeVoter",
"section": "elections"
},
"0x0d07": {
"documentation": [
" Cannot report self."
],
"index": 7,
"name": "ReportSelf",
"section": "elections"
},
"0x0d08": {
"documentation": [
" Duplicated candidate submission."
],
"index": 8,
"name": "DuplicatedCandidate",
"section": "elections"
},
"0x0d09": {
"documentation": [
" Member cannot re-submit candidacy."
],
"index": 9,
"name": "MemberSubmit",
"section": "elections"
},
"0x0d0a": {
"documentation": [
" Runner cannot re-submit candidacy."
],
"index": 10,
"name": "RunnerSubmit",
"section": "elections"
},
"0x0d0b": {
"documentation": [
" Candidate does not have enough funds."
],
"index": 11,
"name": "InsufficientCandidateFunds",
"section": "elections"
},
"0x0d0c": {
"documentation": [
" Origin is not a candidate, member or a runner up."
],
"index": 12,
"name": "InvalidOrigin",
"section": "elections"
},
"0x0d0d": {
"documentation": [
" Not a member."
],
"index": 13,
"name": "NotMember",
"section": "elections"
},
"0x0f00": {
"documentation": [
" Final hint must be updated only once in the block"
],
"index": 0,
"name": "AlreadyUpdated",
"section": "finalityTracker"
},
"0x0f01": {
"documentation": [
" Finalized height above block number"
],
"index": 1,
"name": "BadHint",
"section": "finalityTracker"
},
"0x1000": {
"documentation": [
" Attempt to signal GRANDPA pause when the authority set isn't live",
" (either paused or already pending pause)."
],
"index": 0,
"name": "PauseFailed",
"section": "grandpa"
},
"0x1001": {
"documentation": [
" Attempt to signal GRANDPA resume when the authority set isn't paused",
" (either live or already pending resume)."
],
"index": 1,
"name": "ResumeFailed",
"section": "grandpa"
},
"0x1002": {
"documentation": [
" Attempt to signal GRANDPA change with one already pending."
],
"index": 2,
"name": "ChangePending",
"section": "grandpa"
},
"0x1003": {
"documentation": [
" Cannot signal forced change so soon after last."
],
"index": 3,
"name": "TooSoon",
"section": "grandpa"
},
"0x1100": {
"documentation": [
" Proposer's balance is too low."
],
"index": 0,
"name": "InsufficientProposersBalance",
"section": "treasury"
},
"0x1101": {
"documentation": [
" No proposal at that index."
],
"index": 1,
"name": "InvalidProposalIndex",
"section": "treasury"
},
"0x1102": {
"documentation": [
" The reason given is just too big."
],
"index": 2,
"name": "ReasonTooBig",
"section": "treasury"
},
"0x1103": {
"documentation": [
" The tip was already found/started."
],
"index": 3,
"name": "AlreadyKnown",
"section": "treasury"
},
"0x1104": {
"documentation": [
" The tip hash is unknown."
],
"index": 4,
"name": "UnknownTip",
"section": "treasury"
},
"0x1105": {
"documentation": [
" The account attempting to retract the tip is not the finder of the tip."
],
"index": 5,
"name": "NotFinder",
"section": "treasury"
},
"0x1106": {
"documentation": [
" The tip cannot be claimed/closed because there are not enough tippers yet."
],
"index": 6,
"name": "StillOpen",
"section": "treasury"
},
"0x1107": {
"documentation": [
" The tip cannot be claimed/closed because it's still in the countdown period."
],
"index": 7,
"name": "Premature",
"section": "treasury"
},
"0x1200": {
"documentation": [
" A new schedule must have a greater version than the current one."
],
"index": 0,
"name": "InvalidScheduleVersion",
"section": "contracts"
},
"0x1201": {
"documentation": [
" An origin must be signed or inherent and auxiliary sender only provided on inherent."
],
"index": 1,
"name": "InvalidSurchargeClaim",
"section": "contracts"
},
"0x1202": {
"documentation": [
" Cannot restore from nonexisting or tombstone contract."
],
"index": 2,
"name": "InvalidSourceContract",
"section": "contracts"
},
"0x1203": {
"documentation": [
" Cannot restore to nonexisting or alive contract."
],
"index": 3,
"name": "InvalidDestinationContract",
"section": "contracts"
},
"0x1204": {
"documentation": [
" Tombstones don't match."
],
"index": 4,
"name": "InvalidTombstone",
"section": "contracts"
},
"0x1205": {
"documentation": [
" An origin TrieId written in the current block."
],
"index": 5,
"name": "InvalidContractOrigin",
"section": "contracts"
},
"0x1300": {
"documentation": [
" Sender must be the Sudo account"
],
"index": 0,
"name": "RequireSudo",
"section": "sudo"
},
"0x1400": {
"documentation": [
" Non existent public key."
],
"index": 0,
"name": "InvalidKey",
"section": "imOnline"
},
"0x1401": {
"documentation": [
" Duplicated heartbeat."
],
"index": 1,
"name": "DuplicatedHeartbeat",
"section": "imOnline"
},
"0x1800": {
"documentation": [
" Too many subs-accounts."
],
"index": 0,
"name": "TooManySubAccounts",
"section": "identity"
},
"0x1801": {
"documentation": [
" Account isn't found."
],
"index": 1,
"name": "NotFound",
"section": "identity"
},
"0x1802": {
"documentation": [
" Account isn't named."
],
"index": 2,
"name": "NotNamed",
"section": "identity"
},
"0x1803": {
"documentation": [
" Empty index."
],
"index": 3,
"name": "EmptyIndex",
"section": "identity"
},
"0x1804": {
"documentation": [
" Fee is changed."
],
"index": 4,
"name": "FeeChanged",
"section": "identity"
},
"0x1805": {
"documentation": [
" No identity found."
],
"index": 5,
"name": "NoIdentity",
"section": "identity"
},
"0x1806": {
"documentation": [
" Sticky judgement."
],
"index": 6,
"name": "StickyJudgement",
"section": "identity"
},
"0x1807": {
"documentation": [
" Judgement given."
],
"index": 7,
"name": "JudgementGiven",
"section": "identity"
},
"0x1808": {
"documentation": [
" Invalid judgement."
],
"index": 8,
"name": "InvalidJudgement",
"section": "identity"
},
"0x1809": {
"documentation": [
" The index is invalid."
],
"index": 9,
"name": "InvalidIndex",
"section": "identity"
},
"0x180a": {
"documentation": [
" The target is invalid."
],
"index": 10,
"name": "InvalidTarget",
"section": "identity"
},
"0x1900": {
"documentation": [
" An incorrect position was provided."
],
"index": 0,
"name": "BadPosition",
"section": "society"
},
"0x1901": {
"documentation": [
" User is not a member."
],
"index": 1,
"name": "NotMember",
"section": "society"
},
"0x1902": {
"documentation": [
" User is already a member."
],
"index": 2,
"name": "AlreadyMember",
"section": "society"
},
"0x1903": {
"documentation": [
" User is suspended."
],
"index": 3,
"name": "Suspended",
"section": "society"
},
"0x1904": {
"documentation": [
" User is not suspended."
],
"index": 4,
"name": "NotSuspended",
"section": "society"
},
"0x1905": {
"documentation": [
" Nothing to payout."
],
"index": 5,
"name": "NoPayout",
"section": "society"
},
"0x1906": {
"documentation": [
" Society already founded."
],
"index": 6,
"name": "AlreadyFounded",
"section": "society"
},
"0x1907": {
"documentation": [
" Not enough in pot to accept candidate."
],
"index": 7,
"name": "InsufficientPot",
"section": "society"
},
"0x1908": {
"documentation": [
" Member is already vouching or banned from vouching again."
],
"index": 8,
"name": "AlreadyVouching",
"section": "society"
},
"0x1909": {
"documentation": [
" Member is not vouching."
],
"index": 9,
"name": "NotVouching",
"section": "society"
},
"0x190a": {
"documentation": [
" Cannot remove the head of the chain."
],
"index": 10,
"name": "Head",
"section": "society"
},
"0x190b": {
"documentation": [
" Cannot remove the founder."
],
"index": 11,
"name": "Founder",
"section": "society"
},
"0x190c": {
"documentation": [
" User has already made a bid."
],
"index": 12,
"name": "AlreadyBid",
"section": "society"
},
"0x190d": {
"documentation": [
" User is already a candidate."
],
"index": 13,
"name": "AlreadyCandidate",
"section": "society"
},
"0x190e": {
"documentation": [
" User is not a candidate."
],
"index": 14,
"name": "NotCandidate",
"section": "society"
},
"0x190f": {
"documentation": [
" Too many members in the society."
],
"index": 15,
"name": "MaxMembers",
"section": "society"
},
"0x1910": {
"documentation": [
" The caller is not the founder."
],
"index": 16,
"name": "NotFounder",
"section": "society"
},
"0x1911": {
"documentation": [
" The caller is not the head."
],
"index": 17,
"name": "NotHead",
"section": "society"
}
},
"_metadataEvents": {}
},
"query": {
"substrate": {
"code": {
"0": ":",
"1": "c",
"2": "o",
"3": "d",
"4": "e",
"storage": {
"method": "code",
"prefix": "Substrate",
"section": "substrate"
}
},
"heapPages": {
"0": ":",
"1": "h",
"2": "e",
"3": "a",
"4": "p",
"5": "p",
"6": "a",
"7": "g",
"8": "e",
"9": "s",
"storage": {
"method": "heapPages",
"prefix": "Substrate",
"section": "substrate"
}
},
"extrinsicIndex": {
"0": ":",
"1": "e",
"2": "x",
"3": "t",
"4": "r",
"5": "i",
"6": "n",
"7": "s",
"8": "i",
"9": "c",
"10": "_",
"11": "i",
"12": "n",
"13": "d",
"14": "e",
"15": "x",
"storage": {
"method": "extrinsicIndex",
"prefix": "Substrate",
"section": "substrate"
}
},
"changesTrieConfig": {
"0": ":",
"1": "c",
"2": "h",
"3": "a",
"4": "n",
"5": "g",
"6": "e",
"7": "s",
"8": "_",
"9": "t",
"10": "r",
"11": "i",
"12": "e",
"storage": {
"method": "changesTrieConfig",
"prefix": "Substrate",
"section": "substrate"
}
},
"childStorageKeyPrefix": {
"0": ":",
"1": "c",
"2": "h",
"3": "i",
"4": "l",
"5": "d",
"6": "_",
"7": "s",
"8": "t",
"9": "o",
"10": "r",
"11": "a",
"12": "g",
"13": "e",
"14": ":",
"storage": {
"method": "childStorageKeyPrefix",
"prefix": "Substrate",
"section": "substrate"
}
}
},
"system": {
"accountNonce": {
"name": "AccountNonce",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "Index",
"kind": "map"
}
},
"fallback": "0x00000000",
"documentation": [
" Extrinsics nonce for accounts."
],
"storage": {
"method": "AccountNonce",
"prefix": "System",
"section": "system"
}
},
"extrinsicCount": {
"name": "ExtrinsicCount",
"modifier": "optional",
"type": {
"Plain": "u32"
},
"fallback": "0x00",
"documentation": [
" Total extrinsics count for the current block."
],
"storage": {
"method": "ExtrinsicCount",
"prefix": "System",
"section": "system"
}
},
"allExtrinsicsWeight": {
"name": "AllExtrinsicsWeight",
"modifier": "optional",
"type": {
"Plain": "Weight"
},
"fallback": "0x00",
"documentation": [
" Total weight for all extrinsics put together, for the current block."
],
"storage": {
"method": "AllExtrinsicsWeight",
"prefix": "System",
"section": "system"
}
},
"allExtrinsicsLen": {
"name": "AllExtrinsicsLen",
"modifier": "optional",
"type": {
"Plain": "u32"
},
"fallback": "0x00",
"documentation": [
" Total length (in bytes) for all extrinsics put together, for the current block."
],
"storage": {
"method": "AllExtrinsicsLen",
"prefix": "System",
"section": "system"
}
},
"blockHash": {
"name": "BlockHash",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "BlockNumber",
"value": "Hash",
"kind": "map"
}
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" Map of block numbers to block hashes."
],
"storage": {
"method": "BlockHash",
"prefix": "System",
"section": "system"
}
},
"extrinsicData": {
"name": "ExtrinsicData",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "u32",
"value": "Bytes",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Extrinsics data for the current block (maps an extrinsic's index to its data)."
],
"storage": {
"method": "ExtrinsicData",
"prefix": "System",
"section": "system"
}
},
"number": {
"name": "Number",
"modifier": "default",
"type": {
"Plain": "BlockNumber"
},
"fallback": "0x00000000",
"documentation": [
" The current block number being processed. Set by `execute_block`."
],
"storage": {
"method": "Number",
"prefix": "System",
"section": "system"
}
},
"parentHash": {
"name": "ParentHash",
"modifier": "default",
"type": {
"Plain": "Hash"
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" Hash of the previous block."
],
"storage": {
"method": "ParentHash",
"prefix": "System",
"section": "system"
}
},
"extrinsicsRoot": {
"name": "ExtrinsicsRoot",
"modifier": "default",
"type": {
"Plain": "Hash"
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" Extrinsics root of the current block, also part of the block header."
],
"storage": {
"method": "ExtrinsicsRoot",
"prefix": "System",
"section": "system"
}
},
"digest": {
"name": "Digest",
"modifier": "default",
"type": {
"Plain": "DigestOf"
},
"fallback": "0x00",
"documentation": [
" Digest of the current block, also part of the block header."
],
"storage": {
"method": "Digest",
"prefix": "System",
"section": "system"
}
},
"events": {
"name": "Events",
"modifier": "default",
"type": {
"Plain": "Vec<EventRecord>"
},
"fallback": "0x00",
"documentation": [
" Events deposited for the current block."
],
"storage": {
"method": "Events",
"prefix": "System",
"section": "system"
}
},
"eventCount": {
"name": "EventCount",
"modifier": "default",
"type": {
"Plain": "EventIndex"
},
"fallback": "0x00000000",
"documentation": [
" The number of events in the `Events<T>` list."
],
"storage": {
"method": "EventCount",
"prefix": "System",
"section": "system"
}
},
"eventTopics": {
"name": "EventTopics",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "Hash",
"value": "Vec<(BlockNumber,EventIndex)>",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Mapping between a topic (represented by T::Hash) and a vector of indexes",
" of events in the `<Events<T>>` list.",
"",
" 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."
],
"storage": {
"method": "EventTopics",
"prefix": "System",
"section": "system"
}
}
},
"utility": {
"multisigs": {
"name": "Multisigs",
"modifier": "optional",
"type": {
"DoubleMap": {
"hasher": "twox64Concat",
"key1": "AccountId",
"key2": "[u8;32]",
"value": "Multisig",
"key2Hasher": "blake2128Concat"
}
},
"fallback": "0x00",
"documentation": [
" The set of open multisig operations."
],
"storage": {
"method": "Multisigs",
"prefix": "Utility",
"section": "utility"
}
}
},
"babe": {
"epochIndex": {
"name": "EpochIndex",
"modifier": "default",
"type": {
"Plain": "u64"
},
"fallback": "0x0000000000000000",
"documentation": [
" Current epoch index."
],
"storage": {
"method": "EpochIndex",
"prefix": "Babe",
"section": "babe"
}
},
"authorities": {
"name": "Authorities",
"modifier": "default",
"type": {
"Plain": "Vec<(AuthorityId,BabeAuthorityWeight)>"
},
"fallback": "0x00",
"documentation": [
" Current epoch authorities."
],
"storage": {
"method": "Authorities",
"prefix": "Babe",
"section": "babe"
}
},
"genesisSlot": {
"name": "GenesisSlot",
"modifier": "default",
"type": {
"Plain": "u64"
},
"fallback": "0x0000000000000000",
"documentation": [
" The slot at which the first epoch actually started. This is 0",
" until the first block of the chain."
],
"storage": {
"method": "GenesisSlot",
"prefix": "Babe",
"section": "babe"
}
},
"currentSlot": {
"name": "CurrentSlot",
"modifier": "default",
"type": {
"Plain": "u64"
},
"fallback": "0x0000000000000000",
"documentation": [
" Current slot number."
],
"storage": {
"method": "CurrentSlot",
"prefix": "Babe",
"section": "babe"
}
},
"randomness": {
"name": "Randomness",
"modifier": "default",
"type": {
"Plain": "[u8;32]"
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" 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."
],
"storage": {
"method": "Randomness",
"prefix": "Babe",
"section": "babe"
}
},
"nextRandomness": {
"name": "NextRandomness",
"modifier": "default",
"type": {
"Plain": "[u8;32]"
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" Next epoch randomness."
],
"storage": {
"method": "NextRandomness",
"prefix": "Babe",
"section": "babe"
}
},
"segmentIndex": {
"name": "SegmentIndex",
"modifier": "default",
"type": {
"Plain": "u32"
},
"fallback": "0x00000000",
"documentation": [
" 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."
],
"storage": {
"method": "SegmentIndex",
"prefix": "Babe",
"section": "babe"
}
},
"underConstruction": {
"name": "UnderConstruction",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "u32",
"value": "Vec<[u8;32]>",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [],
"storage": {
"method": "UnderConstruction",
"prefix": "Babe",
"section": "babe"
}
},
"initialized": {
"name": "Initialized",
"modifier": "optional",
"type": {
"Plain": "MaybeVrf"
},
"fallback": "0x00",
"documentation": [
" Temporary value (cleared at block finalization) which is `Some`",
" if per-block initialization has already been called for current block."
],
"storage": {
"method": "Initialized",
"prefix": "Babe",
"section": "babe"
}
}
},
"timestamp": {
"now": {
"name": "Now",
"modifier": "default",
"type": {
"Plain": "Moment"
},
"fallback": "0x0000000000000000",
"documentation": [
" Current time for the current block."
],
"storage": {
"method": "Now",
"prefix": "Timestamp",
"section": "timestamp"
}
},
"didUpdate": {
"name": "DidUpdate",
"modifier": "default",
"type": {
"Plain": "bool"
},
"fallback": "0x00",
"documentation": [
" Did the timestamp get updated in this block?"
],
"storage": {
"method": "DidUpdate",
"prefix": "Timestamp",
"section": "timestamp"
}
}
},
"authorship": {
"uncles": {
"name": "Uncles",
"modifier": "default",
"type": {
"Plain": "Vec<UncleEntryItem>"
},
"fallback": "0x00",
"documentation": [
" Uncles"
],
"storage": {
"method": "Uncles",
"prefix": "Authorship",
"section": "authorship"
}
},
"author": {
"name": "Author",
"modifier": "optional",
"type": {
"Plain": "AccountId"
},
"fallback": "0x00",
"documentation": [
" Author of current block."
],
"storage": {
"method": "Author",
"prefix": "Authorship",
"section": "authorship"
}
},
"didSetUncles": {
"name": "DidSetUncles",
"modifier": "default",
"type": {
"Plain": "bool"
},
"fallback": "0x00",
"documentation": [
" Whether uncles were already set in this block."
],
"storage": {
"method": "DidSetUncles",
"prefix": "Authorship",
"section": "authorship"
}
}
},
"indices": {
"nextEnumSet": {
"name": "NextEnumSet",
"modifier": "default",
"type": {
"Plain": "AccountIndex"
},
"fallback": "0x00000000",
"documentation": [
" The next free enumeration set."
],
"storage": {
"method": "NextEnumSet",
"prefix": "Indices",
"section": "indices"
}
},
"enumSet": {
"name": "EnumSet",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountIndex",
"value": "Vec<AccountId>",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" The enumeration sets."
],
"storage": {
"method": "EnumSet",
"prefix": "Indices",
"section": "indices"
}
}
},
"balances": {
"totalIssuance": {
"name": "TotalIssuance",
"modifier": "default",
"type": {
"Plain": "Balance"
},
"fallback": "0x00000000000000000000000000000000",
"documentation": [
" The total units issued in the system."
],
"storage": {
"method": "TotalIssuance",
"prefix": "Balances",
"section": "balances"
}
},
"vesting": {
"name": "Vesting",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "VestingSchedule",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Information regarding the vesting of a given account."
],
"storage": {
"method": "Vesting",
"prefix": "Balances",
"section": "balances"
}
},
"freeBalance": {
"name": "FreeBalance",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "Balance",
"kind": "map"
}
},
"fallback": "0x00000000000000000000000000000000",
"documentation": [
" 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.",
"",
" `frame_system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets",
" collapsed to zero if it ever becomes less than `ExistentialDeposit`."
],
"storage": {
"method": "FreeBalance",
"prefix": "Balances",
"section": "balances"
}
},
"reservedBalance": {
"name": "ReservedBalance",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "Balance",
"kind": "map"
}
},
"fallback": "0x00000000000000000000000000000000",
"documentation": [
" 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`.",
"",
" `frame_system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets",
" collapsed to zero if it ever becomes less than `ExistentialDeposit`.)"
],
"storage": {
"method": "ReservedBalance",
"prefix": "Balances",
"section": "balances"
}
},
"locks": {
"name": "Locks",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "Vec<BalanceLock>",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Any liquidity locks on some account balances."
],
"storage": {
"method": "Locks",
"prefix": "Balances",
"section": "balances"
}
}
},
"transactionPayment": {
"nextFeeMultiplier": {
"name": "NextFeeMultiplier",
"modifier": "default",
"type": {
"Plain": "Multiplier"
},
"fallback": "0x0000000000000000",
"documentation": [],
"storage": {
"method": "NextFeeMultiplier",
"prefix": "Balances",
"section": "transactionPayment"
}
}
},
"staking": {
"validatorCount": {
"name": "ValidatorCount",
"modifier": "default",
"type": {
"Plain": "u32"
},
"fallback": "0x00000000",
"documentation": [
" The ideal number of staking participants."
],
"storage": {
"method": "ValidatorCount",
"prefix": "Staking",
"section": "staking"
}
},
"minimumValidatorCount": {
"name": "MinimumValidatorCount",
"modifier": "default",
"type": {
"Plain": "u32"
},
"fallback": "0x04000000",
"documentation": [
" Minimum number of staking participants before emergency conditions are imposed."
],
"storage": {
"method": "MinimumValidatorCount",
"prefix": "Staking",
"section": "staking"
}
},
"invulnerables": {
"name": "Invulnerables",
"modifier": "default",
"type": {
"Plain": "Vec<AccountId>"
},
"fallback": "0x00",
"documentation": [
" 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."
],
"storage": {
"method": "Invulnerables",
"prefix": "Staking",
"section": "staking"
}
},
"bonded": {
"name": "Bonded",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "AccountId",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Map from all locked \"stash\" accounts to the controller account."
],
"storage": {
"method": "Bonded",
"prefix": "Staking",
"section": "staking"
}
},
"ledger": {
"name": "Ledger",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "StakingLedger",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Map from all (unlocked) \"controller\" accounts to the info regarding the staking."
],
"storage": {
"method": "Ledger",
"prefix": "Staking",
"section": "staking"
}
},
"payee": {
"name": "Payee",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "RewardDestination",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Where the reward payment should be made. Keyed by stash."
],
"storage": {
"method": "Payee",
"prefix": "Staking",
"section": "staking"
}
},
"validators": {
"name": "Validators",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "ValidatorPrefs",
"kind": "linkedMap"
}
},
"fallback": "0x00",
"documentation": [
" The map from (wannabe) validator stash key to the preferences of that validator."
],
"storage": {
"method": "Validators",
"prefix": "Staking",
"section": "staking"
}
},
"nominators": {
"name": "Nominators",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "Nominations",
"kind": "linkedMap"
}
},
"fallback": "0x00",
"documentation": [
" 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."
],
"storage": {
"method": "Nominators",
"prefix": "Staking",
"section": "staking"
}
},
"stakers": {
"name": "Stakers",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "Exposure",
"kind": "map"
}
},
"fallback": "0x000000",
"documentation": [
" 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."
],
"storage": {
"method": "Stakers",
"prefix": "Staking",
"section": "staking"
}
},
"currentElected": {
"name": "CurrentElected",
"modifier": "default",
"type": {
"Plain": "Vec<AccountId>"
},
"fallback": "0x00",
"documentation": [
" The currently elected validator set keyed by stash account ID."
],
"storage": {
"method": "CurrentElected",
"prefix": "Staking",
"section": "staking"
}
},
"currentEra": {
"name": "CurrentEra",
"modifier": "default",
"type": {
"Plain": "EraIndex"
},
"fallback": "0x00000000",
"documentation": [
" The current era index."
],
"storage": {
"method": "CurrentEra",
"prefix": "Staking",
"section": "staking"
}
},
"currentEraStart": {
"name": "CurrentEraStart",
"modifier": "default",
"type": {
"Plain": "MomentOf"
},
"fallback": "0x0000000000000000",
"documentation": [
" The start of the current era."
],
"storage": {
"method": "CurrentEraStart",
"prefix": "Staking",
"section": "staking"
}
},
"currentEraStartSessionIndex": {
"name": "CurrentEraStartSessionIndex",
"modifier": "default",
"type": {
"Plain": "SessionIndex"
},
"fallback": "0x00000000",
"documentation": [
" The session index at which the current era started."
],
"storage": {
"method": "CurrentEraStartSessionIndex",
"prefix": "Staking",
"section": "staking"
}
},
"currentEraPointsEarned": {
"name": "CurrentEraPointsEarned",
"modifier": "default",
"type": {
"Plain": "EraPoints"
},
"fallback": "0x0000000000",
"documentation": [
" Rewards for the current era. Using indices of current elected set."
],
"storage": {
"method": "CurrentEraPointsEarned",
"prefix": "Staking",
"section": "staking"
}
},
"slotStake": {
"name": "SlotStake",
"modifier": "default",
"type": {
"Plain": "BalanceOf"
},
"fallback": "0x00000000000000000000000000000000",
"documentation": [
" The amount of balance actively at stake for each validator slot, currently.",
"",
" This is used to derive rewards and punishments."
],
"storage": {
"method": "SlotStake",
"prefix": "Staking",
"section": "staking"
}
},
"forceEra": {
"name": "ForceEra",
"modifier": "default",
"type": {
"Plain": "Forcing"
},
"fallback": "0x00",
"documentation": [
" True if the next session change will be a new era regardless of index."
],
"storage": {
"method": "ForceEra",
"prefix": "Staking",
"section": "staking"
}
},
"slashRewardFraction": {
"name": "SlashRewardFraction",
"modifier": "default",
"type": {
"Plain": "Perbill"
},
"fallback": "0x00000000",
"documentation": [
" The percentage of the slash that is distributed to reporters.",
"",
" The rest of the slashed value is handled by the `Slash`."
],
"storage": {
"method": "SlashRewardFraction",
"prefix": "Staking",
"section": "staking"
}
},
"canceledSlashPayout": {
"name": "CanceledSlashPayout",
"modifier": "default",
"type": {
"Plain": "BalanceOf"
},
"fallback": "0x00000000000000000000000000000000",
"documentation": [
" The amount of currency given to reporters of a slash event which was",
" canceled by extraordinary circumstances (e.g. governance)."
],
"storage": {
"method": "CanceledSlashPayout",
"prefix": "Staking",
"section": "staking"
}
},
"unappliedSlashes": {
"name": "UnappliedSlashes",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "EraIndex",
"value": "Vec<UnappliedSlash>",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" All unapplied slashes that are queued for later."
],
"storage": {
"method": "UnappliedSlashes",
"prefix": "Staking",
"section": "staking"
}
},
"bondedEras": {
"name": "BondedEras",
"modifier": "default",
"type": {
"Plain": "Vec<(EraIndex,SessionIndex)>"
},
"fallback": "0x00",
"documentation": [
" A mapping from still-bonded eras to the first session index of that era."
],
"storage": {
"method": "BondedEras",
"prefix": "Staking",
"section": "staking"
}
},
"validatorSlashInEra": {
"name": "ValidatorSlashInEra",
"modifier": "optional",
"type": {
"DoubleMap": {
"hasher": "blake2256",
"key1": "EraIndex",
"key2": "AccountId",
"value": "(Perbill,BalanceOf)",
"key2Hasher": "twox128"
}
},
"fallback": "0x00",
"documentation": [
" All slashing events on validators, mapped by era to the highest slash proportion",
" and slash value of the era."
],
"storage": {
"method": "ValidatorSlashInEra",
"prefix": "Staking",
"section": "staking"
}
},
"nominatorSlashInEra": {
"name": "NominatorSlashInEra",
"modifier": "optional",
"type": {
"DoubleMap": {
"hasher": "blake2256",
"key1": "EraIndex",
"key2": "AccountId",
"value": "BalanceOf",
"key2Hasher": "twox128"
}
},
"fallback": "0x00",
"documentation": [
" All slashing events on nominators, mapped by era to the highest slash value of the era."
],
"storage": {
"method": "NominatorSlashInEra",
"prefix": "Staking",
"section": "staking"
}
},
"slashingSpans": {
"name": "SlashingSpans",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "SlashingSpans",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Slashing spans for stash accounts."
],
"storage": {
"method": "SlashingSpans",
"prefix": "Staking",
"section": "staking"
}
},
"spanSlash": {
"name": "SpanSlash",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "(AccountId,SpanIndex)",
"value": "SpanRecord",
"kind": "map"
}
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" Records information about the maximum slash of a stash within a slashing span,",
" as well as how much reward has been paid out."
],
"storage": {
"method": "SpanSlash",
"prefix": "Staking",
"section": "staking"
}
},
"earliestUnappliedSlash": {
"name": "EarliestUnappliedSlash",
"modifier": "optional",
"type": {
"Plain": "EraIndex"
},
"fallback": "0x00",
"documentation": [
" The earliest era for which we have a pending, unapplied slash."
],
"storage": {
"method": "EarliestUnappliedSlash",
"prefix": "Staking",
"section": "staking"
}
},
"storageVersion": {
"name": "StorageVersion",
"modifier": "default",
"type": {
"Plain": "u32"
},
"fallback": "0x00000000",
"documentation": [
" The version of storage for upgrade."
],
"storage": {
"method": "StorageVersion",
"prefix": "Staking",
"section": "staking"
}
}
},
"session": {
"validators": {
"name": "Validators",
"modifier": "default",
"type": {
"Plain": "Vec<ValidatorId>"
},
"fallback": "0x00",
"documentation": [
" The current set of validators."
],
"storage": {
"method": "Validators",
"prefix": "Session",
"section": "session"
}
},
"currentIndex": {
"name": "CurrentIndex",
"modifier": "default",
"type": {
"Plain": "SessionIndex"
},
"fallback": "0x00000000",
"documentation": [
" Current index of the session."
],
"storage": {
"method": "CurrentIndex",
"prefix": "Session",
"section": "session"
}
},
"queuedChanged": {
"name": "QueuedChanged",
"modifier": "default",
"type": {
"Plain": "bool"
},
"fallback": "0x00",
"documentation": [
" True if the underlying economic identities or weighting behind the validators",
" has changed in the queued validator set."
],
"storage": {
"method": "QueuedChanged",
"prefix": "Session",
"section": "session"
}
},
"queuedKeys": {
"name": "QueuedKeys",
"modifier": "default",
"type": {
"Plain": "Vec<(ValidatorId,Keys)>"
},
"fallback": "0x00",
"documentation": [
" The queued keys for the next session. When the next session begins, these keys",
" will be used to determine the validator's session keys."
],
"storage": {
"method": "QueuedKeys",
"prefix": "Session",
"section": "session"
}
},
"disabledValidators": {
"name": "DisabledValidators",
"modifier": "default",
"type": {
"Plain": "Vec<u32>"
},
"fallback": "0x00",
"documentation": [
" Indices of disabled validators.",
"",
" The set is cleared when `on_session_ending` returns a new set of identities."
],
"storage": {
"method": "DisabledValidators",
"prefix": "Session",
"section": "session"
}
},
"nextKeys": {
"name": "NextKeys",
"modifier": "optional",
"type": {
"DoubleMap": {
"hasher": "twox64Concat",
"key1": "Bytes",
"key2": "ValidatorId",
"value": "Keys",
"key2Hasher": "blake2256"
}
},
"fallback": "0x00",
"documentation": [
" 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."
],
"storage": {
"method": "NextKeys",
"prefix": "Session",
"section": "session"
}
},
"keyOwner": {
"name": "KeyOwner",
"modifier": "optional",
"type": {
"DoubleMap": {
"hasher": "twox64Concat",
"key1": "Bytes",
"key2": "(KeyTypeId,Bytes)",
"value": "ValidatorId",
"key2Hasher": "blake2256"
}
},
"fallback": "0x00",
"documentation": [
" 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."
],
"storage": {
"method": "KeyOwner",
"prefix": "Session",
"section": "session"
}
}
},
"democracy": {
"publicPropCount": {
"name": "PublicPropCount",
"modifier": "default",
"type": {
"Plain": "PropIndex"
},
"fallback": "0x00000000",
"documentation": [
" The number of (public) proposals that have been made so far."
],
"storage": {
"method": "PublicPropCount",
"prefix": "Democracy",
"section": "democracy"
}
},
"publicProps": {
"name": "PublicProps",
"modifier": "default",
"type": {
"Plain": "Vec<(PropIndex,Hash,AccountId)>"
},
"fallback": "0x00",
"documentation": [
" The public proposals. Unsorted. The second item is the proposal's hash."
],
"storage": {
"method": "PublicProps",
"prefix": "Democracy",
"section": "democracy"
}
},
"preimages": {
"name": "Preimages",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "Hash",
"value": "(Bytes,AccountId,BalanceOf,BlockNumber)",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" 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."
],
"storage": {
"method": "Preimages",
"prefix": "Democracy",
"section": "democracy"
}
},
"depositOf": {
"name": "DepositOf",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "PropIndex",
"value": "(BalanceOf,Vec<AccountId>)",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Those who have locked a deposit."
],
"storage": {
"method": "DepositOf",
"prefix": "Democracy",
"section": "democracy"
}
},
"referendumCount": {
"name": "ReferendumCount",
"modifier": "default",
"type": {
"Plain": "ReferendumIndex"
},
"fallback": "0x00000000",
"documentation": [
" The next free referendum index, aka the number of referenda started so far."
],
"storage": {
"method": "ReferendumCount",
"prefix": "Democracy",
"section": "democracy"
}
},
"lowestUnbaked": {
"name": "LowestUnbaked",
"modifier": "default",
"type": {
"Plain": "ReferendumIndex"
},
"fallback": "0x00000000",
"documentation": [
" The lowest referendum index representing an unbaked referendum. Equal to",
" `ReferendumCount` if there isn't a unbaked referendum."
],
"storage": {
"method": "LowestUnbaked",
"prefix": "Democracy",
"section": "democracy"
}
},
"referendumInfoOf": {
"name": "ReferendumInfoOf",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "ReferendumIndex",
"value": "ReferendumInfo",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Information concerning any given referendum."
],
"storage": {
"method": "ReferendumInfoOf",
"prefix": "Democracy",
"section": "democracy"
}
},
"dispatchQueue": {
"name": "DispatchQueue",
"modifier": "default",
"type": {
"Plain": "Vec<(BlockNumber,Hash,ReferendumIndex)>"
},
"fallback": "0x00",
"documentation": [
" Queue of successful referenda to be dispatched. Stored ordered by block number."
],
"storage": {
"method": "DispatchQueue",
"prefix": "Democracy",
"section": "democracy"
}
},
"votersFor": {
"name": "VotersFor",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "ReferendumIndex",
"value": "Vec<AccountId>",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Get the voters for the current proposal."
],
"storage": {
"method": "VotersFor",
"prefix": "Democracy",
"section": "democracy"
}
},
"voteOf": {
"name": "VoteOf",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "(ReferendumIndex,AccountId)",
"value": "Vote",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" 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."
],
"storage": {
"method": "VoteOf",
"prefix": "Democracy",
"section": "democracy"
}
},
"proxy": {
"name": "Proxy",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "AccountId",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Who is able to vote for whom. Value is the fund-holding account, key is the",
" vote-transaction-sending account."
],
"storage": {
"method": "Proxy",
"prefix": "Democracy",
"section": "democracy"
}
},
"delegations": {
"name": "Delegations",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "(AccountId,Conviction)",
"kind": "linkedMap"
}
},
"fallback": "0x000000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" Get the account (and lock periods) to which another account is delegating vote."
],
"storage": {
"method": "Delegations",
"prefix": "Democracy",
"section": "democracy"
}
},
"lastTabledWasExternal": {
"name": "LastTabledWasExternal",
"modifier": "default",
"type": {
"Plain": "bool"
},
"fallback": "0x00",
"documentation": [
" True if the last referendum tabled was submitted externally. False if it was a public",
" proposal."
],
"storage": {
"method": "LastTabledWasExternal",
"prefix": "Democracy",
"section": "democracy"
}
},
"nextExternal": {
"name": "NextExternal",
"modifier": "optional",
"type": {
"Plain": "(Hash,VoteThreshold)"
},
"fallback": "0x00",
"documentation": [
" 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."
],
"storage": {
"method": "NextExternal",
"prefix": "Democracy",
"section": "democracy"
}
},
"blacklist": {
"name": "Blacklist",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "Hash",
"value": "(BlockNumber,Vec<AccountId>)",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" 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."
],
"storage": {
"method": "Blacklist",
"prefix": "Democracy",
"section": "democracy"
}
},
"cancellations": {
"name": "Cancellations",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "Hash",
"value": "bool",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Record of all proposals that have been subject to emergency cancellation."
],
"storage": {
"method": "Cancellations",
"prefix": "Democracy",
"section": "democracy"
}
}
},
"council": {
"proposals": {
"name": "Proposals",
"modifier": "default",
"type": {
"Plain": "Vec<Hash>"
},
"fallback": "0x00",
"documentation": [
" The hashes of the active proposals."
],
"storage": {
"method": "Proposals",
"prefix": "Instance1Collective",
"section": "council"
}
},
"proposalOf": {
"name": "ProposalOf",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "Hash",
"value": "Proposal",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Actual proposal for a given hash, if it's current."
],
"storage": {
"method": "ProposalOf",
"prefix": "Instance1Collective",
"section": "council"
}
},
"voting": {
"name": "Voting",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "Hash",
"value": "Votes",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Votes on a given proposal, if it is ongoing."
],
"storage": {
"method": "Voting",
"prefix": "Instance1Collective",
"section": "council"
}
},
"proposalCount": {
"name": "ProposalCount",
"modifier": "default",
"type": {
"Plain": "u32"
},
"fallback": "0x00000000",
"documentation": [
" Proposals so far."
],
"storage": {
"method": "ProposalCount",
"prefix": "Instance1Collective",
"section": "council"
}
},
"members": {
"name": "Members",
"modifier": "default",
"type": {
"Plain": "Vec<AccountId>"
},
"fallback": "0x00",
"documentation": [
" The current members of the collective. This is stored sorted (just by value)."
],
"storage": {
"method": "Members",
"prefix": "Instance1Collective",
"section": "council"
}
}
},
"technicalCommittee": {
"proposals": {
"name": "Proposals",
"modifier": "default",
"type": {
"Plain": "Vec<Hash>"
},
"fallback": "0x00",
"documentation": [
" The hashes of the active proposals."
],
"storage": {
"method": "Proposals",
"prefix": "Instance2Collective",
"section": "technicalCommittee"
}
},
"proposalOf": {
"name": "ProposalOf",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "Hash",
"value": "Proposal",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Actual proposal for a given hash, if it's current."
],
"storage": {
"method": "ProposalOf",
"prefix": "Instance2Collective",
"section": "technicalCommittee"
}
},
"voting": {
"name": "Voting",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "Hash",
"value": "Votes",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Votes on a given proposal, if it is ongoing."
],
"storage": {
"method": "Voting",
"prefix": "Instance2Collective",
"section": "technicalCommittee"
}
},
"proposalCount": {
"name": "ProposalCount",
"modifier": "default",
"type": {
"Plain": "u32"
},
"fallback": "0x00000000",
"documentation": [
" Proposals so far."
],
"storage": {
"method": "ProposalCount",
"prefix": "Instance2Collective",
"section": "technicalCommittee"
}
},
"members": {
"name": "Members",
"modifier": "default",
"type": {
"Plain": "Vec<AccountId>"
},
"fallback": "0x00",
"documentation": [
" The current members of the collective. This is stored sorted (just by value)."
],
"storage": {
"method": "Members",
"prefix": "Instance2Collective",
"section": "technicalCommittee"
}
}
},
"elections": {
"members": {
"name": "Members",
"modifier": "default",
"type": {
"Plain": "Vec<(AccountId,BalanceOf)>"
},
"fallback": "0x00",
"documentation": [
" The current elected membership. Sorted based on account id."
],
"storage": {
"method": "Members",
"prefix": "PhragmenElection",
"section": "elections"
}
},
"runnersUp": {
"name": "RunnersUp",
"modifier": "default",
"type": {
"Plain": "Vec<(AccountId,BalanceOf)>"
},
"fallback": "0x00",
"documentation": [
" The current runners_up. Sorted based on low to high merit (worse to best runner)."
],
"storage": {
"method": "RunnersUp",
"prefix": "PhragmenElection",
"section": "elections"
}
},
"electionRounds": {
"name": "ElectionRounds",
"modifier": "default",
"type": {
"Plain": "u32"
},
"fallback": "0x00000000",
"documentation": [
" The total number of vote rounds that have happened, excluding the upcoming one."
],
"storage": {
"method": "ElectionRounds",
"prefix": "PhragmenElection",
"section": "elections"
}
},
"votesOf": {
"name": "VotesOf",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "Vec<AccountId>",
"kind": "linkedMap"
}
},
"fallback": "0x00",
"documentation": [
" Votes of a particular voter, with the round index of the votes."
],
"storage": {
"method": "VotesOf",
"prefix": "PhragmenElection",
"section": "elections"
}
},
"stakeOf": {
"name": "StakeOf",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "BalanceOf",
"kind": "map"
}
},
"fallback": "0x00000000000000000000000000000000",
"documentation": [
" Locked stake of a voter."
],
"storage": {
"method": "StakeOf",
"prefix": "PhragmenElection",
"section": "elections"
}
},
"candidates": {
"name": "Candidates",
"modifier": "default",
"type": {
"Plain": "Vec<AccountId>"
},
"fallback": "0x00",
"documentation": [
" The present candidate list. Sorted based on account-id. A current member or a runner can",
" never enter this vector and is always implicitly assumed to be a candidate."
],
"storage": {
"method": "Candidates",
"prefix": "PhragmenElection",
"section": "elections"
}
}
},
"technicalMembership": {
"members": {
"name": "Members",
"modifier": "default",
"type": {
"Plain": "Vec<AccountId>"
},
"fallback": "0x00",
"documentation": [
" The current membership, stored as an ordered Vec."
],
"storage": {
"method": "Members",
"prefix": "Instance1Membership",
"section": "technicalMembership"
}
}
},
"grandpa": {
"authorities": {
"name": "Authorities",
"modifier": "default",
"type": {
"Plain": "AuthorityList"
},
"fallback": "0x00",
"documentation": [
" DEPRECATED",
"",
" This used to store the current authority set, which has been migrated to the well-known",
" GRANDPA_AUTHORITES_KEY unhashed key."
],
"storage": {
"method": "Authorities",
"prefix": "GrandpaFinality",
"section": "grandpa"
}
},
"state": {
"name": "State",
"modifier": "default",
"type": {
"Plain": "StoredState"
},
"fallback": "0x00",
"documentation": [
" State of the current authority set."
],
"storage": {
"method": "State",
"prefix": "GrandpaFinality",
"section": "grandpa"
}
},
"pendingChange": {
"name": "PendingChange",
"modifier": "optional",
"type": {
"Plain": "StoredPendingChange"
},
"fallback": "0x00",
"documentation": [
" Pending change: (signaled at, scheduled change)."
],
"storage": {
"method": "PendingChange",
"prefix": "GrandpaFinality",
"section": "grandpa"
}
},
"nextForced": {
"name": "NextForced",
"modifier": "optional",
"type": {
"Plain": "BlockNumber"
},
"fallback": "0x00",
"documentation": [
" next block number where we can force a change."
],
"storage": {
"method": "NextForced",
"prefix": "GrandpaFinality",
"section": "grandpa"
}
},
"stalled": {
"name": "Stalled",
"modifier": "optional",
"type": {
"Plain": "(BlockNumber,BlockNumber)"
},
"fallback": "0x00",
"documentation": [
" `true` if we are currently stalled."
],
"storage": {
"method": "Stalled",
"prefix": "GrandpaFinality",
"section": "grandpa"
}
},
"currentSetId": {
"name": "CurrentSetId",
"modifier": "default",
"type": {
"Plain": "SetId"
},
"fallback": "0x0000000000000000",
"documentation": [
" The number of changes (both in terms of keys and underlying economic responsibilities)",
" in the \"set\" of Grandpa validators from genesis."
],
"storage": {
"method": "CurrentSetId",
"prefix": "GrandpaFinality",
"section": "grandpa"
}
},
"setIdSession": {
"name": "SetIdSession",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "SetId",
"value": "SessionIndex",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" A mapping from grandpa set ID to the index of the *most recent* session for which its members were responsible."
],
"storage": {
"method": "SetIdSession",
"prefix": "GrandpaFinality",
"section": "grandpa"
}
}
},
"treasury": {
"proposalCount": {
"name": "ProposalCount",
"modifier": "default",
"type": {
"Plain": "ProposalIndex"
},
"fallback": "0x00000000",
"documentation": [
" Number of proposals that have been made."
],
"storage": {
"method": "ProposalCount",
"prefix": "Treasury",
"section": "treasury"
}
},
"proposals": {
"name": "Proposals",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "ProposalIndex",
"value": "TreasuryProposal",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Proposals that have been made."
],
"storage": {
"method": "Proposals",
"prefix": "Treasury",
"section": "treasury"
}
},
"approvals": {
"name": "Approvals",
"modifier": "default",
"type": {
"Plain": "Vec<ProposalIndex>"
},
"fallback": "0x00",
"documentation": [
" Proposal indices that have been approved but not yet awarded."
],
"storage": {
"method": "Approvals",
"prefix": "Treasury",
"section": "treasury"
}
},
"tips": {
"name": "Tips",
"modifier": "optional",
"type": {
"Map": {
"hasher": "twox64Concat",
"key": "Hash",
"value": "OpenTip",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Tips 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."
],
"storage": {
"method": "Tips",
"prefix": "Treasury",
"section": "treasury"
}
},
"reasons": {
"name": "Reasons",
"modifier": "optional",
"type": {
"Map": {
"hasher": "twox64Concat",
"key": "Hash",
"value": "Bytes",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Simple preimage lookup from the reason's hash to the original data. Again, has an",
" insecure enumerable hash since the key is guaranteed to be the result of a secure hash."
],
"storage": {
"method": "Reasons",
"prefix": "Treasury",
"section": "treasury"
}
}
},
"contracts": {
"gasSpent": {
"name": "GasSpent",
"modifier": "default",
"type": {
"Plain": "Gas"
},
"fallback": "0x0000000000000000",
"documentation": [
" Gas spent so far in this block."
],
"storage": {
"method": "GasSpent",
"prefix": "Contract",
"section": "contracts"
}
},
"currentSchedule": {
"name": "CurrentSchedule",
"modifier": "default",
"type": {
"Plain": "Schedule"
},
"fallback": "0x0000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000008700000000000000af0000000000000001000000000000000100000000000000040000000000010010000000004000000020000000",
"documentation": [
" Current cost schedule for contracts."
],
"storage": {
"method": "CurrentSchedule",
"prefix": "Contract",
"section": "contracts"
}
},
"pristineCode": {
"name": "PristineCode",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "CodeHash",
"value": "Bytes",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" A mapping from an original code hash to the original code, untouched by instrumentation."
],
"storage": {
"method": "PristineCode",
"prefix": "Contract",
"section": "contracts"
}
},
"codeStorage": {
"name": "CodeStorage",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "CodeHash",
"value": "PrefabWasmModule",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" A mapping between an original code hash and instrumented wasm code, ready for execution."
],
"storage": {
"method": "CodeStorage",
"prefix": "Contract",
"section": "contracts"
}
},
"accountCounter": {
"name": "AccountCounter",
"modifier": "default",
"type": {
"Plain": "u64"
},
"fallback": "0x0000000000000000",
"documentation": [
" The subtrie counter."
],
"storage": {
"method": "AccountCounter",
"prefix": "Contract",
"section": "contracts"
}
},
"contractInfoOf": {
"name": "ContractInfoOf",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "ContractInfo",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" The code associated with a given account."
],
"storage": {
"method": "ContractInfoOf",
"prefix": "Contract",
"section": "contracts"
}
},
"gasPrice": {
"name": "GasPrice",
"modifier": "default",
"type": {
"Plain": "BalanceOf"
},
"fallback": "0x01000000000000000000000000000000",
"documentation": [
" The price of one unit of gas."
],
"storage": {
"method": "GasPrice",
"prefix": "Contract",
"section": "contracts"
}
}
},
"sudo": {
"key": {
"name": "Key",
"modifier": "default",
"type": {
"Plain": "AccountId"
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" The `AccountId` of the sudo key."
],
"storage": {
"method": "Key",
"prefix": "Sudo",
"section": "sudo"
}
}
},
"imOnline": {
"gossipAt": {
"name": "GossipAt",
"modifier": "default",
"type": {
"Plain": "BlockNumber"
},
"fallback": "0x00000000",
"documentation": [
" The block number when we should gossip."
],
"storage": {
"method": "GossipAt",
"prefix": "ImOnline",
"section": "imOnline"
}
},
"keys": {
"name": "Keys",
"modifier": "default",
"type": {
"Plain": "Vec<AuthorityId>"
},
"fallback": "0x00",
"documentation": [
" The current set of keys that may issue a heartbeat."
],
"storage": {
"method": "Keys",
"prefix": "ImOnline",
"section": "imOnline"
}
},
"receivedHeartbeats": {
"name": "ReceivedHeartbeats",
"modifier": "optional",
"type": {
"DoubleMap": {
"hasher": "blake2256",
"key1": "SessionIndex",
"key2": "AuthIndex",
"value": "Bytes",
"key2Hasher": "blake2256"
}
},
"fallback": "0x00",
"documentation": [
" For each session index, we keep a mapping of `AuthIndex`",
" to `offchain::OpaqueNetworkState`."
],
"storage": {
"method": "ReceivedHeartbeats",
"prefix": "ImOnline",
"section": "imOnline"
}
},
"authoredBlocks": {
"name": "AuthoredBlocks",
"modifier": "default",
"type": {
"DoubleMap": {
"hasher": "blake2256",
"key1": "SessionIndex",
"key2": "ValidatorId",
"value": "u32",
"key2Hasher": "blake2256"
}
},
"fallback": "0x00000000",
"documentation": [
" For each session index, we keep a mapping of `T::ValidatorId` to the",
" number of blocks authored by the given authority."
],
"storage": {
"method": "AuthoredBlocks",
"prefix": "ImOnline",
"section": "imOnline"
}
}
},
"offences": {
"reports": {
"name": "Reports",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "ReportIdOf",
"value": "OffenceDetails",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" The primary structure that holds all offence records keyed by report identifiers."
],
"storage": {
"method": "Reports",
"prefix": "Offences",
"section": "offences"
}
},
"concurrentReportsIndex": {
"name": "ConcurrentReportsIndex",
"modifier": "default",
"type": {
"DoubleMap": {
"hasher": "blake2256",
"key1": "Kind",
"key2": "OpaqueTimeSlot",
"value": "Vec<ReportIdOf>",
"key2Hasher": "blake2256"
}
},
"fallback": "0x00",
"documentation": [
" A vector of reports of the same kind that happened at the same time slot."
],
"storage": {
"method": "ConcurrentReportsIndex",
"prefix": "Offences",
"section": "offences"
}
},
"reportsByKindIndex": {
"name": "ReportsByKindIndex",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "Kind",
"value": "Bytes",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" 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."
],
"storage": {
"method": "ReportsByKindIndex",
"prefix": "Offences",
"section": "offences"
}
}
},
"randomnessCollectiveFlip": {
"randomMaterial": {
"name": "RandomMaterial",
"modifier": "default",
"type": {
"Plain": "Vec<Hash>"
},
"fallback": "0x00",
"documentation": [
" 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."
],
"storage": {
"method": "RandomMaterial",
"prefix": "RandomnessCollectiveFlip",
"section": "randomnessCollectiveFlip"
}
}
},
"identity": {
"identityOf": {
"name": "IdentityOf",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "Registration",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Information that is pertinent to identify the entity behind an account."
],
"storage": {
"method": "IdentityOf",
"prefix": "Sudo",
"section": "identity"
}
},
"superOf": {
"name": "SuperOf",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "(AccountId,Data)",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" The super-identity of an alternative \"sub\" identity together with its name, within that",
" context. If the account is not some other account's sub-identity, then just `None`."
],
"storage": {
"method": "SuperOf",
"prefix": "Sudo",
"section": "identity"
}
},
"subsOf": {
"name": "SubsOf",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "(BalanceOf,Vec<AccountId>)",
"kind": "map"
}
},
"fallback": "0x0000000000000000000000000000000000",
"documentation": [
" Alternative \"sub\" identities of this account.",
"",
" The first item is the deposit, the second is a vector of the accounts."
],
"storage": {
"method": "SubsOf",
"prefix": "Sudo",
"section": "identity"
}
},
"registrars": {
"name": "Registrars",
"modifier": "default",
"type": {
"Plain": "Vec<Option<RegistrarInfo>>"
},
"fallback": "0x00",
"documentation": [
" 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."
],
"storage": {
"method": "Registrars",
"prefix": "Sudo",
"section": "identity"
}
}
},
"society": {
"founder": {
"name": "Founder",
"modifier": "optional",
"type": {
"Plain": "AccountId"
},
"fallback": "0x00",
"documentation": [
" The first member."
],
"storage": {
"method": "Founder",
"prefix": "Society",
"section": "society"
}
},
"rules": {
"name": "Rules",
"modifier": "optional",
"type": {
"Plain": "Hash"
},
"fallback": "0x00",
"documentation": [
" A hash of the rules of this society concerning membership. Can only be set once and",
" only by the founder."
],
"storage": {
"method": "Rules",
"prefix": "Society",
"section": "society"
}
},
"candidates": {
"name": "Candidates",
"modifier": "default",
"type": {
"Plain": "Vec<Bid>"
},
"fallback": "0x00",
"documentation": [
" The current set of candidates; bidders that are attempting to become members."
],
"storage": {
"method": "Candidates",
"prefix": "Society",
"section": "society"
}
},
"suspendedCandidates": {
"name": "SuspendedCandidates",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "(BalanceOf,BidKind)",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" The set of suspended candidates."
],
"storage": {
"method": "SuspendedCandidates",
"prefix": "Society",
"section": "society"
}
},
"pot": {
"name": "Pot",
"modifier": "default",
"type": {
"Plain": "BalanceOf"
},
"fallback": "0x00000000000000000000000000000000",
"documentation": [
" Amount of our account balance that is specifically for the next round's bid(s)."
],
"storage": {
"method": "Pot",
"prefix": "Society",
"section": "society"
}
},
"head": {
"name": "Head",
"modifier": "optional",
"type": {
"Plain": "AccountId"
},
"fallback": "0x00",
"documentation": [
" The most primary from the most recently approved members."
],
"storage": {
"method": "Head",
"prefix": "Society",
"section": "society"
}
},
"members": {
"name": "Members",
"modifier": "default",
"type": {
"Plain": "Vec<AccountId>"
},
"fallback": "0x00",
"documentation": [
" The current set of members, ordered."
],
"storage": {
"method": "Members",
"prefix": "Society",
"section": "society"
}
},
"suspendedMembers": {
"name": "SuspendedMembers",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "bool",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" The set of suspended members."
],
"storage": {
"method": "SuspendedMembers",
"prefix": "Society",
"section": "society"
}
},
"bids": {
"name": "Bids",
"modifier": "default",
"type": {
"Plain": "Vec<Bid>"
},
"fallback": "0x00",
"documentation": [
" The current bids, stored ordered by the value of the bid."
],
"storage": {
"method": "Bids",
"prefix": "Society",
"section": "society"
}
},
"vouching": {
"name": "Vouching",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "VouchingStatus",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Members currently vouching or banned from vouching again"
],
"storage": {
"method": "Vouching",
"prefix": "Society",
"section": "society"
}
},
"payouts": {
"name": "Payouts",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "Vec<(BlockNumber,BalanceOf)>",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Pending payouts; ordered by block number, with the amount that should be paid out."
],
"storage": {
"method": "Payouts",
"prefix": "Society",
"section": "society"
}
},
"strikes": {
"name": "Strikes",
"modifier": "default",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "StrikeCount",
"kind": "map"
}
},
"fallback": "0x00000000",
"documentation": [
" The ongoing number of losing votes cast by the member."
],
"storage": {
"method": "Strikes",
"prefix": "Society",
"section": "society"
}
},
"votes": {
"name": "Votes",
"modifier": "optional",
"type": {
"DoubleMap": {
"hasher": "twox64Concat",
"key1": "AccountId",
"key2": "AccountId",
"value": "Vote",
"key2Hasher": "twox64Concat"
}
},
"fallback": "0x00",
"documentation": [
" Double map from Candidate -> Voter -> (Maybe) Vote."
],
"storage": {
"method": "Votes",
"prefix": "Society",
"section": "society"
}
},
"defender": {
"name": "Defender",
"modifier": "optional",
"type": {
"Plain": "AccountId"
},
"fallback": "0x00",
"documentation": [
" The defending member currently being challenged."
],
"storage": {
"method": "Defender",
"prefix": "Society",
"section": "society"
}
},
"defenderVotes": {
"name": "DefenderVotes",
"modifier": "optional",
"type": {
"Map": {
"hasher": "twox64Concat",
"key": "AccountId",
"value": "Vote",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" Votes for the defender."
],
"storage": {
"method": "DefenderVotes",
"prefix": "Society",
"section": "society"
}
},
"maxMembers": {
"name": "MaxMembers",
"modifier": "default",
"type": {
"Plain": "u32"
},
"fallback": "0x00000000",
"documentation": [
" The max number of members for the society at one time."
],
"storage": {
"method": "MaxMembers",
"prefix": "Society",
"section": "society"
}
}
},
"recovery": {
"recoverable": {
"name": "Recoverable",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "RecoveryConfig",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" The set of recoverable accounts and their recovery configuration."
],
"storage": {
"method": "Recoverable",
"prefix": "Recovery",
"section": "recovery"
}
},
"activeRecoveries": {
"name": "ActiveRecoveries",
"modifier": "optional",
"type": {
"DoubleMap": {
"hasher": "twox64Concat",
"key1": "AccountId",
"key2": "AccountId",
"value": "ActiveRecovery",
"key2Hasher": "twox64Concat"
}
},
"fallback": "0x00",
"documentation": [
" Active recovery attempts.",
"",
" First account is the account to be recovered, and the second account",
" is the user trying to recover the account."
],
"storage": {
"method": "ActiveRecoveries",
"prefix": "Recovery",
"section": "recovery"
}
},
"recovered": {
"name": "Recovered",
"modifier": "optional",
"type": {
"Map": {
"hasher": "blake2256",
"key": "AccountId",
"value": "AccountId",
"kind": "map"
}
},
"fallback": "0x00",
"documentation": [
" The final list of recovered accounts.",
"",
" Map from the recovered account to the user who can access it."
],
"storage": {
"method": "Recovered",
"prefix": "Recovery",
"section": "recovery"
}
}
}
},
"tx": {
"system": {
"fillBlock": {
"name": "fill_block",
"args": [],
"documentation": [
" A big dispatch that will disallow any other transaction to be included."
]
},
"remark": {
"name": "remark",
"args": [
{
"name": "_remark",
"type": "Bytes"
}
],
"documentation": [
" Make some on-chain remark."
]
},
"setHeapPages": {
"name": "set_heap_pages",
"args": [
{
"name": "pages",
"type": "u64"
}
],
"documentation": [
" Set the number of pages in the WebAssembly environment's heap."
]
},
"setCode": {
"name": "set_code",
"args": [
{
"name": "code",
"type": "Bytes"
}
],
"documentation": [
" Set the new runtime code."
]
},
"setCodeWithoutChecks": {
"name": "set_code_without_checks",
"args": [
{
"name": "code",
"type": "Bytes"
}
],
"documentation": [
" Set the new runtime code without doing any checks of the given `code`."
]
},
"setChangesTrieConfig": {
"name": "set_changes_trie_config",
"args": [
{
"name": "changes_trie_config",
"type": "Option<ChangesTrieConfiguration>"
}
],
"documentation": [
" Set the new changes trie configuration."
]
},
"setStorage": {
"name": "set_storage",
"args": [
{
"name": "items",
"type": "Vec<KeyValue>"
}
],
"documentation": [
" Set some items of storage."
]
},
"killStorage": {
"name": "kill_storage",
"args": [
{
"name": "keys",
"type": "Vec<Key>"
}
],
"documentation": [
" Kill some items from storage."
]
},
"killPrefix": {
"name": "kill_prefix",
"args": [
{
"name": "prefix",
"type": "Key"
}
],
"documentation": [
" Kill all storage items with a key that starts with the given prefix."
]
}
},
"utility": {
"batch": {
"name": "batch",
"args": [
{
"name": "calls",
"type": "Vec<Call>"
}
],
"documentation": [
" Send a batch of dispatch calls.",
"",
" This will execute until the first one fails and then stop.",
"",
" May be called from any origin.",
"",
" - `calls`: The calls to be dispatched from the same origin.",
"",
" # <weight>",
" - The sum of the weights of the `calls`.",
" - One event.",
" # </weight>",
"",
" This will return `Ok` in all circumstances. To determine the success of the batch, an",
" event is deposited. If a call failed and the batch was interrupted, then the",
" `BatchInterrupted` event is deposited, along with the number of successful calls made",
" and the error of the failed call. If all were successful, then the `BatchCompleted`",
" event is deposited."
]
},
"asSub": {
"name": "as_sub",
"args": [
{
"name": "index",
"type": "u16"
},
{
"name": "call",
"type": "Call"
}
],
"documentation": [
" Send a call through an indexed pseudonym of the sender.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" # <weight>",
" - The weight of the `call`.",
" # </weight>"
]
},
"asMulti": {
"name": "as_multi",
"args": [
{
"name": "threshold",
"type": "u16"
},
{
"name": "other_signatories",
"type": "Vec<AccountId>"
},
{
"name": "maybe_timepoint",
"type": "Option<Timepoint>"
},
{
"name": "call",
"type": "Call"
}
],
"documentation": [
" 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.",
"",
" Payment: `MultisigDepositBase` will be reserved if this is the first approval, plus",
" `threshold` times `MultisigDepositFactor`. It is returned once this dispatch happens or",
" is cancelled.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" - `threshold`: The total number of approvals for this dispatch before it is executed.",
" - `other_signatories`: The accounts (other than the sender) who can approve this",
" dispatch. May not be empty.",
" - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is",
" 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`. Otherwise",
" 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>",
" - `O(S + Z + Call)`.",
" - Up to one balance-reserve or unreserve operation.",
" - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
" 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.",
" - One event.",
" - The weight of the `call`.",
" - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
" deposit taken for its lifetime of",
" `MultisigDepositBase + threshold * MultisigDepositFactor`.",
" # </weight>"
]
},
"approveAsMulti": {
"name": "approve_as_multi",
"args": [
{
"name": "threshold",
"type": "u16"
},
{
"name": "other_signatories",
"type": "Vec<AccountId>"
},
{
"name": "maybe_timepoint",
"type": "Option<Timepoint>"
},
{
"name": "call_hash",
"type": "[u8;32]"
}
],
"documentation": [
" Register approval for a dispatch to be made from a deterministic composite account if",
" approved by a total of `threshold - 1` of `other_signatories`.",
"",
" Payment: `MultisigDepositBase` will be reserved if this is the first approval, plus",
" `threshold` times `MultisigDepositFactor`. It is returned once this dispatch happens or",
" is cancelled.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" - `threshold`: The total number of approvals for this dispatch before it is executed.",
" - `other_signatories`: The accounts (other than the sender) who can approve this",
" dispatch. May not be empty.",
" - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is",
" 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.",
"",
" 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.",
" - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
" 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.",
" - One event.",
" - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
" deposit taken for its lifetime of",
" `MultisigDepositBase + threshold * MultisigDepositFactor`.",
" # </weight>"
]
},
"cancelAsMulti": {
"name": "cancel_as_multi",
"args": [
{
"name": "threshold",
"type": "u16"
},
{
"name": "other_signatories",
"type": "Vec<AccountId>"
},
{
"name": "timepoint",
"type": "Timepoint"
},
{
"name": "call_hash",
"type": "[u8;32]"
}
],
"documentation": [
" 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_.",
"",
" - `threshold`: The total number of approvals for this dispatch before it is executed.",
" - `other_signatories`: The accounts (other than the sender) who can approve this",
" dispatch. May not be empty.",
" - `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.",
" - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
" signatories. `S` is capped by `MaxSignatories`, with weight being proportional.",
" - One encode & hash, both of complexity `O(S)`.",
" - One event.",
" - I/O: 1 read `O(S)`, one remove.",
" - Storage: removes one item.",
" # </weight>"
]
}
},
"babe": {},
"timestamp": {
"set": {
"name": "set",
"args": [
{
"name": "now",
"type": "Compact<Moment>"
}
],
"documentation": [
" 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`."
]
}
},
"authorship": {
"setUncles": {
"name": "set_uncles",
"args": [
{
"name": "new_uncles",
"type": "Vec<Header>"
}
],
"documentation": [
" Provide a set of uncles."
]
}
},
"indices": {},
"balances": {
"transfer": {
"name": "transfer",
"args": [
{
"name": "dest",
"type": "Address"
},
{
"name": "value",
"type": "Compact<Balance>"
}
],
"documentation": [
" 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>"
]
},
"setBalance": {
"name": "set_balance",
"args": [
{
"name": "who",
"type": "Address"
},
{
"name": "new_free",
"type": "Compact<Balance>"
},
{
"name": "new_reserved",
"type": "Compact<Balance>"
}
],
"documentation": [
" 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.",
" # </weight>"
]
},
"forceTransfer": {
"name": "force_transfer",
"args": [
{
"name": "source",
"type": "Address"
},
{
"name": "dest",
"type": "Address"
},
{
"name": "value",
"type": "Compact<Balance>"
}
],
"documentation": [
" Exactly as `transfer`, except the origin must be root and the source account may be",
" specified."
]
},
"transferKeepAlive": {
"name": "transfer_keep_alive",
"args": [
{
"name": "dest",
"type": "Address"
},
{
"name": "value",
"type": "Compact<Balance>"
}
],
"documentation": [
" 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"
]
}
},
"staking": {
"bond": {
"name": "bond",
"args": [
{
"name": "controller",
"type": "Address"
},
{
"name": "value",
"type": "Compact<BalanceOf>"
},
{
"name": "payee",
"type": "RewardDestination"
}
],
"documentation": [
" 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>"
]
},
"bondExtra": {
"name": "bond_extra",
"args": [
{
"name": "max_additional",
"type": "Compact<BalanceOf>"
}
],
"documentation": [
" 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>"
]
},
"unbond": {
"name": "unbond",
"args": [
{
"name": "value",
"type": "Compact<BalanceOf>"
}
],
"documentation": [
" 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>"
]
},
"withdrawUnbonded": {
"name": "withdraw_unbonded",
"args": [],
"documentation": [
" 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>"
]
},
"validate": {
"name": "validate",
"args": [
{
"name": "prefs",
"type": "ValidatorPrefs"
}
],
"documentation": [
" 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>"
]
},
"nominate": {
"name": "nominate",
"args": [
{
"name": "targets",
"type": "Vec<Address>"
}
],
"documentation": [
" 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>"
]
},
"chill": {
"name": "chill",
"args": [],
"documentation": [
" 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>"
]
},
"setPayee": {
"name": "set_payee",
"args": [
{
"name": "payee",
"type": "RewardDestination"
}
],
"documentation": [
" (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>"
]
},
"setController": {
"name": "set_controller",
"args": [
{
"name": "controller",
"type": "Address"
}
],
"documentation": [
" (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>"
]
},
"setValidatorCount": {
"name": "set_validator_count",
"args": [
{
"name": "new",
"type": "Compact<u32>"
}
],
"documentation": [
" The ideal number of validators."
]
},
"forceNoEras": {
"name": "force_no_eras",
"args": [],
"documentation": [
" Force there to be no new eras indefinitely.",
"",
" # <weight>",
" - No arguments.",
" # </weight>"
]
},
"forceNewEra": {
"name": "force_new_era",
"args": [],
"documentation": [
" 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>"
]
},
"setInvulnerables": {
"name": "set_invulnerables",
"args": [
{
"name": "validators",
"type": "Vec<AccountId>"
}
],
"documentation": [
" Set the validators who cannot be slashed (if any)."
]
},
"forceUnstake": {
"name": "force_unstake",
"args": [
{
"name": "stash",
"type": "AccountId"
}
],
"documentation": [
" Force a current staker to become completely unstaked, immediately."
]
},
"forceNewEraAlways": {
"name": "force_new_era_always",
"args": [],
"documentation": [
" Force there to be a new era at the end of sessions indefinitely.",
"",
" # <weight>",
" - One storage write",
" # </weight>"
]
},
"cancelDeferredSlash": {
"name": "cancel_deferred_slash",
"args": [
{
"name": "era",
"type": "EraIndex"
},
{
"name": "slash_indices",
"type": "Vec<u32>"
}
],
"documentation": [
" 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>"
]
},
"rebond": {
"name": "rebond",
"args": [
{
"name": "value",
"type": "Compact<BalanceOf>"
}
],
"documentation": [
" Rebond a portion of the stash scheduled to be unlocked.",
"",
" # <weight>",
" - Time complexity: O(1). Bounded by `MAX_UNLOCKING_CHUNKS`.",
" - Storage changes: Can't increase storage, only decrease it.",
" # </weight>"
]
}
},
"session": {
"setKeys": {
"name": "set_keys",
"args": [
{
"name": "keys",
"type": "Keys"
},
{
"name": "proof",
"type": "Bytes"
}
],
"documentation": [
" 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>"
]
}
},
"democracy": {
"propose": {
"name": "propose",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
},
{
"name": "value",
"type": "Compact<BalanceOf>"
}
],
"documentation": [
" Propose a sensitive action to be taken.",
"",
" # <weight>",
" - O(1).",
" - Two DB changes, one DB entry.",
" # </weight>"
]
},
"second": {
"name": "second",
"args": [
{
"name": "proposal",
"type": "Compact<PropIndex>"
}
],
"documentation": [
" Propose a sensitive action to be taken.",
"",
" # <weight>",
" - O(1).",
" - One DB entry.",
" # </weight>"
]
},
"vote": {
"name": "vote",
"args": [
{
"name": "ref_index",
"type": "Compact<ReferendumIndex>"
},
{
"name": "vote",
"type": "Vote"
}
],
"documentation": [
" 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>"
]
},
"proxyVote": {
"name": "proxy_vote",
"args": [
{
"name": "ref_index",
"type": "Compact<ReferendumIndex>"
},
{
"name": "vote",
"type": "Vote"
}
],
"documentation": [
" 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>"
]
},
"emergencyCancel": {
"name": "emergency_cancel",
"args": [
{
"name": "ref_index",
"type": "ReferendumIndex"
}
],
"documentation": [
" Schedule an emergency cancellation of a referendum. Cannot happen twice to the same",
" referendum."
]
},
"externalPropose": {
"name": "external_propose",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
}
],
"documentation": [
" Schedule a referendum to be tabled once it is legal to schedule an external",
" referendum."
]
},
"externalProposeMajority": {
"name": "external_propose_majority",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
}
],
"documentation": [
" 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."
]
},
"externalProposeDefault": {
"name": "external_propose_default",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
}
],
"documentation": [
" 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."
]
},
"fastTrack": {
"name": "fast_track",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
},
{
"name": "voting_period",
"type": "BlockNumber"
},
{
"name": "delay",
"type": "BlockNumber"
}
],
"documentation": [
" 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."
]
},
"vetoExternal": {
"name": "veto_external",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
}
],
"documentation": [
" Veto and blacklist the external proposal hash."
]
},
"cancelReferendum": {
"name": "cancel_referendum",
"args": [
{
"name": "ref_index",
"type": "Compact<ReferendumIndex>"
}
],
"documentation": [
" Remove a referendum."
]
},
"cancelQueued": {
"name": "cancel_queued",
"args": [
{
"name": "which",
"type": "ReferendumIndex"
}
],
"documentation": [
" Cancel a proposal queued for enactment."
]
},
"setProxy": {
"name": "set_proxy",
"args": [
{
"name": "proxy",
"type": "AccountId"
}
],
"documentation": [
" Specify a proxy. Called by the stash.",
"",
" # <weight>",
" - One extra DB entry.",
" # </weight>"
]
},
"resignProxy": {
"name": "resign_proxy",
"args": [],
"documentation": [
" Clear the proxy. Called by the proxy.",
"",
" # <weight>",
" - One DB clear.",
" # </weight>"
]
},
"removeProxy": {
"name": "remove_proxy",
"args": [
{
"name": "proxy",
"type": "AccountId"
}
],
"documentation": [
" Clear the proxy. Called by the stash.",
"",
" # <weight>",
" - One DB clear.",
" # </weight>"
]
},
"delegate": {
"name": "delegate",
"args": [
{
"name": "to",
"type": "AccountId"
},
{
"name": "conviction",
"type": "Conviction"
}
],
"documentation": [
" Delegate vote.",
"",
" # <weight>",
" - One extra DB entry.",
" # </weight>"
]
},
"undelegate": {
"name": "undelegate",
"args": [],
"documentation": [
" Undelegate vote.",
"",
" # <weight>",
" - O(1).",
" # </weight>"
]
},
"clearPublicProposals": {
"name": "clear_public_proposals",
"args": [],
"documentation": [
" Veto and blacklist the proposal hash. Must be from Root origin."
]
},
"notePreimage": {
"name": "note_preimage",
"args": [
{
"name": "encoded_proposal",
"type": "Bytes"
}
],
"documentation": [
" 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."
]
},
"noteImminentPreimage": {
"name": "note_imminent_preimage",
"args": [
{
"name": "encoded_proposal",
"type": "Bytes"
}
],
"documentation": [
" Register the preimage for an upcoming proposal. This requires the proposal to be",
" in the dispatch queue. No deposit is needed."
]
},
"reapPreimage": {
"name": "reap_preimage",
"args": [
{
"name": "proposal_hash",
"type": "Hash"
}
],
"documentation": [
" Remove an expired proposal preimage and collect the deposit.",
"",
" 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."
]
}
},
"council": {
"setMembers": {
"name": "set_members",
"args": [
{
"name": "new_members",
"type": "Vec<AccountId>"
}
],
"documentation": [
" Set the collective's membership manually to `new_members`. Be nice to the chain and",
" provide it pre-sorted.",
"",
" Requires root origin."
]
},
"execute": {
"name": "execute",
"args": [
{
"name": "proposal",
"type": "Proposal"
}
],
"documentation": [
" Dispatch a proposal from a member using the `Member` origin.",
"",
" Origin must be a member of the collective."
]
},
"propose": {
"name": "propose",
"args": [
{
"name": "threshold",
"type": "Compact<MemberCount>"
},
{
"name": "proposal",
"type": "Proposal"
}
],
"documentation": [
" # <weight>",
" - Bounded storage reads and writes.",
" - Argument `threshold` has bearing on weight.",
" # </weight>"
]
},
"vote": {
"name": "vote",
"args": [
{
"name": "proposal",
"type": "Hash"
},
{
"name": "index",
"type": "Compact<ProposalIndex>"
},
{
"name": "approve",
"type": "bool"
}
],
"documentation": [
" # <weight>",
" - Bounded storage read and writes.",
" - Will be slightly heavier if the proposal is approved / disapproved after the vote.",
" # </weight>"
]
}
},
"technicalCommittee": {
"setMembers": {
"name": "set_members",
"args": [
{
"name": "new_members",
"type": "Vec<AccountId>"
}
],
"documentation": [
" Set the collective's membership manually to `new_members`. Be nice to the chain and",
" provide it pre-sorted.",
"",
" Requires root origin."
]
},
"execute": {
"name": "execute",
"args": [
{
"name": "proposal",
"type": "Proposal"
}
],
"documentation": [
" Dispatch a proposal from a member using the `Member` origin.",
"",
" Origin must be a member of the collective."
]
},
"propose": {
"name": "propose",
"args": [
{
"name": "threshold",
"type": "Compact<MemberCount>"
},
{
"name": "proposal",
"type": "Proposal"
}
],
"documentation": [
" # <weight>",
" - Bounded storage reads and writes.",
" - Argument `threshold` has bearing on weight.",
" # </weight>"
]
},
"vote": {
"name": "vote",
"args": [
{
"name": "proposal",
"type": "Hash"
},
{
"name": "index",
"type": "Compact<ProposalIndex>"
},
{
"name": "approve",
"type": "bool"
}
],
"documentation": [
" # <weight>",
" - Bounded storage read and writes.",
" - Will be slightly heavier if the proposal is approved / disapproved after the vote.",
" # </weight>"
]
}
},
"elections": {
"vote": {
"name": "vote",
"args": [
{
"name": "votes",
"type": "Vec<AccountId>"
},
{
"name": "value",
"type": "Compact<BalanceOf>"
}
],
"documentation": [
" 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>"
]
},
"removeVoter": {
"name": "remove_voter",
"args": [],
"documentation": [
" Remove `origin` as a voter. This removes the lock and returns the bond.",
"",
" # <weight>",
" #### State",
" Reads: O(1)",
" Writes: O(1)",
" # </weight>"
]
},
"reportDefunctVoter": {
"name": "report_defunct_voter",
"args": [
{
"name": "target",
"type": "Address"
}
],
"documentation": [
" 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>"
]
},
"submitCandidacy": {
"name": "submit_candidacy",
"args": [],
"documentation": [
" 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>"
]
},
"renounceCandidacy": {
"name": "renounce_candidacy",
"args": [],
"documentation": [
" 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."
]
},
"removeMember": {
"name": "remove_member",
"args": [
{
"name": "who",
"type": "Address"
}
],
"documentation": [
" 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>"
]
}
},
"technicalMembership": {
"addMember": {
"name": "add_member",
"args": [
{
"name": "who",
"type": "AccountId"
}
],
"documentation": [
" Add a member `who` to the set.",
"",
" May only be called from `AddOrigin` or root."
]
},
"removeMember": {
"name": "remove_member",
"args": [
{
"name": "who",
"type": "AccountId"
}
],
"documentation": [
" Remove a member `who` from the set.",
"",
" May only be called from `RemoveOrigin` or root."
]
},
"swapMember": {
"name": "swap_member",
"args": [
{
"name": "remove",
"type": "AccountId"
},
{
"name": "add",
"type": "AccountId"
}
],
"documentation": [
" Swap out one member `remove` for another `add`.",
"",
" May only be called from `SwapOrigin` or root."
]
},
"resetMembers": {
"name": "reset_members",
"args": [
{
"name": "members",
"type": "Vec<AccountId>"
}
],
"documentation": [
" 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."
]
},
"changeKey": {
"name": "change_key",
"args": [
{
"name": "new",
"type": "AccountId"
}
],
"documentation": [
" Swap out the sending member for some other key `new`.",
"",
" May only be called from `Signed` origin of a current member."
]
}
},
"finalityTracker": {
"finalHint": {
"name": "final_hint",
"args": [
{
"name": "hint",
"type": "Compact<BlockNumber>"
}
],
"documentation": [
" Hint that the author of this block thinks the best finalized",
" block is the given number."
]
}
},
"grandpa": {
"reportMisbehavior": {
"name": "report_misbehavior",
"args": [
{
"name": "_report",
"type": "Bytes"
}
],
"documentation": [
" Report some misbehavior."
]
}
},
"treasury": {
"proposeSpend": {
"name": "propose_spend",
"args": [
{
"name": "value",
"type": "Compact<BalanceOf>"
},
{
"name": "beneficiary",
"type": "Address"
}
],
"documentation": [
" 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>"
]
},
"rejectProposal": {
"name": "reject_proposal",
"args": [
{
"name": "proposal_id",
"type": "Compact<ProposalIndex>"
}
],
"documentation": [
" Reject a proposed spend. The original deposit will be slashed.",
"",
" # <weight>",
" - O(1).",
" - Limited storage reads.",
" - One DB clear.",
" # </weight>"
]
},
"approveProposal": {
"name": "approve_proposal",
"args": [
{
"name": "proposal_id",
"type": "Compact<ProposalIndex>"
}
],
"documentation": [
" 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>"
]
},
"reportAwesome": {
"name": "report_awesome",
"args": [
{
"name": "reason",
"type": "Bytes"
},
{
"name": "who",
"type": "AccountId"
}
],
"documentation": [
" Report something `reason` that deserves a tip and claim any eventual the finder's fee.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Payment: `TipReportDepositBase` will be reserved from the origin account, as well as",
" `TipReportDepositPerByte` for each byte in `reason`.",
"",
" - `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.",
"",
" Emits `NewTip` if successful.",
"",
" # <weight>",
" - `O(R)` where `R` length of `reason`.",
" - One balance operation.",
" - One storage mutation (codec `O(R)`).",
" - One event.",
" # </weight>"
]
},
"retractTip": {
"name": "retract_tip",
"args": [
{
"name": "hash",
"type": "Hash"
}
],
"documentation": [
" Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.",
"",
" If successful, the original deposit will be unreserved.",
"",
" The dispatch origin for this call must be _Signed_ and the tip identified by `hash`",
" must have been reported by the signing account through `report_awesome` (and not",
" through `tip_new`).",
"",
" - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
" as the hash of the tuple of the original tip `reason` and the beneficiary account ID.",
"",
" Emits `TipRetracted` if successful.",
"",
" # <weight>",
" - `O(T)`",
" - One balance operation.",
" - Two storage removals (one read, codec `O(T)`).",
" - One event.",
" # </weight>"
]
},
"tipNew": {
"name": "tip_new",
"args": [
{
"name": "reason",
"type": "Bytes"
},
{
"name": "who",
"type": "AccountId"
},
{
"name": "tip_value",
"type": "BalanceOf"
}
],
"documentation": [
" Give a tip for something new; no finder's fee will be taken.",
"",
" The dispatch origin for this call must be _Signed_ and the signing account must be a",
" member of the `Tippers` set.",
"",
" - `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.",
" - `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`.",
"",
" Emits `NewTip` if successful.",
"",
" # <weight>",
" - `O(R + T)` where `R` length of `reason`, `T` is the number of tippers. `T` is",
" naturally capped as a membership set, `R` is limited through transaction-size.",
" - Two storage insertions (codecs `O(R)`, `O(T)`), one read `O(1)`.",
" - One event.",
" # </weight>"
]
},
"tip": {
"name": "tip",
"args": [
{
"name": "hash",
"type": "Hash"
},
{
"name": "tip_value",
"type": "BalanceOf"
}
],
"documentation": [
" Declare a tip value for an already-open tip.",
"",
" The dispatch origin for this call must be _Signed_ and the signing account must be a",
" member of the `Tippers` set.",
"",
" - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
" as the hash of the tuple of the hash of the original tip `reason` and the beneficiary",
" account ID.",
" - `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`.",
"",
" Emits `TipClosing` if the threshold of tippers has been reached and the countdown period",
" has started.",
"",
" # <weight>",
" - `O(T)`",
" - One storage mutation (codec `O(T)`), one storage read `O(1)`.",
" - Up to one event.",
" # </weight>"
]
},
"closeTip": {
"name": "close_tip",
"args": [
{
"name": "hash",
"type": "Hash"
}
],
"documentation": [
" 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.",
"",
" - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
" as the hash of the tuple of the original tip `reason` and the beneficiary account ID.",
"",
" # <weight>",
" - `O(T)`",
" - One storage retrieval (codec `O(T)`) and two removals.",
" - Up to three balance operations.",
" # </weight>"
]
}
},
"contracts": {
"updateSchedule": {
"name": "update_schedule",
"args": [
{
"name": "schedule",
"type": "Schedule"
}
],
"documentation": [
" Updates the schedule for metering contracts.",
"",
" The schedule must have a greater version than the stored schedule."
]
},
"putCode": {
"name": "put_code",
"args": [
{
"name": "gas_limit",
"type": "Compact<Gas>"
},
{
"name": "code",
"type": "Bytes"
}
],
"documentation": [
" Stores the given binary Wasm code into the chain's storage and returns its `codehash`.",
" You can instantiate contracts only with stored code."
]
},
"call": {
"name": "call",
"args": [
{
"name": "dest",
"type": "Address"
},
{
"name": "value",
"type": "Compact<BalanceOf>"
},
{
"name": "gas_limit",
"type": "Compact<Gas>"
},
{
"name": "data",
"type": "Bytes"
}
],
"documentation": [
" 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."
]
},
"instantiate": {
"name": "instantiate",
"args": [
{
"name": "endowment",
"type": "Compact<BalanceOf>"
},
{
"name": "gas_limit",
"type": "Compact<Gas>"
},
{
"name": "code_hash",
"type": "CodeHash"
},
{
"name": "data",
"type": "Bytes"
}
],
"documentation": [
" 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."
]
},
"claimSurcharge": {
"name": "claim_surcharge",
"args": [
{
"name": "dest",
"type": "AccountId"
},
{
"name": "aux_sender",
"type": "Option<AccountId>"
}
],
"documentation": [
" 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."
]
}
},
"sudo": {
"sudo": {
"name": "sudo",
"args": [
{
"name": "proposal",
"type": "Proposal"
}
],
"documentation": [
" 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>"
]
},
"setKey": {
"name": "set_key",
"args": [
{
"name": "new",
"type": "Address"
}
],
"documentation": [
" 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>"
]
},
"sudoAs": {
"name": "sudo_as",
"args": [
{
"name": "who",
"type": "Address"
},
{
"name": "proposal",
"type": "Proposal"
}
],
"documentation": [
" 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>"
]
}
},
"imOnline": {
"heartbeat": {
"name": "heartbeat",
"args": [
{
"name": "heartbeat",
"type": "Heartbeat"
},
{
"name": "_signature",
"type": "Signature"
}
],
"documentation": []
}
},
"authorityDiscovery": {},
"offences": {},
"randomnessCollectiveFlip": {},
"identity": {
"addRegistrar": {
"name": "add_registrar",
"args": [
{
"name": "account",
"type": "AccountId"
}
],
"documentation": [
" Add a registrar to the system.",
"",
" The dispatch origin for this call must be `RegistrarOrigin` or `Root`.",
"",
" - `account`: the account of the registrar.",
"",
" Emits `RegistrarAdded` if successful.",
"",
" # <weight>",
" - `O(R)` where `R` registrar-count (governance-bounded).",
" - One storage mutation (codec `O(R)`).",
" - One event.",
" # </weight>"
]
},
"setIdentity": {
"name": "set_identity",
"args": [
{
"name": "info",
"type": "IdentityInfo"
}
],
"documentation": [
" Set an account's identity information and reserve the appropriate deposit.",
"",
" If the account already has identity information, the deposit is taken as part payment",
" for the new deposit.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a registered",
" identity.",
"",
" - `info`: The identity information.",
"",
" Emits `IdentitySet` if successful.",
"",
" # <weight>",
" - `O(X + R)` where `X` additional-field-count (deposit-bounded).",
" - At most two balance operations.",
" - One storage mutation (codec `O(X + R)`).",
" - One event.",
" # </weight>"
]
},
"setSubs": {
"name": "set_subs",
"args": [
{
"name": "subs",
"type": "Vec<(AccountId,Data)>"
}
],
"documentation": [
" Set the sub-accounts of the sender.",
"",
" Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned",
" and an amount `SubAccountDeposit` will be reserved for each item in `subs`.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a registered",
" identity.",
"",
" - `subs`: The identity's sub-accounts.",
"",
" # <weight>",
" - `O(S)` where `S` subs-count (hard- and deposit-bounded).",
" - At most two balance operations.",
" - At most O(2 * S + 1) storage mutations; codec complexity `O(1 * S + S * 1)`);",
" one storage-exists.",
" # </weight>"
]
},
"clearIdentity": {
"name": "clear_identity",
"args": [],
"documentation": [
" Clear an account's identity info and all sub-account and return all deposits.",
"",
" Payment: All reserved balances on the account are returned.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a registered",
" identity.",
"",
" Emits `IdentityCleared` if successful.",
"",
" # <weight>",
" - `O(R + S + X)`.",
" - One balance-reserve operation.",
" - `S + 2` storage deletions.",
" - One event.",
" # </weight>"
]
},
"requestJudgement": {
"name": "request_judgement",
"args": [
{
"name": "reg_index",
"type": "Compact<RegistrarIndex>"
},
{
"name": "max_fee",
"type": "Compact<BalanceOf>"
}
],
"documentation": [
" Request a judgement from a registrar.",
"",
" Payment: At most `max_fee` will be reserved for payment to the registrar if judgement",
" given.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a",
" registered identity.",
"",
" - `reg_index`: The index of the registrar whose judgement is requested.",
" - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:",
"",
" ```nocompile",
" Self::registrars(reg_index).uwnrap().fee",
" ```",
"",
" Emits `JudgementRequested` if successful.",
"",
" # <weight>",
" - `O(R + X)`.",
" - One balance-reserve operation.",
" - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.",
" - One event.",
" # </weight>"
]
},
"cancelRequest": {
"name": "cancel_request",
"args": [
{
"name": "reg_index",
"type": "RegistrarIndex"
}
],
"documentation": [
" Cancel a previous request.",
"",
" Payment: A previously reserved deposit is returned on success.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a",
" registered identity.",
"",
" - `reg_index`: The index of the registrar whose judgement is no longer requested.",
"",
" Emits `JudgementUnrequested` if successful.",
"",
" # <weight>",
" - `O(R + X)`.",
" - One balance-reserve operation.",
" - One storage mutation `O(R + X)`.",
" - One event.",
" # </weight>"
]
},
"setFee": {
"name": "set_fee",
"args": [
{
"name": "index",
"type": "Compact<RegistrarIndex>"
},
{
"name": "fee",
"type": "Compact<BalanceOf>"
}
],
"documentation": [
" Set the fee required for a judgement to be requested from a registrar.",
"",
" 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.",
" - `fee`: the new fee.",
"",
" # <weight>",
" - `O(R)`.",
" - One storage mutation `O(R)`.",
" # </weight>"
]
},
"setAccountId": {
"name": "set_account_id",
"args": [
{
"name": "index",
"type": "Compact<RegistrarIndex>"
},
{
"name": "new",
"type": "AccountId"
}
],
"documentation": [
" Change the account associated with a registrar.",
"",
" 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.",
" - `new`: the new account ID.",
"",
" # <weight>",
" - `O(R)`.",
" - One storage mutation `O(R)`.",
" # </weight>"
]
},
"setFields": {
"name": "set_fields",
"args": [
{
"name": "index",
"type": "Compact<RegistrarIndex>"
},
{
"name": "fields",
"type": "IdentityFields"
}
],
"documentation": [
" Set the field information for a registrar.",
"",
" 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)`.",
" # </weight>"
]
},
"provideJudgement": {
"name": "provide_judgement",
"args": [
{
"name": "reg_index",
"type": "Compact<RegistrarIndex>"
},
{
"name": "target",
"type": "Address"
},
{
"name": "judgement",
"type": "Judgement"
}
],
"documentation": [
" Provide a judgement for an account's identity.",
"",
" 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.",
" - `target`: the account whose identity the judgement is upon. This must be an account",
" with a registered identity.",
" - `judgement`: the judgement of the registrar of index `reg_index` about `target`.",
"",
" Emits `JudgementGiven` if successful.",
"",
" # <weight>",
" - `O(R + X)`.",
" - One balance-transfer operation.",
" - Up to one account-lookup operation.",
" - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.",
" - One event.",
" # </weight>"
]
},
"killIdentity": {
"name": "kill_identity",
"args": [
{
"name": "target",
"type": "Address"
}
],
"documentation": [
" Remove an account's identity and sub-account information and slash the deposits.",
"",
" Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by",
" `Slash`. Verification request deposits are not returned; they should be cancelled",
" manually using `cancel_request`.",
"",
" The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.",
"",
" - `target`: the account whose identity the judgement is upon. This must be an account",
" with a registered identity.",
"",
" Emits `IdentityKilled` if successful.",
"",
" # <weight>",
" - `O(R + S + X)`.",
" - One balance-reserve operation.",
" - `S + 2` storage mutations.",
" - One event.",
" # </weight>"
]
}
},
"society": {
"bid": {
"name": "bid",
"args": [
{
"name": "value",
"type": "BalanceOf"
}
],
"documentation": [
" A user outside of the society can make a bid for entry.",
"",
" Payment: `CandidateDeposit` will be reserved for making a bid. It is returned",
" when the bid becomes a member, or if the bid calls `unbid`.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `value`: A one time payment the bid would like to receive when joining the society.",
"",
" # <weight>",
" Key: B (len of bids), C (len of candidates), M (len of members), X (balance reserve)",
" - Storage Reads:",
" \t- One storage read to check for suspended candidate. O(1)",
" \t- One storage read to check for suspended member. O(1)",
" \t- One storage read to retrieve all current bids. O(B)",
" \t- One storage read to retrieve all current candidates. O(C)",
" \t- One storage read to retrieve all members. O(M)",
" - Storage Writes:",
" \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)",
" \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)",
" - Notable Computation:",
" \t- O(B + C + log M) search to check user is not already a part of society.",
" \t- O(log B) search to insert the new bid sorted.",
" - External Module Operations:",
" \t- One balance reserve operation. O(X)",
" \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.",
" - Events:",
" \t- One event for new bid.",
" \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.",
"",
" Total Complexity: O(M + B + C + logM + logB + X)",
" # </weight>"
]
},
"unbid": {
"name": "unbid",
"args": [
{
"name": "pos",
"type": "u32"
}
],
"documentation": [
" A bidder can remove their bid for entry into society.",
" By doing so, they will have their candidate deposit returned or",
" they will unvouch their voucher.",
"",
" Payment: The bid deposit is unreserved if the user made a bid.",
"",
" The dispatch origin for this call must be _Signed_ and a bidder.",
"",
" Parameters:",
" - `pos`: Position in the `Bids` vector of the bid who wants to unbid.",
"",
" # <weight>",
" Key: B (len of bids), X (balance unreserve)",
" - One storage read and write to retrieve and update the bids. O(B)",
" - Either one unreserve balance action O(X) or one vouching storage removal. O(1)",
" - One event.",
"",
" Total Complexity: O(B + X)",
" # </weight>"
]
},
"vouch": {
"name": "vouch",
"args": [
{
"name": "who",
"type": "AccountId"
},
{
"name": "value",
"type": "BalanceOf"
},
{
"name": "tip",
"type": "BalanceOf"
}
],
"documentation": [
" As a member, vouch for someone to join society by placing a bid on their behalf.",
"",
" There is no deposit required to vouch for a new bid, but a member can only vouch for",
" one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by",
" the suspension judgement origin, the member will be banned from vouching again.",
"",
" As a vouching member, you can claim a tip if the candidate is accepted. This tip will",
" be paid as a portion of the reward the member will receive for joining the society.",
"",
" The dispatch origin for this call must be _Signed_ and a member.",
"",
" Parameters:",
" - `who`: The user who you would like to vouch for.",
" - `value`: The total reward to be paid between you and the candidate if they become",
" a member in the society.",
" - `tip`: Your cut of the total `value` payout when the candidate is inducted into",
" the society. Tips larger than `value` will be saturated upon payout.",
"",
" # <weight>",
" Key: B (len of bids), C (len of candidates), M (len of members)",
" - Storage Reads:",
" \t- One storage read to retrieve all members. O(M)",
" \t- One storage read to check member is not already vouching. O(1)",
" \t- One storage read to check for suspended candidate. O(1)",
" \t- One storage read to check for suspended member. O(1)",
" \t- One storage read to retrieve all current bids. O(B)",
" \t- One storage read to retrieve all current candidates. O(C)",
" - Storage Writes:",
" \t- One storage write to insert vouching status to the member. O(1)",
" \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)",
" \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)",
" - Notable Computation:",
" \t- O(log M) search to check sender is a member.",
" \t- O(B + C + log M) search to check user is not already a part of society.",
" \t- O(log B) search to insert the new bid sorted.",
" - External Module Operations:",
" \t- One balance reserve operation. O(X)",
" \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.",
" - Events:",
" \t- One event for vouch.",
" \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.",
"",
" Total Complexity: O(M + B + C + logM + logB + X)",
" # </weight>"
]
},
"unvouch": {
"name": "unvouch",
"args": [
{
"name": "pos",
"type": "u32"
}
],
"documentation": [
" As a vouching member, unvouch a bid. This only works while vouched user is",
" only a bidder (and not a candidate).",
"",
" The dispatch origin for this call must be _Signed_ and a vouching member.",
"",
" Parameters:",
" - `pos`: Position in the `Bids` vector of the bid who should be unvouched.",
"",
" # <weight>",
" Key: B (len of bids)",
" - One storage read O(1) to check the signer is a vouching member.",
" - One storage mutate to retrieve and update the bids. O(B)",
" - One vouching storage removal. O(1)",
" - One event.",
"",
" Total Complexity: O(B)",
" # </weight>"
]
},
"vote": {
"name": "vote",
"args": [
{
"name": "candidate",
"type": "Address"
},
{
"name": "approve",
"type": "bool"
}
],
"documentation": [
" As a member, vote on a candidate.",
"",
" The dispatch origin for this call must be _Signed_ and a member.",
"",
" Parameters:",
" - `candidate`: The candidate that the member would like to bid on.",
" - `approve`: A boolean which says if the candidate should be",
" approved (`true`) or rejected (`false`).",
"",
" # <weight>",
" Key: C (len of candidates), M (len of members)",
" - One storage read O(M) and O(log M) search to check user is a member.",
" - One account lookup.",
" - One storage read O(C) and O(C) search to check that user is a candidate.",
" - One storage write to add vote to votes. O(1)",
" - One event.",
"",
" Total Complexity: O(M + logM + C)",
" # </weight>"
]
},
"defenderVote": {
"name": "defender_vote",
"args": [
{
"name": "approve",
"type": "bool"
}
],
"documentation": [
" As a member, vote on the defender.",
"",
" The dispatch origin for this call must be _Signed_ and a member.",
"",
" Parameters:",
" - `approve`: A boolean which says if the candidate should be",
" approved (`true`) or rejected (`false`).",
"",
" # <weight>",
" - Key: M (len of members)",
" - One storage read O(M) and O(log M) search to check user is a member.",
" - One storage write to add vote to votes. O(1)",
" - One event.",
"",
" Total Complexity: O(M + logM)",
" # </weight>"
]
},
"payout": {
"name": "payout",
"args": [],
"documentation": [
" Transfer the first matured payout for the sender and remove it from the records.",
"",
" NOTE: This extrinsic needs to be called multiple times to claim multiple matured payouts.",
"",
" Payment: The member will receive a payment equal to their first matured",
" payout to their free balance.",
"",
" The dispatch origin for this call must be _Signed_ and a member with",
" payouts remaining.",
"",
" # <weight>",
" Key: M (len of members), P (number of payouts for a particular member)",
" - One storage read O(M) and O(log M) search to check signer is a member.",
" - One storage read O(P) to get all payouts for a member.",
" - One storage read O(1) to get the current block number.",
" - One currency transfer call. O(X)",
" - One storage write or removal to update the member's payouts. O(P)",
"",
" Total Complexity: O(M + logM + P + X)",
" # </weight>"
]
},
"found": {
"name": "found",
"args": [
{
"name": "founder",
"type": "AccountId"
},
{
"name": "max_members",
"type": "u32"
},
{
"name": "rules",
"type": "Bytes"
}
],
"documentation": [
" Found the society.",
"",
" This is done as a discrete action in order to allow for the",
" module to be included into a running chain and can only be done once.",
"",
" The dispatch origin for this call must be from the _FounderSetOrigin_.",
"",
" Parameters:",
" - `founder` - The first member and head of the newly founded society.",
" - `max_members` - The initial max number of members for the society.",
" - `rules` - The rules of this society concerning membership.",
"",
" # <weight>",
" - Two storage mutates to set `Head` and `Founder`. O(1)",
" - One storage write to add the first member to society. O(1)",
" - One event.",
"",
" Total Complexity: O(1)",
" # </weight>"
]
},
"unfound": {
"name": "unfound",
"args": [],
"documentation": [
" Anull the founding of the society.",
"",
" The dispatch origin for this call must be Signed, and the signing account must be both",
" the `Founder` and the `Head`. This implies that it may only be done when there is one",
" member.",
"",
" # <weight>",
" - Two storage reads O(1).",
" - Four storage removals O(1).",
" - One event.",
"",
" Total Complexity: O(1)",
" # </weight>"
]
},
"judgeSuspendedMember": {
"name": "judge_suspended_member",
"args": [
{
"name": "who",
"type": "AccountId"
},
{
"name": "forgive",
"type": "bool"
}
],
"documentation": [
" Allow suspension judgement origin to make judgement on a suspended member.",
"",
" If a suspended member is forgiven, we simply add them back as a member, not affecting",
" any of the existing storage items for that member.",
"",
" If a suspended member is rejected, remove all associated storage items, including",
" their payouts, and remove any vouched bids they currently have.",
"",
" The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.",
"",
" Parameters:",
" - `who` - The suspended member to be judged.",
" - `forgive` - A boolean representing whether the suspension judgement origin",
" forgives (`true`) or rejects (`false`) a suspended member.",
"",
" # <weight>",
" Key: B (len of bids), M (len of members)",
" - One storage read to check `who` is a suspended member. O(1)",
" - Up to one storage write O(M) with O(log M) binary search to add a member back to society.",
" - Up to 3 storage removals O(1) to clean up a removed member.",
" - Up to one storage write O(B) with O(B) search to remove vouched bid from bids.",
" - Up to one additional event if unvouch takes place.",
" - One storage removal. O(1)",
" - One event for the judgement.",
"",
" Total Complexity: O(M + logM + B)",
" # </weight>"
]
},
"judgeSuspendedCandidate": {
"name": "judge_suspended_candidate",
"args": [
{
"name": "who",
"type": "AccountId"
},
{
"name": "judgement",
"type": "Judgement"
}
],
"documentation": [
" Allow suspended judgement origin to make judgement on a suspended candidate.",
"",
" If the judgement is `Approve`, we add them to society as a member with the appropriate",
" payment for joining society.",
"",
" If the judgement is `Reject`, we either slash the deposit of the bid, giving it back",
" to the society treasury, or we ban the voucher from vouching again.",
"",
" If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go",
" through the induction process again.",
"",
" The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.",
"",
" Parameters:",
" - `who` - The suspended candidate to be judged.",
" - `judgement` - `Approve`, `Reject`, or `Rebid`.",
"",
" # <weight>",
" Key: B (len of bids), M (len of members), X (balance action)",
" - One storage read to check `who` is a suspended candidate.",
" - One storage removal of the suspended candidate.",
" - Approve Logic",
" \t- One storage read to get the available pot to pay users with. O(1)",
" \t- One storage write to update the available pot. O(1)",
" \t- One storage read to get the current block number. O(1)",
" \t- One storage read to get all members. O(M)",
" \t- Up to one unreserve currency action.",
" \t- Up to two new storage writes to payouts.",
" \t- Up to one storage write with O(log M) binary search to add a member to society.",
" - Reject Logic",
" \t- Up to one repatriate reserved currency action. O(X)",
" \t- Up to one storage write to ban the vouching member from vouching again.",
" - Rebid Logic",
" \t- Storage mutate with O(log B) binary search to place the user back into bids.",
" - Up to one additional event if unvouch takes place.",
" - One storage removal.",
" - One event for the judgement.",
"",
" Total Complexity: O(M + logM + B + X)",
" # </weight>"
]
},
"setMaxMembers": {
"name": "set_max_members",
"args": [
{
"name": "max",
"type": "u32"
}
],
"documentation": [
" Allows root origin to change the maximum number of members in society.",
" Max membership count must be greater than 1.",
"",
" The dispatch origin for this call must be from _ROOT_.",
"",
" Parameters:",
" - `max` - The maximum number of members for the society.",
"",
" # <weight>",
" - One storage write to update the max. O(1)",
" - One event.",
"",
" Total Complexity: O(1)",
" # </weight>"
]
}
},
"recovery": {
"asRecovered": {
"name": "as_recovered",
"args": [
{
"name": "account",
"type": "AccountId"
},
{
"name": "call",
"type": "Call"
}
],
"documentation": [
" Send a call through a recovered account.",
"",
" The dispatch origin for this call must be _Signed_ and registered to",
" be able to make calls on behalf of the recovered account.",
"",
" Parameters:",
" - `account`: The recovered account you want to make a call on-behalf-of.",
" - `call`: The call you want to make with the recovered account.",
"",
" # <weight>",
" - The weight of the `call`.",
" - One storage lookup to check account is recovered by `who`. O(1)",
" # </weight>"
]
},
"setRecovered": {
"name": "set_recovered",
"args": [
{
"name": "lost",
"type": "AccountId"
},
{
"name": "rescuer",
"type": "AccountId"
}
],
"documentation": [
" Allow ROOT to bypass the recovery process and set an a rescuer account",
" for a lost account directly.",
"",
" The dispatch origin for this call must be _ROOT_.",
"",
" Parameters:",
" - `lost`: The \"lost account\" to be recovered.",
" - `rescuer`: The \"rescuer account\" which can call as the lost account.",
"",
" # <weight>",
" - One storage write O(1)",
" - One event",
" # </weight>"
]
},
"createRecovery": {
"name": "create_recovery",
"args": [
{
"name": "friends",
"type": "Vec<AccountId>"
},
{
"name": "threshold",
"type": "u16"
},
{
"name": "delay_period",
"type": "BlockNumber"
}
],
"documentation": [
" Create a recovery configuration for your account. This makes your account recoverable.",
"",
" Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance",
" will be reserved for storing the recovery configuration. This deposit is returned",
" in full when the user calls `remove_recovery`.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `friends`: A list of friends you trust to vouch for recovery attempts.",
" Should be ordered and contain no duplicate values.",
" - `threshold`: The number of friends that must vouch for a recovery attempt",
" before the account can be recovered. Should be less than or equal to",
" the length of the list of friends.",
" - `delay_period`: The number of blocks after a recovery attempt is initialized",
" that needs to pass before the account can be recovered.",
"",
" # <weight>",
" - Key: F (len of friends)",
" - One storage read to check that account is not already recoverable. O(1).",
" - A check that the friends list is sorted and unique. O(F)",
" - One currency reserve operation. O(X)",
" - One storage write. O(1). Codec O(F).",
" - One event.",
"",
" Total Complexity: O(F + X)",
" # </weight>"
]
},
"initiateRecovery": {
"name": "initiate_recovery",
"args": [
{
"name": "account",
"type": "AccountId"
}
],
"documentation": [
" Initiate the process for recovering a recoverable account.",
"",
" Payment: `RecoveryDeposit` balance will be reserved for initiating the",
" recovery process. This deposit will always be repatriated to the account",
" trying to be recovered. See `close_recovery`.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `account`: The lost account that you want to recover. This account",
" needs to be recoverable (i.e. have a recovery configuration).",
"",
" # <weight>",
" - One storage read to check that account is recoverable. O(F)",
" - One storage read to check that this recovery process hasn't already started. O(1)",
" - One currency reserve operation. O(X)",
" - One storage read to get the current block number. O(1)",
" - One storage write. O(1).",
" - One event.",
"",
" Total Complexity: O(F + X)",
" # </weight>"
]
},
"vouchRecovery": {
"name": "vouch_recovery",
"args": [
{
"name": "lost",
"type": "AccountId"
},
{
"name": "rescuer",
"type": "AccountId"
}
],
"documentation": [
" Allow a \"friend\" of a recoverable account to vouch for an active recovery",
" process for that account.",
"",
" The dispatch origin for this call must be _Signed_ and must be a \"friend\"",
" for the recoverable account.",
"",
" Parameters:",
" - `lost`: The lost account that you want to recover.",
" - `rescuer`: The account trying to rescue the lost account that you",
" want to vouch for.",
"",
" The combination of these two parameters must point to an active recovery",
" process.",
"",
" # <weight>",
" Key: F (len of friends in config), V (len of vouching friends)",
" - One storage read to get the recovery configuration. O(1), Codec O(F)",
" - One storage read to get the active recovery process. O(1), Codec O(V)",
" - One binary search to confirm caller is a friend. O(logF)",
" - One binary search to confirm caller has not already vouched. O(logV)",
" - One storage write. O(1), Codec O(V).",
" - One event.",
"",
" Total Complexity: O(F + logF + V + logV)",
" # </weight>"
]
},
"claimRecovery": {
"name": "claim_recovery",
"args": [
{
"name": "account",
"type": "AccountId"
}
],
"documentation": [
" Allow a successful rescuer to claim their recovered account.",
"",
" The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"",
" who has successfully completed the account recovery process: collected",
" `threshold` or more vouches, waited `delay_period` blocks since initiation.",
"",
" Parameters:",
" - `account`: The lost account that you want to claim has been successfully",
" recovered by you.",
"",
" # <weight>",
" Key: F (len of friends in config), V (len of vouching friends)",
" - One storage read to get the recovery configuration. O(1), Codec O(F)",
" - One storage read to get the active recovery process. O(1), Codec O(V)",
" - One storage read to get the current block number. O(1)",
" - One storage write. O(1), Codec O(V).",
" - One event.",
"",
" Total Complexity: O(F + V)",
" # </weight>"
]
},
"closeRecovery": {
"name": "close_recovery",
"args": [
{
"name": "rescuer",
"type": "AccountId"
}
],
"documentation": [
" As the controller of a recoverable account, close an active recovery",
" process for your account.",
"",
" Payment: By calling this function, the recoverable account will receive",
" the recovery deposit `RecoveryDeposit` placed by the rescuer.",
"",
" The dispatch origin for this call must be _Signed_ and must be a",
" recoverable account with an active recovery process for it.",
"",
" Parameters:",
" - `rescuer`: The account trying to rescue this recoverable account.",
"",
" # <weight>",
" Key: V (len of vouching friends)",
" - One storage read/remove to get the active recovery process. O(1), Codec O(V)",
" - One balance call to repatriate reserved. O(X)",
" - One event.",
"",
" Total Complexity: O(V + X)",
" # </weight>"
]
},
"removeRecovery": {
"name": "remove_recovery",
"args": [],
"documentation": [
" Remove the recovery process for your account.",
"",
" NOTE: The user must make sure to call `close_recovery` on all active",
" recovery attempts before calling this function else it will fail.",
"",
" Payment: By calling this function the recoverable account will unreserve",
" their recovery configuration deposit.",
" (`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)",
"",
" The dispatch origin for this call must be _Signed_ and must be a",
" recoverable account (i.e. has a recovery configuration).",
"",
" # <weight>",
" Key: F (len of friends)",
" - One storage read to get the prefix iterator for active recoveries. O(1)",
" - One storage read/remove to get the recovery configuration. O(1), Codec O(F)",
" - One balance call to unreserved. O(X)",
" - One event.",
"",
" Total Complexity: O(F + X)",
" # </weight>"
]
}
}
}
}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment