Skip to content

Instantly share code, notes, and snippets.

@ascjones
Last active April 14, 2021 12:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ascjones/d0d60da26f4336a9379547a2ea1d5655 to your computer and use it in GitHub Desktop.
Save ascjones/d0d60da26f4336a9379547a2ea1d5655 to your computer and use it in GitHub Desktop.
Substrate `node-runtime` metadata with `scale-info` type metadata, everything except errors metadata
This file has been truncated, but you can view the full file.
[
1635018093,
{
"V13": {
"types": {
"types": [
{
"path": [
"sp_core",
"crypto",
"AccountId32"
],
"def": {
"composite": {
"fields": [
{
"type": 2,
"typeName": "[u8; 32]"
}
]
}
}
},
{
"def": {
"array": {
"len": 32,
"type": 3
}
}
},
{
"def": {
"primitive": "u8"
}
},
{
"path": [
"frame_system",
"AccountInfo"
],
"params": [
5,
6
],
"def": {
"composite": {
"fields": [
{
"name": "nonce",
"type": 5,
"typeName": "Index"
},
{
"name": "consumers",
"type": 5,
"typeName": "RefCount"
},
{
"name": "providers",
"type": 5,
"typeName": "RefCount"
},
{
"name": "sufficients",
"type": 5,
"typeName": "RefCount"
},
{
"name": "data",
"type": 6,
"typeName": "AccountData"
}
]
}
}
},
{
"def": {
"primitive": "u32"
}
},
{
"path": [
"pallet_balances",
"AccountData"
],
"params": [
7
],
"def": {
"composite": {
"fields": [
{
"name": "free",
"type": 7,
"typeName": "Balance"
},
{
"name": "reserved",
"type": 7,
"typeName": "Balance"
},
{
"name": "misc_frozen",
"type": 7,
"typeName": "Balance"
},
{
"name": "fee_frozen",
"type": 7,
"typeName": "Balance"
}
]
}
}
},
{
"def": {
"primitive": "u128"
}
},
{
"path": [
"frame_support",
"weights",
"PerDispatchClass"
],
"params": [
9
],
"def": {
"composite": {
"fields": [
{
"name": "normal",
"type": 9,
"typeName": "T"
},
{
"name": "operational",
"type": 9,
"typeName": "T"
},
{
"name": "mandatory",
"type": 9,
"typeName": "T"
}
]
}
}
},
{
"def": {
"primitive": "u64"
}
},
{
"path": [
"primitive_types",
"H256"
],
"def": {
"composite": {
"fields": [
{
"type": 2,
"typeName": "[u8; 32]"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 3
}
}
},
{
"path": [
"sp_runtime",
"generic",
"digest",
"Digest"
],
"params": [
10
],
"def": {
"composite": {
"fields": [
{
"name": "logs",
"type": 13,
"typeName": "Vec<DigestItem<Hash>>"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 14
}
}
},
{
"path": [
"sp_runtime",
"generic",
"digest",
"DigestItem"
],
"params": [
10
],
"def": {
"variant": {
"variants": [
{
"name": "ChangesTrieRoot",
"fields": [
{
"type": 10,
"typeName": "Hash"
}
]
},
{
"name": "PreRuntime",
"fields": [
{
"type": 15,
"typeName": "ConsensusEngineId"
},
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "Consensus",
"fields": [
{
"type": 15,
"typeName": "ConsensusEngineId"
},
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "Seal",
"fields": [
{
"type": 15,
"typeName": "ConsensusEngineId"
},
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "ChangesTrieSignal",
"fields": [
{
"type": 16,
"typeName": "ChangesTrieSignal"
}
]
},
{
"name": "Other",
"fields": [
{
"type": 11,
"typeName": "Vec<u8>"
}
]
}
]
}
}
},
{
"def": {
"array": {
"len": 4,
"type": 3
}
}
},
{
"path": [
"sp_runtime",
"generic",
"digest",
"ChangesTrieSignal"
],
"def": {
"variant": {
"variants": [
{
"name": "NewConfiguration",
"fields": [
{
"type": 17,
"typeName": "Option<ChangesTrieConfiguration>"
}
]
}
]
}
}
},
{
"path": [
"Option"
],
"params": [
18
],
"def": {
"variant": {
"variants": [
{
"name": "None"
},
{
"name": "Some",
"fields": [
{
"type": 18,
"typeName": "T"
}
]
}
]
}
}
},
{
"path": [
"sp_core",
"changes_trie",
"ChangesTrieConfiguration"
],
"def": {
"composite": {
"fields": [
{
"name": "digest_interval",
"type": 5,
"typeName": "u32"
},
{
"name": "digest_levels",
"type": 5,
"typeName": "u32"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 20
}
}
},
{
"path": [
"frame_system",
"EventRecord"
],
"params": [
21,
10
],
"def": {
"composite": {
"fields": [
{
"name": "phase",
"type": 94,
"typeName": "Phase"
},
{
"name": "event",
"type": 21,
"typeName": "E"
},
{
"name": "topics",
"type": 95,
"typeName": "Vec<T>"
}
]
}
}
},
{
"path": [
"node_runtime",
"Event"
],
"def": {
"variant": {
"variants": [
{
"name": "frame_system",
"fields": [
{
"type": 22,
"typeName": "frame_system::Event<Runtime>"
}
]
},
{
"name": "pallet_utility",
"fields": [
{
"type": 29,
"typeName": "pallet_utility::Event<>"
}
]
},
{
"name": "pallet_indices",
"fields": [
{
"type": 30,
"typeName": "pallet_indices::Event<Runtime>"
}
]
},
{
"name": "pallet_balances",
"fields": [
{
"type": 31,
"typeName": "pallet_balances::Event<Runtime>"
}
]
},
{
"name": "pallet_election_provider_multi_phase",
"fields": [
{
"type": 34,
"typeName": "pallet_election_provider_multi_phase::Event<Runtime>"
}
]
},
{
"name": "pallet_staking",
"fields": [
{
"type": 37,
"typeName": "pallet_staking::Event<Runtime>"
}
]
},
{
"name": "pallet_session",
"fields": [
{
"type": 38,
"typeName": "pallet_session::Event<>"
}
]
},
{
"name": "pallet_democracy",
"fields": [
{
"type": 39,
"typeName": "pallet_democracy::Event<Runtime>"
}
]
},
{
"name": "pallet_collective_Instance1",
"fields": [
{
"type": 43,
"typeName": "pallet_collective::Event<Runtime, pallet_collective::Instance1>"
}
]
},
{
"name": "pallet_collective_Instance2",
"fields": [
{
"type": 46,
"typeName": "pallet_collective::Event<Runtime, pallet_collective::Instance2>"
}
]
},
{
"name": "pallet_elections_phragmen",
"fields": [
{
"type": 48,
"typeName": "pallet_elections_phragmen::Event<Runtime>"
}
]
},
{
"name": "pallet_membership_Instance1",
"fields": [
{
"type": 51,
"typeName": "pallet_membership::Event<Runtime, pallet_membership::Instance1>"
}
]
},
{
"name": "pallet_grandpa",
"fields": [
{
"type": 55,
"typeName": "pallet_grandpa::Event<>"
}
]
},
{
"name": "pallet_treasury",
"fields": [
{
"type": 60,
"typeName": "pallet_treasury::Event<Runtime>"
}
]
},
{
"name": "pallet_contracts",
"fields": [
{
"type": 62,
"typeName": "pallet_contracts::Event<Runtime>"
}
]
},
{
"name": "pallet_sudo",
"fields": [
{
"type": 63,
"typeName": "pallet_sudo::Event<Runtime>"
}
]
},
{
"name": "pallet_im_online",
"fields": [
{
"type": 64,
"typeName": "pallet_im_online::Event<Runtime>"
}
]
},
{
"name": "pallet_offences",
"fields": [
{
"type": 73,
"typeName": "pallet_offences::Event<>"
}
]
},
{
"name": "pallet_identity",
"fields": [
{
"type": 75,
"typeName": "pallet_identity::Event<Runtime>"
}
]
},
{
"name": "pallet_society",
"fields": [
{
"type": 76,
"typeName": "pallet_society::Event<Runtime>"
}
]
},
{
"name": "pallet_recovery",
"fields": [
{
"type": 78,
"typeName": "pallet_recovery::Event<Runtime>"
}
]
},
{
"name": "pallet_vesting",
"fields": [
{
"type": 79,
"typeName": "pallet_vesting::Event<Runtime>"
}
]
},
{
"name": "pallet_scheduler",
"fields": [
{
"type": 80,
"typeName": "pallet_scheduler::Event<Runtime>"
}
]
},
{
"name": "pallet_proxy",
"fields": [
{
"type": 83,
"typeName": "pallet_proxy::Event<Runtime>"
}
]
},
{
"name": "pallet_multisig",
"fields": [
{
"type": 86,
"typeName": "pallet_multisig::Event<Runtime>"
}
]
},
{
"name": "pallet_bounties",
"fields": [
{
"type": 88,
"typeName": "pallet_bounties::Event<Runtime>"
}
]
},
{
"name": "pallet_tips",
"fields": [
{
"type": 89,
"typeName": "pallet_tips::Event<Runtime>"
}
]
},
{
"name": "pallet_assets",
"fields": [
{
"type": 90,
"typeName": "pallet_assets::Event<Runtime>"
}
]
},
{
"name": "pallet_lottery",
"fields": [
{
"type": 91,
"typeName": "pallet_lottery::Event<Runtime>"
}
]
},
{
"name": "pallet_gilt",
"fields": [
{
"type": 93,
"typeName": "pallet_gilt::Event<Runtime>"
}
]
}
]
}
}
},
{
"path": [
"frame_system",
"pallet",
"Event"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "ExtrinsicSuccess",
"fields": [
{
"type": 24,
"typeName": "DispatchInfo"
}
]
},
{
"name": "ExtrinsicFailed",
"fields": [
{
"type": 27,
"typeName": "DispatchError"
},
{
"type": 24,
"typeName": "DispatchInfo"
}
]
},
{
"name": "CodeUpdated"
},
{
"name": "NewAccount",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "KilledAccount",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "Remarked",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 10,
"typeName": "T::Hash"
}
]
}
]
}
}
},
{
"path": [
"node_runtime",
"Runtime"
],
"def": {
"composite": {}
}
},
{
"path": [
"frame_support",
"weights",
"DispatchInfo"
],
"def": {
"composite": {
"fields": [
{
"name": "weight",
"type": 9,
"typeName": "Weight"
},
{
"name": "class",
"type": 25,
"typeName": "DispatchClass"
},
{
"name": "pays_fee",
"type": 26,
"typeName": "Pays"
}
]
}
}
},
{
"path": [
"frame_support",
"weights",
"DispatchClass"
],
"def": {
"variant": {
"variants": [
{
"name": "Normal",
"discriminant": 0
},
{
"name": "Operational",
"discriminant": 1
},
{
"name": "Mandatory",
"discriminant": 2
}
]
}
}
},
{
"path": [
"frame_support",
"weights",
"Pays"
],
"def": {
"variant": {
"variants": [
{
"name": "Yes",
"discriminant": 0
},
{
"name": "No",
"discriminant": 1
}
]
}
}
},
{
"path": [
"sp_runtime",
"DispatchError"
],
"def": {
"variant": {
"variants": [
{
"name": "Other"
},
{
"name": "CannotLookup"
},
{
"name": "BadOrigin"
},
{
"name": "Module",
"fields": [
{
"name": "index",
"type": 3,
"typeName": "u8"
},
{
"name": "error",
"type": 3,
"typeName": "u8"
}
]
},
{
"name": "ConsumerRemaining"
},
{
"name": "NoProviders"
},
{
"name": "Token",
"fields": [
{
"type": 28,
"typeName": "TokenError"
}
]
}
]
}
}
},
{
"path": [
"sp_runtime",
"TokenError"
],
"def": {
"variant": {
"variants": [
{
"name": "NoFunds",
"discriminant": 0
},
{
"name": "WouldDie",
"discriminant": 1
},
{
"name": "BelowMinimum",
"discriminant": 2
},
{
"name": "CannotCreate",
"discriminant": 3
},
{
"name": "UnknownAsset",
"discriminant": 4
},
{
"name": "Frozen",
"discriminant": 5
},
{
"name": "Underflow",
"discriminant": 6
},
{
"name": "Overflow",
"discriminant": 7
}
]
}
}
},
{
"path": [
"pallet_utility",
"pallet",
"Event"
],
"def": {
"variant": {
"variants": [
{
"name": "BatchInterrupted",
"fields": [
{
"type": 5,
"typeName": "u32"
},
{
"type": 27,
"typeName": "DispatchError"
}
]
},
{
"name": "BatchCompleted"
}
]
}
}
},
{
"path": [
"pallet_indices",
"pallet",
"Event"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "IndexAssigned",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 5,
"typeName": "T::AccountIndex"
}
]
},
{
"name": "IndexFreed",
"fields": [
{
"type": 5,
"typeName": "T::AccountIndex"
}
]
},
{
"name": "IndexFrozen",
"fields": [
{
"type": 5,
"typeName": "T::AccountIndex"
},
{
"type": 1,
"typeName": "T::AccountId"
}
]
}
]
}
}
},
{
"path": [
"pallet_balances",
"pallet",
"Event"
],
"params": [
23,
32
],
"def": {
"variant": {
"variants": [
{
"name": "Endowed",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 7,
"typeName": "T::Balance"
}
]
},
{
"name": "DustLost",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 7,
"typeName": "T::Balance"
}
]
},
{
"name": "Transfer",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 7,
"typeName": "T::Balance"
}
]
},
{
"name": "BalanceSet",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 7,
"typeName": "T::Balance"
},
{
"type": 7,
"typeName": "T::Balance"
}
]
},
{
"name": "Deposit",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 7,
"typeName": "T::Balance"
}
]
},
{
"name": "Reserved",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 7,
"typeName": "T::Balance"
}
]
},
{
"name": "Unreserved",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 7,
"typeName": "T::Balance"
}
]
},
{
"name": "ReserveRepatriated",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 7,
"typeName": "T::Balance"
},
{
"type": 33,
"typeName": "Status"
}
]
}
]
}
}
},
{
"def": {
"tuple": []
}
},
{
"path": [
"frame_support",
"traits",
"tokens",
"misc",
"BalanceStatus"
],
"def": {
"variant": {
"variants": [
{
"name": "Free",
"discriminant": 0
},
{
"name": "Reserved",
"discriminant": 1
}
]
}
}
},
{
"path": [
"pallet_election_provider_multi_phase",
"pallet",
"Event"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "SolutionStored",
"fields": [
{
"type": 35,
"typeName": "ElectionCompute"
}
]
},
{
"name": "ElectionFinalized",
"fields": [
{
"type": 36,
"typeName": "Option<ElectionCompute>"
}
]
},
{
"name": "Rewarded",
"fields": [
{
"type": 1,
"typeName": "<T as frame_system::Config>::AccountId"
}
]
},
{
"name": "Slashed",
"fields": [
{
"type": 1,
"typeName": "<T as frame_system::Config>::AccountId"
}
]
},
{
"name": "SignedPhaseStarted",
"fields": [
{
"type": 5,
"typeName": "u32"
}
]
},
{
"name": "UnsignedPhaseStarted",
"fields": [
{
"type": 5,
"typeName": "u32"
}
]
}
]
}
}
},
{
"path": [
"pallet_election_provider_multi_phase",
"ElectionCompute"
],
"def": {
"variant": {
"variants": [
{
"name": "OnChain",
"discriminant": 0
},
{
"name": "Signed",
"discriminant": 1
},
{
"name": "Unsigned",
"discriminant": 2
}
]
}
}
},
{
"path": [
"Option"
],
"params": [
35
],
"def": {
"variant": {
"variants": [
{
"name": "None"
},
{
"name": "Some",
"fields": [
{
"type": 35,
"typeName": "T"
}
]
}
]
}
}
},
{
"path": [
"pallet_staking",
"RawEvent"
],
"params": [
7,
1
],
"def": {
"variant": {
"variants": [
{
"name": "EraPayout",
"fields": [
{
"type": 5,
"typeName": "EraIndex"
},
{
"type": 7,
"typeName": "Balance"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "Reward",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "Slash",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "OldSlashingReportDiscarded",
"fields": [
{
"type": 5,
"typeName": "SessionIndex"
}
]
},
{
"name": "StakingElection"
},
{
"name": "Bonded",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "Unbonded",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "Withdrawn",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "Kicked",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 1,
"typeName": "AccountId"
}
]
}
]
}
}
},
{
"path": [
"pallet_session",
"Event"
],
"def": {
"variant": {
"variants": [
{
"name": "NewSession",
"fields": [
{
"type": 5,
"typeName": "SessionIndex"
}
]
}
]
}
}
},
{
"path": [
"pallet_democracy",
"RawEvent"
],
"params": [
7,
1,
10,
5
],
"def": {
"variant": {
"variants": [
{
"name": "Proposed",
"fields": [
{
"type": 5,
"typeName": "PropIndex"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "Tabled",
"fields": [
{
"type": 5,
"typeName": "PropIndex"
},
{
"type": 7,
"typeName": "Balance"
},
{
"type": 40,
"typeName": "Vec<AccountId>"
}
]
},
{
"name": "ExternalTabled"
},
{
"name": "Started",
"fields": [
{
"type": 5,
"typeName": "ReferendumIndex"
},
{
"type": 41,
"typeName": "VoteThreshold"
}
]
},
{
"name": "Passed",
"fields": [
{
"type": 5,
"typeName": "ReferendumIndex"
}
]
},
{
"name": "NotPassed",
"fields": [
{
"type": 5,
"typeName": "ReferendumIndex"
}
]
},
{
"name": "Cancelled",
"fields": [
{
"type": 5,
"typeName": "ReferendumIndex"
}
]
},
{
"name": "Executed",
"fields": [
{
"type": 5,
"typeName": "ReferendumIndex"
},
{
"type": 42,
"typeName": "bool"
}
]
},
{
"name": "Delegated",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "Undelegated",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "Vetoed",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 10,
"typeName": "Hash"
},
{
"type": 5,
"typeName": "BlockNumber"
}
]
},
{
"name": "PreimageNoted",
"fields": [
{
"type": 10,
"typeName": "Hash"
},
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "PreimageUsed",
"fields": [
{
"type": 10,
"typeName": "Hash"
},
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "PreimageInvalid",
"fields": [
{
"type": 10,
"typeName": "Hash"
},
{
"type": 5,
"typeName": "ReferendumIndex"
}
]
},
{
"name": "PreimageMissing",
"fields": [
{
"type": 10,
"typeName": "Hash"
},
{
"type": 5,
"typeName": "ReferendumIndex"
}
]
},
{
"name": "PreimageReaped",
"fields": [
{
"type": 10,
"typeName": "Hash"
},
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
},
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "Unlocked",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "Blacklisted",
"fields": [
{
"type": 10,
"typeName": "Hash"
}
]
}
]
}
}
},
{
"def": {
"sequence": {
"type": 1
}
}
},
{
"path": [
"pallet_democracy",
"vote_threshold",
"VoteThreshold"
],
"def": {
"variant": {
"variants": [
{
"name": "SuperMajorityApprove",
"discriminant": 0
},
{
"name": "SuperMajorityAgainst",
"discriminant": 1
},
{
"name": "SimpleMajority",
"discriminant": 2
}
]
}
}
},
{
"def": {
"primitive": "bool"
}
},
{
"path": [
"pallet_collective",
"RawEvent"
],
"params": [
10,
1,
44
],
"def": {
"variant": {
"variants": [
{
"name": "Proposed",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 5,
"typeName": "ProposalIndex"
},
{
"type": 10,
"typeName": "Hash"
},
{
"type": 5,
"typeName": "MemberCount"
}
]
},
{
"name": "Voted",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 10,
"typeName": "Hash"
},
{
"type": 42,
"typeName": "bool"
},
{
"type": 5,
"typeName": "MemberCount"
},
{
"type": 5,
"typeName": "MemberCount"
}
]
},
{
"name": "Approved",
"fields": [
{
"type": 10,
"typeName": "Hash"
}
]
},
{
"name": "Disapproved",
"fields": [
{
"type": 10,
"typeName": "Hash"
}
]
},
{
"name": "Executed",
"fields": [
{
"type": 10,
"typeName": "Hash"
},
{
"type": 45,
"typeName": "DispatchResult"
}
]
},
{
"name": "MemberExecuted",
"fields": [
{
"type": 10,
"typeName": "Hash"
},
{
"type": 45,
"typeName": "DispatchResult"
}
]
},
{
"name": "Closed",
"fields": [
{
"type": 10,
"typeName": "Hash"
},
{
"type": 5,
"typeName": "MemberCount"
},
{
"type": 5,
"typeName": "MemberCount"
}
]
}
]
}
}
},
{
"path": [
"pallet_collective",
"Instance1"
],
"def": {
"composite": {}
}
},
{
"path": [
"Result"
],
"params": [
32,
27
],
"def": {
"variant": {
"variants": [
{
"name": "Ok",
"fields": [
{
"type": 32,
"typeName": "T"
}
]
},
{
"name": "Err",
"fields": [
{
"type": 27,
"typeName": "E"
}
]
}
]
}
}
},
{
"path": [
"pallet_collective",
"RawEvent"
],
"params": [
10,
1,
47
],
"def": {
"variant": {
"variants": [
{
"name": "Proposed",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 5,
"typeName": "ProposalIndex"
},
{
"type": 10,
"typeName": "Hash"
},
{
"type": 5,
"typeName": "MemberCount"
}
]
},
{
"name": "Voted",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 10,
"typeName": "Hash"
},
{
"type": 42,
"typeName": "bool"
},
{
"type": 5,
"typeName": "MemberCount"
},
{
"type": 5,
"typeName": "MemberCount"
}
]
},
{
"name": "Approved",
"fields": [
{
"type": 10,
"typeName": "Hash"
}
]
},
{
"name": "Disapproved",
"fields": [
{
"type": 10,
"typeName": "Hash"
}
]
},
{
"name": "Executed",
"fields": [
{
"type": 10,
"typeName": "Hash"
},
{
"type": 45,
"typeName": "DispatchResult"
}
]
},
{
"name": "MemberExecuted",
"fields": [
{
"type": 10,
"typeName": "Hash"
},
{
"type": 45,
"typeName": "DispatchResult"
}
]
},
{
"name": "Closed",
"fields": [
{
"type": 10,
"typeName": "Hash"
},
{
"type": 5,
"typeName": "MemberCount"
},
{
"type": 5,
"typeName": "MemberCount"
}
]
}
]
}
}
},
{
"path": [
"pallet_collective",
"Instance2"
],
"def": {
"composite": {}
}
},
{
"path": [
"pallet_elections_phragmen",
"RawEvent"
],
"params": [
7,
1
],
"def": {
"variant": {
"variants": [
{
"name": "NewTerm",
"fields": [
{
"type": 49,
"typeName": "Vec<(AccountId, Balance)>"
}
]
},
{
"name": "EmptyTerm"
},
{
"name": "ElectionError"
},
{
"name": "MemberKicked",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "Renounced",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "CandidateSlashed",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "SeatHolderSlashed",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
}
]
}
}
},
{
"def": {
"sequence": {
"type": 50
}
}
},
{
"def": {
"tuple": [
1,
7
]
}
},
{
"path": [
"pallet_membership",
"RawEvent"
],
"params": [
1,
21,
52
],
"def": {
"variant": {
"variants": [
{
"name": "MemberAdded"
},
{
"name": "MemberRemoved"
},
{
"name": "MembersSwapped"
},
{
"name": "MembersReset"
},
{
"name": "KeyChanged"
},
{
"name": "Dummy",
"fields": [
{
"type": 53,
"typeName": "sp_std::marker::PhantomData<(AccountId, Event)>"
}
]
}
]
}
}
},
{
"path": [
"pallet_membership",
"Instance1"
],
"def": {
"composite": {}
}
},
{
"def": {
"phantom": {
"type": 54
}
}
},
{
"def": {
"tuple": [
1,
21
]
}
},
{
"path": [
"pallet_grandpa",
"Event"
],
"def": {
"variant": {
"variants": [
{
"name": "NewAuthorities",
"fields": [
{
"type": 56,
"typeName": "AuthorityList"
}
]
},
{
"name": "Paused"
},
{
"name": "Resumed"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 57
}
}
},
{
"def": {
"tuple": [
58,
9
]
}
},
{
"path": [
"sp_finality_grandpa",
"app",
"Public"
],
"def": {
"composite": {
"fields": [
{
"type": 59,
"typeName": "ed25519::Public"
}
]
}
}
},
{
"path": [
"sp_core",
"ed25519",
"Public"
],
"def": {
"composite": {
"fields": [
{
"type": 2,
"typeName": "[u8; 32]"
}
]
}
}
},
{
"path": [
"pallet_treasury",
"RawEvent"
],
"params": [
7,
1,
61
],
"def": {
"variant": {
"variants": [
{
"name": "Proposed",
"fields": [
{
"type": 5,
"typeName": "ProposalIndex"
}
]
},
{
"name": "Spending",
"fields": [
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "Awarded",
"fields": [
{
"type": 5,
"typeName": "ProposalIndex"
},
{
"type": 7,
"typeName": "Balance"
},
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "Rejected",
"fields": [
{
"type": 5,
"typeName": "ProposalIndex"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "Burnt",
"fields": [
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "Rollover",
"fields": [
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "Deposit",
"fields": [
{
"type": 7,
"typeName": "Balance"
}
]
}
]
}
}
},
{
"path": [
"pallet_treasury",
"DefaultInstance"
],
"def": {
"composite": {}
}
},
{
"path": [
"pallet_contracts",
"pallet",
"Event"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "Instantiated",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "Evicted",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "Terminated",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "Restored",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 10,
"typeName": "T::Hash"
},
{
"type": 7,
"typeName": "BalanceOf<T>"
}
]
},
{
"name": "CodeStored",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
}
]
},
{
"name": "ScheduleUpdated",
"fields": [
{
"type": 5,
"typeName": "u32"
}
]
},
{
"name": "ContractEmitted",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "CodeRemoved",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
}
]
}
]
}
}
},
{
"path": [
"pallet_sudo",
"pallet",
"Event"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "Sudid",
"fields": [
{
"type": 45,
"typeName": "DispatchResult"
}
]
},
{
"name": "KeyChanged",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "SudoAsDone",
"fields": [
{
"type": 45,
"typeName": "DispatchResult"
}
]
}
]
}
}
},
{
"path": [
"pallet_im_online",
"RawEvent"
],
"params": [
65,
67
],
"def": {
"variant": {
"variants": [
{
"name": "HeartbeatReceived",
"fields": [
{
"type": 65,
"typeName": "AuthorityId"
}
]
},
{
"name": "AllGood"
},
{
"name": "SomeOffline",
"fields": [
{
"type": 72,
"typeName": "Vec<IdentificationTuple>"
}
]
}
]
}
}
},
{
"path": [
"pallet_im_online",
"sr25519",
"app_sr25519",
"Public"
],
"def": {
"composite": {
"fields": [
{
"type": 66,
"typeName": "sr25519::Public"
}
]
}
}
},
{
"path": [
"sp_core",
"sr25519",
"Public"
],
"def": {
"composite": {
"fields": [
{
"type": 2,
"typeName": "[u8; 32]"
}
]
}
}
},
{
"def": {
"tuple": [
1,
68
]
}
},
{
"path": [
"pallet_staking",
"Exposure"
],
"params": [
1,
7
],
"def": {
"composite": {
"fields": [
{
"name": "total",
"type": 69,
"typeName": "Balance"
},
{
"name": "own",
"type": 69,
"typeName": "Balance"
},
{
"name": "others",
"type": 70,
"typeName": "Vec<IndividualExposure<AccountId, Balance>>"
}
]
}
}
},
{
"def": {
"compact": {
"type": 7
}
}
},
{
"def": {
"sequence": {
"type": 71
}
}
},
{
"path": [
"pallet_staking",
"IndividualExposure"
],
"params": [
1,
7
],
"def": {
"composite": {
"fields": [
{
"name": "who",
"type": 1,
"typeName": "AccountId"
},
{
"name": "value",
"type": 69,
"typeName": "Balance"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 67
}
}
},
{
"path": [
"pallet_offences",
"Event"
],
"def": {
"variant": {
"variants": [
{
"name": "Offence",
"fields": [
{
"type": 74,
"typeName": "Kind"
},
{
"type": 11,
"typeName": "OpaqueTimeSlot"
},
{
"type": 42,
"typeName": "bool"
}
]
}
]
}
}
},
{
"def": {
"array": {
"len": 16,
"type": 3
}
}
},
{
"path": [
"pallet_identity",
"RawEvent"
],
"params": [
1,
7
],
"def": {
"variant": {
"variants": [
{
"name": "IdentitySet",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "IdentityCleared",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "IdentityKilled",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "JudgementRequested",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 5,
"typeName": "RegistrarIndex"
}
]
},
{
"name": "JudgementUnrequested",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 5,
"typeName": "RegistrarIndex"
}
]
},
{
"name": "JudgementGiven",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 5,
"typeName": "RegistrarIndex"
}
]
},
{
"name": "RegistrarAdded",
"fields": [
{
"type": 5,
"typeName": "RegistrarIndex"
}
]
},
{
"name": "SubIdentityAdded",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "SubIdentityRemoved",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "SubIdentityRevoked",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
}
]
}
}
},
{
"path": [
"pallet_society",
"RawEvent"
],
"params": [
1,
7,
77
],
"def": {
"variant": {
"variants": [
{
"name": "Founded",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "Bid",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "Vouch",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
},
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "AutoUnbid",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "Unbid",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "Unvouch",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "Inducted",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 40,
"typeName": "Vec<AccountId>"
}
]
},
{
"name": "SuspendedMemberJudgement",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 42,
"typeName": "bool"
}
]
},
{
"name": "CandidateSuspended",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "MemberSuspended",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "Challenged",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "Vote",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 42,
"typeName": "bool"
}
]
},
{
"name": "DefenderVote",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 42,
"typeName": "bool"
}
]
},
{
"name": "NewMaxMembers",
"fields": [
{
"type": 5,
"typeName": "u32"
}
]
},
{
"name": "Unfounded",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "Deposit",
"fields": [
{
"type": 7,
"typeName": "Balance"
}
]
}
]
}
}
},
{
"path": [
"pallet_society",
"DefaultInstance"
],
"def": {
"composite": {}
}
},
{
"path": [
"pallet_recovery",
"RawEvent"
],
"params": [
1
],
"def": {
"variant": {
"variants": [
{
"name": "RecoveryCreated",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "RecoveryInitiated",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "RecoveryVouched",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "RecoveryClosed",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "AccountRecovered",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "RecoveryRemoved",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
}
]
}
}
},
{
"path": [
"pallet_vesting",
"pallet",
"Event"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "VestingUpdated",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 7,
"typeName": "BalanceOf<T>"
}
]
},
{
"name": "VestingCompleted",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
}
]
}
]
}
}
},
{
"path": [
"pallet_scheduler",
"RawEvent"
],
"params": [
5
],
"def": {
"variant": {
"variants": [
{
"name": "Scheduled",
"fields": [
{
"type": 5,
"typeName": "BlockNumber"
},
{
"type": 5,
"typeName": "u32"
}
]
},
{
"name": "Canceled",
"fields": [
{
"type": 5,
"typeName": "BlockNumber"
},
{
"type": 5,
"typeName": "u32"
}
]
},
{
"name": "Dispatched",
"fields": [
{
"type": 81,
"typeName": "TaskAddress<BlockNumber>"
},
{
"type": 82,
"typeName": "Option<Vec<u8>>"
},
{
"type": 45,
"typeName": "DispatchResult"
}
]
}
]
}
}
},
{
"def": {
"tuple": [
5,
5
]
}
},
{
"path": [
"Option"
],
"params": [
11
],
"def": {
"variant": {
"variants": [
{
"name": "None"
},
{
"name": "Some",
"fields": [
{
"type": 11,
"typeName": "T"
}
]
}
]
}
}
},
{
"path": [
"pallet_proxy",
"pallet",
"Event"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "ProxyExecuted",
"fields": [
{
"type": 45,
"typeName": "DispatchResult"
}
]
},
{
"name": "AnonymousCreated",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 84,
"typeName": "T::ProxyType"
},
{
"type": 85,
"typeName": "u16"
}
]
},
{
"name": "Announced",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 10,
"typeName": "CallHashOf<T>"
}
]
}
]
}
}
},
{
"path": [
"node_runtime",
"ProxyType"
],
"def": {
"variant": {
"variants": [
{
"name": "Any",
"discriminant": 0
},
{
"name": "NonTransfer",
"discriminant": 1
},
{
"name": "Governance",
"discriminant": 2
},
{
"name": "Staking",
"discriminant": 3
}
]
}
}
},
{
"def": {
"primitive": "u16"
}
},
{
"path": [
"pallet_multisig",
"RawEvent"
],
"params": [
1,
5,
2
],
"def": {
"variant": {
"variants": [
{
"name": "NewMultisig",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 2,
"typeName": "CallHash"
}
]
},
{
"name": "MultisigApproval",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 87,
"typeName": "Timepoint<BlockNumber>"
},
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 2,
"typeName": "CallHash"
}
]
},
{
"name": "MultisigExecuted",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 87,
"typeName": "Timepoint<BlockNumber>"
},
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 2,
"typeName": "CallHash"
},
{
"type": 45,
"typeName": "DispatchResult"
}
]
},
{
"name": "MultisigCancelled",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 87,
"typeName": "Timepoint<BlockNumber>"
},
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 2,
"typeName": "CallHash"
}
]
}
]
}
}
},
{
"path": [
"pallet_multisig",
"Timepoint"
],
"params": [
5
],
"def": {
"composite": {
"fields": [
{
"name": "height",
"type": 5,
"typeName": "BlockNumber"
},
{
"name": "index",
"type": 5,
"typeName": "u32"
}
]
}
}
},
{
"path": [
"pallet_bounties",
"RawEvent"
],
"params": [
7,
1
],
"def": {
"variant": {
"variants": [
{
"name": "BountyProposed",
"fields": [
{
"type": 5,
"typeName": "BountyIndex"
}
]
},
{
"name": "BountyRejected",
"fields": [
{
"type": 5,
"typeName": "BountyIndex"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "BountyBecameActive",
"fields": [
{
"type": 5,
"typeName": "BountyIndex"
}
]
},
{
"name": "BountyAwarded",
"fields": [
{
"type": 5,
"typeName": "BountyIndex"
},
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "BountyClaimed",
"fields": [
{
"type": 5,
"typeName": "BountyIndex"
},
{
"type": 7,
"typeName": "Balance"
},
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "BountyCanceled",
"fields": [
{
"type": 5,
"typeName": "BountyIndex"
}
]
},
{
"name": "BountyExtended",
"fields": [
{
"type": 5,
"typeName": "BountyIndex"
}
]
}
]
}
}
},
{
"path": [
"pallet_tips",
"RawEvent"
],
"params": [
7,
1,
10
],
"def": {
"variant": {
"variants": [
{
"name": "NewTip",
"fields": [
{
"type": 10,
"typeName": "Hash"
}
]
},
{
"name": "TipClosing",
"fields": [
{
"type": 10,
"typeName": "Hash"
}
]
},
{
"name": "TipClosed",
"fields": [
{
"type": 10,
"typeName": "Hash"
},
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "TipRetracted",
"fields": [
{
"type": 10,
"typeName": "Hash"
}
]
},
{
"name": "TipSlashed",
"fields": [
{
"type": 10,
"typeName": "Hash"
},
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
}
]
}
}
},
{
"path": [
"pallet_assets",
"pallet",
"Event"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "Created",
"fields": [
{
"type": 5,
"typeName": "T::AssetId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "Issued",
"fields": [
{
"type": 5,
"typeName": "T::AssetId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 9,
"typeName": "T::Balance"
}
]
},
{
"name": "Transferred",
"fields": [
{
"type": 5,
"typeName": "T::AssetId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 9,
"typeName": "T::Balance"
}
]
},
{
"name": "Burned",
"fields": [
{
"type": 5,
"typeName": "T::AssetId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 9,
"typeName": "T::Balance"
}
]
},
{
"name": "TeamChanged",
"fields": [
{
"type": 5,
"typeName": "T::AssetId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "OwnerChanged",
"fields": [
{
"type": 5,
"typeName": "T::AssetId"
},
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "Frozen",
"fields": [
{
"type": 5,
"typeName": "T::AssetId"
},
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "Thawed",
"fields": [
{
"type": 5,
"typeName": "T::AssetId"
},
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "AssetFrozen",
"fields": [
{
"type": 5,
"typeName": "T::AssetId"
}
]
},
{
"name": "AssetThawed",
"fields": [
{
"type": 5,
"typeName": "T::AssetId"
}
]
},
{
"name": "Destroyed",
"fields": [
{
"type": 5,
"typeName": "T::AssetId"
}
]
},
{
"name": "ForceCreated",
"fields": [
{
"type": 5,
"typeName": "T::AssetId"
},
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "MetadataSet",
"fields": [
{
"type": 5,
"typeName": "T::AssetId"
},
{
"type": 11,
"typeName": "Vec<u8>"
},
{
"type": 11,
"typeName": "Vec<u8>"
},
{
"type": 3,
"typeName": "u8"
},
{
"type": 42,
"typeName": "bool"
}
]
},
{
"name": "MetadataCleared",
"fields": [
{
"type": 5,
"typeName": "T::AssetId"
}
]
},
{
"name": "ApprovedTransfer",
"fields": [
{
"type": 5,
"typeName": "T::AssetId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 9,
"typeName": "T::Balance"
}
]
},
{
"name": "ApprovalCancelled",
"fields": [
{
"type": 5,
"typeName": "T::AssetId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "TransferredApproved",
"fields": [
{
"type": 5,
"typeName": "T::AssetId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 9,
"typeName": "T::Balance"
}
]
},
{
"name": "AssetStatusChanged",
"fields": [
{
"type": 5,
"typeName": "T::AssetId"
}
]
}
]
}
}
},
{
"path": [
"pallet_lottery",
"RawEvent"
],
"params": [
1,
7
],
"def": {
"variant": {
"variants": [
{
"name": "LotteryStarted"
},
{
"name": "CallsUpdated"
},
{
"name": "Winner",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "TicketBought",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 92,
"typeName": "CallIndex"
}
]
}
]
}
}
},
{
"def": {
"tuple": [
3,
3
]
}
},
{
"path": [
"pallet_gilt",
"pallet",
"Event"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "BidPlaced",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 7,
"typeName": "BalanceOf<T>"
},
{
"type": 5,
"typeName": "u32"
}
]
},
{
"name": "BidRetracted",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 7,
"typeName": "BalanceOf<T>"
},
{
"type": 5,
"typeName": "u32"
}
]
},
{
"name": "GiltIssued",
"fields": [
{
"type": 5,
"typeName": "ActiveIndex"
},
{
"type": 5,
"typeName": "T::BlockNumber"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 7,
"typeName": "BalanceOf<T>"
}
]
},
{
"name": "GiltThawed",
"fields": [
{
"type": 5,
"typeName": "ActiveIndex"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 7,
"typeName": "BalanceOf<T>"
},
{
"type": 7,
"typeName": "BalanceOf<T>"
}
]
}
]
}
}
},
{
"path": [
"frame_system",
"Phase"
],
"def": {
"variant": {
"variants": [
{
"name": "ApplyExtrinsic",
"fields": [
{
"type": 5,
"typeName": "u32"
}
]
},
{
"name": "Finalization"
},
{
"name": "Initialization"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 10
}
}
},
{
"def": {
"sequence": {
"type": 81
}
}
},
{
"path": [
"frame_system",
"LastRuntimeUpgradeInfo"
],
"def": {
"composite": {
"fields": [
{
"name": "spec_version",
"type": 98,
"typeName": "codec::Compact<u32>"
},
{
"name": "spec_name",
"type": 99,
"typeName": "sp_runtime::RuntimeString"
}
]
}
}
},
{
"def": {
"compact": {
"type": 5
}
}
},
{
"def": {
"primitive": "str"
}
},
{
"path": [
"sp_arithmetic",
"per_things",
"Perbill"
],
"def": {
"composite": {
"fields": [
{
"type": 5,
"typeName": "u32"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 102
}
}
},
{
"def": {
"tuple": [
11,
11
]
}
},
{
"def": {
"sequence": {
"type": 11
}
}
},
{
"path": [
"frame_system",
"limits",
"BlockWeights"
],
"def": {
"composite": {
"fields": [
{
"name": "base_block",
"type": 9,
"typeName": "Weight"
},
{
"name": "max_block",
"type": 9,
"typeName": "Weight"
},
{
"name": "per_class",
"type": 105,
"typeName": "PerDispatchClass<WeightsPerClass>"
}
]
}
}
},
{
"path": [
"frame_support",
"weights",
"PerDispatchClass"
],
"params": [
106
],
"def": {
"composite": {
"fields": [
{
"name": "normal",
"type": 106,
"typeName": "T"
},
{
"name": "operational",
"type": 106,
"typeName": "T"
},
{
"name": "mandatory",
"type": 106,
"typeName": "T"
}
]
}
}
},
{
"path": [
"frame_system",
"limits",
"WeightsPerClass"
],
"def": {
"composite": {
"fields": [
{
"name": "base_extrinsic",
"type": 9,
"typeName": "Weight"
},
{
"name": "max_extrinsic",
"type": 107,
"typeName": "Option<Weight>"
},
{
"name": "max_total",
"type": 107,
"typeName": "Option<Weight>"
},
{
"name": "reserved",
"type": 107,
"typeName": "Option<Weight>"
}
]
}
}
},
{
"path": [
"Option"
],
"params": [
9
],
"def": {
"variant": {
"variants": [
{
"name": "None"
},
{
"name": "Some",
"fields": [
{
"type": 9,
"typeName": "T"
}
]
}
]
}
}
},
{
"path": [
"frame_system",
"limits",
"BlockLength"
],
"def": {
"composite": {
"fields": [
{
"name": "max",
"type": 109,
"typeName": "PerDispatchClass<u32>"
}
]
}
}
},
{
"path": [
"frame_support",
"weights",
"PerDispatchClass"
],
"params": [
5
],
"def": {
"composite": {
"fields": [
{
"name": "normal",
"type": 5,
"typeName": "T"
},
{
"name": "operational",
"type": 5,
"typeName": "T"
},
{
"name": "mandatory",
"type": 5,
"typeName": "T"
}
]
}
}
},
{
"path": [
"frame_support",
"weights",
"RuntimeDbWeight"
],
"def": {
"composite": {
"fields": [
{
"name": "read",
"type": 9,
"typeName": "Weight"
},
{
"name": "write",
"type": 9,
"typeName": "Weight"
}
]
}
}
},
{
"path": [
"sp_version",
"RuntimeVersion"
],
"def": {
"composite": {
"fields": [
{
"name": "spec_name",
"type": 99,
"typeName": "RuntimeString"
},
{
"name": "impl_name",
"type": 99,
"typeName": "RuntimeString"
},
{
"name": "authoring_version",
"type": 5,
"typeName": "u32"
},
{
"name": "spec_version",
"type": 5,
"typeName": "u32"
},
{
"name": "impl_version",
"type": 5,
"typeName": "u32"
},
{
"name": "apis",
"type": 112,
"typeName": "ApisVec"
},
{
"name": "transaction_version",
"type": 5,
"typeName": "u32"
}
]
}
}
},
{
"path": [
"Cow"
],
"params": [
113
],
"def": {
"composite": {
"fields": [
{
"type": 113,
"typeName": "T"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 114
}
}
},
{
"def": {
"tuple": [
115,
5
]
}
},
{
"def": {
"array": {
"len": 8,
"type": 3
}
}
},
{
"def": {
"sequence": {
"type": 117
}
}
},
{
"path": [
"node_runtime",
"Call"
],
"def": {
"variant": {
"variants": [
{
"name": "System",
"fields": [
{
"type": 118,
"typeName": "$crate::dispatch::CallableCallFor<System, Runtime>"
}
]
},
{
"name": "Utility",
"fields": [
{
"type": 119,
"typeName": "$crate::dispatch::CallableCallFor<Utility, Runtime>"
}
]
},
{
"name": "Babe",
"fields": [
{
"type": 120,
"typeName": "$crate::dispatch::CallableCallFor<Babe, Runtime>"
}
]
},
{
"name": "Timestamp",
"fields": [
{
"type": 129,
"typeName": "$crate::dispatch::CallableCallFor<Timestamp, Runtime>"
}
]
},
{
"name": "Authorship",
"fields": [
{
"type": 131,
"typeName": "$crate::dispatch::CallableCallFor<Authorship, Runtime>"
}
]
},
{
"name": "Indices",
"fields": [
{
"type": 133,
"typeName": "$crate::dispatch::CallableCallFor<Indices, Runtime>"
}
]
},
{
"name": "Balances",
"fields": [
{
"type": 134,
"typeName": "$crate::dispatch::CallableCallFor<Balances, Runtime>"
}
]
},
{
"name": "ElectionProviderMultiPhase",
"fields": [
{
"type": 137,
"typeName": "$crate::dispatch::CallableCallFor<ElectionProviderMultiPhase, Runtime>"
}
]
},
{
"name": "Staking",
"fields": [
{
"type": 141,
"typeName": "$crate::dispatch::CallableCallFor<Staking, Runtime>"
}
]
},
{
"name": "Session",
"fields": [
{
"type": 148,
"typeName": "$crate::dispatch::CallableCallFor<Session, Runtime>"
}
]
},
{
"name": "Democracy",
"fields": [
{
"type": 151,
"typeName": "$crate::dispatch::CallableCallFor<Democracy, Runtime>"
}
]
},
{
"name": "Council",
"fields": [
{
"type": 156,
"typeName": "$crate::dispatch::CallableCallFor<Council, Runtime>"
}
]
},
{
"name": "TechnicalCommittee",
"fields": [
{
"type": 158,
"typeName": "$crate::dispatch::CallableCallFor<TechnicalCommittee, Runtime>"
}
]
},
{
"name": "Elections",
"fields": [
{
"type": 159,
"typeName": "$crate::dispatch::CallableCallFor<Elections, Runtime>"
}
]
},
{
"name": "TechnicalMembership",
"fields": [
{
"type": 161,
"typeName": "$crate::dispatch::CallableCallFor<TechnicalMembership, Runtime>"
}
]
},
{
"name": "Grandpa",
"fields": [
{
"type": 162,
"typeName": "$crate::dispatch::CallableCallFor<Grandpa, Runtime>"
}
]
},
{
"name": "Treasury",
"fields": [
{
"type": 174,
"typeName": "$crate::dispatch::CallableCallFor<Treasury, Runtime>"
}
]
},
{
"name": "Contracts",
"fields": [
{
"type": 175,
"typeName": "$crate::dispatch::CallableCallFor<Contracts, Runtime>"
}
]
},
{
"name": "Sudo",
"fields": [
{
"type": 180,
"typeName": "$crate::dispatch::CallableCallFor<Sudo, Runtime>"
}
]
},
{
"name": "ImOnline",
"fields": [
{
"type": 181,
"typeName": "$crate::dispatch::CallableCallFor<ImOnline, Runtime>"
}
]
},
{
"name": "AuthorityDiscovery",
"fields": [
{
"type": 189,
"typeName": "$crate::dispatch::CallableCallFor<AuthorityDiscovery, Runtime>"
}
]
},
{
"name": "Offences",
"fields": [
{
"type": 190,
"typeName": "$crate::dispatch::CallableCallFor<Offences, Runtime>"
}
]
},
{
"name": "RandomnessCollectiveFlip",
"fields": [
{
"type": 191,
"typeName": "$crate::dispatch::CallableCallFor<RandomnessCollectiveFlip, Runtime>"
}
]
},
{
"name": "Identity",
"fields": [
{
"type": 192,
"typeName": "$crate::dispatch::CallableCallFor<Identity, Runtime>"
}
]
},
{
"name": "Society",
"fields": [
{
"type": 202,
"typeName": "$crate::dispatch::CallableCallFor<Society, Runtime>"
}
]
},
{
"name": "Recovery",
"fields": [
{
"type": 204,
"typeName": "$crate::dispatch::CallableCallFor<Recovery, Runtime>"
}
]
},
{
"name": "Vesting",
"fields": [
{
"type": 205,
"typeName": "$crate::dispatch::CallableCallFor<Vesting, Runtime>"
}
]
},
{
"name": "Scheduler",
"fields": [
{
"type": 207,
"typeName": "$crate::dispatch::CallableCallFor<Scheduler, Runtime>"
}
]
},
{
"name": "Proxy",
"fields": [
{
"type": 209,
"typeName": "$crate::dispatch::CallableCallFor<Proxy, Runtime>"
}
]
},
{
"name": "Multisig",
"fields": [
{
"type": 211,
"typeName": "$crate::dispatch::CallableCallFor<Multisig, Runtime>"
}
]
},
{
"name": "Bounties",
"fields": [
{
"type": 213,
"typeName": "$crate::dispatch::CallableCallFor<Bounties, Runtime>"
}
]
},
{
"name": "Tips",
"fields": [
{
"type": 214,
"typeName": "$crate::dispatch::CallableCallFor<Tips, Runtime>"
}
]
},
{
"name": "Assets",
"fields": [
{
"type": 215,
"typeName": "$crate::dispatch::CallableCallFor<Assets, Runtime>"
}
]
},
{
"name": "Lottery",
"fields": [
{
"type": 217,
"typeName": "$crate::dispatch::CallableCallFor<Lottery, Runtime>"
}
]
},
{
"name": "Gilt",
"fields": [
{
"type": 218,
"typeName": "$crate::dispatch::CallableCallFor<Gilt, Runtime>"
}
]
}
]
}
}
},
{
"path": [
"frame_system",
"pallet",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "fill_block",
"fields": [
{
"type": 100,
"typeName": "Perbill"
}
]
},
{
"name": "remark",
"fields": [
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "set_heap_pages",
"fields": [
{
"type": 9,
"typeName": "u64"
}
]
},
{
"name": "set_code",
"fields": [
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "set_code_without_checks",
"fields": [
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "set_changes_trie_config",
"fields": [
{
"type": 17,
"typeName": "Option<ChangesTrieConfiguration>"
}
]
},
{
"name": "set_storage",
"fields": [
{
"type": 101,
"typeName": "Vec<KeyValue>"
}
]
},
{
"name": "kill_storage",
"fields": [
{
"type": 103,
"typeName": "Vec<Key>"
}
]
},
{
"name": "kill_prefix",
"fields": [
{
"type": 11,
"typeName": "Key"
},
{
"type": 5,
"typeName": "u32"
}
]
},
{
"name": "remark_with_event",
"fields": [
{
"type": 11,
"typeName": "Vec<u8>"
}
]
}
]
}
}
},
{
"path": [
"pallet_utility",
"pallet",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "batch",
"fields": [
{
"type": 116,
"typeName": "Vec<<T as Config>::Call>"
}
]
},
{
"name": "as_derivative",
"fields": [
{
"type": 85,
"typeName": "u16"
},
{
"type": 117,
"typeName": "Box<<T as Config>::Call>"
}
]
},
{
"name": "batch_all",
"fields": [
{
"type": 116,
"typeName": "Vec<<T as Config>::Call>"
}
]
}
]
}
}
},
{
"path": [
"pallet_babe",
"pallet",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "report_equivocation",
"fields": [
{
"type": 121,
"typeName": "EquivocationProof<T::Header>"
},
{
"type": 125,
"typeName": "T::KeyOwnerProof"
}
]
},
{
"name": "report_equivocation_unsigned",
"fields": [
{
"type": 121,
"typeName": "EquivocationProof<T::Header>"
},
{
"type": 125,
"typeName": "T::KeyOwnerProof"
}
]
},
{
"name": "plan_config_change",
"fields": [
{
"type": 126,
"typeName": "NextConfigDescriptor"
}
]
}
]
}
}
},
{
"path": [
"sp_consensus_slots",
"EquivocationProof"
],
"params": [
122,
123
],
"def": {
"composite": {
"fields": [
{
"name": "offender",
"type": 123,
"typeName": "Id"
},
{
"name": "slot",
"type": 124,
"typeName": "Slot"
},
{
"name": "first_header",
"type": 122,
"typeName": "Header"
},
{
"name": "second_header",
"type": 122,
"typeName": "Header"
}
]
}
}
},
{
"path": [
"sp_runtime",
"generic",
"header",
"Header"
],
"def": {
"composite": {}
}
},
{
"path": [
"sp_consensus_babe",
"app",
"Public"
],
"def": {
"composite": {
"fields": [
{
"type": 66,
"typeName": "sr25519::Public"
}
]
}
}
},
{
"path": [
"sp_consensus_slots",
"Slot"
],
"def": {
"composite": {
"fields": [
{
"type": 9,
"typeName": "u64"
}
]
}
}
},
{
"path": [
"sp_session",
"MembershipProof"
],
"def": {
"composite": {
"fields": [
{
"name": "session",
"type": 5,
"typeName": "SessionIndex"
},
{
"name": "trie_nodes",
"type": 103,
"typeName": "Vec<Vec<u8>>"
},
{
"name": "validator_count",
"type": 5,
"typeName": "ValidatorCount"
}
]
}
}
},
{
"path": [
"sp_consensus_babe",
"digests",
"NextConfigDescriptor"
],
"def": {
"variant": {
"variants": [
{
"name": "V1",
"fields": [
{
"name": "c",
"type": 127,
"typeName": "(u64, u64)"
},
{
"name": "allowed_slots",
"type": 128,
"typeName": "AllowedSlots"
}
]
}
]
}
}
},
{
"def": {
"tuple": [
9,
9
]
}
},
{
"path": [
"sp_consensus_babe",
"AllowedSlots"
],
"def": {
"variant": {
"variants": [
{
"name": "PrimarySlots",
"discriminant": 0
},
{
"name": "PrimaryAndSecondaryPlainSlots",
"discriminant": 1
},
{
"name": "PrimaryAndSecondaryVRFSlots",
"discriminant": 2
}
]
}
}
},
{
"path": [
"pallet_timestamp",
"pallet",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "set",
"fields": [
{
"type": 130,
"typeName": "T::Moment"
}
]
}
]
}
}
},
{
"def": {
"compact": {
"type": 9
}
}
},
{
"path": [
"pallet_authorship",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "set_uncles",
"fields": [
{
"type": 132,
"typeName": "Vec<T::Header>"
}
]
}
]
}
}
},
{
"def": {
"sequence": {
"type": 122
}
}
},
{
"path": [
"pallet_indices",
"pallet",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "claim",
"fields": [
{
"type": 5,
"typeName": "T::AccountIndex"
}
]
},
{
"name": "transfer",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 5,
"typeName": "T::AccountIndex"
}
]
},
{
"name": "free",
"fields": [
{
"type": 5,
"typeName": "T::AccountIndex"
}
]
},
{
"name": "force_transfer",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 5,
"typeName": "T::AccountIndex"
},
{
"type": 42,
"typeName": "bool"
}
]
},
{
"name": "freeze",
"fields": [
{
"type": 5,
"typeName": "T::AccountIndex"
}
]
}
]
}
}
},
{
"path": [
"pallet_balances",
"pallet",
"Call"
],
"params": [
23,
32
],
"def": {
"variant": {
"variants": [
{
"name": "transfer",
"fields": [
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 69,
"typeName": "T::Balance"
}
]
},
{
"name": "set_balance",
"fields": [
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 69,
"typeName": "T::Balance"
},
{
"type": 69,
"typeName": "T::Balance"
}
]
},
{
"name": "force_transfer",
"fields": [
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 69,
"typeName": "T::Balance"
}
]
},
{
"name": "transfer_keep_alive",
"fields": [
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 69,
"typeName": "T::Balance"
}
]
}
]
}
}
},
{
"path": [
"sp_runtime",
"multiaddress",
"MultiAddress"
],
"params": [
1,
5
],
"def": {
"variant": {
"variants": [
{
"name": "Id",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "Index",
"fields": [
{
"type": 98,
"typeName": "AccountIndex"
}
]
},
{
"name": "Raw",
"fields": [
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "Address32",
"fields": [
{
"type": 2,
"typeName": "[u8; 32]"
}
]
},
{
"name": "Address20",
"fields": [
{
"type": 136,
"typeName": "[u8; 20]"
}
]
}
]
}
}
},
{
"def": {
"array": {
"len": 20,
"type": 3
}
}
},
{
"path": [
"pallet_election_provider_multi_phase",
"pallet",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "submit_unsigned",
"fields": [
{
"type": 138,
"typeName": "RawSolution<CompactOf<T>>"
},
{
"type": 140,
"typeName": "SolutionOrSnapshotSize"
}
]
}
]
}
}
},
{
"path": [
"pallet_election_provider_multi_phase",
"RawSolution"
],
"params": [
32
],
"def": {
"composite": {
"fields": [
{
"name": "compact",
"type": 32,
"typeName": "C"
},
{
"name": "score",
"type": 139,
"typeName": "ElectionScore"
},
{
"name": "round",
"type": 5,
"typeName": "u32"
}
]
}
}
},
{
"def": {
"array": {
"len": 3,
"type": 7
}
}
},
{
"path": [
"pallet_election_provider_multi_phase",
"SolutionOrSnapshotSize"
],
"def": {
"composite": {
"fields": [
{
"name": "voters",
"type": 98,
"typeName": "u32"
},
{
"name": "targets",
"type": 98,
"typeName": "u32"
}
]
}
}
},
{
"path": [
"pallet_staking",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "bond",
"fields": [
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 69,
"typeName": "BalanceOf<T>"
},
{
"type": 142,
"typeName": "RewardDestination<T::AccountId>"
}
]
},
{
"name": "bond_extra",
"fields": [
{
"type": 69,
"typeName": "BalanceOf<T>"
}
]
},
{
"name": "unbond",
"fields": [
{
"type": 69,
"typeName": "BalanceOf<T>"
}
]
},
{
"name": "withdraw_unbonded",
"fields": [
{
"type": 5,
"typeName": "u32"
}
]
},
{
"name": "validate",
"fields": [
{
"type": 143,
"typeName": "ValidatorPrefs"
}
]
},
{
"name": "nominate",
"fields": [
{
"type": 145,
"typeName": "Vec<<T::Lookup as StaticLookup>::Source>"
}
]
},
{
"name": "chill"
},
{
"name": "set_payee",
"fields": [
{
"type": 142,
"typeName": "RewardDestination<T::AccountId>"
}
]
},
{
"name": "set_controller",
"fields": [
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
}
]
},
{
"name": "set_validator_count",
"fields": [
{
"type": 98,
"typeName": "u32"
}
]
},
{
"name": "increase_validator_count",
"fields": [
{
"type": 98,
"typeName": "u32"
}
]
},
{
"name": "scale_validator_count",
"fields": [
{
"type": 146,
"typeName": "Percent"
}
]
},
{
"name": "force_no_eras"
},
{
"name": "force_new_era"
},
{
"name": "set_invulnerables",
"fields": [
{
"type": 40,
"typeName": "Vec<T::AccountId>"
}
]
},
{
"name": "force_unstake",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 5,
"typeName": "u32"
}
]
},
{
"name": "force_new_era_always"
},
{
"name": "cancel_deferred_slash",
"fields": [
{
"type": 5,
"typeName": "EraIndex"
},
{
"type": 147,
"typeName": "Vec<u32>"
}
]
},
{
"name": "payout_stakers",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 5,
"typeName": "EraIndex"
}
]
},
{
"name": "rebond",
"fields": [
{
"type": 69,
"typeName": "BalanceOf<T>"
}
]
},
{
"name": "set_history_depth",
"fields": [
{
"type": 98,
"typeName": "EraIndex"
},
{
"type": 98,
"typeName": "u32"
}
]
},
{
"name": "reap_stash",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 5,
"typeName": "u32"
}
]
},
{
"name": "kick",
"fields": [
{
"type": 145,
"typeName": "Vec<<T::Lookup as StaticLookup>::Source>"
}
]
}
]
}
}
},
{
"path": [
"pallet_staking",
"RewardDestination"
],
"params": [
1
],
"def": {
"variant": {
"variants": [
{
"name": "Staked"
},
{
"name": "Stash"
},
{
"name": "Controller"
},
{
"name": "Account",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "None"
}
]
}
}
},
{
"path": [
"pallet_staking",
"ValidatorPrefs"
],
"def": {
"composite": {
"fields": [
{
"name": "commission",
"type": 144,
"typeName": "Perbill"
},
{
"name": "blocked",
"type": 42,
"typeName": "bool"
}
]
}
}
},
{
"def": {
"compact": {
"type": 100
}
}
},
{
"def": {
"sequence": {
"type": 135
}
}
},
{
"path": [
"sp_arithmetic",
"per_things",
"Percent"
],
"def": {
"composite": {
"fields": [
{
"type": 3,
"typeName": "u8"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 5
}
}
},
{
"path": [
"pallet_session",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "set_keys",
"fields": [
{
"type": 149,
"typeName": "T::Keys"
},
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "purge_keys"
}
]
}
}
},
{
"path": [
"node_runtime",
"SessionKeys"
],
"def": {
"composite": {
"fields": [
{
"name": "grandpa",
"type": 58,
"typeName": "<Grandpa as $crate::BoundToRuntimeAppPublic>::Public"
},
{
"name": "babe",
"type": 123,
"typeName": "<Babe as $crate::BoundToRuntimeAppPublic>::Public"
},
{
"name": "im_online",
"type": 65,
"typeName": "<ImOnline as $crate::BoundToRuntimeAppPublic>::Public"
},
{
"name": "authority_discovery",
"type": 150,
"typeName": "<AuthorityDiscovery as $crate::BoundToRuntimeAppPublic>::Public"
}
]
}
}
},
{
"path": [
"sp_authority_discovery",
"app",
"Public"
],
"def": {
"composite": {
"fields": [
{
"type": 66,
"typeName": "sr25519::Public"
}
]
}
}
},
{
"path": [
"pallet_democracy",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "propose",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
},
{
"type": 69,
"typeName": "BalanceOf<T>"
}
]
},
{
"name": "second",
"fields": [
{
"type": 98,
"typeName": "PropIndex"
},
{
"type": 98,
"typeName": "u32"
}
]
},
{
"name": "vote",
"fields": [
{
"type": 98,
"typeName": "ReferendumIndex"
},
{
"type": 152,
"typeName": "AccountVote<BalanceOf<T>>"
}
]
},
{
"name": "emergency_cancel",
"fields": [
{
"type": 5,
"typeName": "ReferendumIndex"
}
]
},
{
"name": "external_propose",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
}
]
},
{
"name": "external_propose_majority",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
}
]
},
{
"name": "external_propose_default",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
}
]
},
{
"name": "fast_track",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
},
{
"type": 5,
"typeName": "T::BlockNumber"
},
{
"type": 5,
"typeName": "T::BlockNumber"
}
]
},
{
"name": "veto_external",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
}
]
},
{
"name": "cancel_referendum",
"fields": [
{
"type": 98,
"typeName": "ReferendumIndex"
}
]
},
{
"name": "cancel_queued",
"fields": [
{
"type": 5,
"typeName": "ReferendumIndex"
}
]
},
{
"name": "delegate",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 154,
"typeName": "Conviction"
},
{
"type": 7,
"typeName": "BalanceOf<T>"
}
]
},
{
"name": "undelegate"
},
{
"name": "clear_public_proposals"
},
{
"name": "note_preimage",
"fields": [
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "note_preimage_operational",
"fields": [
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "note_imminent_preimage",
"fields": [
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "note_imminent_preimage_operational",
"fields": [
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "reap_preimage",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
},
{
"type": 98,
"typeName": "u32"
}
]
},
{
"name": "unlock",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "remove_vote",
"fields": [
{
"type": 5,
"typeName": "ReferendumIndex"
}
]
},
{
"name": "remove_other_vote",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 5,
"typeName": "ReferendumIndex"
}
]
},
{
"name": "enact_proposal",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
},
{
"type": 5,
"typeName": "ReferendumIndex"
}
]
},
{
"name": "blacklist",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
},
{
"type": 155,
"typeName": "Option<ReferendumIndex>"
}
]
},
{
"name": "cancel_proposal",
"fields": [
{
"type": 98,
"typeName": "PropIndex"
}
]
}
]
}
}
},
{
"path": [
"pallet_democracy",
"vote",
"AccountVote"
],
"params": [
7
],
"def": {
"variant": {
"variants": [
{
"name": "Standard",
"fields": [
{
"name": "vote",
"type": 153,
"typeName": "Vote"
},
{
"name": "balance",
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "Split",
"fields": [
{
"name": "aye",
"type": 7,
"typeName": "Balance"
},
{
"name": "nay",
"type": 7,
"typeName": "Balance"
}
]
}
]
}
}
},
{
"path": [
"pallet_democracy",
"vote",
"Vote"
],
"def": {
"composite": {
"fields": [
{
"name": "aye",
"type": 42,
"typeName": "bool"
},
{
"name": "conviction",
"type": 154,
"typeName": "Conviction"
}
]
}
}
},
{
"path": [
"pallet_democracy",
"conviction",
"Conviction"
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"discriminant": 0
},
{
"name": "Locked1x",
"discriminant": 1
},
{
"name": "Locked2x",
"discriminant": 2
},
{
"name": "Locked3x",
"discriminant": 3
},
{
"name": "Locked4x",
"discriminant": 4
},
{
"name": "Locked5x",
"discriminant": 5
},
{
"name": "Locked6x",
"discriminant": 6
}
]
}
}
},
{
"path": [
"Option"
],
"params": [
5
],
"def": {
"variant": {
"variants": [
{
"name": "None"
},
{
"name": "Some",
"fields": [
{
"type": 5,
"typeName": "T"
}
]
}
]
}
}
},
{
"path": [
"pallet_collective",
"Call"
],
"params": [
23,
44
],
"def": {
"variant": {
"variants": [
{
"name": "set_members",
"fields": [
{
"type": 40,
"typeName": "Vec<T::AccountId>"
},
{
"type": 157,
"typeName": "Option<T::AccountId>"
},
{
"type": 5,
"typeName": "MemberCount"
}
]
},
{
"name": "execute",
"fields": [
{
"type": 117,
"typeName": "Box<<T as Config<I>>::Proposal>"
},
{
"type": 98,
"typeName": "u32"
}
]
},
{
"name": "propose",
"fields": [
{
"type": 98,
"typeName": "MemberCount"
},
{
"type": 117,
"typeName": "Box<<T as Config<I>>::Proposal>"
},
{
"type": 98,
"typeName": "u32"
}
]
},
{
"name": "vote",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
},
{
"type": 98,
"typeName": "ProposalIndex"
},
{
"type": 42,
"typeName": "bool"
}
]
},
{
"name": "close",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
},
{
"type": 98,
"typeName": "ProposalIndex"
},
{
"type": 130,
"typeName": "Weight"
},
{
"type": 98,
"typeName": "u32"
}
]
},
{
"name": "disapprove_proposal",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
}
]
}
]
}
}
},
{
"path": [
"Option"
],
"params": [
1
],
"def": {
"variant": {
"variants": [
{
"name": "None"
},
{
"name": "Some",
"fields": [
{
"type": 1,
"typeName": "T"
}
]
}
]
}
}
},
{
"path": [
"pallet_collective",
"Call"
],
"params": [
23,
47
],
"def": {
"variant": {
"variants": [
{
"name": "set_members",
"fields": [
{
"type": 40,
"typeName": "Vec<T::AccountId>"
},
{
"type": 157,
"typeName": "Option<T::AccountId>"
},
{
"type": 5,
"typeName": "MemberCount"
}
]
},
{
"name": "execute",
"fields": [
{
"type": 117,
"typeName": "Box<<T as Config<I>>::Proposal>"
},
{
"type": 98,
"typeName": "u32"
}
]
},
{
"name": "propose",
"fields": [
{
"type": 98,
"typeName": "MemberCount"
},
{
"type": 117,
"typeName": "Box<<T as Config<I>>::Proposal>"
},
{
"type": 98,
"typeName": "u32"
}
]
},
{
"name": "vote",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
},
{
"type": 98,
"typeName": "ProposalIndex"
},
{
"type": 42,
"typeName": "bool"
}
]
},
{
"name": "close",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
},
{
"type": 98,
"typeName": "ProposalIndex"
},
{
"type": 130,
"typeName": "Weight"
},
{
"type": 98,
"typeName": "u32"
}
]
},
{
"name": "disapprove_proposal",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
}
]
}
]
}
}
},
{
"path": [
"pallet_elections_phragmen",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "vote",
"fields": [
{
"type": 40,
"typeName": "Vec<T::AccountId>"
},
{
"type": 69,
"typeName": "BalanceOf<T>"
}
]
},
{
"name": "remove_voter"
},
{
"name": "submit_candidacy",
"fields": [
{
"type": 98,
"typeName": "u32"
}
]
},
{
"name": "renounce_candidacy",
"fields": [
{
"type": 160,
"typeName": "Renouncing"
}
]
},
{
"name": "remove_member",
"fields": [
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 42,
"typeName": "bool"
}
]
},
{
"name": "clean_defunct_voters",
"fields": [
{
"type": 5,
"typeName": "u32"
},
{
"type": 5,
"typeName": "u32"
}
]
}
]
}
}
},
{
"path": [
"pallet_elections_phragmen",
"Renouncing"
],
"def": {
"variant": {
"variants": [
{
"name": "Member"
},
{
"name": "RunnerUp"
},
{
"name": "Candidate",
"fields": [
{
"type": 98,
"typeName": "u32"
}
]
}
]
}
}
},
{
"path": [
"pallet_membership",
"Call"
],
"params": [
23,
52
],
"def": {
"variant": {
"variants": [
{
"name": "add_member",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "remove_member",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "swap_member",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "reset_members",
"fields": [
{
"type": 40,
"typeName": "Vec<T::AccountId>"
}
]
},
{
"name": "change_key",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "set_prime",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "clear_prime"
}
]
}
}
},
{
"path": [
"pallet_grandpa",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "report_equivocation",
"fields": [
{
"type": 163,
"typeName": "EquivocationProof<T::Hash, T::BlockNumber>"
},
{
"type": 125,
"typeName": "T::KeyOwnerProof"
}
]
},
{
"name": "report_equivocation_unsigned",
"fields": [
{
"type": 163,
"typeName": "EquivocationProof<T::Hash, T::BlockNumber>"
},
{
"type": 125,
"typeName": "T::KeyOwnerProof"
}
]
},
{
"name": "note_stalled",
"fields": [
{
"type": 5,
"typeName": "T::BlockNumber"
},
{
"type": 5,
"typeName": "T::BlockNumber"
}
]
}
]
}
}
},
{
"path": [
"sp_finality_grandpa",
"EquivocationProof"
],
"params": [
10,
5
],
"def": {
"composite": {
"fields": [
{
"name": "set_id",
"type": 9,
"typeName": "SetId"
},
{
"name": "equivocation",
"type": 164,
"typeName": "Equivocation<H, N>"
}
]
}
}
},
{
"path": [
"sp_finality_grandpa",
"Equivocation"
],
"params": [
10,
5
],
"def": {
"variant": {
"variants": [
{
"name": "Prevote",
"fields": [
{
"type": 165,
"typeName": "grandpa::Equivocation<AuthorityId, grandpa::Prevote<H, N>,\nAuthoritySignature>"
}
]
},
{
"name": "Precommit",
"fields": [
{
"type": 171,
"typeName": "grandpa::Equivocation<AuthorityId, grandpa::Precommit<H, N>,\nAuthoritySignature>"
}
]
}
]
}
}
},
{
"path": [
"finality_grandpa",
"Equivocation"
],
"params": [
58,
166,
167
],
"def": {
"composite": {
"fields": [
{
"name": "round_number",
"type": 9,
"typeName": "u64"
},
{
"name": "identity",
"type": 58,
"typeName": "Id"
},
{
"name": "first",
"type": 170,
"typeName": "(V, S)"
},
{
"name": "second",
"type": 170,
"typeName": "(V, S)"
}
]
}
}
},
{
"path": [
"finality_grandpa",
"Prevote"
],
"params": [
10,
5
],
"def": {
"composite": {
"fields": [
{
"name": "target_hash",
"type": 10,
"typeName": "H"
},
{
"name": "target_number",
"type": 5,
"typeName": "N"
}
]
}
}
},
{
"path": [
"sp_finality_grandpa",
"app",
"Signature"
],
"def": {
"composite": {
"fields": [
{
"type": 168,
"typeName": "ed25519::Signature"
}
]
}
}
},
{
"path": [
"sp_core",
"ed25519",
"Signature"
],
"def": {
"composite": {
"fields": [
{
"type": 169,
"typeName": "[u8; 64]"
}
]
}
}
},
{
"def": {
"array": {
"len": 64,
"type": 3
}
}
},
{
"def": {
"tuple": [
166,
167
]
}
},
{
"path": [
"finality_grandpa",
"Equivocation"
],
"params": [
58,
172,
167
],
"def": {
"composite": {
"fields": [
{
"name": "round_number",
"type": 9,
"typeName": "u64"
},
{
"name": "identity",
"type": 58,
"typeName": "Id"
},
{
"name": "first",
"type": 173,
"typeName": "(V, S)"
},
{
"name": "second",
"type": 173,
"typeName": "(V, S)"
}
]
}
}
},
{
"path": [
"finality_grandpa",
"Precommit"
],
"params": [
10,
5
],
"def": {
"composite": {
"fields": [
{
"name": "target_hash",
"type": 10,
"typeName": "H"
},
{
"name": "target_number",
"type": 5,
"typeName": "N"
}
]
}
}
},
{
"def": {
"tuple": [
172,
167
]
}
},
{
"path": [
"pallet_treasury",
"Call"
],
"params": [
23,
61
],
"def": {
"variant": {
"variants": [
{
"name": "propose_spend",
"fields": [
{
"type": 69,
"typeName": "BalanceOf<T, I>"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
}
]
},
{
"name": "reject_proposal",
"fields": [
{
"type": 98,
"typeName": "ProposalIndex"
}
]
},
{
"name": "approve_proposal",
"fields": [
{
"type": 98,
"typeName": "ProposalIndex"
}
]
}
]
}
}
},
{
"path": [
"pallet_contracts",
"pallet",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "update_schedule",
"fields": [
{
"type": 176,
"typeName": "Schedule<T>"
}
]
},
{
"name": "call",
"fields": [
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 69,
"typeName": "BalanceOf<T>"
},
{
"type": 130,
"typeName": "Weight"
},
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "instantiate_with_code",
"fields": [
{
"type": 69,
"typeName": "BalanceOf<T>"
},
{
"type": 130,
"typeName": "Weight"
},
{
"type": 11,
"typeName": "Vec<u8>"
},
{
"type": 11,
"typeName": "Vec<u8>"
},
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "instantiate",
"fields": [
{
"type": 69,
"typeName": "BalanceOf<T>"
},
{
"type": 130,
"typeName": "Weight"
},
{
"type": 10,
"typeName": "CodeHash<T>"
},
{
"type": 11,
"typeName": "Vec<u8>"
},
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "claim_surcharge",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 157,
"typeName": "Option<T::AccountId>"
}
]
}
]
}
}
},
{
"path": [
"pallet_contracts",
"schedule",
"Schedule"
],
"params": [
23
],
"def": {
"composite": {
"fields": [
{
"name": "version",
"type": 5,
"typeName": "u32"
},
{
"name": "enable_println",
"type": 42,
"typeName": "bool"
},
{
"name": "limits",
"type": 177,
"typeName": "Limits"
},
{
"name": "instruction_weights",
"type": 178,
"typeName": "InstructionWeights<T>"
},
{
"name": "host_fn_weights",
"type": 179,
"typeName": "HostFnWeights<T>"
}
]
}
}
},
{
"path": [
"pallet_contracts",
"schedule",
"Limits"
],
"def": {
"composite": {
"fields": [
{
"name": "event_topics",
"type": 5,
"typeName": "u32"
},
{
"name": "stack_height",
"type": 5,
"typeName": "u32"
},
{
"name": "globals",
"type": 5,
"typeName": "u32"
},
{
"name": "parameters",
"type": 5,
"typeName": "u32"
},
{
"name": "memory_pages",
"type": 5,
"typeName": "u32"
},
{
"name": "table_size",
"type": 5,
"typeName": "u32"
},
{
"name": "br_table_size",
"type": 5,
"typeName": "u32"
},
{
"name": "subject_len",
"type": 5,
"typeName": "u32"
}
]
}
}
},
{
"path": [
"pallet_contracts",
"schedule",
"InstructionWeights"
],
"params": [
23
],
"def": {
"composite": {
"fields": [
{
"name": "i64const",
"type": 5,
"typeName": "u32"
},
{
"name": "i64load",
"type": 5,
"typeName": "u32"
},
{
"name": "i64store",
"type": 5,
"typeName": "u32"
},
{
"name": "select",
"type": 5,
"typeName": "u32"
},
{
"name": "r#if",
"type": 5,
"typeName": "u32"
},
{
"name": "br",
"type": 5,
"typeName": "u32"
},
{
"name": "br_if",
"type": 5,
"typeName": "u32"
},
{
"name": "br_table",
"type": 5,
"typeName": "u32"
},
{
"name": "br_table_per_entry",
"type": 5,
"typeName": "u32"
},
{
"name": "call",
"type": 5,
"typeName": "u32"
},
{
"name": "call_indirect",
"type": 5,
"typeName": "u32"
},
{
"name": "call_indirect_per_param",
"type": 5,
"typeName": "u32"
},
{
"name": "local_get",
"type": 5,
"typeName": "u32"
},
{
"name": "local_set",
"type": 5,
"typeName": "u32"
},
{
"name": "local_tee",
"type": 5,
"typeName": "u32"
},
{
"name": "global_get",
"type": 5,
"typeName": "u32"
},
{
"name": "global_set",
"type": 5,
"typeName": "u32"
},
{
"name": "memory_current",
"type": 5,
"typeName": "u32"
},
{
"name": "memory_grow",
"type": 5,
"typeName": "u32"
},
{
"name": "i64clz",
"type": 5,
"typeName": "u32"
},
{
"name": "i64ctz",
"type": 5,
"typeName": "u32"
},
{
"name": "i64popcnt",
"type": 5,
"typeName": "u32"
},
{
"name": "i64eqz",
"type": 5,
"typeName": "u32"
},
{
"name": "i64extendsi32",
"type": 5,
"typeName": "u32"
},
{
"name": "i64extendui32",
"type": 5,
"typeName": "u32"
},
{
"name": "i32wrapi64",
"type": 5,
"typeName": "u32"
},
{
"name": "i64eq",
"type": 5,
"typeName": "u32"
},
{
"name": "i64ne",
"type": 5,
"typeName": "u32"
},
{
"name": "i64lts",
"type": 5,
"typeName": "u32"
},
{
"name": "i64ltu",
"type": 5,
"typeName": "u32"
},
{
"name": "i64gts",
"type": 5,
"typeName": "u32"
},
{
"name": "i64gtu",
"type": 5,
"typeName": "u32"
},
{
"name": "i64les",
"type": 5,
"typeName": "u32"
},
{
"name": "i64leu",
"type": 5,
"typeName": "u32"
},
{
"name": "i64ges",
"type": 5,
"typeName": "u32"
},
{
"name": "i64geu",
"type": 5,
"typeName": "u32"
},
{
"name": "i64add",
"type": 5,
"typeName": "u32"
},
{
"name": "i64sub",
"type": 5,
"typeName": "u32"
},
{
"name": "i64mul",
"type": 5,
"typeName": "u32"
},
{
"name": "i64divs",
"type": 5,
"typeName": "u32"
},
{
"name": "i64divu",
"type": 5,
"typeName": "u32"
},
{
"name": "i64rems",
"type": 5,
"typeName": "u32"
},
{
"name": "i64remu",
"type": 5,
"typeName": "u32"
},
{
"name": "i64and",
"type": 5,
"typeName": "u32"
},
{
"name": "i64or",
"type": 5,
"typeName": "u32"
},
{
"name": "i64xor",
"type": 5,
"typeName": "u32"
},
{
"name": "i64shl",
"type": 5,
"typeName": "u32"
},
{
"name": "i64shrs",
"type": 5,
"typeName": "u32"
},
{
"name": "i64shru",
"type": 5,
"typeName": "u32"
},
{
"name": "i64rotl",
"type": 5,
"typeName": "u32"
},
{
"name": "i64rotr",
"type": 5,
"typeName": "u32"
}
]
}
}
},
{
"path": [
"pallet_contracts",
"schedule",
"HostFnWeights"
],
"params": [
23
],
"def": {
"composite": {
"fields": [
{
"name": "caller",
"type": 9,
"typeName": "Weight"
},
{
"name": "address",
"type": 9,
"typeName": "Weight"
},
{
"name": "gas_left",
"type": 9,
"typeName": "Weight"
},
{
"name": "balance",
"type": 9,
"typeName": "Weight"
},
{
"name": "value_transferred",
"type": 9,
"typeName": "Weight"
},
{
"name": "minimum_balance",
"type": 9,
"typeName": "Weight"
},
{
"name": "tombstone_deposit",
"type": 9,
"typeName": "Weight"
},
{
"name": "rent_allowance",
"type": 9,
"typeName": "Weight"
},
{
"name": "block_number",
"type": 9,
"typeName": "Weight"
},
{
"name": "now",
"type": 9,
"typeName": "Weight"
},
{
"name": "weight_to_fee",
"type": 9,
"typeName": "Weight"
},
{
"name": "gas",
"type": 9,
"typeName": "Weight"
},
{
"name": "input",
"type": 9,
"typeName": "Weight"
},
{
"name": "input_per_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "r#return",
"type": 9,
"typeName": "Weight"
},
{
"name": "return_per_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "terminate",
"type": 9,
"typeName": "Weight"
},
{
"name": "terminate_per_code_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "restore_to",
"type": 9,
"typeName": "Weight"
},
{
"name": "restore_to_per_caller_code_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "restore_to_per_tombstone_code_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "restore_to_per_delta",
"type": 9,
"typeName": "Weight"
},
{
"name": "random",
"type": 9,
"typeName": "Weight"
},
{
"name": "deposit_event",
"type": 9,
"typeName": "Weight"
},
{
"name": "deposit_event_per_topic",
"type": 9,
"typeName": "Weight"
},
{
"name": "deposit_event_per_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "set_rent_allowance",
"type": 9,
"typeName": "Weight"
},
{
"name": "set_storage",
"type": 9,
"typeName": "Weight"
},
{
"name": "set_storage_per_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "clear_storage",
"type": 9,
"typeName": "Weight"
},
{
"name": "get_storage",
"type": 9,
"typeName": "Weight"
},
{
"name": "get_storage_per_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "transfer",
"type": 9,
"typeName": "Weight"
},
{
"name": "call",
"type": 9,
"typeName": "Weight"
},
{
"name": "call_per_code_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "call_transfer_surcharge",
"type": 9,
"typeName": "Weight"
},
{
"name": "call_per_input_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "call_per_output_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "instantiate",
"type": 9,
"typeName": "Weight"
},
{
"name": "instantiate_per_code_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "instantiate_per_input_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "instantiate_per_output_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "instantiate_per_salt_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "hash_sha2_256",
"type": 9,
"typeName": "Weight"
},
{
"name": "hash_sha2_256_per_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "hash_keccak_256",
"type": 9,
"typeName": "Weight"
},
{
"name": "hash_keccak_256_per_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "hash_blake2_256",
"type": 9,
"typeName": "Weight"
},
{
"name": "hash_blake2_256_per_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "hash_blake2_128",
"type": 9,
"typeName": "Weight"
},
{
"name": "hash_blake2_128_per_byte",
"type": 9,
"typeName": "Weight"
},
{
"name": "rent_params",
"type": 9,
"typeName": "Weight"
}
]
}
}
},
{
"path": [
"pallet_sudo",
"pallet",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "sudo",
"fields": [
{
"type": 117,
"typeName": "Box<<T as Config>::Call>"
}
]
},
{
"name": "sudo_unchecked_weight",
"fields": [
{
"type": 117,
"typeName": "Box<<T as Config>::Call>"
},
{
"type": 9,
"typeName": "Weight"
}
]
},
{
"name": "set_key",
"fields": [
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
}
]
},
{
"name": "sudo_as",
"fields": [
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 117,
"typeName": "Box<<T as Config>::Call>"
}
]
}
]
}
}
},
{
"path": [
"pallet_im_online",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "heartbeat",
"fields": [
{
"type": 182,
"typeName": "Heartbeat<T::BlockNumber>"
},
{
"type": 187,
"typeName": "<T::AuthorityId as RuntimeAppPublic>::Signature"
}
]
}
]
}
}
},
{
"path": [
"pallet_im_online",
"Heartbeat"
],
"params": [
5
],
"def": {
"composite": {
"fields": [
{
"name": "block_number",
"type": 5,
"typeName": "BlockNumber"
},
{
"name": "network_state",
"type": 183,
"typeName": "OpaqueNetworkState"
},
{
"name": "session_index",
"type": 5,
"typeName": "SessionIndex"
},
{
"name": "authority_index",
"type": 5,
"typeName": "AuthIndex"
},
{
"name": "validators_len",
"type": 5,
"typeName": "u32"
}
]
}
}
},
{
"path": [
"sp_core",
"offchain",
"OpaqueNetworkState"
],
"def": {
"composite": {
"fields": [
{
"name": "peer_id",
"type": 184,
"typeName": "OpaquePeerId"
},
{
"name": "external_addresses",
"type": 185,
"typeName": "Vec<OpaqueMultiaddr>"
}
]
}
}
},
{
"path": [
"sp_core",
"OpaquePeerId"
],
"def": {
"composite": {
"fields": [
{
"type": 11,
"typeName": "Vec<u8>"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 186
}
}
},
{
"path": [
"sp_core",
"offchain",
"OpaqueMultiaddr"
],
"def": {
"composite": {
"fields": [
{
"type": 11,
"typeName": "Vec<u8>"
}
]
}
}
},
{
"path": [
"pallet_im_online",
"sr25519",
"app_sr25519",
"Signature"
],
"def": {
"composite": {
"fields": [
{
"type": 188,
"typeName": "sr25519::Signature"
}
]
}
}
},
{
"path": [
"sp_core",
"sr25519",
"Signature"
],
"def": {
"composite": {
"fields": [
{
"type": 169,
"typeName": "[u8; 64]"
}
]
}
}
},
{
"path": [
"pallet_authority_discovery",
"Call"
],
"params": [
23
],
"def": {
"variant": {}
}
},
{
"path": [
"pallet_offences",
"Call"
],
"params": [
23
],
"def": {
"variant": {}
}
},
{
"path": [
"pallet_randomness_collective_flip",
"Call"
],
"params": [
23
],
"def": {
"variant": {}
}
},
{
"path": [
"pallet_identity",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "add_registrar",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "set_identity",
"fields": [
{
"type": 193,
"typeName": "IdentityInfo"
}
]
},
{
"name": "set_subs",
"fields": [
{
"type": 198,
"typeName": "Vec<(T::AccountId, Data)>"
}
]
},
{
"name": "clear_identity"
},
{
"name": "request_judgement",
"fields": [
{
"type": 98,
"typeName": "RegistrarIndex"
},
{
"type": 69,
"typeName": "BalanceOf<T>"
}
]
},
{
"name": "cancel_request",
"fields": [
{
"type": 5,
"typeName": "RegistrarIndex"
}
]
},
{
"name": "set_fee",
"fields": [
{
"type": 98,
"typeName": "RegistrarIndex"
},
{
"type": 69,
"typeName": "BalanceOf<T>"
}
]
},
{
"name": "set_account_id",
"fields": [
{
"type": 98,
"typeName": "RegistrarIndex"
},
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "set_fields",
"fields": [
{
"type": 98,
"typeName": "RegistrarIndex"
},
{
"type": 200,
"typeName": "IdentityFields"
}
]
},
{
"name": "provide_judgement",
"fields": [
{
"type": 98,
"typeName": "RegistrarIndex"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 201,
"typeName": "Judgement<BalanceOf<T>>"
}
]
},
{
"name": "kill_identity",
"fields": [
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
}
]
},
{
"name": "add_sub",
"fields": [
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 196,
"typeName": "Data"
}
]
},
{
"name": "rename_sub",
"fields": [
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 196,
"typeName": "Data"
}
]
},
{
"name": "remove_sub",
"fields": [
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
}
]
},
{
"name": "quit_sub"
}
]
}
}
},
{
"path": [
"pallet_identity",
"IdentityInfo"
],
"def": {
"composite": {
"fields": [
{
"name": "additional",
"type": 194,
"typeName": "Vec<(Data, Data)>"
},
{
"name": "display",
"type": 196,
"typeName": "Data"
},
{
"name": "legal",
"type": 196,
"typeName": "Data"
},
{
"name": "web",
"type": 196,
"typeName": "Data"
},
{
"name": "riot",
"type": 196,
"typeName": "Data"
},
{
"name": "email",
"type": 196,
"typeName": "Data"
},
{
"name": "pgp_fingerprint",
"type": 197,
"typeName": "Option<[u8; 20]>"
},
{
"name": "image",
"type": 196,
"typeName": "Data"
},
{
"name": "twitter",
"type": 196,
"typeName": "Data"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 195
}
}
},
{
"def": {
"tuple": [
196,
196
]
}
},
{
"path": [
"pallet_identity",
"Data"
],
"def": {
"variant": {
"variants": [
{
"name": "None"
},
{
"name": "Raw",
"fields": [
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "BlakeTwo256",
"fields": [
{
"type": 2,
"typeName": "[u8; 32]"
}
]
},
{
"name": "Sha256",
"fields": [
{
"type": 2,
"typeName": "[u8; 32]"
}
]
},
{
"name": "Keccak256",
"fields": [
{
"type": 2,
"typeName": "[u8; 32]"
}
]
},
{
"name": "ShaThree256",
"fields": [
{
"type": 2,
"typeName": "[u8; 32]"
}
]
}
]
}
}
},
{
"path": [
"Option"
],
"params": [
136
],
"def": {
"variant": {
"variants": [
{
"name": "None"
},
{
"name": "Some",
"fields": [
{
"type": 136,
"typeName": "T"
}
]
}
]
}
}
},
{
"def": {
"sequence": {
"type": 199
}
}
},
{
"def": {
"tuple": [
1,
196
]
}
},
{
"path": [
"pallet_identity",
"IdentityFields"
],
"def": {
"composite": {
"fields": [
{
"type": 9,
"typeName": "BitFlags<IdentityField>"
}
]
}
}
},
{
"path": [
"pallet_identity",
"Judgement"
],
"params": [
7
],
"def": {
"variant": {
"variants": [
{
"name": "Unknown"
},
{
"name": "FeePaid",
"fields": [
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "Reasonable"
},
{
"name": "KnownGood"
},
{
"name": "OutOfDate"
},
{
"name": "LowQuality"
},
{
"name": "Erroneous"
}
]
}
}
},
{
"path": [
"pallet_society",
"Call"
],
"params": [
23,
77
],
"def": {
"variant": {
"variants": [
{
"name": "bid",
"fields": [
{
"type": 7,
"typeName": "BalanceOf<T, I>"
}
]
},
{
"name": "unbid",
"fields": [
{
"type": 5,
"typeName": "u32"
}
]
},
{
"name": "vouch",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 7,
"typeName": "BalanceOf<T, I>"
},
{
"type": 7,
"typeName": "BalanceOf<T, I>"
}
]
},
{
"name": "unvouch",
"fields": [
{
"type": 5,
"typeName": "u32"
}
]
},
{
"name": "vote",
"fields": [
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 42,
"typeName": "bool"
}
]
},
{
"name": "defender_vote",
"fields": [
{
"type": 42,
"typeName": "bool"
}
]
},
{
"name": "payout"
},
{
"name": "found",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 5,
"typeName": "u32"
},
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "unfound"
},
{
"name": "judge_suspended_member",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 42,
"typeName": "bool"
}
]
},
{
"name": "judge_suspended_candidate",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 203,
"typeName": "Judgement"
}
]
},
{
"name": "set_max_members",
"fields": [
{
"type": 5,
"typeName": "u32"
}
]
}
]
}
}
},
{
"path": [
"pallet_society",
"Judgement"
],
"def": {
"variant": {
"variants": [
{
"name": "Rebid",
"discriminant": 0
},
{
"name": "Reject",
"discriminant": 1
},
{
"name": "Approve",
"discriminant": 2
}
]
}
}
},
{
"path": [
"pallet_recovery",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "as_recovered",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 117,
"typeName": "Box<<T as Config>::Call>"
}
]
},
{
"name": "set_recovered",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "create_recovery",
"fields": [
{
"type": 40,
"typeName": "Vec<T::AccountId>"
},
{
"type": 85,
"typeName": "u16"
},
{
"type": 5,
"typeName": "T::BlockNumber"
}
]
},
{
"name": "initiate_recovery",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "vouch_recovery",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "claim_recovery",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "close_recovery",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "remove_recovery"
},
{
"name": "cancel_recovered",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
}
]
}
]
}
}
},
{
"path": [
"pallet_vesting",
"pallet",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "vest"
},
{
"name": "vest_other",
"fields": [
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
}
]
},
{
"name": "vested_transfer",
"fields": [
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 206,
"typeName": "VestingInfo<BalanceOf<T>, T::BlockNumber>"
}
]
},
{
"name": "force_vested_transfer",
"fields": [
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 206,
"typeName": "VestingInfo<BalanceOf<T>, T::BlockNumber>"
}
]
}
]
}
}
},
{
"path": [
"pallet_vesting",
"VestingInfo"
],
"params": [
7,
5
],
"def": {
"composite": {
"fields": [
{
"name": "locked",
"type": 7,
"typeName": "Balance"
},
{
"name": "per_block",
"type": 7,
"typeName": "Balance"
},
{
"name": "starting_block",
"type": 5,
"typeName": "BlockNumber"
}
]
}
}
},
{
"path": [
"pallet_scheduler",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "schedule",
"fields": [
{
"type": 5,
"typeName": "T::BlockNumber"
},
{
"type": 208,
"typeName": "Option<schedule::Period<T::BlockNumber>>"
},
{
"type": 3,
"typeName": "schedule::Priority"
},
{
"type": 117,
"typeName": "Box<<T as Config>::Call>"
}
]
},
{
"name": "cancel",
"fields": [
{
"type": 5,
"typeName": "T::BlockNumber"
},
{
"type": 5,
"typeName": "u32"
}
]
},
{
"name": "schedule_named",
"fields": [
{
"type": 11,
"typeName": "Vec<u8>"
},
{
"type": 5,
"typeName": "T::BlockNumber"
},
{
"type": 208,
"typeName": "Option<schedule::Period<T::BlockNumber>>"
},
{
"type": 3,
"typeName": "schedule::Priority"
},
{
"type": 117,
"typeName": "Box<<T as Config>::Call>"
}
]
},
{
"name": "cancel_named",
"fields": [
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "schedule_after",
"fields": [
{
"type": 5,
"typeName": "T::BlockNumber"
},
{
"type": 208,
"typeName": "Option<schedule::Period<T::BlockNumber>>"
},
{
"type": 3,
"typeName": "schedule::Priority"
},
{
"type": 117,
"typeName": "Box<<T as Config>::Call>"
}
]
},
{
"name": "schedule_named_after",
"fields": [
{
"type": 11,
"typeName": "Vec<u8>"
},
{
"type": 5,
"typeName": "T::BlockNumber"
},
{
"type": 208,
"typeName": "Option<schedule::Period<T::BlockNumber>>"
},
{
"type": 3,
"typeName": "schedule::Priority"
},
{
"type": 117,
"typeName": "Box<<T as Config>::Call>"
}
]
}
]
}
}
},
{
"path": [
"Option"
],
"params": [
81
],
"def": {
"variant": {
"variants": [
{
"name": "None"
},
{
"name": "Some",
"fields": [
{
"type": 81,
"typeName": "T"
}
]
}
]
}
}
},
{
"path": [
"pallet_proxy",
"pallet",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "proxy",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 210,
"typeName": "Option<T::ProxyType>"
},
{
"type": 117,
"typeName": "Box<<T as Config>::Call>"
}
]
},
{
"name": "add_proxy",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 84,
"typeName": "T::ProxyType"
},
{
"type": 5,
"typeName": "T::BlockNumber"
}
]
},
{
"name": "remove_proxy",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 84,
"typeName": "T::ProxyType"
},
{
"type": 5,
"typeName": "T::BlockNumber"
}
]
},
{
"name": "remove_proxies"
},
{
"name": "anonymous",
"fields": [
{
"type": 84,
"typeName": "T::ProxyType"
},
{
"type": 5,
"typeName": "T::BlockNumber"
},
{
"type": 85,
"typeName": "u16"
}
]
},
{
"name": "kill_anonymous",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 84,
"typeName": "T::ProxyType"
},
{
"type": 85,
"typeName": "u16"
},
{
"type": 98,
"typeName": "T::BlockNumber"
},
{
"type": 98,
"typeName": "u32"
}
]
},
{
"name": "announce",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 10,
"typeName": "CallHashOf<T>"
}
]
},
{
"name": "remove_announcement",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 10,
"typeName": "CallHashOf<T>"
}
]
},
{
"name": "reject_announcement",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 10,
"typeName": "CallHashOf<T>"
}
]
},
{
"name": "proxy_announced",
"fields": [
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 210,
"typeName": "Option<T::ProxyType>"
},
{
"type": 117,
"typeName": "Box<<T as Config>::Call>"
}
]
}
]
}
}
},
{
"path": [
"Option"
],
"params": [
84
],
"def": {
"variant": {
"variants": [
{
"name": "None"
},
{
"name": "Some",
"fields": [
{
"type": 84,
"typeName": "T"
}
]
}
]
}
}
},
{
"path": [
"pallet_multisig",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "as_multi_threshold_1",
"fields": [
{
"type": 40,
"typeName": "Vec<T::AccountId>"
},
{
"type": 117,
"typeName": "Box<<T as Config>::Call>"
}
]
},
{
"name": "as_multi",
"fields": [
{
"type": 85,
"typeName": "u16"
},
{
"type": 40,
"typeName": "Vec<T::AccountId>"
},
{
"type": 212,
"typeName": "Option<Timepoint<T::BlockNumber>>"
},
{
"type": 11,
"typeName": "OpaqueCall"
},
{
"type": 42,
"typeName": "bool"
},
{
"type": 9,
"typeName": "Weight"
}
]
},
{
"name": "approve_as_multi",
"fields": [
{
"type": 85,
"typeName": "u16"
},
{
"type": 40,
"typeName": "Vec<T::AccountId>"
},
{
"type": 212,
"typeName": "Option<Timepoint<T::BlockNumber>>"
},
{
"type": 2,
"typeName": "[u8; 32]"
},
{
"type": 9,
"typeName": "Weight"
}
]
},
{
"name": "cancel_as_multi",
"fields": [
{
"type": 85,
"typeName": "u16"
},
{
"type": 40,
"typeName": "Vec<T::AccountId>"
},
{
"type": 87,
"typeName": "Timepoint<T::BlockNumber>"
},
{
"type": 2,
"typeName": "[u8; 32]"
}
]
}
]
}
}
},
{
"path": [
"Option"
],
"params": [
87
],
"def": {
"variant": {
"variants": [
{
"name": "None"
},
{
"name": "Some",
"fields": [
{
"type": 87,
"typeName": "T"
}
]
}
]
}
}
},
{
"path": [
"pallet_bounties",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "propose_bounty",
"fields": [
{
"type": 69,
"typeName": "BalanceOf<T>"
},
{
"type": 11,
"typeName": "Vec<u8>"
}
]
},
{
"name": "approve_bounty",
"fields": [
{
"type": 98,
"typeName": "BountyIndex"
}
]
},
{
"name": "propose_curator",
"fields": [
{
"type": 98,
"typeName": "BountyIndex"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 69,
"typeName": "BalanceOf<T>"
}
]
},
{
"name": "unassign_curator",
"fields": [
{
"type": 98,
"typeName": "BountyIndex"
}
]
},
{
"name": "accept_curator",
"fields": [
{
"type": 98,
"typeName": "BountyIndex"
}
]
},
{
"name": "award_bounty",
"fields": [
{
"type": 98,
"typeName": "BountyIndex"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
}
]
},
{
"name": "claim_bounty",
"fields": [
{
"type": 98,
"typeName": "BountyIndex"
}
]
},
{
"name": "close_bounty",
"fields": [
{
"type": 98,
"typeName": "BountyIndex"
}
]
},
{
"name": "extend_bounty_expiry",
"fields": [
{
"type": 98,
"typeName": "BountyIndex"
},
{
"type": 11,
"typeName": "Vec<u8>"
}
]
}
]
}
}
},
{
"path": [
"pallet_tips",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "report_awesome",
"fields": [
{
"type": 11,
"typeName": "Vec<u8>"
},
{
"type": 1,
"typeName": "T::AccountId"
}
]
},
{
"name": "retract_tip",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
}
]
},
{
"name": "tip_new",
"fields": [
{
"type": 11,
"typeName": "Vec<u8>"
},
{
"type": 1,
"typeName": "T::AccountId"
},
{
"type": 69,
"typeName": "BalanceOf<T>"
}
]
},
{
"name": "tip",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
},
{
"type": 69,
"typeName": "BalanceOf<T>"
}
]
},
{
"name": "close_tip",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
}
]
},
{
"name": "slash_tip",
"fields": [
{
"type": 10,
"typeName": "T::Hash"
}
]
}
]
}
}
},
{
"path": [
"pallet_assets",
"pallet",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "create",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 9,
"typeName": "T::Balance"
}
]
},
{
"name": "force_create",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 42,
"typeName": "bool"
},
{
"type": 130,
"typeName": "T::Balance"
}
]
},
{
"name": "destroy",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 216,
"typeName": "DestroyWitness"
}
]
},
{
"name": "mint",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 130,
"typeName": "T::Balance"
}
]
},
{
"name": "burn",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 130,
"typeName": "T::Balance"
}
]
},
{
"name": "transfer",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 130,
"typeName": "T::Balance"
}
]
},
{
"name": "transfer_keep_alive",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 130,
"typeName": "T::Balance"
}
]
},
{
"name": "force_transfer",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 130,
"typeName": "T::Balance"
}
]
},
{
"name": "freeze",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
}
]
},
{
"name": "thaw",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
}
]
},
{
"name": "freeze_asset",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
}
]
},
{
"name": "thaw_asset",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
}
]
},
{
"name": "transfer_ownership",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
}
]
},
{
"name": "set_team",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
}
]
},
{
"name": "set_metadata",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 11,
"typeName": "Vec<u8>"
},
{
"type": 11,
"typeName": "Vec<u8>"
},
{
"type": 3,
"typeName": "u8"
}
]
},
{
"name": "clear_metadata",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
}
]
},
{
"name": "force_set_metadata",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 11,
"typeName": "Vec<u8>"
},
{
"type": 11,
"typeName": "Vec<u8>"
},
{
"type": 3,
"typeName": "u8"
},
{
"type": 42,
"typeName": "bool"
}
]
},
{
"name": "force_clear_metadata",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
}
]
},
{
"name": "force_asset_status",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 130,
"typeName": "T::Balance"
},
{
"type": 42,
"typeName": "bool"
},
{
"type": 42,
"typeName": "bool"
}
]
},
{
"name": "approve_transfer",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 130,
"typeName": "T::Balance"
}
]
},
{
"name": "cancel_approval",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
}
]
},
{
"name": "force_cancel_approval",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
}
]
},
{
"name": "transfer_approved",
"fields": [
{
"type": 98,
"typeName": "T::AssetId"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 135,
"typeName": "<T::Lookup as StaticLookup>::Source"
},
{
"type": 130,
"typeName": "T::Balance"
}
]
}
]
}
}
},
{
"path": [
"pallet_assets",
"types",
"DestroyWitness"
],
"def": {
"composite": {
"fields": [
{
"name": "accounts",
"type": 98,
"typeName": "u32"
},
{
"name": "sufficients",
"type": 98,
"typeName": "u32"
},
{
"name": "approvals",
"type": 98,
"typeName": "u32"
}
]
}
}
},
{
"path": [
"pallet_lottery",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "buy_ticket",
"fields": [
{
"type": 117,
"typeName": "Box<<T as Config>::Call>"
}
]
},
{
"name": "set_calls",
"fields": [
{
"type": 116,
"typeName": "Vec<<T as Config>::Call>"
}
]
},
{
"name": "start_lottery",
"fields": [
{
"type": 7,
"typeName": "BalanceOf<T>"
},
{
"type": 5,
"typeName": "T::BlockNumber"
},
{
"type": 5,
"typeName": "T::BlockNumber"
},
{
"type": 42,
"typeName": "bool"
}
]
},
{
"name": "stop_repeat"
}
]
}
}
},
{
"path": [
"pallet_gilt",
"pallet",
"Call"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "place_bid",
"fields": [
{
"type": 69,
"typeName": "BalanceOf<T>"
},
{
"type": 5,
"typeName": "u32"
}
]
},
{
"name": "retract_bid",
"fields": [
{
"type": 69,
"typeName": "BalanceOf<T>"
},
{
"type": 5,
"typeName": "u32"
}
]
},
{
"name": "set_target",
"fields": [
{
"type": 219,
"typeName": "Perquintill"
}
]
},
{
"name": "thaw",
"fields": [
{
"type": 98,
"typeName": "ActiveIndex"
}
]
}
]
}
}
},
{
"def": {
"compact": {
"type": 220
}
}
},
{
"path": [
"sp_arithmetic",
"per_things",
"Perquintill"
],
"def": {
"composite": {
"fields": [
{
"type": 9,
"typeName": "u64"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 222
}
}
},
{
"def": {
"tuple": [
123,
9
]
}
},
{
"def": {
"sequence": {
"type": 2
}
}
},
{
"path": [
"Option"
],
"params": [
2
],
"def": {
"variant": {
"variants": [
{
"name": "None"
},
{
"name": "Some",
"fields": [
{
"type": 2,
"typeName": "T"
}
]
}
]
}
}
},
{
"path": [
"sp_consensus_babe",
"BabeEpochConfiguration"
],
"def": {
"composite": {
"fields": [
{
"name": "c",
"type": 127,
"typeName": "(u64, u64)"
},
{
"name": "allowed_slots",
"type": 128,
"typeName": "AllowedSlots"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 227
}
}
},
{
"path": [
"pallet_authorship",
"UncleEntryItem"
],
"params": [
5,
10,
1
],
"def": {
"variant": {
"variants": [
{
"name": "InclusionHeight",
"fields": [
{
"type": 5,
"typeName": "BlockNumber"
}
]
},
{
"name": "Uncle",
"fields": [
{
"type": 10,
"typeName": "Hash"
},
{
"type": 157,
"typeName": "Option<Author>"
}
]
}
]
}
}
},
{
"def": {
"tuple": [
1,
7,
42
]
}
},
{
"def": {
"sequence": {
"type": 230
}
}
},
{
"path": [
"pallet_balances",
"BalanceLock"
],
"params": [
7
],
"def": {
"composite": {
"fields": [
{
"name": "id",
"type": 115,
"typeName": "LockIdentifier"
},
{
"name": "amount",
"type": 7,
"typeName": "Balance"
},
{
"name": "reasons",
"type": 231,
"typeName": "Reasons"
}
]
}
}
},
{
"path": [
"pallet_balances",
"Reasons"
],
"def": {
"variant": {
"variants": [
{
"name": "Fee",
"discriminant": 0
},
{
"name": "Misc",
"discriminant": 1
},
{
"name": "All",
"discriminant": 2
}
]
}
}
},
{
"path": [
"pallet_balances",
"Releases"
],
"def": {
"variant": {
"variants": [
{
"name": "V1_0_0",
"discriminant": 0
},
{
"name": "V2_0_0",
"discriminant": 1
}
]
}
}
},
{
"path": [
"sp_arithmetic",
"fixed_point",
"FixedU128"
],
"def": {
"composite": {
"fields": [
{
"type": 7,
"typeName": "u128"
}
]
}
}
},
{
"path": [
"pallet_transaction_payment",
"Releases"
],
"def": {
"variant": {
"variants": [
{
"name": "V1Ancient",
"discriminant": 0
},
{
"name": "V2",
"discriminant": 1
}
]
}
}
},
{
"def": {
"sequence": {
"type": 236
}
}
},
{
"path": [
"frame_support",
"weights",
"WeightToFeeCoefficient"
],
"params": [
7
],
"def": {
"composite": {
"fields": [
{
"name": "coeff_integer",
"type": 7,
"typeName": "Balance"
},
{
"name": "coeff_frac",
"type": 100,
"typeName": "Perbill"
},
{
"name": "negative",
"type": 42,
"typeName": "bool"
},
{
"name": "degree",
"type": 3,
"typeName": "u8"
}
]
}
}
},
{
"path": [
"pallet_election_provider_multi_phase",
"Phase"
],
"params": [
5
],
"def": {
"variant": {
"variants": [
{
"name": "Off"
},
{
"name": "Signed"
},
{
"name": "Unsigned",
"fields": [
{
"type": 238,
"typeName": "(bool, Bn)"
}
]
}
]
}
}
},
{
"def": {
"tuple": [
42,
5
]
}
},
{
"path": [
"pallet_election_provider_multi_phase",
"ReadySolution"
],
"params": [
1
],
"def": {
"composite": {
"fields": [
{
"name": "supports",
"type": 240,
"typeName": "Supports<A>"
},
{
"name": "score",
"type": 139,
"typeName": "ElectionScore"
},
{
"name": "compute",
"type": 35,
"typeName": "ElectionCompute"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 241
}
}
},
{
"def": {
"tuple": [
1,
242
]
}
},
{
"path": [
"sp_npos_elections",
"Support"
],
"params": [
1
],
"def": {
"composite": {
"fields": [
{
"name": "total",
"type": 7,
"typeName": "ExtendedBalance"
},
{
"name": "voters",
"type": 49,
"typeName": "Vec<(AccountId, ExtendedBalance)>"
}
]
}
}
},
{
"path": [
"pallet_election_provider_multi_phase",
"RoundSnapshot"
],
"params": [
1
],
"def": {
"composite": {
"fields": [
{
"name": "voters",
"type": 244,
"typeName": "Vec<(A, VoteWeight, Vec<A>)>"
},
{
"name": "targets",
"type": 40,
"typeName": "Vec<A>"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 245
}
}
},
{
"def": {
"tuple": [
1,
9,
40
]
}
},
{
"path": [
"pallet_staking",
"StakingLedger"
],
"params": [
1,
7
],
"def": {
"composite": {
"fields": [
{
"name": "stash",
"type": 1,
"typeName": "AccountId"
},
{
"name": "total",
"type": 69,
"typeName": "Balance"
},
{
"name": "active",
"type": 69,
"typeName": "Balance"
},
{
"name": "unlocking",
"type": 247,
"typeName": "Vec<UnlockChunk<Balance>>"
},
{
"name": "claimed_rewards",
"type": 147,
"typeName": "Vec<EraIndex>"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 248
}
}
},
{
"path": [
"pallet_staking",
"UnlockChunk"
],
"params": [
7
],
"def": {
"composite": {
"fields": [
{
"name": "value",
"type": 69,
"typeName": "Balance"
},
{
"name": "era",
"type": 98,
"typeName": "EraIndex"
}
]
}
}
},
{
"path": [
"pallet_staking",
"Nominations"
],
"params": [
1
],
"def": {
"composite": {
"fields": [
{
"name": "targets",
"type": 40,
"typeName": "Vec<AccountId>"
},
{
"name": "submitted_in",
"type": 5,
"typeName": "EraIndex"
},
{
"name": "suppressed",
"type": 42,
"typeName": "bool"
}
]
}
}
},
{
"path": [
"pallet_staking",
"ActiveEraInfo"
],
"def": {
"composite": {
"fields": [
{
"name": "index",
"type": 5,
"typeName": "EraIndex"
},
{
"name": "start",
"type": 107,
"typeName": "Option<u64>"
}
]
}
}
},
{
"path": [
"pallet_staking",
"EraRewardPoints"
],
"params": [
1
],
"def": {
"composite": {
"fields": [
{
"name": "total",
"type": 5,
"typeName": "RewardPoint"
},
{
"name": "individual",
"type": 252,
"typeName": "BTreeMap<AccountId, RewardPoint>"
}
]
}
}
},
{
"path": [
"BTreeMap"
],
"params": [
253
],
"def": {
"composite": {
"fields": [
{
"type": 254,
"typeName": "[(K, V)]"
}
]
}
}
},
{
"def": {
"tuple": [
1,
5
]
}
},
{
"def": {
"sequence": {
"type": 253
}
}
},
{
"path": [
"pallet_staking",
"Forcing"
],
"def": {
"variant": {
"variants": [
{
"name": "NotForcing",
"discriminant": 0
},
{
"name": "ForceNew",
"discriminant": 1
},
{
"name": "ForceNone",
"discriminant": 2
},
{
"name": "ForceAlways",
"discriminant": 3
}
]
}
}
},
{
"def": {
"sequence": {
"type": 257
}
}
},
{
"path": [
"pallet_staking",
"UnappliedSlash"
],
"params": [
1,
7
],
"def": {
"composite": {
"fields": [
{
"name": "validator",
"type": 1,
"typeName": "AccountId"
},
{
"name": "own",
"type": 7,
"typeName": "Balance"
},
{
"name": "others",
"type": 49,
"typeName": "Vec<(AccountId, Balance)>"
},
{
"name": "reporters",
"type": 40,
"typeName": "Vec<AccountId>"
},
{
"name": "payout",
"type": 7,
"typeName": "Balance"
}
]
}
}
},
{
"def": {
"tuple": [
100,
7
]
}
},
{
"path": [
"pallet_staking",
"slashing",
"SlashingSpans"
],
"def": {
"composite": {
"fields": [
{
"name": "span_index",
"type": 5,
"typeName": "SpanIndex"
},
{
"name": "last_start",
"type": 5,
"typeName": "EraIndex"
},
{
"name": "last_nonzero_slash",
"type": 5,
"typeName": "EraIndex"
},
{
"name": "prior",
"type": 147,
"typeName": "Vec<EraIndex>"
}
]
}
}
},
{
"path": [
"pallet_staking",
"slashing",
"SpanRecord"
],
"params": [
7
],
"def": {
"composite": {
"fields": [
{
"name": "slashed",
"type": 7,
"typeName": "Balance"
},
{
"name": "paid_out",
"type": 7,
"typeName": "Balance"
}
]
}
}
},
{
"path": [
"pallet_staking",
"Releases"
],
"def": {
"variant": {
"variants": [
{
"name": "V1_0_0Ancient",
"discriminant": 0
},
{
"name": "V2_0_0",
"discriminant": 1
},
{
"name": "V3_0_0",
"discriminant": 2
},
{
"name": "V4_0_0",
"discriminant": 3
},
{
"name": "V5_0_0",
"discriminant": 4
},
{
"name": "V6_0_0",
"discriminant": 5
}
]
}
}
},
{
"def": {
"sequence": {
"type": 263
}
}
},
{
"def": {
"tuple": [
1,
149
]
}
},
{
"def": {
"tuple": [
265,
11
]
}
},
{
"path": [
"sp_core",
"crypto",
"KeyTypeId"
],
"def": {
"composite": {
"fields": [
{
"type": 15,
"typeName": "[u8; 4]"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 267
}
}
},
{
"def": {
"tuple": [
5,
10,
1
]
}
},
{
"def": {
"tuple": [
40,
7
]
}
},
{
"path": [
"pallet_democracy",
"PreimageStatus"
],
"params": [
1,
7,
5
],
"def": {
"variant": {
"variants": [
{
"name": "Missing",
"fields": [
{
"type": 5,
"typeName": "BlockNumber"
}
]
},
{
"name": "Available",
"fields": [
{
"name": "data",
"type": 11,
"typeName": "Vec<u8>"
},
{
"name": "provider",
"type": 1,
"typeName": "AccountId"
},
{
"name": "deposit",
"type": 7,
"typeName": "Balance"
},
{
"name": "since",
"type": 5,
"typeName": "BlockNumber"
},
{
"name": "expiry",
"type": 155,
"typeName": "Option<BlockNumber>"
}
]
}
]
}
}
},
{
"path": [
"pallet_democracy",
"types",
"ReferendumInfo"
],
"params": [
5,
10,
7
],
"def": {
"variant": {
"variants": [
{
"name": "Ongoing",
"fields": [
{
"type": 271,
"typeName": "ReferendumStatus<BlockNumber, Hash, Balance>"
}
]
},
{
"name": "Finished",
"fields": [
{
"name": "approved",
"type": 42,
"typeName": "bool"
},
{
"name": "end",
"type": 5,
"typeName": "BlockNumber"
}
]
}
]
}
}
},
{
"path": [
"pallet_democracy",
"types",
"ReferendumStatus"
],
"params": [
5,
10,
7
],
"def": {
"composite": {
"fields": [
{
"name": "end",
"type": 5,
"typeName": "BlockNumber"
},
{
"name": "proposal_hash",
"type": 10,
"typeName": "Hash"
},
{
"name": "threshold",
"type": 41,
"typeName": "VoteThreshold"
},
{
"name": "delay",
"type": 5,
"typeName": "BlockNumber"
},
{
"name": "tally",
"type": 272,
"typeName": "Tally<Balance>"
}
]
}
}
},
{
"path": [
"pallet_democracy",
"types",
"Tally"
],
"params": [
7
],
"def": {
"composite": {
"fields": [
{
"name": "ayes",
"type": 7,
"typeName": "Balance"
},
{
"name": "nays",
"type": 7,
"typeName": "Balance"
},
{
"name": "turnout",
"type": 7,
"typeName": "Balance"
}
]
}
}
},
{
"path": [
"pallet_democracy",
"vote",
"Voting"
],
"params": [
7,
1,
5
],
"def": {
"variant": {
"variants": [
{
"name": "Direct",
"fields": [
{
"name": "votes",
"type": 274,
"typeName": "Vec<(ReferendumIndex, AccountVote<Balance>)>"
},
{
"name": "delegations",
"type": 276,
"typeName": "Delegations<Balance>"
},
{
"name": "prior",
"type": 277,
"typeName": "PriorLock<BlockNumber, Balance>"
}
]
},
{
"name": "Delegating",
"fields": [
{
"name": "balance",
"type": 7,
"typeName": "Balance"
},
{
"name": "target",
"type": 1,
"typeName": "AccountId"
},
{
"name": "conviction",
"type": 154,
"typeName": "Conviction"
},
{
"name": "delegations",
"type": 276,
"typeName": "Delegations<Balance>"
},
{
"name": "prior",
"type": 277,
"typeName": "PriorLock<BlockNumber, Balance>"
}
]
}
]
}
}
},
{
"def": {
"sequence": {
"type": 275
}
}
},
{
"def": {
"tuple": [
5,
152
]
}
},
{
"path": [
"pallet_democracy",
"types",
"Delegations"
],
"params": [
7
],
"def": {
"composite": {
"fields": [
{
"name": "votes",
"type": 7,
"typeName": "Balance"
},
{
"name": "capital",
"type": 7,
"typeName": "Balance"
}
]
}
}
},
{
"path": [
"pallet_democracy",
"vote",
"PriorLock"
],
"params": [
5,
7
],
"def": {
"composite": {
"fields": [
{
"type": 5,
"typeName": "BlockNumber"
},
{
"type": 7,
"typeName": "Balance"
}
]
}
}
},
{
"def": {
"tuple": [
10,
41
]
}
},
{
"def": {
"tuple": [
5,
40
]
}
},
{
"path": [
"pallet_democracy",
"Releases"
],
"def": {
"variant": {
"variants": [
{
"name": "V1",
"discriminant": 0
}
]
}
}
},
{
"path": [
"pallet_collective",
"Votes"
],
"params": [
1,
5
],
"def": {
"composite": {
"fields": [
{
"name": "index",
"type": 5,
"typeName": "ProposalIndex"
},
{
"name": "threshold",
"type": 5,
"typeName": "MemberCount"
},
{
"name": "ayes",
"type": 40,
"typeName": "Vec<AccountId>"
},
{
"name": "nays",
"type": 40,
"typeName": "Vec<AccountId>"
},
{
"name": "end",
"type": 5,
"typeName": "BlockNumber"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 283
}
}
},
{
"path": [
"pallet_elections_phragmen",
"SeatHolder"
],
"params": [
1,
7
],
"def": {
"composite": {
"fields": [
{
"name": "who",
"type": 1,
"typeName": "AccountId"
},
{
"name": "stake",
"type": 7,
"typeName": "Balance"
},
{
"name": "deposit",
"type": 7,
"typeName": "Balance"
}
]
}
}
},
{
"path": [
"pallet_elections_phragmen",
"Voter"
],
"params": [
1,
7
],
"def": {
"composite": {
"fields": [
{
"name": "votes",
"type": 40,
"typeName": "Vec<AccountId>"
},
{
"name": "stake",
"type": 7,
"typeName": "Balance"
},
{
"name": "deposit",
"type": 7,
"typeName": "Balance"
}
]
}
}
},
{
"path": [
"pallet_grandpa",
"StoredState"
],
"params": [
5
],
"def": {
"variant": {
"variants": [
{
"name": "Live"
},
{
"name": "PendingPause",
"fields": [
{
"name": "scheduled_at",
"type": 5,
"typeName": "N"
},
{
"name": "delay",
"type": 5,
"typeName": "N"
}
]
},
{
"name": "Paused"
},
{
"name": "PendingResume",
"fields": [
{
"name": "scheduled_at",
"type": 5,
"typeName": "N"
},
{
"name": "delay",
"type": 5,
"typeName": "N"
}
]
}
]
}
}
},
{
"path": [
"pallet_grandpa",
"StoredPendingChange"
],
"params": [
5
],
"def": {
"composite": {
"fields": [
{
"name": "scheduled_at",
"type": 5,
"typeName": "N"
},
{
"name": "delay",
"type": 5,
"typeName": "N"
},
{
"name": "next_authorities",
"type": 56,
"typeName": "AuthorityList"
},
{
"name": "forced",
"type": 155,
"typeName": "Option<N>"
}
]
}
}
},
{
"path": [
"pallet_treasury",
"Proposal"
],
"params": [
1,
7
],
"def": {
"composite": {
"fields": [
{
"name": "proposer",
"type": 1,
"typeName": "AccountId"
},
{
"name": "value",
"type": 7,
"typeName": "Balance"
},
{
"name": "beneficiary",
"type": 1,
"typeName": "AccountId"
},
{
"name": "bond",
"type": 7,
"typeName": "Balance"
}
]
}
}
},
{
"path": [
"sp_arithmetic",
"per_things",
"Permill"
],
"def": {
"composite": {
"fields": [
{
"type": 5,
"typeName": "u32"
}
]
}
}
},
{
"path": [
"frame_support",
"PalletId"
],
"def": {
"composite": {
"fields": [
{
"type": 115,
"typeName": "[u8; 8]"
}
]
}
}
},
{
"path": [
"pallet_contracts",
"wasm",
"PrefabWasmModule"
],
"params": [
23
],
"def": {
"composite": {
"fields": [
{
"name": "schedule_version",
"type": 98,
"typeName": "u32"
},
{
"name": "initial",
"type": 98,
"typeName": "u32"
},
{
"name": "maximum",
"type": 98,
"typeName": "u32"
},
{
"name": "refcount",
"type": 130,
"typeName": "u64"
},
{
"name": "_reserved",
"type": 291,
"typeName": "Option<()>"
},
{
"name": "code",
"type": 11,
"typeName": "Vec<u8>"
},
{
"name": "original_code_len",
"type": 5,
"typeName": "u32"
}
]
}
}
},
{
"path": [
"Option"
],
"params": [
32
],
"def": {
"variant": {
"variants": [
{
"name": "None"
},
{
"name": "Some",
"fields": [
{
"type": 32,
"typeName": "T"
}
]
}
]
}
}
},
{
"path": [
"pallet_contracts",
"storage",
"ContractInfo"
],
"params": [
23
],
"def": {
"variant": {
"variants": [
{
"name": "Alive",
"fields": [
{
"type": 293,
"typeName": "AliveContractInfo<T>"
}
]
},
{
"name": "Tombstone",
"fields": [
{
"type": 294,
"typeName": "TombstoneContractInfo<T>"
}
]
}
]
}
}
},
{
"path": [
"pallet_contracts",
"storage",
"RawAliveContractInfo"
],
"params": [
10,
7,
5
],
"def": {
"composite": {
"fields": [
{
"name": "trie_id",
"type": 11,
"typeName": "TrieId"
},
{
"name": "storage_size",
"type": 5,
"typeName": "u32"
},
{
"name": "pair_count",
"type": 5,
"typeName": "u32"
},
{
"name": "code_hash",
"type": 10,
"typeName": "CodeHash"
},
{
"name": "rent_allowance",
"type": 7,
"typeName": "Balance"
},
{
"name": "rent_payed",
"type": 7,
"typeName": "Balance"
},
{
"name": "deduct_block",
"type": 5,
"typeName": "BlockNumber"
},
{
"name": "last_write",
"type": 155,
"typeName": "Option<BlockNumber>"
},
{
"name": "_reserved",
"type": 291,
"typeName": "Option<()>"
}
]
}
}
},
{
"path": [
"pallet_contracts",
"storage",
"RawTombstoneContractInfo"
],
"params": [
10,
295
],
"def": {
"composite": {
"fields": [
{
"type": 10,
"typeName": "H"
},
{
"type": 296,
"typeName": "PhantomData<Hasher>"
}
]
}
}
},
{
"path": [
"sp_runtime",
"traits",
"BlakeTwo256"
],
"def": {
"composite": {}
}
},
{
"def": {
"phantom": {
"type": 295
}
}
},
{
"def": {
"sequence": {
"type": 298
}
}
},
{
"path": [
"pallet_contracts",
"storage",
"DeletedContract"
],
"def": {
"composite": {
"fields": [
{
"name": "pair_count",
"type": 5,
"typeName": "u32"
},
{
"name": "trie_id",
"type": 11,
"typeName": "TrieId"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 65
}
}
},
{
"path": [
"sp_staking",
"offence",
"OffenceDetails"
],
"params": [
1,
67
],
"def": {
"composite": {
"fields": [
{
"name": "offender",
"type": 67,
"typeName": "Offender"
},
{
"name": "reporters",
"type": 40,
"typeName": "Vec<Reporter>"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 302
}
}
},
{
"def": {
"tuple": [
303,
304,
5
]
}
},
{
"def": {
"sequence": {
"type": 300
}
}
},
{
"def": {
"sequence": {
"type": 100
}
}
},
{
"path": [
"pallet_identity",
"Registration"
],
"params": [
7
],
"def": {
"composite": {
"fields": [
{
"name": "judgements",
"type": 306,
"typeName": "Vec<(RegistrarIndex, Judgement<Balance>)>"
},
{
"name": "deposit",
"type": 7,
"typeName": "Balance"
},
{
"name": "info",
"type": 193,
"typeName": "IdentityInfo"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 307
}
}
},
{
"def": {
"tuple": [
5,
201
]
}
},
{
"def": {
"tuple": [
7,
40
]
}
},
{
"def": {
"sequence": {
"type": 310
}
}
},
{
"path": [
"Option"
],
"params": [
311
],
"def": {
"variant": {
"variants": [
{
"name": "None"
},
{
"name": "Some",
"fields": [
{
"type": 311,
"typeName": "T"
}
]
}
]
}
}
},
{
"path": [
"pallet_identity",
"RegistrarInfo"
],
"params": [
7,
1
],
"def": {
"composite": {
"fields": [
{
"name": "account",
"type": 1,
"typeName": "AccountId"
},
{
"name": "fee",
"type": 7,
"typeName": "Balance"
},
{
"name": "fields",
"type": 200,
"typeName": "IdentityFields"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 313
}
}
},
{
"path": [
"pallet_society",
"Bid"
],
"params": [
1,
7
],
"def": {
"composite": {
"fields": [
{
"name": "who",
"type": 1,
"typeName": "AccountId"
},
{
"name": "kind",
"type": 314,
"typeName": "BidKind<AccountId, Balance>"
},
{
"name": "value",
"type": 7,
"typeName": "Balance"
}
]
}
}
},
{
"path": [
"pallet_society",
"BidKind"
],
"params": [
1,
7
],
"def": {
"variant": {
"variants": [
{
"name": "Deposit",
"fields": [
{
"type": 7,
"typeName": "Balance"
}
]
},
{
"name": "Vouch",
"fields": [
{
"type": 1,
"typeName": "AccountId"
},
{
"type": 7,
"typeName": "Balance"
}
]
}
]
}
}
},
{
"def": {
"tuple": [
7,
314
]
}
},
{
"path": [
"pallet_society",
"VouchingStatus"
],
"def": {
"variant": {
"variants": [
{
"name": "Vouching",
"discriminant": 0
},
{
"name": "Banned",
"discriminant": 1
}
]
}
}
},
{
"def": {
"sequence": {
"type": 318
}
}
},
{
"def": {
"tuple": [
5,
7
]
}
},
{
"path": [
"pallet_society",
"Vote"
],
"def": {
"variant": {
"variants": [
{
"name": "Skeptic",
"discriminant": 0
},
{
"name": "Reject",
"discriminant": 1
},
{
"name": "Approve",
"discriminant": 2
}
]
}
}
},
{
"path": [
"pallet_recovery",
"RecoveryConfig"
],
"params": [
5,
7,
1
],
"def": {
"composite": {
"fields": [
{
"name": "delay_period",
"type": 5,
"typeName": "BlockNumber"
},
{
"name": "deposit",
"type": 7,
"typeName": "Balance"
},
{
"name": "friends",
"type": 40,
"typeName": "Vec<AccountId>"
},
{
"name": "threshold",
"type": 85,
"typeName": "u16"
}
]
}
}
},
{
"path": [
"pallet_recovery",
"ActiveRecovery"
],
"params": [
5,
7,
1
],
"def": {
"composite": {
"fields": [
{
"name": "created",
"type": 5,
"typeName": "BlockNumber"
},
{
"name": "deposit",
"type": 7,
"typeName": "Balance"
},
{
"name": "friends",
"type": 40,
"typeName": "Vec<AccountId>"
}
]
}
}
},
{
"def": {
"sequence": {
"type": 323
}
}
},
{
"path": [
"Option"
],
"params": [
324
],
"def": {
"variant": {
"variants": [
{
"name": "None"
},
{
"name": "Some",
"fields": [
{
"type": 324,
"typeName": "T"
}
]
}
]
}
}
},
{
"path": [
"pallet_scheduler",
"ScheduledV2"
],
"params": [
117,
5,
325,
1
],
"def": {
"composite": {
"fields": [
{
"name": "maybe_id",
"type": 82,
"typeName": "Option<Vec<u8>>"
},
{
"name": "priority",
"type": 3,
"typeName": "schedule::Priority"
},
{
"name": "call",
"type": 117,
"typeName": "Call"
},
{
"name": "maybe_periodic",
"type": 208,
"typeName": "Option<schedule::Period<BlockNumber>>"
},
{
"name": "origin",
"type": 325,
"typeName": "PalletsOrigin"
},
{
"name": "_phantom",
"type": 332,
"typeName": "PhantomData<AccountId>"
}
]
}
}
},
{
"path": [
"node_runtime",
"OriginCaller"
],
"def": {
"variant": {
"variants": [
{
"name": "system",
"fields": [
{
"type": 326,
"typeName": "frame_system::Origin<Runtime>"
}
]
},
{
"name": "pallet_collective_Instance1",
"fields": [
{
"type": 327,
"typeName": "pallet_collective::Origin<Runtime, pallet_collective::Instance1>"
}
]
},
{
"name": "pallet_collective_Instance2",
"fields": [
{
"type": 329,
"typeName": "pallet_collective::Origin<Runtime, pallet_collective::Instance2>"
}
]
},
{
"name": "Void",
"fields": [
{
"type": 331,
"typeName": "$crate::Void"
}
]
}
]
}
}
},
{
"path": [
"frame_system",
"RawOrigin"
],
"params": [
1
],
"def": {
"variant": {
"variants": [
{
"name": "Root"
},
{
"name": "Signed",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "None"
}
]
}
}
},
{
"path": [
"pallet_collective",
"RawOrigin"
],
"params": [
1,
44
],
"def": {
"variant": {
"variants": [
{
"name": "Members",
"fields": [
{
"type": 5,
"typeName": "MemberCount"
},
{
"type": 5,
"typeName": "MemberCount"
}
]
},
{
"name": "Member",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "_Phantom",
"fields": [
{
"type": 328,
"typeName": "sp_std::marker::PhantomData<I>"
}
]
}
]
}
}
},
{
"def": {
"phantom": {
"type": 44
}
}
},
{
"path": [
"pallet_collective",
"RawOrigin"
],
"params": [
1,
47
],
"def": {
"variant": {
"variants": [
{
"name": "Members",
"fields": [
{
"type": 5,
"typeName": "MemberCount"
},
{
"type": 5,
"typeName": "MemberCount"
}
]
},
{
"name": "Member",
"fields": [
{
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "_Phantom",
"fields": [
{
"type": 330,
"typeName": "sp_std::marker::PhantomData<I>"
}
]
}
]
}
}
},
{
"def": {
"phantom": {
"type": 47
}
}
},
{
"path": [
"sp_core",
"Void"
],
"def": {
"variant": {}
}
},
{
"def": {
"phantom": {
"type": 1
}
}
},
{
"path": [
"pallet_scheduler",
"Releases"
],
"def": {
"variant": {
"variants": [
{
"name": "V1",
"discriminant": 0
},
{
"name": "V2",
"discriminant": 1
}
]
}
}
},
{
"def": {
"tuple": [
335,
7
]
}
},
{
"def": {
"sequence": {
"type": 336
}
}
},
{
"path": [
"pallet_proxy",
"ProxyDefinition"
],
"params": [
1,
84,
5
],
"def": {
"composite": {
"fields": [
{
"name": "delegate",
"type": 1,
"typeName": "AccountId"
},
{
"name": "proxy_type",
"type": 84,
"typeName": "ProxyType"
},
{
"name": "delay",
"type": 5,
"typeName": "BlockNumber"
}
]
}
}
},
{
"def": {
"tuple": [
338,
7
]
}
},
{
"def": {
"sequence": {
"type": 339
}
}
},
{
"path": [
"pallet_proxy",
"Announcement"
],
"params": [
1,
10,
5
],
"def": {
"composite": {
"fields": [
{
"name": "real",
"type": 1,
"typeName": "AccountId"
},
{
"name": "call_hash",
"type": 10,
"typeName": "Hash"
},
{
"name": "height",
"type": 5,
"typeName": "BlockNumber"
}
]
}
}
},
{
"path": [
"pallet_multisig",
"Multisig"
],
"params": [
5,
7,
1
],
"def": {
"composite": {
"fields": [
{
"name": "when",
"type": 87,
"typeName": "Timepoint<BlockNumber>"
},
{
"name": "deposit",
"type": 7,
"typeName": "Balance"
},
{
"name": "depositor",
"type": 1,
"typeName": "AccountId"
},
{
"name": "approvals",
"type": 40,
"typeName": "Vec<AccountId>"
}
]
}
}
},
{
"def": {
"tuple": [
11,
1,
7
]
}
},
{
"path": [
"pallet_bounties",
"Bounty"
],
"params": [
1,
7,
5
],
"def": {
"composite": {
"fields": [
{
"name": "proposer",
"type": 1,
"typeName": "AccountId"
},
{
"name": "value",
"type": 7,
"typeName": "Balance"
},
{
"name": "fee",
"type": 7,
"typeName": "Balance"
},
{
"name": "curator_deposit",
"type": 7,
"typeName": "Balance"
},
{
"name": "bond",
"type": 7,
"typeName": "Balance"
},
{
"name": "status",
"type": 343,
"typeName": "BountyStatus<AccountId, BlockNumber>"
}
]
}
}
},
{
"path": [
"pallet_bounties",
"BountyStatus"
],
"params": [
1,
5
],
"def": {
"variant": {
"variants": [
{
"name": "Proposed"
},
{
"name": "Approved"
},
{
"name": "Funded"
},
{
"name": "CuratorProposed",
"fields": [
{
"name": "curator",
"type": 1,
"typeName": "AccountId"
}
]
},
{
"name": "Active",
"fields": [
{
"name": "curator",
"type": 1,
"typeName": "AccountId"
},
{
"name": "update_due",
"type": 5,
"typeName": "BlockNumber"
}
]
},
{
"name": "PendingPayout",
"fields": [
{
"name": "curator",
"type": 1,
"typeName": "AccountId"
},
{
"name": "beneficiary",
"type": 1,
"typeName": "AccountId"
},
{
"name": "unlock_at",
"type": 5,
"typeName": "BlockNumber"
}
]
}
]
}
}
},
{
"path": [
"pallet_tips",
"OpenTip"
],
"params": [
1,
7,
5,
10
],
"def": {
"composite": {
"fields": [
{
"name": "reason",
"type": 10,
"typeName": "Hash"
},
{
"name": "who",
"type": 1,
"typeName": "AccountId"
},
{
"name": "finder",
"type": 1,
"typeName": "AccountId"
},
{
"name": "deposit",
"type": 7,
"typeName": "Balance"
},
{
"name": "closes",
"type": 155,
"typeName": "Option<BlockNumber>"
},
{
"name": "tips",
"type": 49,
"typeName": "Vec<(AccountId, Balance)>"
},
{
"name": "finders_fee",
"type": 42,
"typeName": "bool"
}
]
}
}
},
{
"path": [
"pallet_assets",
"types",
"AssetDetails"
],
"params": [
9,
1,
7
],
"def": {
"composite": {
"fields": [
{
"name": "owner",
"type": 1,
"typeName": "AccountId"
},
{
"name": "issuer",
"type": 1,
"typeName": "AccountId"
},
{
"name": "admin",
"type": 1,
"typeName": "AccountId"
},
{
"name": "freezer",
"type": 1,
"typeName": "AccountId"
},
{
"name": "supply",
"type": 9,
"typeName": "Balance"
},
{
"name": "deposit",
"type": 7,
"typeName": "DepositBalance"
},
{
"name": "min_balance",
"type": 9,
"typeName": "Balance"
},
{
"name": "is_sufficient",
"type": 42,
"typeName": "bool"
},
{
"name": "accounts",
"type": 5,
"typeName": "u32"
},
{
"name": "sufficients",
"type": 5,
"typeName": "u32"
},
{
"name": "approvals",
"type": 5,
"typeName": "u32"
},
{
"name": "is_frozen",
"type": 42,
"typeName": "bool"
}
]
}
}
},
{
"path": [
"pallet_assets",
"types",
"AssetBalance"
],
"params": [
9,
32
],
"def": {
"composite": {
"fields": [
{
"name": "balance",
"type": 9,
"typeName": "Balance"
},
{
"name": "is_frozen",
"type": 42,
"typeName": "bool"
},
{
"name": "sufficient",
"type": 42,
"typeName": "bool"
},
{
"name": "extra",
"type": 32,
"typeName": "Extra"
}
]
}
}
},
{
"path": [
"pallet_assets",
"types",
"ApprovalKey"
],
"params": [
1
],
"def": {
"composite": {
"fields": [
{
"name": "owner",
"type": 1,
"typeName": "AccountId"
},
{
"name": "delegate",
"type": 1,
"typeName": "AccountId"
}
]
}
}
},
{
"path": [
"pallet_assets",
"types",
"Approval"
],
"params": [
9,
7
],
"def": {
"composite": {
"fields": [
{
"name": "amount",
"type": 9,
"typeName": "Balance"
},
{
"name": "deposit",
"type": 7,
"typeName": "DepositBalance"
}
]
}
}
},
{
"path": [
"pallet_assets",
"types",
"AssetMetadata"
],
"params": [
7
],
"def": {
"composite": {
"fields": [
{
"name": "deposit",
"type": 7,
"typeName": "DepositBalance"
},
{
"name": "name",
"type": 11,
"typeName": "Vec<u8>"
},
{
"name": "symbol",
"type": 11,
"typeName": "Vec<u8>"
},
{
"name": "decimals",
"type": 3,
"typeName": "u8"
},
{
"name": "is_frozen",
"type": 42,
"typeName": "bool"
}
]
}
}
},
{
"path": [
"pallet_lottery",
"LotteryConfig"
],
"params": [
5,
7
],
"def": {
"composite": {
"fields": [
{
"name": "price",
"type": 7,
"typeName": "Balance"
},
{
"name": "start",
"type": 5,
"typeName": "BlockNumber"
},
{
"name": "length",
"type": 5,
"typeName": "BlockNumber"
},
{
"name": "delay",
"type": 5,
"typeName": "BlockNumber"
},
{
"name": "repeat",
"type": 42,
"typeName": "bool"
}
]
}
}
},
{
"def": {
"tuple": [
5,
352
]
}
},
{
"def": {
"sequence": {
"type": 92
}
}
},
{
"def": {
"sequence": {
"type": 354
}
}
},
{
"path": [
"pallet_gilt",
"pallet",
"GiltBid"
],
"params": [
7,
1
],
"def": {
"composite": {
"fields": [
{
"name": "amount",
"type": 7,
"typeName": "Balance"
},
{
"name": "who",
"type": 1,
"typeName": "AccountId"
}
]
}
}
},
{
"path": [
"pallet_gilt",
"pallet",
"ActiveGiltsTotal"
],
"params": [
7
],
"def": {
"composite": {
"fields": [
{
"name": "frozen",
"type": 7,
"typeName": "Balance"
},
{
"name": "proportion",
"type": 220,
"typeName": "Perquintill"
},
{
"name": "index",
"type": 5,
"typeName": "ActiveIndex"
},
{
"name": "target",
"type": 220,
"typeName": "Perquintill"
}
]
}
}
},
{
"path": [
"pallet_gilt",
"pallet",
"ActiveGilt"
],
"params": [
7,
1,
5
],
"def": {
"composite": {
"fields": [
{
"name": "proportion",
"type": 220,
"typeName": "Perquintill"
},
{
"name": "amount",
"type": 7,
"typeName": "Balance"
},
{
"name": "who",
"type": 1,
"typeName": "AccountId"
},
{
"name": "expiry",
"type": 5,
"typeName": "BlockNumber"
}
]
}
}
},
{
"path": [
"frame_system",
"extensions",
"check_spec_version",
"CheckSpecVersion"
],
"params": [
23
],
"def": {
"composite": {
"fields": [
{
"type": 358,
"typeName": "sp_std::marker::PhantomData<T>"
}
]
}
}
},
{
"def": {
"phantom": {
"type": 23
}
}
},
{
"path": [
"frame_system",
"extensions",
"check_tx_version",
"CheckTxVersion"
],
"params": [
23
],
"def": {
"composite": {
"fields": [
{
"type": 358,
"typeName": "sp_std::marker::PhantomData<T>"
}
]
}
}
},
{
"path": [
"frame_system",
"extensions",
"check_genesis",
"CheckGenesis"
],
"params": [
23
],
"def": {
"composite": {
"fields": [
{
"type": 358,
"typeName": "sp_std::marker::PhantomData<T>"
}
]
}
}
},
{
"path": [
"frame_system",
"extensions",
"check_mortality",
"CheckMortality"
],
"params": [
23
],
"def": {
"composite": {
"fields": [
{
"type": 362,
"typeName": "Era"
},
{
"type": 358,
"typeName": "sp_std::marker::PhantomData<T>"
}
]
}
}
},
{
"path": [
"sp_runtime",
"generic",
"era",
"Era"
],
"def": {
"variant": {
"variants": [
{
"name": "Immortal"
},
{
"name": "Mortal",
"fields": [
{
"type": 9,
"typeName": "Period"
},
{
"type": 9,
"typeName": "Phase"
}
]
}
]
}
}
},
{
"path": [
"frame_system",
"extensions",
"check_nonce",
"CheckNonce"
],
"params": [
23
],
"def": {
"composite": {
"fields": [
{
"type": 98,
"typeName": "T::Index"
}
]
}
}
},
{
"path": [
"frame_system",
"extensions",
"check_weight",
"CheckWeight"
],
"params": [
23
],
"def": {
"composite": {
"fields": [
{
"type": 358,
"typeName": "sp_std::marker::PhantomData<T>"
}
]
}
}
},
{
"path": [
"pallet_transaction_payment",
"ChargeTransactionPayment"
],
"params": [
23
],
"def": {
"composite": {
"fields": [
{
"type": 69,
"typeName": "BalanceOf<T>"
}
]
}
}
}
]
},
"modules": [
{
"name": "System",
"storage": {
"prefix": "System",
"entries": [
{
"name": "Account",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Blake2_128Concat",
"key": 1,
"value": 4,
"unused": false
}
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The full account information for a particular account ID."
]
},
{
"name": "ExtrinsicCount",
"modifier": "Optional",
"ty": {
"Plain": 5
},
"default": [
0
],
"documentation": [
" Total extrinsics count for the current block."
]
},
{
"name": "BlockWeight",
"modifier": "Default",
"ty": {
"Plain": 8
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The current weight for the block."
]
},
{
"name": "AllExtrinsicsLen",
"modifier": "Optional",
"ty": {
"Plain": 5
},
"default": [
0
],
"documentation": [
" Total length (in bytes) for all extrinsics put together, for the current block."
]
},
{
"name": "BlockHash",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 5,
"value": 10,
"unused": false
}
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" Map of block numbers to block hashes."
]
},
{
"name": "ExtrinsicData",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 5,
"value": 11,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Extrinsics data for the current block (maps an extrinsic's index to its data)."
]
},
{
"name": "Number",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
0,
0,
0,
0
],
"documentation": [
" The current block number being processed. Set by `execute_block`."
]
},
{
"name": "ParentHash",
"modifier": "Default",
"ty": {
"Plain": 10
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" Hash of the previous block."
]
},
{
"name": "Digest",
"modifier": "Default",
"ty": {
"Plain": 12
},
"default": [
0
],
"documentation": [
" Digest of the current block, also part of the block header."
]
},
{
"name": "Events",
"modifier": "Default",
"ty": {
"Plain": 19
},
"default": [
0
],
"documentation": [
" Events deposited for the current block."
]
},
{
"name": "EventCount",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
0,
0,
0,
0
],
"documentation": [
" The number of events in the `Events<T>` list."
]
},
{
"name": "EventTopics",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Blake2_128Concat",
"key": 10,
"value": 96,
"unused": false
}
},
"default": [
0
],
"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."
]
},
{
"name": "LastRuntimeUpgrade",
"modifier": "Optional",
"ty": {
"Plain": 97
},
"default": [
0
],
"documentation": [
" Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened."
]
},
{
"name": "UpgradedToU32RefCount",
"modifier": "Default",
"ty": {
"Plain": 42
},
"default": [
0
],
"documentation": [
" True if we have upgraded so that `type RefCount` is `u32`. False (default) if not."
]
},
{
"name": "UpgradedToTripleRefCount",
"modifier": "Default",
"ty": {
"Plain": 42
},
"default": [
0
],
"documentation": [
" True if we have upgraded so that AccountInfo contains three types of `RefCount`. False",
" (default) if not."
]
},
{
"name": "ExecutionPhase",
"modifier": "Optional",
"ty": {
"Plain": 94
},
"default": [
0
],
"documentation": [
" The execution phase of the block."
]
}
]
},
"calls": [
{
"name": "fill_block",
"arguments": [
{
"name": "_ratio",
"ty": 100,
"is_compact": false
}
],
"documentation": [
" A dispatch that will fill the block weight up to the given ratio.a"
]
},
{
"name": "remark",
"arguments": [
{
"name": "_remark",
"ty": 11,
"is_compact": false
}
],
"documentation": [
" Make some on-chain remark.",
"",
" # <weight>",
" - `O(1)`",
" # </weight>"
]
},
{
"name": "set_heap_pages",
"arguments": [
{
"name": "pages",
"ty": 9,
"is_compact": false
}
],
"documentation": [
" Set the number of pages in the WebAssembly environment's heap.",
"",
" # <weight>",
" - `O(1)`",
" - 1 storage write.",
" - Base Weight: 1.405 µs",
" - 1 write to HEAP_PAGES",
" # </weight>"
]
},
{
"name": "set_code",
"arguments": [
{
"name": "code",
"ty": 11,
"is_compact": false
}
],
"documentation": [
" Set the new runtime code.",
"",
" # <weight>",
" - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`",
" - 1 storage write (codec `O(C)`).",
" - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is expensive).",
" - 1 event.",
" The weight of this function is dependent on the runtime, but generally this is very expensive.",
" We will treat this as a full block.",
" # </weight>"
]
},
{
"name": "set_code_without_checks",
"arguments": [
{
"name": "code",
"ty": 11,
"is_compact": false
}
],
"documentation": [
" Set the new runtime code without doing any checks of the given `code`.",
"",
" # <weight>",
" - `O(C)` where `C` length of `code`",
" - 1 storage write (codec `O(C)`).",
" - 1 event.",
" The weight of this function is dependent on the runtime. We will treat this as a full block.",
" # </weight>"
]
},
{
"name": "set_changes_trie_config",
"arguments": [
{
"name": "changes_trie_config",
"ty": 17,
"is_compact": false
}
],
"documentation": [
" Set the new changes trie configuration.",
"",
" # <weight>",
" - `O(1)`",
" - 1 storage write or delete (codec `O(1)`).",
" - 1 call to `deposit_log`: Uses `append` API, so O(1)",
" - Base Weight: 7.218 µs",
" - DB Weight:",
" - Writes: Changes Trie, System Digest",
" # </weight>"
]
},
{
"name": "set_storage",
"arguments": [
{
"name": "items",
"ty": 101,
"is_compact": false
}
],
"documentation": [
" Set some items of storage.",
"",
" # <weight>",
" - `O(I)` where `I` length of `items`",
" - `I` storage writes (`O(1)`).",
" - Base Weight: 0.568 * i µs",
" - Writes: Number of items",
" # </weight>"
]
},
{
"name": "kill_storage",
"arguments": [
{
"name": "keys",
"ty": 103,
"is_compact": false
}
],
"documentation": [
" Kill some items from storage.",
"",
" # <weight>",
" - `O(IK)` where `I` length of `keys` and `K` length of one key",
" - `I` storage deletions.",
" - Base Weight: .378 * i µs",
" - Writes: Number of items",
" # </weight>"
]
},
{
"name": "kill_prefix",
"arguments": [
{
"name": "prefix",
"ty": 11,
"is_compact": false
},
{
"name": "_subkeys",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Kill all storage items with a key that starts with the given prefix.",
"",
" **NOTE:** We rely on the Root origin to provide us the number of subkeys under",
" the prefix we are removing to accurately calculate the weight of this function.",
"",
" # <weight>",
" - `O(P)` where `P` amount of keys with prefix `prefix`",
" - `P` storage deletions.",
" - Base Weight: 0.834 * P µs",
" - Writes: Number of subkeys + 1",
" # </weight>"
]
},
{
"name": "remark_with_event",
"arguments": [
{
"name": "remark",
"ty": 11,
"is_compact": false
}
],
"documentation": [
" Make some on-chain remark and emit event.",
"",
" # <weight>",
" - `O(b)` where b is the length of the remark.",
" - 1 event.",
" # </weight>"
]
}
],
"event": [
{
"name": "ExtrinsicSuccess",
"arguments": [
{
"ty": 24,
"name": "DispatchInfo"
}
],
"documentation": [
" An extrinsic completed successfully. \\[info\\]"
]
},
{
"name": "ExtrinsicFailed",
"arguments": [
{
"ty": 27,
"name": "DispatchError"
},
{
"ty": 24,
"name": "DispatchInfo"
}
],
"documentation": [
" An extrinsic failed. \\[error, info\\]"
]
},
{
"name": "CodeUpdated",
"arguments": [],
"documentation": [
" `:code` was updated."
]
},
{
"name": "NewAccount",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A new \\[account\\] was created."
]
},
{
"name": "KilledAccount",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" An \\[account\\] was reaped."
]
},
{
"name": "Remarked",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 10,
"name": "Hash"
}
],
"documentation": [
" On on-chain remark happened. \\[origin, remark_hash\\]"
]
}
],
"constants": [
{
"name": "BlockWeights",
"ty": 104,
"value": [
0,
242,
5,
42,
1,
0,
0,
0,
0,
32,
74,
169,
209,
1,
0,
0,
64,
89,
115,
7,
0,
0,
0,
0,
1,
192,
110,
150,
166,
46,
1,
0,
0,
1,
0,
152,
247,
62,
93,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
64,
89,
115,
7,
0,
0,
0,
0,
1,
192,
246,
232,
16,
163,
1,
0,
0,
1,
0,
32,
74,
169,
209,
1,
0,
0,
1,
0,
136,
82,
106,
116,
0,
0,
0,
64,
89,
115,
7,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" Block & extrinsics weights: base values and limits."
]
},
{
"name": "BlockLength",
"ty": 108,
"value": [
0,
0,
60,
0,
0,
0,
80,
0,
0,
0,
80,
0
],
"documentation": [
" The maximum length of a block (in bytes)."
]
},
{
"name": "BlockHashCount",
"ty": 5,
"value": [
96,
9,
0,
0
],
"documentation": [
" Maximum number of block number to block hash mappings to keep (oldest pruned first)."
]
},
{
"name": "DbWeight",
"ty": 110,
"value": [
64,
120,
125,
1,
0,
0,
0,
0,
0,
225,
245,
5,
0,
0,
0,
0
],
"documentation": [
" The weight of runtime database operations the runtime can invoke."
]
},
{
"name": "Version",
"ty": 111,
"value": [
16,
110,
111,
100,
101,
56,
115,
117,
98,
115,
116,
114,
97,
116,
101,
45,
110,
111,
100,
101,
10,
0,
0,
0,
9,
1,
0,
0,
1,
0,
0,
0,
52,
223,
106,
203,
104,
153,
7,
96,
155,
3,
0,
0,
0,
55,
227,
151,
252,
124,
145,
245,
228,
1,
0,
0,
0,
64,
254,
58,
212,
1,
248,
149,
154,
4,
0,
0,
0,
210,
188,
152,
151,
238,
208,
143,
21,
2,
0,
0,
0,
247,
139,
39,
139,
229,
63,
69,
76,
2,
0,
0,
0,
237,
153,
197,
172,
178,
94,
237,
245,
2,
0,
0,
0,
203,
202,
37,
227,
159,
20,
35,
135,
2,
0,
0,
0,
104,
122,
212,
74,
211,
127,
3,
194,
1,
0,
0,
0,
188,
157,
137,
144,
79,
91,
146,
63,
1,
0,
0,
0,
104,
182,
107,
161,
34,
201,
63,
167,
1,
0,
0,
0,
55,
200,
187,
19,
80,
169,
162,
168,
1,
0,
0,
0,
145,
213,
223,
24,
176,
210,
207,
88,
1,
0,
0,
0,
171,
60,
5,
114,
41,
31,
235,
139,
1,
0,
0,
0,
2,
0,
0,
0
],
"documentation": [
" Get the chain's current version."
]
},
{
"name": "SS58Prefix",
"ty": 3,
"value": [
42
],
"documentation": [
" The designated SS85 prefix of this chain.",
"",
" This replaces the \"ss58Format\" property declared in the chain spec. Reason is",
" that the runtime should know about the prefix in order to make use of it as",
" an identifier of the chain."
]
}
],
"errors": [
{
"name": "InvalidSpecName",
"documentation": [
" The name of specification does not match between the current runtime",
" and the new runtime."
]
},
{
"name": "SpecVersionNeedsToIncrease",
"documentation": [
" The specification version is not allowed to decrease 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": "NonDefaultComposite",
"documentation": [
" Suicide called when the account has non-default composite data."
]
},
{
"name": "NonZeroRefCount",
"documentation": [
" There is a non-zero reference count preventing the account from being purged."
]
}
],
"index": 0
},
{
"name": "Utility",
"storage": null,
"calls": [
{
"name": "batch",
"arguments": [
{
"name": "calls",
"ty": 116,
"is_compact": false
}
],
"documentation": [
" Send a batch of dispatch calls.",
"",
" May be called from any origin.",
"",
" - `calls`: The calls to be dispatched from the same origin.",
"",
" If origin is root then call are dispatch without checking origin filter. (This includes",
" bypassing `frame_system::Config::BaseCallFilter`).",
"",
" # <weight>",
" - Complexity: O(C) where C is the number of calls to be batched.",
" # </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_derivative",
"arguments": [
{
"name": "index",
"ty": 85,
"is_compact": false
},
{
"name": "call",
"ty": 117,
"is_compact": false
}
],
"documentation": [
" Send a call through an indexed pseudonym of the sender.",
"",
" Filter from origin are passed along. The call will be dispatched with an origin which",
" use the same filter as the origin of this call.",
"",
" NOTE: If you need to ensure that any account-based filtering is not honored (i.e.",
" because you expect `proxy` to have been used prior in the call stack and you do not want",
" the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`",
" in the Multisig pallet instead.",
"",
" NOTE: Prior to version *12, this was called `as_limited_sub`.",
"",
" The dispatch origin for this call must be _Signed_."
]
},
{
"name": "batch_all",
"arguments": [
{
"name": "calls",
"ty": 116,
"is_compact": false
}
],
"documentation": [
" Send a batch of dispatch calls and atomically execute them.",
" The whole transaction will rollback and fail if any of the calls failed.",
"",
" May be called from any origin.",
"",
" - `calls`: The calls to be dispatched from the same origin.",
"",
" If origin is root then call are dispatch without checking origin filter. (This includes",
" bypassing `frame_system::Config::BaseCallFilter`).",
"",
" # <weight>",
" - Complexity: O(C) where C is the number of calls to be batched.",
" # </weight>"
]
}
],
"event": [
{
"name": "BatchInterrupted",
"arguments": [
{
"ty": 5,
"name": "u32"
},
{
"ty": 27,
"name": "DispatchError"
}
],
"documentation": [
" Batch of dispatches did not complete fully. Index of first failing dispatch given, as",
" well as the error. \\[index, error\\]"
]
},
{
"name": "BatchCompleted",
"arguments": [],
"documentation": [
" Batch of dispatches completed fully with no error."
]
}
],
"constants": [],
"errors": [],
"index": 1
},
{
"name": "Babe",
"storage": {
"prefix": "Babe",
"entries": [
{
"name": "EpochIndex",
"modifier": "Default",
"ty": {
"Plain": 9
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" Current epoch index."
]
},
{
"name": "Authorities",
"modifier": "Default",
"ty": {
"Plain": 221
},
"default": [
0
],
"documentation": [
" Current epoch authorities."
]
},
{
"name": "GenesisSlot",
"modifier": "Default",
"ty": {
"Plain": 124
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The slot at which the first epoch actually started. This is 0",
" until the first block of the chain."
]
},
{
"name": "CurrentSlot",
"modifier": "Default",
"ty": {
"Plain": 124
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" Current slot number."
]
},
{
"name": "Randomness",
"modifier": "Default",
"ty": {
"Plain": 2
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"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": "PendingEpochConfigChange",
"modifier": "Optional",
"ty": {
"Plain": 126
},
"default": [
0
],
"documentation": [
" Pending epoch configuration change that will be applied when the next epoch is enacted."
]
},
{
"name": "NextRandomness",
"modifier": "Default",
"ty": {
"Plain": 2
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" Next epoch randomness."
]
},
{
"name": "NextAuthorities",
"modifier": "Default",
"ty": {
"Plain": 221
},
"default": [
0
],
"documentation": [
" Next epoch authorities."
]
},
{
"name": "SegmentIndex",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
0,
0,
0,
0
],
"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",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 5,
"value": 223,
"unused": false
}
},
"default": [
0
],
"documentation": [
" TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay."
]
},
{
"name": "Initialized",
"modifier": "Optional",
"ty": {
"Plain": 224
},
"default": [
0
],
"documentation": [
" Temporary value (cleared at block finalization) which is `Some`",
" if per-block initialization has already been called for current block."
]
},
{
"name": "AuthorVrfRandomness",
"modifier": "Default",
"ty": {
"Plain": 224
},
"default": [
0
],
"documentation": [
" Temporary value (cleared at block finalization) that includes the VRF output generated",
" at this block. This field should always be populated during block processing unless",
" secondary plain slots are enabled (which don't contain a VRF output)."
]
},
{
"name": "EpochStart",
"modifier": "Default",
"ty": {
"Plain": 81
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The block numbers when the last and current epoch have started, respectively `N-1` and",
" `N`.",
" NOTE: We track this is in order to annotate the block number when a given pool of",
" entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in",
" slots, which may be skipped, the block numbers may not line up with the slot numbers."
]
},
{
"name": "Lateness",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
0,
0,
0,
0
],
"documentation": [
" How late the current block is compared to its parent.",
"",
" This entry is populated as part of block execution and is cleaned up",
" on block finalization. Querying this storage entry outside of block",
" execution context should always yield zero."
]
},
{
"name": "EpochConfig",
"modifier": "Optional",
"ty": {
"Plain": 225
},
"default": [
0
],
"documentation": [
" The configuration for the current epoch. Should never be `None` as it is initialized in genesis."
]
},
{
"name": "NextEpochConfig",
"modifier": "Optional",
"ty": {
"Plain": 225
},
"default": [
0
],
"documentation": [
" The configuration for the next epoch, `None` if the config will not change",
" (you can fallback to `EpochConfig` instead in that case)."
]
}
]
},
"calls": [
{
"name": "report_equivocation",
"arguments": [
{
"name": "equivocation_proof",
"ty": 121,
"is_compact": false
},
{
"name": "key_owner_proof",
"ty": 125,
"is_compact": false
}
],
"documentation": [
" Report authority equivocation/misbehavior. This method will verify",
" the equivocation proof and validate the given key ownership proof",
" against the extracted offender. If both are valid, the offence will",
" be reported."
]
},
{
"name": "report_equivocation_unsigned",
"arguments": [
{
"name": "equivocation_proof",
"ty": 121,
"is_compact": false
},
{
"name": "key_owner_proof",
"ty": 125,
"is_compact": false
}
],
"documentation": [
" Report authority equivocation/misbehavior. This method will verify",
" the equivocation proof and validate the given key ownership proof",
" against the extracted offender. If both are valid, the offence will",
" be reported.",
" This extrinsic must be called unsigned and it is expected that only",
" block authors will call it (validated in `ValidateUnsigned`), as such",
" if the block author is defined it will be defined as the equivocation",
" reporter."
]
},
{
"name": "plan_config_change",
"arguments": [
{
"name": "config",
"ty": 126,
"is_compact": false
}
],
"documentation": [
" Plan an epoch config change. The epoch config change is recorded and will be enacted on",
" the next call to `enact_epoch_change`. The config will be activated one epoch after.",
" Multiple calls to this method will replace any existing planned config change that had",
" not been enacted yet."
]
}
],
"event": null,
"constants": [
{
"name": "EpochDuration",
"ty": 9,
"value": [
200,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The amount of time, in slots, that each epoch should last.",
" NOTE: Currently it is not possible to change the epoch duration after",
" the chain has started. Attempting to do so will brick block production."
]
},
{
"name": "ExpectedBlockTime",
"ty": 9,
"value": [
184,
11,
0,
0,
0,
0,
0,
0
],
"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": "InvalidEquivocationProof",
"documentation": [
" An equivocation proof provided as part of an equivocation report is invalid."
]
},
{
"name": "InvalidKeyOwnershipProof",
"documentation": [
" A key ownership proof provided as part of an equivocation report is invalid."
]
},
{
"name": "DuplicateOffenceReport",
"documentation": [
" A given equivocation report is valid but already previously reported."
]
}
],
"index": 2
},
{
"name": "Timestamp",
"storage": {
"prefix": "Timestamp",
"entries": [
{
"name": "Now",
"modifier": "Default",
"ty": {
"Plain": 9
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" Current time for the current block."
]
},
{
"name": "DidUpdate",
"modifier": "Default",
"ty": {
"Plain": 42
},
"default": [
0
],
"documentation": [
" Did the timestamp get updated in this block?"
]
}
]
},
"calls": [
{
"name": "set",
"arguments": [
{
"name": "now",
"ty": 9,
"is_compact": true
}
],
"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`.",
"",
" # <weight>",
" - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)",
" - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in `on_finalize`)",
" - 1 event handler `on_timestamp_set`. Must be `O(1)`.",
" # </weight>"
]
}
],
"event": null,
"constants": [
{
"name": "MinimumPeriod",
"ty": 9,
"value": [
220,
5,
0,
0,
0,
0,
0,
0
],
"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": [],
"index": 3
},
{
"name": "Authorship",
"storage": {
"prefix": "Authorship",
"entries": [
{
"name": "Uncles",
"modifier": "Default",
"ty": {
"Plain": 226
},
"default": [
0
],
"documentation": [
" Uncles"
]
},
{
"name": "Author",
"modifier": "Optional",
"ty": {
"Plain": 1
},
"default": [
0
],
"documentation": [
" Author of current block."
]
},
{
"name": "DidSetUncles",
"modifier": "Default",
"ty": {
"Plain": 42
},
"default": [
0
],
"documentation": [
" Whether uncles were already set in this block."
]
}
]
},
"calls": [
{
"name": "set_uncles",
"arguments": [
{
"name": "new_uncles",
"ty": 132,
"is_compact": false
}
],
"documentation": [
" Provide a set of uncles."
]
}
],
"event": 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."
]
}
],
"index": 4
},
{
"name": "Indices",
"storage": {
"prefix": "Indices",
"entries": [
{
"name": "Accounts",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Blake2_128Concat",
"key": 5,
"value": 228,
"unused": false
}
},
"default": [
0
],
"documentation": [
" The lookup from index to account."
]
}
]
},
"calls": [
{
"name": "claim",
"arguments": [
{
"name": "index",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Assign an previously unassigned index.",
"",
" Payment: `Deposit` is reserved from the sender account.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" - `index`: the index to be claimed. This must not be in use.",
"",
" Emits `IndexAssigned` if successful.",
"",
" # <weight>",
" - `O(1)`.",
" - One storage mutation (codec `O(1)`).",
" - One reserve operation.",
" - One event.",
" -------------------",
" - DB Weight: 1 Read/Write (Accounts)",
" # </weight>"
]
},
{
"name": "transfer",
"arguments": [
{
"name": "new",
"ty": 1,
"is_compact": false
},
{
"name": "index",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Assign an index already owned by the sender to another account. The balance reservation",
" is effectively transferred to the new account.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" - `index`: the index to be re-assigned. This must be owned by the sender.",
" - `new`: the new owner of the index. This function is a no-op if it is equal to sender.",
"",
" Emits `IndexAssigned` if successful.",
"",
" # <weight>",
" - `O(1)`.",
" - One storage mutation (codec `O(1)`).",
" - One transfer operation.",
" - One event.",
" -------------------",
" - DB Weight:",
" - Reads: Indices Accounts, System Account (recipient)",
" - Writes: Indices Accounts, System Account (recipient)",
" # </weight>"
]
},
{
"name": "free",
"arguments": [
{
"name": "index",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Free up an index owned by the sender.",
"",
" Payment: Any previous deposit placed for the index is unreserved in the sender account.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must own the index.",
"",
" - `index`: the index to be freed. This must be owned by the sender.",
"",
" Emits `IndexFreed` if successful.",
"",
" # <weight>",
" - `O(1)`.",
" - One storage mutation (codec `O(1)`).",
" - One reserve operation.",
" - One event.",
" -------------------",
" - DB Weight: 1 Read/Write (Accounts)",
" # </weight>"
]
},
{
"name": "force_transfer",
"arguments": [
{
"name": "new",
"ty": 1,
"is_compact": false
},
{
"name": "index",
"ty": 5,
"is_compact": false
},
{
"name": "freeze",
"ty": 42,
"is_compact": false
}
],
"documentation": [
" Force an index to an account. This doesn't require a deposit. If the index is already",
" held, then any deposit is reimbursed to its current owner.",
"",
" The dispatch origin for this call must be _Root_.",
"",
" - `index`: the index to be (re-)assigned.",
" - `new`: the new owner of the index. This function is a no-op if it is equal to sender.",
" - `freeze`: if set to `true`, will freeze the index so it cannot be transferred.",
"",
" Emits `IndexAssigned` if successful.",
"",
" # <weight>",
" - `O(1)`.",
" - One storage mutation (codec `O(1)`).",
" - Up to one reserve operation.",
" - One event.",
" -------------------",
" - DB Weight:",
" - Reads: Indices Accounts, System Account (original owner)",
" - Writes: Indices Accounts, System Account (original owner)",
" # </weight>"
]
},
{
"name": "freeze",
"arguments": [
{
"name": "index",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Freeze an index so it will always point to the sender account. This consumes the deposit.",
"",
" The dispatch origin for this call must be _Signed_ and the signing account must have a",
" non-frozen account `index`.",
"",
" - `index`: the index to be frozen in place.",
"",
" Emits `IndexFrozen` if successful.",
"",
" # <weight>",
" - `O(1)`.",
" - One storage mutation (codec `O(1)`).",
" - Up to one slash operation.",
" - One event.",
" -------------------",
" - DB Weight: 1 Read/Write (Accounts)",
" # </weight>"
]
}
],
"event": [
{
"name": "IndexAssigned",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 5,
"name": "AccountIndex"
}
],
"documentation": [
" A account index was assigned. \\[index, who\\]"
]
},
{
"name": "IndexFreed",
"arguments": [
{
"ty": 5,
"name": "AccountIndex"
}
],
"documentation": [
" A account index has been freed up (unassigned). \\[index\\]"
]
},
{
"name": "IndexFrozen",
"arguments": [
{
"ty": 5,
"name": "AccountIndex"
},
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A account index has been frozen to its current account ID. \\[index, who\\]"
]
}
],
"constants": [
{
"name": "Deposit",
"ty": 7,
"value": [
0,
64,
122,
16,
243,
90,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The deposit needed for reserving an index."
]
}
],
"errors": [
{
"name": "NotAssigned",
"documentation": [
" The index was not already assigned."
]
},
{
"name": "NotOwner",
"documentation": [
" The index is assigned to another account."
]
},
{
"name": "InUse",
"documentation": [
" The index was not available."
]
},
{
"name": "NotTransfer",
"documentation": [
" The source and destination accounts are identical."
]
},
{
"name": "Permanent",
"documentation": [
" The index is permanent and may not be freed/changed."
]
}
],
"index": 5
},
{
"name": "Balances",
"storage": {
"prefix": "Balances",
"entries": [
{
"name": "TotalIssuance",
"modifier": "Default",
"ty": {
"Plain": 7
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The total units issued in the system."
]
},
{
"name": "Account",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Blake2_128Concat",
"key": 1,
"value": 6,
"unused": false
}
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The balance of an account.",
"",
" NOTE: This is only used in the case that this pallet is used to store balances."
]
},
{
"name": "Locks",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Blake2_128Concat",
"key": 1,
"value": 229,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Any liquidity locks on some account balances.",
" NOTE: Should only be accessed when setting, changing and freeing a lock."
]
},
{
"name": "StorageVersion",
"modifier": "Default",
"ty": {
"Plain": 232
},
"default": [
0
],
"documentation": [
" Storage version of the pallet.",
"",
" This is set to v2.0.0 for new networks."
]
}
]
},
"calls": [
{
"name": "transfer",
"arguments": [
{
"name": "dest",
"ty": 135,
"is_compact": false
},
{
"name": "value",
"ty": 7,
"is_compact": true
}
],
"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`.",
" - `transfer_keep_alive` works the same way as `transfer`, but has an additional",
" check that the transfer will not kill the origin account.",
" ---------------------------------",
" - Base Weight: 73.64 µs, worst case scenario (account created, account removed)",
" - DB Weight: 1 Read and 1 Write to destination account",
" - Origin account is already in memory, so no DB operations for them.",
" # </weight>"
]
},
{
"name": "set_balance",
"arguments": [
{
"name": "who",
"ty": 135,
"is_compact": false
},
{
"name": "new_free",
"ty": 7,
"is_compact": true
},
{
"name": "new_reserved",
"ty": 7,
"is_compact": true
}
],
"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.",
" ---------------------",
" - Base Weight:",
" - Creating: 27.56 µs",
" - Killing: 35.11 µs",
" - DB Weight: 1 Read, 1 Write to `who`",
" # </weight>"
]
},
{
"name": "force_transfer",
"arguments": [
{
"name": "source",
"ty": 135,
"is_compact": false
},
{
"name": "dest",
"ty": 135,
"is_compact": false
},
{
"name": "value",
"ty": 7,
"is_compact": true
}
],
"documentation": [
" Exactly as `transfer`, except the origin must be root and the source account may be",
" specified.",
" # <weight>",
" - Same as transfer, but additional read and write because the source account is",
" not assumed to be in the overlay.",
" # </weight>"
]
},
{
"name": "transfer_keep_alive",
"arguments": [
{
"name": "dest",
"ty": 135,
"is_compact": false
},
{
"name": "value",
"ty": 7,
"is_compact": true
}
],
"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.Pallet.html#method.transfer",
" # <weight>",
" - Cheaper than transfer because account cannot be killed.",
" - Base Weight: 51.4 µs",
" - DB Weight: 1 Read and 1 Write to dest (sender is in overlay already)",
" #</weight>"
]
}
],
"event": [
{
"name": "Endowed",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" An account was created with some free balance. \\[account, free_balance\\]"
]
},
{
"name": "DustLost",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" An account was removed whose balance was non-zero but below ExistentialDeposit,",
" resulting in an outright loss. \\[account, balance\\]"
]
},
{
"name": "Transfer",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" Transfer succeeded. \\[from, to, value\\]"
]
},
{
"name": "BalanceSet",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" A balance was set by root. \\[who, free, reserved\\]"
]
},
{
"name": "Deposit",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" Some amount was deposited (e.g. for transaction fees). \\[who, deposit\\]"
]
},
{
"name": "Reserved",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" Some balance was reserved (moved from free to reserved). \\[who, value\\]"
]
},
{
"name": "Unreserved",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" Some balance was unreserved (moved from reserved to free). \\[who, value\\]"
]
},
{
"name": "ReserveRepatriated",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
},
{
"ty": 33,
"name": "Status"
}
],
"documentation": [
" Some balance was moved from the reserve of the first account to the second account.",
" Final argument indicates the destination balance type.",
" \\[from, to, balance, destination_status\\]"
]
}
],
"constants": [
{
"name": "ExistentialDeposit",
"ty": 7,
"value": [
0,
64,
122,
16,
243,
90,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The minimum amount required to keep an account open."
]
}
],
"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"
]
}
],
"index": 6
},
{
"name": "TransactionPayment",
"storage": {
"prefix": "TransactionPayment",
"entries": [
{
"name": "NextFeeMultiplier",
"modifier": "Default",
"ty": {
"Plain": 233
},
"default": [
0,
0,
100,
167,
179,
182,
224,
13,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": []
},
{
"name": "StorageVersion",
"modifier": "Default",
"ty": {
"Plain": 234
},
"default": [
0
],
"documentation": []
}
]
},
"calls": null,
"event": null,
"constants": [
{
"name": "TransactionByteFee",
"ty": 7,
"value": [
0,
228,
11,
84,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The fee to be paid for making a transaction; the per-byte portion."
]
},
{
"name": "WeightToFee",
"ty": 235,
"value": [
4,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1
],
"documentation": [
" The polynomial that is applied in order to derive fee from weight."
]
}
],
"errors": [],
"index": 7
},
{
"name": "ElectionProviderMultiPhase",
"storage": {
"prefix": "ElectionProviderMultiPhase",
"entries": [
{
"name": "Round",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
1,
0,
0,
0
],
"documentation": [
" Internal counter for the number of rounds.",
"",
" This is useful for de-duplication of transactions submitted to the pool, and general",
" diagnostics of the pallet.",
"",
" This is merely incremented once per every time that an upstream `elect` is called."
]
},
{
"name": "CurrentPhase",
"modifier": "Default",
"ty": {
"Plain": 237
},
"default": [
0
],
"documentation": [
" Current phase."
]
},
{
"name": "QueuedSolution",
"modifier": "Optional",
"ty": {
"Plain": 239
},
"default": [
0
],
"documentation": [
" Current best solution, signed or unsigned, queued to be returned upon `elect`."
]
},
{
"name": "Snapshot",
"modifier": "Optional",
"ty": {
"Plain": 243
},
"default": [
0
],
"documentation": [
" Snapshot data of the round.",
"",
" This is created at the beginning of the signed phase and cleared upon calling `elect`."
]
},
{
"name": "DesiredTargets",
"modifier": "Optional",
"ty": {
"Plain": 5
},
"default": [
0
],
"documentation": [
" Desired number of targets to elect for this round.",
"",
" Only exists when [`Snapshot`] is present."
]
},
{
"name": "SnapshotMetadata",
"modifier": "Optional",
"ty": {
"Plain": 140
},
"default": [
0
],
"documentation": [
" The metadata of the [`RoundSnapshot`]",
"",
" Only exists when [`Snapshot`] is present."
]
}
]
},
"calls": [
{
"name": "submit_unsigned",
"arguments": [
{
"name": "solution",
"ty": 138,
"is_compact": false
},
{
"name": "witness",
"ty": 140,
"is_compact": false
}
],
"documentation": [
" Submit a solution for the unsigned phase.",
"",
" The dispatch origin fo this call must be __none__.",
"",
" This submission is checked on the fly. Moreover, this unsigned solution is only",
" validated when submitted to the pool from the **local** node. Effectively, this means",
" that only active validators can submit this transaction when authoring a block (similar",
" to an inherent).",
"",
" To prevent any incorrect solution (and thus wasted time/weight), this transaction will",
" panic if the solution submitted by the validator is invalid in any way, effectively",
" putting their authoring reward at risk.",
"",
" No deposit or reward is associated with this submission."
]
}
],
"event": [
{
"name": "SolutionStored",
"arguments": [
{
"ty": 35,
"name": "ElectionCompute"
}
],
"documentation": [
" A solution was stored with the given compute.",
"",
" If the solution is signed, this means that it hasn't yet been processed. If the",
" solution is unsigned, this means that it has also been processed."
]
},
{
"name": "ElectionFinalized",
"arguments": [
{
"ty": 36,
"name": "Option<ElectionCompute>"
}
],
"documentation": [
" The election has been finalized, with `Some` of the given computation, or else if the",
" election failed, `None`."
]
},
{
"name": "Rewarded",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" An account has been rewarded for their signed submission being finalized."
]
},
{
"name": "Slashed",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" An account has been slashed for submitting an invalid signed submission."
]
},
{
"name": "SignedPhaseStarted",
"arguments": [
{
"ty": 5,
"name": "u32"
}
],
"documentation": [
" The signed phase of the given round has started."
]
},
{
"name": "UnsignedPhaseStarted",
"arguments": [
{
"ty": 5,
"name": "u32"
}
],
"documentation": [
" The unsigned phase of the given round has started."
]
}
],
"constants": [
{
"name": "UnsignedPhase",
"ty": 5,
"value": [
50,
0,
0,
0
],
"documentation": [
" Duration of the unsigned phase."
]
},
{
"name": "SignedPhase",
"ty": 5,
"value": [
50,
0,
0,
0
],
"documentation": [
" Duration of the signed phase."
]
},
{
"name": "SolutionImprovementThreshold",
"ty": 100,
"value": [
160,
134,
1,
0
],
"documentation": [
" The minimum amount of improvement to the solution score that defines a solution as",
" \"better\" (in any phase)."
]
}
],
"errors": [
{
"name": "PreDispatchEarlySubmission",
"documentation": [
" Submission was too early."
]
},
{
"name": "PreDispatchWrongWinnerCount",
"documentation": [
" Wrong number of winners presented."
]
},
{
"name": "PreDispatchWeakSubmission",
"documentation": [
" Submission was too weak, score-wise."
]
}
],
"index": 8
},
{
"name": "Staking",
"storage": {
"prefix": "Staking",
"entries": [
{
"name": "HistoryDepth",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
84,
0,
0,
0
],
"documentation": [
" Number of eras to keep in history.",
"",
" Information is kept for eras in `[current_era - history_depth; current_era]`.",
"",
" Must be more than the number of eras delayed by session otherwise. I.e. active era must",
" always be in history. I.e. `active_era > current_era - history_depth` must be",
" guaranteed."
]
},
{
"name": "ValidatorCount",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
0,
0,
0,
0
],
"documentation": [
" The ideal number of staking participants."
]
},
{
"name": "MinimumValidatorCount",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
0,
0,
0,
0
],
"documentation": [
" Minimum number of staking participants before emergency conditions are imposed."
]
},
{
"name": "Invulnerables",
"modifier": "Default",
"ty": {
"Plain": 40
},
"default": [
0
],
"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",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 1,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Map from all locked \"stash\" accounts to the controller account."
]
},
{
"name": "Ledger",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Blake2_128Concat",
"key": 1,
"value": 246,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Map from all (unlocked) \"controller\" accounts to the info regarding the staking."
]
},
{
"name": "Payee",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 142,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Where the reward payment should be made. Keyed by stash."
]
},
{
"name": "Validators",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 143,
"unused": false
}
},
"default": [
0,
0
],
"documentation": [
" The map from (wannabe) validator stash key to the preferences of that validator."
]
},
{
"name": "Nominators",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 249,
"unused": false
}
},
"default": [
0
],
"documentation": [
" The map from nominator stash key to the set of stash keys of all validators to nominate."
]
},
{
"name": "CurrentEra",
"modifier": "Optional",
"ty": {
"Plain": 5
},
"default": [
0
],
"documentation": [
" The current era index.",
"",
" This is the latest planned era, depending on how the Session pallet queues the validator",
" set, it might be active or not."
]
},
{
"name": "ActiveEra",
"modifier": "Optional",
"ty": {
"Plain": 250
},
"default": [
0
],
"documentation": [
" The active era information, it holds index and start.",
"",
" The active era is the era being currently rewarded. Validator set of this era must be",
" equal to [`SessionInterface::validators`]."
]
},
{
"name": "ErasStartSessionIndex",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 5,
"value": 5,
"unused": false
}
},
"default": [
0
],
"documentation": [
" The session index at which the era start for the last `HISTORY_DEPTH` eras.",
"",
" Note: This tracks the starting session (i.e. session index when era start being active)",
" for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`."
]
},
{
"name": "ErasStakers",
"modifier": "Default",
"ty": {
"DoubleMap": {
"hasher": "Twox64Concat",
"key1": 5,
"key2": 1,
"value": 68,
"key2_hasher": "Twox64Concat"
}
},
"default": [
0,
0,
0
],
"documentation": [
" Exposure of validator at era.",
"",
" This is keyed first by the era index to allow bulk deletion and then the stash account.",
"",
" Is it removed after `HISTORY_DEPTH` eras.",
" If stakers hasn't been set or has been removed then empty exposure is returned."
]
},
{
"name": "ErasStakersClipped",
"modifier": "Default",
"ty": {
"DoubleMap": {
"hasher": "Twox64Concat",
"key1": 5,
"key2": 1,
"value": 68,
"key2_hasher": "Twox64Concat"
}
},
"default": [
0,
0,
0
],
"documentation": [
" Clipped Exposure of validator at era.",
"",
" This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the",
" `T::MaxNominatorRewardedPerValidator` biggest stakers.",
" (Note: the field `total` and `own` of the exposure remains unchanged).",
" This is used to limit the i/o cost for the nominator payout.",
"",
" This is keyed fist by the era index to allow bulk deletion and then the stash account.",
"",
" Is it removed after `HISTORY_DEPTH` eras.",
" If stakers hasn't been set or has been removed then empty exposure is returned."
]
},
{
"name": "ErasValidatorPrefs",
"modifier": "Default",
"ty": {
"DoubleMap": {
"hasher": "Twox64Concat",
"key1": 5,
"key2": 1,
"value": 143,
"key2_hasher": "Twox64Concat"
}
},
"default": [
0,
0
],
"documentation": [
" Similar to `ErasStakers`, this holds the preferences of validators.",
"",
" This is keyed first by the era index to allow bulk deletion and then the stash account.",
"",
" Is it removed after `HISTORY_DEPTH` eras."
]
},
{
"name": "ErasValidatorReward",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 5,
"value": 7,
"unused": false
}
},
"default": [
0
],
"documentation": [
" The total validator era payout for the last `HISTORY_DEPTH` eras.",
"",
" Eras that haven't finished yet or has been removed doesn't have reward."
]
},
{
"name": "ErasRewardPoints",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 5,
"value": 251,
"unused": false
}
},
"default": [
0,
0,
0,
0,
0
],
"documentation": [
" Rewards for the last `HISTORY_DEPTH` eras.",
" If reward hasn't been set or has been removed then 0 reward is returned."
]
},
{
"name": "ErasTotalStake",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 5,
"value": 7,
"unused": false
}
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The total amount staked for the last `HISTORY_DEPTH` eras.",
" If total hasn't been set or has been removed then 0 stake is returned."
]
},
{
"name": "ForceEra",
"modifier": "Default",
"ty": {
"Plain": 255
},
"default": [
0
],
"documentation": [
" Mode of era forcing."
]
},
{
"name": "SlashRewardFraction",
"modifier": "Default",
"ty": {
"Plain": 100
},
"default": [
0,
0,
0,
0
],
"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",
"ty": {
"Plain": 7
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"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",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 5,
"value": 256,
"unused": false
}
},
"default": [
0
],
"documentation": [
" All unapplied slashes that are queued for later."
]
},
{
"name": "BondedEras",
"modifier": "Default",
"ty": {
"Plain": 96
},
"default": [
0
],
"documentation": [
" A mapping from still-bonded eras to the first session index of that era.",
"",
" Must contains information for eras for the range:",
" `[active_era - bounding_duration; active_era]`"
]
},
{
"name": "ValidatorSlashInEra",
"modifier": "Optional",
"ty": {
"DoubleMap": {
"hasher": "Twox64Concat",
"key1": 5,
"key2": 1,
"value": 258,
"key2_hasher": "Twox64Concat"
}
},
"default": [
0
],
"documentation": [
" All slashing events on validators, mapped by era to the highest slash proportion",
" and slash value of the era."
]
},
{
"name": "NominatorSlashInEra",
"modifier": "Optional",
"ty": {
"DoubleMap": {
"hasher": "Twox64Concat",
"key1": 5,
"key2": 1,
"value": 7,
"key2_hasher": "Twox64Concat"
}
},
"default": [
0
],
"documentation": [
" All slashing events on nominators, mapped by era to the highest slash value of the era."
]
},
{
"name": "SlashingSpans",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 259,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Slashing spans for stash accounts."
]
},
{
"name": "SpanSlash",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 253,
"value": 260,
"unused": false
}
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"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",
"ty": {
"Plain": 5
},
"default": [
0
],
"documentation": [
" The earliest era for which we have a pending, unapplied slash."
]
},
{
"name": "CurrentPlannedSession",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
0,
0,
0,
0
],
"documentation": [
" The last planned session scheduled by the session pallet.",
"",
" This is basically in sync with the call to [`SessionManager::new_session`]."
]
},
{
"name": "StorageVersion",
"modifier": "Default",
"ty": {
"Plain": 261
},
"default": [
5
],
"documentation": [
" True if network has been upgraded to this version.",
" Storage version of the pallet.",
"",
" This is set to v6.0.0 for new networks."
]
}
]
},
"calls": [
{
"name": "bond",
"arguments": [
{
"name": "controller",
"ty": 135,
"is_compact": false
},
{
"name": "value",
"ty": 7,
"is_compact": true
},
{
"name": "payee",
"ty": 142,
"is_compact": false
}
],
"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.",
"",
" Emits `Bonded`.",
"",
" # <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: O(1)",
" DB Weight:",
" - Read: Bonded, Ledger, [Origin Account], Current Era, History Depth, Locks",
" - Write: Bonded, Payee, [Origin Account], Locks, Ledger",
" # </weight>"
]
},
{
"name": "bond_extra",
"arguments": [
{
"name": "max_additional",
"ty": 7,
"is_compact": true
}
],
"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 and",
" it can be only called when [`EraElectionStatus`] is `Closed`.",
"",
" Emits `Bonded`.",
"",
" # <weight>",
" - Independent of the arguments. Insignificant complexity.",
" - O(1).",
" - One DB entry.",
" ------------",
" DB Weight:",
" - Read: Era Election Status, Bonded, Ledger, [Origin Account], Locks",
" - Write: [Origin Account], Locks, Ledger",
" # </weight>"
]
},
{
"name": "unbond",
"arguments": [
{
"name": "value",
"ty": 7,
"is_compact": true
}
],
"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.",
" And, it can be only called when [`EraElectionStatus`] is `Closed`.",
"",
" Emits `Unbonded`.",
"",
" 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: O(1)",
" DB Weight:",
" - Read: EraElectionStatus, Ledger, CurrentEra, Locks, BalanceOf Stash,",
" - Write: Locks, Ledger, BalanceOf Stash,",
" </weight>"
]
},
{
"name": "withdraw_unbonded",
"arguments": [
{
"name": "num_slashing_spans",
"ty": 5,
"is_compact": false
}
],
"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.",
" And, it can be only called when [`EraElectionStatus`] is `Closed`.",
"",
" Emits `Withdrawn`.",
"",
" 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.",
" ---------------",
" Complexity O(S) where S is the number of slashing spans to remove",
" Update:",
" - Reads: EraElectionStatus, Ledger, Current Era, Locks, [Origin Account]",
" - Writes: [Origin Account], Locks, Ledger",
" Kill:",
" - Reads: EraElectionStatus, Ledger, Current Era, Bonded, Slashing Spans, [Origin",
" Account], Locks, BalanceOf stash",
" - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,",
" [Origin Account], Locks, BalanceOf stash.",
" - Writes Each: SpanSlash * S",
" NOTE: Weight annotation is the kill scenario, we refund otherwise.",
" # </weight>"
]
},
{
"name": "validate",
"arguments": [
{
"name": "prefs",
"ty": 143,
"is_compact": false
}
],
"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.",
" And, it can be only called when [`EraElectionStatus`] is `Closed`.",
"",
" # <weight>",
" - Independent of the arguments. Insignificant complexity.",
" - Contains a limited number of reads.",
" - Writes are limited to the `origin` account key.",
" -----------",
" Weight: O(1)",
" DB Weight:",
" - Read: Era Election Status, Ledger",
" - Write: Nominators, Validators",
" # </weight>"
]
},
{
"name": "nominate",
"arguments": [
{
"name": "targets",
"ty": 145,
"is_compact": false
}
],
"documentation": [
" Declare the desire to nominate `targets` for the origin controller.",
"",
" Effects will be felt at the beginning of the next era. This can only be called when",
" [`EraElectionStatus`] is `Closed`.",
"",
" The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
" And, it can be only called when [`EraElectionStatus`] is `Closed`.",
"",
" # <weight>",
" - The transaction's complexity is proportional to the size of `targets` (N)",
" which is capped at CompactAssignments::LIMIT (MAX_NOMINATIONS).",
" - Both the reads and writes follow a similar pattern.",
" ---------",
" Weight: O(N)",
" where N is the number of targets",
" DB Weight:",
" - Reads: Era Election Status, Ledger, Current Era",
" - Writes: Validators, Nominators",
" # </weight>"
]
},
{
"name": "chill",
"arguments": [],
"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.",
" And, it can be only called when [`EraElectionStatus`] is `Closed`.",
"",
" # <weight>",
" - Independent of the arguments. Insignificant complexity.",
" - Contains one read.",
" - Writes are limited to the `origin` account key.",
" --------",
" Weight: O(1)",
" DB Weight:",
" - Read: EraElectionStatus, Ledger",
" - Write: Validators, Nominators",
" # </weight>"
]
},
{
"name": "set_payee",
"arguments": [
{
"name": "payee",
"ty": 142,
"is_compact": false
}
],
"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: O(1)",
" - DB Weight:",
" - Read: Ledger",
" - Write: Payee",
" # </weight>"
]
},
{
"name": "set_controller",
"arguments": [
{
"name": "controller",
"ty": 135,
"is_compact": false
}
],
"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: O(1)",
" DB Weight:",
" - Read: Bonded, Ledger New Controller, Ledger Old Controller",
" - Write: Bonded, Ledger New Controller, Ledger Old Controller",
" # </weight>"
]
},
{
"name": "set_validator_count",
"arguments": [
{
"name": "new",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Sets the ideal number of validators.",
"",
" The dispatch origin must be Root.",
"",
" # <weight>",
" Weight: O(1)",
" Write: Validator Count",
" # </weight>"
]
},
{
"name": "increase_validator_count",
"arguments": [
{
"name": "additional",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Increments the ideal number of validators.",
"",
" The dispatch origin must be Root.",
"",
" # <weight>",
" Same as [`set_validator_count`].",
" # </weight>"
]
},
{
"name": "scale_validator_count",
"arguments": [
{
"name": "factor",
"ty": 146,
"is_compact": false
}
],
"documentation": [
" Scale up the ideal number of validators by a factor.",
"",
" The dispatch origin must be Root.",
"",
" # <weight>",
" Same as [`set_validator_count`].",
" # </weight>"
]
},
{
"name": "force_no_eras",
"arguments": [],
"documentation": [
" Force there to be no new eras indefinitely.",
"",
" The dispatch origin must be Root.",
"",
" # <weight>",
" - No arguments.",
" - Weight: O(1)",
" - Write: ForceEra",
" # </weight>"
]
},
{
"name": "force_new_era",
"arguments": [],
"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.",
"",
" The dispatch origin must be Root.",
"",
" # <weight>",
" - No arguments.",
" - Weight: O(1)",
" - Write ForceEra",
" # </weight>"
]
},
{
"name": "set_invulnerables",
"arguments": [
{
"name": "invulnerables",
"ty": 40,
"is_compact": false
}
],
"documentation": [
" Set the validators who cannot be slashed (if any).",
"",
" The dispatch origin must be Root.",
"",
" # <weight>",
" - O(V)",
" - Write: Invulnerables",
" # </weight>"
]
},
{
"name": "force_unstake",
"arguments": [
{
"name": "stash",
"ty": 1,
"is_compact": false
},
{
"name": "num_slashing_spans",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Force a current staker to become completely unstaked, immediately.",
"",
" The dispatch origin must be Root.",
"",
" # <weight>",
" O(S) where S is the number of slashing spans to be removed",
" Reads: Bonded, Slashing Spans, Account, Locks",
" Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Account, Locks",
" Writes Each: SpanSlash * S",
" # </weight>"
]
},
{
"name": "force_new_era_always",
"arguments": [],
"documentation": [
" Force there to be a new era at the end of sessions indefinitely.",
"",
" The dispatch origin must be Root.",
"",
" # <weight>",
" - Weight: O(1)",
" - Write: ForceEra",
" # </weight>"
]
},
{
"name": "cancel_deferred_slash",
"arguments": [
{
"name": "era",
"ty": 5,
"is_compact": false
},
{
"name": "slash_indices",
"ty": 147,
"is_compact": false
}
],
"documentation": [
" Cancel enactment of a deferred slash.",
"",
" Can be called by the `T::SlashCancelOrigin`.",
"",
" Parameters: era and indices of the slashes for that era to kill.",
"",
" # <weight>",
" Complexity: O(U + S)",
" with U unapplied slashes weighted with U=1000",
" and S is the number of slash indices to be canceled.",
" - Read: Unapplied Slashes",
" - Write: Unapplied Slashes",
" # </weight>"
]
},
{
"name": "payout_stakers",
"arguments": [
{
"name": "validator_stash",
"ty": 1,
"is_compact": false
},
{
"name": "era",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Pay out all the stakers behind a single validator for a single era.",
"",
" - `validator_stash` is the stash account of the validator. Their nominators, up to",
" `T::MaxNominatorRewardedPerValidator`, will also receive their rewards.",
" - `era` may be any era between `[current_era - history_depth; current_era]`.",
"",
" The origin of this call must be _Signed_. Any account can call this function, even if",
" it is not one of the stakers.",
"",
" This can only be called when [`EraElectionStatus`] is `Closed`.",
"",
" # <weight>",
" - Time complexity: at most O(MaxNominatorRewardedPerValidator).",
" - Contains a limited number of reads and writes.",
" -----------",
" N is the Number of payouts for the validator (including the validator)",
" Weight:",
" - Reward Destination Staked: O(N)",
" - Reward Destination Controller (Creating): O(N)",
" DB Weight:",
" - Read: EraElectionStatus, CurrentEra, HistoryDepth, ErasValidatorReward,",
" ErasStakersClipped, ErasRewardPoints, ErasValidatorPrefs (8 items)",
" - Read Each: Bonded, Ledger, Payee, Locks, System Account (5 items)",
" - Write Each: System Account, Locks, Ledger (3 items)",
"",
" NOTE: weights are assuming that payouts are made to alive stash account (Staked).",
" Paying even a dead controller is cheaper weight-wise. We don't do any refunds here.",
" # </weight>"
]
},
{
"name": "rebond",
"arguments": [
{
"name": "value",
"ty": 7,
"is_compact": true
}
],
"documentation": [
" Rebond a portion of the stash scheduled to be unlocked.",
"",
" The dispatch origin must be signed by the controller, and it can be only called when",
" [`EraElectionStatus`] is `Closed`.",
"",
" # <weight>",
" - Time complexity: O(L), where L is unlocking chunks",
" - Bounded by `MAX_UNLOCKING_CHUNKS`.",
" - Storage changes: Can't increase storage, only decrease it.",
" ---------------",
" - DB Weight:",
" - Reads: EraElectionStatus, Ledger, Locks, [Origin Account]",
" - Writes: [Origin Account], Locks, Ledger",
" # </weight>"
]
},
{
"name": "set_history_depth",
"arguments": [
{
"name": "new_history_depth",
"ty": 5,
"is_compact": true
},
{
"name": "_era_items_deleted",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Set `HistoryDepth` value. This function will delete any history information",
" when `HistoryDepth` is reduced.",
"",
" Parameters:",
" - `new_history_depth`: The new history depth you would like to set.",
" - `era_items_deleted`: The number of items that will be deleted by this dispatch.",
" This should report all the storage items that will be deleted by clearing old",
" era history. Needed to report an accurate weight for the dispatch. Trusted by",
" `Root` to report an accurate number.",
"",
" Origin must be root.",
"",
" # <weight>",
" - E: Number of history depths removed, i.e. 10 -> 7 = 3",
" - Weight: O(E)",
" - DB Weight:",
" - Reads: Current Era, History Depth",
" - Writes: History Depth",
" - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs",
" - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, ErasStartSessionIndex",
" # </weight>"
]
},
{
"name": "reap_stash",
"arguments": [
{
"name": "stash",
"ty": 1,
"is_compact": false
},
{
"name": "num_slashing_spans",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Remove all data structure concerning a staker/stash once its balance is at the minimum.",
" This is essentially equivalent to `withdraw_unbonded` except it can be called by anyone",
" and the target `stash` must have no funds left beyond the ED.",
"",
" This can be called from any origin.",
"",
" - `stash`: The stash account to reap. Its balance must be zero.",
"",
" # <weight>",
" Complexity: O(S) where S is the number of slashing spans on the account.",
" DB Weight:",
" - Reads: Stash Account, Bonded, Slashing Spans, Locks",
" - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Stash Account, Locks",
" - Writes Each: SpanSlash * S",
" # </weight>"
]
},
{
"name": "kick",
"arguments": [
{
"name": "who",
"ty": 145,
"is_compact": false
}
],
"documentation": [
" Remove the given nominations from the calling validator.",
"",
" 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.",
" And, it can be only called when [`EraElectionStatus`] is `Closed`. The controller",
" account should represent a validator.",
"",
" - `who`: A list of nominator stash accounts who are nominating this validator which",
" should no longer be nominating this validator.",
"",
" Note: Making this call only makes sense if you first set the validator preferences to",
" block any further nominations."
]
}
],
"event": [
{
"name": "EraPayout",
"arguments": [
{
"ty": 5,
"name": "EraIndex"
},
{
"ty": 7,
"name": "Balance"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" The era payout has been set; the first balance is the validator-payout; the second is",
" the remainder from the maximum amount of reward.",
" \\[era_index, validator_payout, remainder\\]"
]
},
{
"name": "Reward",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" The staker has been rewarded by this amount. \\[stash, amount\\]"
]
},
{
"name": "Slash",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" One validator (and its nominators) has been slashed by the given amount.",
" \\[validator, amount\\]"
]
},
{
"name": "OldSlashingReportDiscarded",
"arguments": [
{
"ty": 5,
"name": "SessionIndex"
}
],
"documentation": [
" An old slashing report from a prior era was discarded because it could",
" not be processed. \\[session_index\\]"
]
},
{
"name": "StakingElection",
"arguments": [],
"documentation": [
" A new set of stakers was elected."
]
},
{
"name": "Bonded",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" An account has bonded this amount. \\[stash, amount\\]",
"",
" NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,",
" it will not be emitted for staking rewards when they are added to stake."
]
},
{
"name": "Unbonded",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" An account has unbonded this amount. \\[stash, amount\\]"
]
},
{
"name": "Withdrawn",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`",
" from the unlocking queue. \\[stash, amount\\]"
]
},
{
"name": "Kicked",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A nominator has been kicked from a validator. \\[nominator, stash\\]"
]
}
],
"constants": [
{
"name": "SessionsPerEra",
"ty": 5,
"value": [
6,
0,
0,
0
],
"documentation": [
" Number of sessions per era."
]
},
{
"name": "BondingDuration",
"ty": 5,
"value": [
160,
2,
0,
0
],
"documentation": [
" Number of eras that staked funds must remain bonded for."
]
},
{
"name": "SlashDeferDuration",
"ty": 5,
"value": [
168,
0,
0,
0
],
"documentation": [
" Number of eras that slashes are deferred by, after computation.",
"",
" This should be less than the bonding duration.",
" Set to 0 if slashes should be applied immediately, without opportunity for",
" intervention."
]
},
{
"name": "MaxNominatorRewardedPerValidator",
"ty": 5,
"value": [
0,
1,
0,
0
],
"documentation": [
" The maximum number of nominators rewarded for each validator.",
"",
" For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can claim",
" their reward. This used to limit the i/o cost for the nominator payout."
]
},
{
"name": "MaxNominations",
"ty": 5,
"value": [
16,
0,
0,
0
],
"documentation": [
" Maximum number of nominations per nominator."
]
}
],
"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": "FundedTarget",
"documentation": [
" Attempting to target a stash that still has funds."
]
},
{
"name": "InvalidEraToReward",
"documentation": [
" Invalid era to reward."
]
},
{
"name": "InvalidNumberOfNominations",
"documentation": [
" Invalid number of nominations."
]
},
{
"name": "NotSortedAndUnique",
"documentation": [
" Items are not sorted and unique."
]
},
{
"name": "AlreadyClaimed",
"documentation": [
" Rewards for this era have already been claimed for this validator."
]
},
{
"name": "IncorrectHistoryDepth",
"documentation": [
" Incorrect previous history depth input provided."
]
},
{
"name": "IncorrectSlashingSpans",
"documentation": [
" Incorrect number of slashing spans provided."
]
},
{
"name": "BadState",
"documentation": [
" Internal state has become somehow corrupted and the operation cannot continue."
]
},
{
"name": "TooManyTargets",
"documentation": [
" Too many nomination targets supplied."
]
},
{
"name": "BadTarget",
"documentation": [
" A nomination target was supplied that was blocked or otherwise not a validator."
]
}
],
"index": 9
},
{
"name": "Session",
"storage": {
"prefix": "Session",
"entries": [
{
"name": "Validators",
"modifier": "Default",
"ty": {
"Plain": 40
},
"default": [
0
],
"documentation": [
" The current set of validators."
]
},
{
"name": "CurrentIndex",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
0,
0,
0,
0
],
"documentation": [
" Current index of the session."
]
},
{
"name": "QueuedChanged",
"modifier": "Default",
"ty": {
"Plain": 42
},
"default": [
0
],
"documentation": [
" True if the underlying economic identities or weighting behind the validators",
" has changed in the queued validator set."
]
},
{
"name": "QueuedKeys",
"modifier": "Default",
"ty": {
"Plain": 262
},
"default": [
0
],
"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",
"ty": {
"Plain": 147
},
"default": [
0
],
"documentation": [
" Indices of disabled validators.",
"",
" The set is cleared when `on_session_ending` returns a new set of identities."
]
},
{
"name": "NextKeys",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 149,
"unused": false
}
},
"default": [
0
],
"documentation": [
" The next session keys for a validator."
]
},
{
"name": "KeyOwner",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 264,
"value": 1,
"unused": false
}
},
"default": [
0
],
"documentation": [
" The owner of a key. The key is the `KeyTypeId` + the encoded key."
]
}
]
},
"calls": [
{
"name": "set_keys",
"arguments": [
{
"name": "keys",
"ty": 149,
"is_compact": false
},
{
"name": "proof",
"ty": 11,
"is_compact": false
}
],
"documentation": [
" Sets the session key(s) of the function caller to `keys`.",
" Allows an account to set its session key prior to becoming a validator.",
" This doesn't take effect until the next session.",
"",
" The dispatch origin of this function must be signed.",
"",
" # <weight>",
" - Complexity: `O(1)`",
" Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.",
" - DbReads: `origin account`, `T::ValidatorIdOf`, `NextKeys`",
" - DbWrites: `origin account`, `NextKeys`",
" - DbReads per key id: `KeyOwner`",
" - DbWrites per key id: `KeyOwner`",
" # </weight>"
]
},
{
"name": "purge_keys",
"arguments": [],
"documentation": [
" Removes any session key(s) of the function caller.",
" This doesn't take effect until the next session.",
"",
" The dispatch origin of this function must be signed.",
"",
" # <weight>",
" - Complexity: `O(1)` in number of key types.",
" Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.",
" - DbReads: `T::ValidatorIdOf`, `NextKeys`, `origin account`",
" - DbWrites: `NextKeys`, `origin account`",
" - DbWrites per key id: `KeyOwnder`",
" # </weight>"
]
}
],
"event": [
{
"name": "NewSession",
"arguments": [
{
"ty": 5,
"name": "SessionIndex"
}
],
"documentation": [
" New session has happened. Note that the argument is the \\[session_index\\], not the block",
" number as the type might suggest."
]
}
],
"constants": [],
"errors": [
{
"name": "InvalidProof",
"documentation": [
" Invalid ownership proof."
]
},
{
"name": "NoAssociatedValidatorId",
"documentation": [
" No associated validator ID for account."
]
},
{
"name": "DuplicatedKey",
"documentation": [
" Registered duplicate key."
]
},
{
"name": "NoKeys",
"documentation": [
" No keys are associated with this account."
]
},
{
"name": "NoAccount",
"documentation": [
" Key setting account is not live, so it's impossible to associate keys."
]
}
],
"index": 10
},
{
"name": "Democracy",
"storage": {
"prefix": "Democracy",
"entries": [
{
"name": "PublicPropCount",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
0,
0,
0,
0
],
"documentation": [
" The number of (public) proposals that have been made so far."
]
},
{
"name": "PublicProps",
"modifier": "Default",
"ty": {
"Plain": 266
},
"default": [
0
],
"documentation": [
" The public proposals. Unsorted. The second item is the proposal's hash."
]
},
{
"name": "DepositOf",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 5,
"value": 268,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Those who have locked a deposit.",
"",
" TWOX-NOTE: Safe, as increasing integer keys are safe."
]
},
{
"name": "Preimages",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Identity",
"key": 10,
"value": 269,
"unused": false
}
},
"default": [
0
],
"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": "ReferendumCount",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
0,
0,
0,
0
],
"documentation": [
" The next free referendum index, aka the number of referenda started so far."
]
},
{
"name": "LowestUnbaked",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
0,
0,
0,
0
],
"documentation": [
" The lowest referendum index representing an unbaked referendum. Equal to",
" `ReferendumCount` if there isn't a unbaked referendum."
]
},
{
"name": "ReferendumInfoOf",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 5,
"value": 270,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Information concerning any given referendum.",
"",
" TWOX-NOTE: SAFE as indexes are not under an attacker’s control."
]
},
{
"name": "VotingOf",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 273,
"unused": false
}
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" All votes for a particular voter. We store the balance for the number of votes that we",
" have recorded. The second item is the total amount of delegations, that will be added.",
"",
" TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway."
]
},
{
"name": "Locks",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 5,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Accounts for which there are locks in action which may be removed at some point in the",
" future. The value is the block number at which the lock expires and may be removed.",
"",
" TWOX-NOTE: OK ― `AccountId` is a secure hash."
]
},
{
"name": "LastTabledWasExternal",
"modifier": "Default",
"ty": {
"Plain": 42
},
"default": [
0
],
"documentation": [
" True if the last referendum tabled was submitted externally. False if it was a public",
" proposal."
]
},
{
"name": "NextExternal",
"modifier": "Optional",
"ty": {
"Plain": 278
},
"default": [
0
],
"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",
"ty": {
"Map": {
"hasher": "Identity",
"key": 10,
"value": 279,
"unused": false
}
},
"default": [
0
],
"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",
"ty": {
"Map": {
"hasher": "Identity",
"key": 10,
"value": 42,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Record of all proposals that have been subject to emergency cancellation."
]
},
{
"name": "StorageVersion",
"modifier": "Optional",
"ty": {
"Plain": 280
},
"default": [
0
],
"documentation": [
" Storage version of the pallet.",
"",
" New networks start with last version."
]
}
]
},
"calls": [
{
"name": "propose",
"arguments": [
{
"name": "proposal_hash",
"ty": 10,
"is_compact": false
},
{
"name": "value",
"ty": 7,
"is_compact": true
}
],
"documentation": [
" Propose a sensitive action to be taken.",
"",
" The dispatch origin of this call must be _Signed_ and the sender must",
" have funds to cover the deposit.",
"",
" - `proposal_hash`: The hash of the proposal preimage.",
" - `value`: The amount of deposit (must be at least `MinimumDeposit`).",
"",
" Emits `Proposed`.",
"",
" Weight: `O(p)`"
]
},
{
"name": "second",
"arguments": [
{
"name": "proposal",
"ty": 5,
"is_compact": true
},
{
"name": "seconds_upper_bound",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Signals agreement with a particular proposal.",
"",
" The dispatch origin of this call must be _Signed_ and the sender",
" must have funds to cover the deposit, equal to the original deposit.",
"",
" - `proposal`: The index of the proposal to second.",
" - `seconds_upper_bound`: an upper bound on the current number of seconds on this",
" proposal. Extrinsic is weighted according to this value with no refund.",
"",
" Weight: `O(S)` where S is the number of seconds a proposal already has."
]
},
{
"name": "vote",
"arguments": [
{
"name": "ref_index",
"ty": 5,
"is_compact": true
},
{
"name": "vote",
"ty": 152,
"is_compact": false
}
],
"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.",
"",
" The dispatch origin of this call must be _Signed_.",
"",
" - `ref_index`: The index of the referendum to vote for.",
" - `vote`: The vote configuration.",
"",
" Weight: `O(R)` where R is the number of referendums the voter has voted on."
]
},
{
"name": "emergency_cancel",
"arguments": [
{
"name": "ref_index",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Schedule an emergency cancellation of a referendum. Cannot happen twice to the same",
" referendum.",
"",
" The dispatch origin of this call must be `CancellationOrigin`.",
"",
" -`ref_index`: The index of the referendum to cancel.",
"",
" Weight: `O(1)`."
]
},
{
"name": "external_propose",
"arguments": [
{
"name": "proposal_hash",
"ty": 10,
"is_compact": false
}
],
"documentation": [
" Schedule a referendum to be tabled once it is legal to schedule an external",
" referendum.",
"",
" The dispatch origin of this call must be `ExternalOrigin`.",
"",
" - `proposal_hash`: The preimage hash of the proposal.",
"",
" Weight: `O(V)` with V number of vetoers in the blacklist of proposal.",
" Decoding vec of length V. Charged as maximum"
]
},
{
"name": "external_propose_majority",
"arguments": [
{
"name": "proposal_hash",
"ty": 10,
"is_compact": false
}
],
"documentation": [
" Schedule a majority-carries referendum to be tabled next once it is legal to schedule",
" an external referendum.",
"",
" The dispatch of this call must be `ExternalMajorityOrigin`.",
"",
" - `proposal_hash`: The preimage hash of the proposal.",
"",
" Unlike `external_propose`, blacklisting has no effect on this and it may replace a",
" pre-scheduled `external_propose` call.",
"",
" Weight: `O(1)`"
]
},
{
"name": "external_propose_default",
"arguments": [
{
"name": "proposal_hash",
"ty": 10,
"is_compact": false
}
],
"documentation": [
" Schedule a negative-turnout-bias referendum to be tabled next once it is legal to",
" schedule an external referendum.",
"",
" The dispatch of this call must be `ExternalDefaultOrigin`.",
"",
" - `proposal_hash`: The preimage hash of the proposal.",
"",
" Unlike `external_propose`, blacklisting has no effect on this and it may replace a",
" pre-scheduled `external_propose` call.",
"",
" Weight: `O(1)`"
]
},
{
"name": "fast_track",
"arguments": [
{
"name": "proposal_hash",
"ty": 10,
"is_compact": false
},
{
"name": "voting_period",
"ty": 5,
"is_compact": false
},
{
"name": "delay",
"ty": 5,
"is_compact": false
}
],
"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.",
"",
" The dispatch of this call must be `FastTrackOrigin`.",
"",
" - `proposal_hash`: The hash of the current external proposal.",
" - `voting_period`: The period that is allowed for voting on this proposal. Increased to",
" `FastTrackVotingPeriod` 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.",
"",
" Emits `Started`.",
"",
" Weight: `O(1)`"
]
},
{
"name": "veto_external",
"arguments": [
{
"name": "proposal_hash",
"ty": 10,
"is_compact": false
}
],
"documentation": [
" Veto and blacklist the external proposal hash.",
"",
" The dispatch origin of this call must be `VetoOrigin`.",
"",
" - `proposal_hash`: The preimage hash of the proposal to veto and blacklist.",
"",
" Emits `Vetoed`.",
"",
" Weight: `O(V + log(V))` where V is number of `existing vetoers`"
]
},
{
"name": "cancel_referendum",
"arguments": [
{
"name": "ref_index",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Remove a referendum.",
"",
" The dispatch origin of this call must be _Root_.",
"",
" - `ref_index`: The index of the referendum to cancel.",
"",
" # Weight: `O(1)`."
]
},
{
"name": "cancel_queued",
"arguments": [
{
"name": "which",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Cancel a proposal queued for enactment.",
"",
" The dispatch origin of this call must be _Root_.",
"",
" - `which`: The index of the referendum to cancel.",
"",
" Weight: `O(D)` where `D` is the items in the dispatch queue. Weighted as `D = 10`."
]
},
{
"name": "delegate",
"arguments": [
{
"name": "to",
"ty": 1,
"is_compact": false
},
{
"name": "conviction",
"ty": 154,
"is_compact": false
},
{
"name": "balance",
"ty": 7,
"is_compact": false
}
],
"documentation": [
" Delegate the voting power (with some given conviction) of the sending account.",
"",
" The balance delegated is locked for as long as it's delegated, and thereafter for the",
" time appropriate for the conviction's lock period.",
"",
" The dispatch origin of this call must be _Signed_, and the signing account must either:",
" - be delegating already; or",
" - have no voting activity (if there is, then it will need to be removed/consolidated",
" through `reap_vote` or `unvote`).",
"",
" - `to`: The account whose voting the `target` account's voting power will follow.",
" - `conviction`: The conviction that will be attached to the delegated votes. When the",
" account is undelegated, the funds will be locked for the corresponding period.",
" - `balance`: The amount of the account's balance to be used in delegating. This must",
" not be more than the account's current balance.",
"",
" Emits `Delegated`.",
"",
" Weight: `O(R)` where R is the number of referendums the voter delegating to has",
" voted on. Weight is charged as if maximum votes."
]
},
{
"name": "undelegate",
"arguments": [],
"documentation": [
" Undelegate the voting power of the sending account.",
"",
" Tokens may be unlocked following once an amount of time consistent with the lock period",
" of the conviction with which the delegation was issued.",
"",
" The dispatch origin of this call must be _Signed_ and the signing account must be",
" currently delegating.",
"",
" Emits `Undelegated`.",
"",
" Weight: `O(R)` where R is the number of referendums the voter delegating to has",
" voted on. Weight is charged as if maximum votes."
]
},
{
"name": "clear_public_proposals",
"arguments": [],
"documentation": [
" Clears all public proposals.",
"",
" The dispatch origin of this call must be _Root_.",
"",
" Weight: `O(1)`."
]
},
{
"name": "note_preimage",
"arguments": [
{
"name": "encoded_proposal",
"ty": 11,
"is_compact": false
}
],
"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.",
"",
" The dispatch origin of this call must be _Signed_.",
"",
" - `encoded_proposal`: The preimage of a proposal.",
"",
" Emits `PreimageNoted`.",
"",
" Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit)."
]
},
{
"name": "note_preimage_operational",
"arguments": [
{
"name": "encoded_proposal",
"ty": 11,
"is_compact": false
}
],
"documentation": [
" Same as `note_preimage` but origin is `OperationalPreimageOrigin`."
]
},
{
"name": "note_imminent_preimage",
"arguments": [
{
"name": "encoded_proposal",
"ty": 11,
"is_compact": false
}
],
"documentation": [
" Register the preimage for an upcoming proposal. This requires the proposal to be",
" in the dispatch queue. No deposit is needed. When this call is successful, i.e.",
" the preimage has not been uploaded before and matches some imminent proposal,",
" no fee is paid.",
"",
" The dispatch origin of this call must be _Signed_.",
"",
" - `encoded_proposal`: The preimage of a proposal.",
"",
" Emits `PreimageNoted`.",
"",
" Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit)."
]
},
{
"name": "note_imminent_preimage_operational",
"arguments": [
{
"name": "encoded_proposal",
"ty": 11,
"is_compact": false
}
],
"documentation": [
" Same as `note_imminent_preimage` but origin is `OperationalPreimageOrigin`."
]
},
{
"name": "reap_preimage",
"arguments": [
{
"name": "proposal_hash",
"ty": 10,
"is_compact": false
},
{
"name": "proposal_len_upper_bound",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Remove an expired proposal preimage and collect the deposit.",
"",
" The dispatch origin of this call must be _Signed_.",
"",
" - `proposal_hash`: The preimage hash of a proposal.",
" - `proposal_length_upper_bound`: an upper bound on length of the proposal.",
" Extrinsic is weighted according to this value with no refund.",
"",
" This will only work after `VotingPeriod` blocks from the time that the preimage was",
" noted, if it's the same account doing it. If it's a different account, then it'll only",
" work an additional `EnactmentPeriod` later.",
"",
" Emits `PreimageReaped`.",
"",
" Weight: `O(D)` where D is length of proposal."
]
},
{
"name": "unlock",
"arguments": [
{
"name": "target",
"ty": 1,
"is_compact": false
}
],
"documentation": [
" Unlock tokens that have an expired lock.",
"",
" The dispatch origin of this call must be _Signed_.",
"",
" - `target`: The account to remove the lock on.",
"",
" Weight: `O(R)` with R number of vote of target."
]
},
{
"name": "remove_vote",
"arguments": [
{
"name": "index",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Remove a vote for a referendum.",
"",
" If:",
" - the referendum was cancelled, or",
" - the referendum is ongoing, or",
" - the referendum has ended such that",
" - the vote of the account was in opposition to the result; or",
" - there was no conviction to the account's vote; or",
" - the account made a split vote",
" ...then the vote is removed cleanly and a following call to `unlock` may result in more",
" funds being available.",
"",
" If, however, the referendum has ended and:",
" - it finished corresponding to the vote of the account, and",
" - the account made a standard vote with conviction, and",
" - the lock period of the conviction is not over",
" ...then the lock will be aggregated into the overall account's lock, which may involve",
" *overlocking* (where the two locks are combined into a single lock that is the maximum",
" of both the amount locked and the time is it locked for).",
"",
" The dispatch origin of this call must be _Signed_, and the signer must have a vote",
" registered for referendum `index`.",
"",
" - `index`: The index of referendum of the vote to be removed.",
"",
" Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.",
" Weight is calculated for the maximum number of vote."
]
},
{
"name": "remove_other_vote",
"arguments": [
{
"name": "target",
"ty": 1,
"is_compact": false
},
{
"name": "index",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Remove a vote for a referendum.",
"",
" If the `target` is equal to the signer, then this function is exactly equivalent to",
" `remove_vote`. If not equal to the signer, then the vote must have expired,",
" either because the referendum was cancelled, because the voter lost the referendum or",
" because the conviction period is over.",
"",
" The dispatch origin of this call must be _Signed_.",
"",
" - `target`: The account of the vote to be removed; this account must have voted for",
" referendum `index`.",
" - `index`: The index of referendum of the vote to be removed.",
"",
" Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.",
" Weight is calculated for the maximum number of vote."
]
},
{
"name": "enact_proposal",
"arguments": [
{
"name": "proposal_hash",
"ty": 10,
"is_compact": false
},
{
"name": "index",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Enact a proposal from a referendum. For now we just make the weight be the maximum."
]
},
{
"name": "blacklist",
"arguments": [
{
"name": "proposal_hash",
"ty": 10,
"is_compact": false
},
{
"name": "maybe_ref_index",
"ty": 155,
"is_compact": false
}
],
"documentation": [
" Permanently place a proposal into the blacklist. This prevents it from ever being",
" proposed again.",
"",
" If called on a queued public or external proposal, then this will result in it being",
" removed. If the `ref_index` supplied is an active referendum with the proposal hash,",
" then it will be cancelled.",
"",
" The dispatch origin of this call must be `BlacklistOrigin`.",
"",
" - `proposal_hash`: The proposal hash to blacklist permanently.",
" - `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be",
" cancelled.",
"",
" Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a",
" reasonable value)."
]
},
{
"name": "cancel_proposal",
"arguments": [
{
"name": "prop_index",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Remove a proposal.",
"",
" The dispatch origin of this call must be `CancelProposalOrigin`.",
"",
" - `prop_index`: The index of the proposal to cancel.",
"",
" Weight: `O(p)` where `p = PublicProps::<T>::decode_len()`"
]
}
],
"event": [
{
"name": "Proposed",
"arguments": [
{
"ty": 5,
"name": "PropIndex"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" A motion has been proposed by a public account. \\[proposal_index, deposit\\]"
]
},
{
"name": "Tabled",
"arguments": [
{
"ty": 5,
"name": "PropIndex"
},
{
"ty": 7,
"name": "Balance"
},
{
"ty": 40,
"name": "Vec<AccountId>"
}
],
"documentation": [
" A public proposal has been tabled for referendum vote. \\[proposal_index, deposit, depositors\\]"
]
},
{
"name": "ExternalTabled",
"arguments": [],
"documentation": [
" An external proposal has been tabled."
]
},
{
"name": "Started",
"arguments": [
{
"ty": 5,
"name": "ReferendumIndex"
},
{
"ty": 41,
"name": "VoteThreshold"
}
],
"documentation": [
" A referendum has begun. \\[ref_index, threshold\\]"
]
},
{
"name": "Passed",
"arguments": [
{
"ty": 5,
"name": "ReferendumIndex"
}
],
"documentation": [
" A proposal has been approved by referendum. \\[ref_index\\]"
]
},
{
"name": "NotPassed",
"arguments": [
{
"ty": 5,
"name": "ReferendumIndex"
}
],
"documentation": [
" A proposal has been rejected by referendum. \\[ref_index\\]"
]
},
{
"name": "Cancelled",
"arguments": [
{
"ty": 5,
"name": "ReferendumIndex"
}
],
"documentation": [
" A referendum has been cancelled. \\[ref_index\\]"
]
},
{
"name": "Executed",
"arguments": [
{
"ty": 5,
"name": "ReferendumIndex"
},
{
"ty": 42,
"name": "bool"
}
],
"documentation": [
" A proposal has been enacted. \\[ref_index, is_ok\\]"
]
},
{
"name": "Delegated",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" An account has delegated their vote to another account. \\[who, target\\]"
]
},
{
"name": "Undelegated",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" An \\[account\\] has cancelled a previous delegation operation."
]
},
{
"name": "Vetoed",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 10,
"name": "Hash"
},
{
"ty": 5,
"name": "BlockNumber"
}
],
"documentation": [
" An external proposal has been vetoed. \\[who, proposal_hash, until\\]"
]
},
{
"name": "PreimageNoted",
"arguments": [
{
"ty": 10,
"name": "Hash"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" A proposal's preimage was noted, and the deposit taken. \\[proposal_hash, who, deposit\\]"
]
},
{
"name": "PreimageUsed",
"arguments": [
{
"ty": 10,
"name": "Hash"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" A proposal preimage was removed and used (the deposit was returned).",
" \\[proposal_hash, provider, deposit\\]"
]
},
{
"name": "PreimageInvalid",
"arguments": [
{
"ty": 10,
"name": "Hash"
},
{
"ty": 5,
"name": "ReferendumIndex"
}
],
"documentation": [
" A proposal could not be executed because its preimage was invalid.",
" \\[proposal_hash, ref_index\\]"
]
},
{
"name": "PreimageMissing",
"arguments": [
{
"ty": 10,
"name": "Hash"
},
{
"ty": 5,
"name": "ReferendumIndex"
}
],
"documentation": [
" A proposal could not be executed because its preimage was missing.",
" \\[proposal_hash, ref_index\\]"
]
},
{
"name": "PreimageReaped",
"arguments": [
{
"ty": 10,
"name": "Hash"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
},
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A registered preimage was removed and the deposit collected by the reaper.",
" \\[proposal_hash, provider, deposit, reaper\\]"
]
},
{
"name": "Unlocked",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" An \\[account\\] has been unlocked successfully."
]
},
{
"name": "Blacklisted",
"arguments": [
{
"ty": 10,
"name": "Hash"
}
],
"documentation": [
" A proposal \\[hash\\] has been blacklisted permanently."
]
}
],
"constants": [
{
"name": "EnactmentPeriod",
"ty": 5,
"value": [
0,
47,
13,
0
],
"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",
"ty": 5,
"value": [
0,
78,
12,
0
],
"documentation": [
" How often (in blocks) new public referenda are launched."
]
},
{
"name": "VotingPeriod",
"ty": 5,
"value": [
0,
78,
12,
0
],
"documentation": [
" How often (in blocks) to check for new votes."
]
},
{
"name": "MinimumDeposit",
"ty": 7,
"value": [
0,
0,
193,
111,
242,
134,
35,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The minimum amount to be used as a deposit for a public referendum proposal."
]
},
{
"name": "FastTrackVotingPeriod",
"ty": 5,
"value": [
128,
81,
1,
0
],
"documentation": [
" Minimum voting period allowed for an emergency referendum."
]
},
{
"name": "CooloffPeriod",
"ty": 5,
"value": [
0,
78,
12,
0
],
"documentation": [
" Period in blocks where an external proposal may not be re-submitted after being vetoed."
]
},
{
"name": "PreimageByteDeposit",
"ty": 7,
"value": [
0,
16,
165,
212,
232,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The amount of balance that must be deposited per byte of preimage stored."
]
},
{
"name": "MaxVotes",
"ty": 5,
"value": [
100,
0,
0,
0
],
"documentation": [
" The maximum number of votes for an account."
]
}
],
"errors": [
{
"name": "ValueLow",
"documentation": [
" Value too low"
]
},
{
"name": "ProposalMissing",
"documentation": [
" Proposal does not exist"
]
},
{
"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": "NotDelegated",
"documentation": [
" Not delegated"
]
},
{
"name": "DuplicatePreimage",
"documentation": [
" Preimage already noted"
]
},
{
"name": "NotImminent",
"documentation": [
" Not imminent"
]
},
{
"name": "TooEarly",
"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": "NotLocked",
"documentation": [
" The target account does not have a lock."
]
},
{
"name": "NotExpired",
"documentation": [
" The lock on the account to be unlocked has not yet expired."
]
},
{
"name": "NotVoter",
"documentation": [
" The given account did not vote on the referendum."
]
},
{
"name": "NoPermission",
"documentation": [
" The actor has no permission to conduct the action."
]
},
{
"name": "AlreadyDelegating",
"documentation": [
" The account is already delegating."
]
},
{
"name": "Overflow",
"documentation": [
" An unexpected integer overflow occurred."
]
},
{
"name": "Underflow",
"documentation": [
" An unexpected integer underflow occurred."
]
},
{
"name": "InsufficientFunds",
"documentation": [
" Too high a balance was provided that the account cannot afford."
]
},
{
"name": "NotDelegating",
"documentation": [
" The account is not currently delegating."
]
},
{
"name": "VotesExist",
"documentation": [
" The account currently has votes attached to it and the operation cannot succeed until",
" these are removed, either through `unvote` or `reap_vote`."
]
},
{
"name": "InstantNotAllowed",
"documentation": [
" The instant referendum origin is currently disallowed."
]
},
{
"name": "Nonsense",
"documentation": [
" Delegation to oneself makes no sense."
]
},
{
"name": "WrongUpperBound",
"documentation": [
" Invalid upper bound."
]
},
{
"name": "MaxVotesReached",
"documentation": [
" Maximum number of votes reached."
]
},
{
"name": "InvalidWitness",
"documentation": [
" The provided witness data is wrong."
]
},
{
"name": "TooManyProposals",
"documentation": [
" Maximum number of proposals reached."
]
}
],
"index": 11
},
{
"name": "Council",
"storage": {
"prefix": "Instance1Collective",
"entries": [
{
"name": "Proposals",
"modifier": "Default",
"ty": {
"Plain": 95
},
"default": [
0
],
"documentation": [
" The hashes of the active proposals."
]
},
{
"name": "ProposalOf",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Identity",
"key": 10,
"value": 117,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Actual proposal for a given hash, if it's current."
]
},
{
"name": "Voting",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Identity",
"key": 10,
"value": 281,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Votes on a given proposal, if it is ongoing."
]
},
{
"name": "ProposalCount",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
0,
0,
0,
0
],
"documentation": [
" Proposals so far."
]
},
{
"name": "Members",
"modifier": "Default",
"ty": {
"Plain": 40
},
"default": [
0
],
"documentation": [
" The current members of the collective. This is stored sorted (just by value)."
]
},
{
"name": "Prime",
"modifier": "Optional",
"ty": {
"Plain": 1
},
"default": [
0
],
"documentation": [
" The prime member that helps determine the default vote behavior in case of absentations."
]
}
]
},
"calls": [
{
"name": "set_members",
"arguments": [
{
"name": "new_members",
"ty": 40,
"is_compact": false
},
{
"name": "prime",
"ty": 157,
"is_compact": false
},
{
"name": "old_count",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Set the collective's membership.",
"",
" - `new_members`: The new member list. Be nice to the chain and provide it sorted.",
" - `prime`: The prime member whose vote sets the default.",
" - `old_count`: The upper bound for the previous number of members in storage.",
" Used for weight estimation.",
"",
" Requires root origin.",
"",
" NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but",
" the weight estimations rely on it to estimate dispatchable weight.",
"",
" # <weight>",
" ## Weight",
" - `O(MP + N)` where:",
" - `M` old-members-count (code- and governance-bounded)",
" - `N` new-members-count (code- and governance-bounded)",
" - `P` proposals-count (code-bounded)",
" - DB:",
" - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members",
" - 1 storage read (codec `O(P)`) for reading the proposals",
" - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal",
" - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one",
" # </weight>"
]
},
{
"name": "execute",
"arguments": [
{
"name": "proposal",
"ty": 117,
"is_compact": false
},
{
"name": "length_bound",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Dispatch a proposal from a member using the `Member` origin.",
"",
" Origin must be a member of the collective.",
"",
" # <weight>",
" ## Weight",
" - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`",
" - DB: 1 read (codec `O(M)`) + DB access of `proposal`",
" - 1 event",
" # </weight>"
]
},
{
"name": "propose",
"arguments": [
{
"name": "threshold",
"ty": 5,
"is_compact": true
},
{
"name": "proposal",
"ty": 117,
"is_compact": false
},
{
"name": "length_bound",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Add a new proposal to either be voted on or executed directly.",
"",
" Requires the sender to be member.",
"",
" `threshold` determines whether `proposal` is executed directly (`threshold < 2`)",
" or put up for voting.",
"",
" # <weight>",
" ## Weight",
" - `O(B + M + P1)` or `O(B + M + P2)` where:",
" - `B` is `proposal` size in bytes (length-fee-bounded)",
" - `M` is members-count (code- and governance-bounded)",
" - branching is influenced by `threshold` where:",
" - `P1` is proposal execution complexity (`threshold < 2`)",
" - `P2` is proposals-count (code-bounded) (`threshold >= 2`)",
" - DB:",
" - 1 storage read `is_member` (codec `O(M)`)",
" - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)",
" - DB accesses influenced by `threshold`:",
" - EITHER storage accesses done by `proposal` (`threshold < 2`)",
" - OR proposal insertion (`threshold <= 2`)",
" - 1 storage mutation `Proposals` (codec `O(P2)`)",
" - 1 storage mutation `ProposalCount` (codec `O(1)`)",
" - 1 storage write `ProposalOf` (codec `O(B)`)",
" - 1 storage write `Voting` (codec `O(M)`)",
" - 1 event",
" # </weight>"
]
},
{
"name": "vote",
"arguments": [
{
"name": "proposal",
"ty": 10,
"is_compact": false
},
{
"name": "index",
"ty": 5,
"is_compact": true
},
{
"name": "approve",
"ty": 42,
"is_compact": false
}
],
"documentation": [
" Add an aye or nay vote for the sender to the given proposal.",
"",
" Requires the sender to be a member.",
"",
" Transaction fees will be waived if the member is voting on any particular proposal",
" for the first time and the call is successful. Subsequent vote changes will charge a fee.",
" # <weight>",
" ## Weight",
" - `O(M)` where `M` is members-count (code- and governance-bounded)",
" - DB:",
" - 1 storage read `Members` (codec `O(M)`)",
" - 1 storage mutation `Voting` (codec `O(M)`)",
" - 1 event",
" # </weight>"
]
},
{
"name": "close",
"arguments": [
{
"name": "proposal_hash",
"ty": 10,
"is_compact": false
},
{
"name": "index",
"ty": 5,
"is_compact": true
},
{
"name": "proposal_weight_bound",
"ty": 9,
"is_compact": true
},
{
"name": "length_bound",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Close a vote that is either approved, disapproved or whose voting period has ended.",
"",
" May be called by any signed account in order to finish voting and close the proposal.",
"",
" If called before the end of the voting period it will only close the vote if it is",
" has enough votes to be approved or disapproved.",
"",
" If called after the end of the voting period abstentions are counted as rejections",
" unless there is a prime member set and the prime member cast an approval.",
"",
" If the close operation completes successfully with disapproval, the transaction fee will",
" be waived. Otherwise execution of the approved operation will be charged to the caller.",
"",
" + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.",
" + `length_bound`: The upper bound for the length of the proposal in storage. Checked via",
" `storage::read` so it is `size_of::<u32>() == 4` larger than the pure length.",
"",
" # <weight>",
" ## Weight",
" - `O(B + M + P1 + P2)` where:",
" - `B` is `proposal` size in bytes (length-fee-bounded)",
" - `M` is members-count (code- and governance-bounded)",
" - `P1` is the complexity of `proposal` preimage.",
" - `P2` is proposal-count (code-bounded)",
" - DB:",
" - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)",
" - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)",
" - any mutations done while executing `proposal` (`P1`)",
" - up to 3 events",
" # </weight>"
]
},
{
"name": "disapprove_proposal",
"arguments": [
{
"name": "proposal_hash",
"ty": 10,
"is_compact": false
}
],
"documentation": [
" Disapprove a proposal, close, and remove it from the system, regardless of its current state.",
"",
" Must be called by the Root origin.",
"",
" Parameters:",
" * `proposal_hash`: The hash of the proposal that should be disapproved.",
"",
" # <weight>",
" Complexity: O(P) where P is the number of max proposals",
" DB Weight:",
" * Reads: Proposals",
" * Writes: Voting, Proposals, ProposalOf",
" # </weight>"
]
}
],
"event": [
{
"name": "Proposed",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 5,
"name": "ProposalIndex"
},
{
"ty": 10,
"name": "Hash"
},
{
"ty": 5,
"name": "MemberCount"
}
],
"documentation": [
" A motion (given hash) has been proposed (by given account) with a threshold (given",
" `MemberCount`).",
" \\[account, proposal_index, proposal_hash, threshold\\]"
]
},
{
"name": "Voted",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 10,
"name": "Hash"
},
{
"ty": 42,
"name": "bool"
},
{
"ty": 5,
"name": "MemberCount"
},
{
"ty": 5,
"name": "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`).",
" \\[account, proposal_hash, voted, yes, no\\]"
]
},
{
"name": "Approved",
"arguments": [
{
"ty": 10,
"name": "Hash"
}
],
"documentation": [
" A motion was approved by the required threshold.",
" \\[proposal_hash\\]"
]
},
{
"name": "Disapproved",
"arguments": [
{
"ty": 10,
"name": "Hash"
}
],
"documentation": [
" A motion was not approved by the required threshold.",
" \\[proposal_hash\\]"
]
},
{
"name": "Executed",
"arguments": [
{
"ty": 10,
"name": "Hash"
},
{
"ty": 45,
"name": "DispatchResult"
}
],
"documentation": [
" A motion was executed; result will be `Ok` if it returned without error.",
" \\[proposal_hash, result\\]"
]
},
{
"name": "MemberExecuted",
"arguments": [
{
"ty": 10,
"name": "Hash"
},
{
"ty": 45,
"name": "DispatchResult"
}
],
"documentation": [
" A single member did some action; result will be `Ok` if it returned without error.",
" \\[proposal_hash, result\\]"
]
},
{
"name": "Closed",
"arguments": [
{
"ty": 10,
"name": "Hash"
},
{
"ty": 5,
"name": "MemberCount"
},
{
"ty": 5,
"name": "MemberCount"
}
],
"documentation": [
" A proposal was closed because its threshold was reached or after its duration was up.",
" \\[proposal_hash, yes, no\\]"
]
}
],
"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": "TooEarly",
"documentation": [
" The close call was made too early, before the end of the voting."
]
},
{
"name": "TooManyProposals",
"documentation": [
" There can only be a maximum of `MaxProposals` active proposals."
]
},
{
"name": "WrongProposalWeight",
"documentation": [
" The given weight bound for the proposal was too low."
]
},
{
"name": "WrongProposalLength",
"documentation": [
" The given length bound for the proposal was too low."
]
}
],
"index": 12
},
{
"name": "TechnicalCommittee",
"storage": {
"prefix": "Instance2Collective",
"entries": [
{
"name": "Proposals",
"modifier": "Default",
"ty": {
"Plain": 95
},
"default": [
0
],
"documentation": [
" The hashes of the active proposals."
]
},
{
"name": "ProposalOf",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Identity",
"key": 10,
"value": 117,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Actual proposal for a given hash, if it's current."
]
},
{
"name": "Voting",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Identity",
"key": 10,
"value": 281,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Votes on a given proposal, if it is ongoing."
]
},
{
"name": "ProposalCount",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
0,
0,
0,
0
],
"documentation": [
" Proposals so far."
]
},
{
"name": "Members",
"modifier": "Default",
"ty": {
"Plain": 40
},
"default": [
0
],
"documentation": [
" The current members of the collective. This is stored sorted (just by value)."
]
},
{
"name": "Prime",
"modifier": "Optional",
"ty": {
"Plain": 1
},
"default": [
0
],
"documentation": [
" The prime member that helps determine the default vote behavior in case of absentations."
]
}
]
},
"calls": [
{
"name": "set_members",
"arguments": [
{
"name": "new_members",
"ty": 40,
"is_compact": false
},
{
"name": "prime",
"ty": 157,
"is_compact": false
},
{
"name": "old_count",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Set the collective's membership.",
"",
" - `new_members`: The new member list. Be nice to the chain and provide it sorted.",
" - `prime`: The prime member whose vote sets the default.",
" - `old_count`: The upper bound for the previous number of members in storage.",
" Used for weight estimation.",
"",
" Requires root origin.",
"",
" NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but",
" the weight estimations rely on it to estimate dispatchable weight.",
"",
" # <weight>",
" ## Weight",
" - `O(MP + N)` where:",
" - `M` old-members-count (code- and governance-bounded)",
" - `N` new-members-count (code- and governance-bounded)",
" - `P` proposals-count (code-bounded)",
" - DB:",
" - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members",
" - 1 storage read (codec `O(P)`) for reading the proposals",
" - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal",
" - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one",
" # </weight>"
]
},
{
"name": "execute",
"arguments": [
{
"name": "proposal",
"ty": 117,
"is_compact": false
},
{
"name": "length_bound",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Dispatch a proposal from a member using the `Member` origin.",
"",
" Origin must be a member of the collective.",
"",
" # <weight>",
" ## Weight",
" - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`",
" - DB: 1 read (codec `O(M)`) + DB access of `proposal`",
" - 1 event",
" # </weight>"
]
},
{
"name": "propose",
"arguments": [
{
"name": "threshold",
"ty": 5,
"is_compact": true
},
{
"name": "proposal",
"ty": 117,
"is_compact": false
},
{
"name": "length_bound",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Add a new proposal to either be voted on or executed directly.",
"",
" Requires the sender to be member.",
"",
" `threshold` determines whether `proposal` is executed directly (`threshold < 2`)",
" or put up for voting.",
"",
" # <weight>",
" ## Weight",
" - `O(B + M + P1)` or `O(B + M + P2)` where:",
" - `B` is `proposal` size in bytes (length-fee-bounded)",
" - `M` is members-count (code- and governance-bounded)",
" - branching is influenced by `threshold` where:",
" - `P1` is proposal execution complexity (`threshold < 2`)",
" - `P2` is proposals-count (code-bounded) (`threshold >= 2`)",
" - DB:",
" - 1 storage read `is_member` (codec `O(M)`)",
" - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)",
" - DB accesses influenced by `threshold`:",
" - EITHER storage accesses done by `proposal` (`threshold < 2`)",
" - OR proposal insertion (`threshold <= 2`)",
" - 1 storage mutation `Proposals` (codec `O(P2)`)",
" - 1 storage mutation `ProposalCount` (codec `O(1)`)",
" - 1 storage write `ProposalOf` (codec `O(B)`)",
" - 1 storage write `Voting` (codec `O(M)`)",
" - 1 event",
" # </weight>"
]
},
{
"name": "vote",
"arguments": [
{
"name": "proposal",
"ty": 10,
"is_compact": false
},
{
"name": "index",
"ty": 5,
"is_compact": true
},
{
"name": "approve",
"ty": 42,
"is_compact": false
}
],
"documentation": [
" Add an aye or nay vote for the sender to the given proposal.",
"",
" Requires the sender to be a member.",
"",
" Transaction fees will be waived if the member is voting on any particular proposal",
" for the first time and the call is successful. Subsequent vote changes will charge a fee.",
" # <weight>",
" ## Weight",
" - `O(M)` where `M` is members-count (code- and governance-bounded)",
" - DB:",
" - 1 storage read `Members` (codec `O(M)`)",
" - 1 storage mutation `Voting` (codec `O(M)`)",
" - 1 event",
" # </weight>"
]
},
{
"name": "close",
"arguments": [
{
"name": "proposal_hash",
"ty": 10,
"is_compact": false
},
{
"name": "index",
"ty": 5,
"is_compact": true
},
{
"name": "proposal_weight_bound",
"ty": 9,
"is_compact": true
},
{
"name": "length_bound",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Close a vote that is either approved, disapproved or whose voting period has ended.",
"",
" May be called by any signed account in order to finish voting and close the proposal.",
"",
" If called before the end of the voting period it will only close the vote if it is",
" has enough votes to be approved or disapproved.",
"",
" If called after the end of the voting period abstentions are counted as rejections",
" unless there is a prime member set and the prime member cast an approval.",
"",
" If the close operation completes successfully with disapproval, the transaction fee will",
" be waived. Otherwise execution of the approved operation will be charged to the caller.",
"",
" + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.",
" + `length_bound`: The upper bound for the length of the proposal in storage. Checked via",
" `storage::read` so it is `size_of::<u32>() == 4` larger than the pure length.",
"",
" # <weight>",
" ## Weight",
" - `O(B + M + P1 + P2)` where:",
" - `B` is `proposal` size in bytes (length-fee-bounded)",
" - `M` is members-count (code- and governance-bounded)",
" - `P1` is the complexity of `proposal` preimage.",
" - `P2` is proposal-count (code-bounded)",
" - DB:",
" - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)",
" - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)",
" - any mutations done while executing `proposal` (`P1`)",
" - up to 3 events",
" # </weight>"
]
},
{
"name": "disapprove_proposal",
"arguments": [
{
"name": "proposal_hash",
"ty": 10,
"is_compact": false
}
],
"documentation": [
" Disapprove a proposal, close, and remove it from the system, regardless of its current state.",
"",
" Must be called by the Root origin.",
"",
" Parameters:",
" * `proposal_hash`: The hash of the proposal that should be disapproved.",
"",
" # <weight>",
" Complexity: O(P) where P is the number of max proposals",
" DB Weight:",
" * Reads: Proposals",
" * Writes: Voting, Proposals, ProposalOf",
" # </weight>"
]
}
],
"event": [
{
"name": "Proposed",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 5,
"name": "ProposalIndex"
},
{
"ty": 10,
"name": "Hash"
},
{
"ty": 5,
"name": "MemberCount"
}
],
"documentation": [
" A motion (given hash) has been proposed (by given account) with a threshold (given",
" `MemberCount`).",
" \\[account, proposal_index, proposal_hash, threshold\\]"
]
},
{
"name": "Voted",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 10,
"name": "Hash"
},
{
"ty": 42,
"name": "bool"
},
{
"ty": 5,
"name": "MemberCount"
},
{
"ty": 5,
"name": "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`).",
" \\[account, proposal_hash, voted, yes, no\\]"
]
},
{
"name": "Approved",
"arguments": [
{
"ty": 10,
"name": "Hash"
}
],
"documentation": [
" A motion was approved by the required threshold.",
" \\[proposal_hash\\]"
]
},
{
"name": "Disapproved",
"arguments": [
{
"ty": 10,
"name": "Hash"
}
],
"documentation": [
" A motion was not approved by the required threshold.",
" \\[proposal_hash\\]"
]
},
{
"name": "Executed",
"arguments": [
{
"ty": 10,
"name": "Hash"
},
{
"ty": 45,
"name": "DispatchResult"
}
],
"documentation": [
" A motion was executed; result will be `Ok` if it returned without error.",
" \\[proposal_hash, result\\]"
]
},
{
"name": "MemberExecuted",
"arguments": [
{
"ty": 10,
"name": "Hash"
},
{
"ty": 45,
"name": "DispatchResult"
}
],
"documentation": [
" A single member did some action; result will be `Ok` if it returned without error.",
" \\[proposal_hash, result\\]"
]
},
{
"name": "Closed",
"arguments": [
{
"ty": 10,
"name": "Hash"
},
{
"ty": 5,
"name": "MemberCount"
},
{
"ty": 5,
"name": "MemberCount"
}
],
"documentation": [
" A proposal was closed because its threshold was reached or after its duration was up.",
" \\[proposal_hash, yes, no\\]"
]
}
],
"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": "TooEarly",
"documentation": [
" The close call was made too early, before the end of the voting."
]
},
{
"name": "TooManyProposals",
"documentation": [
" There can only be a maximum of `MaxProposals` active proposals."
]
},
{
"name": "WrongProposalWeight",
"documentation": [
" The given weight bound for the proposal was too low."
]
},
{
"name": "WrongProposalLength",
"documentation": [
" The given length bound for the proposal was too low."
]
}
],
"index": 13
},
{
"name": "Elections",
"storage": {
"prefix": "PhragmenElection",
"entries": [
{
"name": "Members",
"modifier": "Default",
"ty": {
"Plain": 282
},
"default": [
0
],
"documentation": [
" The current elected members.",
"",
" Invariant: Always sorted based on account id."
]
},
{
"name": "RunnersUp",
"modifier": "Default",
"ty": {
"Plain": 282
},
"default": [
0
],
"documentation": [
" The current reserved runners-up.",
"",
" Invariant: Always sorted based on rank (worse to best). Upon removal of a member, the",
" last (i.e. _best_) runner-up will be replaced."
]
},
{
"name": "Candidates",
"modifier": "Default",
"ty": {
"Plain": 49
},
"default": [
0
],
"documentation": [
" The present candidate list. A current member or runner-up can never enter this vector",
" and is always implicitly assumed to be a candidate.",
"",
" Second element is the deposit.",
"",
" Invariant: Always sorted based on account id."
]
},
{
"name": "ElectionRounds",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
0,
0,
0,
0
],
"documentation": [
" The total number of vote rounds that have happened, excluding the upcoming one."
]
},
{
"name": "Voting",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 284,
"unused": false
}
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" Votes and locked stake of a particular voter.",
"",
" TWOX-NOTE: SAFE as `AccountId` is a crypto hash."
]
}
]
},
"calls": [
{
"name": "vote",
"arguments": [
{
"name": "votes",
"ty": 40,
"is_compact": false
},
{
"name": "value",
"ty": 7,
"is_compact": true
}
],
"documentation": [
" Vote for a set of candidates for the upcoming round of election. This can be called to",
" set the initial votes, or update already existing votes.",
"",
" Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is",
" reserved. The deposit is based on the number of votes and can be updated over time.",
"",
" The `votes` should:",
" - not be empty.",
" - be less than the number of possible candidates. Note that all current members and",
" runners-up are also automatically candidates for the next round.",
"",
" If `value` is more than `who`'s total balance, then the maximum of the two is used.",
"",
" The dispatch origin of this call must be signed.",
"",
" ### Warning",
"",
" It is the responsibility of the caller to **NOT** place all of their balance into the",
" lock and keep some for further operations.",
"",
" # <weight>",
" We assume the maximum weight among all 3 cases: vote_equal, vote_more and vote_less.",
" # </weight>"
]
},
{
"name": "remove_voter",
"arguments": [],
"documentation": [
" Remove `origin` as a voter.",
"",
" This removes the lock and returns the deposit.",
"",
" The dispatch origin of this call must be signed and be a voter."
]
},
{
"name": "submit_candidacy",
"arguments": [
{
"name": "candidate_count",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Submit oneself for candidacy. A fixed amount of deposit is recorded.",
"",
" All candidates are wiped at the end of the term. They either become a member/runner-up,",
" or leave the system while their deposit is slashed.",
"",
" The dispatch origin of this call must be signed.",
"",
" ### Warning",
"",
" Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]",
" to get their deposit back. Losing the spot in an election will always lead to a slash.",
"",
" # <weight>",
" The number of current candidates must be provided as witness data.",
" # </weight>"
]
},
{
"name": "renounce_candidacy",
"arguments": [
{
"name": "renouncing",
"ty": 160,
"is_compact": false
}
],
"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 deposit is",
" unreserved, returned and origin is removed as a candidate.",
" - `origin` is a current runner-up. In this case, the deposit is unreserved, returned and",
" origin is removed as a runner-up.",
" - `origin` is a current member. In this case, the deposit is unreserved and origin is",
" removed as a member, consequently not being a candidate for the next round anymore.",
" Similar to [`remove_members`], if replacement runners exists, they are immediately used.",
" If the prime is renouncing, then no prime will exist until the next round.",
"",
" The dispatch origin of this call must be signed, and have one of the above roles.",
"",
" # <weight>",
" The type of renouncing must be provided as witness data.",
" # </weight>"
]
},
{
"name": "remove_member",
"arguments": [
{
"name": "who",
"ty": 135,
"is_compact": false
},
{
"name": "has_replacement",
"ty": 42,
"is_compact": false
}
],
"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 election is started.",
"",
" The dispatch origin of this call must be root.",
"",
" Note that this does not affect the designated block number of the next election.",
"",
" # <weight>",
" If we have a replacement, we use a small weight. Else, since this is a root call and",
" will go into phragmen, we assume full block for now.",
" # </weight>"
]
},
{
"name": "clean_defunct_voters",
"arguments": [
{
"name": "_num_voters",
"ty": 5,
"is_compact": false
},
{
"name": "_num_defunct",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Clean all voters who are defunct (i.e. they do not serve any purpose at all). The",
" deposit of the removed voters are returned.",
"",
" This is an root function to be used only for cleaning the state.",
"",
" The dispatch origin of this call must be root.",
"",
" # <weight>",
" The total number of voters and those that are defunct must be provided as witness data.",
" # </weight>"
]
}
],
"event": [
{
"name": "NewTerm",
"arguments": [
{
"ty": 49,
"name": "Vec<(AccountId, Balance)>"
}
],
"documentation": [
" A new term with \\[new_members\\]. This indicates that enough candidates existed to run the",
" election, not that enough have has been elected. The inner value must be examined for",
" this purpose. A `NewTerm(\\[\\])` indicates that some candidates got their bond slashed and",
" none were elected, whilst `EmptyTerm` means that no candidates existed to begin with."
]
},
{
"name": "EmptyTerm",
"arguments": [],
"documentation": [
" No (or not enough) candidates existed for this round. This is different from",
" `NewTerm(\\[\\])`. See the description of `NewTerm`."
]
},
{
"name": "ElectionError",
"arguments": [],
"documentation": [
" Internal error happened while trying to perform election."
]
},
{
"name": "MemberKicked",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A \\[member\\] has been removed. This should always be followed by either `NewTerm` or",
" `EmptyTerm`."
]
},
{
"name": "Renounced",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" Someone has renounced their candidacy."
]
},
{
"name": "CandidateSlashed",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" A \\[candidate\\] was slashed by \\[amount\\] due to failing to obtain a seat as member or",
" runner-up.",
"",
" Note that old members and runners-up are also candidates."
]
},
{
"name": "SeatHolderSlashed",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" A \\[seat holder\\] was slashed by \\[amount\\] by being forcefully removed from the set."
]
}
],
"constants": [
{
"name": "CandidacyBond",
"ty": 7,
"value": [
0,
128,
198,
164,
126,
141,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": []
},
{
"name": "VotingBondBase",
"ty": 7,
"value": [
0,
240,
67,
109,
227,
106,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": []
},
{
"name": "VotingBondFactor",
"ty": 7,
"value": [
0,
0,
204,
123,
159,
174,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": []
},
{
"name": "DesiredMembers",
"ty": 5,
"value": [
13,
0,
0,
0
],
"documentation": []
},
{
"name": "DesiredRunnersUp",
"ty": 5,
"value": [
7,
0,
0,
0
],
"documentation": []
},
{
"name": "TermDuration",
"ty": 5,
"value": [
128,
19,
3,
0
],
"documentation": []
},
{
"name": "PalletId",
"ty": 115,
"value": [
112,
104,
114,
101,
108,
101,
99,
116
],
"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": "RunnerUpSubmit",
"documentation": [
" Runner cannot re-submit candidacy."
]
},
{
"name": "InsufficientCandidateFunds",
"documentation": [
" Candidate does not have enough funds."
]
},
{
"name": "NotMember",
"documentation": [
" Not a member."
]
},
{
"name": "InvalidWitnessData",
"documentation": [
" The provided count of number of candidates is incorrect."
]
},
{
"name": "InvalidVoteCount",
"documentation": [
" The provided count of number of votes is incorrect."
]
},
{
"name": "InvalidRenouncing",
"documentation": [
" The renouncing origin presented a wrong `Renouncing` parameter."
]
},
{
"name": "InvalidReplacement",
"documentation": [
" Prediction regarding replacement after member removal is wrong."
]
}
],
"index": 14
},
{
"name": "TechnicalMembership",
"storage": {
"prefix": "Instance1Membership",
"entries": [
{
"name": "Members",
"modifier": "Default",
"ty": {
"Plain": 40
},
"default": [
0
],
"documentation": [
" The current membership, stored as an ordered Vec."
]
},
{
"name": "Prime",
"modifier": "Optional",
"ty": {
"Plain": 1
},
"default": [
0
],
"documentation": [
" The current prime member, if one exists."
]
}
]
},
"calls": [
{
"name": "add_member",
"arguments": [
{
"name": "who",
"ty": 1,
"is_compact": false
}
],
"documentation": [
" Add a member `who` to the set.",
"",
" May only be called from `T::AddOrigin`."
]
},
{
"name": "remove_member",
"arguments": [
{
"name": "who",
"ty": 1,
"is_compact": false
}
],
"documentation": [
" Remove a member `who` from the set.",
"",
" May only be called from `T::RemoveOrigin`."
]
},
{
"name": "swap_member",
"arguments": [
{
"name": "remove",
"ty": 1,
"is_compact": false
},
{
"name": "add",
"ty": 1,
"is_compact": false
}
],
"documentation": [
" Swap out one member `remove` for another `add`.",
"",
" May only be called from `T::SwapOrigin`.",
"",
" Prime membership is *not* passed from `remove` to `add`, if extant."
]
},
{
"name": "reset_members",
"arguments": [
{
"name": "members",
"ty": 40,
"is_compact": false
}
],
"documentation": [
" Change the membership to a new set, disregarding the existing membership. Be nice and",
" pass `members` pre-sorted.",
"",
" May only be called from `T::ResetOrigin`."
]
},
{
"name": "change_key",
"arguments": [
{
"name": "new",
"ty": 1,
"is_compact": false
}
],
"documentation": [
" Swap out the sending member for some other key `new`.",
"",
" May only be called from `Signed` origin of a current member.",
"",
" Prime membership is passed from the origin account to `new`, if extant."
]
},
{
"name": "set_prime",
"arguments": [
{
"name": "who",
"ty": 1,
"is_compact": false
}
],
"documentation": [
" Set the prime member. Must be a current member.",
"",
" May only be called from `T::PrimeOrigin`."
]
},
{
"name": "clear_prime",
"arguments": [],
"documentation": [
" Remove the prime member if it exists.",
"",
" May only be called from `T::PrimeOrigin`."
]
}
],
"event": [
{
"name": "MemberAdded",
"arguments": [],
"documentation": [
" The given member was added; see the transaction for who."
]
},
{
"name": "MemberRemoved",
"arguments": [],
"documentation": [
" The given member was removed; see the transaction for who."
]
},
{
"name": "MembersSwapped",
"arguments": [],
"documentation": [
" Two members were swapped; see the transaction for who."
]
},
{
"name": "MembersReset",
"arguments": [],
"documentation": [
" The membership was reset; see the transaction for who the new set is."
]
},
{
"name": "KeyChanged",
"arguments": [],
"documentation": [
" One of the members' keys changed."
]
},
{
"name": "Dummy",
"arguments": [
{
"ty": 53,
"name": "sp_std::marker::PhantomData<(AccountId, Event)>"
}
],
"documentation": [
" Phantom member, never used."
]
}
],
"constants": [],
"errors": [
{
"name": "AlreadyMember",
"documentation": [
" Already a member."
]
},
{
"name": "NotMember",
"documentation": [
" Not a member."
]
}
],
"index": 15
},
{
"name": "Grandpa",
"storage": {
"prefix": "GrandpaFinality",
"entries": [
{
"name": "State",
"modifier": "Default",
"ty": {
"Plain": 285
},
"default": [
0
],
"documentation": [
" State of the current authority set."
]
},
{
"name": "PendingChange",
"modifier": "Optional",
"ty": {
"Plain": 286
},
"default": [
0
],
"documentation": [
" Pending change: (signaled at, scheduled change)."
]
},
{
"name": "NextForced",
"modifier": "Optional",
"ty": {
"Plain": 5
},
"default": [
0
],
"documentation": [
" next block number where we can force a change."
]
},
{
"name": "Stalled",
"modifier": "Optional",
"ty": {
"Plain": 81
},
"default": [
0
],
"documentation": [
" `true` if we are currently stalled."
]
},
{
"name": "CurrentSetId",
"modifier": "Default",
"ty": {
"Plain": 9
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0
],
"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",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 9,
"value": 5,
"unused": false
}
},
"default": [
0
],
"documentation": [
" A mapping from grandpa set ID to the index of the *most recent* session for which its",
" members were responsible.",
"",
" TWOX-NOTE: `SetId` is not under user control."
]
}
]
},
"calls": [
{
"name": "report_equivocation",
"arguments": [
{
"name": "equivocation_proof",
"ty": 163,
"is_compact": false
},
{
"name": "key_owner_proof",
"ty": 125,
"is_compact": false
}
],
"documentation": [
" Report voter equivocation/misbehavior. This method will verify the",
" equivocation proof and validate the given key ownership proof",
" against the extracted offender. If both are valid, the offence",
" will be reported."
]
},
{
"name": "report_equivocation_unsigned",
"arguments": [
{
"name": "equivocation_proof",
"ty": 163,
"is_compact": false
},
{
"name": "key_owner_proof",
"ty": 125,
"is_compact": false
}
],
"documentation": [
" Report voter equivocation/misbehavior. This method will verify the",
" equivocation proof and validate the given key ownership proof",
" against the extracted offender. If both are valid, the offence",
" will be reported.",
"",
" This extrinsic must be called unsigned and it is expected that only",
" block authors will call it (validated in `ValidateUnsigned`), as such",
" if the block author is defined it will be defined as the equivocation",
" reporter."
]
},
{
"name": "note_stalled",
"arguments": [
{
"name": "delay",
"ty": 5,
"is_compact": false
},
{
"name": "best_finalized_block_number",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Note that the current authority set of the GRANDPA finality gadget has",
" stalled. This will trigger a forced authority set change at the beginning",
" of the next session, to be enacted `delay` blocks after that. The delay",
" should be high enough to safely assume that the block signalling the",
" forced change will not be re-orged (e.g. 1000 blocks). The GRANDPA voters",
" will start the new authority set using the given finalized block as base.",
" Only callable by root."
]
}
],
"event": [
{
"name": "NewAuthorities",
"arguments": [
{
"ty": 56,
"name": "AuthorityList"
}
],
"documentation": [
" New authority set has been applied. \\[authority_set\\]"
]
},
{
"name": "Paused",
"arguments": [],
"documentation": [
" Current authority set has been paused."
]
},
{
"name": "Resumed",
"arguments": [],
"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": "InvalidKeyOwnershipProof",
"documentation": [
" A key ownership proof provided as part of an equivocation report is invalid."
]
},
{
"name": "InvalidEquivocationProof",
"documentation": [
" An equivocation proof provided as part of an equivocation report is invalid."
]
},
{
"name": "DuplicateOffenceReport",
"documentation": [
" A given equivocation report is valid but already previously reported."
]
}
],
"index": 16
},
{
"name": "Treasury",
"storage": {
"prefix": "Treasury",
"entries": [
{
"name": "ProposalCount",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
0,
0,
0,
0
],
"documentation": [
" Number of proposals that have been made."
]
},
{
"name": "Proposals",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 5,
"value": 287,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Proposals that have been made."
]
},
{
"name": "Approvals",
"modifier": "Default",
"ty": {
"Plain": 147
},
"default": [
0
],
"documentation": [
" Proposal indices that have been approved but not yet awarded."
]
}
]
},
"calls": [
{
"name": "propose_spend",
"arguments": [
{
"name": "value",
"ty": 7,
"is_compact": true
},
{
"name": "beneficiary",
"ty": 135,
"is_compact": false
}
],
"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>",
" - Complexity: O(1)",
" - DbReads: `ProposalCount`, `origin account`",
" - DbWrites: `ProposalCount`, `Proposals`, `origin account`",
" # </weight>"
]
},
{
"name": "reject_proposal",
"arguments": [
{
"name": "proposal_id",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Reject a proposed spend. The original deposit will be slashed.",
"",
" May only be called from `T::RejectOrigin`.",
"",
" # <weight>",
" - Complexity: O(1)",
" - DbReads: `Proposals`, `rejected proposer account`",
" - DbWrites: `Proposals`, `rejected proposer account`",
" # </weight>"
]
},
{
"name": "approve_proposal",
"arguments": [
{
"name": "proposal_id",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Approve a proposal. At a later time, the proposal will be allocated to the beneficiary",
" and the original deposit will be returned.",
"",
" May only be called from `T::ApproveOrigin`.",
"",
" # <weight>",
" - Complexity: O(1).",
" - DbReads: `Proposals`, `Approvals`",
" - DbWrite: `Approvals`",
" # </weight>"
]
}
],
"event": [
{
"name": "Proposed",
"arguments": [
{
"ty": 5,
"name": "ProposalIndex"
}
],
"documentation": [
" New proposal. \\[proposal_index\\]"
]
},
{
"name": "Spending",
"arguments": [
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" We have ended a spend period and will now allocate funds. \\[budget_remaining\\]"
]
},
{
"name": "Awarded",
"arguments": [
{
"ty": 5,
"name": "ProposalIndex"
},
{
"ty": 7,
"name": "Balance"
},
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" Some funds have been allocated. \\[proposal_index, award, beneficiary\\]"
]
},
{
"name": "Rejected",
"arguments": [
{
"ty": 5,
"name": "ProposalIndex"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" A proposal was rejected; funds were slashed. \\[proposal_index, slashed\\]"
]
},
{
"name": "Burnt",
"arguments": [
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" Some of our funds have been burnt. \\[burn\\]"
]
},
{
"name": "Rollover",
"arguments": [
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" Spending has finished; this is the amount that rolls over until next spend.",
" \\[budget_remaining\\]"
]
},
{
"name": "Deposit",
"arguments": [
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" Some funds have been deposited. \\[deposit\\]"
]
}
],
"constants": [
{
"name": "ProposalBond",
"ty": 288,
"value": [
80,
195,
0,
0
],
"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",
"ty": 7,
"value": [
0,
64,
122,
16,
243,
90,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" Minimum amount of funds that should be placed in a deposit for making a proposal."
]
},
{
"name": "SpendPeriod",
"ty": 5,
"value": [
128,
112,
0,
0
],
"documentation": [
" Period between successive spends."
]
},
{
"name": "Burn",
"ty": 288,
"value": [
32,
161,
7,
0
],
"documentation": [
" Percentage of spare funds (if any) that are burnt per spend period."
]
},
{
"name": "PalletId",
"ty": 289,
"value": [
112,
121,
47,
116,
114,
115,
114,
121
],
"documentation": [
" The treasury's module id, used for deriving its sovereign account ID."
]
}
],
"errors": [
{
"name": "InsufficientProposersBalance",
"documentation": [
" Proposer's balance is too low."
]
},
{
"name": "InvalidIndex",
"documentation": [
" No proposal or bounty at that index."
]
}
],
"index": 17
},
{
"name": "Contracts",
"storage": {
"prefix": "Contracts",
"entries": [
{
"name": "CurrentSchedule",
"modifier": "Default",
"ty": {
"Plain": 176
},
"default": [
0,
0,
0,
0,
0,
4,
0,
0,
0,
0,
2,
0,
0,
0,
1,
0,
0,
128,
0,
0,
0,
16,
0,
0,
0,
0,
16,
0,
0,
0,
1,
0,
0,
32,
0,
0,
0,
31,
6,
0,
0,
214,
106,
2,
0,
221,
132,
3,
0,
38,
24,
0,
0,
189,
28,
0,
0,
67,
11,
0,
0,
3,
23,
0,
0,
174,
40,
0,
0,
156,
0,
0,
0,
221,
105,
1,
0,
99,
224,
2,
0,
48,
7,
0,
0,
7,
6,
0,
0,
101,
7,
0,
0,
177,
5,
0,
0,
110,
24,
0,
0,
0,
40,
0,
0,
105,
5,
0,
0,
114,
222,
174,
8,
240,
7,
0,
0,
220,
7,
0,
0,
113,
10,
0,
0,
106,
8,
0,
0,
165,
7,
0,
0,
150,
7,
0,
0,
209,
7,
0,
0,
119,
9,
0,
0,
62,
9,
0,
0,
117,
9,
0,
0,
216,
9,
0,
0,
130,
9,
0,
0,
188,
9,
0,
0,
18,
9,
0,
0,
60,
9,
0,
0,
114,
9,
0,
0,
220,
9,
0,
0,
247,
8,
0,
0,
225,
8,
0,
0,
98,
9,
0,
0,
22,
32,
0,
0,
107,
29,
0,
0,
46,
32,
0,
0,
44,
27,
0,
0,
254,
8,
0,
0,
0,
9,
0,
0,
15,
9,
0,
0,
167,
9,
0,
0,
241,
9,
0,
0,
186,
9,
0,
0,
187,
9,
0,
0,
101,
9,
0,
0,
216,
184,
40,
0,
0,
0,
0,
0,
158,
152,
40,
0,
0,
0,
0,
0,
22,
144,
39,
0,
0,
0,
0,
0,
76,
112,
87,
0,
0,
0,
0,
0,
76,
200,
39,
0,
0,
0,
0,
0,
228,
188,
39,
0,
0,
0,
0,
0,
232,
209,
39,
0,
0,
0,
0,
0,
160,
104,
91,
0,
0,
0,
0,
0,
72,
79,
39,
0,
0,
0,
0,
0,
158,
118,
39,
0,
0,
0,
0,
0,
0,
244,
81,
0,
0,
0,
0,
0,
76,
171,
18,
0,
0,
0,
0,
0,
24,
74,
112,
0,
0,
0,
0,
0,
20,
1,
0,
0,
0,
0,
0,
0,
0,
205,
70,
0,
0,
0,
0,
0,
252,
2,
0,
0,
0,
0,
0,
0,
208,
181,
112,
39,
0,
0,
0,
0,
19,
32,
0,
0,
0,
0,
0,
0,
120,
33,
218,
49,
0,
0,
0,
0,
224,
32,
0,
0,
0,
0,
0,
0,
154,
18,
0,
0,
0,
0,
0,
0,
4,
130,
177,
9,
0,
0,
0,
0,
224,
52,
99,
0,
0,
0,
0,
0,
56,
215,
144,
0,
0,
0,
0,
0,
222,
103,
208,
7,
0,
0,
0,
0,
132,
9,
0,
0,
0,
0,
0,
0,
6,
24,
110,
0,
0,
0,
0,
0,
22,
147,
93,
18,
0,
0,
0,
0,
218,
2,
0,
0,
0,
0,
0,
0,
234,
206,
212,
8,
0,
0,
0,
0,
58,
36,
14,
2,
0,
0,
0,
0,
231,
5,
0,
0,
0,
0,
0,
0,
252,
65,
213,
10,
0,
0,
0,
0,
212,
142,
147,
9,
0,
0,
0,
0,
45,
15,
0,
0,
0,
0,
0,
0,
58,
66,
37,
9,
0,
0,
0,
0,
71,
2,
0,
0,
0,
0,
0,
0,
35,
3,
0,
0,
0,
0,
0,
0,
186,
124,
150,
35,
0,
0,
0,
0,
165,
33,
0,
0,
0,
0,
0,
0,
109,
2,
0,
0,
0,
0,
0,
0,
84,
3,
0,
0,
0,
0,
0,
0,
229,
11,
0,
0,
0,
0,
0,
0,
38,
146,
36,
0,
0,
0,
0,
0,
97,
16,
0,
0,
0,
0,
0,
0,
164,
18,
38,
0,
0,
0,
0,
0,
29,
13,
0,
0,
0,
0,
0,
0,
82,
14,
34,
0,
0,
0,
0,
0,
26,
6,
0,
0,
0,
0,
0,
0,
32,
34,
34,
0,
0,
0,
0,
0,
26,
6,
0,
0,
0,
0,
0,
0,
68,
177,
60,
0,
0,
0,
0,
0
],
"documentation": [
" Current cost schedule for contracts."
]
},
{
"name": "PristineCode",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Identity",
"key": 10,
"value": 11,
"unused": false
}
},
"default": [
0
],
"documentation": [
" A mapping from an original code hash to the original code, untouched by instrumentation."
]
},
{
"name": "CodeStorage",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Identity",
"key": 10,
"value": 290,
"unused": false
}
},
"default": [
0
],
"documentation": [
" A mapping between an original code hash and instrumented wasm code, ready for execution."
]
},
{
"name": "AccountCounter",
"modifier": "Default",
"ty": {
"Plain": 9
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The subtrie counter."
]
},
{
"name": "ContractInfoOf",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 292,
"unused": false
}
},
"default": [
0
],
"documentation": [
" The code associated with a given account.",
"",
" TWOX-NOTE: SAFE since `AccountId` is a secure hash."
]
},
{
"name": "DeletionQueue",
"modifier": "Default",
"ty": {
"Plain": 297
},
"default": [
0
],
"documentation": [
" Evicted contracts that await child trie deletion.",
"",
" Child trie deletion is a heavy operation depending on the amount of storage items",
" stored in said trie. Therefore this operation is performed lazily in `on_initialize`."
]
}
]
},
"calls": [
{
"name": "update_schedule",
"arguments": [
{
"name": "schedule",
"ty": 176,
"is_compact": false
}
],
"documentation": [
" Updates the schedule for metering contracts.",
"",
" The schedule's version cannot be less than the version of the stored schedule.",
" If a schedule does not change the instruction weights the version does not",
" need to be increased. Therefore we allow storing a schedule that has the same",
" version as the stored one."
]
},
{
"name": "call",
"arguments": [
{
"name": "dest",
"ty": 135,
"is_compact": false
},
{
"name": "value",
"ty": 7,
"is_compact": true
},
{
"name": "gas_limit",
"ty": 9,
"is_compact": true
},
{
"name": "data",
"ty": 11,
"is_compact": false
}
],
"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_with_code",
"arguments": [
{
"name": "endowment",
"ty": 7,
"is_compact": true
},
{
"name": "gas_limit",
"ty": 9,
"is_compact": true
},
{
"name": "code",
"ty": 11,
"is_compact": false
},
{
"name": "data",
"ty": 11,
"is_compact": false
},
{
"name": "salt",
"ty": 11,
"is_compact": false
}
],
"documentation": [
" Instantiates a new contract from the supplied `code` optionally transferring",
" some balance.",
"",
" This is the only function that can deploy new code to the chain.",
"",
" # Parameters",
"",
" * `endowment`: The balance to transfer from the `origin` to the newly created contract.",
" * `gas_limit`: The gas limit enforced when executing the constructor.",
" * `code`: The contract code to deploy in raw bytes.",
" * `data`: The input data to pass to the contract constructor.",
" * `salt`: Used for the address derivation. See [`Pallet::contract_address`].",
"",
" Instantiation is executed as follows:",
"",
" - The supplied `code` is instrumented, deployed, and a `code_hash` is created for that code.",
" - If the `code_hash` already exists on the chain the underlying `code` will be shared.",
" - The destination address is computed based on the sender, code_hash and the salt.",
" - The smart-contract account is created at the computed address.",
" - The `endowment` is transferred to the new account.",
" - The `deploy` function is executed in the context of the newly-created account."
]
},
{
"name": "instantiate",
"arguments": [
{
"name": "endowment",
"ty": 7,
"is_compact": true
},
{
"name": "gas_limit",
"ty": 9,
"is_compact": true
},
{
"name": "code_hash",
"ty": 10,
"is_compact": false
},
{
"name": "data",
"ty": 11,
"is_compact": false
},
{
"name": "salt",
"ty": 11,
"is_compact": false
}
],
"documentation": [
" Instantiates a contract from a previously deployed wasm binary.",
"",
" This function is identical to [`Self::instantiate_with_code`] but without the",
" code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary",
" must be supplied."
]
},
{
"name": "claim_surcharge",
"arguments": [
{
"name": "dest",
"ty": 1,
"is_compact": false
},
{
"name": "aux_sender",
"ty": 157,
"is_compact": false
}
],
"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.",
"",
" In case of a successful eviction no fees are charged from the sender. However, the",
" reward is capped by the total amount of rent that was payed by the contract while",
" it was alive.",
"",
" If contract is not evicted as a result of this call, [`Error::ContractNotEvictable`]",
" is returned and the sender is not eligible for the reward."
]
}
],
"event": [
{
"name": "Instantiated",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" Contract deployed by address at the specified address. \\[deployer, contract\\]"
]
},
{
"name": "Evicted",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" Contract has been evicted and is now in tombstone state. \\[contract\\]"
]
},
{
"name": "Terminated",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" Contract has been terminated without leaving a tombstone.",
" \\[contract, beneficiary\\]",
"",
" # Params",
"",
" - `contract`: The contract that was terminated.",
" - `beneficiary`: The account that received the contracts remaining balance.",
"",
" # Note",
"",
" The only way for a contract to be removed without a tombstone and emitting",
" this event is by calling `seal_terminate`."
]
},
{
"name": "Restored",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 10,
"name": "Hash"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" Restoration of a contract has been successful.",
" \\[restorer, dest, code_hash, rent_allowance\\]",
"",
" # Params",
"",
" - `restorer`: Account ID of the restoring contract.",
" - `dest`: Account ID of the restored contract.",
" - `code_hash`: Code hash of the restored contract.",
" - `rent_allowance`: Rent allowance of the restored contract."
]
},
{
"name": "CodeStored",
"arguments": [
{
"ty": 10,
"name": "Hash"
}
],
"documentation": [
" Code with the specified hash has been stored. \\[code_hash\\]"
]
},
{
"name": "ScheduleUpdated",
"arguments": [
{
"ty": 5,
"name": "u32"
}
],
"documentation": [
" Triggered when the current schedule is updated.",
" \\[version\\]",
"",
" # Params",
"",
" - `version`: The version of the newly set schedule."
]
},
{
"name": "ContractEmitted",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 11,
"name": "Vec<u8>"
}
],
"documentation": [
" A custom event emitted by the contract.",
" \\[contract, data\\]",
"",
" # Params",
"",
" - `contract`: The contract that emitted the event.",
" - `data`: Data supplied by the contract. Metadata generated during contract",
" compilation is needed to decode it."
]
},
{
"name": "CodeRemoved",
"arguments": [
{
"ty": 10,
"name": "Hash"
}
],
"documentation": [
" A code with the specified hash was removed.",
" \\[code_hash\\]",
"",
" This happens when the last contract that uses this code hash was removed or evicted."
]
}
],
"constants": [
{
"name": "SignedClaimHandicap",
"ty": 5,
"value": [
2,
0,
0,
0
],
"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",
"ty": 7,
"value": [
0,
240,
232,
133,
122,
156,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The minimum amount required to generate a tombstone."
]
},
{
"name": "DepositPerContract",
"ty": 7,
"value": [
0,
240,
232,
133,
122,
156,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The balance every contract needs to deposit to stay alive indefinitely.",
"",
" This is different from the [`Self::TombstoneDeposit`] because this only needs to be",
" deposited while the contract is alive. Costs for additional storage are added to",
" this base cost.",
"",
" This is a simple way to ensure that contracts with empty storage eventually get deleted by",
" making them pay rent. This creates an incentive to remove them early in order to save rent."
]
},
{
"name": "DepositPerStorageByte",
"ty": 7,
"value": [
0,
96,
222,
251,
116,
5,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The balance a contract needs to deposit per storage byte to stay alive indefinitely.",
"",
" 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": "DepositPerStorageItem",
"ty": 7,
"value": [
0,
240,
171,
117,
164,
13,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The balance a contract needs to deposit per storage item to stay alive indefinitely.",
"",
" It works the same as [`Self::DepositPerStorageByte`] but for storage items."
]
},
{
"name": "RentFraction",
"ty": 100,
"value": [
133,
4,
0,
0
],
"documentation": [
" The fraction of the deposit that should be used as rent per block.",
"",
" When a contract hasn't enough balance deposited to stay alive indefinitely it needs",
" to pay per block for the storage it consumes that is not covered by the deposit.",
" This determines how high this rent payment is per block as a fraction of the deposit."
]
},
{
"name": "SurchargeReward",
"ty": 7,
"value": [
0,
92,
178,
236,
34,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" Reward that is received by the party whose touch has led",
" to removal of a contract."
]
},
{
"name": "MaxDepth",
"ty": 5,
"value": [
32,
0,
0,
0
],
"documentation": [
" The maximum nesting level of a call/instantiate stack."
]
},
{
"name": "MaxValueSize",
"ty": 5,
"value": [
0,
64,
0,
0
],
"documentation": [
" The maximum size of a storage value and event payload in bytes."
]
},
{
"name": "DeletionQueueDepth",
"ty": 5,
"value": [
240,
0,
0,
0
],
"documentation": [
" The maximum number of tries that can be queued for deletion."
]
},
{
"name": "DeletionWeightLimit",
"ty": 9,
"value": [
0,
208,
237,
144,
46,
0,
0,
0
],
"documentation": [
" The maximum amount of weight that can be consumed per block for lazy trie removal."
]
},
{
"name": "MaxCodeSize",
"ty": 5,
"value": [
0,
0,
2,
0
],
"documentation": [
" The maximum length of a contract code in bytes. This limit applies to the instrumented",
" version of the code. Therefore `instantiate_with_code` can fail even when supplying",
" a wasm binary below this maximum size."
]
}
],
"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": "OutOfGas",
"documentation": [
" The executed contract exhausted its gas limit."
]
},
{
"name": "OutputBufferTooSmall",
"documentation": [
" The output buffer supplied to a contract API call was too small."
]
},
{
"name": "BelowSubsistenceThreshold",
"documentation": [
" Performing the requested transfer would have brought the contract below",
" the subsistence threshold. No transfer is allowed to do this in order to allow",
" for a tombstone to be created. Use `seal_terminate` to remove a contract without",
" leaving a tombstone behind."
]
},
{
"name": "NewContractNotFunded",
"documentation": [
" The newly created contract is below the subsistence threshold after executing",
" its contructor. No contracts are allowed to exist below that threshold."
]
},
{
"name": "TransferFailed",
"documentation": [
" Performing the requested transfer failed for a reason originating in the",
" chosen currency implementation of the runtime. Most probably the balance is",
" too low or locks are placed on it."
]
},
{
"name": "MaxCallDepthReached",
"documentation": [
" Performing a call was denied because the calling depth reached the limit",
" of what is specified in the schedule."
]
},
{
"name": "NotCallable",
"documentation": [
" The contract that was called is either no contract at all (a plain account)",
" or is a tombstone."
]
},
{
"name": "CodeTooLarge",
"documentation": [
" The code supplied to `instantiate_with_code` exceeds the limit specified in the",
" current schedule."
]
},
{
"name": "CodeNotFound",
"documentation": [
" No code could be found at the supplied code hash."
]
},
{
"name": "OutOfBounds",
"documentation": [
" A buffer outside of sandbox memory was passed to a contract API function."
]
},
{
"name": "DecodingFailed",
"documentation": [
" Input passed to a contract API function failed to decode as expected type."
]
},
{
"name": "ContractTrapped",
"documentation": [
" Contract trapped during execution."
]
},
{
"name": "ValueTooLarge",
"documentation": [
" The size defined in `T::MaxValueSize` was exceeded."
]
},
{
"name": "ReentranceDenied",
"documentation": [
" The action performed is not allowed while the contract performing it is already",
" on the call stack. Those actions are contract self destruction and restoration",
" of a tombstone."
]
},
{
"name": "InputAlreadyRead",
"documentation": [
" `seal_input` was called twice from the same contract execution context."
]
},
{
"name": "RandomSubjectTooLong",
"documentation": [
" The subject passed to `seal_random` exceeds the limit."
]
},
{
"name": "TooManyTopics",
"documentation": [
" The amount of topics passed to `seal_deposit_events` exceeds the limit."
]
},
{
"name": "DuplicateTopics",
"documentation": [
" The topics passed to `seal_deposit_events` contains at least one duplicate."
]
},
{
"name": "NoChainExtension",
"documentation": [
" The chain does not provide a chain extension. Calling the chain extension results",
" in this error. Note that this usually shouldn't happen as deploying such contracts",
" is rejected."
]
},
{
"name": "DeletionQueueFull",
"documentation": [
" Removal of a contract failed because the deletion queue is full.",
"",
" This can happen when either calling [`Pallet::claim_surcharge`] or `seal_terminate`.",
" The queue is filled by deleting contracts and emptied by a fixed amount each block.",
" Trying again during another block is the only way to resolve this issue."
]
},
{
"name": "ContractNotEvictable",
"documentation": [
" A contract could not be evicted because it has enough balance to pay rent.",
"",
" This can be returned from [`Pallet::claim_surcharge`] because the target",
" contract has enough balance to pay for its rent."
]
},
{
"name": "StorageExhausted",
"documentation": [
" A storage modification exhausted the 32bit type that holds the storage size.",
"",
" This can either happen when the accumulated storage in bytes is too large or",
" when number of storage items is too large."
]
},
{
"name": "DuplicateContract",
"documentation": [
" A contract with the same AccountId already exists."
]
}
],
"index": 18
},
{
"name": "Sudo",
"storage": {
"prefix": "Sudo",
"entries": [
{
"name": "Key",
"modifier": "Default",
"ty": {
"Plain": 1
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The `AccountId` of the sudo key."
]
}
]
},
"calls": [
{
"name": "sudo",
"arguments": [
{
"name": "call",
"ty": 117,
"is_compact": false
}
],
"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).",
" - Weight of derivative `call` execution + 10,000.",
" # </weight>"
]
},
{
"name": "sudo_unchecked_weight",
"arguments": [
{
"name": "call",
"ty": 117,
"is_compact": false
},
{
"name": "_weight",
"ty": 9,
"is_compact": false
}
],
"documentation": [
" Authenticates the sudo key and dispatches a function call with `Root` origin.",
" This function does not check the weight of the call, and instead allows the",
" Sudo user to specify the weight of the call.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" # <weight>",
" - O(1).",
" - The weight of this call is defined by the caller.",
" # </weight>"
]
},
{
"name": "set_key",
"arguments": [
{
"name": "new",
"ty": 135,
"is_compact": false
}
],
"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",
"arguments": [
{
"name": "who",
"ty": 135,
"is_compact": false
},
{
"name": "call",
"ty": 117,
"is_compact": false
}
],
"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).",
" - Weight of derivative `call` execution + 10,000.",
" # </weight>"
]
}
],
"event": [
{
"name": "Sudid",
"arguments": [
{
"ty": 45,
"name": "DispatchResult"
}
],
"documentation": [
" A sudo just took place. \\[result\\]"
]
},
{
"name": "KeyChanged",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" The \\[sudoer\\] just switched identity; the old key is supplied."
]
},
{
"name": "SudoAsDone",
"arguments": [
{
"ty": 45,
"name": "DispatchResult"
}
],
"documentation": [
" A sudo just took place. \\[result\\]"
]
}
],
"constants": [],
"errors": [
{
"name": "RequireSudo",
"documentation": [
" Sender must be the Sudo account"
]
}
],
"index": 19
},
{
"name": "ImOnline",
"storage": {
"prefix": "ImOnline",
"entries": [
{
"name": "HeartbeatAfter",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
0,
0,
0,
0
],
"documentation": [
" The block number after which it's ok to send heartbeats in the current",
" session.",
"",
" At the beginning of each session we set this to a value that should fall",
" roughly in the middle of the session duration. The idea is to first wait for",
" the validators to produce a block in the current session, so that the",
" heartbeat later on will not be necessary.",
"",
" This value will only be used as a fallback if we fail to get a proper session",
" progress estimate from `NextSessionRotation`, as those estimates should be",
" more accurate then the value we calculate for `HeartbeatAfter`."
]
},
{
"name": "Keys",
"modifier": "Default",
"ty": {
"Plain": 299
},
"default": [
0
],
"documentation": [
" The current set of keys that may issue a heartbeat."
]
},
{
"name": "ReceivedHeartbeats",
"modifier": "Optional",
"ty": {
"DoubleMap": {
"hasher": "Twox64Concat",
"key1": 5,
"key2": 5,
"value": 11,
"key2_hasher": "Twox64Concat"
}
},
"default": [
0
],
"documentation": [
" For each session index, we keep a mapping of `AuthIndex` to",
" `offchain::OpaqueNetworkState`."
]
},
{
"name": "AuthoredBlocks",
"modifier": "Default",
"ty": {
"DoubleMap": {
"hasher": "Twox64Concat",
"key1": 5,
"key2": 1,
"value": 5,
"key2_hasher": "Twox64Concat"
}
},
"default": [
0,
0,
0,
0
],
"documentation": [
" For each session index, we keep a mapping of `ValidatorId<T>` to the",
" number of blocks authored by the given authority."
]
}
]
},
"calls": [
{
"name": "heartbeat",
"arguments": [
{
"name": "heartbeat",
"ty": 182,
"is_compact": false
},
{
"name": "_signature",
"ty": 187,
"is_compact": false
}
],
"documentation": [
" # <weight>",
" - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len)",
" and E is length of `heartbeat.network_state.external_address`",
" - `O(K)`: decoding of length `K`",
" - `O(E)`: decoding/encoding of length `E`",
" - DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,",
" `ReceivedHeartbeats`",
" - DbWrites: `ReceivedHeartbeats`",
" # </weight>"
]
}
],
"event": [
{
"name": "HeartbeatReceived",
"arguments": [
{
"ty": 65,
"name": "AuthorityId"
}
],
"documentation": [
" A new heartbeat was received from `AuthorityId` \\[authority_id\\]"
]
},
{
"name": "AllGood",
"arguments": [],
"documentation": [
" At the end of the session, no offence was committed."
]
},
{
"name": "SomeOffline",
"arguments": [
{
"ty": 72,
"name": "Vec<IdentificationTuple>"
}
],
"documentation": [
" At the end of the session, at least one validator was found to be \\[offline\\]."
]
}
],
"constants": [],
"errors": [
{
"name": "InvalidKey",
"documentation": [
" Non existent public key."
]
},
{
"name": "DuplicatedHeartbeat",
"documentation": [
" Duplicated heartbeat."
]
}
],
"index": 20
},
{
"name": "AuthorityDiscovery",
"storage": null,
"calls": [],
"event": null,
"constants": [],
"errors": [],
"index": 21
},
{
"name": "Offences",
"storage": {
"prefix": "Offences",
"entries": [
{
"name": "Reports",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 10,
"value": 300,
"unused": false
}
},
"default": [
0
],
"documentation": [
" The primary structure that holds all offence records keyed by report identifiers."
]
},
{
"name": "DeferredOffences",
"modifier": "Default",
"ty": {
"Plain": 301
},
"default": [
0
],
"documentation": [
" Deferred reports that have been rejected by the offence handler and need to be submitted",
" at a later time."
]
},
{
"name": "ConcurrentReportsIndex",
"modifier": "Default",
"ty": {
"DoubleMap": {
"hasher": "Twox64Concat",
"key1": 74,
"key2": 11,
"value": 95,
"key2_hasher": "Twox64Concat"
}
},
"default": [
0
],
"documentation": [
" A vector of reports of the same kind that happened at the same time slot."
]
},
{
"name": "ReportsByKindIndex",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 74,
"value": 11,
"unused": false
}
},
"default": [
0
],
"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": [],
"event": [
{
"name": "Offence",
"arguments": [
{
"ty": 74,
"name": "Kind"
},
{
"ty": 11,
"name": "OpaqueTimeSlot"
},
{
"ty": 42,
"name": "bool"
}
],
"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. last",
" element indicates of the offence was applied (true) or queued (false)",
" \\[kind, timeslot, applied\\]."
]
}
],
"constants": [],
"errors": [],
"index": 22
},
{
"name": "Historical",
"storage": null,
"calls": null,
"event": null,
"constants": [],
"errors": [],
"index": 23
},
{
"name": "RandomnessCollectiveFlip",
"storage": {
"prefix": "RandomnessCollectiveFlip",
"entries": [
{
"name": "RandomMaterial",
"modifier": "Default",
"ty": {
"Plain": 95
},
"default": [
0
],
"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": [],
"event": null,
"constants": [],
"errors": [],
"index": 24
},
{
"name": "Identity",
"storage": {
"prefix": "Identity",
"entries": [
{
"name": "IdentityOf",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 305,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Information that is pertinent to identify the entity behind an account.",
"",
" TWOX-NOTE: OK ― `AccountId` is a secure hash."
]
},
{
"name": "SuperOf",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Blake2_128Concat",
"key": 1,
"value": 199,
"unused": false
}
},
"default": [
0
],
"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",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 308,
"unused": false
}
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" Alternative \"sub\" identities of this account.",
"",
" The first item is the deposit, the second is a vector of the accounts.",
"",
" TWOX-NOTE: OK ― `AccountId` is a secure hash."
]
},
{
"name": "Registrars",
"modifier": "Default",
"ty": {
"Plain": 309
},
"default": [
0
],
"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",
"arguments": [
{
"name": "account",
"ty": 1,
"is_compact": false
}
],
"documentation": [
" Add a registrar to the system.",
"",
" The dispatch origin for this call must be `T::RegistrarOrigin`.",
"",
" - `account`: the account of the registrar.",
"",
" Emits `RegistrarAdded` if successful.",
"",
" # <weight>",
" - `O(R)` where `R` registrar-count (governance-bounded and code-bounded).",
" - One storage mutation (codec `O(R)`).",
" - One event.",
" # </weight>"
]
},
{
"name": "set_identity",
"arguments": [
{
"name": "info",
"ty": 193,
"is_compact": false
}
],
"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_.",
"",
" - `info`: The identity information.",
"",
" Emits `IdentitySet` if successful.",
"",
" # <weight>",
" - `O(X + X' + R)`",
" - where `X` additional-field-count (deposit-bounded and code-bounded)",
" - where `R` judgements-count (registrar-count-bounded)",
" - One balance reserve operation.",
" - One storage mutation (codec-read `O(X' + R)`, codec-write `O(X + R)`).",
" - One event.",
" # </weight>"
]
},
{
"name": "set_subs",
"arguments": [
{
"name": "subs",
"ty": 198,
"is_compact": false
}
],
"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 (new) sub-accounts.",
"",
" # <weight>",
" - `O(P + S)`",
" - where `P` old-subs-count (hard- and deposit-bounded).",
" - where `S` subs-count (hard- and deposit-bounded).",
" - At most one balance operations.",
" - DB:",
" - `P + S` storage mutations (codec complexity `O(1)`)",
" - One storage read (codec complexity `O(P)`).",
" - One storage write (codec complexity `O(S)`).",
" - One storage-exists (`IdentityOf::contains_key`).",
" # </weight>"
]
},
{
"name": "clear_identity",
"arguments": [],
"documentation": [
" Clear an account's identity info and all sub-accounts 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)`",
" - where `R` registrar-count (governance-bounded).",
" - where `S` subs-count (hard- and deposit-bounded).",
" - where `X` additional-field-count (deposit-bounded and code-bounded).",
" - One balance-unreserve operation.",
" - `2` storage reads and `S + 2` storage deletions.",
" - One event.",
" # </weight>"
]
},
{
"name": "request_judgement",
"arguments": [
{
"name": "reg_index",
"ty": 5,
"is_compact": true
},
{
"name": "max_fee",
"ty": 7,
"is_compact": true
}
],
"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().get(reg_index).unwrap().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",
"arguments": [
{
"name": "reg_index",
"ty": 5,
"is_compact": false
}
],
"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",
"arguments": [
{
"name": "index",
"ty": 5,
"is_compact": true
},
{
"name": "fee",
"ty": 7,
"is_compact": true
}
],
"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)`.",
" - Benchmark: 7.315 + R * 0.329 µs (min squares analysis)",
" # </weight>"
]
},
{
"name": "set_account_id",
"arguments": [
{
"name": "index",
"ty": 5,
"is_compact": true
},
{
"name": "new",
"ty": 1,
"is_compact": false
}
],
"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)`.",
" - Benchmark: 8.823 + R * 0.32 µs (min squares analysis)",
" # </weight>"
]
},
{
"name": "set_fields",
"arguments": [
{
"name": "index",
"ty": 5,
"is_compact": true
},
{
"name": "fields",
"ty": 200,
"is_compact": false
}
],
"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)`.",
" - Benchmark: 7.464 + R * 0.325 µs (min squares analysis)",
" # </weight>"
]
},
{
"name": "provide_judgement",
"arguments": [
{
"name": "reg_index",
"ty": 5,
"is_compact": true
},
{
"name": "target",
"ty": 135,
"is_compact": false
},
{
"name": "judgement",
"ty": 201,
"is_compact": false
}
],
"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",
"arguments": [
{
"name": "target",
"ty": 135,
"is_compact": false
}
],
"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 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>"
]
},
{
"name": "add_sub",
"arguments": [
{
"name": "sub",
"ty": 135,
"is_compact": false
},
{
"name": "data",
"ty": 196,
"is_compact": false
}
],
"documentation": [
" Add the given account to the sender's subs.",
"",
" Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated",
" to the sender.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a registered",
" sub identity of `sub`."
]
},
{
"name": "rename_sub",
"arguments": [
{
"name": "sub",
"ty": 135,
"is_compact": false
},
{
"name": "data",
"ty": 196,
"is_compact": false
}
],
"documentation": [
" Alter the associated name of the given sub-account.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a registered",
" sub identity of `sub`."
]
},
{
"name": "remove_sub",
"arguments": [
{
"name": "sub",
"ty": 135,
"is_compact": false
}
],
"documentation": [
" Remove the given account from the sender's subs.",
"",
" Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated",
" to the sender.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a registered",
" sub identity of `sub`."
]
},
{
"name": "quit_sub",
"arguments": [],
"documentation": [
" Remove the sender as a sub-account.",
"",
" Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated",
" to the sender (*not* the original depositor).",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have a registered",
" super-identity.",
"",
" NOTE: This should not normally be used, but is provided in the case that the non-",
" controller of an account is maliciously registered as a sub-account."
]
}
],
"event": [
{
"name": "IdentitySet",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A name was set or reset (which will remove all judgements). \\[who\\]"
]
},
{
"name": "IdentityCleared",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" A name was cleared, and the given balance returned. \\[who, deposit\\]"
]
},
{
"name": "IdentityKilled",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" A name was removed and the given balance slashed. \\[who, deposit\\]"
]
},
{
"name": "JudgementRequested",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 5,
"name": "RegistrarIndex"
}
],
"documentation": [
" A judgement was asked from a registrar. \\[who, registrar_index\\]"
]
},
{
"name": "JudgementUnrequested",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 5,
"name": "RegistrarIndex"
}
],
"documentation": [
" A judgement request was retracted. \\[who, registrar_index\\]"
]
},
{
"name": "JudgementGiven",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 5,
"name": "RegistrarIndex"
}
],
"documentation": [
" A judgement was given by a registrar. \\[target, registrar_index\\]"
]
},
{
"name": "RegistrarAdded",
"arguments": [
{
"ty": 5,
"name": "RegistrarIndex"
}
],
"documentation": [
" A registrar was added. \\[registrar_index\\]"
]
},
{
"name": "SubIdentityAdded",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" A sub-identity was added to an identity and the deposit paid. \\[sub, main, deposit\\]"
]
},
{
"name": "SubIdentityRemoved",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" A sub-identity was removed from an identity and the deposit freed.",
" \\[sub, main, deposit\\]"
]
},
{
"name": "SubIdentityRevoked",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" A sub-identity was cleared, and the given deposit repatriated from the",
" main identity account to the sub-identity account. \\[sub, main, deposit\\]"
]
}
],
"constants": [
{
"name": "BasicDeposit",
"ty": 7,
"value": [
0,
128,
198,
164,
126,
141,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The amount held on deposit for a registered identity."
]
},
{
"name": "FieldDeposit",
"ty": 7,
"value": [
0,
160,
49,
169,
95,
227,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The amount held on deposit per additional field for a registered identity."
]
},
{
"name": "SubAccountDeposit",
"ty": 7,
"value": [
0,
128,
244,
32,
230,
181,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The amount held on deposit for a registered subaccount. This should account for the fact",
" that one storage item's value will increase by the size of an account ID, and there will be",
" another trie item whose value is the size of an account ID plus 32 bytes."
]
},
{
"name": "MaxSubAccounts",
"ty": 5,
"value": [
100,
0,
0,
0
],
"documentation": [
" The maximum number of sub-accounts allowed per identified account."
]
},
{
"name": "MaxAdditionalFields",
"ty": 5,
"value": [
100,
0,
0,
0
],
"documentation": [
" Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O",
" required to access an identity, but can be pretty high."
]
},
{
"name": "MaxRegistrars",
"ty": 5,
"value": [
20,
0,
0,
0
],
"documentation": [
" Maxmimum number of registrars allowed in the system. Needed to bound the complexity",
" of, e.g., updating judgements."
]
}
],
"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": "TooManyFields",
"documentation": [
" Too many additional fields."
]
},
{
"name": "TooManyRegistrars",
"documentation": [
" Maximum amount of registrars reached. Cannot add any more."
]
},
{
"name": "AlreadyClaimed",
"documentation": [
" Account ID is already named."
]
},
{
"name": "NotSub",
"documentation": [
" Sender is not a sub-account."
]
},
{
"name": "NotOwned",
"documentation": [
" Sub-account isn't owned by sender."
]
}
],
"index": 25
},
{
"name": "Society",
"storage": {
"prefix": "Society",
"entries": [
{
"name": "Founder",
"modifier": "Optional",
"ty": {
"Plain": 1
},
"default": [
0
],
"documentation": [
" The first member."
]
},
{
"name": "Rules",
"modifier": "Optional",
"ty": {
"Plain": 10
},
"default": [
0
],
"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",
"ty": {
"Plain": 312
},
"default": [
0
],
"documentation": [
" The current set of candidates; bidders that are attempting to become members."
]
},
{
"name": "SuspendedCandidates",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 315,
"unused": false
}
},
"default": [
0
],
"documentation": [
" The set of suspended candidates."
]
},
{
"name": "Pot",
"modifier": "Default",
"ty": {
"Plain": 7
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" Amount of our account balance that is specifically for the next round's bid(s)."
]
},
{
"name": "Head",
"modifier": "Optional",
"ty": {
"Plain": 1
},
"default": [
0
],
"documentation": [
" The most primary from the most recently approved members."
]
},
{
"name": "Members",
"modifier": "Default",
"ty": {
"Plain": 40
},
"default": [
0
],
"documentation": [
" The current set of members, ordered."
]
},
{
"name": "SuspendedMembers",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 42,
"unused": false
}
},
"default": [
0
],
"documentation": [
" The set of suspended members."
]
},
{
"name": "Bids",
"modifier": "Default",
"ty": {
"Plain": 312
},
"default": [
0
],
"documentation": [
" The current bids, stored ordered by the value of the bid."
]
},
{
"name": "Vouching",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 316,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Members currently vouching or banned from vouching again"
]
},
{
"name": "Payouts",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 317,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Pending payouts; ordered by block number, with the amount that should be paid out."
]
},
{
"name": "Strikes",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 5,
"unused": false
}
},
"default": [
0,
0,
0,
0
],
"documentation": [
" The ongoing number of losing votes cast by the member."
]
},
{
"name": "Votes",
"modifier": "Optional",
"ty": {
"DoubleMap": {
"hasher": "Twox64Concat",
"key1": 1,
"key2": 1,
"value": 319,
"key2_hasher": "Twox64Concat"
}
},
"default": [
0
],
"documentation": [
" Double map from Candidate -> Voter -> (Maybe) Vote."
]
},
{
"name": "Defender",
"modifier": "Optional",
"ty": {
"Plain": 1
},
"default": [
0
],
"documentation": [
" The defending member currently being challenged."
]
},
{
"name": "DefenderVotes",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 319,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Votes for the defender."
]
},
{
"name": "MaxMembers",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
0,
0,
0,
0
],
"documentation": [
" The max number of members for the society at one time."
]
}
]
},
"calls": [
{
"name": "bid",
"arguments": [
{
"name": "value",
"ty": 7,
"is_compact": false
}
],
"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",
"arguments": [
{
"name": "pos",
"ty": 5,
"is_compact": false
}
],
"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",
"arguments": [
{
"name": "who",
"ty": 1,
"is_compact": false
},
{
"name": "value",
"ty": 7,
"is_compact": false
},
{
"name": "tip",
"ty": 7,
"is_compact": false
}
],
"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",
"arguments": [
{
"name": "pos",
"ty": 5,
"is_compact": false
}
],
"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",
"arguments": [
{
"name": "candidate",
"ty": 135,
"is_compact": false
},
{
"name": "approve",
"ty": 42,
"is_compact": false
}
],
"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",
"arguments": [
{
"name": "approve",
"ty": 42,
"is_compact": false
}
],
"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",
"arguments": [],
"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",
"arguments": [
{
"name": "founder",
"ty": 1,
"is_compact": false
},
{
"name": "max_members",
"ty": 5,
"is_compact": false
},
{
"name": "rules",
"ty": 11,
"is_compact": false
}
],
"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",
"arguments": [],
"documentation": [
" Annul 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",
"arguments": [
{
"name": "who",
"ty": 1,
"is_compact": false
},
{
"name": "forgive",
"ty": 42,
"is_compact": false
}
],
"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",
"arguments": [
{
"name": "who",
"ty": 1,
"is_compact": false
},
{
"name": "judgement",
"ty": 203,
"is_compact": false
}
],
"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",
"arguments": [
{
"name": "max",
"ty": 5,
"is_compact": false
}
],
"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>"
]
}
],
"event": [
{
"name": "Founded",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" The society is founded by the given identity. \\[founder\\]"
]
},
{
"name": "Bid",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" A membership bid just happened. The given account is the candidate's ID and their offer",
" is the second. \\[candidate_id, offer\\]"
]
},
{
"name": "Vouch",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
},
{
"ty": 1,
"name": "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. \\[candidate_id, offer, vouching\\]"
]
},
{
"name": "AutoUnbid",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A \\[candidate\\] was dropped (due to an excess of bids in the system)."
]
},
{
"name": "Unbid",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A \\[candidate\\] was dropped (by their request)."
]
},
{
"name": "Unvouch",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A \\[candidate\\] was dropped (by request of who vouched for them)."
]
},
{
"name": "Inducted",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 40,
"name": "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. \\[primary, candidates\\]"
]
},
{
"name": "SuspendedMemberJudgement",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 42,
"name": "bool"
}
],
"documentation": [
" A suspended member has been judged. \\[who, judged\\]"
]
},
{
"name": "CandidateSuspended",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A \\[candidate\\] has been suspended"
]
},
{
"name": "MemberSuspended",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A \\[member\\] has been suspended"
]
},
{
"name": "Challenged",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A \\[member\\] has been challenged"
]
},
{
"name": "Vote",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 42,
"name": "bool"
}
],
"documentation": [
" A vote has been placed \\[candidate, voter, vote\\]"
]
},
{
"name": "DefenderVote",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 42,
"name": "bool"
}
],
"documentation": [
" A vote has been placed for a defending member \\[voter, vote\\]"
]
},
{
"name": "NewMaxMembers",
"arguments": [
{
"ty": 5,
"name": "u32"
}
],
"documentation": [
" A new \\[max\\] member count has been set"
]
},
{
"name": "Unfounded",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" Society is unfounded. \\[founder\\]"
]
},
{
"name": "Deposit",
"arguments": [
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" Some funds were deposited into the society account. \\[value\\]"
]
}
],
"constants": [
{
"name": "CandidateDeposit",
"ty": 7,
"value": [
0,
128,
198,
164,
126,
141,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The minimum amount of a deposit required for a bid to be made."
]
},
{
"name": "WrongSideDeduction",
"ty": 7,
"value": [
0,
128,
244,
32,
230,
181,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"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",
"ty": 5,
"value": [
10,
0,
0,
0
],
"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",
"ty": 7,
"value": [
0,
0,
197,
46,
188,
162,
177,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The amount of incentive paid within each period. Doesn't include VoterTip."
]
},
{
"name": "RotationPeriod",
"ty": 5,
"value": [
0,
119,
1,
0
],
"documentation": [
" The number of blocks between candidate/membership rotation periods."
]
},
{
"name": "ChallengePeriod",
"ty": 5,
"value": [
128,
19,
3,
0
],
"documentation": [
" The number of blocks between membership challenges."
]
},
{
"name": "PalletId",
"ty": 289,
"value": [
112,
121,
47,
115,
111,
99,
105,
101
],
"documentation": [
" The societies's module id"
]
},
{
"name": "MaxCandidateIntake",
"ty": 5,
"value": [
10,
0,
0,
0
],
"documentation": [
" Maximum candidate intake per round."
]
}
],
"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."
]
}
],
"index": 26
},
{
"name": "Recovery",
"storage": {
"prefix": "Recovery",
"entries": [
{
"name": "Recoverable",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 320,
"unused": false
}
},
"default": [
0
],
"documentation": [
" The set of recoverable accounts and their recovery configuration."
]
},
{
"name": "ActiveRecoveries",
"modifier": "Optional",
"ty": {
"DoubleMap": {
"hasher": "Twox64Concat",
"key1": 1,
"key2": 1,
"value": 321,
"key2_hasher": "Twox64Concat"
}
},
"default": [
0
],
"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": "Proxy",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Blake2_128Concat",
"key": 1,
"value": 1,
"unused": false
}
},
"default": [
0
],
"documentation": [
" The list of allowed proxy accounts.",
"",
" Map from the user who can access it to the recovered account."
]
}
]
},
"calls": [
{
"name": "as_recovered",
"arguments": [
{
"name": "account",
"ty": 1,
"is_compact": false
},
{
"name": "call",
"ty": 117,
"is_compact": false
}
],
"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` + 10,000.",
" - One storage lookup to check account is recovered by `who`. O(1)",
" # </weight>"
]
},
{
"name": "set_recovered",
"arguments": [
{
"name": "lost",
"ty": 1,
"is_compact": false
},
{
"name": "rescuer",
"ty": 1,
"is_compact": false
}
],
"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",
"arguments": [
{
"name": "friends",
"ty": 40,
"is_compact": false
},
{
"name": "threshold",
"ty": 85,
"is_compact": false
},
{
"name": "delay_period",
"ty": 5,
"is_compact": false
}
],
"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",
"arguments": [
{
"name": "account",
"ty": 1,
"is_compact": false
}
],
"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",
"arguments": [
{
"name": "lost",
"ty": 1,
"is_compact": false
},
{
"name": "rescuer",
"ty": 1,
"is_compact": false
}
],
"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",
"arguments": [
{
"name": "account",
"ty": 1,
"is_compact": false
}
],
"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",
"arguments": [
{
"name": "rescuer",
"ty": 1,
"is_compact": false
}
],
"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",
"arguments": [],
"documentation": [
" Remove the recovery process for your account. Recovered accounts are still accessible.",
"",
" 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>"
]
},
{
"name": "cancel_recovered",
"arguments": [
{
"name": "account",
"ty": 1,
"is_compact": false
}
],
"documentation": [
" Cancel the ability to use `as_recovered` for `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 are able to call on-behalf-of.",
"",
" # <weight>",
" - One storage mutation to check account is recovered by `who`. O(1)",
" # </weight>"
]
}
],
"event": [
{
"name": "RecoveryCreated",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A recovery process has been set up for an \\[account\\]."
]
},
{
"name": "RecoveryInitiated",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A recovery process has been initiated for lost account by rescuer account.",
" \\[lost, rescuer\\]"
]
},
{
"name": "RecoveryVouched",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A recovery process for lost account by rescuer account has been vouched for by sender.",
" \\[lost, rescuer, sender\\]"
]
},
{
"name": "RecoveryClosed",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A recovery process for lost account by rescuer account has been closed.",
" \\[lost, rescuer\\]"
]
},
{
"name": "AccountRecovered",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" Lost account has been successfully recovered by rescuer account.",
" \\[lost, rescuer\\]"
]
},
{
"name": "RecoveryRemoved",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A recovery process has been removed for an \\[account\\]."
]
}
],
"constants": [
{
"name": "ConfigDepositBase",
"ty": 7,
"value": [
0,
64,
99,
82,
191,
198,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The base amount of currency needed to reserve for creating a recovery configuration."
]
},
{
"name": "FriendDepositFactor",
"ty": 7,
"value": [
0,
32,
61,
136,
121,
45,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The amount of currency needed per additional user when creating a recovery configuration."
]
},
{
"name": "MaxFriends",
"ty": 85,
"value": [
9,
0
],
"documentation": [
" The maximum amount of friends allowed in a recovery configuration."
]
},
{
"name": "RecoveryDeposit",
"ty": 7,
"value": [
0,
64,
99,
82,
191,
198,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The base amount of currency needed to reserve for starting a recovery."
]
}
],
"errors": [
{
"name": "NotAllowed",
"documentation": [
" User is not allowed to make a call on behalf of this account"
]
},
{
"name": "ZeroThreshold",
"documentation": [
" Threshold must be greater than zero"
]
},
{
"name": "NotEnoughFriends",
"documentation": [
" Friends list must be greater than zero and threshold"
]
},
{
"name": "MaxFriends",
"documentation": [
" Friends list must be less than max friends"
]
},
{
"name": "NotSorted",
"documentation": [
" Friends list must be sorted and free of duplicates"
]
},
{
"name": "NotRecoverable",
"documentation": [
" This account is not set up for recovery"
]
},
{
"name": "AlreadyRecoverable",
"documentation": [
" This account is already set up for recovery"
]
},
{
"name": "AlreadyStarted",
"documentation": [
" A recovery process has already started for this account"
]
},
{
"name": "NotStarted",
"documentation": [
" A recovery process has not started for this rescuer"
]
},
{
"name": "NotFriend",
"documentation": [
" This account is not a friend who can vouch"
]
},
{
"name": "DelayPeriod",
"documentation": [
" The friend must wait until the delay period to vouch for this recovery"
]
},
{
"name": "AlreadyVouched",
"documentation": [
" This user has already vouched for this recovery"
]
},
{
"name": "Threshold",
"documentation": [
" The threshold for recovering this account has not been met"
]
},
{
"name": "StillActive",
"documentation": [
" There are still active recovery attempts that need to be closed"
]
},
{
"name": "Overflow",
"documentation": [
" There was an overflow in a calculation"
]
},
{
"name": "AlreadyProxy",
"documentation": [
" This account is already set up for recovery"
]
},
{
"name": "BadState",
"documentation": [
" Some internal state is broken."
]
}
],
"index": 27
},
{
"name": "Vesting",
"storage": {
"prefix": "Vesting",
"entries": [
{
"name": "Vesting",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Blake2_128Concat",
"key": 1,
"value": 206,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Information regarding the vesting of a given account."
]
}
]
},
"calls": [
{
"name": "vest",
"arguments": [],
"documentation": [
" Unlock any vested funds of the sender account.",
"",
" The dispatch origin for this call must be _Signed_ and the sender must have funds still",
" locked under this pallet.",
"",
" Emits either `VestingCompleted` or `VestingUpdated`.",
"",
" # <weight>",
" - `O(1)`.",
" - DbWeight: 2 Reads, 2 Writes",
" - Reads: Vesting Storage, Balances Locks, [Sender Account]",
" - Writes: Vesting Storage, Balances Locks, [Sender Account]",
" # </weight>"
]
},
{
"name": "vest_other",
"arguments": [
{
"name": "target",
"ty": 135,
"is_compact": false
}
],
"documentation": [
" Unlock any vested funds of a `target` account.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" - `target`: The account whose vested funds should be unlocked. Must have funds still",
" locked under this pallet.",
"",
" Emits either `VestingCompleted` or `VestingUpdated`.",
"",
" # <weight>",
" - `O(1)`.",
" - DbWeight: 3 Reads, 3 Writes",
" - Reads: Vesting Storage, Balances Locks, Target Account",
" - Writes: Vesting Storage, Balances Locks, Target Account",
" # </weight>"
]
},
{
"name": "vested_transfer",
"arguments": [
{
"name": "target",
"ty": 135,
"is_compact": false
},
{
"name": "schedule",
"ty": 206,
"is_compact": false
}
],
"documentation": [
" Create a vested transfer.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" - `target`: The account that should be transferred the vested funds.",
" - `amount`: The amount of funds to transfer and will be vested.",
" - `schedule`: The vesting schedule attached to the transfer.",
"",
" Emits `VestingCreated`.",
"",
" # <weight>",
" - `O(1)`.",
" - DbWeight: 3 Reads, 3 Writes",
" - Reads: Vesting Storage, Balances Locks, Target Account, [Sender Account]",
" - Writes: Vesting Storage, Balances Locks, Target Account, [Sender Account]",
" # </weight>"
]
},
{
"name": "force_vested_transfer",
"arguments": [
{
"name": "source",
"ty": 135,
"is_compact": false
},
{
"name": "target",
"ty": 135,
"is_compact": false
},
{
"name": "schedule",
"ty": 206,
"is_compact": false
}
],
"documentation": [
" Force a vested transfer.",
"",
" The dispatch origin for this call must be _Root_.",
"",
" - `source`: The account whose funds should be transferred.",
" - `target`: The account that should be transferred the vested funds.",
" - `amount`: The amount of funds to transfer and will be vested.",
" - `schedule`: The vesting schedule attached to the transfer.",
"",
" Emits `VestingCreated`.",
"",
" # <weight>",
" - `O(1)`.",
" - DbWeight: 4 Reads, 4 Writes",
" - Reads: Vesting Storage, Balances Locks, Target Account, Source Account",
" - Writes: Vesting Storage, Balances Locks, Target Account, Source Account",
" # </weight>"
]
}
],
"event": [
{
"name": "VestingUpdated",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" The amount vested has been updated. This could indicate more funds are available. The",
" balance given is the amount which is left unvested (and thus locked).",
" \\[account, unvested\\]"
]
},
{
"name": "VestingCompleted",
"arguments": [
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" An \\[account\\] has become fully vested. No further vesting can happen."
]
}
],
"constants": [
{
"name": "MinVestedTransfer",
"ty": 7,
"value": [
0,
0,
193,
111,
242,
134,
35,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The minimum amount transferred to call `vested_transfer`."
]
}
],
"errors": [
{
"name": "NotVesting",
"documentation": [
" The account given is not vesting."
]
},
{
"name": "ExistingVestingSchedule",
"documentation": [
" An existing vesting schedule already exists for this account that cannot be clobbered."
]
},
{
"name": "AmountLow",
"documentation": [
" Amount being transferred is too low to create a vesting schedule."
]
}
],
"index": 28
},
{
"name": "Scheduler",
"storage": {
"prefix": "Scheduler",
"entries": [
{
"name": "Agenda",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 5,
"value": 322,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Items to be executed, indexed by the block number that they should be executed on."
]
},
{
"name": "Lookup",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 11,
"value": 81,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Lookup from identity to the block number and index of the task."
]
},
{
"name": "StorageVersion",
"modifier": "Default",
"ty": {
"Plain": 333
},
"default": [
0
],
"documentation": [
" Storage version of the pallet.",
"",
" New networks start with last version."
]
}
]
},
"calls": [
{
"name": "schedule",
"arguments": [
{
"name": "when",
"ty": 5,
"is_compact": false
},
{
"name": "maybe_periodic",
"ty": 208,
"is_compact": false
},
{
"name": "priority",
"ty": 3,
"is_compact": false
},
{
"name": "call",
"ty": 117,
"is_compact": false
}
],
"documentation": [
" Anonymously schedule a task.",
"",
" # <weight>",
" - S = Number of already scheduled calls",
" - Base Weight: 22.29 + .126 * S µs",
" - DB Weight:",
" - Read: Agenda",
" - Write: Agenda",
" - Will use base weight of 25 which should be good for up to 30 scheduled calls",
" # </weight>"
]
},
{
"name": "cancel",
"arguments": [
{
"name": "when",
"ty": 5,
"is_compact": false
},
{
"name": "index",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Cancel an anonymously scheduled task.",
"",
" # <weight>",
" - S = Number of already scheduled calls",
" - Base Weight: 22.15 + 2.869 * S µs",
" - DB Weight:",
" - Read: Agenda",
" - Write: Agenda, Lookup",
" - Will use base weight of 100 which should be good for up to 30 scheduled calls",
" # </weight>"
]
},
{
"name": "schedule_named",
"arguments": [
{
"name": "id",
"ty": 11,
"is_compact": false
},
{
"name": "when",
"ty": 5,
"is_compact": false
},
{
"name": "maybe_periodic",
"ty": 208,
"is_compact": false
},
{
"name": "priority",
"ty": 3,
"is_compact": false
},
{
"name": "call",
"ty": 117,
"is_compact": false
}
],
"documentation": [
" Schedule a named task.",
"",
" # <weight>",
" - S = Number of already scheduled calls",
" - Base Weight: 29.6 + .159 * S µs",
" - DB Weight:",
" - Read: Agenda, Lookup",
" - Write: Agenda, Lookup",
" - Will use base weight of 35 which should be good for more than 30 scheduled calls",
" # </weight>"
]
},
{
"name": "cancel_named",
"arguments": [
{
"name": "id",
"ty": 11,
"is_compact": false
}
],
"documentation": [
" Cancel a named scheduled task.",
"",
" # <weight>",
" - S = Number of already scheduled calls",
" - Base Weight: 24.91 + 2.907 * S µs",
" - DB Weight:",
" - Read: Agenda, Lookup",
" - Write: Agenda, Lookup",
" - Will use base weight of 100 which should be good for up to 30 scheduled calls",
" # </weight>"
]
},
{
"name": "schedule_after",
"arguments": [
{
"name": "after",
"ty": 5,
"is_compact": false
},
{
"name": "maybe_periodic",
"ty": 208,
"is_compact": false
},
{
"name": "priority",
"ty": 3,
"is_compact": false
},
{
"name": "call",
"ty": 117,
"is_compact": false
}
],
"documentation": [
" Anonymously schedule a task after a delay.",
"",
" # <weight>",
" Same as [`schedule`].",
" # </weight>"
]
},
{
"name": "schedule_named_after",
"arguments": [
{
"name": "id",
"ty": 11,
"is_compact": false
},
{
"name": "after",
"ty": 5,
"is_compact": false
},
{
"name": "maybe_periodic",
"ty": 208,
"is_compact": false
},
{
"name": "priority",
"ty": 3,
"is_compact": false
},
{
"name": "call",
"ty": 117,
"is_compact": false
}
],
"documentation": [
" Schedule a named task after a delay.",
"",
" # <weight>",
" Same as [`schedule_named`].",
" # </weight>"
]
}
],
"event": [
{
"name": "Scheduled",
"arguments": [
{
"ty": 5,
"name": "BlockNumber"
},
{
"ty": 5,
"name": "u32"
}
],
"documentation": [
" Scheduled some task. \\[when, index\\]"
]
},
{
"name": "Canceled",
"arguments": [
{
"ty": 5,
"name": "BlockNumber"
},
{
"ty": 5,
"name": "u32"
}
],
"documentation": [
" Canceled some task. \\[when, index\\]"
]
},
{
"name": "Dispatched",
"arguments": [
{
"ty": 81,
"name": "TaskAddress<BlockNumber>"
},
{
"ty": 82,
"name": "Option<Vec<u8>>"
},
{
"ty": 45,
"name": "DispatchResult"
}
],
"documentation": [
" Dispatched some task. \\[task, id, result\\]"
]
}
],
"constants": [],
"errors": [
{
"name": "FailedToSchedule",
"documentation": [
" Failed to schedule a call"
]
},
{
"name": "NotFound",
"documentation": [
" Cannot find the scheduled call."
]
},
{
"name": "TargetBlockNumberInPast",
"documentation": [
" Given target block number is in the past."
]
},
{
"name": "RescheduleNoChange",
"documentation": [
" Reschedule failed because it does not change scheduled time."
]
}
],
"index": 29
},
{
"name": "Proxy",
"storage": {
"prefix": "Proxy",
"entries": [
{
"name": "Proxies",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 334,
"unused": false
}
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The set of account proxies. Maps the account which has delegated to the accounts",
" which are being delegated to, together with the amount held on deposit."
]
},
{
"name": "Announcements",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 1,
"value": 337,
"unused": false
}
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The announcements made by the proxy (key)."
]
}
]
},
"calls": [
{
"name": "proxy",
"arguments": [
{
"name": "real",
"ty": 1,
"is_compact": false
},
{
"name": "force_proxy_type",
"ty": 210,
"is_compact": false
},
{
"name": "call",
"ty": 117,
"is_compact": false
}
],
"documentation": [
" Dispatch the given `call` from an account that the sender is authorised for through",
" `add_proxy`.",
"",
" Removes any corresponding announcement(s).",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `real`: The account that the proxy will make a call on behalf of.",
" - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.",
" - `call`: The call to be made by the `real` account.",
"",
" # <weight>",
" Weight is a function of the number of proxies the user has (P).",
" # </weight>"
]
},
{
"name": "add_proxy",
"arguments": [
{
"name": "delegate",
"ty": 1,
"is_compact": false
},
{
"name": "proxy_type",
"ty": 84,
"is_compact": false
},
{
"name": "delay",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Register a proxy account for the sender that is able to make calls on its behalf.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `proxy`: The account that the `caller` would like to make a proxy.",
" - `proxy_type`: The permissions allowed for this proxy account.",
" - `delay`: The announcement period required of the initial proxy. Will generally be",
" zero.",
"",
" # <weight>",
" Weight is a function of the number of proxies the user has (P).",
" # </weight>"
]
},
{
"name": "remove_proxy",
"arguments": [
{
"name": "delegate",
"ty": 1,
"is_compact": false
},
{
"name": "proxy_type",
"ty": 84,
"is_compact": false
},
{
"name": "delay",
"ty": 5,
"is_compact": false
}
],
"documentation": [
" Unregister a proxy account for the sender.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `proxy`: The account that the `caller` would like to remove as a proxy.",
" - `proxy_type`: The permissions currently enabled for the removed proxy account.",
"",
" # <weight>",
" Weight is a function of the number of proxies the user has (P).",
" # </weight>"
]
},
{
"name": "remove_proxies",
"arguments": [],
"documentation": [
" Unregister all proxy accounts for the sender.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" WARNING: This may be called on accounts created by `anonymous`, however if done, then",
" the unreserved fees will be inaccessible. **All access to this account will be lost.**",
"",
" # <weight>",
" Weight is a function of the number of proxies the user has (P).",
" # </weight>"
]
},
{
"name": "anonymous",
"arguments": [
{
"name": "proxy_type",
"ty": 84,
"is_compact": false
},
{
"name": "delay",
"ty": 5,
"is_compact": false
},
{
"name": "index",
"ty": 85,
"is_compact": false
}
],
"documentation": [
" Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and",
" initialize it with a proxy of `proxy_type` for `origin` sender.",
"",
" Requires a `Signed` origin.",
"",
" - `proxy_type`: The type of the proxy that the sender will be registered as over the",
" new account. This will almost always be the most permissive `ProxyType` possible to",
" allow for maximum flexibility.",
" - `index`: A disambiguation index, in case this is called multiple times in the same",
" transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just",
" want to use `0`.",
" - `delay`: The announcement period required of the initial proxy. Will generally be",
" zero.",
"",
" Fails with `Duplicate` if this has already been called in this transaction, from the",
" same sender, with the same parameters.",
"",
" Fails if there are insufficient funds to pay for deposit.",
"",
" # <weight>",
" Weight is a function of the number of proxies the user has (P).",
" # </weight>",
" TODO: Might be over counting 1 read"
]
},
{
"name": "kill_anonymous",
"arguments": [
{
"name": "spawner",
"ty": 1,
"is_compact": false
},
{
"name": "proxy_type",
"ty": 84,
"is_compact": false
},
{
"name": "index",
"ty": 85,
"is_compact": false
},
{
"name": "height",
"ty": 5,
"is_compact": true
},
{
"name": "ext_index",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Removes a previously spawned anonymous proxy.",
"",
" WARNING: **All access to this account will be lost.** Any funds held in it will be",
" inaccessible.",
"",
" Requires a `Signed` origin, and the sender account must have been created by a call to",
" `anonymous` with corresponding parameters.",
"",
" - `spawner`: The account that originally called `anonymous` to create this account.",
" - `index`: The disambiguation index originally passed to `anonymous`. Probably `0`.",
" - `proxy_type`: The proxy type originally passed to `anonymous`.",
" - `height`: The height of the chain when the call to `anonymous` was processed.",
" - `ext_index`: The extrinsic index in which the call to `anonymous` was processed.",
"",
" Fails with `NoPermission` in case the caller is not a previously created anonymous",
" account whose `anonymous` call has corresponding parameters.",
"",
" # <weight>",
" Weight is a function of the number of proxies the user has (P).",
" # </weight>"
]
},
{
"name": "announce",
"arguments": [
{
"name": "real",
"ty": 1,
"is_compact": false
},
{
"name": "call_hash",
"ty": 10,
"is_compact": false
}
],
"documentation": [
" Publish the hash of a proxy-call that will be made in the future.",
"",
" This must be called some number of blocks before the corresponding `proxy` is attempted",
" if the delay associated with the proxy relationship is greater than zero.",
"",
" No more than `MaxPending` announcements may be made at any one time.",
"",
" This will take a deposit of `AnnouncementDepositFactor` as well as",
" `AnnouncementDepositBase` if there are no other pending announcements.",
"",
" The dispatch origin for this call must be _Signed_ and a proxy of `real`.",
"",
" Parameters:",
" - `real`: The account that the proxy will make a call on behalf of.",
" - `call_hash`: The hash of the call to be made by the `real` account.",
"",
" # <weight>",
" Weight is a function of:",
" - A: the number of announcements made.",
" - P: the number of proxies the user has.",
" # </weight>"
]
},
{
"name": "remove_announcement",
"arguments": [
{
"name": "real",
"ty": 1,
"is_compact": false
},
{
"name": "call_hash",
"ty": 10,
"is_compact": false
}
],
"documentation": [
" Remove a given announcement.",
"",
" May be called by a proxy account to remove a call they previously announced and return",
" the deposit.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `real`: The account that the proxy will make a call on behalf of.",
" - `call_hash`: The hash of the call to be made by the `real` account.",
"",
" # <weight>",
" Weight is a function of:",
" - A: the number of announcements made.",
" - P: the number of proxies the user has.",
" # </weight>"
]
},
{
"name": "reject_announcement",
"arguments": [
{
"name": "delegate",
"ty": 1,
"is_compact": false
},
{
"name": "call_hash",
"ty": 10,
"is_compact": false
}
],
"documentation": [
" Remove the given announcement of a delegate.",
"",
" May be called by a target (proxied) account to remove a call that one of their delegates",
" (`delegate`) has announced they want to execute. The deposit is returned.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `delegate`: The account that previously announced the call.",
" - `call_hash`: The hash of the call to be made.",
"",
" # <weight>",
" Weight is a function of:",
" - A: the number of announcements made.",
" - P: the number of proxies the user has.",
" # </weight>"
]
},
{
"name": "proxy_announced",
"arguments": [
{
"name": "delegate",
"ty": 1,
"is_compact": false
},
{
"name": "real",
"ty": 1,
"is_compact": false
},
{
"name": "force_proxy_type",
"ty": 210,
"is_compact": false
},
{
"name": "call",
"ty": 117,
"is_compact": false
}
],
"documentation": [
" Dispatch the given `call` from an account that the sender is authorized for through",
" `add_proxy`.",
"",
" Removes any corresponding announcement(s).",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `real`: The account that the proxy will make a call on behalf of.",
" - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.",
" - `call`: The call to be made by the `real` account.",
"",
" # <weight>",
" Weight is a function of:",
" - A: the number of announcements made.",
" - P: the number of proxies the user has.",
" # </weight>"
]
}
],
"event": [
{
"name": "ProxyExecuted",
"arguments": [
{
"ty": 45,
"name": "DispatchResult"
}
],
"documentation": [
" A proxy was executed correctly, with the given \\[result\\]."
]
},
{
"name": "AnonymousCreated",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 84,
"name": "ProxyType"
},
{
"ty": 85,
"name": "u16"
}
],
"documentation": [
" Anonymous account has been created by new proxy with given",
" disambiguation index and proxy type. \\[anonymous, who, proxy_type, disambiguation_index\\]"
]
},
{
"name": "Announced",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 10,
"name": "Hash"
}
],
"documentation": [
" An announcement was placed to make a call in the future. \\[real, proxy, call_hash\\]"
]
}
],
"constants": [
{
"name": "ProxyDepositBase",
"ty": 7,
"value": [
0,
240,
158,
84,
76,
57,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The base amount of currency needed to reserve for creating a proxy.",
"",
" This is held for an additional storage item whose value size is",
" `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes."
]
},
{
"name": "ProxyDepositFactor",
"ty": 7,
"value": [
0,
96,
170,
119,
20,
180,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The amount of currency needed per proxy added.",
"",
" This is held for adding 32 bytes plus an instance of `ProxyType` more into a pre-existing",
" storage value. Thus, when configuring `ProxyDepositFactor` one should take into account",
" `32 + proxy_type.encode().len()` bytes of data."
]
},
{
"name": "MaxProxies",
"ty": 85,
"value": [
32,
0
],
"documentation": [
" The maximum amount of proxies allowed for a single account."
]
},
{
"name": "MaxPending",
"ty": 5,
"value": [
32,
0,
0,
0
],
"documentation": [
" The maximum amount of time-delayed announcements that are allowed to be pending."
]
},
{
"name": "AnnouncementDepositBase",
"ty": 7,
"value": [
0,
240,
158,
84,
76,
57,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The base amount of currency needed to reserve for creating an announcement.",
"",
" This is held when a new storage item holding a `Balance` is created (typically 16 bytes)."
]
},
{
"name": "AnnouncementDepositFactor",
"ty": 7,
"value": [
0,
192,
84,
239,
40,
104,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The amount of currency needed per announcement made.",
"",
" This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)",
" into a pre-existing storage value."
]
}
],
"errors": [
{
"name": "TooMany",
"documentation": [
" There are too many proxies registered or too many announcements pending."
]
},
{
"name": "NotFound",
"documentation": [
" Proxy registration not found."
]
},
{
"name": "NotProxy",
"documentation": [
" Sender is not a proxy of the account to be proxied."
]
},
{
"name": "Unproxyable",
"documentation": [
" A call which is incompatible with the proxy type's filter was attempted."
]
},
{
"name": "Duplicate",
"documentation": [
" Account is already a proxy."
]
},
{
"name": "NoPermission",
"documentation": [
" Call may not be made by proxy because it may escalate its privileges."
]
},
{
"name": "Unannounced",
"documentation": [
" Announcement, if made at all, was made too recently."
]
},
{
"name": "NoSelfProxy",
"documentation": [
" Cannot add self as proxy."
]
}
],
"index": 30
},
{
"name": "Multisig",
"storage": {
"prefix": "Multisig",
"entries": [
{
"name": "Multisigs",
"modifier": "Optional",
"ty": {
"DoubleMap": {
"hasher": "Twox64Concat",
"key1": 1,
"key2": 2,
"value": 340,
"key2_hasher": "Blake2_128Concat"
}
},
"default": [
0
],
"documentation": [
" The set of open multisig operations."
]
},
{
"name": "Calls",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Identity",
"key": 2,
"value": 341,
"unused": false
}
},
"default": [
0
],
"documentation": []
}
]
},
"calls": [
{
"name": "as_multi_threshold_1",
"arguments": [
{
"name": "other_signatories",
"ty": 40,
"is_compact": false
},
{
"name": "call",
"ty": 117,
"is_compact": false
}
],
"documentation": [
" Immediately dispatch a multi-signature call using a single approval from the caller.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" - `other_signatories`: The accounts (other than the sender) who are part of the",
" multi-signature, but do not participate in the approval process.",
" - `call`: The call to be executed.",
"",
" Result is equivalent to the dispatched result.",
"",
" # <weight>",
" O(Z + C) where Z is the length of the call and C its execution weight.",
" -------------------------------",
" - DB Weight: None",
" - Plus Call Weight",
" # </weight>"
]
},
{
"name": "as_multi",
"arguments": [
{
"name": "threshold",
"ty": 85,
"is_compact": false
},
{
"name": "other_signatories",
"ty": 40,
"is_compact": false
},
{
"name": "maybe_timepoint",
"ty": 212,
"is_compact": false
},
{
"name": "call",
"ty": 11,
"is_compact": false
},
{
"name": "store_call",
"ty": 42,
"is_compact": false
},
{
"name": "max_weight",
"ty": 9,
"is_compact": false
}
],
"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: `DepositBase` will be reserved if this is the first approval, plus",
" `threshold` times `DepositFactor`. 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",
" `DepositBase + threshold * DepositFactor`.",
" -------------------------------",
" - DB Weight:",
" - Reads: Multisig Storage, [Caller Account], Calls (if `store_call`)",
" - Writes: Multisig Storage, [Caller Account], Calls (if `store_call`)",
" - Plus Call Weight",
" # </weight>"
]
},
{
"name": "approve_as_multi",
"arguments": [
{
"name": "threshold",
"ty": 85,
"is_compact": false
},
{
"name": "other_signatories",
"ty": 40,
"is_compact": false
},
{
"name": "maybe_timepoint",
"ty": 212,
"is_compact": false
},
{
"name": "call_hash",
"ty": 2,
"is_compact": false
},
{
"name": "max_weight",
"ty": 9,
"is_compact": false
}
],
"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: `DepositBase` will be reserved if this is the first approval, plus",
" `threshold` times `DepositFactor`. 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",
" `DepositBase + threshold * DepositFactor`.",
" ----------------------------------",
" - DB Weight:",
" - Read: Multisig Storage, [Caller Account]",
" - Write: Multisig Storage, [Caller Account]",
" # </weight>"
]
},
{
"name": "cancel_as_multi",
"arguments": [
{
"name": "threshold",
"ty": 85,
"is_compact": false
},
{
"name": "other_signatories",
"ty": 40,
"is_compact": false
},
{
"name": "timepoint",
"ty": 87,
"is_compact": false
},
{
"name": "call_hash",
"ty": 2,
"is_compact": false
}
],
"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.",
" ----------------------------------",
" - DB Weight:",
" - Read: Multisig Storage, [Caller Account], Refund Account, Calls",
" - Write: Multisig Storage, [Caller Account], Refund Account, Calls",
" # </weight>"
]
}
],
"event": [
{
"name": "NewMultisig",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 2,
"name": "CallHash"
}
],
"documentation": [
" A new multisig operation has begun. \\[approving, multisig, call_hash\\]"
]
},
{
"name": "MultisigApproval",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 87,
"name": "Timepoint<BlockNumber>"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 2,
"name": "CallHash"
}
],
"documentation": [
" A multisig operation has been approved by someone.",
" \\[approving, timepoint, multisig, call_hash\\]"
]
},
{
"name": "MultisigExecuted",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 87,
"name": "Timepoint<BlockNumber>"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 2,
"name": "CallHash"
},
{
"ty": 45,
"name": "DispatchResult"
}
],
"documentation": [
" A multisig operation has been executed. \\[approving, timepoint, multisig, call_hash\\]"
]
},
{
"name": "MultisigCancelled",
"arguments": [
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 87,
"name": "Timepoint<BlockNumber>"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 2,
"name": "CallHash"
}
],
"documentation": [
" A multisig operation has been cancelled. \\[cancelling, timepoint, multisig, call_hash\\]"
]
}
],
"constants": [
{
"name": "DepositBase",
"ty": 7,
"value": [
0,
240,
28,
10,
219,
237,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The base amount of currency needed to reserve for creating a multisig execution or to store",
" a dispatch call for later."
]
},
{
"name": "DepositFactor",
"ty": 7,
"value": [
0,
0,
204,
123,
159,
174,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The amount of currency needed per unit threshold when creating a multisig execution."
]
},
{
"name": "MaxSignatories",
"ty": 85,
"value": [
100,
0
],
"documentation": [
" The maximum amount of signatories allowed for a given multisig."
]
}
],
"errors": [
{
"name": "MinimumThreshold",
"documentation": [
" Threshold must be 2 or greater."
]
},
{
"name": "AlreadyApproved",
"documentation": [
" Call is already approved by this signatory."
]
},
{
"name": "NoApprovalsNeeded",
"documentation": [
" Call doesn't need any (more) approvals."
]
},
{
"name": "TooFewSignatories",
"documentation": [
" There are too few signatories in the list."
]
},
{
"name": "TooManySignatories",
"documentation": [
" There are too many signatories in the list."
]
},
{
"name": "SignatoriesOutOfOrder",
"documentation": [
" The signatories were provided out of order; they should be ordered."
]
},
{
"name": "SenderInSignatories",
"documentation": [
" The sender was contained in the other signatories; it shouldn't be."
]
},
{
"name": "NotFound",
"documentation": [
" Multisig operation not found when attempting to cancel."
]
},
{
"name": "NotOwner",
"documentation": [
" Only the account that originally created the multisig is able to cancel it."
]
},
{
"name": "NoTimepoint",
"documentation": [
" No timepoint was given, yet the multisig operation is already underway."
]
},
{
"name": "WrongTimepoint",
"documentation": [
" A different timepoint was given to the multisig operation that is underway."
]
},
{
"name": "UnexpectedTimepoint",
"documentation": [
" A timepoint was given, yet no multisig operation is underway."
]
},
{
"name": "MaxWeightTooLow",
"documentation": [
" The maximum weight information provided was too low."
]
},
{
"name": "AlreadyStored",
"documentation": [
" The data to be stored is already stored."
]
}
],
"index": 31
},
{
"name": "Bounties",
"storage": {
"prefix": "Treasury",
"entries": [
{
"name": "BountyCount",
"modifier": "Default",
"ty": {
"Plain": 5
},
"default": [
0,
0,
0,
0
],
"documentation": [
" Number of bounty proposals that have been made."
]
},
{
"name": "Bounties",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 5,
"value": 342,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Bounties that have been made."
]
},
{
"name": "BountyDescriptions",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 5,
"value": 11,
"unused": false
}
},
"default": [
0
],
"documentation": [
" The description of each bounty."
]
},
{
"name": "BountyApprovals",
"modifier": "Default",
"ty": {
"Plain": 147
},
"default": [
0
],
"documentation": [
" Bounty indices that have been approved but not yet funded."
]
}
]
},
"calls": [
{
"name": "propose_bounty",
"arguments": [
{
"name": "value",
"ty": 7,
"is_compact": true
},
{
"name": "description",
"ty": 11,
"is_compact": false
}
],
"documentation": [
" Propose a new bounty.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" Payment: `TipReportDepositBase` will be reserved from the origin account, as well as",
" `DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,",
" or slashed when rejected.",
"",
" - `curator`: The curator account whom will manage this bounty.",
" - `fee`: The curator fee.",
" - `value`: The total payment amount of this bounty, curator fee included.",
" - `description`: The description of this bounty."
]
},
{
"name": "approve_bounty",
"arguments": [
{
"name": "bounty_id",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Approve a bounty proposal. At a later time, the bounty will be funded and become active",
" and the original deposit will be returned.",
"",
" May only be called from `T::ApproveOrigin`.",
"",
" # <weight>",
" - O(1).",
" # </weight>"
]
},
{
"name": "propose_curator",
"arguments": [
{
"name": "bounty_id",
"ty": 5,
"is_compact": true
},
{
"name": "curator",
"ty": 135,
"is_compact": false
},
{
"name": "fee",
"ty": 7,
"is_compact": true
}
],
"documentation": [
" Assign a curator to a funded bounty.",
"",
" May only be called from `T::ApproveOrigin`.",
"",
" # <weight>",
" - O(1).",
" # </weight>"
]
},
{
"name": "unassign_curator",
"arguments": [
{
"name": "bounty_id",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Unassign curator from a bounty.",
"",
" This function can only be called by the `RejectOrigin` a signed origin.",
"",
" If this function is called by the `RejectOrigin`, we assume that the curator is malicious",
" or inactive. As a result, we will slash the curator when possible.",
"",
" If the origin is the curator, we take this as a sign they are unable to do their job and",
" they willingly give up. We could slash them, but for now we allow them to recover their",
" deposit and exit without issue. (We may want to change this if it is abused.)",
"",
" Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows",
" anyone in the community to call out that a curator is not doing their due diligence, and",
" we should pick a new curator. In this case the curator should also be slashed.",
"",
" # <weight>",
" - O(1).",
" # </weight>"
]
},
{
"name": "accept_curator",
"arguments": [
{
"name": "bounty_id",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Accept the curator role for a bounty.",
" A deposit will be reserved from curator and refund upon successful payout.",
"",
" May only be called from the curator.",
"",
" # <weight>",
" - O(1).",
" # </weight>"
]
},
{
"name": "award_bounty",
"arguments": [
{
"name": "bounty_id",
"ty": 5,
"is_compact": true
},
{
"name": "beneficiary",
"ty": 135,
"is_compact": false
}
],
"documentation": [
" Award bounty to a beneficiary account. The beneficiary will be able to claim the funds after a delay.",
"",
" The dispatch origin for this call must be the curator of this bounty.",
"",
" - `bounty_id`: Bounty ID to award.",
" - `beneficiary`: The beneficiary account whom will receive the payout.",
"",
" # <weight>",
" - O(1).",
" # </weight>"
]
},
{
"name": "claim_bounty",
"arguments": [
{
"name": "bounty_id",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Claim the payout from an awarded bounty after payout delay.",
"",
" The dispatch origin for this call must be the beneficiary of this bounty.",
"",
" - `bounty_id`: Bounty ID to claim.",
"",
" # <weight>",
" - O(1).",
" # </weight>"
]
},
{
"name": "close_bounty",
"arguments": [
{
"name": "bounty_id",
"ty": 5,
"is_compact": true
}
],
"documentation": [
" Cancel a proposed or active bounty. All the funds will be sent to treasury and",
" the curator deposit will be unreserved if possible.",
"",
" Only `T::RejectOrigin` is able to cancel a bounty.",
"",
" - `bounty_id`: Bounty ID to cancel.",
"",
" # <weight>",
" - O(1).",
" # </weight>"
]
},
{
"name": "extend_bounty_expiry",
"arguments": [
{
"name": "bounty_id",
"ty": 5,
"is_compact": true
},
{
"name": "_remark",
"ty": 11,
"is_compact": false
}
],
"documentation": [
" Extend the expiry time of an active bounty.",
"",
" The dispatch origin for this call must be the curator of this bounty.",
"",
" - `bounty_id`: Bounty ID to extend.",
" - `remark`: additional information.",
"",
" # <weight>",
" - O(1).",
" # </weight>"
]
}
],
"event": [
{
"name": "BountyProposed",
"arguments": [
{
"ty": 5,
"name": "BountyIndex"
}
],
"documentation": [
" New bounty proposal. \\[index\\]"
]
},
{
"name": "BountyRejected",
"arguments": [
{
"ty": 5,
"name": "BountyIndex"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" A bounty proposal was rejected; funds were slashed. \\[index, bond\\]"
]
},
{
"name": "BountyBecameActive",
"arguments": [
{
"ty": 5,
"name": "BountyIndex"
}
],
"documentation": [
" A bounty proposal is funded and became active. \\[index\\]"
]
},
{
"name": "BountyAwarded",
"arguments": [
{
"ty": 5,
"name": "BountyIndex"
},
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A bounty is awarded to a beneficiary. \\[index, beneficiary\\]"
]
},
{
"name": "BountyClaimed",
"arguments": [
{
"ty": 5,
"name": "BountyIndex"
},
{
"ty": 7,
"name": "Balance"
},
{
"ty": 1,
"name": "AccountId"
}
],
"documentation": [
" A bounty is claimed by beneficiary. \\[index, payout, beneficiary\\]"
]
},
{
"name": "BountyCanceled",
"arguments": [
{
"ty": 5,
"name": "BountyIndex"
}
],
"documentation": [
" A bounty is cancelled. \\[index\\]"
]
},
{
"name": "BountyExtended",
"arguments": [
{
"ty": 5,
"name": "BountyIndex"
}
],
"documentation": [
" A bounty expiry is extended. \\[index\\]"
]
}
],
"constants": [
{
"name": "DataDepositPerByte",
"ty": 7,
"value": [
0,
16,
165,
212,
232,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The amount held on deposit per byte within bounty description."
]
},
{
"name": "BountyDepositBase",
"ty": 7,
"value": [
0,
64,
122,
16,
243,
90,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The amount held on deposit for placing a bounty proposal."
]
},
{
"name": "BountyDepositPayoutDelay",
"ty": 5,
"value": [
128,
112,
0,
0
],
"documentation": [
" The delay period for which a bounty beneficiary need to wait before claim the payout."
]
},
{
"name": "BountyUpdatePeriod",
"ty": 5,
"value": [
0,
39,
6,
0
],
"documentation": [
" Bounty duration in blocks."
]
},
{
"name": "BountyCuratorDeposit",
"ty": 288,
"value": [
32,
161,
7,
0
],
"documentation": [
" Percentage of the curator fee that will be reserved upfront as deposit for bounty curator."
]
},
{
"name": "BountyValueMinimum",
"ty": 7,
"value": [
0,
64,
99,
82,
191,
198,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" Minimum value for a bounty."
]
},
{
"name": "MaximumReasonLength",
"ty": 5,
"value": [
0,
64,
0,
0
],
"documentation": [
" Maximum acceptable reason length."
]
}
],
"errors": [
{
"name": "InsufficientProposersBalance",
"documentation": [
" Proposer's balance is too low."
]
},
{
"name": "InvalidIndex",
"documentation": [
" No proposal or bounty at that index."
]
},
{
"name": "ReasonTooBig",
"documentation": [
" The reason given is just too big."
]
},
{
"name": "UnexpectedStatus",
"documentation": [
" The bounty status is unexpected."
]
},
{
"name": "RequireCurator",
"documentation": [
" Require bounty curator."
]
},
{
"name": "InvalidValue",
"documentation": [
" Invalid bounty value."
]
},
{
"name": "InvalidFee",
"documentation": [
" Invalid bounty fee."
]
},
{
"name": "PendingPayout",
"documentation": [
" A bounty payout is pending.",
" To cancel the bounty, you must unassign and slash the curator."
]
},
{
"name": "Premature",
"documentation": [
" The bounties cannot be claimed/closed because it's still in the countdown period."
]
}
],
"index": 32
},
{
"name": "Tips",
"storage": {
"prefix": "Treasury",
"entries": [
{
"name": "Tips",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Twox64Concat",
"key": 10,
"value": 344,
"unused": false
}
},
"default": [
0
],
"documentation": [
" TipsMap that are not yet completed. Keyed by the hash of `(reason, who)` from the value.",
" This has the insecure enumerable hash function since the key itself is already",
" guaranteed to be a secure hash."
]
},
{
"name": "Reasons",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Identity",
"key": 10,
"value": 11,
"unused": false
}
},
"default": [
0
],
"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": "report_awesome",
"arguments": [
{
"name": "reason",
"ty": 11,
"is_compact": false
},
{
"name": "who",
"ty": 1,
"is_compact": false
}
],
"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",
" `DataDepositPerByte` 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>",
" - Complexity: `O(R)` where `R` length of `reason`.",
" - encoding and hashing of 'reason'",
" - DbReads: `Reasons`, `Tips`",
" - DbWrites: `Reasons`, `Tips`",
" # </weight>"
]
},
{
"name": "retract_tip",
"arguments": [
{
"name": "hash",
"ty": 10,
"is_compact": false
}
],
"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>",
" - Complexity: `O(1)`",
" - Depends on the length of `T::Hash` which is fixed.",
" - DbReads: `Tips`, `origin account`",
" - DbWrites: `Reasons`, `Tips`, `origin account`",
" # </weight>"
]
},
{
"name": "tip_new",
"arguments": [
{
"name": "reason",
"ty": 11,
"is_compact": false
},
{
"name": "who",
"ty": 1,
"is_compact": false
},
{
"name": "tip_value",
"ty": 7,
"is_compact": true
}
],
"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>",
" - Complexity: `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.",
" - `O(T)`: decoding `Tipper` vec of length `T`",
" `T` is charged as upper bound given by `ContainsLengthBound`.",
" The actual cost depends on the implementation of `T::Tippers`.",
" - `O(R)`: hashing and encoding of reason of length `R`",
" - DbReads: `Tippers`, `Reasons`",
" - DbWrites: `Reasons`, `Tips`",
" # </weight>"
]
},
{
"name": "tip",
"arguments": [
{
"name": "hash",
"ty": 10,
"is_compact": false
},
{
"name": "tip_value",
"ty": 7,
"is_compact": true
}
],
"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>",
" - Complexity: `O(T)` where `T` is the number of tippers.",
" decoding `Tipper` vec of length `T`, insert tip and check closing,",
" `T` is charged as upper bound given by `ContainsLengthBound`.",
" The actual cost depends on the implementation of `T::Tippers`.",
"",
" Actually weight could be lower as it depends on how many tips are in `OpenTip` but it",
" is weighted as if almost full i.e of length `T-1`.",
" - DbReads: `Tippers`, `Tips`",
" - DbWrites: `Tips`",
" # </weight>"
]
},
{
"name": "close_tip",
"arguments": [
{
"name": "hash",
"ty": 10,
"is_compact": false
}
],
"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>",
" - Complexity: `O(T)` where `T` is the number of tippers.",
" decoding `Tipper` vec of length `T`.",
" `T` is charged as upper bound given by `ContainsLengthBound`.",
" The actual cost depends on the implementation of `T::Tippers`.",
" - DbReads: `Tips`, `Tippers`, `tip finder`",
" - DbWrites: `Reasons`, `Tips`, `Tippers`, `tip finder`",
" # </weight>"
]
},
{
"name": "slash_tip",
"arguments": [
{
"name": "hash",
"ty": 10,
"is_compact": false
}
],
"documentation": [
" Remove and slash an already-open tip.",
"",
" May only be called from `T::RejectOrigin`.",
"",
" As a result, the finder is slashed and the deposits are lost.",
"",
" Emits `TipSlashed` if successful.",
"",
" # <weight>",
" `T` is charged as upper bound given by `ContainsLengthBound`.",
" The actual cost depends on the implementation of `T::Tippers`.",
" # </weight>"
]
}
],
"event": [
{
"name": "NewTip",
"arguments": [
{
"ty": 10,
"name": "Hash"
}
],
"documentation": [
" A new tip suggestion has been opened. \\[tip_hash\\]"
]
},
{
"name": "TipClosing",
"arguments": [
{
"ty": 10,
"name": "Hash"
}
],
"documentation": [
" A tip suggestion has reached threshold and is closing. \\[tip_hash\\]"
]
},
{
"name": "TipClosed",
"arguments": [
{
"ty": 10,
"name": "Hash"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" A tip suggestion has been closed. \\[tip_hash, who, payout\\]"
]
},
{
"name": "TipRetracted",
"arguments": [
{
"ty": 10,
"name": "Hash"
}
],
"documentation": [
" A tip suggestion has been retracted. \\[tip_hash\\]"
]
},
{
"name": "TipSlashed",
"arguments": [
{
"ty": 10,
"name": "Hash"
},
{
"ty": 1,
"name": "AccountId"
},
{
"ty": 7,
"name": "Balance"
}
],
"documentation": [
" A tip suggestion has been slashed. \\[tip_hash, finder, deposit\\]"
]
}
],
"constants": [
{
"name": "TipCountdown",
"ty": 5,
"value": [
128,
112,
0,
0
],
"documentation": [
" The period for which a tip remains open after is has achieved threshold tippers."
]
},
{
"name": "TipFindersFee",
"ty": 146,
"value": [
20
],
"documentation": [
" The amount of the final tip which goes to the original reporter of the tip."
]
},
{
"name": "TipReportDepositBase",
"ty": 7,
"value": [
0,
64,
122,
16,
243,
90,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The amount held on deposit for placing a tip report."
]
},
{
"name": "DataDepositPerByte",
"ty": 7,
"value": [
0,
16,
165,
212,
232,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The amount held on deposit per byte within the tip report reason."
]
},
{
"name": "MaximumReasonLength",
"ty": 5,
"value": [
0,
64,
0,
0
],
"documentation": [
" Maximum acceptable reason length."
]
}
],
"errors": [
{
"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."
]
}
],
"index": 33
},
{
"name": "Assets",
"storage": {
"prefix": "Assets",
"entries": [
{
"name": "Asset",
"modifier": "Optional",
"ty": {
"Map": {
"hasher": "Blake2_128Concat",
"key": 5,
"value": 345,
"unused": false
}
},
"default": [
0
],
"documentation": [
" Details of an asset."
]
},
{
"name": "Account",
"modifier": "Default",
"ty": {
"DoubleMap": {
"hasher": "Blake2_128Concat",
"key1": 5,
"key2": 1,
"value": 346,
"key2_hasher": "Blake2_128Concat"
}
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" The number of units of assets held by any given account."
]
},
{
"name": "Approvals",
"modifier": "Optional",
"ty": {
"DoubleMap": {
"hasher": "Blake2_128Concat",
"key1": 5,
"key2": 347,
"value": 348,
"key2_hasher": "Blake2_128Concat"
}
},
"default": [
0
],
"documentation": [
" Approved balance transfers. First balance is the amount approved for transfer. Second",
" is the amount of `T::Currency` reserved for storing this."
]
},
{
"name": "Metadata",
"modifier": "Default",
"ty": {
"Map": {
"hasher": "Blake2_128Concat",
"key": 5,
"value": 349,
"unused": false
}
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"documentation": [
" Metadata of an asset."
]
}
]
},
"calls": [
{
"name": "create",
"arguments": [
{
"name": "id",
"ty": 5,
"is_compact": true
},
{
"name": "admin",
"ty": 135,
"is_compact": false
},
{
"name": "min_balance",
"ty": 9,
"is_compact": false
}
],
"documentation": [
" Issue a new class of fungible assets from a public origin.",
"",
" This new asset class has no assets initially and its owner is the origin.",
"",
" The origin must be Signed and the sender must have sufficient funds free.",
"",
" Funds of sender are reserved by `AssetDeposit`.",
"",
" Parameters:",
" - `id`: The identifier of the new asset. This must not be currently in use to identify",
" an existing asset.",
" - `admin`: The admin of this class of assets. The admin is the initial address of each",
" member of the asset class's admin team.",
" - `min_balance`: The minimum balance of this new asset that any single account must",
" have. If an account's balance is reduced below this, then it collapses to zero.",
"",
" Emits `Created` event when successful.",
"",
" Weight: `O(1)`"
]
},
{
"name": "force_create",
"arguments": [
{
"name": "id",
"ty": 5,
"is_compact": true
},
{
"name": "owner",
"ty": 135,
"is_compact": false
},
{
"name": "is_sufficient",
"ty": 42,
"is_compact": false
},
{
"name": "min_balance",
"ty": 9,
"is_compact": true
}
],
"documentation": [
" Issue a new class of fungible assets from a privileged origin.",
"",
" This new asset class has no assets initially.",
"",
" The origin must conform to `ForceOrigin`.",
"",
" Unlike `create`, no funds are reserved.",
"",
" - `id`: The identifier of the new asset. This must not be currently in use to identify",
" an existing asset.",
" - `owner`: The owner of this class of assets. The owner has full superuser permissions",
" over this asset, but may later change and configure the permissions using `transfer_ownership`",
" and `set_team`.",
" - `max_zombies`: The total number of accounts which may hold assets in this class yet",
" have no existential deposit.",
" - `min_balance`: The minimum balance of this new asset that any single account must",
" have. If an account's balance is reduced below this, then it collapses to zero.",
"",
" Emits `ForceCreated` event when successful.",
"",
" Weight: `O(1)`"
]
},
{
"name": "destroy",
"arguments": [
{
"name": "id",
"ty": 5,
"is_compact": true
},
{
"name": "witness",
"ty": 216,
"is_compact": false
}
],
"documentation": [
" Destroy a class of fungible assets.",
"",
" The origin must conform to `ForceOrigin` or must be Signed and the sender must be the",
" owner of the asset `id`.",
"",
" - `id`: The identifier of the asset to be destroyed. This must identify an existing",
" asset.",
"",
" Emits `Destroyed` event when successful.",
"",
" Weight: `O(c + p + a)` where:",
" - `c = (witness.accounts - witness.sufficients)`",
" - `s = witness.sufficients`",
" - `a = witness.approvals`"
]
},
{
"name": "mint",
"arguments": [
{
"name": "id",
"ty": 5,
"is_compact": true
},
{
"name": "beneficiary",
"ty": 135,
"is_compact": false
},
{
"name": "amount",
"ty": 9,
"is_compact": true
}
],
"documentation": [
" Mint assets of a particular class.",
"",
" The origin must be Signed and the sender must be the Issuer of the asset `id`.",
"",
" - `id`: The identifier of the asset to have some amount minted.",
" - `beneficiary`: The account to be credited with the minted assets.",
" - `amount`: The amount of the asset to be minted.",
"",
" Emits `Destroyed` event when successful.",
"",
" Weight: `O(1)`",
" Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`."
]
},
{
"name": "burn",
"arguments": [
{
"name": "id",
"ty": 5,
"is_compact": true
},
{
"name": "who",
"ty": 135,
"is_compact": false
},
{
"name": "amount",
"ty": 9,
"is_compact": true
}
],
"documentation": [
" Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.",
"",
" Origin must be Signed and the sender should be the Manager of the asset `id`.",
"",
" Bails with `BalanceZero` if the `who` is already dead.",
"",
" - `id`: The identifier of the asset to have some amount burned.",
" - `who`: The account to be debited from.",
" - `amount`: The maximum amount by which `who`'s balance should be reduced.",
"",
" Emits `Burned` with the actual amount burned. If this takes the balance to below the",
" minimum for the asset, then the amount burned is increased to take it to zero.",
"",
" Weight: `O(1)`",
" Modes: Post-existence of `who`; Pre & post Zombie-status of `who`."
]
},
{
"name": "transfer",
"arguments": [
{
"name": "id",
"ty": 5,
"is_compact": true
},
{
"name": "target",
"ty": 135,
"is_compact": false
},
{
"name": "amount",
"ty": 9,
"is_compact": true
}
],
"documentation": [
" Move some assets from the sender account to another.",
"",
" Origin must be Signed.",
"",
" - `id`: The identifier of the asset to have some amount transferred.",
" - `target`: The account to be credited.",
" - `amount`: The amount by which the sender's balance of assets should be reduced and",
" `target`'s balance increased. The amount actually transferred may be slightly greater in",
" the case that the transfer would otherwise take the sender balance above zero but below",
" the minimum balance. Must be greater than zero.",
"",
" Emits `Transferred` with the actual amount transferred. If this takes the source balance",
" to below the minimum for the asset, then the amount transferred is increased to take it",
" to zero.",
"",
" Weight: `O(1)`",
" Modes: Pre-existence of `targ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment