Files
pezkuwi-subxt/balances.json
T
2023-03-08 17:30:26 +02:00

23587 lines
846 KiB
JSON

[
1635018093,
{
"V14": {
"types": {
"types": [
{
"id": 0,
"type": {
"path": [
"sp_consensus_grandpa",
"Equivocation"
],
"params": [
{
"name": "H",
"type": 1
},
{
"name": "N",
"type": 4
}
],
"def": {
"variant": {
"variants": [
{
"name": "Prevote",
"fields": [
{
"type": 5,
"typeName": "grandpa::Equivocation<AuthorityId, grandpa::Prevote<H, N>,\nAuthoritySignature>"
}
],
"index": 0
},
{
"name": "Precommit",
"fields": [
{
"type": 14,
"typeName": "grandpa::Equivocation<AuthorityId, grandpa::Precommit<H, N>,\nAuthoritySignature>"
}
],
"index": 1
}
]
}
}
}
},
{
"id": 1,
"type": {
"path": [
"primitive_types",
"H256"
],
"def": {
"composite": {
"fields": [
{
"type": 2,
"typeName": "[u8; 32]"
}
]
}
}
}
},
{
"id": 2,
"type": {
"def": {
"array": {
"len": 32,
"type": 3
}
}
}
},
{
"id": 3,
"type": {
"def": {
"primitive": "u8"
}
}
},
{
"id": 4,
"type": {
"def": {
"primitive": "u32"
}
}
},
{
"id": 5,
"type": {
"path": [
"finality_grandpa",
"Equivocation"
],
"params": [
{
"name": "Id",
"type": 6
},
{
"name": "V",
"type": 8
},
{
"name": "S",
"type": 9
}
],
"def": {
"composite": {
"fields": [
{
"name": "round_number",
"type": 12,
"typeName": "u64"
},
{
"name": "identity",
"type": 6,
"typeName": "Id"
},
{
"name": "first",
"type": 13,
"typeName": "(V, S)"
},
{
"name": "second",
"type": 13,
"typeName": "(V, S)"
}
]
}
}
}
},
{
"id": 6,
"type": {
"path": [
"sp_consensus_grandpa",
"app",
"Public"
],
"def": {
"composite": {
"fields": [
{
"type": 7,
"typeName": "ed25519::Public"
}
]
}
}
}
},
{
"id": 7,
"type": {
"path": [
"sp_core",
"ed25519",
"Public"
],
"def": {
"composite": {
"fields": [
{
"type": 2,
"typeName": "[u8; 32]"
}
]
}
}
}
},
{
"id": 8,
"type": {
"path": [
"finality_grandpa",
"Prevote"
],
"params": [
{
"name": "H",
"type": 1
},
{
"name": "N",
"type": 4
}
],
"def": {
"composite": {
"fields": [
{
"name": "target_hash",
"type": 1,
"typeName": "H"
},
{
"name": "target_number",
"type": 4,
"typeName": "N"
}
]
}
}
}
},
{
"id": 9,
"type": {
"path": [
"sp_consensus_grandpa",
"app",
"Signature"
],
"def": {
"composite": {
"fields": [
{
"type": 10,
"typeName": "ed25519::Signature"
}
]
}
}
}
},
{
"id": 10,
"type": {
"path": [
"sp_core",
"ed25519",
"Signature"
],
"def": {
"composite": {
"fields": [
{
"type": 11,
"typeName": "[u8; 64]"
}
]
}
}
}
},
{
"id": 11,
"type": {
"def": {
"array": {
"len": 64,
"type": 3
}
}
}
},
{
"id": 12,
"type": {
"def": {
"primitive": "u64"
}
}
},
{
"id": 13,
"type": {
"def": {
"tuple": [
8,
9
]
}
}
},
{
"id": 14,
"type": {
"path": [
"finality_grandpa",
"Equivocation"
],
"params": [
{
"name": "Id",
"type": 6
},
{
"name": "V",
"type": 15
},
{
"name": "S",
"type": 9
}
],
"def": {
"composite": {
"fields": [
{
"name": "round_number",
"type": 12,
"typeName": "u64"
},
{
"name": "identity",
"type": 6,
"typeName": "Id"
},
{
"name": "first",
"type": 16,
"typeName": "(V, S)"
},
{
"name": "second",
"type": 16,
"typeName": "(V, S)"
}
]
}
}
}
},
{
"id": 15,
"type": {
"path": [
"finality_grandpa",
"Precommit"
],
"params": [
{
"name": "H",
"type": 1
},
{
"name": "N",
"type": 4
}
],
"def": {
"composite": {
"fields": [
{
"name": "target_hash",
"type": 1,
"typeName": "H"
},
{
"name": "target_number",
"type": 4,
"typeName": "N"
}
]
}
}
}
},
{
"id": 16,
"type": {
"def": {
"tuple": [
15,
9
]
}
}
},
{
"id": 17,
"type": {
"def": {
"array": {
"len": 5,
"type": 18
}
}
}
},
{
"id": 18,
"type": {
"def": {
"tuple": [
19,
21
]
}
}
},
{
"id": 19,
"type": {
"def": {
"compact": {
"type": 20
}
}
}
},
{
"id": 20,
"type": {
"def": {
"primitive": "u16"
}
}
},
{
"id": 21,
"type": {
"def": {
"compact": {
"type": 22
}
}
}
},
{
"id": 22,
"type": {
"path": [
"sp_arithmetic",
"per_things",
"PerU16"
],
"def": {
"composite": {
"fields": [
{
"type": 20,
"typeName": "u16"
}
]
}
}
}
},
{
"id": 23,
"type": {
"path": [
"pallet_multisig",
"Timepoint"
],
"params": [
{
"name": "BlockNumber",
"type": 4
}
],
"def": {
"composite": {
"fields": [
{
"name": "height",
"type": 4,
"typeName": "BlockNumber"
},
{
"name": "index",
"type": 4,
"typeName": "u32"
}
]
}
}
}
},
{
"id": 24,
"type": {
"path": [
"pallet_utility",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "batch",
"fields": [
{
"name": "calls",
"type": 25,
"typeName": "Vec<<T as Config>::RuntimeCall>"
}
],
"index": 0,
"docs": [
"Send a batch of dispatch calls.",
"",
"May be called from any origin except `None`.",
"",
"- `calls`: The calls to be dispatched from the same origin. The number of call must not",
" exceed the constant: `batched_calls_limit` (available in constant metadata).",
"",
"If origin is root then the calls are dispatched without checking origin filter. (This",
"includes bypassing `frame_system::Config::BaseCallFilter`).",
"",
"## Complexity",
"- O(C) where C is the number of calls to be batched.",
"",
"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",
"fields": [
{
"name": "index",
"type": 20,
"typeName": "u16"
},
{
"name": "call",
"type": 26,
"typeName": "Box<<T as Config>::RuntimeCall>"
}
],
"index": 1,
"docs": [
"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",
"fields": [
{
"name": "calls",
"type": 25,
"typeName": "Vec<<T as Config>::RuntimeCall>"
}
],
"index": 2,
"docs": [
"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 except `None`.",
"",
"- `calls`: The calls to be dispatched from the same origin. The number of call must not",
" exceed the constant: `batched_calls_limit` (available in constant metadata).",
"",
"If origin is root then the calls are dispatched without checking origin filter. (This",
"includes bypassing `frame_system::Config::BaseCallFilter`).",
"",
"## Complexity",
"- O(C) where C is the number of calls to be batched."
]
},
{
"name": "dispatch_as",
"fields": [
{
"name": "as_origin",
"type": 271,
"typeName": "Box<T::PalletsOrigin>"
},
{
"name": "call",
"type": 26,
"typeName": "Box<<T as Config>::RuntimeCall>"
}
],
"index": 3,
"docs": [
"Dispatches a function call with a provided origin.",
"",
"The dispatch origin for this call must be _Root_.",
"",
"## Complexity",
"- O(1)."
]
},
{
"name": "force_batch",
"fields": [
{
"name": "calls",
"type": 25,
"typeName": "Vec<<T as Config>::RuntimeCall>"
}
],
"index": 4,
"docs": [
"Send a batch of dispatch calls.",
"Unlike `batch`, it allows errors and won't interrupt.",
"",
"May be called from any origin except `None`.",
"",
"- `calls`: The calls to be dispatched from the same origin. The number of call must not",
" exceed the constant: `batched_calls_limit` (available in constant metadata).",
"",
"If origin is root then the calls are dispatch without checking origin filter. (This",
"includes bypassing `frame_system::Config::BaseCallFilter`).",
"",
"## Complexity",
"- O(C) where C is the number of calls to be batched."
]
},
{
"name": "with_weight",
"fields": [
{
"name": "call",
"type": 26,
"typeName": "Box<<T as Config>::RuntimeCall>"
},
{
"name": "weight",
"type": 144,
"typeName": "Weight"
}
],
"index": 5,
"docs": [
"Dispatch a function call with a specified weight.",
"",
"This function does not check the weight of the call, and instead allows the",
"Root origin to specify the weight of the call.",
"",
"The dispatch origin for this call must be _Root_."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 25,
"type": {
"def": {
"sequence": {
"type": 26
}
}
}
},
{
"id": 26,
"type": {
"path": [
"kitchensink_runtime",
"RuntimeCall"
],
"def": {
"variant": {
"variants": [
{
"name": "System",
"fields": [
{
"type": 27,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<System, Runtime>"
}
],
"index": 0
},
{
"name": "Utility",
"fields": [
{
"type": 24,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Utility, Runtime>"
}
],
"index": 1
},
{
"name": "Babe",
"fields": [
{
"type": 32,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Babe, Runtime>"
}
],
"index": 2
},
{
"name": "Timestamp",
"fields": [
{
"type": 48,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Timestamp, Runtime>"
}
],
"index": 3
},
{
"name": "Indices",
"fields": [
{
"type": 50,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Indices, Runtime>"
}
],
"index": 5
},
{
"name": "Balances",
"fields": [
{
"type": 55,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Balances, Runtime>"
}
],
"index": 6
},
{
"name": "ElectionProviderMultiPhase",
"fields": [
{
"type": 58,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<ElectionProviderMultiPhase, Runtime>"
}
],
"index": 9
},
{
"name": "Staking",
"fields": [
{
"type": 115,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Staking, Runtime>"
}
],
"index": 10
},
{
"name": "Session",
"fields": [
{
"type": 128,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Session, Runtime>"
}
],
"index": 11
},
{
"name": "Democracy",
"fields": [
{
"type": 132,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Democracy, Runtime>"
}
],
"index": 12
},
{
"name": "Council",
"fields": [
{
"type": 140,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Council, Runtime>"
}
],
"index": 13
},
{
"name": "TechnicalCommittee",
"fields": [
{
"type": 145,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<TechnicalCommittee, Runtime>"
}
],
"index": 14
},
{
"name": "Elections",
"fields": [
{
"type": 146,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Elections, Runtime>"
}
],
"index": 15
},
{
"name": "TechnicalMembership",
"fields": [
{
"type": 148,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<TechnicalMembership, Runtime>"
}
],
"index": 16
},
{
"name": "Grandpa",
"fields": [
{
"type": 149,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Grandpa, Runtime>"
}
],
"index": 17
},
{
"name": "Treasury",
"fields": [
{
"type": 151,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Treasury, Runtime>"
}
],
"index": 18
},
{
"name": "Contracts",
"fields": [
{
"type": 152,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Contracts, Runtime>"
}
],
"index": 19
},
{
"name": "Sudo",
"fields": [
{
"type": 155,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Sudo, Runtime>"
}
],
"index": 20
},
{
"name": "ImOnline",
"fields": [
{
"type": 156,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<ImOnline, Runtime>"
}
],
"index": 21
},
{
"name": "Identity",
"fields": [
{
"type": 164,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Identity, Runtime>"
}
],
"index": 26
},
{
"name": "Society",
"fields": [
{
"type": 206,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Society, Runtime>"
}
],
"index": 27
},
{
"name": "Recovery",
"fields": [
{
"type": 208,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Recovery, Runtime>"
}
],
"index": 28
},
{
"name": "Vesting",
"fields": [
{
"type": 209,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Vesting, Runtime>"
}
],
"index": 29
},
{
"name": "Scheduler",
"fields": [
{
"type": 211,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Scheduler, Runtime>"
}
],
"index": 30
},
{
"name": "Glutton",
"fields": [
{
"type": 214,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Glutton, Runtime>"
}
],
"index": 31
},
{
"name": "Preimage",
"fields": [
{
"type": 215,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Preimage, Runtime>"
}
],
"index": 32
},
{
"name": "Proxy",
"fields": [
{
"type": 216,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Proxy, Runtime>"
}
],
"index": 33
},
{
"name": "Multisig",
"fields": [
{
"type": 219,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Multisig, Runtime>"
}
],
"index": 34
},
{
"name": "Bounties",
"fields": [
{
"type": 221,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Bounties, Runtime>"
}
],
"index": 35
},
{
"name": "Tips",
"fields": [
{
"type": 222,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Tips, Runtime>"
}
],
"index": 36
},
{
"name": "Assets",
"fields": [
{
"type": 223,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Assets, Runtime>"
}
],
"index": 37
},
{
"name": "Lottery",
"fields": [
{
"type": 224,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Lottery, Runtime>"
}
],
"index": 39
},
{
"name": "Nis",
"fields": [
{
"type": 225,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Nis, Runtime>"
}
],
"index": 40
},
{
"name": "Uniques",
"fields": [
{
"type": 228,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Uniques, Runtime>"
}
],
"index": 41
},
{
"name": "Nfts",
"fields": [
{
"type": 235,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Nfts, Runtime>"
}
],
"index": 42
},
{
"name": "TransactionStorage",
"fields": [
{
"type": 260,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<TransactionStorage, Runtime>"
}
],
"index": 43
},
{
"name": "VoterList",
"fields": [
{
"type": 262,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<VoterList, Runtime>"
}
],
"index": 44
},
{
"name": "StateTrieMigration",
"fields": [
{
"type": 263,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<StateTrieMigration, Runtime>"
}
],
"index": 45
},
{
"name": "ChildBounties",
"fields": [
{
"type": 269,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<ChildBounties, Runtime>"
}
],
"index": 46
},
{
"name": "Referenda",
"fields": [
{
"type": 270,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Referenda, Runtime>"
}
],
"index": 47
},
{
"name": "Remark",
"fields": [
{
"type": 278,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Remark, Runtime>"
}
],
"index": 48
},
{
"name": "RootTesting",
"fields": [
{
"type": 279,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<RootTesting, Runtime>"
}
],
"index": 49
},
{
"name": "ConvictionVoting",
"fields": [
{
"type": 280,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<ConvictionVoting, Runtime>"
}
],
"index": 50
},
{
"name": "Whitelist",
"fields": [
{
"type": 285,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Whitelist, Runtime>"
}
],
"index": 51
},
{
"name": "AllianceMotion",
"fields": [
{
"type": 286,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<AllianceMotion, Runtime>"
}
],
"index": 52
},
{
"name": "Alliance",
"fields": [
{
"type": 287,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Alliance, Runtime>"
}
],
"index": 53
},
{
"name": "NominationPools",
"fields": [
{
"type": 296,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<NominationPools, Runtime>"
}
],
"index": 54
},
{
"name": "RankedPolls",
"fields": [
{
"type": 303,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<RankedPolls, Runtime>"
}
],
"index": 55
},
{
"name": "RankedCollective",
"fields": [
{
"type": 304,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<RankedCollective, Runtime>"
}
],
"index": 56
},
{
"name": "FastUnstake",
"fields": [
{
"type": 305,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<FastUnstake, Runtime>"
}
],
"index": 57
},
{
"name": "MessageQueue",
"fields": [
{
"type": 306,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<MessageQueue, Runtime>"
}
],
"index": 58
},
{
"name": "Pov",
"fields": [
{
"type": 307,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor<Pov, Runtime>"
}
],
"index": 59
}
]
}
}
}
},
{
"id": 27,
"type": {
"path": [
"frame_system",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "remark",
"fields": [
{
"name": "remark",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 0,
"docs": [
"Make some on-chain remark.",
"",
"## Complexity",
"- `O(1)`"
]
},
{
"name": "set_heap_pages",
"fields": [
{
"name": "pages",
"type": 12,
"typeName": "u64"
}
],
"index": 1,
"docs": [
"Set the number of pages in the WebAssembly environment's heap."
]
},
{
"name": "set_code",
"fields": [
{
"name": "code",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 2,
"docs": [
"Set the new runtime code.",
"",
"## Complexity",
"- `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`"
]
},
{
"name": "set_code_without_checks",
"fields": [
{
"name": "code",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 3,
"docs": [
"Set the new runtime code without doing any checks of the given `code`.",
"",
"## Complexity",
"- `O(C)` where `C` length of `code`"
]
},
{
"name": "set_storage",
"fields": [
{
"name": "items",
"type": 29,
"typeName": "Vec<KeyValue>"
}
],
"index": 4,
"docs": [
"Set some items of storage."
]
},
{
"name": "kill_storage",
"fields": [
{
"name": "keys",
"type": 31,
"typeName": "Vec<Key>"
}
],
"index": 5,
"docs": [
"Kill some items from storage."
]
},
{
"name": "kill_prefix",
"fields": [
{
"name": "prefix",
"type": 28,
"typeName": "Key"
},
{
"name": "subkeys",
"type": 4,
"typeName": "u32"
}
],
"index": 6,
"docs": [
"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."
]
},
{
"name": "remark_with_event",
"fields": [
{
"name": "remark",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 7,
"docs": [
"Make some on-chain remark and emit event."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 28,
"type": {
"def": {
"sequence": {
"type": 3
}
}
}
},
{
"id": 29,
"type": {
"def": {
"sequence": {
"type": 30
}
}
}
},
{
"id": 30,
"type": {
"def": {
"tuple": [
28,
28
]
}
}
},
{
"id": 31,
"type": {
"def": {
"sequence": {
"type": 28
}
}
}
},
{
"id": 32,
"type": {
"path": [
"pallet_babe",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "report_equivocation",
"fields": [
{
"name": "equivocation_proof",
"type": 33,
"typeName": "Box<EquivocationProof<T::Header>>"
},
{
"name": "key_owner_proof",
"type": 44,
"typeName": "T::KeyOwnerProof"
}
],
"index": 0,
"docs": [
"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",
"fields": [
{
"name": "equivocation_proof",
"type": 33,
"typeName": "Box<EquivocationProof<T::Header>>"
},
{
"name": "key_owner_proof",
"type": 44,
"typeName": "T::KeyOwnerProof"
}
],
"index": 1,
"docs": [
"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",
"fields": [
{
"name": "config",
"type": 45,
"typeName": "NextConfigDescriptor"
}
],
"index": 2,
"docs": [
"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."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 33,
"type": {
"path": [
"sp_consensus_slots",
"EquivocationProof"
],
"params": [
{
"name": "Header",
"type": 34
},
{
"name": "Id",
"type": 41
}
],
"def": {
"composite": {
"fields": [
{
"name": "offender",
"type": 41,
"typeName": "Id"
},
{
"name": "slot",
"type": 43,
"typeName": "Slot"
},
{
"name": "first_header",
"type": 34,
"typeName": "Header"
},
{
"name": "second_header",
"type": 34,
"typeName": "Header"
}
]
}
}
}
},
{
"id": 34,
"type": {
"path": [
"sp_runtime",
"generic",
"header",
"Header"
],
"params": [
{
"name": "Number",
"type": 4
},
{
"name": "Hash",
"type": 35
}
],
"def": {
"composite": {
"fields": [
{
"name": "parent_hash",
"type": 1,
"typeName": "Hash::Output"
},
{
"name": "number",
"type": 36,
"typeName": "Number"
},
{
"name": "state_root",
"type": 1,
"typeName": "Hash::Output"
},
{
"name": "extrinsics_root",
"type": 1,
"typeName": "Hash::Output"
},
{
"name": "digest",
"type": 37,
"typeName": "Digest"
}
]
}
}
}
},
{
"id": 35,
"type": {
"path": [
"sp_runtime",
"traits",
"BlakeTwo256"
],
"def": {
"composite": {}
}
}
},
{
"id": 36,
"type": {
"def": {
"compact": {
"type": 4
}
}
}
},
{
"id": 37,
"type": {
"path": [
"sp_runtime",
"generic",
"digest",
"Digest"
],
"def": {
"composite": {
"fields": [
{
"name": "logs",
"type": 38,
"typeName": "Vec<DigestItem>"
}
]
}
}
}
},
{
"id": 38,
"type": {
"def": {
"sequence": {
"type": 39
}
}
}
},
{
"id": 39,
"type": {
"path": [
"sp_runtime",
"generic",
"digest",
"DigestItem"
],
"def": {
"variant": {
"variants": [
{
"name": "PreRuntime",
"fields": [
{
"type": 40,
"typeName": "ConsensusEngineId"
},
{
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 6
},
{
"name": "Consensus",
"fields": [
{
"type": 40,
"typeName": "ConsensusEngineId"
},
{
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 4
},
{
"name": "Seal",
"fields": [
{
"type": 40,
"typeName": "ConsensusEngineId"
},
{
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 5
},
{
"name": "Other",
"fields": [
{
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 0
},
{
"name": "RuntimeEnvironmentUpdated",
"index": 8
}
]
}
}
}
},
{
"id": 40,
"type": {
"def": {
"array": {
"len": 4,
"type": 3
}
}
}
},
{
"id": 41,
"type": {
"path": [
"sp_consensus_babe",
"app",
"Public"
],
"def": {
"composite": {
"fields": [
{
"type": 42,
"typeName": "sr25519::Public"
}
]
}
}
}
},
{
"id": 42,
"type": {
"path": [
"sp_core",
"sr25519",
"Public"
],
"def": {
"composite": {
"fields": [
{
"type": 2,
"typeName": "[u8; 32]"
}
]
}
}
}
},
{
"id": 43,
"type": {
"path": [
"sp_consensus_slots",
"Slot"
],
"def": {
"composite": {
"fields": [
{
"type": 12,
"typeName": "u64"
}
]
}
}
}
},
{
"id": 44,
"type": {
"path": [
"sp_session",
"MembershipProof"
],
"def": {
"composite": {
"fields": [
{
"name": "session",
"type": 4,
"typeName": "SessionIndex"
},
{
"name": "trie_nodes",
"type": 31,
"typeName": "Vec<Vec<u8>>"
},
{
"name": "validator_count",
"type": 4,
"typeName": "ValidatorCount"
}
]
}
}
}
},
{
"id": 45,
"type": {
"path": [
"sp_consensus_babe",
"digests",
"NextConfigDescriptor"
],
"def": {
"variant": {
"variants": [
{
"name": "V1",
"fields": [
{
"name": "c",
"type": 46,
"typeName": "(u64, u64)"
},
{
"name": "allowed_slots",
"type": 47,
"typeName": "AllowedSlots"
}
],
"index": 1
}
]
}
}
}
},
{
"id": 46,
"type": {
"def": {
"tuple": [
12,
12
]
}
}
},
{
"id": 47,
"type": {
"path": [
"sp_consensus_babe",
"AllowedSlots"
],
"def": {
"variant": {
"variants": [
{
"name": "PrimarySlots",
"index": 0
},
{
"name": "PrimaryAndSecondaryPlainSlots",
"index": 1
},
{
"name": "PrimaryAndSecondaryVRFSlots",
"index": 2
}
]
}
}
}
},
{
"id": 48,
"type": {
"path": [
"pallet_timestamp",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "set",
"fields": [
{
"name": "now",
"type": 49,
"typeName": "T::Moment"
}
],
"index": 0,
"docs": [
"Set the current time.",
"",
"This call should be invoked exactly once per block. It will panic at the finalization",
"phase, if this call hasn't been invoked by that time.",
"",
"The timestamp should be greater than the previous one by the amount specified by",
"`MinimumPeriod`.",
"",
"The dispatch origin for this call must be `Inherent`.",
"",
"## Complexity",
"- `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)`."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 49,
"type": {
"def": {
"compact": {
"type": 12
}
}
}
},
{
"id": 50,
"type": {
"path": [
"pallet_indices",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "claim",
"fields": [
{
"name": "index",
"type": 4,
"typeName": "T::AccountIndex"
}
],
"index": 0,
"docs": [
"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.",
"",
"## Complexity",
"- `O(1)`."
]
},
{
"name": "transfer",
"fields": [
{
"name": "new",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "index",
"type": 4,
"typeName": "T::AccountIndex"
}
],
"index": 1,
"docs": [
"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.",
"",
"## Complexity",
"- `O(1)`."
]
},
{
"name": "free",
"fields": [
{
"name": "index",
"type": 4,
"typeName": "T::AccountIndex"
}
],
"index": 2,
"docs": [
"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.",
"",
"## Complexity",
"- `O(1)`."
]
},
{
"name": "force_transfer",
"fields": [
{
"name": "new",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "index",
"type": 4,
"typeName": "T::AccountIndex"
},
{
"name": "freeze",
"type": 54,
"typeName": "bool"
}
],
"index": 3,
"docs": [
"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.",
"",
"## Complexity",
"- `O(1)`."
]
},
{
"name": "freeze",
"fields": [
{
"name": "index",
"type": 4,
"typeName": "T::AccountIndex"
}
],
"index": 4,
"docs": [
"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.",
"",
"## Complexity",
"- `O(1)`."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 51,
"type": {
"path": [
"sp_runtime",
"multiaddress",
"MultiAddress"
],
"params": [
{
"name": "AccountId",
"type": 52
},
{
"name": "AccountIndex",
"type": 4
}
],
"def": {
"variant": {
"variants": [
{
"name": "Id",
"fields": [
{
"type": 52,
"typeName": "AccountId"
}
],
"index": 0
},
{
"name": "Index",
"fields": [
{
"type": 36,
"typeName": "AccountIndex"
}
],
"index": 1
},
{
"name": "Raw",
"fields": [
{
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 2
},
{
"name": "Address32",
"fields": [
{
"type": 2,
"typeName": "[u8; 32]"
}
],
"index": 3
},
{
"name": "Address20",
"fields": [
{
"type": 53,
"typeName": "[u8; 20]"
}
],
"index": 4
}
]
}
}
}
},
{
"id": 52,
"type": {
"path": [
"sp_core",
"crypto",
"AccountId32"
],
"def": {
"composite": {
"fields": [
{
"type": 2,
"typeName": "[u8; 32]"
}
]
}
}
}
},
{
"id": 53,
"type": {
"def": {
"array": {
"len": 20,
"type": 3
}
}
}
},
{
"id": 54,
"type": {
"def": {
"primitive": "bool"
}
}
},
{
"id": 55,
"type": {
"path": [
"pallet_balances",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "transfer",
"fields": [
{
"name": "dest",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "value",
"type": 56,
"typeName": "T::Balance"
}
],
"index": 0,
"docs": [
"Transfer some liquid free balance to another account.",
"",
"`transfer` will set the `FreeBalance` of the sender and receiver.",
"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.",
"",
"## Complexity",
"- 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."
]
},
{
"name": "set_balance",
"fields": [
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "new_free",
"type": 56,
"typeName": "T::Balance"
},
{
"name": "new_reserved",
"type": 56,
"typeName": "T::Balance"
}
],
"index": 1,
"docs": [
"Set the balances of a given account.",
"",
"This will alter `FreeBalance` and `ReservedBalance` in storage. it will",
"also alter the total issuance of the system (`TotalIssuance`) appropriately.",
"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`."
]
},
{
"name": "force_transfer",
"fields": [
{
"name": "source",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "dest",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "value",
"type": 56,
"typeName": "T::Balance"
}
],
"index": 2,
"docs": [
"Exactly as `transfer`, except the origin must be root and the source account may be",
"specified.",
"## Complexity",
"- Same as transfer, but additional read and write because the source account is not",
" assumed to be in the overlay."
]
},
{
"name": "transfer_keep_alive",
"fields": [
{
"name": "dest",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "value",
"type": 56,
"typeName": "T::Balance"
}
],
"index": 3,
"docs": [
"Same as the [`transfer`] call, but with a check that the transfer will not kill the",
"origin account.",
"",
"99% of the time you want [`transfer`] instead.",
"",
"[`transfer`]: struct.Pallet.html#method.transfer"
]
},
{
"name": "transfer_all",
"fields": [
{
"name": "dest",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "keep_alive",
"type": 54,
"typeName": "bool"
}
],
"index": 4,
"docs": [
"Transfer the entire transferable balance from the caller account.",
"",
"NOTE: This function only attempts to transfer _transferable_ balances. This means that",
"any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be",
"transferred by this function. To ensure that this function results in a killed account,",
"you might need to prepare the account by removing any reference counters, storage",
"deposits, etc...",
"",
"The dispatch origin of this call must be Signed.",
"",
"- `dest`: The recipient of the transfer.",
"- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all",
" of the funds the account has, causing the sender account to be killed (false), or",
" transfer everything except at least the existential deposit, which will guarantee to",
" keep the sender account alive (true). ## Complexity",
"- O(1). Just like transfer, but reading the user's transferable balance first."
]
},
{
"name": "force_unreserve",
"fields": [
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "amount",
"type": 57,
"typeName": "T::Balance"
}
],
"index": 5,
"docs": [
"Unreserve some balance from a user by force.",
"",
"Can only be called by ROOT."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 56,
"type": {
"def": {
"compact": {
"type": 57
}
}
}
},
{
"id": 57,
"type": {
"def": {
"primitive": "u128"
}
}
},
{
"id": 58,
"type": {
"path": [
"pallet_election_provider_multi_phase",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "submit_unsigned",
"fields": [
{
"name": "raw_solution",
"type": 59,
"typeName": "Box<RawSolution<SolutionOf<T::MinerConfig>>>"
},
{
"name": "witness",
"type": 107,
"typeName": "SolutionOrSnapshotSize"
}
],
"index": 0,
"docs": [
"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."
]
},
{
"name": "set_minimum_untrusted_score",
"fields": [
{
"name": "maybe_next_score",
"type": 108,
"typeName": "Option<ElectionScore>"
}
],
"index": 1,
"docs": [
"Set a new value for `MinimumUntrustedScore`.",
"",
"Dispatch origin must be aligned with `T::ForceOrigin`.",
"",
"This check can be turned off by setting the value to `None`."
]
},
{
"name": "set_emergency_election_result",
"fields": [
{
"name": "supports",
"type": 109,
"typeName": "Supports<T::AccountId>"
}
],
"index": 2,
"docs": [
"Set a solution in the queue, to be handed out to the client of this pallet in the next",
"call to `ElectionProvider::elect`.",
"",
"This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`.",
"",
"The solution is not checked for any feasibility and is assumed to be trustworthy, as any",
"feasibility check itself can in principle cause the election process to fail (due to",
"memory/weight constrains)."
]
},
{
"name": "submit",
"fields": [
{
"name": "raw_solution",
"type": 59,
"typeName": "Box<RawSolution<SolutionOf<T::MinerConfig>>>"
}
],
"index": 3,
"docs": [
"Submit a solution for the signed phase.",
"",
"The dispatch origin fo this call must be __signed__.",
"",
"The solution is potentially queued, based on the claimed score and processed at the end",
"of the signed phase.",
"",
"A deposit is reserved and recorded for the solution. Based on the outcome, the solution",
"might be rewarded, slashed, or get all or a part of the deposit back."
]
},
{
"name": "governance_fallback",
"fields": [
{
"name": "maybe_max_voters",
"type": 114,
"typeName": "Option<u32>"
},
{
"name": "maybe_max_targets",
"type": 114,
"typeName": "Option<u32>"
}
],
"index": 4,
"docs": [
"Trigger the governance fallback.",
"",
"This can only be called when [`Phase::Emergency`] is enabled, as an alternative to",
"calling [`Call::set_emergency_election_result`]."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 59,
"type": {
"path": [
"pallet_election_provider_multi_phase",
"RawSolution"
],
"params": [
{
"name": "S",
"type": 60
}
],
"def": {
"composite": {
"fields": [
{
"name": "solution",
"type": 60,
"typeName": "S"
},
{
"name": "score",
"type": 106,
"typeName": "ElectionScore"
},
{
"name": "round",
"type": 4,
"typeName": "u32"
}
]
}
}
}
},
{
"id": 60,
"type": {
"path": [
"kitchensink_runtime",
"NposSolution16"
],
"def": {
"composite": {
"fields": [
{
"name": "votes1",
"type": 61
},
{
"name": "votes2",
"type": 63
},
{
"name": "votes3",
"type": 65
},
{
"name": "votes4",
"type": 68
},
{
"name": "votes5",
"type": 71
},
{
"name": "votes6",
"type": 74
},
{
"name": "votes7",
"type": 76
},
{
"name": "votes8",
"type": 79
},
{
"name": "votes9",
"type": 82
},
{
"name": "votes10",
"type": 85
},
{
"name": "votes11",
"type": 88
},
{
"name": "votes12",
"type": 91
},
{
"name": "votes13",
"type": 94
},
{
"name": "votes14",
"type": 97
},
{
"name": "votes15",
"type": 100
},
{
"name": "votes16",
"type": 103
}
]
}
}
}
},
{
"id": 61,
"type": {
"def": {
"sequence": {
"type": 62
}
}
}
},
{
"id": 62,
"type": {
"def": {
"tuple": [
36,
19
]
}
}
},
{
"id": 63,
"type": {
"def": {
"sequence": {
"type": 64
}
}
}
},
{
"id": 64,
"type": {
"def": {
"tuple": [
36,
18,
19
]
}
}
},
{
"id": 65,
"type": {
"def": {
"sequence": {
"type": 66
}
}
}
},
{
"id": 66,
"type": {
"def": {
"tuple": [
36,
67,
19
]
}
}
},
{
"id": 67,
"type": {
"def": {
"array": {
"len": 2,
"type": 18
}
}
}
},
{
"id": 68,
"type": {
"def": {
"sequence": {
"type": 69
}
}
}
},
{
"id": 69,
"type": {
"def": {
"tuple": [
36,
70,
19
]
}
}
},
{
"id": 70,
"type": {
"def": {
"array": {
"len": 3,
"type": 18
}
}
}
},
{
"id": 71,
"type": {
"def": {
"sequence": {
"type": 72
}
}
}
},
{
"id": 72,
"type": {
"def": {
"tuple": [
36,
73,
19
]
}
}
},
{
"id": 73,
"type": {
"def": {
"array": {
"len": 4,
"type": 18
}
}
}
},
{
"id": 74,
"type": {
"def": {
"sequence": {
"type": 75
}
}
}
},
{
"id": 75,
"type": {
"def": {
"tuple": [
36,
17,
19
]
}
}
},
{
"id": 76,
"type": {
"def": {
"sequence": {
"type": 77
}
}
}
},
{
"id": 77,
"type": {
"def": {
"tuple": [
36,
78,
19
]
}
}
},
{
"id": 78,
"type": {
"def": {
"array": {
"len": 6,
"type": 18
}
}
}
},
{
"id": 79,
"type": {
"def": {
"sequence": {
"type": 80
}
}
}
},
{
"id": 80,
"type": {
"def": {
"tuple": [
36,
81,
19
]
}
}
},
{
"id": 81,
"type": {
"def": {
"array": {
"len": 7,
"type": 18
}
}
}
},
{
"id": 82,
"type": {
"def": {
"sequence": {
"type": 83
}
}
}
},
{
"id": 83,
"type": {
"def": {
"tuple": [
36,
84,
19
]
}
}
},
{
"id": 84,
"type": {
"def": {
"array": {
"len": 8,
"type": 18
}
}
}
},
{
"id": 85,
"type": {
"def": {
"sequence": {
"type": 86
}
}
}
},
{
"id": 86,
"type": {
"def": {
"tuple": [
36,
87,
19
]
}
}
},
{
"id": 87,
"type": {
"def": {
"array": {
"len": 9,
"type": 18
}
}
}
},
{
"id": 88,
"type": {
"def": {
"sequence": {
"type": 89
}
}
}
},
{
"id": 89,
"type": {
"def": {
"tuple": [
36,
90,
19
]
}
}
},
{
"id": 90,
"type": {
"def": {
"array": {
"len": 10,
"type": 18
}
}
}
},
{
"id": 91,
"type": {
"def": {
"sequence": {
"type": 92
}
}
}
},
{
"id": 92,
"type": {
"def": {
"tuple": [
36,
93,
19
]
}
}
},
{
"id": 93,
"type": {
"def": {
"array": {
"len": 11,
"type": 18
}
}
}
},
{
"id": 94,
"type": {
"def": {
"sequence": {
"type": 95
}
}
}
},
{
"id": 95,
"type": {
"def": {
"tuple": [
36,
96,
19
]
}
}
},
{
"id": 96,
"type": {
"def": {
"array": {
"len": 12,
"type": 18
}
}
}
},
{
"id": 97,
"type": {
"def": {
"sequence": {
"type": 98
}
}
}
},
{
"id": 98,
"type": {
"def": {
"tuple": [
36,
99,
19
]
}
}
},
{
"id": 99,
"type": {
"def": {
"array": {
"len": 13,
"type": 18
}
}
}
},
{
"id": 100,
"type": {
"def": {
"sequence": {
"type": 101
}
}
}
},
{
"id": 101,
"type": {
"def": {
"tuple": [
36,
102,
19
]
}
}
},
{
"id": 102,
"type": {
"def": {
"array": {
"len": 14,
"type": 18
}
}
}
},
{
"id": 103,
"type": {
"def": {
"sequence": {
"type": 104
}
}
}
},
{
"id": 104,
"type": {
"def": {
"tuple": [
36,
105,
19
]
}
}
},
{
"id": 105,
"type": {
"def": {
"array": {
"len": 15,
"type": 18
}
}
}
},
{
"id": 106,
"type": {
"path": [
"sp_npos_elections",
"ElectionScore"
],
"def": {
"composite": {
"fields": [
{
"name": "minimal_stake",
"type": 57,
"typeName": "ExtendedBalance"
},
{
"name": "sum_stake",
"type": 57,
"typeName": "ExtendedBalance"
},
{
"name": "sum_stake_squared",
"type": 57,
"typeName": "ExtendedBalance"
}
]
}
}
}
},
{
"id": 107,
"type": {
"path": [
"pallet_election_provider_multi_phase",
"SolutionOrSnapshotSize"
],
"def": {
"composite": {
"fields": [
{
"name": "voters",
"type": 36,
"typeName": "u32"
},
{
"name": "targets",
"type": 36,
"typeName": "u32"
}
]
}
}
}
},
{
"id": 108,
"type": {
"path": [
"Option"
],
"params": [
{
"name": "T",
"type": 106
}
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Some",
"fields": [
{
"type": 106
}
],
"index": 1
}
]
}
}
}
},
{
"id": 109,
"type": {
"def": {
"sequence": {
"type": 110
}
}
}
},
{
"id": 110,
"type": {
"def": {
"tuple": [
52,
111
]
}
}
},
{
"id": 111,
"type": {
"path": [
"sp_npos_elections",
"Support"
],
"params": [
{
"name": "AccountId",
"type": 52
}
],
"def": {
"composite": {
"fields": [
{
"name": "total",
"type": 57,
"typeName": "ExtendedBalance"
},
{
"name": "voters",
"type": 112,
"typeName": "Vec<(AccountId, ExtendedBalance)>"
}
]
}
}
}
},
{
"id": 112,
"type": {
"def": {
"sequence": {
"type": 113
}
}
}
},
{
"id": 113,
"type": {
"def": {
"tuple": [
52,
57
]
}
}
},
{
"id": 114,
"type": {
"path": [
"Option"
],
"params": [
{
"name": "T",
"type": 4
}
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Some",
"fields": [
{
"type": 4
}
],
"index": 1
}
]
}
}
}
},
{
"id": 115,
"type": {
"path": [
"pallet_staking",
"pallet",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "bond",
"fields": [
{
"name": "controller",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "value",
"type": 56,
"typeName": "BalanceOf<T>"
},
{
"name": "payee",
"type": 116,
"typeName": "RewardDestination<T::AccountId>"
}
],
"index": 0,
"docs": [
"Take the origin account as a stash and lock up `value` of its balance. `controller` will",
"be the account that controls it.",
"",
"`value` must be more than the `minimum_balance` specified by `T::Currency`.",
"",
"The dispatch origin for this call must be _Signed_ by the stash account.",
"",
"Emits `Bonded`.",
"## Complexity",
"- 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."
]
},
{
"name": "bond_extra",
"fields": [
{
"name": "max_additional",
"type": 56,
"typeName": "BalanceOf<T>"
}
],
"index": 1,
"docs": [
"Add some extra amount that have appeared in the stash `free_balance` into the balance up",
"for staking.",
"",
"The dispatch origin for this call must be _Signed_ by the stash, not the controller.",
"",
"Use this if there are additional funds in your stash account that you wish to bond.",
"Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose",
"any limitation on the amount that can be added.",
"",
"Emits `Bonded`.",
"",
"## Complexity",
"- Independent of the arguments. Insignificant complexity.",
"- O(1)."
]
},
{
"name": "unbond",
"fields": [
{
"name": "value",
"type": 56,
"typeName": "BalanceOf<T>"
}
],
"index": 2,
"docs": [
"Schedule a portion of the stash to be unlocked ready for transfer out after the bond",
"period ends. If this leaves an amount actively bonded less than",
"T::Currency::minimum_balance(), then it is increased to the full amount.",
"",
"The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
"",
"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 `MaxUnlockingChunks`)",
"can co-exists at the same time. If there are no unlocking chunks slots available",
"[`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible).",
"",
"If a user encounters the `InsufficientBond` error when calling this extrinsic,",
"they should call `chill` first in order to free up their bonded funds.",
"",
"Emits `Unbonded`.",
"",
"See also [`Call::withdraw_unbonded`]."
]
},
{
"name": "withdraw_unbonded",
"fields": [
{
"name": "num_slashing_spans",
"type": 4,
"typeName": "u32"
}
],
"index": 3,
"docs": [
"Remove any unlocked chunks from the `unlocking` queue from our management.",
"",
"This essentially frees up that balance to be used by the stash account to do",
"whatever it wants.",
"",
"The dispatch origin for this call must be _Signed_ by the controller.",
"",
"Emits `Withdrawn`.",
"",
"See also [`Call::unbond`].",
"",
"## Complexity",
"O(S) where S is the number of slashing spans to remove",
"NOTE: Weight annotation is the kill scenario, we refund otherwise."
]
},
{
"name": "validate",
"fields": [
{
"name": "prefs",
"type": 117,
"typeName": "ValidatorPrefs"
}
],
"index": 4,
"docs": [
"Declare the desire to validate for the origin controller.",
"",
"Effects will be felt at the beginning of the next era.",
"",
"The dispatch origin for this call must be _Signed_ by the controller, not the stash."
]
},
{
"name": "nominate",
"fields": [
{
"name": "targets",
"type": 120,
"typeName": "Vec<AccountIdLookupOf<T>>"
}
],
"index": 5,
"docs": [
"Declare the desire to nominate `targets` for the origin controller.",
"",
"Effects will be felt at the beginning of the next era.",
"",
"The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
"",
"## Complexity",
"- The transaction's complexity is proportional to the size of `targets` (N)",
"which is capped at CompactAssignments::LIMIT (T::MaxNominations).",
"- Both the reads and writes follow a similar pattern."
]
},
{
"name": "chill",
"index": 6,
"docs": [
"Declare no desire to either validate or nominate.",
"",
"Effects will be felt at the beginning of the next era.",
"",
"The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
"",
"## Complexity",
"- Independent of the arguments. Insignificant complexity.",
"- Contains one read.",
"- Writes are limited to the `origin` account key."
]
},
{
"name": "set_payee",
"fields": [
{
"name": "payee",
"type": 116,
"typeName": "RewardDestination<T::AccountId>"
}
],
"index": 7,
"docs": [
"(Re-)set the payment target for a controller.",
"",
"Effects will be felt instantly (as soon as this function is completed successfully).",
"",
"The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
"",
"## Complexity",
"- O(1)",
"- Independent of the arguments. Insignificant complexity.",
"- Contains a limited number of reads.",
"- Writes are limited to the `origin` account key.",
"---------"
]
},
{
"name": "set_controller",
"fields": [
{
"name": "controller",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 8,
"docs": [
"(Re-)set the controller of a stash.",
"",
"Effects will be felt instantly (as soon as this function is completed successfully).",
"",
"The dispatch origin for this call must be _Signed_ by the stash, not the controller.",
"",
"## Complexity",
"O(1)",
"- Independent of the arguments. Insignificant complexity.",
"- Contains a limited number of reads.",
"- Writes are limited to the `origin` account key."
]
},
{
"name": "set_validator_count",
"fields": [
{
"name": "new",
"type": 36,
"typeName": "u32"
}
],
"index": 9,
"docs": [
"Sets the ideal number of validators.",
"",
"The dispatch origin must be Root.",
"",
"## Complexity",
"O(1)"
]
},
{
"name": "increase_validator_count",
"fields": [
{
"name": "additional",
"type": 36,
"typeName": "u32"
}
],
"index": 10,
"docs": [
"Increments the ideal number of validators upto maximum of",
"`ElectionProviderBase::MaxWinners`.",
"",
"The dispatch origin must be Root.",
"",
"## Complexity",
"Same as [`Self::set_validator_count`]."
]
},
{
"name": "scale_validator_count",
"fields": [
{
"name": "factor",
"type": 121,
"typeName": "Percent"
}
],
"index": 11,
"docs": [
"Scale up the ideal number of validators by a factor upto maximum of",
"`ElectionProviderBase::MaxWinners`.",
"",
"The dispatch origin must be Root.",
"",
"## Complexity",
"Same as [`Self::set_validator_count`]."
]
},
{
"name": "force_no_eras",
"index": 12,
"docs": [
"Force there to be no new eras indefinitely.",
"",
"The dispatch origin must be Root.",
"",
"# Warning",
"",
"The election process starts multiple blocks before the end of the era.",
"Thus the election process may be ongoing when this is called. In this case the",
"election will continue until the next era is triggered.",
"",
"## Complexity",
"- No arguments.",
"- Weight: O(1)"
]
},
{
"name": "force_new_era",
"index": 13,
"docs": [
"Force there to be a new era at the end of the next session. After this, it will be",
"reset to normal (non-forced) behaviour.",
"",
"The dispatch origin must be Root.",
"",
"# Warning",
"",
"The election process starts multiple blocks before the end of the era.",
"If this is called just before a new era is triggered, the election process may not",
"have enough blocks to get a result.",
"",
"## Complexity",
"- No arguments.",
"- Weight: O(1)"
]
},
{
"name": "set_invulnerables",
"fields": [
{
"name": "invulnerables",
"type": 122,
"typeName": "Vec<T::AccountId>"
}
],
"index": 14,
"docs": [
"Set the validators who cannot be slashed (if any).",
"",
"The dispatch origin must be Root."
]
},
{
"name": "force_unstake",
"fields": [
{
"name": "stash",
"type": 52,
"typeName": "T::AccountId"
},
{
"name": "num_slashing_spans",
"type": 4,
"typeName": "u32"
}
],
"index": 15,
"docs": [
"Force a current staker to become completely unstaked, immediately.",
"",
"The dispatch origin must be Root."
]
},
{
"name": "force_new_era_always",
"index": 16,
"docs": [
"Force there to be a new era at the end of sessions indefinitely.",
"",
"The dispatch origin must be Root.",
"",
"# Warning",
"",
"The election process starts multiple blocks before the end of the era.",
"If this is called just before a new era is triggered, the election process may not",
"have enough blocks to get a result."
]
},
{
"name": "cancel_deferred_slash",
"fields": [
{
"name": "era",
"type": 4,
"typeName": "EraIndex"
},
{
"name": "slash_indices",
"type": 123,
"typeName": "Vec<u32>"
}
],
"index": 17,
"docs": [
"Cancel enactment of a deferred slash.",
"",
"Can be called by the `T::AdminOrigin`.",
"",
"Parameters: era and indices of the slashes for that era to kill."
]
},
{
"name": "payout_stakers",
"fields": [
{
"name": "validator_stash",
"type": 52,
"typeName": "T::AccountId"
},
{
"name": "era",
"type": 4,
"typeName": "EraIndex"
}
],
"index": 18,
"docs": [
"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.",
"",
"## Complexity",
"- At most O(MaxNominatorRewardedPerValidator)."
]
},
{
"name": "rebond",
"fields": [
{
"name": "value",
"type": 56,
"typeName": "BalanceOf<T>"
}
],
"index": 19,
"docs": [
"Rebond a portion of the stash scheduled to be unlocked.",
"",
"The dispatch origin must be signed by the controller.",
"",
"## Complexity",
"- Time complexity: O(L), where L is unlocking chunks",
"- Bounded by `MaxUnlockingChunks`."
]
},
{
"name": "reap_stash",
"fields": [
{
"name": "stash",
"type": 52,
"typeName": "T::AccountId"
},
{
"name": "num_slashing_spans",
"type": 4,
"typeName": "u32"
}
],
"index": 20,
"docs": [
"Remove all data structures concerning a staker/stash once it is at a state where it can",
"be considered `dust` in the staking system. The requirements are:",
"",
"1. the `total_balance` of the stash is below existential deposit.",
"2. or, the `ledger.total` of the stash is below existential deposit.",
"",
"The former can happen in cases like a slash; the latter when a fully unbonded account",
"is still receiving staking rewards in `RewardDestination::Staked`.",
"",
"It can be called by anyone, as long as `stash` meets the above requirements.",
"",
"Refunds the transaction fees upon successful execution."
]
},
{
"name": "kick",
"fields": [
{
"name": "who",
"type": 120,
"typeName": "Vec<AccountIdLookupOf<T>>"
}
],
"index": 21,
"docs": [
"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.",
"",
"- `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."
]
},
{
"name": "set_staking_configs",
"fields": [
{
"name": "min_nominator_bond",
"type": 124,
"typeName": "ConfigOp<BalanceOf<T>>"
},
{
"name": "min_validator_bond",
"type": 124,
"typeName": "ConfigOp<BalanceOf<T>>"
},
{
"name": "max_nominator_count",
"type": 125,
"typeName": "ConfigOp<u32>"
},
{
"name": "max_validator_count",
"type": 125,
"typeName": "ConfigOp<u32>"
},
{
"name": "chill_threshold",
"type": 126,
"typeName": "ConfigOp<Percent>"
},
{
"name": "min_commission",
"type": 127,
"typeName": "ConfigOp<Perbill>"
}
],
"index": 22,
"docs": [
"Update the various staking configurations .",
"",
"* `min_nominator_bond`: The minimum active bond needed to be a nominator.",
"* `min_validator_bond`: The minimum active bond needed to be a validator.",
"* `max_nominator_count`: The max number of users who can be a nominator at once. When",
" set to `None`, no limit is enforced.",
"* `max_validator_count`: The max number of users who can be a validator at once. When",
" set to `None`, no limit is enforced.",
"* `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which",
" should be filled in order for the `chill_other` transaction to work.",
"* `min_commission`: The minimum amount of commission that each validators must maintain.",
" This is checked only upon calling `validate`. Existing validators are not affected.",
"",
"RuntimeOrigin must be Root to call this function.",
"",
"NOTE: Existing nominators and validators will not be affected by this update.",
"to kick people under the new limits, `chill_other` should be called."
]
},
{
"name": "chill_other",
"fields": [
{
"name": "controller",
"type": 52,
"typeName": "T::AccountId"
}
],
"index": 23,
"docs": [
"Declare a `controller` to stop participating as either a validator or nominator.",
"",
"Effects will be felt at the beginning of the next era.",
"",
"The dispatch origin for this call must be _Signed_, but can be called by anyone.",
"",
"If the caller is the same as the controller being targeted, then no further checks are",
"enforced, and this function behaves just like `chill`.",
"",
"If the caller is different than the controller being targeted, the following conditions",
"must be met:",
"",
"* `controller` must belong to a nominator who has become non-decodable,",
"",
"Or:",
"",
"* A `ChillThreshold` must be set and checked which defines how close to the max",
" nominators or validators we must reach before users can start chilling one-another.",
"* A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine",
" how close we are to the threshold.",
"* A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines",
" if this is a person that should be chilled because they have not met the threshold",
" bond required.",
"",
"This can be helpful if bond requirements are updated, and we need to remove old users",
"who do not satisfy these requirements."
]
},
{
"name": "force_apply_min_commission",
"fields": [
{
"name": "validator_stash",
"type": 52,
"typeName": "T::AccountId"
}
],
"index": 24,
"docs": [
"Force a validator to have at least the minimum commission. This will not affect a",
"validator who already has a commission greater than or equal to the minimum. Any account",
"can call this."
]
},
{
"name": "set_min_commission",
"fields": [
{
"name": "new",
"type": 119,
"typeName": "Perbill"
}
],
"index": 25,
"docs": [
"Sets the minimum amount of commission that each validators must maintain.",
"",
"This call has lower privilege requirements than `set_staking_config` and can be called",
"by the `T::AdminOrigin`. Root can always call this."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 116,
"type": {
"path": [
"pallet_staking",
"RewardDestination"
],
"params": [
{
"name": "AccountId",
"type": 52
}
],
"def": {
"variant": {
"variants": [
{
"name": "Staked",
"index": 0
},
{
"name": "Stash",
"index": 1
},
{
"name": "Controller",
"index": 2
},
{
"name": "Account",
"fields": [
{
"type": 52,
"typeName": "AccountId"
}
],
"index": 3
},
{
"name": "None",
"index": 4
}
]
}
}
}
},
{
"id": 117,
"type": {
"path": [
"pallet_staking",
"ValidatorPrefs"
],
"def": {
"composite": {
"fields": [
{
"name": "commission",
"type": 118,
"typeName": "Perbill"
},
{
"name": "blocked",
"type": 54,
"typeName": "bool"
}
]
}
}
}
},
{
"id": 118,
"type": {
"def": {
"compact": {
"type": 119
}
}
}
},
{
"id": 119,
"type": {
"path": [
"sp_arithmetic",
"per_things",
"Perbill"
],
"def": {
"composite": {
"fields": [
{
"type": 4,
"typeName": "u32"
}
]
}
}
}
},
{
"id": 120,
"type": {
"def": {
"sequence": {
"type": 51
}
}
}
},
{
"id": 121,
"type": {
"path": [
"sp_arithmetic",
"per_things",
"Percent"
],
"def": {
"composite": {
"fields": [
{
"type": 3,
"typeName": "u8"
}
]
}
}
}
},
{
"id": 122,
"type": {
"def": {
"sequence": {
"type": 52
}
}
}
},
{
"id": 123,
"type": {
"def": {
"sequence": {
"type": 4
}
}
}
},
{
"id": 124,
"type": {
"path": [
"pallet_staking",
"pallet",
"pallet",
"ConfigOp"
],
"params": [
{
"name": "T",
"type": 57
}
],
"def": {
"variant": {
"variants": [
{
"name": "Noop",
"index": 0
},
{
"name": "Set",
"fields": [
{
"type": 57,
"typeName": "T"
}
],
"index": 1
},
{
"name": "Remove",
"index": 2
}
]
}
}
}
},
{
"id": 125,
"type": {
"path": [
"pallet_staking",
"pallet",
"pallet",
"ConfigOp"
],
"params": [
{
"name": "T",
"type": 4
}
],
"def": {
"variant": {
"variants": [
{
"name": "Noop",
"index": 0
},
{
"name": "Set",
"fields": [
{
"type": 4,
"typeName": "T"
}
],
"index": 1
},
{
"name": "Remove",
"index": 2
}
]
}
}
}
},
{
"id": 126,
"type": {
"path": [
"pallet_staking",
"pallet",
"pallet",
"ConfigOp"
],
"params": [
{
"name": "T",
"type": 121
}
],
"def": {
"variant": {
"variants": [
{
"name": "Noop",
"index": 0
},
{
"name": "Set",
"fields": [
{
"type": 121,
"typeName": "T"
}
],
"index": 1
},
{
"name": "Remove",
"index": 2
}
]
}
}
}
},
{
"id": 127,
"type": {
"path": [
"pallet_staking",
"pallet",
"pallet",
"ConfigOp"
],
"params": [
{
"name": "T",
"type": 119
}
],
"def": {
"variant": {
"variants": [
{
"name": "Noop",
"index": 0
},
{
"name": "Set",
"fields": [
{
"type": 119,
"typeName": "T"
}
],
"index": 1
},
{
"name": "Remove",
"index": 2
}
]
}
}
}
},
{
"id": 128,
"type": {
"path": [
"pallet_session",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "set_keys",
"fields": [
{
"name": "keys",
"type": 129,
"typeName": "T::Keys"
},
{
"name": "proof",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 0,
"docs": [
"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.",
"",
"## Complexity",
"- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is",
" fixed."
]
},
{
"name": "purge_keys",
"index": 1,
"docs": [
"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 and the account must be either be",
"convertible to a validator ID using the chain's typical addressing system (this usually",
"means being a controller account) or directly convertible into a validator ID (which",
"usually means being a stash account).",
"",
"## Complexity",
"- `O(1)` in number of key types. Actual cost depends on the number of length of",
" `T::Keys::key_ids()` which is fixed."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 129,
"type": {
"path": [
"kitchensink_runtime",
"SessionKeys"
],
"def": {
"composite": {
"fields": [
{
"name": "grandpa",
"type": 6,
"typeName": "<Grandpa as $crate::BoundToRuntimeAppPublic>::Public"
},
{
"name": "babe",
"type": 41,
"typeName": "<Babe as $crate::BoundToRuntimeAppPublic>::Public"
},
{
"name": "im_online",
"type": 130,
"typeName": "<ImOnline as $crate::BoundToRuntimeAppPublic>::Public"
},
{
"name": "authority_discovery",
"type": 131,
"typeName": "<AuthorityDiscovery as $crate::BoundToRuntimeAppPublic>::Public"
}
]
}
}
}
},
{
"id": 130,
"type": {
"path": [
"pallet_im_online",
"sr25519",
"app_sr25519",
"Public"
],
"def": {
"composite": {
"fields": [
{
"type": 42,
"typeName": "sr25519::Public"
}
]
}
}
}
},
{
"id": 131,
"type": {
"path": [
"sp_authority_discovery",
"app",
"Public"
],
"def": {
"composite": {
"fields": [
{
"type": 42,
"typeName": "sr25519::Public"
}
]
}
}
}
},
{
"id": 132,
"type": {
"path": [
"pallet_democracy",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "propose",
"fields": [
{
"name": "proposal",
"type": 133,
"typeName": "BoundedCallOf<T>"
},
{
"name": "value",
"type": 56,
"typeName": "BalanceOf<T>"
}
],
"index": 0,
"docs": [
"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`."
]
},
{
"name": "second",
"fields": [
{
"name": "proposal",
"type": 36,
"typeName": "PropIndex"
}
],
"index": 1,
"docs": [
"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."
]
},
{
"name": "vote",
"fields": [
{
"name": "ref_index",
"type": 36,
"typeName": "ReferendumIndex"
},
{
"name": "vote",
"type": 135,
"typeName": "AccountVote<BalanceOf<T>>"
}
],
"index": 2,
"docs": [
"Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;",
"otherwise it is a vote to keep the status quo.",
"",
"The dispatch origin of this call must be _Signed_.",
"",
"- `ref_index`: The index of the referendum to vote for.",
"- `vote`: The vote configuration."
]
},
{
"name": "emergency_cancel",
"fields": [
{
"name": "ref_index",
"type": 4,
"typeName": "ReferendumIndex"
}
],
"index": 3,
"docs": [
"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",
"fields": [
{
"name": "proposal",
"type": 133,
"typeName": "BoundedCallOf<T>"
}
],
"index": 4,
"docs": [
"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."
]
},
{
"name": "external_propose_majority",
"fields": [
{
"name": "proposal",
"type": 133,
"typeName": "BoundedCallOf<T>"
}
],
"index": 5,
"docs": [
"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",
"fields": [
{
"name": "proposal",
"type": 133,
"typeName": "BoundedCallOf<T>"
}
],
"index": 6,
"docs": [
"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",
"fields": [
{
"name": "proposal_hash",
"type": 1,
"typeName": "H256"
},
{
"name": "voting_period",
"type": 4,
"typeName": "T::BlockNumber"
},
{
"name": "delay",
"type": 4,
"typeName": "T::BlockNumber"
}
],
"index": 7,
"docs": [
"Schedule the currently externally-proposed majority-carries referendum to be tabled",
"immediately. If there is no externally-proposed referendum currently, or if there is one",
"but it is not a majority-carries referendum then it fails.",
"",
"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",
"\tMust be always greater than zero.",
"\tFor `FastTrackOrigin` must be equal or greater than `FastTrackVotingPeriod`.",
"- `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",
"fields": [
{
"name": "proposal_hash",
"type": 1,
"typeName": "H256"
}
],
"index": 8,
"docs": [
"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",
"fields": [
{
"name": "ref_index",
"type": 36,
"typeName": "ReferendumIndex"
}
],
"index": 9,
"docs": [
"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": "delegate",
"fields": [
{
"name": "to",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "conviction",
"type": 137,
"typeName": "Conviction"
},
{
"name": "balance",
"type": 57,
"typeName": "BalanceOf<T>"
}
],
"index": 10,
"docs": [
"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",
"index": 11,
"docs": [
"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",
"index": 12,
"docs": [
"Clears all public proposals.",
"",
"The dispatch origin of this call must be _Root_.",
"",
"Weight: `O(1)`."
]
},
{
"name": "unlock",
"fields": [
{
"name": "target",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 13,
"docs": [
"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",
"fields": [
{
"name": "index",
"type": 4,
"typeName": "ReferendumIndex"
}
],
"index": 14,
"docs": [
"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",
"fields": [
{
"name": "target",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "index",
"type": 4,
"typeName": "ReferendumIndex"
}
],
"index": 15,
"docs": [
"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": "blacklist",
"fields": [
{
"name": "proposal_hash",
"type": 1,
"typeName": "H256"
},
{
"name": "maybe_ref_index",
"type": 114,
"typeName": "Option<ReferendumIndex>"
}
],
"index": 16,
"docs": [
"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",
"fields": [
{
"name": "prop_index",
"type": 36,
"typeName": "PropIndex"
}
],
"index": 17,
"docs": [
"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()`"
]
},
{
"name": "set_metadata",
"fields": [
{
"name": "owner",
"type": 138,
"typeName": "MetadataOwner"
},
{
"name": "maybe_hash",
"type": 139,
"typeName": "Option<PreimageHash>"
}
],
"index": 18,
"docs": [
"Set or clear a metadata of a proposal or a referendum.",
"",
"Parameters:",
"- `origin`: Must correspond to the `MetadataOwner`.",
" - `ExternalOrigin` for an external proposal with the `SuperMajorityApprove`",
" threshold.",
" - `ExternalDefaultOrigin` for an external proposal with the `SuperMajorityAgainst`",
" threshold.",
" - `ExternalMajorityOrigin` for an external proposal with the `SimpleMajority`",
" threshold.",
" - `Signed` by a creator for a public proposal.",
" - `Signed` to clear a metadata for a finished referendum.",
" - `Root` to set a metadata for an ongoing referendum.",
"- `owner`: an identifier of a metadata owner.",
"- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 133,
"type": {
"path": [
"frame_support",
"traits",
"preimages",
"Bounded"
],
"params": [
{
"name": "T",
"type": 26
}
],
"def": {
"variant": {
"variants": [
{
"name": "Legacy",
"fields": [
{
"name": "hash",
"type": 1,
"typeName": "Hash"
}
],
"index": 0
},
{
"name": "Inline",
"fields": [
{
"type": 134,
"typeName": "BoundedInline"
}
],
"index": 1
},
{
"name": "Lookup",
"fields": [
{
"name": "hash",
"type": 1,
"typeName": "Hash"
},
{
"name": "len",
"type": 4,
"typeName": "u32"
}
],
"index": 2
}
]
}
}
}
},
{
"id": 134,
"type": {
"path": [
"bounded_collections",
"bounded_vec",
"BoundedVec"
],
"params": [
{
"name": "T",
"type": 3
},
{
"name": "S",
"type": null
}
],
"def": {
"composite": {
"fields": [
{
"type": 28,
"typeName": "Vec<T>"
}
]
}
}
}
},
{
"id": 135,
"type": {
"path": [
"pallet_democracy",
"vote",
"AccountVote"
],
"params": [
{
"name": "Balance",
"type": 57
}
],
"def": {
"variant": {
"variants": [
{
"name": "Standard",
"fields": [
{
"name": "vote",
"type": 136,
"typeName": "Vote"
},
{
"name": "balance",
"type": 57,
"typeName": "Balance"
}
],
"index": 0
},
{
"name": "Split",
"fields": [
{
"name": "aye",
"type": 57,
"typeName": "Balance"
},
{
"name": "nay",
"type": 57,
"typeName": "Balance"
}
],
"index": 1
}
]
}
}
}
},
{
"id": 136,
"type": {
"path": [
"pallet_democracy",
"vote",
"Vote"
],
"def": {
"composite": {
"fields": [
{
"type": 3
}
]
}
}
}
},
{
"id": 137,
"type": {
"path": [
"pallet_democracy",
"conviction",
"Conviction"
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Locked1x",
"index": 1
},
{
"name": "Locked2x",
"index": 2
},
{
"name": "Locked3x",
"index": 3
},
{
"name": "Locked4x",
"index": 4
},
{
"name": "Locked5x",
"index": 5
},
{
"name": "Locked6x",
"index": 6
}
]
}
}
}
},
{
"id": 138,
"type": {
"path": [
"pallet_democracy",
"types",
"MetadataOwner"
],
"def": {
"variant": {
"variants": [
{
"name": "External",
"index": 0
},
{
"name": "Proposal",
"fields": [
{
"type": 4,
"typeName": "PropIndex"
}
],
"index": 1
},
{
"name": "Referendum",
"fields": [
{
"type": 4,
"typeName": "ReferendumIndex"
}
],
"index": 2
}
]
}
}
}
},
{
"id": 139,
"type": {
"path": [
"Option"
],
"params": [
{
"name": "T",
"type": 1
}
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Some",
"fields": [
{
"type": 1
}
],
"index": 1
}
]
}
}
}
},
{
"id": 140,
"type": {
"path": [
"pallet_collective",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "set_members",
"fields": [
{
"name": "new_members",
"type": 122,
"typeName": "Vec<T::AccountId>"
},
{
"name": "prime",
"type": 141,
"typeName": "Option<T::AccountId>"
},
{
"name": "old_count",
"type": 4,
"typeName": "MemberCount"
}
],
"index": 0,
"docs": [
"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.",
"",
"The dispatch of this call must be `SetMembersOrigin`.",
"",
"NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but",
" the weight estimations rely on it to estimate dispatchable weight.",
"",
"# WARNING:",
"",
"The `pallet-collective` can also be managed by logic outside of the pallet through the",
"implementation of the trait [`ChangeMembers`].",
"Any call to `set_members` must be careful that the member set doesn't get out of sync",
"with other logic managing the member set.",
"",
"## Complexity:",
"- `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)"
]
},
{
"name": "execute",
"fields": [
{
"name": "proposal",
"type": 26,
"typeName": "Box<<T as Config<I>>::Proposal>"
},
{
"name": "length_bound",
"type": 36,
"typeName": "u32"
}
],
"index": 1,
"docs": [
"Dispatch a proposal from a member using the `Member` origin.",
"",
"Origin must be a member of the collective.",
"",
"## Complexity:",
"- `O(B + M + P)` where:",
"- `B` is `proposal` size in bytes (length-fee-bounded)",
"- `M` members-count (code-bounded)",
"- `P` complexity of dispatching `proposal`"
]
},
{
"name": "propose",
"fields": [
{
"name": "threshold",
"type": 36,
"typeName": "MemberCount"
},
{
"name": "proposal",
"type": 26,
"typeName": "Box<<T as Config<I>>::Proposal>"
},
{
"name": "length_bound",
"type": 36,
"typeName": "u32"
}
],
"index": 2,
"docs": [
"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.",
"",
"## Complexity",
"- `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`)"
]
},
{
"name": "vote",
"fields": [
{
"name": "proposal",
"type": 1,
"typeName": "T::Hash"
},
{
"name": "index",
"type": 36,
"typeName": "ProposalIndex"
},
{
"name": "approve",
"type": 54,
"typeName": "bool"
}
],
"index": 3,
"docs": [
"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.",
"## Complexity",
"- `O(M)` where `M` is members-count (code- and governance-bounded)"
]
},
{
"name": "close_old_weight",
"fields": [
{
"name": "proposal_hash",
"type": 1,
"typeName": "T::Hash"
},
{
"name": "index",
"type": 36,
"typeName": "ProposalIndex"
},
{
"name": "proposal_weight_bound",
"type": 142,
"typeName": "OldWeight"
},
{
"name": "length_bound",
"type": 36,
"typeName": "u32"
}
],
"index": 4,
"docs": [
"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.",
"",
"## Complexity",
"- `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)"
]
},
{
"name": "disapprove_proposal",
"fields": [
{
"name": "proposal_hash",
"type": 1,
"typeName": "T::Hash"
}
],
"index": 5,
"docs": [
"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.",
"",
"## Complexity",
"O(P) where P is the number of max proposals"
]
},
{
"name": "close",
"fields": [
{
"name": "proposal_hash",
"type": 1,
"typeName": "T::Hash"
},
{
"name": "index",
"type": 36,
"typeName": "ProposalIndex"
},
{
"name": "proposal_weight_bound",
"type": 144,
"typeName": "Weight"
},
{
"name": "length_bound",
"type": 36,
"typeName": "u32"
}
],
"index": 6,
"docs": [
"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.",
"",
"## Complexity",
"- `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)"
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 141,
"type": {
"path": [
"Option"
],
"params": [
{
"name": "T",
"type": 52
}
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Some",
"fields": [
{
"type": 52
}
],
"index": 1
}
]
}
}
}
},
{
"id": 142,
"type": {
"def": {
"compact": {
"type": 143
}
}
}
},
{
"id": 143,
"type": {
"path": [
"sp_weights",
"OldWeight"
],
"def": {
"composite": {
"fields": [
{
"type": 12,
"typeName": "u64"
}
]
}
}
}
},
{
"id": 144,
"type": {
"path": [
"sp_weights",
"weight_v2",
"Weight"
],
"def": {
"composite": {
"fields": [
{
"name": "ref_time",
"type": 49,
"typeName": "u64"
},
{
"name": "proof_size",
"type": 49,
"typeName": "u64"
}
]
}
}
}
},
{
"id": 145,
"type": {
"path": [
"pallet_collective",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "set_members",
"fields": [
{
"name": "new_members",
"type": 122,
"typeName": "Vec<T::AccountId>"
},
{
"name": "prime",
"type": 141,
"typeName": "Option<T::AccountId>"
},
{
"name": "old_count",
"type": 4,
"typeName": "MemberCount"
}
],
"index": 0,
"docs": [
"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.",
"",
"The dispatch of this call must be `SetMembersOrigin`.",
"",
"NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but",
" the weight estimations rely on it to estimate dispatchable weight.",
"",
"# WARNING:",
"",
"The `pallet-collective` can also be managed by logic outside of the pallet through the",
"implementation of the trait [`ChangeMembers`].",
"Any call to `set_members` must be careful that the member set doesn't get out of sync",
"with other logic managing the member set.",
"",
"## Complexity:",
"- `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)"
]
},
{
"name": "execute",
"fields": [
{
"name": "proposal",
"type": 26,
"typeName": "Box<<T as Config<I>>::Proposal>"
},
{
"name": "length_bound",
"type": 36,
"typeName": "u32"
}
],
"index": 1,
"docs": [
"Dispatch a proposal from a member using the `Member` origin.",
"",
"Origin must be a member of the collective.",
"",
"## Complexity:",
"- `O(B + M + P)` where:",
"- `B` is `proposal` size in bytes (length-fee-bounded)",
"- `M` members-count (code-bounded)",
"- `P` complexity of dispatching `proposal`"
]
},
{
"name": "propose",
"fields": [
{
"name": "threshold",
"type": 36,
"typeName": "MemberCount"
},
{
"name": "proposal",
"type": 26,
"typeName": "Box<<T as Config<I>>::Proposal>"
},
{
"name": "length_bound",
"type": 36,
"typeName": "u32"
}
],
"index": 2,
"docs": [
"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.",
"",
"## Complexity",
"- `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`)"
]
},
{
"name": "vote",
"fields": [
{
"name": "proposal",
"type": 1,
"typeName": "T::Hash"
},
{
"name": "index",
"type": 36,
"typeName": "ProposalIndex"
},
{
"name": "approve",
"type": 54,
"typeName": "bool"
}
],
"index": 3,
"docs": [
"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.",
"## Complexity",
"- `O(M)` where `M` is members-count (code- and governance-bounded)"
]
},
{
"name": "close_old_weight",
"fields": [
{
"name": "proposal_hash",
"type": 1,
"typeName": "T::Hash"
},
{
"name": "index",
"type": 36,
"typeName": "ProposalIndex"
},
{
"name": "proposal_weight_bound",
"type": 142,
"typeName": "OldWeight"
},
{
"name": "length_bound",
"type": 36,
"typeName": "u32"
}
],
"index": 4,
"docs": [
"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.",
"",
"## Complexity",
"- `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)"
]
},
{
"name": "disapprove_proposal",
"fields": [
{
"name": "proposal_hash",
"type": 1,
"typeName": "T::Hash"
}
],
"index": 5,
"docs": [
"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.",
"",
"## Complexity",
"O(P) where P is the number of max proposals"
]
},
{
"name": "close",
"fields": [
{
"name": "proposal_hash",
"type": 1,
"typeName": "T::Hash"
},
{
"name": "index",
"type": 36,
"typeName": "ProposalIndex"
},
{
"name": "proposal_weight_bound",
"type": 144,
"typeName": "Weight"
},
{
"name": "length_bound",
"type": 36,
"typeName": "u32"
}
],
"index": 6,
"docs": [
"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.",
"",
"## Complexity",
"- `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)"
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 146,
"type": {
"path": [
"pallet_elections_phragmen",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "vote",
"fields": [
{
"name": "votes",
"type": 122,
"typeName": "Vec<T::AccountId>"
},
{
"name": "value",
"type": 56,
"typeName": "BalanceOf<T>"
}
],
"index": 0,
"docs": [
"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 free 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."
]
},
{
"name": "remove_voter",
"index": 1,
"docs": [
"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",
"fields": [
{
"name": "candidate_count",
"type": 36,
"typeName": "u32"
}
],
"index": 2,
"docs": [
"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.",
"",
"The number of current candidates must be provided as witness data.",
"## Complexity",
"O(C + log(C)) where C is candidate_count."
]
},
{
"name": "renounce_candidacy",
"fields": [
{
"name": "renouncing",
"type": 147,
"typeName": "Renouncing"
}
],
"index": 3,
"docs": [
"Renounce one's intention to be a candidate for the next election round. 3 potential",
"outcomes exist:",
"",
"- `origin` is a candidate and not elected in any set. In this case, the 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_member`](Self::remove_member), 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.",
"The type of renouncing must be provided as witness data.",
"",
"## Complexity",
" - Renouncing::Candidate(count): O(count + log(count))",
" - Renouncing::Member: O(1)",
" - Renouncing::RunnerUp: O(1)"
]
},
{
"name": "remove_member",
"fields": [
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "slash_bond",
"type": 54,
"typeName": "bool"
},
{
"name": "rerun_election",
"type": 54,
"typeName": "bool"
}
],
"index": 4,
"docs": [
"Remove a particular member from the set. This is effective immediately and the bond of",
"the outgoing member is slashed.",
"",
"If a runner-up is available, then the best runner-up will be removed and replaces the",
"outgoing member. Otherwise, if `rerun_election` is `true`, a new phragmen election is",
"started, else, nothing happens.",
"",
"If `slash_bond` is set to true, the bond of the member being removed is slashed. Else,",
"it is returned.",
"",
"The dispatch origin of this call must be root.",
"",
"Note that this does not affect the designated block number of the next election.",
"",
"## Complexity",
"- Check details of remove_and_replace_member() and do_phragmen()."
]
},
{
"name": "clean_defunct_voters",
"fields": [
{
"name": "num_voters",
"type": 4,
"typeName": "u32"
},
{
"name": "num_defunct",
"type": 4,
"typeName": "u32"
}
],
"index": 5,
"docs": [
"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.",
"",
"## Complexity",
"- Check is_defunct_voter() details."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 147,
"type": {
"path": [
"pallet_elections_phragmen",
"Renouncing"
],
"def": {
"variant": {
"variants": [
{
"name": "Member",
"index": 0
},
{
"name": "RunnerUp",
"index": 1
},
{
"name": "Candidate",
"fields": [
{
"type": 36,
"typeName": "u32"
}
],
"index": 2
}
]
}
}
}
},
{
"id": 148,
"type": {
"path": [
"pallet_membership",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "add_member",
"fields": [
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 0,
"docs": [
"Add a member `who` to the set.",
"",
"May only be called from `T::AddOrigin`."
]
},
{
"name": "remove_member",
"fields": [
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 1,
"docs": [
"Remove a member `who` from the set.",
"",
"May only be called from `T::RemoveOrigin`."
]
},
{
"name": "swap_member",
"fields": [
{
"name": "remove",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "add",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 2,
"docs": [
"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",
"fields": [
{
"name": "members",
"type": 122,
"typeName": "Vec<T::AccountId>"
}
],
"index": 3,
"docs": [
"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",
"fields": [
{
"name": "new",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 4,
"docs": [
"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",
"fields": [
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 5,
"docs": [
"Set the prime member. Must be a current member.",
"",
"May only be called from `T::PrimeOrigin`."
]
},
{
"name": "clear_prime",
"index": 6,
"docs": [
"Remove the prime member if it exists.",
"",
"May only be called from `T::PrimeOrigin`."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 149,
"type": {
"path": [
"pallet_grandpa",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "report_equivocation",
"fields": [
{
"name": "equivocation_proof",
"type": 150,
"typeName": "Box<EquivocationProof<T::Hash, T::BlockNumber>>"
},
{
"name": "key_owner_proof",
"type": 44,
"typeName": "T::KeyOwnerProof"
}
],
"index": 0,
"docs": [
"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",
"fields": [
{
"name": "equivocation_proof",
"type": 150,
"typeName": "Box<EquivocationProof<T::Hash, T::BlockNumber>>"
},
{
"name": "key_owner_proof",
"type": 44,
"typeName": "T::KeyOwnerProof"
}
],
"index": 1,
"docs": [
"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",
"fields": [
{
"name": "delay",
"type": 4,
"typeName": "T::BlockNumber"
},
{
"name": "best_finalized_block_number",
"type": 4,
"typeName": "T::BlockNumber"
}
],
"index": 2,
"docs": [
"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 block production rate (which may be slowed down because of finality lagging) should",
"be taken into account when choosing the `delay`. The GRANDPA voters based on the new",
"authority will start voting on top of `best_finalized_block_number` for new finalized",
"blocks. `best_finalized_block_number` should be the highest of the latest finalized",
"block of all validators of the new authority set.",
"",
"Only callable by root."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 150,
"type": {
"path": [
"sp_consensus_grandpa",
"EquivocationProof"
],
"params": [
{
"name": "H",
"type": 1
},
{
"name": "N",
"type": 4
}
],
"def": {
"composite": {
"fields": [
{
"name": "set_id",
"type": 12,
"typeName": "SetId"
},
{
"name": "equivocation",
"type": 0,
"typeName": "Equivocation<H, N>"
}
]
}
}
}
},
{
"id": 151,
"type": {
"path": [
"pallet_treasury",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "propose_spend",
"fields": [
{
"name": "value",
"type": 56,
"typeName": "BalanceOf<T, I>"
},
{
"name": "beneficiary",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 0,
"docs": [
"Put forward a suggestion for spending. A deposit proportional to the value",
"is reserved and slashed if the proposal is rejected. It is returned once the",
"proposal is awarded.",
"",
"## Complexity",
"- O(1)"
]
},
{
"name": "reject_proposal",
"fields": [
{
"name": "proposal_id",
"type": 36,
"typeName": "ProposalIndex"
}
],
"index": 1,
"docs": [
"Reject a proposed spend. The original deposit will be slashed.",
"",
"May only be called from `T::RejectOrigin`.",
"",
"## Complexity",
"- O(1)"
]
},
{
"name": "approve_proposal",
"fields": [
{
"name": "proposal_id",
"type": 36,
"typeName": "ProposalIndex"
}
],
"index": 2,
"docs": [
"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`.",
"",
"## Complexity",
" - O(1)."
]
},
{
"name": "spend",
"fields": [
{
"name": "amount",
"type": 56,
"typeName": "BalanceOf<T, I>"
},
{
"name": "beneficiary",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 3,
"docs": [
"Propose and approve a spend of treasury funds.",
"",
"- `origin`: Must be `SpendOrigin` with the `Success` value being at least `amount`.",
"- `amount`: The amount to be transferred from the treasury to the `beneficiary`.",
"- `beneficiary`: The destination account for the transfer.",
"",
"NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the",
"beneficiary."
]
},
{
"name": "remove_approval",
"fields": [
{
"name": "proposal_id",
"type": 36,
"typeName": "ProposalIndex"
}
],
"index": 4,
"docs": [
"Force a previously approved proposal to be removed from the approval queue.",
"The original deposit will no longer be returned.",
"",
"May only be called from `T::RejectOrigin`.",
"- `proposal_id`: The index of a proposal",
"",
"## Complexity",
"- O(A) where `A` is the number of approvals",
"",
"Errors:",
"- `ProposalNotApproved`: The `proposal_id` supplied was not found in the approval queue,",
"i.e., the proposal has not been approved. This could also mean the proposal does not",
"exist altogether, thus there is no way it would have been approved in the first place."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 152,
"type": {
"path": [
"pallet_contracts",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "call_old_weight",
"fields": [
{
"name": "dest",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "value",
"type": 56,
"typeName": "BalanceOf<T>"
},
{
"name": "gas_limit",
"type": 142,
"typeName": "OldWeight"
},
{
"name": "storage_deposit_limit",
"type": 153,
"typeName": "Option<<BalanceOf<T> as codec::HasCompact>::Type>"
},
{
"name": "data",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 0,
"docs": [
"Deprecated version if [`Self::call`] for use in an in-storage `Call`."
]
},
{
"name": "instantiate_with_code_old_weight",
"fields": [
{
"name": "value",
"type": 56,
"typeName": "BalanceOf<T>"
},
{
"name": "gas_limit",
"type": 142,
"typeName": "OldWeight"
},
{
"name": "storage_deposit_limit",
"type": 153,
"typeName": "Option<<BalanceOf<T> as codec::HasCompact>::Type>"
},
{
"name": "code",
"type": 28,
"typeName": "Vec<u8>"
},
{
"name": "data",
"type": 28,
"typeName": "Vec<u8>"
},
{
"name": "salt",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 1,
"docs": [
"Deprecated version if [`Self::instantiate_with_code`] for use in an in-storage `Call`."
]
},
{
"name": "instantiate_old_weight",
"fields": [
{
"name": "value",
"type": 56,
"typeName": "BalanceOf<T>"
},
{
"name": "gas_limit",
"type": 142,
"typeName": "OldWeight"
},
{
"name": "storage_deposit_limit",
"type": 153,
"typeName": "Option<<BalanceOf<T> as codec::HasCompact>::Type>"
},
{
"name": "code_hash",
"type": 1,
"typeName": "CodeHash<T>"
},
{
"name": "data",
"type": 28,
"typeName": "Vec<u8>"
},
{
"name": "salt",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 2,
"docs": [
"Deprecated version if [`Self::instantiate`] for use in an in-storage `Call`."
]
},
{
"name": "upload_code",
"fields": [
{
"name": "code",
"type": 28,
"typeName": "Vec<u8>"
},
{
"name": "storage_deposit_limit",
"type": 153,
"typeName": "Option<<BalanceOf<T> as codec::HasCompact>::Type>"
},
{
"name": "determinism",
"type": 154,
"typeName": "Determinism"
}
],
"index": 3,
"docs": [
"Upload new `code` without instantiating a contract from it.",
"",
"If the code does not already exist a deposit is reserved from the caller",
"and unreserved only when [`Self::remove_code`] is called. The size of the reserve",
"depends on the instrumented size of the the supplied `code`.",
"",
"If the code already exists in storage it will still return `Ok` and upgrades",
"the in storage version to the current",
"[`InstructionWeights::version`](InstructionWeights).",
"",
"- `determinism`: If this is set to any other value but [`Determinism::Deterministic`]",
" then the only way to use this code is to delegate call into it from an offchain",
" execution. Set to [`Determinism::Deterministic`] if in doubt.",
"",
"# Note",
"",
"Anyone can instantiate a contract from any uploaded code and thus prevent its removal.",
"To avoid this situation a constructor could employ access control so that it can",
"only be instantiated by permissioned entities. The same is true when uploading",
"through [`Self::instantiate_with_code`]."
]
},
{
"name": "remove_code",
"fields": [
{
"name": "code_hash",
"type": 1,
"typeName": "CodeHash<T>"
}
],
"index": 4,
"docs": [
"Remove the code stored under `code_hash` and refund the deposit to its owner.",
"",
"A code can only be removed by its original uploader (its owner) and only if it is",
"not used by any contract."
]
},
{
"name": "set_code",
"fields": [
{
"name": "dest",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "code_hash",
"type": 1,
"typeName": "CodeHash<T>"
}
],
"index": 5,
"docs": [
"Privileged function that changes the code of an existing contract.",
"",
"This takes care of updating refcounts and all other necessary operations. Returns",
"an error if either the `code_hash` or `dest` do not exist.",
"",
"# Note",
"",
"This does **not** change the address of the contract in question. This means",
"that the contract address is no longer derived from its code hash after calling",
"this dispatchable."
]
},
{
"name": "call",
"fields": [
{
"name": "dest",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "value",
"type": 56,
"typeName": "BalanceOf<T>"
},
{
"name": "gas_limit",
"type": 144,
"typeName": "Weight"
},
{
"name": "storage_deposit_limit",
"type": 153,
"typeName": "Option<<BalanceOf<T> as codec::HasCompact>::Type>"
},
{
"name": "data",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 6,
"docs": [
"Makes a call to an account, optionally transferring some balance.",
"",
"# Parameters",
"",
"* `dest`: Address of the contract to call.",
"* `value`: The balance to transfer from the `origin` to `dest`.",
"* `gas_limit`: The gas limit enforced when executing the constructor.",
"* `storage_deposit_limit`: The maximum amount of balance that can be charged from the",
" caller to pay for the storage consumed.",
"* `data`: The input data to pass to the contract.",
"",
"* 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",
"fields": [
{
"name": "value",
"type": 56,
"typeName": "BalanceOf<T>"
},
{
"name": "gas_limit",
"type": 144,
"typeName": "Weight"
},
{
"name": "storage_deposit_limit",
"type": 153,
"typeName": "Option<<BalanceOf<T> as codec::HasCompact>::Type>"
},
{
"name": "code",
"type": 28,
"typeName": "Vec<u8>"
},
{
"name": "data",
"type": 28,
"typeName": "Vec<u8>"
},
{
"name": "salt",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 7,
"docs": [
"Instantiates a new contract from the supplied `code` optionally transferring",
"some balance.",
"",
"This dispatchable has the same effect as calling [`Self::upload_code`] +",
"[`Self::instantiate`]. Bundling them together provides efficiency gains. Please",
"also check the documentation of [`Self::upload_code`].",
"",
"# Parameters",
"",
"* `value`: The balance to transfer from the `origin` to the newly created contract.",
"* `gas_limit`: The gas limit enforced when executing the constructor.",
"* `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved",
" from the caller to pay for the storage consumed.",
"* `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 `value` is transferred to the new account.",
"- The `deploy` function is executed in the context of the newly-created account."
]
},
{
"name": "instantiate",
"fields": [
{
"name": "value",
"type": 56,
"typeName": "BalanceOf<T>"
},
{
"name": "gas_limit",
"type": 144,
"typeName": "Weight"
},
{
"name": "storage_deposit_limit",
"type": 153,
"typeName": "Option<<BalanceOf<T> as codec::HasCompact>::Type>"
},
{
"name": "code_hash",
"type": 1,
"typeName": "CodeHash<T>"
},
{
"name": "data",
"type": 28,
"typeName": "Vec<u8>"
},
{
"name": "salt",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 8,
"docs": [
"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."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 153,
"type": {
"path": [
"Option"
],
"params": [
{
"name": "T",
"type": 56
}
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Some",
"fields": [
{
"type": 56
}
],
"index": 1
}
]
}
}
}
},
{
"id": 154,
"type": {
"path": [
"pallet_contracts",
"wasm",
"Determinism"
],
"def": {
"variant": {
"variants": [
{
"name": "Deterministic",
"index": 0
},
{
"name": "AllowIndeterminism",
"index": 1
}
]
}
}
}
},
{
"id": 155,
"type": {
"path": [
"pallet_sudo",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "sudo",
"fields": [
{
"name": "call",
"type": 26,
"typeName": "Box<<T as Config>::RuntimeCall>"
}
],
"index": 0,
"docs": [
"Authenticates the sudo key and dispatches a function call with `Root` origin.",
"",
"The dispatch origin for this call must be _Signed_.",
"",
"## Complexity",
"- O(1)."
]
},
{
"name": "sudo_unchecked_weight",
"fields": [
{
"name": "call",
"type": 26,
"typeName": "Box<<T as Config>::RuntimeCall>"
},
{
"name": "weight",
"type": 144,
"typeName": "Weight"
}
],
"index": 1,
"docs": [
"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_.",
"",
"## Complexity",
"- O(1)."
]
},
{
"name": "set_key",
"fields": [
{
"name": "new",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 2,
"docs": [
"Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo",
"key.",
"",
"The dispatch origin for this call must be _Signed_.",
"",
"## Complexity",
"- O(1)."
]
},
{
"name": "sudo_as",
"fields": [
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "call",
"type": 26,
"typeName": "Box<<T as Config>::RuntimeCall>"
}
],
"index": 3,
"docs": [
"Authenticates the sudo key and dispatches a function call with `Signed` origin from",
"a given account.",
"",
"The dispatch origin for this call must be _Signed_.",
"",
"## Complexity",
"- O(1)."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 156,
"type": {
"path": [
"pallet_im_online",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "heartbeat",
"fields": [
{
"name": "heartbeat",
"type": 157,
"typeName": "Heartbeat<T::BlockNumber>"
},
{
"name": "signature",
"type": 162,
"typeName": "<T::AuthorityId as RuntimeAppPublic>::Signature"
}
],
"index": 0,
"docs": [
"## 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`"
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 157,
"type": {
"path": [
"pallet_im_online",
"Heartbeat"
],
"params": [
{
"name": "BlockNumber",
"type": 4
}
],
"def": {
"composite": {
"fields": [
{
"name": "block_number",
"type": 4,
"typeName": "BlockNumber"
},
{
"name": "network_state",
"type": 158,
"typeName": "OpaqueNetworkState"
},
{
"name": "session_index",
"type": 4,
"typeName": "SessionIndex"
},
{
"name": "authority_index",
"type": 4,
"typeName": "AuthIndex"
},
{
"name": "validators_len",
"type": 4,
"typeName": "u32"
}
]
}
}
}
},
{
"id": 158,
"type": {
"path": [
"sp_core",
"offchain",
"OpaqueNetworkState"
],
"def": {
"composite": {
"fields": [
{
"name": "peer_id",
"type": 159,
"typeName": "OpaquePeerId"
},
{
"name": "external_addresses",
"type": 160,
"typeName": "Vec<OpaqueMultiaddr>"
}
]
}
}
}
},
{
"id": 159,
"type": {
"path": [
"sp_core",
"OpaquePeerId"
],
"def": {
"composite": {
"fields": [
{
"type": 28,
"typeName": "Vec<u8>"
}
]
}
}
}
},
{
"id": 160,
"type": {
"def": {
"sequence": {
"type": 161
}
}
}
},
{
"id": 161,
"type": {
"path": [
"sp_core",
"offchain",
"OpaqueMultiaddr"
],
"def": {
"composite": {
"fields": [
{
"type": 28,
"typeName": "Vec<u8>"
}
]
}
}
}
},
{
"id": 162,
"type": {
"path": [
"pallet_im_online",
"sr25519",
"app_sr25519",
"Signature"
],
"def": {
"composite": {
"fields": [
{
"type": 163,
"typeName": "sr25519::Signature"
}
]
}
}
}
},
{
"id": 163,
"type": {
"path": [
"sp_core",
"sr25519",
"Signature"
],
"def": {
"composite": {
"fields": [
{
"type": 11,
"typeName": "[u8; 64]"
}
]
}
}
}
},
{
"id": 164,
"type": {
"path": [
"pallet_identity",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "add_registrar",
"fields": [
{
"name": "account",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 0,
"docs": [
"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.",
"",
"## Complexity",
"- `O(R)` where `R` registrar-count (governance-bounded and code-bounded)."
]
},
{
"name": "set_identity",
"fields": [
{
"name": "info",
"type": 165,
"typeName": "Box<IdentityInfo<T::MaxAdditionalFields>>"
}
],
"index": 1,
"docs": [
"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.",
"",
"## Complexity",
"- `O(X + X' + R)`",
" - where `X` additional-field-count (deposit-bounded and code-bounded)",
" - where `R` judgements-count (registrar-count-bounded)"
]
},
{
"name": "set_subs",
"fields": [
{
"name": "subs",
"type": 201,
"typeName": "Vec<(T::AccountId, Data)>"
}
],
"index": 2,
"docs": [
"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.",
"",
"## Complexity",
"- `O(P + S)`",
" - where `P` old-subs-count (hard- and deposit-bounded).",
" - where `S` subs-count (hard- and deposit-bounded)."
]
},
{
"name": "clear_identity",
"index": 3,
"docs": [
"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.",
"",
"## Complexity",
"- `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)."
]
},
{
"name": "request_judgement",
"fields": [
{
"name": "reg_index",
"type": 36,
"typeName": "RegistrarIndex"
},
{
"name": "max_fee",
"type": 56,
"typeName": "BalanceOf<T>"
}
],
"index": 4,
"docs": [
"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.",
"",
"## Complexity",
"- `O(R + X)`.",
" - where `R` registrar-count (governance-bounded).",
" - where `X` additional-field-count (deposit-bounded and code-bounded)."
]
},
{
"name": "cancel_request",
"fields": [
{
"name": "reg_index",
"type": 4,
"typeName": "RegistrarIndex"
}
],
"index": 5,
"docs": [
"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.",
"",
"## Complexity",
"- `O(R + X)`.",
" - where `R` registrar-count (governance-bounded).",
" - where `X` additional-field-count (deposit-bounded and code-bounded)."
]
},
{
"name": "set_fee",
"fields": [
{
"name": "index",
"type": 36,
"typeName": "RegistrarIndex"
},
{
"name": "fee",
"type": 56,
"typeName": "BalanceOf<T>"
}
],
"index": 6,
"docs": [
"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.",
"",
"## Complexity",
"- `O(R)`.",
" - where `R` registrar-count (governance-bounded)."
]
},
{
"name": "set_account_id",
"fields": [
{
"name": "index",
"type": 36,
"typeName": "RegistrarIndex"
},
{
"name": "new",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 7,
"docs": [
"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.",
"",
"## Complexity",
"- `O(R)`.",
" - where `R` registrar-count (governance-bounded)."
]
},
{
"name": "set_fields",
"fields": [
{
"name": "index",
"type": 36,
"typeName": "RegistrarIndex"
},
{
"name": "fields",
"type": 203,
"typeName": "IdentityFields"
}
],
"index": 8,
"docs": [
"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.",
"",
"## Complexity",
"- `O(R)`.",
" - where `R` registrar-count (governance-bounded)."
]
},
{
"name": "provide_judgement",
"fields": [
{
"name": "reg_index",
"type": 36,
"typeName": "RegistrarIndex"
},
{
"name": "target",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "judgement",
"type": 205,
"typeName": "Judgement<BalanceOf<T>>"
},
{
"name": "identity",
"type": 1,
"typeName": "T::Hash"
}
],
"index": 9,
"docs": [
"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`.",
"- `identity`: The hash of the [`IdentityInfo`] for that the judgement is provided.",
"",
"Emits `JudgementGiven` if successful.",
"",
"## Complexity",
"- `O(R + X)`.",
" - where `R` registrar-count (governance-bounded).",
" - where `X` additional-field-count (deposit-bounded and code-bounded)."
]
},
{
"name": "kill_identity",
"fields": [
{
"name": "target",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 10,
"docs": [
"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.",
"",
"## Complexity",
"- `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)."
]
},
{
"name": "add_sub",
"fields": [
{
"name": "sub",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "data",
"type": 168,
"typeName": "Data"
}
],
"index": 11,
"docs": [
"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",
"fields": [
{
"name": "sub",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "data",
"type": 168,
"typeName": "Data"
}
],
"index": 12,
"docs": [
"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",
"fields": [
{
"name": "sub",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 13,
"docs": [
"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",
"index": 14,
"docs": [
"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."
]
}
]
}
},
"docs": [
"Identity pallet declaration."
]
}
},
{
"id": 165,
"type": {
"path": [
"pallet_identity",
"types",
"IdentityInfo"
],
"params": [
{
"name": "FieldLimit",
"type": null
}
],
"def": {
"composite": {
"fields": [
{
"name": "additional",
"type": 166,
"typeName": "BoundedVec<(Data, Data), FieldLimit>"
},
{
"name": "display",
"type": 168,
"typeName": "Data"
},
{
"name": "legal",
"type": 168,
"typeName": "Data"
},
{
"name": "web",
"type": 168,
"typeName": "Data"
},
{
"name": "riot",
"type": 168,
"typeName": "Data"
},
{
"name": "email",
"type": 168,
"typeName": "Data"
},
{
"name": "pgp_fingerprint",
"type": 200,
"typeName": "Option<[u8; 20]>"
},
{
"name": "image",
"type": 168,
"typeName": "Data"
},
{
"name": "twitter",
"type": 168,
"typeName": "Data"
}
]
}
}
}
},
{
"id": 166,
"type": {
"path": [
"bounded_collections",
"bounded_vec",
"BoundedVec"
],
"params": [
{
"name": "T",
"type": 167
},
{
"name": "S",
"type": null
}
],
"def": {
"composite": {
"fields": [
{
"type": 199,
"typeName": "Vec<T>"
}
]
}
}
}
},
{
"id": 167,
"type": {
"def": {
"tuple": [
168,
168
]
}
}
},
{
"id": 168,
"type": {
"path": [
"pallet_identity",
"types",
"Data"
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Raw0",
"fields": [
{
"type": 169
}
],
"index": 1
},
{
"name": "Raw1",
"fields": [
{
"type": 170
}
],
"index": 2
},
{
"name": "Raw2",
"fields": [
{
"type": 171
}
],
"index": 3
},
{
"name": "Raw3",
"fields": [
{
"type": 172
}
],
"index": 4
},
{
"name": "Raw4",
"fields": [
{
"type": 40
}
],
"index": 5
},
{
"name": "Raw5",
"fields": [
{
"type": 173
}
],
"index": 6
},
{
"name": "Raw6",
"fields": [
{
"type": 174
}
],
"index": 7
},
{
"name": "Raw7",
"fields": [
{
"type": 175
}
],
"index": 8
},
{
"name": "Raw8",
"fields": [
{
"type": 176
}
],
"index": 9
},
{
"name": "Raw9",
"fields": [
{
"type": 177
}
],
"index": 10
},
{
"name": "Raw10",
"fields": [
{
"type": 178
}
],
"index": 11
},
{
"name": "Raw11",
"fields": [
{
"type": 179
}
],
"index": 12
},
{
"name": "Raw12",
"fields": [
{
"type": 180
}
],
"index": 13
},
{
"name": "Raw13",
"fields": [
{
"type": 181
}
],
"index": 14
},
{
"name": "Raw14",
"fields": [
{
"type": 182
}
],
"index": 15
},
{
"name": "Raw15",
"fields": [
{
"type": 183
}
],
"index": 16
},
{
"name": "Raw16",
"fields": [
{
"type": 184
}
],
"index": 17
},
{
"name": "Raw17",
"fields": [
{
"type": 185
}
],
"index": 18
},
{
"name": "Raw18",
"fields": [
{
"type": 186
}
],
"index": 19
},
{
"name": "Raw19",
"fields": [
{
"type": 187
}
],
"index": 20
},
{
"name": "Raw20",
"fields": [
{
"type": 53
}
],
"index": 21
},
{
"name": "Raw21",
"fields": [
{
"type": 188
}
],
"index": 22
},
{
"name": "Raw22",
"fields": [
{
"type": 189
}
],
"index": 23
},
{
"name": "Raw23",
"fields": [
{
"type": 190
}
],
"index": 24
},
{
"name": "Raw24",
"fields": [
{
"type": 191
}
],
"index": 25
},
{
"name": "Raw25",
"fields": [
{
"type": 192
}
],
"index": 26
},
{
"name": "Raw26",
"fields": [
{
"type": 193
}
],
"index": 27
},
{
"name": "Raw27",
"fields": [
{
"type": 194
}
],
"index": 28
},
{
"name": "Raw28",
"fields": [
{
"type": 195
}
],
"index": 29
},
{
"name": "Raw29",
"fields": [
{
"type": 196
}
],
"index": 30
},
{
"name": "Raw30",
"fields": [
{
"type": 197
}
],
"index": 31
},
{
"name": "Raw31",
"fields": [
{
"type": 198
}
],
"index": 32
},
{
"name": "Raw32",
"fields": [
{
"type": 2
}
],
"index": 33
},
{
"name": "BlakeTwo256",
"fields": [
{
"type": 2
}
],
"index": 34
},
{
"name": "Sha256",
"fields": [
{
"type": 2
}
],
"index": 35
},
{
"name": "Keccak256",
"fields": [
{
"type": 2
}
],
"index": 36
},
{
"name": "ShaThree256",
"fields": [
{
"type": 2
}
],
"index": 37
}
]
}
}
}
},
{
"id": 169,
"type": {
"def": {
"array": {
"len": 0,
"type": 3
}
}
}
},
{
"id": 170,
"type": {
"def": {
"array": {
"len": 1,
"type": 3
}
}
}
},
{
"id": 171,
"type": {
"def": {
"array": {
"len": 2,
"type": 3
}
}
}
},
{
"id": 172,
"type": {
"def": {
"array": {
"len": 3,
"type": 3
}
}
}
},
{
"id": 173,
"type": {
"def": {
"array": {
"len": 5,
"type": 3
}
}
}
},
{
"id": 174,
"type": {
"def": {
"array": {
"len": 6,
"type": 3
}
}
}
},
{
"id": 175,
"type": {
"def": {
"array": {
"len": 7,
"type": 3
}
}
}
},
{
"id": 176,
"type": {
"def": {
"array": {
"len": 8,
"type": 3
}
}
}
},
{
"id": 177,
"type": {
"def": {
"array": {
"len": 9,
"type": 3
}
}
}
},
{
"id": 178,
"type": {
"def": {
"array": {
"len": 10,
"type": 3
}
}
}
},
{
"id": 179,
"type": {
"def": {
"array": {
"len": 11,
"type": 3
}
}
}
},
{
"id": 180,
"type": {
"def": {
"array": {
"len": 12,
"type": 3
}
}
}
},
{
"id": 181,
"type": {
"def": {
"array": {
"len": 13,
"type": 3
}
}
}
},
{
"id": 182,
"type": {
"def": {
"array": {
"len": 14,
"type": 3
}
}
}
},
{
"id": 183,
"type": {
"def": {
"array": {
"len": 15,
"type": 3
}
}
}
},
{
"id": 184,
"type": {
"def": {
"array": {
"len": 16,
"type": 3
}
}
}
},
{
"id": 185,
"type": {
"def": {
"array": {
"len": 17,
"type": 3
}
}
}
},
{
"id": 186,
"type": {
"def": {
"array": {
"len": 18,
"type": 3
}
}
}
},
{
"id": 187,
"type": {
"def": {
"array": {
"len": 19,
"type": 3
}
}
}
},
{
"id": 188,
"type": {
"def": {
"array": {
"len": 21,
"type": 3
}
}
}
},
{
"id": 189,
"type": {
"def": {
"array": {
"len": 22,
"type": 3
}
}
}
},
{
"id": 190,
"type": {
"def": {
"array": {
"len": 23,
"type": 3
}
}
}
},
{
"id": 191,
"type": {
"def": {
"array": {
"len": 24,
"type": 3
}
}
}
},
{
"id": 192,
"type": {
"def": {
"array": {
"len": 25,
"type": 3
}
}
}
},
{
"id": 193,
"type": {
"def": {
"array": {
"len": 26,
"type": 3
}
}
}
},
{
"id": 194,
"type": {
"def": {
"array": {
"len": 27,
"type": 3
}
}
}
},
{
"id": 195,
"type": {
"def": {
"array": {
"len": 28,
"type": 3
}
}
}
},
{
"id": 196,
"type": {
"def": {
"array": {
"len": 29,
"type": 3
}
}
}
},
{
"id": 197,
"type": {
"def": {
"array": {
"len": 30,
"type": 3
}
}
}
},
{
"id": 198,
"type": {
"def": {
"array": {
"len": 31,
"type": 3
}
}
}
},
{
"id": 199,
"type": {
"def": {
"sequence": {
"type": 167
}
}
}
},
{
"id": 200,
"type": {
"path": [
"Option"
],
"params": [
{
"name": "T",
"type": 53
}
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Some",
"fields": [
{
"type": 53
}
],
"index": 1
}
]
}
}
}
},
{
"id": 201,
"type": {
"def": {
"sequence": {
"type": 202
}
}
}
},
{
"id": 202,
"type": {
"def": {
"tuple": [
52,
168
]
}
}
},
{
"id": 203,
"type": {
"path": [
"pallet_identity",
"types",
"BitFlags"
],
"params": [
{
"name": "T",
"type": 204
}
],
"def": {
"composite": {
"fields": [
{
"type": 12,
"typeName": "IdentityField"
}
]
}
}
}
},
{
"id": 204,
"type": {
"path": [
"pallet_identity",
"types",
"IdentityField"
],
"def": {
"variant": {
"variants": [
{
"name": "Display",
"index": 1
},
{
"name": "Legal",
"index": 2
},
{
"name": "Web",
"index": 4
},
{
"name": "Riot",
"index": 8
},
{
"name": "Email",
"index": 16
},
{
"name": "PgpFingerprint",
"index": 32
},
{
"name": "Image",
"index": 64
},
{
"name": "Twitter",
"index": 128
}
]
}
}
}
},
{
"id": 205,
"type": {
"path": [
"pallet_identity",
"types",
"Judgement"
],
"params": [
{
"name": "Balance",
"type": 57
}
],
"def": {
"variant": {
"variants": [
{
"name": "Unknown",
"index": 0
},
{
"name": "FeePaid",
"fields": [
{
"type": 57,
"typeName": "Balance"
}
],
"index": 1
},
{
"name": "Reasonable",
"index": 2
},
{
"name": "KnownGood",
"index": 3
},
{
"name": "OutOfDate",
"index": 4
},
{
"name": "LowQuality",
"index": 5
},
{
"name": "Erroneous",
"index": 6
}
]
}
}
}
},
{
"id": 206,
"type": {
"path": [
"pallet_society",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "bid",
"fields": [
{
"name": "value",
"type": 57,
"typeName": "BalanceOf<T, I>"
}
],
"index": 0,
"docs": [
"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.",
"",
"## Complexity",
"- O(M + B + C + logM + logB + X)",
"\t - B (len of bids)",
" - C (len of candidates)",
" - M (len of members)",
" - X (balance reserve)"
]
},
{
"name": "unbid",
"fields": [
{
"name": "pos",
"type": 4,
"typeName": "u32"
}
],
"index": 1,
"docs": [
"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.",
"",
"## Complexity",
"- O(B + X)",
" - B (len of bids)",
" - X (balance unreserve)"
]
},
{
"name": "vouch",
"fields": [
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "value",
"type": 57,
"typeName": "BalanceOf<T, I>"
},
{
"name": "tip",
"type": 57,
"typeName": "BalanceOf<T, I>"
}
],
"index": 2,
"docs": [
"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.",
"",
"## Complexity",
"- O(M + B + C + logM + logB + X)",
" - B (len of bids)",
" - C (len of candidates)",
" - M (len of members)",
" - X (balance reserve)"
]
},
{
"name": "unvouch",
"fields": [
{
"name": "pos",
"type": 4,
"typeName": "u32"
}
],
"index": 3,
"docs": [
"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.",
"",
"## Complexity",
"- O(B)",
" - B (len of bids)"
]
},
{
"name": "vote",
"fields": [
{
"name": "candidate",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "approve",
"type": 54,
"typeName": "bool"
}
],
"index": 4,
"docs": [
"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`).",
"",
"## Complexity",
"- O(M + logM + C)",
" - C (len of candidates)",
" - M (len of members)"
]
},
{
"name": "defender_vote",
"fields": [
{
"name": "approve",
"type": 54,
"typeName": "bool"
}
],
"index": 5,
"docs": [
"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`).",
"",
"## Complexity",
"- O(M + logM)",
" - M (len of members)"
]
},
{
"name": "payout",
"index": 6,
"docs": [
"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.",
"",
"## Complexity",
"- O(M + logM + P + X)",
" - M (len of members)",
" - P (number of payouts for a particular member)",
" - X (currency transfer call)"
]
},
{
"name": "found",
"fields": [
{
"name": "founder",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "max_members",
"type": 4,
"typeName": "u32"
},
{
"name": "rules",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 7,
"docs": [
"Found the society.",
"",
"This is done as a discrete action in order to allow for the",
"pallet 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.",
"",
"## Complexity",
"- O(1)"
]
},
{
"name": "unfound",
"index": 8,
"docs": [
"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.",
"",
"## Complexity",
"- O(1)"
]
},
{
"name": "judge_suspended_member",
"fields": [
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "forgive",
"type": 54,
"typeName": "bool"
}
],
"index": 9,
"docs": [
"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.",
"",
"## Complexity",
"- O(M + logM + B)",
" - B (len of bids)",
" - M (len of members)"
]
},
{
"name": "judge_suspended_candidate",
"fields": [
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "judgement",
"type": 207,
"typeName": "Judgement"
}
],
"index": 10,
"docs": [
"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`.",
"",
"## Complexity",
"- O(M + logM + B + X)",
" - B (len of bids)",
" - M (len of members)",
" - X (balance action)"
]
},
{
"name": "set_max_members",
"fields": [
{
"name": "max",
"type": 4,
"typeName": "u32"
}
],
"index": 11,
"docs": [
"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.",
"",
"## Complexity",
"- O(1)"
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 207,
"type": {
"path": [
"pallet_society",
"Judgement"
],
"def": {
"variant": {
"variants": [
{
"name": "Rebid",
"index": 0
},
{
"name": "Reject",
"index": 1
},
{
"name": "Approve",
"index": 2
}
]
}
}
}
},
{
"id": 208,
"type": {
"path": [
"pallet_recovery",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "as_recovered",
"fields": [
{
"name": "account",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "call",
"type": 26,
"typeName": "Box<<T as Config>::RuntimeCall>"
}
],
"index": 0,
"docs": [
"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."
]
},
{
"name": "set_recovered",
"fields": [
{
"name": "lost",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "rescuer",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 1,
"docs": [
"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."
]
},
{
"name": "create_recovery",
"fields": [
{
"name": "friends",
"type": 122,
"typeName": "Vec<T::AccountId>"
},
{
"name": "threshold",
"type": 20,
"typeName": "u16"
},
{
"name": "delay_period",
"type": 4,
"typeName": "T::BlockNumber"
}
],
"index": 2,
"docs": [
"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."
]
},
{
"name": "initiate_recovery",
"fields": [
{
"name": "account",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 3,
"docs": [
"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)."
]
},
{
"name": "vouch_recovery",
"fields": [
{
"name": "lost",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "rescuer",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 4,
"docs": [
"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."
]
},
{
"name": "claim_recovery",
"fields": [
{
"name": "account",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 5,
"docs": [
"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."
]
},
{
"name": "close_recovery",
"fields": [
{
"name": "rescuer",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 6,
"docs": [
"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."
]
},
{
"name": "remove_recovery",
"index": 7,
"docs": [
"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)."
]
},
{
"name": "cancel_recovered",
"fields": [
{
"name": "account",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 8,
"docs": [
"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."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 209,
"type": {
"path": [
"pallet_vesting",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "vest",
"index": 0,
"docs": [
"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`.",
"",
"## Complexity",
"- `O(1)`."
]
},
{
"name": "vest_other",
"fields": [
{
"name": "target",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 1,
"docs": [
"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`.",
"",
"## Complexity",
"- `O(1)`."
]
},
{
"name": "vested_transfer",
"fields": [
{
"name": "target",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "schedule",
"type": 210,
"typeName": "VestingInfo<BalanceOf<T>, T::BlockNumber>"
}
],
"index": 2,
"docs": [
"Create a vested transfer.",
"",
"The dispatch origin for this call must be _Signed_.",
"",
"- `target`: The account receiving the vested funds.",
"- `schedule`: The vesting schedule attached to the transfer.",
"",
"Emits `VestingCreated`.",
"",
"NOTE: This will unlock all schedules through the current block.",
"",
"## Complexity",
"- `O(1)`."
]
},
{
"name": "force_vested_transfer",
"fields": [
{
"name": "source",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "target",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "schedule",
"type": 210,
"typeName": "VestingInfo<BalanceOf<T>, T::BlockNumber>"
}
],
"index": 3,
"docs": [
"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.",
"- `schedule`: The vesting schedule attached to the transfer.",
"",
"Emits `VestingCreated`.",
"",
"NOTE: This will unlock all schedules through the current block.",
"",
"## Complexity",
"- `O(1)`."
]
},
{
"name": "merge_schedules",
"fields": [
{
"name": "schedule1_index",
"type": 4,
"typeName": "u32"
},
{
"name": "schedule2_index",
"type": 4,
"typeName": "u32"
}
],
"index": 4,
"docs": [
"Merge two vesting schedules together, creating a new vesting schedule that unlocks over",
"the highest possible start and end blocks. If both schedules have already started the",
"current block will be used as the schedule start; with the caveat that if one schedule",
"is finished by the current block, the other will be treated as the new merged schedule,",
"unmodified.",
"",
"NOTE: If `schedule1_index == schedule2_index` this is a no-op.",
"NOTE: This will unlock all schedules through the current block prior to merging.",
"NOTE: If both schedules have ended by the current block, no new schedule will be created",
"and both will be removed.",
"",
"Merged schedule attributes:",
"- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,",
" current_block)`.",
"- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`.",
"- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`.",
"",
"The dispatch origin for this call must be _Signed_.",
"",
"- `schedule1_index`: index of the first schedule to merge.",
"- `schedule2_index`: index of the second schedule to merge."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 210,
"type": {
"path": [
"pallet_vesting",
"vesting_info",
"VestingInfo"
],
"params": [
{
"name": "Balance",
"type": 57
},
{
"name": "BlockNumber",
"type": 4
}
],
"def": {
"composite": {
"fields": [
{
"name": "locked",
"type": 57,
"typeName": "Balance"
},
{
"name": "per_block",
"type": 57,
"typeName": "Balance"
},
{
"name": "starting_block",
"type": 4,
"typeName": "BlockNumber"
}
]
}
}
}
},
{
"id": 211,
"type": {
"path": [
"pallet_scheduler",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "schedule",
"fields": [
{
"name": "when",
"type": 4,
"typeName": "T::BlockNumber"
},
{
"name": "maybe_periodic",
"type": 212,
"typeName": "Option<schedule::Period<T::BlockNumber>>"
},
{
"name": "priority",
"type": 3,
"typeName": "schedule::Priority"
},
{
"name": "call",
"type": 26,
"typeName": "Box<<T as Config>::RuntimeCall>"
}
],
"index": 0,
"docs": [
"Anonymously schedule a task."
]
},
{
"name": "cancel",
"fields": [
{
"name": "when",
"type": 4,
"typeName": "T::BlockNumber"
},
{
"name": "index",
"type": 4,
"typeName": "u32"
}
],
"index": 1,
"docs": [
"Cancel an anonymously scheduled task."
]
},
{
"name": "schedule_named",
"fields": [
{
"name": "id",
"type": 2,
"typeName": "TaskName"
},
{
"name": "when",
"type": 4,
"typeName": "T::BlockNumber"
},
{
"name": "maybe_periodic",
"type": 212,
"typeName": "Option<schedule::Period<T::BlockNumber>>"
},
{
"name": "priority",
"type": 3,
"typeName": "schedule::Priority"
},
{
"name": "call",
"type": 26,
"typeName": "Box<<T as Config>::RuntimeCall>"
}
],
"index": 2,
"docs": [
"Schedule a named task."
]
},
{
"name": "cancel_named",
"fields": [
{
"name": "id",
"type": 2,
"typeName": "TaskName"
}
],
"index": 3,
"docs": [
"Cancel a named scheduled task."
]
},
{
"name": "schedule_after",
"fields": [
{
"name": "after",
"type": 4,
"typeName": "T::BlockNumber"
},
{
"name": "maybe_periodic",
"type": 212,
"typeName": "Option<schedule::Period<T::BlockNumber>>"
},
{
"name": "priority",
"type": 3,
"typeName": "schedule::Priority"
},
{
"name": "call",
"type": 26,
"typeName": "Box<<T as Config>::RuntimeCall>"
}
],
"index": 4,
"docs": [
"Anonymously schedule a task after a delay."
]
},
{
"name": "schedule_named_after",
"fields": [
{
"name": "id",
"type": 2,
"typeName": "TaskName"
},
{
"name": "after",
"type": 4,
"typeName": "T::BlockNumber"
},
{
"name": "maybe_periodic",
"type": 212,
"typeName": "Option<schedule::Period<T::BlockNumber>>"
},
{
"name": "priority",
"type": 3,
"typeName": "schedule::Priority"
},
{
"name": "call",
"type": 26,
"typeName": "Box<<T as Config>::RuntimeCall>"
}
],
"index": 5,
"docs": [
"Schedule a named task after a delay."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 212,
"type": {
"path": [
"Option"
],
"params": [
{
"name": "T",
"type": 213
}
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Some",
"fields": [
{
"type": 213
}
],
"index": 1
}
]
}
}
}
},
{
"id": 213,
"type": {
"def": {
"tuple": [
4,
4
]
}
}
},
{
"id": 214,
"type": {
"path": [
"pallet_glutton",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "initialize_pallet",
"fields": [
{
"name": "new_count",
"type": 4,
"typeName": "u32"
},
{
"name": "witness_count",
"type": 114,
"typeName": "Option<u32>"
}
],
"index": 0,
"docs": [
"Initializes the pallet by writing into `TrashData`.",
"",
"Only callable by Root. A good default for `trash_count` is `5_000`."
]
},
{
"name": "set_compute",
"fields": [
{
"name": "compute",
"type": 119,
"typeName": "Perbill"
}
],
"index": 1,
"docs": [
"Set the `Compute` storage value that determines how much of the",
"block's weight `ref_time` to use during `on_idle`.",
"",
"Only callable by Root."
]
},
{
"name": "set_storage",
"fields": [
{
"name": "storage",
"type": 119,
"typeName": "Perbill"
}
],
"index": 2,
"docs": [
"Set the `Storage` storage value that determines the PoV size usage",
"for each block.",
"",
"Only callable by Root."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 215,
"type": {
"path": [
"pallet_preimage",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "note_preimage",
"fields": [
{
"name": "bytes",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 0,
"docs": [
"Register a preimage on-chain.",
"",
"If the preimage was previously requested, no fees or deposits are taken for providing",
"the preimage. Otherwise, a deposit is taken proportional to the size of the preimage."
]
},
{
"name": "unnote_preimage",
"fields": [
{
"name": "hash",
"type": 1,
"typeName": "T::Hash"
}
],
"index": 1,
"docs": [
"Clear an unrequested preimage from the runtime storage.",
"",
"If `len` is provided, then it will be a much cheaper operation.",
"",
"- `hash`: The hash of the preimage to be removed from the store.",
"- `len`: The length of the preimage of `hash`."
]
},
{
"name": "request_preimage",
"fields": [
{
"name": "hash",
"type": 1,
"typeName": "T::Hash"
}
],
"index": 2,
"docs": [
"Request a preimage be uploaded to the chain without paying any fees or deposits.",
"",
"If the preimage requests has already been provided on-chain, we unreserve any deposit",
"a user may have paid, and take the control of the preimage out of their hands."
]
},
{
"name": "unrequest_preimage",
"fields": [
{
"name": "hash",
"type": 1,
"typeName": "T::Hash"
}
],
"index": 3,
"docs": [
"Clear a previously made request for a preimage.",
"",
"NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 216,
"type": {
"path": [
"pallet_proxy",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "proxy",
"fields": [
{
"name": "real",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "force_proxy_type",
"type": 217,
"typeName": "Option<T::ProxyType>"
},
{
"name": "call",
"type": 26,
"typeName": "Box<<T as Config>::RuntimeCall>"
}
],
"index": 0,
"docs": [
"Dispatch the given `call` from an account that the sender is authorised for through",
"`add_proxy`.",
"",
"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."
]
},
{
"name": "add_proxy",
"fields": [
{
"name": "delegate",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "proxy_type",
"type": 218,
"typeName": "T::ProxyType"
},
{
"name": "delay",
"type": 4,
"typeName": "T::BlockNumber"
}
],
"index": 1,
"docs": [
"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."
]
},
{
"name": "remove_proxy",
"fields": [
{
"name": "delegate",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "proxy_type",
"type": 218,
"typeName": "T::ProxyType"
},
{
"name": "delay",
"type": 4,
"typeName": "T::BlockNumber"
}
],
"index": 2,
"docs": [
"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."
]
},
{
"name": "remove_proxies",
"index": 3,
"docs": [
"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 `pure`, however if done, then",
"the unreserved fees will be inaccessible. **All access to this account will be lost.**"
]
},
{
"name": "create_pure",
"fields": [
{
"name": "proxy_type",
"type": 218,
"typeName": "T::ProxyType"
},
{
"name": "delay",
"type": 4,
"typeName": "T::BlockNumber"
},
{
"name": "index",
"type": 20,
"typeName": "u16"
}
],
"index": 4,
"docs": [
"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."
]
},
{
"name": "kill_pure",
"fields": [
{
"name": "spawner",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "proxy_type",
"type": 218,
"typeName": "T::ProxyType"
},
{
"name": "index",
"type": 20,
"typeName": "u16"
},
{
"name": "height",
"type": 36,
"typeName": "T::BlockNumber"
},
{
"name": "ext_index",
"type": 36,
"typeName": "u32"
}
],
"index": 5,
"docs": [
"Removes a previously spawned pure 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",
"`pure` with corresponding parameters.",
"",
"- `spawner`: The account that originally called `pure` to create this account.",
"- `index`: The disambiguation index originally passed to `pure`. Probably `0`.",
"- `proxy_type`: The proxy type originally passed to `pure`.",
"- `height`: The height of the chain when the call to `pure` was processed.",
"- `ext_index`: The extrinsic index in which the call to `pure` was processed.",
"",
"Fails with `NoPermission` in case the caller is not a previously created pure",
"account whose `pure` call has corresponding parameters."
]
},
{
"name": "announce",
"fields": [
{
"name": "real",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "call_hash",
"type": 1,
"typeName": "CallHashOf<T>"
}
],
"index": 6,
"docs": [
"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."
]
},
{
"name": "remove_announcement",
"fields": [
{
"name": "real",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "call_hash",
"type": 1,
"typeName": "CallHashOf<T>"
}
],
"index": 7,
"docs": [
"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."
]
},
{
"name": "reject_announcement",
"fields": [
{
"name": "delegate",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "call_hash",
"type": 1,
"typeName": "CallHashOf<T>"
}
],
"index": 8,
"docs": [
"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."
]
},
{
"name": "proxy_announced",
"fields": [
{
"name": "delegate",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "real",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "force_proxy_type",
"type": 217,
"typeName": "Option<T::ProxyType>"
},
{
"name": "call",
"type": 26,
"typeName": "Box<<T as Config>::RuntimeCall>"
}
],
"index": 9,
"docs": [
"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."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 217,
"type": {
"path": [
"Option"
],
"params": [
{
"name": "T",
"type": 218
}
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Some",
"fields": [
{
"type": 218
}
],
"index": 1
}
]
}
}
}
},
{
"id": 218,
"type": {
"path": [
"kitchensink_runtime",
"ProxyType"
],
"def": {
"variant": {
"variants": [
{
"name": "Any",
"index": 0
},
{
"name": "NonTransfer",
"index": 1
},
{
"name": "Governance",
"index": 2
},
{
"name": "Staking",
"index": 3
}
]
}
}
}
},
{
"id": 219,
"type": {
"path": [
"pallet_multisig",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "as_multi_threshold_1",
"fields": [
{
"name": "other_signatories",
"type": 122,
"typeName": "Vec<T::AccountId>"
},
{
"name": "call",
"type": 26,
"typeName": "Box<<T as Config>::RuntimeCall>"
}
],
"index": 0,
"docs": [
"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.",
"",
"## Complexity",
"O(Z + C) where Z is the length of the call and C its execution weight."
]
},
{
"name": "as_multi",
"fields": [
{
"name": "threshold",
"type": 20,
"typeName": "u16"
},
{
"name": "other_signatories",
"type": 122,
"typeName": "Vec<T::AccountId>"
},
{
"name": "maybe_timepoint",
"type": 220,
"typeName": "Option<Timepoint<T::BlockNumber>>"
},
{
"name": "call",
"type": 26,
"typeName": "Box<<T as Config>::RuntimeCall>"
},
{
"name": "max_weight",
"type": 144,
"typeName": "Weight"
}
],
"index": 1,
"docs": [
"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.",
"",
"## Complexity",
"- `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`."
]
},
{
"name": "approve_as_multi",
"fields": [
{
"name": "threshold",
"type": 20,
"typeName": "u16"
},
{
"name": "other_signatories",
"type": 122,
"typeName": "Vec<T::AccountId>"
},
{
"name": "maybe_timepoint",
"type": 220,
"typeName": "Option<Timepoint<T::BlockNumber>>"
},
{
"name": "call_hash",
"type": 2,
"typeName": "[u8; 32]"
},
{
"name": "max_weight",
"type": 144,
"typeName": "Weight"
}
],
"index": 2,
"docs": [
"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.",
"",
"## Complexity",
"- `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`."
]
},
{
"name": "cancel_as_multi",
"fields": [
{
"name": "threshold",
"type": 20,
"typeName": "u16"
},
{
"name": "other_signatories",
"type": 122,
"typeName": "Vec<T::AccountId>"
},
{
"name": "timepoint",
"type": 23,
"typeName": "Timepoint<T::BlockNumber>"
},
{
"name": "call_hash",
"type": 2,
"typeName": "[u8; 32]"
}
],
"index": 3,
"docs": [
"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.",
"",
"## Complexity",
"- `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."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 220,
"type": {
"path": [
"Option"
],
"params": [
{
"name": "T",
"type": 23
}
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Some",
"fields": [
{
"type": 23
}
],
"index": 1
}
]
}
}
}
},
{
"id": 221,
"type": {
"path": [
"pallet_bounties",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "propose_bounty",
"fields": [
{
"name": "value",
"type": 56,
"typeName": "BalanceOf<T, I>"
},
{
"name": "description",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 0,
"docs": [
"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",
"fields": [
{
"name": "bounty_id",
"type": 36,
"typeName": "BountyIndex"
}
],
"index": 1,
"docs": [
"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::SpendOrigin`.",
"",
"## Complexity",
"- O(1)."
]
},
{
"name": "propose_curator",
"fields": [
{
"name": "bounty_id",
"type": 36,
"typeName": "BountyIndex"
},
{
"name": "curator",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "fee",
"type": 56,
"typeName": "BalanceOf<T, I>"
}
],
"index": 2,
"docs": [
"Assign a curator to a funded bounty.",
"",
"May only be called from `T::SpendOrigin`.",
"",
"## Complexity",
"- O(1)."
]
},
{
"name": "unassign_curator",
"fields": [
{
"name": "bounty_id",
"type": 36,
"typeName": "BountyIndex"
}
],
"index": 3,
"docs": [
"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.",
"",
"## Complexity",
"- O(1)."
]
},
{
"name": "accept_curator",
"fields": [
{
"name": "bounty_id",
"type": 36,
"typeName": "BountyIndex"
}
],
"index": 4,
"docs": [
"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.",
"",
"## Complexity",
"- O(1)."
]
},
{
"name": "award_bounty",
"fields": [
{
"name": "bounty_id",
"type": 36,
"typeName": "BountyIndex"
},
{
"name": "beneficiary",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 5,
"docs": [
"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.",
"",
"## Complexity",
"- O(1)."
]
},
{
"name": "claim_bounty",
"fields": [
{
"name": "bounty_id",
"type": 36,
"typeName": "BountyIndex"
}
],
"index": 6,
"docs": [
"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.",
"",
"## Complexity",
"- O(1)."
]
},
{
"name": "close_bounty",
"fields": [
{
"name": "bounty_id",
"type": 36,
"typeName": "BountyIndex"
}
],
"index": 7,
"docs": [
"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.",
"",
"## Complexity",
"- O(1)."
]
},
{
"name": "extend_bounty_expiry",
"fields": [
{
"name": "bounty_id",
"type": 36,
"typeName": "BountyIndex"
},
{
"name": "remark",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 8,
"docs": [
"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.",
"",
"## Complexity",
"- O(1)."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 222,
"type": {
"path": [
"pallet_tips",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "report_awesome",
"fields": [
{
"name": "reason",
"type": 28,
"typeName": "Vec<u8>"
},
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 0,
"docs": [
"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.",
"",
"## Complexity",
"- `O(R)` where `R` length of `reason`.",
" - encoding and hashing of 'reason'"
]
},
{
"name": "retract_tip",
"fields": [
{
"name": "hash",
"type": 1,
"typeName": "T::Hash"
}
],
"index": 1,
"docs": [
"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.",
"",
"## Complexity",
"- `O(1)`",
" - Depends on the length of `T::Hash` which is fixed."
]
},
{
"name": "tip_new",
"fields": [
{
"name": "reason",
"type": 28,
"typeName": "Vec<u8>"
},
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "tip_value",
"type": 56,
"typeName": "BalanceOf<T, I>"
}
],
"index": 2,
"docs": [
"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.",
"",
"## 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`"
]
},
{
"name": "tip",
"fields": [
{
"name": "hash",
"type": 1,
"typeName": "T::Hash"
},
{
"name": "tip_value",
"type": 56,
"typeName": "BalanceOf<T, I>"
}
],
"index": 3,
"docs": [
"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.",
"",
"## 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`."
]
},
{
"name": "close_tip",
"fields": [
{
"name": "hash",
"type": 1,
"typeName": "T::Hash"
}
],
"index": 4,
"docs": [
"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.",
"",
"## 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`."
]
},
{
"name": "slash_tip",
"fields": [
{
"name": "hash",
"type": 1,
"typeName": "T::Hash"
}
],
"index": 5,
"docs": [
"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.",
"",
"## Complexity",
"- O(1)."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 223,
"type": {
"path": [
"pallet_assets",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "create",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "admin",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "min_balance",
"type": 57,
"typeName": "T::Balance"
}
],
"index": 0,
"docs": [
"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 conform to the configured `CreateOrigin` and 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",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "owner",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "is_sufficient",
"type": 54,
"typeName": "bool"
},
{
"name": "min_balance",
"type": 56,
"typeName": "T::Balance"
}
],
"index": 1,
"docs": [
"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`.",
"- `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": "start_destroy",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
}
],
"index": 2,
"docs": [
"Start the process of destroying a fungible asset class.",
"",
"`start_destroy` is the first in a series of extrinsics that should be called, to allow",
"destruction of an asset class.",
"",
"The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`.",
"",
"- `id`: The identifier of the asset to be destroyed. This must identify an existing",
" asset.",
"",
"The asset class must be frozen before calling `start_destroy`."
]
},
{
"name": "destroy_accounts",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
}
],
"index": 3,
"docs": [
"Destroy all accounts associated with a given asset.",
"",
"`destroy_accounts` should only be called after `start_destroy` has been called, and the",
"asset is in a `Destroying` state.",
"",
"Due to weight restrictions, this function may need to be called multiple times to fully",
"destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time.",
"",
"- `id`: The identifier of the asset to be destroyed. This must identify an existing",
" asset.",
"",
"Each call emits the `Event::DestroyedAccounts` event."
]
},
{
"name": "destroy_approvals",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
}
],
"index": 4,
"docs": [
"Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).",
"",
"`destroy_approvals` should only be called after `start_destroy` has been called, and the",
"asset is in a `Destroying` state.",
"",
"Due to weight restrictions, this function may need to be called multiple times to fully",
"destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time.",
"",
"- `id`: The identifier of the asset to be destroyed. This must identify an existing",
" asset.",
"",
"Each call emits the `Event::DestroyedApprovals` event."
]
},
{
"name": "finish_destroy",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
}
],
"index": 5,
"docs": [
"Complete destroying asset and unreserve currency.",
"",
"`finish_destroy` should only be called after `start_destroy` has been called, and the",
"asset is in a `Destroying` state. All accounts or approvals should be destroyed before",
"hand.",
"",
"- `id`: The identifier of the asset to be destroyed. This must identify an existing",
" asset.",
"",
"Each successful call emits the `Event::Destroyed` event."
]
},
{
"name": "mint",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "beneficiary",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "amount",
"type": 56,
"typeName": "T::Balance"
}
],
"index": 6,
"docs": [
"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 `Issued` event when successful.",
"",
"Weight: `O(1)`",
"Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`."
]
},
{
"name": "burn",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "amount",
"type": 56,
"typeName": "T::Balance"
}
],
"index": 7,
"docs": [
"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 `NoAccount` 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",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "target",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "amount",
"type": 56,
"typeName": "T::Balance"
}
],
"index": 8,
"docs": [
"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 `target`; Post-existence of sender; Account pre-existence of",
"`target`."
]
},
{
"name": "transfer_keep_alive",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "target",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "amount",
"type": 56,
"typeName": "T::Balance"
}
],
"index": 9,
"docs": [
"Move some assets from the sender account to another, keeping the sender account alive.",
"",
"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 `target`; Post-existence of sender; Account pre-existence of",
"`target`."
]
},
{
"name": "force_transfer",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "source",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "dest",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "amount",
"type": 56,
"typeName": "T::Balance"
}
],
"index": 10,
"docs": [
"Move some assets from one account to another.",
"",
"Origin must be Signed and the sender should be the Admin of the asset `id`.",
"",
"- `id`: The identifier of the asset to have some amount transferred.",
"- `source`: The account to be debited.",
"- `dest`: The account to be credited.",
"- `amount`: The amount by which the `source`'s balance of assets should be reduced and",
"`dest`'s balance increased. The amount actually transferred may be slightly greater in",
"the case that the transfer would otherwise take the `source` 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 `dest`; Post-existence of `source`; Account pre-existence of",
"`dest`."
]
},
{
"name": "freeze",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 11,
"docs": [
"Disallow further unprivileged transfers from an account.",
"",
"Origin must be Signed and the sender should be the Freezer of the asset `id`.",
"",
"- `id`: The identifier of the asset to be frozen.",
"- `who`: The account to be frozen.",
"",
"Emits `Frozen`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "thaw",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 12,
"docs": [
"Allow unprivileged transfers from an account again.",
"",
"Origin must be Signed and the sender should be the Admin of the asset `id`.",
"",
"- `id`: The identifier of the asset to be frozen.",
"- `who`: The account to be unfrozen.",
"",
"Emits `Thawed`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "freeze_asset",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
}
],
"index": 13,
"docs": [
"Disallow further unprivileged transfers for the asset class.",
"",
"Origin must be Signed and the sender should be the Freezer of the asset `id`.",
"",
"- `id`: The identifier of the asset to be frozen.",
"",
"Emits `Frozen`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "thaw_asset",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
}
],
"index": 14,
"docs": [
"Allow unprivileged transfers for the asset again.",
"",
"Origin must be Signed and the sender should be the Admin of the asset `id`.",
"",
"- `id`: The identifier of the asset to be thawed.",
"",
"Emits `Thawed`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "transfer_ownership",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "owner",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 15,
"docs": [
"Change the Owner of an asset.",
"",
"Origin must be Signed and the sender should be the Owner of the asset `id`.",
"",
"- `id`: The identifier of the asset.",
"- `owner`: The new Owner of this asset.",
"",
"Emits `OwnerChanged`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "set_team",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "issuer",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "admin",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "freezer",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 16,
"docs": [
"Change the Issuer, Admin and Freezer of an asset.",
"",
"Origin must be Signed and the sender should be the Owner of the asset `id`.",
"",
"- `id`: The identifier of the asset to be frozen.",
"- `issuer`: The new Issuer of this asset.",
"- `admin`: The new Admin of this asset.",
"- `freezer`: The new Freezer of this asset.",
"",
"Emits `TeamChanged`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "set_metadata",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "name",
"type": 28,
"typeName": "Vec<u8>"
},
{
"name": "symbol",
"type": 28,
"typeName": "Vec<u8>"
},
{
"name": "decimals",
"type": 3,
"typeName": "u8"
}
],
"index": 17,
"docs": [
"Set the metadata for an asset.",
"",
"Origin must be Signed and the sender should be the Owner of the asset `id`.",
"",
"Funds of sender are reserved according to the formula:",
"`MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into",
"account any already reserved funds.",
"",
"- `id`: The identifier of the asset to update.",
"- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.",
"- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.",
"- `decimals`: The number of decimals this asset uses to represent one unit.",
"",
"Emits `MetadataSet`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "clear_metadata",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
}
],
"index": 18,
"docs": [
"Clear the metadata for an asset.",
"",
"Origin must be Signed and the sender should be the Owner of the asset `id`.",
"",
"Any deposit is freed for the asset owner.",
"",
"- `id`: The identifier of the asset to clear.",
"",
"Emits `MetadataCleared`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "force_set_metadata",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "name",
"type": 28,
"typeName": "Vec<u8>"
},
{
"name": "symbol",
"type": 28,
"typeName": "Vec<u8>"
},
{
"name": "decimals",
"type": 3,
"typeName": "u8"
},
{
"name": "is_frozen",
"type": 54,
"typeName": "bool"
}
],
"index": 19,
"docs": [
"Force the metadata for an asset to some value.",
"",
"Origin must be ForceOrigin.",
"",
"Any deposit is left alone.",
"",
"- `id`: The identifier of the asset to update.",
"- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.",
"- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.",
"- `decimals`: The number of decimals this asset uses to represent one unit.",
"",
"Emits `MetadataSet`.",
"",
"Weight: `O(N + S)` where N and S are the length of the name and symbol respectively."
]
},
{
"name": "force_clear_metadata",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
}
],
"index": 20,
"docs": [
"Clear the metadata for an asset.",
"",
"Origin must be ForceOrigin.",
"",
"Any deposit is returned.",
"",
"- `id`: The identifier of the asset to clear.",
"",
"Emits `MetadataCleared`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "force_asset_status",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "owner",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "issuer",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "admin",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "freezer",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "min_balance",
"type": 56,
"typeName": "T::Balance"
},
{
"name": "is_sufficient",
"type": 54,
"typeName": "bool"
},
{
"name": "is_frozen",
"type": 54,
"typeName": "bool"
}
],
"index": 21,
"docs": [
"Alter the attributes of a given asset.",
"",
"Origin must be `ForceOrigin`.",
"",
"- `id`: The identifier of the asset.",
"- `owner`: The new Owner of this asset.",
"- `issuer`: The new Issuer of this asset.",
"- `admin`: The new Admin of this asset.",
"- `freezer`: The new Freezer of this asset.",
"- `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.",
"- `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient",
"value to account for the state bloat associated with its balance storage. If set to",
"`true`, then non-zero balances may be stored without a `consumer` reference (and thus",
"an ED in the Balances pallet or whatever else is used to control user-account state",
"growth).",
"- `is_frozen`: Whether this asset class is frozen except for permissioned/admin",
"instructions.",
"",
"Emits `AssetStatusChanged` with the identity of the asset.",
"",
"Weight: `O(1)`"
]
},
{
"name": "approve_transfer",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "delegate",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "amount",
"type": 56,
"typeName": "T::Balance"
}
],
"index": 22,
"docs": [
"Approve an amount of asset for transfer by a delegated third-party account.",
"",
"Origin must be Signed.",
"",
"Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account",
"for the purpose of holding the approval. If some non-zero amount of assets is already",
"approved from signing account to `delegate`, then it is topped up or unreserved to",
"meet the right value.",
"",
"NOTE: The signing account does not need to own `amount` of assets at the point of",
"making this call.",
"",
"- `id`: The identifier of the asset.",
"- `delegate`: The account to delegate permission to transfer asset.",
"- `amount`: The amount of asset that may be transferred by `delegate`. If there is",
"already an approval in place, then this acts additively.",
"",
"Emits `ApprovedTransfer` on success.",
"",
"Weight: `O(1)`"
]
},
{
"name": "cancel_approval",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "delegate",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 23,
"docs": [
"Cancel all of some asset approved for delegated transfer by a third-party account.",
"",
"Origin must be Signed and there must be an approval in place between signer and",
"`delegate`.",
"",
"Unreserves any deposit previously reserved by `approve_transfer` for the approval.",
"",
"- `id`: The identifier of the asset.",
"- `delegate`: The account delegated permission to transfer asset.",
"",
"Emits `ApprovalCancelled` on success.",
"",
"Weight: `O(1)`"
]
},
{
"name": "force_cancel_approval",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "owner",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "delegate",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 24,
"docs": [
"Cancel all of some asset approved for delegated transfer by a third-party account.",
"",
"Origin must be either ForceOrigin or Signed origin with the signer being the Admin",
"account of the asset `id`.",
"",
"Unreserves any deposit previously reserved by `approve_transfer` for the approval.",
"",
"- `id`: The identifier of the asset.",
"- `delegate`: The account delegated permission to transfer asset.",
"",
"Emits `ApprovalCancelled` on success.",
"",
"Weight: `O(1)`"
]
},
{
"name": "transfer_approved",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "owner",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "destination",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "amount",
"type": 56,
"typeName": "T::Balance"
}
],
"index": 25,
"docs": [
"Transfer some asset balance from a previously delegated account to some third-party",
"account.",
"",
"Origin must be Signed and there must be an approval in place by the `owner` to the",
"signer.",
"",
"If the entire amount approved for transfer is transferred, then any deposit previously",
"reserved by `approve_transfer` is unreserved.",
"",
"- `id`: The identifier of the asset.",
"- `owner`: The account which previously approved for a transfer of at least `amount` and",
"from which the asset balance will be withdrawn.",
"- `destination`: The account to which the asset balance of `amount` will be transferred.",
"- `amount`: The amount of assets to transfer.",
"",
"Emits `TransferredApproved` on success.",
"",
"Weight: `O(1)`"
]
},
{
"name": "touch",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
}
],
"index": 26,
"docs": [
"Create an asset account for non-provider assets.",
"",
"A deposit will be taken from the signer account.",
"",
"- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit",
" to be taken.",
"- `id`: The identifier of the asset for the account to be created.",
"",
"Emits `Touched` event when successful."
]
},
{
"name": "refund",
"fields": [
{
"name": "id",
"type": 36,
"typeName": "T::AssetIdParameter"
},
{
"name": "allow_burn",
"type": 54,
"typeName": "bool"
}
],
"index": 27,
"docs": [
"Return the deposit (if any) of an asset account.",
"",
"The origin must be Signed.",
"",
"- `id`: The identifier of the asset for the account to be created.",
"- `allow_burn`: If `true` then assets may be destroyed in order to complete the refund.",
"",
"Emits `Refunded` event when successful."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 224,
"type": {
"path": [
"pallet_lottery",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "buy_ticket",
"fields": [
{
"name": "call",
"type": 26,
"typeName": "Box<<T as Config>::RuntimeCall>"
}
],
"index": 0,
"docs": [
"Buy a ticket to enter the lottery.",
"",
"This extrinsic acts as a passthrough function for `call`. In all",
"situations where `call` alone would succeed, this extrinsic should",
"succeed.",
"",
"If `call` is successful, then we will attempt to purchase a ticket,",
"which may fail silently. To detect success of a ticket purchase, you",
"should listen for the `TicketBought` event.",
"",
"This extrinsic must be called by a signed origin."
]
},
{
"name": "set_calls",
"fields": [
{
"name": "calls",
"type": 25,
"typeName": "Vec<<T as Config>::RuntimeCall>"
}
],
"index": 1,
"docs": [
"Set calls in storage which can be used to purchase a lottery ticket.",
"",
"This function only matters if you use the `ValidateCall` implementation",
"provided by this pallet, which uses storage to determine the valid calls.",
"",
"This extrinsic must be called by the Manager origin."
]
},
{
"name": "start_lottery",
"fields": [
{
"name": "price",
"type": 57,
"typeName": "BalanceOf<T>"
},
{
"name": "length",
"type": 4,
"typeName": "T::BlockNumber"
},
{
"name": "delay",
"type": 4,
"typeName": "T::BlockNumber"
},
{
"name": "repeat",
"type": 54,
"typeName": "bool"
}
],
"index": 2,
"docs": [
"Start a lottery using the provided configuration.",
"",
"This extrinsic must be called by the `ManagerOrigin`.",
"",
"Parameters:",
"",
"* `price`: The cost of a single ticket.",
"* `length`: How long the lottery should run for starting at the current block.",
"* `delay`: How long after the lottery end we should wait before picking a winner.",
"* `repeat`: If the lottery should repeat when completed."
]
},
{
"name": "stop_repeat",
"index": 3,
"docs": [
"If a lottery is repeating, you can use this to stop the repeat.",
"The lottery will continue to run to completion.",
"",
"This extrinsic must be called by the `ManagerOrigin`."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 225,
"type": {
"path": [
"pallet_nis",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "place_bid",
"fields": [
{
"name": "amount",
"type": 56,
"typeName": "BalanceOf<T>"
},
{
"name": "duration",
"type": 4,
"typeName": "u32"
}
],
"index": 0,
"docs": [
"Place a bid.",
"",
"Origin must be Signed, and account must have at least `amount` in free balance.",
"",
"- `amount`: The amount of the bid; these funds will be reserved, and if/when",
" consolidated, removed. Must be at least `MinBid`.",
"- `duration`: The number of periods before which the newly consolidated bid may be",
" thawed. Must be greater than 1 and no more than `QueueCount`.",
"",
"Complexities:",
"- `Queues[duration].len()` (just take max)."
]
},
{
"name": "retract_bid",
"fields": [
{
"name": "amount",
"type": 56,
"typeName": "BalanceOf<T>"
},
{
"name": "duration",
"type": 4,
"typeName": "u32"
}
],
"index": 1,
"docs": [
"Retract a previously placed bid.",
"",
"Origin must be Signed, and the account should have previously issued a still-active bid",
"of `amount` for `duration`.",
"",
"- `amount`: The amount of the previous bid.",
"- `duration`: The duration of the previous bid."
]
},
{
"name": "fund_deficit",
"index": 2,
"docs": [
"Ensure we have sufficient funding for all potential payouts.",
"",
"- `origin`: Must be accepted by `FundOrigin`."
]
},
{
"name": "thaw_private",
"fields": [
{
"name": "index",
"type": 36,
"typeName": "ReceiptIndex"
},
{
"name": "maybe_proportion",
"type": 226,
"typeName": "Option<Perquintill>"
}
],
"index": 3,
"docs": [
"Reduce or remove an outstanding receipt, placing the according proportion of funds into",
"the account of the owner.",
"",
"- `origin`: Must be Signed and the account must be the owner of the receipt `index` as",
" well as any fungible counterpart.",
"- `index`: The index of the receipt.",
"- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If",
" `None`, then all of it should be."
]
},
{
"name": "thaw_communal",
"fields": [
{
"name": "index",
"type": 36,
"typeName": "ReceiptIndex"
}
],
"index": 4,
"docs": [
"Reduce or remove an outstanding receipt, placing the according proportion of funds into",
"the account of the owner.",
"",
"- `origin`: Must be Signed and the account must be the owner of the fungible counterpart",
" for receipt `index`.",
"- `index`: The index of the receipt."
]
},
{
"name": "communify",
"fields": [
{
"name": "index",
"type": 36,
"typeName": "ReceiptIndex"
}
],
"index": 5,
"docs": [
"Make a private receipt communal and create fungible counterparts for its owner."
]
},
{
"name": "privatize",
"fields": [
{
"name": "index",
"type": 36,
"typeName": "ReceiptIndex"
}
],
"index": 6,
"docs": [
"Make a communal receipt private and burn fungible counterparts from its owner."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 226,
"type": {
"path": [
"Option"
],
"params": [
{
"name": "T",
"type": 227
}
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Some",
"fields": [
{
"type": 227
}
],
"index": 1
}
]
}
}
}
},
{
"id": 227,
"type": {
"path": [
"sp_arithmetic",
"per_things",
"Perquintill"
],
"def": {
"composite": {
"fields": [
{
"type": 12,
"typeName": "u64"
}
]
}
}
}
},
{
"id": 228,
"type": {
"path": [
"pallet_uniques",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "create",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "admin",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 0,
"docs": [
"Issue a new collection of non-fungible items from a public origin.",
"",
"This new collection has no items initially and its owner is the origin.",
"",
"The origin must conform to the configured `CreateOrigin` and have sufficient funds free.",
"",
"`ItemDeposit` funds of sender are reserved.",
"",
"Parameters:",
"- `collection`: The identifier of the new collection. This must not be currently in use.",
"- `admin`: The admin of this collection. The admin is the initial address of each",
"member of the collection's admin team.",
"",
"Emits `Created` event when successful.",
"",
"Weight: `O(1)`"
]
},
{
"name": "force_create",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "owner",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "free_holding",
"type": 54,
"typeName": "bool"
}
],
"index": 1,
"docs": [
"Issue a new collection of non-fungible items from a privileged origin.",
"",
"This new collection has no items initially.",
"",
"The origin must conform to `ForceOrigin`.",
"",
"Unlike `create`, no funds are reserved.",
"",
"- `collection`: The identifier of the new item. This must not be currently in use.",
"- `owner`: The owner of this collection of items. The owner has full superuser",
" permissions",
"over this item, but may later change and configure the permissions using",
"`transfer_ownership` and `set_team`.",
"",
"Emits `ForceCreated` event when successful.",
"",
"Weight: `O(1)`"
]
},
{
"name": "destroy",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "witness",
"type": 229,
"typeName": "DestroyWitness"
}
],
"index": 2,
"docs": [
"Destroy a collection of fungible items.",
"",
"The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the",
"owner of the `collection`.",
"",
"- `collection`: The identifier of the collection to be destroyed.",
"- `witness`: Information on the items minted in the collection. This must be",
"correct.",
"",
"Emits `Destroyed` event when successful.",
"",
"Weight: `O(n + m)` where:",
"- `n = witness.items`",
"- `m = witness.item_metadatas`",
"- `a = witness.attributes`"
]
},
{
"name": "mint",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "owner",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 3,
"docs": [
"Mint an item of a particular collection.",
"",
"The origin must be Signed and the sender must be the Issuer of the `collection`.",
"",
"- `collection`: The collection of the item to be minted.",
"- `item`: The item value of the item to be minted.",
"- `beneficiary`: The initial owner of the minted item.",
"",
"Emits `Issued` event when successful.",
"",
"Weight: `O(1)`"
]
},
{
"name": "burn",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "check_owner",
"type": 230,
"typeName": "Option<AccountIdLookupOf<T>>"
}
],
"index": 4,
"docs": [
"Destroy a single item.",
"",
"Origin must be Signed and the signing account must be either:",
"- the Admin of the `collection`;",
"- the Owner of the `item`;",
"",
"- `collection`: The collection of the item to be burned.",
"- `item`: The item of the item to be burned.",
"- `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the",
" item is owned by this value.",
"",
"Emits `Burned` with the actual amount burned.",
"",
"Weight: `O(1)`",
"Modes: `check_owner.is_some()`."
]
},
{
"name": "transfer",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "dest",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 5,
"docs": [
"Move an item from the sender account to another.",
"",
"This resets the approved account of the item.",
"",
"Origin must be Signed and the signing account must be either:",
"- the Admin of the `collection`;",
"- the Owner of the `item`;",
"- the approved delegate for the `item` (in this case, the approval is reset).",
"",
"Arguments:",
"- `collection`: The collection of the item to be transferred.",
"- `item`: The item of the item to be transferred.",
"- `dest`: The account to receive ownership of the item.",
"",
"Emits `Transferred`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "redeposit",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "items",
"type": 123,
"typeName": "Vec<T::ItemId>"
}
],
"index": 6,
"docs": [
"Reevaluate the deposits on some items.",
"",
"Origin must be Signed and the sender should be the Owner of the `collection`.",
"",
"- `collection`: The collection to be frozen.",
"- `items`: The items of the collection whose deposits will be reevaluated.",
"",
"NOTE: This exists as a best-effort function. Any items which are unknown or",
"in the case that the owner account does not have reservable funds to pay for a",
"deposit increase are ignored. Generally the owner isn't going to call this on items",
"whose existing deposit is less than the refreshed deposit as it would only cost them,",
"so it's of little consequence.",
"",
"It will still return an error in the case that the collection is unknown of the signer",
"is not permitted to call it.",
"",
"Weight: `O(items.len())`"
]
},
{
"name": "freeze",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
}
],
"index": 7,
"docs": [
"Disallow further unprivileged transfer of an item.",
"",
"Origin must be Signed and the sender should be the Freezer of the `collection`.",
"",
"- `collection`: The collection of the item to be frozen.",
"- `item`: The item of the item to be frozen.",
"",
"Emits `Frozen`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "thaw",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
}
],
"index": 8,
"docs": [
"Re-allow unprivileged transfer of an item.",
"",
"Origin must be Signed and the sender should be the Freezer of the `collection`.",
"",
"- `collection`: The collection of the item to be thawed.",
"- `item`: The item of the item to be thawed.",
"",
"Emits `Thawed`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "freeze_collection",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
}
],
"index": 9,
"docs": [
"Disallow further unprivileged transfers for a whole collection.",
"",
"Origin must be Signed and the sender should be the Freezer of the `collection`.",
"",
"- `collection`: The collection to be frozen.",
"",
"Emits `CollectionFrozen`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "thaw_collection",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
}
],
"index": 10,
"docs": [
"Re-allow unprivileged transfers for a whole collection.",
"",
"Origin must be Signed and the sender should be the Admin of the `collection`.",
"",
"- `collection`: The collection to be thawed.",
"",
"Emits `CollectionThawed`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "transfer_ownership",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "owner",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 11,
"docs": [
"Change the Owner of a collection.",
"",
"Origin must be Signed and the sender should be the Owner of the `collection`.",
"",
"- `collection`: The collection whose owner should be changed.",
"- `owner`: The new Owner of this collection. They must have called",
" `set_accept_ownership` with `collection` in order for this operation to succeed.",
"",
"Emits `OwnerChanged`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "set_team",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "issuer",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "admin",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "freezer",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 12,
"docs": [
"Change the Issuer, Admin and Freezer of a collection.",
"",
"Origin must be Signed and the sender should be the Owner of the `collection`.",
"",
"- `collection`: The collection whose team should be changed.",
"- `issuer`: The new Issuer of this collection.",
"- `admin`: The new Admin of this collection.",
"- `freezer`: The new Freezer of this collection.",
"",
"Emits `TeamChanged`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "approve_transfer",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "delegate",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 13,
"docs": [
"Approve an item to be transferred by a delegated third-party account.",
"",
"The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be",
"either the owner of the `item` or the admin of the collection.",
"",
"- `collection`: The collection of the item to be approved for delegated transfer.",
"- `item`: The item of the item to be approved for delegated transfer.",
"- `delegate`: The account to delegate permission to transfer the item.",
"",
"Important NOTE: The `approved` account gets reset after each transfer.",
"",
"Emits `ApprovedTransfer` on success.",
"",
"Weight: `O(1)`"
]
},
{
"name": "cancel_approval",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "maybe_check_delegate",
"type": 230,
"typeName": "Option<AccountIdLookupOf<T>>"
}
],
"index": 14,
"docs": [
"Cancel the prior approval for the transfer of an item by a delegate.",
"",
"Origin must be either:",
"- the `Force` origin;",
"- `Signed` with the signer being the Admin of the `collection`;",
"- `Signed` with the signer being the Owner of the `item`;",
"",
"Arguments:",
"- `collection`: The collection of the item of whose approval will be cancelled.",
"- `item`: The item of the item of whose approval will be cancelled.",
"- `maybe_check_delegate`: If `Some` will ensure that the given account is the one to",
" which permission of transfer is delegated.",
"",
"Emits `ApprovalCancelled` on success.",
"",
"Weight: `O(1)`"
]
},
{
"name": "force_item_status",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "owner",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "issuer",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "admin",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "freezer",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "free_holding",
"type": 54,
"typeName": "bool"
},
{
"name": "is_frozen",
"type": 54,
"typeName": "bool"
}
],
"index": 15,
"docs": [
"Alter the attributes of a given item.",
"",
"Origin must be `ForceOrigin`.",
"",
"- `collection`: The identifier of the item.",
"- `owner`: The new Owner of this item.",
"- `issuer`: The new Issuer of this item.",
"- `admin`: The new Admin of this item.",
"- `freezer`: The new Freezer of this item.",
"- `free_holding`: Whether a deposit is taken for holding an item of this collection.",
"- `is_frozen`: Whether this collection is frozen except for permissioned/admin",
"instructions.",
"",
"Emits `ItemStatusChanged` with the identity of the item.",
"",
"Weight: `O(1)`"
]
},
{
"name": "set_attribute",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "maybe_item",
"type": 114,
"typeName": "Option<T::ItemId>"
},
{
"name": "key",
"type": 231,
"typeName": "BoundedVec<u8, T::KeyLimit>"
},
{
"name": "value",
"type": 232,
"typeName": "BoundedVec<u8, T::ValueLimit>"
}
],
"index": 16,
"docs": [
"Set an attribute for a collection or item.",
"",
"Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the",
"`collection`.",
"",
"If the origin is Signed, then funds of signer are reserved according to the formula:",
"`MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into",
"account any already reserved funds.",
"",
"- `collection`: The identifier of the collection whose item's metadata to set.",
"- `maybe_item`: The identifier of the item whose metadata to set.",
"- `key`: The key of the attribute.",
"- `value`: The value to which to set the attribute.",
"",
"Emits `AttributeSet`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "clear_attribute",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "maybe_item",
"type": 114,
"typeName": "Option<T::ItemId>"
},
{
"name": "key",
"type": 231,
"typeName": "BoundedVec<u8, T::KeyLimit>"
}
],
"index": 17,
"docs": [
"Clear an attribute for a collection or item.",
"",
"Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the",
"`collection`.",
"",
"Any deposit is freed for the collection's owner.",
"",
"- `collection`: The identifier of the collection whose item's metadata to clear.",
"- `maybe_item`: The identifier of the item whose metadata to clear.",
"- `key`: The key of the attribute.",
"",
"Emits `AttributeCleared`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "set_metadata",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "data",
"type": 233,
"typeName": "BoundedVec<u8, T::StringLimit>"
},
{
"name": "is_frozen",
"type": 54,
"typeName": "bool"
}
],
"index": 18,
"docs": [
"Set the metadata for an item.",
"",
"Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the",
"`collection`.",
"",
"If the origin is Signed, then funds of signer are reserved according to the formula:",
"`MetadataDepositBase + DepositPerByte * data.len` taking into",
"account any already reserved funds.",
"",
"- `collection`: The identifier of the collection whose item's metadata to set.",
"- `item`: The identifier of the item whose metadata to set.",
"- `data`: The general information of this item. Limited in length by `StringLimit`.",
"- `is_frozen`: Whether the metadata should be frozen against further changes.",
"",
"Emits `MetadataSet`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "clear_metadata",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
}
],
"index": 19,
"docs": [
"Clear the metadata for an item.",
"",
"Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the",
"`item`.",
"",
"Any deposit is freed for the collection's owner.",
"",
"- `collection`: The identifier of the collection whose item's metadata to clear.",
"- `item`: The identifier of the item whose metadata to clear.",
"",
"Emits `MetadataCleared`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "set_collection_metadata",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "data",
"type": 233,
"typeName": "BoundedVec<u8, T::StringLimit>"
},
{
"name": "is_frozen",
"type": 54,
"typeName": "bool"
}
],
"index": 20,
"docs": [
"Set the metadata for a collection.",
"",
"Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of",
"the `collection`.",
"",
"If the origin is `Signed`, then funds of signer are reserved according to the formula:",
"`MetadataDepositBase + DepositPerByte * data.len` taking into",
"account any already reserved funds.",
"",
"- `collection`: The identifier of the item whose metadata to update.",
"- `data`: The general information of this item. Limited in length by `StringLimit`.",
"- `is_frozen`: Whether the metadata should be frozen against further changes.",
"",
"Emits `CollectionMetadataSet`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "clear_collection_metadata",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
}
],
"index": 21,
"docs": [
"Clear the metadata for a collection.",
"",
"Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of",
"the `collection`.",
"",
"Any deposit is freed for the collection's owner.",
"",
"- `collection`: The identifier of the collection whose metadata to clear.",
"",
"Emits `CollectionMetadataCleared`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "set_accept_ownership",
"fields": [
{
"name": "maybe_collection",
"type": 114,
"typeName": "Option<T::CollectionId>"
}
],
"index": 22,
"docs": [
"Set (or reset) the acceptance of ownership for a particular account.",
"",
"Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a",
"provider reference.",
"",
"- `maybe_collection`: The identifier of the collection whose ownership the signer is",
" willing to accept, or if `None`, an indication that the signer is willing to accept no",
" ownership transferal.",
"",
"Emits `OwnershipAcceptanceChanged`."
]
},
{
"name": "set_collection_max_supply",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "max_supply",
"type": 4,
"typeName": "u32"
}
],
"index": 23,
"docs": [
"Set the maximum amount of items a collection could have.",
"",
"Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of",
"the `collection`.",
"",
"Note: This function can only succeed once per collection.",
"",
"- `collection`: The identifier of the collection to change.",
"- `max_supply`: The maximum amount of items a collection could have.",
"",
"Emits `CollectionMaxSupplySet` event when successful."
]
},
{
"name": "set_price",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "price",
"type": 234,
"typeName": "Option<ItemPrice<T, I>>"
},
{
"name": "whitelisted_buyer",
"type": 230,
"typeName": "Option<AccountIdLookupOf<T>>"
}
],
"index": 24,
"docs": [
"Set (or reset) the price for an item.",
"",
"Origin must be Signed and must be the owner of the asset `item`.",
"",
"- `collection`: The collection of the item.",
"- `item`: The item to set the price for.",
"- `price`: The price for the item. Pass `None`, to reset the price.",
"- `buyer`: Restricts the buy operation to a specific account.",
"",
"Emits `ItemPriceSet` on success if the price is not `None`.",
"Emits `ItemPriceRemoved` on success if the price is `None`."
]
},
{
"name": "buy_item",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "bid_price",
"type": 57,
"typeName": "ItemPrice<T, I>"
}
],
"index": 25,
"docs": [
"Allows to buy an item if it's up for sale.",
"",
"Origin must be Signed and must not be the owner of the `item`.",
"",
"- `collection`: The collection of the item.",
"- `item`: The item the sender wants to buy.",
"- `bid_price`: The price the sender is willing to pay.",
"",
"Emits `ItemBought` on success."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 229,
"type": {
"path": [
"pallet_uniques",
"types",
"DestroyWitness"
],
"def": {
"composite": {
"fields": [
{
"name": "items",
"type": 36,
"typeName": "u32"
},
{
"name": "item_metadatas",
"type": 36,
"typeName": "u32"
},
{
"name": "attributes",
"type": 36,
"typeName": "u32"
}
]
}
}
}
},
{
"id": 230,
"type": {
"path": [
"Option"
],
"params": [
{
"name": "T",
"type": 51
}
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Some",
"fields": [
{
"type": 51
}
],
"index": 1
}
]
}
}
}
},
{
"id": 231,
"type": {
"path": [
"bounded_collections",
"bounded_vec",
"BoundedVec"
],
"params": [
{
"name": "T",
"type": 3
},
{
"name": "S",
"type": null
}
],
"def": {
"composite": {
"fields": [
{
"type": 28,
"typeName": "Vec<T>"
}
]
}
}
}
},
{
"id": 232,
"type": {
"path": [
"bounded_collections",
"bounded_vec",
"BoundedVec"
],
"params": [
{
"name": "T",
"type": 3
},
{
"name": "S",
"type": null
}
],
"def": {
"composite": {
"fields": [
{
"type": 28,
"typeName": "Vec<T>"
}
]
}
}
}
},
{
"id": 233,
"type": {
"path": [
"bounded_collections",
"bounded_vec",
"BoundedVec"
],
"params": [
{
"name": "T",
"type": 3
},
{
"name": "S",
"type": null
}
],
"def": {
"composite": {
"fields": [
{
"type": 28,
"typeName": "Vec<T>"
}
]
}
}
}
},
{
"id": 234,
"type": {
"path": [
"Option"
],
"params": [
{
"name": "T",
"type": 57
}
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Some",
"fields": [
{
"type": 57
}
],
"index": 1
}
]
}
}
}
},
{
"id": 235,
"type": {
"path": [
"pallet_nfts",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "create",
"fields": [
{
"name": "admin",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "config",
"type": 236,
"typeName": "CollectionConfigFor<T, I>"
}
],
"index": 0,
"docs": [
"Issue a new collection of non-fungible items from a public origin.",
"",
"This new collection has no items initially and its owner is the origin.",
"",
"The origin must be Signed and the sender must have sufficient funds free.",
"",
"`ItemDeposit` funds of sender are reserved.",
"",
"Parameters:",
"- `admin`: The admin of this collection. The admin is the initial address of each",
"member of the collection's admin team.",
"",
"Emits `Created` event when successful.",
"",
"Weight: `O(1)`"
]
},
{
"name": "force_create",
"fields": [
{
"name": "owner",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "config",
"type": 236,
"typeName": "CollectionConfigFor<T, I>"
}
],
"index": 1,
"docs": [
"Issue a new collection of non-fungible items from a privileged origin.",
"",
"This new collection has no items initially.",
"",
"The origin must conform to `ForceOrigin`.",
"",
"Unlike `create`, no funds are reserved.",
"",
"- `owner`: The owner of this collection of items. The owner has full superuser",
" permissions over this item, but may later change and configure the permissions using",
" `transfer_ownership` and `set_team`.",
"",
"Emits `ForceCreated` event when successful.",
"",
"Weight: `O(1)`"
]
},
{
"name": "destroy",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "witness",
"type": 243,
"typeName": "DestroyWitness"
}
],
"index": 2,
"docs": [
"Destroy a collection of fungible items.",
"",
"The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the",
"owner of the `collection`.",
"",
"- `collection`: The identifier of the collection to be destroyed.",
"- `witness`: Information on the items minted in the collection. This must be",
"correct.",
"",
"Emits `Destroyed` event when successful.",
"",
"Weight: `O(n + m)` where:",
"- `n = witness.items`",
"- `m = witness.item_metadatas`",
"- `a = witness.attributes`"
]
},
{
"name": "mint",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "mint_to",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "witness_data",
"type": 244,
"typeName": "Option<MintWitness<T::ItemId>>"
}
],
"index": 3,
"docs": [
"Mint an item of a particular collection.",
"",
"The origin must be Signed and the sender must be the Issuer of the `collection`.",
"",
"- `collection`: The collection of the item to be minted.",
"- `item`: An identifier of the new item.",
"- `mint_to`: Account into which the item will be minted.",
"- `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned",
" item_id from that collection needs to be provided within the witness data object.",
"",
"Note: the deposit will be taken from the `origin` and not the `owner` of the `item`.",
"",
"Emits `Issued` event when successful.",
"",
"Weight: `O(1)`"
]
},
{
"name": "force_mint",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "mint_to",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "item_config",
"type": 246,
"typeName": "ItemConfig"
}
],
"index": 4,
"docs": [
"Mint an item of a particular collection from a privileged origin.",
"",
"The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the",
"Issuer of the `collection`.",
"",
"- `collection`: The collection of the item to be minted.",
"- `item`: An identifier of the new item.",
"- `mint_to`: Account into which the item will be minted.",
"- `item_config`: A config of the new item.",
"",
"Emits `Issued` event when successful.",
"",
"Weight: `O(1)`"
]
},
{
"name": "burn",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "check_owner",
"type": 230,
"typeName": "Option<AccountIdLookupOf<T>>"
}
],
"index": 5,
"docs": [
"Destroy a single item.",
"",
"Origin must be Signed and the signing account must be either:",
"- the Admin of the `collection`;",
"- the Owner of the `item`;",
"",
"- `collection`: The collection of the item to be burned.",
"- `item`: The item to be burned.",
"- `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the",
" item is owned by this value.",
"",
"Emits `Burned` with the actual amount burned.",
"",
"Weight: `O(1)`",
"Modes: `check_owner.is_some()`."
]
},
{
"name": "transfer",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "dest",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 6,
"docs": [
"Move an item from the sender account to another.",
"",
"Origin must be Signed and the signing account must be either:",
"- the Admin of the `collection`;",
"- the Owner of the `item`;",
"- the approved delegate for the `item` (in this case, the approval is reset).",
"",
"Arguments:",
"- `collection`: The collection of the item to be transferred.",
"- `item`: The item to be transferred.",
"- `dest`: The account to receive ownership of the item.",
"",
"Emits `Transferred`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "redeposit",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "items",
"type": 123,
"typeName": "Vec<T::ItemId>"
}
],
"index": 7,
"docs": [
"Re-evaluate the deposits on some items.",
"",
"Origin must be Signed and the sender should be the Owner of the `collection`.",
"",
"- `collection`: The collection of the items to be reevaluated.",
"- `items`: The items of the collection whose deposits will be reevaluated.",
"",
"NOTE: This exists as a best-effort function. Any items which are unknown or",
"in the case that the owner account does not have reservable funds to pay for a",
"deposit increase are ignored. Generally the owner isn't going to call this on items",
"whose existing deposit is less than the refreshed deposit as it would only cost them,",
"so it's of little consequence.",
"",
"It will still return an error in the case that the collection is unknown or the signer",
"is not permitted to call it.",
"",
"Weight: `O(items.len())`"
]
},
{
"name": "lock_item_transfer",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
}
],
"index": 8,
"docs": [
"Disallow further unprivileged transfer of an item.",
"",
"Origin must be Signed and the sender should be the Freezer of the `collection`.",
"",
"- `collection`: The collection of the item to be changed.",
"- `item`: The item to become non-transferable.",
"",
"Emits `ItemTransferLocked`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "unlock_item_transfer",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
}
],
"index": 9,
"docs": [
"Re-allow unprivileged transfer of an item.",
"",
"Origin must be Signed and the sender should be the Freezer of the `collection`.",
"",
"- `collection`: The collection of the item to be changed.",
"- `item`: The item to become transferable.",
"",
"Emits `ItemTransferUnlocked`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "lock_collection",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "lock_settings",
"type": 237,
"typeName": "CollectionSettings"
}
],
"index": 10,
"docs": [
"Disallows specified settings for the whole collection.",
"",
"Origin must be Signed and the sender should be the Freezer of the `collection`.",
"",
"- `collection`: The collection to be locked.",
"- `lock_settings`: The settings to be locked.",
"",
"Note: it's possible to only lock(set) the setting, but not to unset it.",
"Emits `CollectionLocked`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "transfer_ownership",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "owner",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 11,
"docs": [
"Change the Owner of a collection.",
"",
"Origin must be Signed and the sender should be the Owner of the `collection`.",
"",
"- `collection`: The collection whose owner should be changed.",
"- `owner`: The new Owner of this collection. They must have called",
" `set_accept_ownership` with `collection` in order for this operation to succeed.",
"",
"Emits `OwnerChanged`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "set_team",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "issuer",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "admin",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "freezer",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 12,
"docs": [
"Change the Issuer, Admin and Freezer of a collection.",
"",
"Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the",
"`collection`.",
"",
"- `collection`: The collection whose team should be changed.",
"- `issuer`: The new Issuer of this collection.",
"- `admin`: The new Admin of this collection.",
"- `freezer`: The new Freezer of this collection.",
"",
"Emits `TeamChanged`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "force_collection_owner",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "owner",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 13,
"docs": [
"Change the Owner of a collection.",
"",
"Origin must be `ForceOrigin`.",
"",
"- `collection`: The identifier of the collection.",
"- `owner`: The new Owner of this collection.",
"",
"Emits `OwnerChanged`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "force_collection_config",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "config",
"type": 236,
"typeName": "CollectionConfigFor<T, I>"
}
],
"index": 14,
"docs": [
"Change the config of a collection.",
"",
"Origin must be `ForceOrigin`.",
"",
"- `collection`: The identifier of the collection.",
"- `config`: The new config of this collection.",
"",
"Emits `CollectionConfigChanged`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "approve_transfer",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "delegate",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "maybe_deadline",
"type": 114,
"typeName": "Option<<T as SystemConfig>::BlockNumber>"
}
],
"index": 15,
"docs": [
"Approve an item to be transferred by a delegated third-party account.",
"",
"Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the",
"`item`.",
"",
"- `collection`: The collection of the item to be approved for delegated transfer.",
"- `item`: The item to be approved for delegated transfer.",
"- `delegate`: The account to delegate permission to transfer the item.",
"- `maybe_deadline`: Optional deadline for the approval. Specified by providing the",
"\tnumber of blocks after which the approval will expire",
"",
"Emits `TransferApproved` on success.",
"",
"Weight: `O(1)`"
]
},
{
"name": "cancel_approval",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "delegate",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 16,
"docs": [
"Cancel one of the transfer approvals for a specific item.",
"",
"Origin must be either:",
"- the `Force` origin;",
"- `Signed` with the signer being the Admin of the `collection`;",
"- `Signed` with the signer being the Owner of the `item`;",
"",
"Arguments:",
"- `collection`: The collection of the item of whose approval will be cancelled.",
"- `item`: The item of the collection of whose approval will be cancelled.",
"- `delegate`: The account that is going to loose their approval.",
"",
"Emits `ApprovalCancelled` on success.",
"",
"Weight: `O(1)`"
]
},
{
"name": "clear_all_transfer_approvals",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
}
],
"index": 17,
"docs": [
"Cancel all the approvals of a specific item.",
"",
"Origin must be either:",
"- the `Force` origin;",
"- `Signed` with the signer being the Admin of the `collection`;",
"- `Signed` with the signer being the Owner of the `item`;",
"",
"Arguments:",
"- `collection`: The collection of the item of whose approvals will be cleared.",
"- `item`: The item of the collection of whose approvals will be cleared.",
"",
"Emits `AllApprovalsCancelled` on success.",
"",
"Weight: `O(1)`"
]
},
{
"name": "lock_item_properties",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "lock_metadata",
"type": 54,
"typeName": "bool"
},
{
"name": "lock_attributes",
"type": 54,
"typeName": "bool"
}
],
"index": 18,
"docs": [
"Disallows changing the metadata or attributes of the item.",
"",
"Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the",
"`collection`.",
"",
"- `collection`: The collection if the `item`.",
"- `item`: An item to be locked.",
"- `lock_metadata`: Specifies whether the metadata should be locked.",
"- `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace",
" should be locked.",
"",
"Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace",
"only. When the metadata or attributes are locked, it won't be possible the unlock them.",
"",
"Emits `ItemPropertiesLocked`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "set_attribute",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "maybe_item",
"type": 114,
"typeName": "Option<T::ItemId>"
},
{
"name": "namespace",
"type": 247,
"typeName": "AttributeNamespace<T::AccountId>"
},
{
"name": "key",
"type": 231,
"typeName": "BoundedVec<u8, T::KeyLimit>"
},
{
"name": "value",
"type": 232,
"typeName": "BoundedVec<u8, T::ValueLimit>"
}
],
"index": 19,
"docs": [
"Set an attribute for a collection or item.",
"",
"Origin must be Signed and must conform to the namespace ruleset:",
"- `CollectionOwner` namespace could be modified by the `collection` owner only;",
"- `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item`",
" should be set in that case;",
"- `Account(AccountId)` namespace could be modified only when the `origin` was given a",
" permission to do so;",
"",
"The funds of `origin` are reserved according to the formula:",
"`AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into",
"account any already reserved funds.",
"",
"- `collection`: The identifier of the collection whose item's metadata to set.",
"- `maybe_item`: The identifier of the item whose metadata to set.",
"- `namespace`: Attribute's namespace.",
"- `key`: The key of the attribute.",
"- `value`: The value to which to set the attribute.",
"",
"Emits `AttributeSet`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "force_set_attribute",
"fields": [
{
"name": "set_as",
"type": 141,
"typeName": "Option<T::AccountId>"
},
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "maybe_item",
"type": 114,
"typeName": "Option<T::ItemId>"
},
{
"name": "namespace",
"type": 247,
"typeName": "AttributeNamespace<T::AccountId>"
},
{
"name": "key",
"type": 231,
"typeName": "BoundedVec<u8, T::KeyLimit>"
},
{
"name": "value",
"type": 232,
"typeName": "BoundedVec<u8, T::ValueLimit>"
}
],
"index": 20,
"docs": [
"Force-set an attribute for a collection or item.",
"",
"Origin must be `ForceOrigin`.",
"",
"If the attribute already exists and it was set by another account, the deposit",
"will be returned to the previous owner.",
"",
"- `set_as`: An optional owner of the attribute.",
"- `collection`: The identifier of the collection whose item's metadata to set.",
"- `maybe_item`: The identifier of the item whose metadata to set.",
"- `namespace`: Attribute's namespace.",
"- `key`: The key of the attribute.",
"- `value`: The value to which to set the attribute.",
"",
"Emits `AttributeSet`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "clear_attribute",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "maybe_item",
"type": 114,
"typeName": "Option<T::ItemId>"
},
{
"name": "namespace",
"type": 247,
"typeName": "AttributeNamespace<T::AccountId>"
},
{
"name": "key",
"type": 231,
"typeName": "BoundedVec<u8, T::KeyLimit>"
}
],
"index": 21,
"docs": [
"Clear an attribute for a collection or item.",
"",
"Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the",
"attribute.",
"",
"Any deposit is freed for the collection's owner.",
"",
"- `collection`: The identifier of the collection whose item's metadata to clear.",
"- `maybe_item`: The identifier of the item whose metadata to clear.",
"- `namespace`: Attribute's namespace.",
"- `key`: The key of the attribute.",
"",
"Emits `AttributeCleared`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "approve_item_attributes",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "delegate",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 22,
"docs": [
"Approve item's attributes to be changed by a delegated third-party account.",
"",
"Origin must be Signed and must be an owner of the `item`.",
"",
"- `collection`: A collection of the item.",
"- `item`: The item that holds attributes.",
"- `delegate`: The account to delegate permission to change attributes of the item.",
"",
"Emits `ItemAttributesApprovalAdded` on success."
]
},
{
"name": "cancel_item_attributes_approval",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "delegate",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "witness",
"type": 248,
"typeName": "CancelAttributesApprovalWitness"
}
],
"index": 23,
"docs": [
"Cancel the previously provided approval to change item's attributes.",
"All the previously set attributes by the `delegate` will be removed.",
"",
"Origin must be Signed and must be an owner of the `item`.",
"",
"- `collection`: Collection that the item is contained within.",
"- `item`: The item that holds attributes.",
"- `delegate`: The previously approved account to remove.",
"",
"Emits `ItemAttributesApprovalRemoved` on success."
]
},
{
"name": "set_metadata",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "data",
"type": 233,
"typeName": "BoundedVec<u8, T::StringLimit>"
}
],
"index": 24,
"docs": [
"Set the metadata for an item.",
"",
"Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the",
"`collection`.",
"",
"If the origin is Signed, then funds of signer are reserved according to the formula:",
"`MetadataDepositBase + DepositPerByte * data.len` taking into",
"account any already reserved funds.",
"",
"- `collection`: The identifier of the collection whose item's metadata to set.",
"- `item`: The identifier of the item whose metadata to set.",
"- `data`: The general information of this item. Limited in length by `StringLimit`.",
"",
"Emits `ItemMetadataSet`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "clear_metadata",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
}
],
"index": 25,
"docs": [
"Clear the metadata for an item.",
"",
"Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the",
"`collection`.",
"",
"Any deposit is freed for the collection's owner.",
"",
"- `collection`: The identifier of the collection whose item's metadata to clear.",
"- `item`: The identifier of the item whose metadata to clear.",
"",
"Emits `ItemMetadataCleared`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "set_collection_metadata",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "data",
"type": 233,
"typeName": "BoundedVec<u8, T::StringLimit>"
}
],
"index": 26,
"docs": [
"Set the metadata for a collection.",
"",
"Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of",
"the `collection`.",
"",
"If the origin is `Signed`, then funds of signer are reserved according to the formula:",
"`MetadataDepositBase + DepositPerByte * data.len` taking into",
"account any already reserved funds.",
"",
"- `collection`: The identifier of the item whose metadata to update.",
"- `data`: The general information of this item. Limited in length by `StringLimit`.",
"",
"Emits `CollectionMetadataSet`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "clear_collection_metadata",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
}
],
"index": 27,
"docs": [
"Clear the metadata for a collection.",
"",
"Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of",
"the `collection`.",
"",
"Any deposit is freed for the collection's owner.",
"",
"- `collection`: The identifier of the collection whose metadata to clear.",
"",
"Emits `CollectionMetadataCleared`.",
"",
"Weight: `O(1)`"
]
},
{
"name": "set_accept_ownership",
"fields": [
{
"name": "maybe_collection",
"type": 114,
"typeName": "Option<T::CollectionId>"
}
],
"index": 28,
"docs": [
"Set (or reset) the acceptance of ownership for a particular account.",
"",
"Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a",
"provider reference.",
"",
"- `maybe_collection`: The identifier of the collection whose ownership the signer is",
" willing to accept, or if `None`, an indication that the signer is willing to accept no",
" ownership transferal.",
"",
"Emits `OwnershipAcceptanceChanged`."
]
},
{
"name": "set_collection_max_supply",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "max_supply",
"type": 4,
"typeName": "u32"
}
],
"index": 29,
"docs": [
"Set the maximum number of items a collection could have.",
"",
"Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of",
"the `collection`.",
"",
"- `collection`: The identifier of the collection to change.",
"- `max_supply`: The maximum number of items a collection could have.",
"",
"Emits `CollectionMaxSupplySet` event when successful."
]
},
{
"name": "update_mint_settings",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "mint_settings",
"type": 239,
"typeName": "MintSettings<BalanceOf<T, I>,<T as SystemConfig>::BlockNumber, T::\nCollectionId,>"
}
],
"index": 30,
"docs": [
"Update mint settings.",
"",
"Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of",
"the `collection`.",
"",
"- `collection`: The identifier of the collection to change.",
"- `mint_settings`: The new mint settings.",
"",
"Emits `CollectionMintSettingsUpdated` event when successful."
]
},
{
"name": "set_price",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "price",
"type": 234,
"typeName": "Option<ItemPrice<T, I>>"
},
{
"name": "whitelisted_buyer",
"type": 230,
"typeName": "Option<AccountIdLookupOf<T>>"
}
],
"index": 31,
"docs": [
"Set (or reset) the price for an item.",
"",
"Origin must be Signed and must be the owner of the asset `item`.",
"",
"- `collection`: The collection of the item.",
"- `item`: The item to set the price for.",
"- `price`: The price for the item. Pass `None`, to reset the price.",
"- `buyer`: Restricts the buy operation to a specific account.",
"",
"Emits `ItemPriceSet` on success if the price is not `None`.",
"Emits `ItemPriceRemoved` on success if the price is `None`."
]
},
{
"name": "buy_item",
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "bid_price",
"type": 57,
"typeName": "ItemPrice<T, I>"
}
],
"index": 32,
"docs": [
"Allows to buy an item if it's up for sale.",
"",
"Origin must be Signed and must not be the owner of the `item`.",
"",
"- `collection`: The collection of the item.",
"- `item`: The item the sender wants to buy.",
"- `bid_price`: The price the sender is willing to pay.",
"",
"Emits `ItemBought` on success."
]
},
{
"name": "pay_tips",
"fields": [
{
"name": "tips",
"type": 249,
"typeName": "BoundedVec<ItemTipOf<T, I>, T::MaxTips>"
}
],
"index": 33,
"docs": [
"Allows to pay the tips.",
"",
"Origin must be Signed.",
"",
"- `tips`: Tips array.",
"",
"Emits `TipSent` on every tip transfer."
]
},
{
"name": "create_swap",
"fields": [
{
"name": "offered_collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "offered_item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "desired_collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "maybe_desired_item",
"type": 114,
"typeName": "Option<T::ItemId>"
},
{
"name": "maybe_price",
"type": 252,
"typeName": "Option<PriceWithDirection<ItemPrice<T, I>>>"
},
{
"name": "duration",
"type": 4,
"typeName": "<T as SystemConfig>::BlockNumber"
}
],
"index": 34,
"docs": [
"Register a new atomic swap, declaring an intention to send an `item` in exchange for",
"`desired_item` from origin to target on the current blockchain.",
"The target can execute the swap during the specified `duration` of blocks (if set).",
"Additionally, the price could be set for the desired `item`.",
"",
"Origin must be Signed and must be an owner of the `item`.",
"",
"- `collection`: The collection of the item.",
"- `item`: The item an owner wants to give.",
"- `desired_collection`: The collection of the desired item.",
"- `desired_item`: The desired item an owner wants to receive.",
"- `maybe_price`: The price an owner is willing to pay or receive for the desired `item`.",
"- `duration`: A deadline for the swap. Specified by providing the number of blocks",
"\tafter which the swap will expire.",
"",
"Emits `SwapCreated` on success."
]
},
{
"name": "cancel_swap",
"fields": [
{
"name": "offered_collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "offered_item",
"type": 4,
"typeName": "T::ItemId"
}
],
"index": 35,
"docs": [
"Cancel an atomic swap.",
"",
"Origin must be Signed.",
"Origin must be an owner of the `item` if the deadline hasn't expired.",
"",
"- `collection`: The collection of the item.",
"- `item`: The item an owner wants to give.",
"",
"Emits `SwapCancelled` on success."
]
},
{
"name": "claim_swap",
"fields": [
{
"name": "send_collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "send_item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "receive_collection",
"type": 4,
"typeName": "T::CollectionId"
},
{
"name": "receive_item",
"type": 4,
"typeName": "T::ItemId"
},
{
"name": "witness_price",
"type": 252,
"typeName": "Option<PriceWithDirection<ItemPrice<T, I>>>"
}
],
"index": 36,
"docs": [
"Claim an atomic swap.",
"This method executes a pending swap, that was created by a counterpart before.",
"",
"Origin must be Signed and must be an owner of the `item`.",
"",
"- `send_collection`: The collection of the item to be sent.",
"- `send_item`: The item to be sent.",
"- `receive_collection`: The collection of the item to be received.",
"- `receive_item`: The item to be received.",
"- `witness_price`: A price that was previously agreed on.",
"",
"Emits `SwapClaimed` on success."
]
},
{
"name": "mint_pre_signed",
"fields": [
{
"name": "mint_data",
"type": 255,
"typeName": "PreSignedMintOf<T, I>"
},
{
"name": "signature",
"type": 256,
"typeName": "T::OffchainSignature"
},
{
"name": "signer",
"type": 52,
"typeName": "T::AccountId"
}
],
"index": 37,
"docs": [
"Mint an item by providing the pre-signed approval.",
"",
"Origin must be Signed.",
"",
"- `mint_data`: The pre-signed approval that consists of the information about the item,",
" its metadata, attributes, who can mint it (`None` for anyone) and until what block",
" number.",
"- `signature`: The signature of the `data` object.",
"- `signer`: The `data` object's signer. Should be an owner of the collection.",
"",
"Emits `Issued` on success.",
"Emits `AttributeSet` if the attributes were provided.",
"Emits `ItemMetadataSet` if the metadata was not empty."
]
},
{
"name": "set_attributes_pre_signed",
"fields": [
{
"name": "data",
"type": 259,
"typeName": "PreSignedAttributesOf<T, I>"
},
{
"name": "signature",
"type": 256,
"typeName": "T::OffchainSignature"
},
{
"name": "signer",
"type": 52,
"typeName": "T::AccountId"
}
],
"index": 38,
"docs": [
"Set attributes for an item by providing the pre-signed approval.",
"",
"Origin must be Signed and must be an owner of the `data.item`.",
"",
"- `data`: The pre-signed approval that consists of the information about the item,",
" attributes to update and until what block number.",
"- `signature`: The signature of the `data` object.",
"- `signer`: The `data` object's signer. Should be an owner of the collection for the",
" `CollectionOwner` namespace.",
"",
"Emits `AttributeSet` for each provided attribute.",
"Emits `ItemAttributesApprovalAdded` if the approval wasn't set before.",
"Emits `PreSignedAttributesSet` on success."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 236,
"type": {
"path": [
"pallet_nfts",
"types",
"CollectionConfig"
],
"params": [
{
"name": "Price",
"type": 57
},
{
"name": "BlockNumber",
"type": 4
},
{
"name": "CollectionId",
"type": 4
}
],
"def": {
"composite": {
"fields": [
{
"name": "settings",
"type": 237,
"typeName": "CollectionSettings"
},
{
"name": "max_supply",
"type": 114,
"typeName": "Option<u32>"
},
{
"name": "mint_settings",
"type": 239,
"typeName": "MintSettings<Price, BlockNumber, CollectionId>"
}
]
}
}
}
},
{
"id": 237,
"type": {
"path": [
"pallet_nfts",
"types",
"BitFlags"
],
"params": [
{
"name": "T",
"type": 238
}
],
"def": {
"composite": {
"fields": [
{
"type": 12,
"typeName": "CollectionSetting"
}
]
}
}
}
},
{
"id": 238,
"type": {
"path": [
"pallet_nfts",
"types",
"CollectionSetting"
],
"def": {
"variant": {
"variants": [
{
"name": "TransferableItems",
"index": 1
},
{
"name": "UnlockedMetadata",
"index": 2
},
{
"name": "UnlockedAttributes",
"index": 4
},
{
"name": "UnlockedMaxSupply",
"index": 8
},
{
"name": "DepositRequired",
"index": 16
}
]
}
}
}
},
{
"id": 239,
"type": {
"path": [
"pallet_nfts",
"types",
"MintSettings"
],
"params": [
{
"name": "Price",
"type": 57
},
{
"name": "BlockNumber",
"type": 4
},
{
"name": "CollectionId",
"type": 4
}
],
"def": {
"composite": {
"fields": [
{
"name": "mint_type",
"type": 240,
"typeName": "MintType<CollectionId>"
},
{
"name": "price",
"type": 234,
"typeName": "Option<Price>"
},
{
"name": "start_block",
"type": 114,
"typeName": "Option<BlockNumber>"
},
{
"name": "end_block",
"type": 114,
"typeName": "Option<BlockNumber>"
},
{
"name": "default_item_settings",
"type": 241,
"typeName": "ItemSettings"
}
]
}
}
}
},
{
"id": 240,
"type": {
"path": [
"pallet_nfts",
"types",
"MintType"
],
"params": [
{
"name": "CollectionId",
"type": 4
}
],
"def": {
"variant": {
"variants": [
{
"name": "Issuer",
"index": 0
},
{
"name": "Public",
"index": 1
},
{
"name": "HolderOf",
"fields": [
{
"type": 4,
"typeName": "CollectionId"
}
],
"index": 2
}
]
}
}
}
},
{
"id": 241,
"type": {
"path": [
"pallet_nfts",
"types",
"BitFlags"
],
"params": [
{
"name": "T",
"type": 242
}
],
"def": {
"composite": {
"fields": [
{
"type": 12,
"typeName": "ItemSetting"
}
]
}
}
}
},
{
"id": 242,
"type": {
"path": [
"pallet_nfts",
"types",
"ItemSetting"
],
"def": {
"variant": {
"variants": [
{
"name": "Transferable",
"index": 1
},
{
"name": "UnlockedMetadata",
"index": 2
},
{
"name": "UnlockedAttributes",
"index": 4
}
]
}
}
}
},
{
"id": 243,
"type": {
"path": [
"pallet_nfts",
"types",
"DestroyWitness"
],
"def": {
"composite": {
"fields": [
{
"name": "items",
"type": 36,
"typeName": "u32"
},
{
"name": "item_metadatas",
"type": 36,
"typeName": "u32"
},
{
"name": "attributes",
"type": 36,
"typeName": "u32"
}
]
}
}
}
},
{
"id": 244,
"type": {
"path": [
"Option"
],
"params": [
{
"name": "T",
"type": 245
}
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Some",
"fields": [
{
"type": 245
}
],
"index": 1
}
]
}
}
}
},
{
"id": 245,
"type": {
"path": [
"pallet_nfts",
"types",
"MintWitness"
],
"params": [
{
"name": "ItemId",
"type": 4
}
],
"def": {
"composite": {
"fields": [
{
"name": "owner_of_item",
"type": 4,
"typeName": "ItemId"
}
]
}
}
}
},
{
"id": 246,
"type": {
"path": [
"pallet_nfts",
"types",
"ItemConfig"
],
"def": {
"composite": {
"fields": [
{
"name": "settings",
"type": 241,
"typeName": "ItemSettings"
}
]
}
}
}
},
{
"id": 247,
"type": {
"path": [
"frame_support",
"traits",
"tokens",
"misc",
"AttributeNamespace"
],
"params": [
{
"name": "AccountId",
"type": 52
}
],
"def": {
"variant": {
"variants": [
{
"name": "Pallet",
"index": 0
},
{
"name": "CollectionOwner",
"index": 1
},
{
"name": "ItemOwner",
"index": 2
},
{
"name": "Account",
"fields": [
{
"type": 52,
"typeName": "AccountId"
}
],
"index": 3
}
]
}
}
}
},
{
"id": 248,
"type": {
"path": [
"pallet_nfts",
"types",
"CancelAttributesApprovalWitness"
],
"def": {
"composite": {
"fields": [
{
"name": "account_attributes",
"type": 4,
"typeName": "u32"
}
]
}
}
}
},
{
"id": 249,
"type": {
"path": [
"bounded_collections",
"bounded_vec",
"BoundedVec"
],
"params": [
{
"name": "T",
"type": 250
},
{
"name": "S",
"type": null
}
],
"def": {
"composite": {
"fields": [
{
"type": 251,
"typeName": "Vec<T>"
}
]
}
}
}
},
{
"id": 250,
"type": {
"path": [
"pallet_nfts",
"types",
"ItemTip"
],
"params": [
{
"name": "CollectionId",
"type": 4
},
{
"name": "ItemId",
"type": 4
},
{
"name": "AccountId",
"type": 52
},
{
"name": "Amount",
"type": 57
}
],
"def": {
"composite": {
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "ItemId"
},
{
"name": "receiver",
"type": 52,
"typeName": "AccountId"
},
{
"name": "amount",
"type": 57,
"typeName": "Amount"
}
]
}
}
}
},
{
"id": 251,
"type": {
"def": {
"sequence": {
"type": 250
}
}
}
},
{
"id": 252,
"type": {
"path": [
"Option"
],
"params": [
{
"name": "T",
"type": 253
}
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Some",
"fields": [
{
"type": 253
}
],
"index": 1
}
]
}
}
}
},
{
"id": 253,
"type": {
"path": [
"pallet_nfts",
"types",
"PriceWithDirection"
],
"params": [
{
"name": "Amount",
"type": 57
}
],
"def": {
"composite": {
"fields": [
{
"name": "amount",
"type": 57,
"typeName": "Amount"
},
{
"name": "direction",
"type": 254,
"typeName": "PriceDirection"
}
]
}
}
}
},
{
"id": 254,
"type": {
"path": [
"pallet_nfts",
"types",
"PriceDirection"
],
"def": {
"variant": {
"variants": [
{
"name": "Send",
"index": 0
},
{
"name": "Receive",
"index": 1
}
]
}
}
}
},
{
"id": 255,
"type": {
"path": [
"pallet_nfts",
"types",
"PreSignedMint"
],
"params": [
{
"name": "CollectionId",
"type": 4
},
{
"name": "ItemId",
"type": 4
},
{
"name": "AccountId",
"type": 52
},
{
"name": "Deadline",
"type": 4
}
],
"def": {
"composite": {
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "ItemId"
},
{
"name": "attributes",
"type": 29,
"typeName": "Vec<(Vec<u8>, Vec<u8>)>"
},
{
"name": "metadata",
"type": 28,
"typeName": "Vec<u8>"
},
{
"name": "only_account",
"type": 141,
"typeName": "Option<AccountId>"
},
{
"name": "deadline",
"type": 4,
"typeName": "Deadline"
}
]
}
}
}
},
{
"id": 256,
"type": {
"path": [
"sp_runtime",
"MultiSignature"
],
"def": {
"variant": {
"variants": [
{
"name": "Ed25519",
"fields": [
{
"type": 10,
"typeName": "ed25519::Signature"
}
],
"index": 0
},
{
"name": "Sr25519",
"fields": [
{
"type": 163,
"typeName": "sr25519::Signature"
}
],
"index": 1
},
{
"name": "Ecdsa",
"fields": [
{
"type": 257,
"typeName": "ecdsa::Signature"
}
],
"index": 2
}
]
}
}
}
},
{
"id": 257,
"type": {
"path": [
"sp_core",
"ecdsa",
"Signature"
],
"def": {
"composite": {
"fields": [
{
"type": 258,
"typeName": "[u8; 65]"
}
]
}
}
}
},
{
"id": 258,
"type": {
"def": {
"array": {
"len": 65,
"type": 3
}
}
}
},
{
"id": 259,
"type": {
"path": [
"pallet_nfts",
"types",
"PreSignedAttributes"
],
"params": [
{
"name": "CollectionId",
"type": 4
},
{
"name": "ItemId",
"type": 4
},
{
"name": "AccountId",
"type": 52
},
{
"name": "Deadline",
"type": 4
}
],
"def": {
"composite": {
"fields": [
{
"name": "collection",
"type": 4,
"typeName": "CollectionId"
},
{
"name": "item",
"type": 4,
"typeName": "ItemId"
},
{
"name": "attributes",
"type": 29,
"typeName": "Vec<(Vec<u8>, Vec<u8>)>"
},
{
"name": "namespace",
"type": 247,
"typeName": "AttributeNamespace<AccountId>"
},
{
"name": "deadline",
"type": 4,
"typeName": "Deadline"
}
]
}
}
}
},
{
"id": 260,
"type": {
"path": [
"pallet_transaction_storage",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "store",
"fields": [
{
"name": "data",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 0,
"docs": [
"Index and store data off chain. Minimum data size is 1 bytes, maximum is",
"`MaxTransactionSize`. Data will be removed after `STORAGE_PERIOD` blocks, unless `renew`",
"is called.",
"## Complexity",
"- O(n*log(n)) of data size, as all data is pushed to an in-memory trie."
]
},
{
"name": "renew",
"fields": [
{
"name": "block",
"type": 4,
"typeName": "T::BlockNumber"
},
{
"name": "index",
"type": 4,
"typeName": "u32"
}
],
"index": 1,
"docs": [
"Renew previously stored data. Parameters are the block number that contains",
"previous `store` or `renew` call and transaction index within that block.",
"Transaction index is emitted in the `Stored` or `Renewed` event.",
"Applies same fees as `store`.",
"## Complexity",
"- O(1)."
]
},
{
"name": "check_proof",
"fields": [
{
"name": "proof",
"type": 261,
"typeName": "TransactionStorageProof"
}
],
"index": 2,
"docs": [
"Check storage proof for block number `block_number() - StoragePeriod`.",
"If such block does not exist the proof is expected to be `None`.",
"## Complexity",
"- Linear w.r.t the number of indexed transactions in the proved block for random",
" probing.",
"There's a DB read for each transaction."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 261,
"type": {
"path": [
"sp_transaction_storage_proof",
"TransactionStorageProof"
],
"def": {
"composite": {
"fields": [
{
"name": "chunk",
"type": 28,
"typeName": "Vec<u8>"
},
{
"name": "proof",
"type": 31,
"typeName": "Vec<Vec<u8>>"
}
]
}
}
}
},
{
"id": 262,
"type": {
"path": [
"pallet_bags_list",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "rebag",
"fields": [
{
"name": "dislocated",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 0,
"docs": [
"Declare that some `dislocated` account has, through rewards or penalties, sufficiently",
"changed its score that it should properly fall into a different bag than its current",
"one.",
"",
"Anyone can call this function about any potentially dislocated account.",
"",
"Will always update the stored score of `dislocated` to the correct score, based on",
"`ScoreProvider`.",
"",
"If `dislocated` does not exists, it returns an error."
]
},
{
"name": "put_in_front_of",
"fields": [
{
"name": "lighter",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 1,
"docs": [
"Move the caller's Id directly in front of `lighter`.",
"",
"The dispatch origin for this call must be _Signed_ and can only be called by the Id of",
"the account going in front of `lighter`.",
"",
"Only works if",
"- both nodes are within the same bag,",
"- and `origin` has a greater `Score` than `lighter`."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 263,
"type": {
"path": [
"pallet_state_trie_migration",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "control_auto_migration",
"fields": [
{
"name": "maybe_config",
"type": 264,
"typeName": "Option<MigrationLimits>"
}
],
"index": 0,
"docs": [
"Control the automatic migration.",
"",
"The dispatch origin of this call must be [`Config::ControlOrigin`]."
]
},
{
"name": "continue_migrate",
"fields": [
{
"name": "limits",
"type": 265,
"typeName": "MigrationLimits"
},
{
"name": "real_size_upper",
"type": 4,
"typeName": "u32"
},
{
"name": "witness_task",
"type": 266,
"typeName": "MigrationTask<T>"
}
],
"index": 1,
"docs": [
"Continue the migration for the given `limits`.",
"",
"The dispatch origin of this call can be any signed account.",
"",
"This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,",
"Upon successful execution, the transaction fee is returned.",
"",
"The (potentially over-estimated) of the byte length of all the data read must be",
"provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing",
"that executing the current `MigrationTask` with the given `limits` will not exceed",
"`real_size_upper` bytes of read data.",
"",
"The `witness_task` is merely a helper to prevent the caller from being slashed or",
"generally trigger a migration that they do not intend. This parameter is just a message",
"from caller, saying that they believed `witness_task` was the last state of the",
"migration, and they only wish for their transaction to do anything, if this assumption",
"holds. In case `witness_task` does not match, the transaction fails.",
"",
"Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the",
"recommended way of doing this is to pass a `limit` that only bounds `count`, as the",
"`size` limit can always be overwritten."
]
},
{
"name": "migrate_custom_top",
"fields": [
{
"name": "keys",
"type": 31,
"typeName": "Vec<Vec<u8>>"
},
{
"name": "witness_size",
"type": 4,
"typeName": "u32"
}
],
"index": 2,
"docs": [
"Migrate the list of top keys by iterating each of them one by one.",
"",
"This does not affect the global migration process tracker ([`MigrationProcess`]), and",
"should only be used in case any keys are leftover due to a bug."
]
},
{
"name": "migrate_custom_child",
"fields": [
{
"name": "root",
"type": 28,
"typeName": "Vec<u8>"
},
{
"name": "child_keys",
"type": 31,
"typeName": "Vec<Vec<u8>>"
},
{
"name": "total_size",
"type": 4,
"typeName": "u32"
}
],
"index": 3,
"docs": [
"Migrate the list of child keys by iterating each of them one by one.",
"",
"All of the given child keys must be present under one `child_root`.",
"",
"This does not affect the global migration process tracker ([`MigrationProcess`]), and",
"should only be used in case any keys are leftover due to a bug."
]
},
{
"name": "set_signed_max_limits",
"fields": [
{
"name": "limits",
"type": 265,
"typeName": "MigrationLimits"
}
],
"index": 4,
"docs": [
"Set the maximum limit of the signed migration."
]
},
{
"name": "force_set_progress",
"fields": [
{
"name": "progress_top",
"type": 267,
"typeName": "ProgressOf<T>"
},
{
"name": "progress_child",
"type": 267,
"typeName": "ProgressOf<T>"
}
],
"index": 5,
"docs": [
"Forcefully set the progress the running migration.",
"",
"This is only useful in one case: the next key to migrate is too big to be migrated with",
"a signed account, in a parachain context, and we simply want to skip it. A reasonable",
"example of this would be `:code:`, which is both very expensive to migrate, and commonly",
"used, so probably it is already migrated.",
"",
"In case you mess things up, you can also, in principle, use this to reset the migration",
"process."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 264,
"type": {
"path": [
"Option"
],
"params": [
{
"name": "T",
"type": 265
}
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Some",
"fields": [
{
"type": 265
}
],
"index": 1
}
]
}
}
}
},
{
"id": 265,
"type": {
"path": [
"pallet_state_trie_migration",
"pallet",
"MigrationLimits"
],
"def": {
"composite": {
"fields": [
{
"name": "size",
"type": 4,
"typeName": "u32"
},
{
"name": "item",
"type": 4,
"typeName": "u32"
}
]
}
}
}
},
{
"id": 266,
"type": {
"path": [
"pallet_state_trie_migration",
"pallet",
"MigrationTask"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"composite": {
"fields": [
{
"name": "progress_top",
"type": 267,
"typeName": "ProgressOf<T>"
},
{
"name": "progress_child",
"type": 267,
"typeName": "ProgressOf<T>"
},
{
"name": "size",
"type": 4,
"typeName": "u32"
},
{
"name": "top_items",
"type": 4,
"typeName": "u32"
},
{
"name": "child_items",
"type": 4,
"typeName": "u32"
}
]
}
}
}
},
{
"id": 267,
"type": {
"path": [
"pallet_state_trie_migration",
"pallet",
"Progress"
],
"params": [
{
"name": "MaxKeyLen",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "ToStart",
"index": 0
},
{
"name": "LastKey",
"fields": [
{
"type": 268,
"typeName": "BoundedVec<u8, MaxKeyLen>"
}
],
"index": 1
},
{
"name": "Complete",
"index": 2
}
]
}
}
}
},
{
"id": 268,
"type": {
"path": [
"bounded_collections",
"bounded_vec",
"BoundedVec"
],
"params": [
{
"name": "T",
"type": 3
},
{
"name": "S",
"type": null
}
],
"def": {
"composite": {
"fields": [
{
"type": 28,
"typeName": "Vec<T>"
}
]
}
}
}
},
{
"id": 269,
"type": {
"path": [
"pallet_child_bounties",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "add_child_bounty",
"fields": [
{
"name": "parent_bounty_id",
"type": 36,
"typeName": "BountyIndex"
},
{
"name": "value",
"type": 56,
"typeName": "BalanceOf<T>"
},
{
"name": "description",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 0,
"docs": [
"Add a new child-bounty.",
"",
"The dispatch origin for this call must be the curator of parent",
"bounty and the parent bounty must be in \"active\" state.",
"",
"Child-bounty gets added successfully & fund gets transferred from",
"parent bounty to child-bounty account, if parent bounty has enough",
"funds, else the call fails.",
"",
"Upper bound to maximum number of active child bounties that can be",
"added are managed via runtime trait config",
"[`Config::MaxActiveChildBountyCount`].",
"",
"If the call is success, the status of child-bounty is updated to",
"\"Added\".",
"",
"- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added.",
"- `value`: Value for executing the proposal.",
"- `description`: Text description for the child-bounty."
]
},
{
"name": "propose_curator",
"fields": [
{
"name": "parent_bounty_id",
"type": 36,
"typeName": "BountyIndex"
},
{
"name": "child_bounty_id",
"type": 36,
"typeName": "BountyIndex"
},
{
"name": "curator",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "fee",
"type": 56,
"typeName": "BalanceOf<T>"
}
],
"index": 1,
"docs": [
"Propose curator for funded child-bounty.",
"",
"The dispatch origin for this call must be curator of parent bounty.",
"",
"Parent bounty must be in active state, for this child-bounty call to",
"work.",
"",
"Child-bounty must be in \"Added\" state, for processing the call. And",
"state of child-bounty is moved to \"CuratorProposed\" on successful",
"call completion.",
"",
"- `parent_bounty_id`: Index of parent bounty.",
"- `child_bounty_id`: Index of child bounty.",
"- `curator`: Address of child-bounty curator.",
"- `fee`: payment fee to child-bounty curator for execution."
]
},
{
"name": "accept_curator",
"fields": [
{
"name": "parent_bounty_id",
"type": 36,
"typeName": "BountyIndex"
},
{
"name": "child_bounty_id",
"type": 36,
"typeName": "BountyIndex"
}
],
"index": 2,
"docs": [
"Accept the curator role for the child-bounty.",
"",
"The dispatch origin for this call must be the curator of this",
"child-bounty.",
"",
"A deposit will be reserved from the curator and refund upon",
"successful payout or cancellation.",
"",
"Fee for curator is deducted from curator fee of parent bounty.",
"",
"Parent bounty must be in active state, for this child-bounty call to",
"work.",
"",
"Child-bounty must be in \"CuratorProposed\" state, for processing the",
"call. And state of child-bounty is moved to \"Active\" on successful",
"call completion.",
"",
"- `parent_bounty_id`: Index of parent bounty.",
"- `child_bounty_id`: Index of child bounty."
]
},
{
"name": "unassign_curator",
"fields": [
{
"name": "parent_bounty_id",
"type": 36,
"typeName": "BountyIndex"
},
{
"name": "child_bounty_id",
"type": 36,
"typeName": "BountyIndex"
}
],
"index": 3,
"docs": [
"Unassign curator from a child-bounty.",
"",
"The dispatch origin for this call can be either `RejectOrigin`, or",
"the curator of the parent bounty, or any signed origin.",
"",
"For the origin other than T::RejectOrigin and the child-bounty",
"curator, parent bounty must be in active state, for this call to",
"work. We allow child-bounty curator and T::RejectOrigin to execute",
"this call irrespective of the parent bounty state.",
"",
"If this function is called by the `RejectOrigin` or the",
"parent bounty curator, we assume that the child-bounty curator is",
"malicious or inactive. As a result, child-bounty curator deposit is",
"slashed.",
"",
"If the origin is the child-bounty curator, we take this as a sign",
"that they are unable to do their job, and are willingly giving up.",
"We could slash the deposit, but for now we allow them to unreserve",
"their deposit and exit without issue. (We may want to change this if",
"it is abused.)",
"",
"Finally, the origin can be anyone iff the child-bounty curator is",
"\"inactive\". Expiry update due of parent bounty is used to estimate",
"inactive state of child-bounty curator.",
"",
"This allows anyone in the community to call out that a child-bounty",
"curator is not doing their due diligence, and we should pick a new",
"one. In this case the child-bounty curator deposit is slashed.",
"",
"State of child-bounty is moved to Added state on successful call",
"completion.",
"",
"- `parent_bounty_id`: Index of parent bounty.",
"- `child_bounty_id`: Index of child bounty."
]
},
{
"name": "award_child_bounty",
"fields": [
{
"name": "parent_bounty_id",
"type": 36,
"typeName": "BountyIndex"
},
{
"name": "child_bounty_id",
"type": 36,
"typeName": "BountyIndex"
},
{
"name": "beneficiary",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 4,
"docs": [
"Award child-bounty to a beneficiary.",
"",
"The beneficiary will be able to claim the funds after a delay.",
"",
"The dispatch origin for this call must be the parent curator or",
"curator of this child-bounty.",
"",
"Parent bounty must be in active state, for this child-bounty call to",
"work.",
"",
"Child-bounty must be in active state, for processing the call. And",
"state of child-bounty is moved to \"PendingPayout\" on successful call",
"completion.",
"",
"- `parent_bounty_id`: Index of parent bounty.",
"- `child_bounty_id`: Index of child bounty.",
"- `beneficiary`: Beneficiary account."
]
},
{
"name": "claim_child_bounty",
"fields": [
{
"name": "parent_bounty_id",
"type": 36,
"typeName": "BountyIndex"
},
{
"name": "child_bounty_id",
"type": 36,
"typeName": "BountyIndex"
}
],
"index": 5,
"docs": [
"Claim the payout from an awarded child-bounty after payout delay.",
"",
"The dispatch origin for this call may be any signed origin.",
"",
"Call works independent of parent bounty state, No need for parent",
"bounty to be in active state.",
"",
"The Beneficiary is paid out with agreed bounty value. Curator fee is",
"paid & curator deposit is unreserved.",
"",
"Child-bounty must be in \"PendingPayout\" state, for processing the",
"call. And instance of child-bounty is removed from the state on",
"successful call completion.",
"",
"- `parent_bounty_id`: Index of parent bounty.",
"- `child_bounty_id`: Index of child bounty."
]
},
{
"name": "close_child_bounty",
"fields": [
{
"name": "parent_bounty_id",
"type": 36,
"typeName": "BountyIndex"
},
{
"name": "child_bounty_id",
"type": 36,
"typeName": "BountyIndex"
}
],
"index": 6,
"docs": [
"Cancel a proposed or active child-bounty. Child-bounty account funds",
"are transferred to parent bounty account. The child-bounty curator",
"deposit may be unreserved if possible.",
"",
"The dispatch origin for this call must be either parent curator or",
"`T::RejectOrigin`.",
"",
"If the state of child-bounty is `Active`, curator deposit is",
"unreserved.",
"",
"If the state of child-bounty is `PendingPayout`, call fails &",
"returns `PendingPayout` error.",
"",
"For the origin other than T::RejectOrigin, parent bounty must be in",
"active state, for this child-bounty call to work. For origin",
"T::RejectOrigin execution is forced.",
"",
"Instance of child-bounty is removed from the state on successful",
"call completion.",
"",
"- `parent_bounty_id`: Index of parent bounty.",
"- `child_bounty_id`: Index of child bounty."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 270,
"type": {
"path": [
"pallet_referenda",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "submit",
"fields": [
{
"name": "proposal_origin",
"type": 271,
"typeName": "Box<PalletsOriginOf<T>>"
},
{
"name": "proposal",
"type": 133,
"typeName": "BoundedCallOf<T, I>"
},
{
"name": "enactment_moment",
"type": 277,
"typeName": "DispatchTime<T::BlockNumber>"
}
],
"index": 0,
"docs": [
"Propose a referendum on a privileged action.",
"",
"- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds",
" available.",
"- `proposal_origin`: The origin from which the proposal should be executed.",
"- `proposal`: The proposal.",
"- `enactment_moment`: The moment that the proposal should be enacted.",
"",
"Emits `Submitted`."
]
},
{
"name": "place_decision_deposit",
"fields": [
{
"name": "index",
"type": 4,
"typeName": "ReferendumIndex"
}
],
"index": 1,
"docs": [
"Post the Decision Deposit for a referendum.",
"",
"- `origin`: must be `Signed` and the account must have funds available for the",
" referendum's track's Decision Deposit.",
"- `index`: The index of the submitted referendum whose Decision Deposit is yet to be",
" posted.",
"",
"Emits `DecisionDepositPlaced`."
]
},
{
"name": "refund_decision_deposit",
"fields": [
{
"name": "index",
"type": 4,
"typeName": "ReferendumIndex"
}
],
"index": 2,
"docs": [
"Refund the Decision Deposit for a closed referendum back to the depositor.",
"",
"- `origin`: must be `Signed` or `Root`.",
"- `index`: The index of a closed referendum whose Decision Deposit has not yet been",
" refunded.",
"",
"Emits `DecisionDepositRefunded`."
]
},
{
"name": "cancel",
"fields": [
{
"name": "index",
"type": 4,
"typeName": "ReferendumIndex"
}
],
"index": 3,
"docs": [
"Cancel an ongoing referendum.",
"",
"- `origin`: must be the `CancelOrigin`.",
"- `index`: The index of the referendum to be cancelled.",
"",
"Emits `Cancelled`."
]
},
{
"name": "kill",
"fields": [
{
"name": "index",
"type": 4,
"typeName": "ReferendumIndex"
}
],
"index": 4,
"docs": [
"Cancel an ongoing referendum and slash the deposits.",
"",
"- `origin`: must be the `KillOrigin`.",
"- `index`: The index of the referendum to be cancelled.",
"",
"Emits `Killed` and `DepositSlashed`."
]
},
{
"name": "nudge_referendum",
"fields": [
{
"name": "index",
"type": 4,
"typeName": "ReferendumIndex"
}
],
"index": 5,
"docs": [
"Advance a referendum onto its next logical state. Only used internally.",
"",
"- `origin`: must be `Root`.",
"- `index`: the referendum to be advanced."
]
},
{
"name": "one_fewer_deciding",
"fields": [
{
"name": "track",
"type": 20,
"typeName": "TrackIdOf<T, I>"
}
],
"index": 6,
"docs": [
"Advance a track onto its next logical state. Only used internally.",
"",
"- `origin`: must be `Root`.",
"- `track`: the track to be advanced.",
"",
"Action item for when there is now one fewer referendum in the deciding phase and the",
"`DecidingCount` is not yet updated. This means that we should either:",
"- begin deciding another referendum (and leave `DecidingCount` alone); or",
"- decrement `DecidingCount`."
]
},
{
"name": "refund_submission_deposit",
"fields": [
{
"name": "index",
"type": 4,
"typeName": "ReferendumIndex"
}
],
"index": 7,
"docs": [
"Refund the Submission Deposit for a closed referendum back to the depositor.",
"",
"- `origin`: must be `Signed` or `Root`.",
"- `index`: The index of a closed referendum whose Submission Deposit has not yet been",
" refunded.",
"",
"Emits `SubmissionDepositRefunded`."
]
},
{
"name": "set_metadata",
"fields": [
{
"name": "index",
"type": 4,
"typeName": "ReferendumIndex"
},
{
"name": "maybe_hash",
"type": 139,
"typeName": "Option<PreimageHash>"
}
],
"index": 8,
"docs": [
"Set or clear metadata of a referendum.",
"",
"Parameters:",
"- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a",
" metadata of a finished referendum.",
"- `index`: The index of a referendum to set or clear metadata for.",
"- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 271,
"type": {
"path": [
"kitchensink_runtime",
"OriginCaller"
],
"def": {
"variant": {
"variants": [
{
"name": "system",
"fields": [
{
"type": 272,
"typeName": "frame_system::Origin<Runtime>"
}
],
"index": 0
},
{
"name": "Council",
"fields": [
{
"type": 273,
"typeName": "pallet_collective::Origin<Runtime, pallet_collective::Instance1>"
}
],
"index": 13
},
{
"name": "TechnicalCommittee",
"fields": [
{
"type": 274,
"typeName": "pallet_collective::Origin<Runtime, pallet_collective::Instance2>"
}
],
"index": 14
},
{
"name": "AllianceMotion",
"fields": [
{
"type": 275,
"typeName": "pallet_collective::Origin<Runtime, pallet_collective::Instance3>"
}
],
"index": 52
},
{
"name": "Void",
"fields": [
{
"type": 276,
"typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::Void"
}
],
"index": 4
}
]
}
}
}
},
{
"id": 272,
"type": {
"path": [
"frame_support",
"dispatch",
"RawOrigin"
],
"params": [
{
"name": "AccountId",
"type": 52
}
],
"def": {
"variant": {
"variants": [
{
"name": "Root",
"index": 0
},
{
"name": "Signed",
"fields": [
{
"type": 52,
"typeName": "AccountId"
}
],
"index": 1
},
{
"name": "None",
"index": 2
}
]
}
}
}
},
{
"id": 273,
"type": {
"path": [
"pallet_collective",
"RawOrigin"
],
"params": [
{
"name": "AccountId",
"type": 52
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "Members",
"fields": [
{
"type": 4,
"typeName": "MemberCount"
},
{
"type": 4,
"typeName": "MemberCount"
}
],
"index": 0
},
{
"name": "Member",
"fields": [
{
"type": 52,
"typeName": "AccountId"
}
],
"index": 1
},
{
"name": "_Phantom",
"index": 2
}
]
}
}
}
},
{
"id": 274,
"type": {
"path": [
"pallet_collective",
"RawOrigin"
],
"params": [
{
"name": "AccountId",
"type": 52
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "Members",
"fields": [
{
"type": 4,
"typeName": "MemberCount"
},
{
"type": 4,
"typeName": "MemberCount"
}
],
"index": 0
},
{
"name": "Member",
"fields": [
{
"type": 52,
"typeName": "AccountId"
}
],
"index": 1
},
{
"name": "_Phantom",
"index": 2
}
]
}
}
}
},
{
"id": 275,
"type": {
"path": [
"pallet_collective",
"RawOrigin"
],
"params": [
{
"name": "AccountId",
"type": 52
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "Members",
"fields": [
{
"type": 4,
"typeName": "MemberCount"
},
{
"type": 4,
"typeName": "MemberCount"
}
],
"index": 0
},
{
"name": "Member",
"fields": [
{
"type": 52,
"typeName": "AccountId"
}
],
"index": 1
},
{
"name": "_Phantom",
"index": 2
}
]
}
}
}
},
{
"id": 276,
"type": {
"path": [
"sp_core",
"Void"
],
"def": {
"variant": {}
}
}
},
{
"id": 277,
"type": {
"path": [
"frame_support",
"traits",
"schedule",
"DispatchTime"
],
"params": [
{
"name": "BlockNumber",
"type": 4
}
],
"def": {
"variant": {
"variants": [
{
"name": "At",
"fields": [
{
"type": 4,
"typeName": "BlockNumber"
}
],
"index": 0
},
{
"name": "After",
"fields": [
{
"type": 4,
"typeName": "BlockNumber"
}
],
"index": 1
}
]
}
}
}
},
{
"id": 278,
"type": {
"path": [
"pallet_remark",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "store",
"fields": [
{
"name": "remark",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 0,
"docs": [
"Index and store data off chain."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 279,
"type": {
"path": [
"pallet_root_testing",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "fill_block",
"fields": [
{
"name": "ratio",
"type": 119,
"typeName": "Perbill"
}
],
"index": 0,
"docs": [
"A dispatch that will fill the block weight up to the given ratio."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 280,
"type": {
"path": [
"pallet_conviction_voting",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "vote",
"fields": [
{
"name": "poll_index",
"type": 36,
"typeName": "PollIndexOf<T, I>"
},
{
"name": "vote",
"type": 281,
"typeName": "AccountVote<BalanceOf<T, I>>"
}
],
"index": 0,
"docs": [
"Vote in a poll. 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_.",
"",
"- `poll_index`: The index of the poll to vote for.",
"- `vote`: The vote configuration.",
"",
"Weight: `O(R)` where R is the number of polls the voter has voted on."
]
},
{
"name": "delegate",
"fields": [
{
"name": "class",
"type": 20,
"typeName": "ClassOf<T, I>"
},
{
"name": "to",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "conviction",
"type": 283,
"typeName": "Conviction"
},
{
"name": "balance",
"type": 57,
"typeName": "BalanceOf<T, I>"
}
],
"index": 1,
"docs": [
"Delegate the voting power (with some given conviction) of the sending account for a",
"particular class of polls.",
"",
"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.",
"- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls",
" to this function are required.",
"- `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 polls the voter delegating to has",
" voted on. Weight is initially charged as if maximum votes, but is refunded later."
]
},
{
"name": "undelegate",
"fields": [
{
"name": "class",
"type": 20,
"typeName": "ClassOf<T, I>"
}
],
"index": 2,
"docs": [
"Undelegate the voting power of the sending account for a particular class of polls.",
"",
"Tokens may be unlocked following once an amount of time consistent with the lock period",
"of the conviction with which the delegation was issued has passed.",
"",
"The dispatch origin of this call must be _Signed_ and the signing account must be",
"currently delegating.",
"",
"- `class`: The class of polls to remove the delegation from.",
"",
"Emits `Undelegated`.",
"",
"Weight: `O(R)` where R is the number of polls the voter delegating to has",
" voted on. Weight is initially charged as if maximum votes, but is refunded later."
]
},
{
"name": "unlock",
"fields": [
{
"name": "class",
"type": 20,
"typeName": "ClassOf<T, I>"
},
{
"name": "target",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 3,
"docs": [
"Remove the lock caused by prior voting/delegating which has expired within a particular",
"class.",
"",
"The dispatch origin of this call must be _Signed_.",
"",
"- `class`: The class of polls to unlock.",
"- `target`: The account to remove the lock on.",
"",
"Weight: `O(R)` with R number of vote of target."
]
},
{
"name": "remove_vote",
"fields": [
{
"name": "class",
"type": 284,
"typeName": "Option<ClassOf<T, I>>"
},
{
"name": "index",
"type": 4,
"typeName": "PollIndexOf<T, I>"
}
],
"index": 4,
"docs": [
"Remove a vote for a poll.",
"",
"If:",
"- the poll was cancelled, or",
"- the poll is ongoing, or",
"- the poll 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 poll 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 poll `index`.",
"",
"- `index`: The index of poll of the vote to be removed.",
"- `class`: Optional parameter, if given it indicates the class of the poll. For polls",
" which have finished or are cancelled, this must be `Some`.",
"",
"Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.",
" Weight is calculated for the maximum number of vote."
]
},
{
"name": "remove_other_vote",
"fields": [
{
"name": "target",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "class",
"type": 20,
"typeName": "ClassOf<T, I>"
},
{
"name": "index",
"type": 4,
"typeName": "PollIndexOf<T, I>"
}
],
"index": 5,
"docs": [
"Remove a vote for a poll.",
"",
"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 poll was cancelled, because the voter lost the poll 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 poll",
" `index`.",
"- `index`: The index of poll of the vote to be removed.",
"- `class`: The class of the poll.",
"",
"Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.",
" Weight is calculated for the maximum number of vote."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 281,
"type": {
"path": [
"pallet_conviction_voting",
"vote",
"AccountVote"
],
"params": [
{
"name": "Balance",
"type": 57
}
],
"def": {
"variant": {
"variants": [
{
"name": "Standard",
"fields": [
{
"name": "vote",
"type": 282,
"typeName": "Vote"
},
{
"name": "balance",
"type": 57,
"typeName": "Balance"
}
],
"index": 0
},
{
"name": "Split",
"fields": [
{
"name": "aye",
"type": 57,
"typeName": "Balance"
},
{
"name": "nay",
"type": 57,
"typeName": "Balance"
}
],
"index": 1
},
{
"name": "SplitAbstain",
"fields": [
{
"name": "aye",
"type": 57,
"typeName": "Balance"
},
{
"name": "nay",
"type": 57,
"typeName": "Balance"
},
{
"name": "abstain",
"type": 57,
"typeName": "Balance"
}
],
"index": 2
}
]
}
}
}
},
{
"id": 282,
"type": {
"path": [
"pallet_conviction_voting",
"vote",
"Vote"
],
"def": {
"composite": {
"fields": [
{
"type": 3
}
]
}
}
}
},
{
"id": 283,
"type": {
"path": [
"pallet_conviction_voting",
"conviction",
"Conviction"
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Locked1x",
"index": 1
},
{
"name": "Locked2x",
"index": 2
},
{
"name": "Locked3x",
"index": 3
},
{
"name": "Locked4x",
"index": 4
},
{
"name": "Locked5x",
"index": 5
},
{
"name": "Locked6x",
"index": 6
}
]
}
}
}
},
{
"id": 284,
"type": {
"path": [
"Option"
],
"params": [
{
"name": "T",
"type": 20
}
],
"def": {
"variant": {
"variants": [
{
"name": "None",
"index": 0
},
{
"name": "Some",
"fields": [
{
"type": 20
}
],
"index": 1
}
]
}
}
}
},
{
"id": 285,
"type": {
"path": [
"pallet_whitelist",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "whitelist_call",
"fields": [
{
"name": "call_hash",
"type": 1,
"typeName": "PreimageHash"
}
],
"index": 0
},
{
"name": "remove_whitelisted_call",
"fields": [
{
"name": "call_hash",
"type": 1,
"typeName": "PreimageHash"
}
],
"index": 1
},
{
"name": "dispatch_whitelisted_call",
"fields": [
{
"name": "call_hash",
"type": 1,
"typeName": "PreimageHash"
},
{
"name": "call_encoded_len",
"type": 4,
"typeName": "u32"
},
{
"name": "call_weight_witness",
"type": 144,
"typeName": "Weight"
}
],
"index": 2
},
{
"name": "dispatch_whitelisted_call_with_preimage",
"fields": [
{
"name": "call",
"type": 26,
"typeName": "Box<<T as Config>::RuntimeCall>"
}
],
"index": 3
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 286,
"type": {
"path": [
"pallet_collective",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "set_members",
"fields": [
{
"name": "new_members",
"type": 122,
"typeName": "Vec<T::AccountId>"
},
{
"name": "prime",
"type": 141,
"typeName": "Option<T::AccountId>"
},
{
"name": "old_count",
"type": 4,
"typeName": "MemberCount"
}
],
"index": 0,
"docs": [
"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.",
"",
"The dispatch of this call must be `SetMembersOrigin`.",
"",
"NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but",
" the weight estimations rely on it to estimate dispatchable weight.",
"",
"# WARNING:",
"",
"The `pallet-collective` can also be managed by logic outside of the pallet through the",
"implementation of the trait [`ChangeMembers`].",
"Any call to `set_members` must be careful that the member set doesn't get out of sync",
"with other logic managing the member set.",
"",
"## Complexity:",
"- `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)"
]
},
{
"name": "execute",
"fields": [
{
"name": "proposal",
"type": 26,
"typeName": "Box<<T as Config<I>>::Proposal>"
},
{
"name": "length_bound",
"type": 36,
"typeName": "u32"
}
],
"index": 1,
"docs": [
"Dispatch a proposal from a member using the `Member` origin.",
"",
"Origin must be a member of the collective.",
"",
"## Complexity:",
"- `O(B + M + P)` where:",
"- `B` is `proposal` size in bytes (length-fee-bounded)",
"- `M` members-count (code-bounded)",
"- `P` complexity of dispatching `proposal`"
]
},
{
"name": "propose",
"fields": [
{
"name": "threshold",
"type": 36,
"typeName": "MemberCount"
},
{
"name": "proposal",
"type": 26,
"typeName": "Box<<T as Config<I>>::Proposal>"
},
{
"name": "length_bound",
"type": 36,
"typeName": "u32"
}
],
"index": 2,
"docs": [
"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.",
"",
"## Complexity",
"- `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`)"
]
},
{
"name": "vote",
"fields": [
{
"name": "proposal",
"type": 1,
"typeName": "T::Hash"
},
{
"name": "index",
"type": 36,
"typeName": "ProposalIndex"
},
{
"name": "approve",
"type": 54,
"typeName": "bool"
}
],
"index": 3,
"docs": [
"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.",
"## Complexity",
"- `O(M)` where `M` is members-count (code- and governance-bounded)"
]
},
{
"name": "close_old_weight",
"fields": [
{
"name": "proposal_hash",
"type": 1,
"typeName": "T::Hash"
},
{
"name": "index",
"type": 36,
"typeName": "ProposalIndex"
},
{
"name": "proposal_weight_bound",
"type": 142,
"typeName": "OldWeight"
},
{
"name": "length_bound",
"type": 36,
"typeName": "u32"
}
],
"index": 4,
"docs": [
"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.",
"",
"## Complexity",
"- `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)"
]
},
{
"name": "disapprove_proposal",
"fields": [
{
"name": "proposal_hash",
"type": 1,
"typeName": "T::Hash"
}
],
"index": 5,
"docs": [
"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.",
"",
"## Complexity",
"O(P) where P is the number of max proposals"
]
},
{
"name": "close",
"fields": [
{
"name": "proposal_hash",
"type": 1,
"typeName": "T::Hash"
},
{
"name": "index",
"type": 36,
"typeName": "ProposalIndex"
},
{
"name": "proposal_weight_bound",
"type": 144,
"typeName": "Weight"
},
{
"name": "length_bound",
"type": 36,
"typeName": "u32"
}
],
"index": 6,
"docs": [
"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.",
"",
"## Complexity",
"- `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)"
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 287,
"type": {
"path": [
"pallet_alliance",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "propose",
"fields": [
{
"name": "threshold",
"type": 36,
"typeName": "u32"
},
{
"name": "proposal",
"type": 26,
"typeName": "Box<<T as Config<I>>::Proposal>"
},
{
"name": "length_bound",
"type": 36,
"typeName": "u32"
}
],
"index": 0,
"docs": [
"Add a new proposal to be voted on.",
"",
"Must be called by a Fellow."
]
},
{
"name": "vote",
"fields": [
{
"name": "proposal",
"type": 1,
"typeName": "T::Hash"
},
{
"name": "index",
"type": 36,
"typeName": "ProposalIndex"
},
{
"name": "approve",
"type": 54,
"typeName": "bool"
}
],
"index": 1,
"docs": [
"Add an aye or nay vote for the sender to the given proposal.",
"",
"Must be called by a Fellow."
]
},
{
"name": "close_old_weight",
"fields": [
{
"name": "proposal_hash",
"type": 1,
"typeName": "T::Hash"
},
{
"name": "index",
"type": 36,
"typeName": "ProposalIndex"
},
{
"name": "proposal_weight_bound",
"type": 142,
"typeName": "OldWeight"
},
{
"name": "length_bound",
"type": 36,
"typeName": "u32"
}
],
"index": 2,
"docs": [
"Close a vote that is either approved, disapproved, or whose voting period has ended.",
"",
"Must be called by a Fellow."
]
},
{
"name": "init_members",
"fields": [
{
"name": "fellows",
"type": 122,
"typeName": "Vec<T::AccountId>"
},
{
"name": "allies",
"type": 122,
"typeName": "Vec<T::AccountId>"
}
],
"index": 3,
"docs": [
"Initialize the Alliance, onboard fellows and allies.",
"",
"The Alliance must be empty, and the call must provide some founding members.",
"",
"Must be called by the Root origin."
]
},
{
"name": "disband",
"fields": [
{
"name": "witness",
"type": 288,
"typeName": "DisbandWitness"
}
],
"index": 4,
"docs": [
"Disband the Alliance, remove all active members and unreserve deposits.",
"",
"Witness data must be set."
]
},
{
"name": "set_rule",
"fields": [
{
"name": "rule",
"type": 289,
"typeName": "Cid"
}
],
"index": 5,
"docs": [
"Set a new IPFS CID to the alliance rule."
]
},
{
"name": "announce",
"fields": [
{
"name": "announcement",
"type": 289,
"typeName": "Cid"
}
],
"index": 6,
"docs": [
"Make an announcement of a new IPFS CID about alliance issues."
]
},
{
"name": "remove_announcement",
"fields": [
{
"name": "announcement",
"type": 289,
"typeName": "Cid"
}
],
"index": 7,
"docs": [
"Remove an announcement."
]
},
{
"name": "join_alliance",
"index": 8,
"docs": [
"Submit oneself for candidacy. A fixed deposit is reserved."
]
},
{
"name": "nominate_ally",
"fields": [
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 9,
"docs": [
"A Fellow can nominate someone to join the alliance as an Ally. There is no deposit",
"required from the nominator or nominee."
]
},
{
"name": "elevate_ally",
"fields": [
{
"name": "ally",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 10,
"docs": [
"Elevate an Ally to Fellow."
]
},
{
"name": "give_retirement_notice",
"index": 11,
"docs": [
"As a member, give a retirement notice and start a retirement period required to pass in",
"order to retire."
]
},
{
"name": "retire",
"index": 12,
"docs": [
"As a member, retire from the Alliance and unreserve the deposit.",
"",
"This can only be done once you have called `give_retirement_notice` and the",
"`RetirementPeriod` has passed."
]
},
{
"name": "kick_member",
"fields": [
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 13,
"docs": [
"Kick a member from the Alliance and slash its deposit."
]
},
{
"name": "add_unscrupulous_items",
"fields": [
{
"name": "items",
"type": 293,
"typeName": "Vec<UnscrupulousItemOf<T, I>>"
}
],
"index": 14,
"docs": [
"Add accounts or websites to the list of unscrupulous items."
]
},
{
"name": "remove_unscrupulous_items",
"fields": [
{
"name": "items",
"type": 293,
"typeName": "Vec<UnscrupulousItemOf<T, I>>"
}
],
"index": 15,
"docs": [
"Deem some items no longer unscrupulous."
]
},
{
"name": "close",
"fields": [
{
"name": "proposal_hash",
"type": 1,
"typeName": "T::Hash"
},
{
"name": "index",
"type": 36,
"typeName": "ProposalIndex"
},
{
"name": "proposal_weight_bound",
"type": 144,
"typeName": "Weight"
},
{
"name": "length_bound",
"type": 36,
"typeName": "u32"
}
],
"index": 16,
"docs": [
"Close a vote that is either approved, disapproved, or whose voting period has ended.",
"",
"Must be called by a Fellow."
]
},
{
"name": "abdicate_fellow_status",
"index": 17,
"docs": [
"Abdicate one's position as a voting member and just be an Ally. May be used by Fellows",
"who do not want to leave the Alliance but do not have the capacity to participate",
"operationally for some time."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 288,
"type": {
"path": [
"pallet_alliance",
"types",
"DisbandWitness"
],
"def": {
"composite": {
"fields": [
{
"name": "fellow_members",
"type": 36,
"typeName": "u32"
},
{
"name": "ally_members",
"type": 36,
"typeName": "u32"
}
]
}
}
}
},
{
"id": 289,
"type": {
"path": [
"pallet_alliance",
"types",
"Cid"
],
"def": {
"composite": {
"fields": [
{
"name": "version",
"type": 290,
"typeName": "Version"
},
{
"name": "codec",
"type": 12,
"typeName": "u64"
},
{
"name": "hash",
"type": 291,
"typeName": "Multihash"
}
]
}
}
}
},
{
"id": 290,
"type": {
"path": [
"pallet_alliance",
"types",
"Version"
],
"def": {
"variant": {
"variants": [
{
"name": "V0",
"index": 0
},
{
"name": "V1",
"index": 1
}
]
}
}
}
},
{
"id": 291,
"type": {
"path": [
"pallet_alliance",
"types",
"Multihash"
],
"def": {
"composite": {
"fields": [
{
"name": "code",
"type": 12,
"typeName": "u64"
},
{
"name": "digest",
"type": 292,
"typeName": "BoundedVec<u8, ConstU32<68>>"
}
]
}
}
}
},
{
"id": 292,
"type": {
"path": [
"bounded_collections",
"bounded_vec",
"BoundedVec"
],
"params": [
{
"name": "T",
"type": 3
},
{
"name": "S",
"type": null
}
],
"def": {
"composite": {
"fields": [
{
"type": 28,
"typeName": "Vec<T>"
}
]
}
}
}
},
{
"id": 293,
"type": {
"def": {
"sequence": {
"type": 294
}
}
}
},
{
"id": 294,
"type": {
"path": [
"pallet_alliance",
"UnscrupulousItem"
],
"params": [
{
"name": "AccountId",
"type": 52
},
{
"name": "Url",
"type": 295
}
],
"def": {
"variant": {
"variants": [
{
"name": "AccountId",
"fields": [
{
"type": 52,
"typeName": "AccountId"
}
],
"index": 0
},
{
"name": "Website",
"fields": [
{
"type": 295,
"typeName": "Url"
}
],
"index": 1
}
]
}
}
}
},
{
"id": 295,
"type": {
"path": [
"bounded_collections",
"bounded_vec",
"BoundedVec"
],
"params": [
{
"name": "T",
"type": 3
},
{
"name": "S",
"type": null
}
],
"def": {
"composite": {
"fields": [
{
"type": 28,
"typeName": "Vec<T>"
}
]
}
}
}
},
{
"id": 296,
"type": {
"path": [
"pallet_nomination_pools",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "join",
"fields": [
{
"name": "amount",
"type": 56,
"typeName": "BalanceOf<T>"
},
{
"name": "pool_id",
"type": 4,
"typeName": "PoolId"
}
],
"index": 0,
"docs": [
"Stake funds with a pool. The amount to bond is transferred from the member to the",
"pools account and immediately increases the pools bond.",
"",
"# Note",
"",
"* An account can only be a member of a single pool.",
"* An account cannot join the same pool multiple times.",
"* This call will *not* dust the member account, so the member must have at least",
" `existential deposit + amount` in their account.",
"* Only a pool with [`PoolState::Open`] can be joined"
]
},
{
"name": "bond_extra",
"fields": [
{
"name": "extra",
"type": 297,
"typeName": "BondExtra<BalanceOf<T>>"
}
],
"index": 1,
"docs": [
"Bond `extra` more funds from `origin` into the pool to which they already belong.",
"",
"Additional funds can come from either the free balance of the account, of from the",
"accumulated rewards, see [`BondExtra`].",
"",
"Bonding extra funds implies an automatic payout of all pending rewards as well.",
"See `bond_extra_other` to bond pending rewards of `other` members."
]
},
{
"name": "claim_payout",
"index": 2,
"docs": [
"A bonded member can use this to claim their payout based on the rewards that the pool",
"has accumulated since their last claimed payout (OR since joining if this is there first",
"time claiming rewards). The payout will be transferred to the member's account.",
"",
"The member will earn rewards pro rata based on the members stake vs the sum of the",
"members in the pools stake. Rewards do not \"expire\".",
"",
"See `claim_payout_other` to caim rewards on bahalf of some `other` pool member."
]
},
{
"name": "unbond",
"fields": [
{
"name": "member_account",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "unbonding_points",
"type": 56,
"typeName": "BalanceOf<T>"
}
],
"index": 3,
"docs": [
"Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It",
"implicitly collects the rewards one last time, since not doing so would mean some",
"rewards would be forfeited.",
"",
"Under certain conditions, this call can be dispatched permissionlessly (i.e. by any",
"account).",
"",
"# Conditions for a permissionless dispatch.",
"",
"* The pool is blocked and the caller is either the root or bouncer. This is refereed to",
" as a kick.",
"* The pool is destroying and the member is not the depositor.",
"* The pool is destroying, the member is the depositor and no other members are in the",
" pool.",
"",
"## Conditions for permissioned dispatch (i.e. the caller is also the",
"`member_account`):",
"",
"* The caller is not the depositor.",
"* The caller is the depositor, the pool is destroying and no other members are in the",
" pool.",
"",
"# Note",
"",
"If there are too many unlocking chunks to unbond with the pool account,",
"[`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks.",
"The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`]",
"to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks",
"are available). However, it may not be possible to release the current unlocking chunks,",
"in which case, the result of this call will likely be the `NoMoreChunks` error from the",
"staking system."
]
},
{
"name": "pool_withdraw_unbonded",
"fields": [
{
"name": "pool_id",
"type": 4,
"typeName": "PoolId"
},
{
"name": "num_slashing_spans",
"type": 4,
"typeName": "u32"
}
],
"index": 4,
"docs": [
"Call `withdraw_unbonded` for the pools account. This call can be made by any account.",
"",
"This is useful if their are too many unlocking chunks to call `unbond`, and some",
"can be cleared by withdrawing. In the case there are too many unlocking chunks, the user",
"would probably see an error like `NoMoreChunks` emitted from the staking system when",
"they attempt to unbond."
]
},
{
"name": "withdraw_unbonded",
"fields": [
{
"name": "member_account",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "num_slashing_spans",
"type": 4,
"typeName": "u32"
}
],
"index": 5,
"docs": [
"Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an",
"error is returned.",
"",
"Under certain conditions, this call can be dispatched permissionlessly (i.e. by any",
"account).",
"",
"# Conditions for a permissionless dispatch",
"",
"* The pool is in destroy mode and the target is not the depositor.",
"* The target is the depositor and they are the only member in the sub pools.",
"* The pool is blocked and the caller is either the root or bouncer.",
"",
"# Conditions for permissioned dispatch",
"",
"* The caller is the target and they are not the depositor.",
"",
"# Note",
"",
"If the target is the depositor, the pool will be destroyed."
]
},
{
"name": "create",
"fields": [
{
"name": "amount",
"type": 56,
"typeName": "BalanceOf<T>"
},
{
"name": "root",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "nominator",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "bouncer",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 6,
"docs": [
"Create a new delegation pool.",
"",
"# Arguments",
"",
"* `amount` - The amount of funds to delegate to the pool. This also acts of a sort of",
" deposit since the pools creator cannot fully unbond funds until the pool is being",
" destroyed.",
"* `index` - A disambiguation index for creating the account. Likely only useful when",
" creating multiple pools in the same extrinsic.",
"* `root` - The account to set as [`PoolRoles::root`].",
"* `nominator` - The account to set as the [`PoolRoles::nominator`].",
"* `bouncer` - The account to set as the [`PoolRoles::bouncer`].",
"",
"# Note",
"",
"In addition to `amount`, the caller will transfer the existential deposit; so the caller",
"needs at have at least `amount + existential_deposit` transferrable."
]
},
{
"name": "create_with_pool_id",
"fields": [
{
"name": "amount",
"type": 56,
"typeName": "BalanceOf<T>"
},
{
"name": "root",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "nominator",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "bouncer",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "pool_id",
"type": 4,
"typeName": "PoolId"
}
],
"index": 7,
"docs": [
"Create a new delegation pool with a previously used pool id",
"",
"# Arguments",
"",
"same as `create` with the inclusion of",
"* `pool_id` - `A valid PoolId."
]
},
{
"name": "nominate",
"fields": [
{
"name": "pool_id",
"type": 4,
"typeName": "PoolId"
},
{
"name": "validators",
"type": 122,
"typeName": "Vec<T::AccountId>"
}
],
"index": 8,
"docs": [
"Nominate on behalf of the pool.",
"",
"The dispatch origin of this call must be signed by the pool nominator or the pool",
"root role.",
"",
"This directly forward the call to the staking pallet, on behalf of the pool bonded",
"account."
]
},
{
"name": "set_state",
"fields": [
{
"name": "pool_id",
"type": 4,
"typeName": "PoolId"
},
{
"name": "state",
"type": 298,
"typeName": "PoolState"
}
],
"index": 9,
"docs": [
"Set a new state for the pool.",
"",
"If a pool is already in the `Destroying` state, then under no condition can its state",
"change again.",
"",
"The dispatch origin of this call must be either:",
"",
"1. signed by the bouncer, or the root role of the pool,",
"2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and",
" then the state of the pool can be permissionlessly changed to `Destroying`."
]
},
{
"name": "set_metadata",
"fields": [
{
"name": "pool_id",
"type": 4,
"typeName": "PoolId"
},
{
"name": "metadata",
"type": 28,
"typeName": "Vec<u8>"
}
],
"index": 10,
"docs": [
"Set a new metadata for the pool.",
"",
"The dispatch origin of this call must be signed by the bouncer, or the root role",
"of the pool."
]
},
{
"name": "set_configs",
"fields": [
{
"name": "min_join_bond",
"type": 299,
"typeName": "ConfigOp<BalanceOf<T>>"
},
{
"name": "min_create_bond",
"type": 299,
"typeName": "ConfigOp<BalanceOf<T>>"
},
{
"name": "max_pools",
"type": 300,
"typeName": "ConfigOp<u32>"
},
{
"name": "max_members",
"type": 300,
"typeName": "ConfigOp<u32>"
},
{
"name": "max_members_per_pool",
"type": 300,
"typeName": "ConfigOp<u32>"
}
],
"index": 11,
"docs": [
"Update configurations for the nomination pools. The origin for this call must be",
"Root.",
"",
"# Arguments",
"",
"* `min_join_bond` - Set [`MinJoinBond`].",
"* `min_create_bond` - Set [`MinCreateBond`].",
"* `max_pools` - Set [`MaxPools`].",
"* `max_members` - Set [`MaxPoolMembers`].",
"* `max_members_per_pool` - Set [`MaxPoolMembersPerPool`]."
]
},
{
"name": "update_roles",
"fields": [
{
"name": "pool_id",
"type": 4,
"typeName": "PoolId"
},
{
"name": "new_root",
"type": 301,
"typeName": "ConfigOp<T::AccountId>"
},
{
"name": "new_nominator",
"type": 301,
"typeName": "ConfigOp<T::AccountId>"
},
{
"name": "new_bouncer",
"type": 301,
"typeName": "ConfigOp<T::AccountId>"
}
],
"index": 12,
"docs": [
"Update the roles of the pool.",
"",
"The root is the only entity that can change any of the roles, including itself,",
"excluding the depositor, who can never change.",
"",
"It emits an event, notifying UIs of the role change. This event is quite relevant to",
"most pool members and they should be informed of changes to pool roles."
]
},
{
"name": "chill",
"fields": [
{
"name": "pool_id",
"type": 4,
"typeName": "PoolId"
}
],
"index": 13,
"docs": [
"Chill on behalf of the pool.",
"",
"The dispatch origin of this call must be signed by the pool nominator or the pool",
"root role, same as [`Pallet::nominate`].",
"",
"This directly forward the call to the staking pallet, on behalf of the pool bonded",
"account."
]
},
{
"name": "bond_extra_other",
"fields": [
{
"name": "member",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "extra",
"type": 297,
"typeName": "BondExtra<BalanceOf<T>>"
}
],
"index": 14,
"docs": [
"`origin` bonds funds from `extra` for some pool member `member` into their respective",
"pools.",
"",
"`origin` can bond extra funds from free balance or pending rewards when `origin ==",
"other`.",
"",
"In the case of `origin != other`, `origin` can only bond extra pending rewards of",
"`other` members assuming set_claim_permission for the given member is",
"`PermissionlessAll` or `PermissionlessCompound`."
]
},
{
"name": "set_claim_permission",
"fields": [
{
"name": "permission",
"type": 302,
"typeName": "ClaimPermission"
}
],
"index": 15,
"docs": [
"Allows a pool member to set a claim permission to allow or disallow permissionless",
"bonding and withdrawing.",
"",
"By default, this is `Permissioned`, which implies only the pool member themselves can",
"claim their pending rewards. If a pool member wishes so, they can set this to",
"`PermissionlessAll` to allow any account to claim their rewards and bond extra to the",
"pool.",
"",
"# Arguments",
"",
"* `origin` - Member of a pool.",
"* `actor` - Account to claim reward. // improve this"
]
},
{
"name": "claim_payout_other",
"fields": [
{
"name": "other",
"type": 52,
"typeName": "T::AccountId"
}
],
"index": 16,
"docs": [
"`origin` can claim payouts on some pool member `other`'s behalf.",
"",
"Pool member `other` must have a `PermissionlessAll` or `PermissionlessWithdraw` in order",
"for this call to be successful."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 297,
"type": {
"path": [
"pallet_nomination_pools",
"BondExtra"
],
"params": [
{
"name": "Balance",
"type": 57
}
],
"def": {
"variant": {
"variants": [
{
"name": "FreeBalance",
"fields": [
{
"type": 57,
"typeName": "Balance"
}
],
"index": 0
},
{
"name": "Rewards",
"index": 1
}
]
}
}
}
},
{
"id": 298,
"type": {
"path": [
"pallet_nomination_pools",
"PoolState"
],
"def": {
"variant": {
"variants": [
{
"name": "Open",
"index": 0
},
{
"name": "Blocked",
"index": 1
},
{
"name": "Destroying",
"index": 2
}
]
}
}
}
},
{
"id": 299,
"type": {
"path": [
"pallet_nomination_pools",
"ConfigOp"
],
"params": [
{
"name": "T",
"type": 57
}
],
"def": {
"variant": {
"variants": [
{
"name": "Noop",
"index": 0
},
{
"name": "Set",
"fields": [
{
"type": 57,
"typeName": "T"
}
],
"index": 1
},
{
"name": "Remove",
"index": 2
}
]
}
}
}
},
{
"id": 300,
"type": {
"path": [
"pallet_nomination_pools",
"ConfigOp"
],
"params": [
{
"name": "T",
"type": 4
}
],
"def": {
"variant": {
"variants": [
{
"name": "Noop",
"index": 0
},
{
"name": "Set",
"fields": [
{
"type": 4,
"typeName": "T"
}
],
"index": 1
},
{
"name": "Remove",
"index": 2
}
]
}
}
}
},
{
"id": 301,
"type": {
"path": [
"pallet_nomination_pools",
"ConfigOp"
],
"params": [
{
"name": "T",
"type": 52
}
],
"def": {
"variant": {
"variants": [
{
"name": "Noop",
"index": 0
},
{
"name": "Set",
"fields": [
{
"type": 52,
"typeName": "T"
}
],
"index": 1
},
{
"name": "Remove",
"index": 2
}
]
}
}
}
},
{
"id": 302,
"type": {
"path": [
"pallet_nomination_pools",
"ClaimPermission"
],
"def": {
"variant": {
"variants": [
{
"name": "Permissioned",
"index": 0
},
{
"name": "PermissionlessCompound",
"index": 1
},
{
"name": "PermissionlessWithdraw",
"index": 2
},
{
"name": "PermissionlessAll",
"index": 3
}
]
}
}
}
},
{
"id": 303,
"type": {
"path": [
"pallet_referenda",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "submit",
"fields": [
{
"name": "proposal_origin",
"type": 271,
"typeName": "Box<PalletsOriginOf<T>>"
},
{
"name": "proposal",
"type": 133,
"typeName": "BoundedCallOf<T, I>"
},
{
"name": "enactment_moment",
"type": 277,
"typeName": "DispatchTime<T::BlockNumber>"
}
],
"index": 0,
"docs": [
"Propose a referendum on a privileged action.",
"",
"- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds",
" available.",
"- `proposal_origin`: The origin from which the proposal should be executed.",
"- `proposal`: The proposal.",
"- `enactment_moment`: The moment that the proposal should be enacted.",
"",
"Emits `Submitted`."
]
},
{
"name": "place_decision_deposit",
"fields": [
{
"name": "index",
"type": 4,
"typeName": "ReferendumIndex"
}
],
"index": 1,
"docs": [
"Post the Decision Deposit for a referendum.",
"",
"- `origin`: must be `Signed` and the account must have funds available for the",
" referendum's track's Decision Deposit.",
"- `index`: The index of the submitted referendum whose Decision Deposit is yet to be",
" posted.",
"",
"Emits `DecisionDepositPlaced`."
]
},
{
"name": "refund_decision_deposit",
"fields": [
{
"name": "index",
"type": 4,
"typeName": "ReferendumIndex"
}
],
"index": 2,
"docs": [
"Refund the Decision Deposit for a closed referendum back to the depositor.",
"",
"- `origin`: must be `Signed` or `Root`.",
"- `index`: The index of a closed referendum whose Decision Deposit has not yet been",
" refunded.",
"",
"Emits `DecisionDepositRefunded`."
]
},
{
"name": "cancel",
"fields": [
{
"name": "index",
"type": 4,
"typeName": "ReferendumIndex"
}
],
"index": 3,
"docs": [
"Cancel an ongoing referendum.",
"",
"- `origin`: must be the `CancelOrigin`.",
"- `index`: The index of the referendum to be cancelled.",
"",
"Emits `Cancelled`."
]
},
{
"name": "kill",
"fields": [
{
"name": "index",
"type": 4,
"typeName": "ReferendumIndex"
}
],
"index": 4,
"docs": [
"Cancel an ongoing referendum and slash the deposits.",
"",
"- `origin`: must be the `KillOrigin`.",
"- `index`: The index of the referendum to be cancelled.",
"",
"Emits `Killed` and `DepositSlashed`."
]
},
{
"name": "nudge_referendum",
"fields": [
{
"name": "index",
"type": 4,
"typeName": "ReferendumIndex"
}
],
"index": 5,
"docs": [
"Advance a referendum onto its next logical state. Only used internally.",
"",
"- `origin`: must be `Root`.",
"- `index`: the referendum to be advanced."
]
},
{
"name": "one_fewer_deciding",
"fields": [
{
"name": "track",
"type": 20,
"typeName": "TrackIdOf<T, I>"
}
],
"index": 6,
"docs": [
"Advance a track onto its next logical state. Only used internally.",
"",
"- `origin`: must be `Root`.",
"- `track`: the track to be advanced.",
"",
"Action item for when there is now one fewer referendum in the deciding phase and the",
"`DecidingCount` is not yet updated. This means that we should either:",
"- begin deciding another referendum (and leave `DecidingCount` alone); or",
"- decrement `DecidingCount`."
]
},
{
"name": "refund_submission_deposit",
"fields": [
{
"name": "index",
"type": 4,
"typeName": "ReferendumIndex"
}
],
"index": 7,
"docs": [
"Refund the Submission Deposit for a closed referendum back to the depositor.",
"",
"- `origin`: must be `Signed` or `Root`.",
"- `index`: The index of a closed referendum whose Submission Deposit has not yet been",
" refunded.",
"",
"Emits `SubmissionDepositRefunded`."
]
},
{
"name": "set_metadata",
"fields": [
{
"name": "index",
"type": 4,
"typeName": "ReferendumIndex"
},
{
"name": "maybe_hash",
"type": 139,
"typeName": "Option<PreimageHash>"
}
],
"index": 8,
"docs": [
"Set or clear metadata of a referendum.",
"",
"Parameters:",
"- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a",
" metadata of a finished referendum.",
"- `index`: The index of a referendum to set or clear metadata for.",
"- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 304,
"type": {
"path": [
"pallet_ranked_collective",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "add_member",
"fields": [
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 0,
"docs": [
"Introduce a new member.",
"",
"- `origin`: Must be the `AdminOrigin`.",
"- `who`: Account of non-member which will become a member.",
"- `rank`: The rank to give the new member.",
"",
"Weight: `O(1)`"
]
},
{
"name": "promote_member",
"fields": [
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 1,
"docs": [
"Increment the rank of an existing member by one.",
"",
"- `origin`: Must be the `AdminOrigin`.",
"- `who`: Account of existing member.",
"",
"Weight: `O(1)`"
]
},
{
"name": "demote_member",
"fields": [
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
}
],
"index": 2,
"docs": [
"Decrement the rank of an existing member by one. If the member is already at rank zero,",
"then they are removed entirely.",
"",
"- `origin`: Must be the `AdminOrigin`.",
"- `who`: Account of existing member of rank greater than zero.",
"",
"Weight: `O(1)`, less if the member's index is highest in its rank."
]
},
{
"name": "remove_member",
"fields": [
{
"name": "who",
"type": 51,
"typeName": "AccountIdLookupOf<T>"
},
{
"name": "min_rank",
"type": 20,
"typeName": "Rank"
}
],
"index": 3,
"docs": [
"Remove the member entirely.",
"",
"- `origin`: Must be the `AdminOrigin`.",
"- `who`: Account of existing member of rank greater than zero.",
"- `min_rank`: The rank of the member or greater.",
"",
"Weight: `O(min_rank)`."
]
},
{
"name": "vote",
"fields": [
{
"name": "poll",
"type": 4,
"typeName": "PollIndexOf<T, I>"
},
{
"name": "aye",
"type": 54,
"typeName": "bool"
}
],
"index": 4,
"docs": [
"Add an aye or nay vote for the sender to the given proposal.",
"",
"- `origin`: Must be `Signed` by a member account.",
"- `poll`: Index of a poll which is ongoing.",
"- `aye`: `true` if the vote is to approve the proposal, `false` otherwise.",
"",
"Transaction fees are 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: `O(1)`, less if there was no previous vote on the poll by the member."
]
},
{
"name": "cleanup_poll",
"fields": [
{
"name": "poll_index",
"type": 4,
"typeName": "PollIndexOf<T, I>"
},
{
"name": "max",
"type": 4,
"typeName": "u32"
}
],
"index": 5,
"docs": [
"Remove votes from the given poll. It must have ended.",
"",
"- `origin`: Must be `Signed` by any account.",
"- `poll_index`: Index of a poll which is completed and for which votes continue to",
" exist.",
"- `max`: Maximum number of vote items from remove in this call.",
"",
"Transaction fees are waived if the operation is successful.",
"",
"Weight `O(max)` (less if there are fewer items to remove than `max`)."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 305,
"type": {
"path": [
"pallet_fast_unstake",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "register_fast_unstake",
"index": 0,
"docs": [
"Register oneself for fast-unstake.",
"",
"The dispatch origin of this call must be signed by the controller account, similar to",
"`staking::unbond`.",
"",
"The stash associated with the origin must have no ongoing unlocking chunks. If",
"successful, this will fully unbond and chill the stash. Then, it will enqueue the stash",
"to be checked in further blocks.",
"",
"If by the time this is called, the stash is actually eligible for fast-unstake, then",
"they are guaranteed to remain eligible, because the call will chill them as well.",
"",
"If the check works, the entire staking data is removed, i.e. the stash is fully",
"unstaked.",
"",
"If the check fails, the stash remains chilled and waiting for being unbonded as in with",
"the normal staking system, but they lose part of their unbonding chunks due to consuming",
"the chain's resources."
]
},
{
"name": "deregister",
"index": 1,
"docs": [
"Deregister oneself from the fast-unstake.",
"",
"This is useful if one is registered, they are still waiting, and they change their mind.",
"",
"Note that the associated stash is still fully unbonded and chilled as a consequence of",
"calling `register_fast_unstake`. This should probably be followed by a call to",
"`Staking::rebond`."
]
},
{
"name": "control",
"fields": [
{
"name": "eras_to_check",
"type": 4,
"typeName": "EraIndex"
}
],
"index": 2,
"docs": [
"Control the operation of this pallet.",
"",
"Dispatch origin must be signed by the [`Config::ControlOrigin`]."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 306,
"type": {
"path": [
"pallet_message_queue",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "reap_page",
"fields": [
{
"name": "message_origin",
"type": 4,
"typeName": "MessageOriginOf<T>"
},
{
"name": "page_index",
"type": 4,
"typeName": "PageIndex"
}
],
"index": 0,
"docs": [
"Remove a page which has no more messages remaining to be processed or is stale."
]
},
{
"name": "execute_overweight",
"fields": [
{
"name": "message_origin",
"type": 4,
"typeName": "MessageOriginOf<T>"
},
{
"name": "page",
"type": 4,
"typeName": "PageIndex"
},
{
"name": "index",
"type": 4,
"typeName": "T::Size"
},
{
"name": "weight_limit",
"type": 144,
"typeName": "Weight"
}
],
"index": 1,
"docs": [
"Execute an overweight message.",
"",
"Temporary processing errors will be propagated whereas permanent errors are treated",
"as success condition.",
"",
"- `origin`: Must be `Signed`.",
"- `message_origin`: The origin from which the message to be executed arrived.",
"- `page`: The page in the queue in which the message to be executed is sitting.",
"- `index`: The index into the queue of the message to be executed.",
"- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution",
" of the message.",
"",
"Benchmark complexity considerations: O(index + weight_limit)."
]
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 307,
"type": {
"path": [
"frame_benchmarking_pallet_pov",
"pallet",
"Call"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "emit_event",
"index": 0
},
{
"name": "noop",
"index": 1
}
]
}
},
"docs": [
"Contains one variant per dispatchable that can be called by an extrinsic."
]
}
},
{
"id": 308,
"type": {
"def": {
"tuple": [
309,
310,
311,
312,
313,
315,
316,
317
]
}
}
},
{
"id": 309,
"type": {
"path": [
"frame_system",
"extensions",
"check_non_zero_sender",
"CheckNonZeroSender"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"composite": {}
}
}
},
{
"id": 310,
"type": {
"path": [
"frame_system",
"extensions",
"check_spec_version",
"CheckSpecVersion"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"composite": {}
}
}
},
{
"id": 311,
"type": {
"path": [
"frame_system",
"extensions",
"check_tx_version",
"CheckTxVersion"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"composite": {}
}
}
},
{
"id": 312,
"type": {
"path": [
"frame_system",
"extensions",
"check_genesis",
"CheckGenesis"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"composite": {}
}
}
},
{
"id": 313,
"type": {
"path": [
"frame_system",
"extensions",
"check_mortality",
"CheckMortality"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"composite": {
"fields": [
{
"type": 314,
"typeName": "Era"
}
]
}
}
}
},
{
"id": 314,
"type": {
"path": [
"sp_runtime",
"generic",
"era",
"Era"
],
"def": {
"variant": {
"variants": [
{
"name": "Immortal",
"index": 0
},
{
"name": "Mortal1",
"fields": [
{
"type": 3
}
],
"index": 1
},
{
"name": "Mortal2",
"fields": [
{
"type": 3
}
],
"index": 2
},
{
"name": "Mortal3",
"fields": [
{
"type": 3
}
],
"index": 3
},
{
"name": "Mortal4",
"fields": [
{
"type": 3
}
],
"index": 4
},
{
"name": "Mortal5",
"fields": [
{
"type": 3
}
],
"index": 5
},
{
"name": "Mortal6",
"fields": [
{
"type": 3
}
],
"index": 6
},
{
"name": "Mortal7",
"fields": [
{
"type": 3
}
],
"index": 7
},
{
"name": "Mortal8",
"fields": [
{
"type": 3
}
],
"index": 8
},
{
"name": "Mortal9",
"fields": [
{
"type": 3
}
],
"index": 9
},
{
"name": "Mortal10",
"fields": [
{
"type": 3
}
],
"index": 10
},
{
"name": "Mortal11",
"fields": [
{
"type": 3
}
],
"index": 11
},
{
"name": "Mortal12",
"fields": [
{
"type": 3
}
],
"index": 12
},
{
"name": "Mortal13",
"fields": [
{
"type": 3
}
],
"index": 13
},
{
"name": "Mortal14",
"fields": [
{
"type": 3
}
],
"index": 14
},
{
"name": "Mortal15",
"fields": [
{
"type": 3
}
],
"index": 15
},
{
"name": "Mortal16",
"fields": [
{
"type": 3
}
],
"index": 16
},
{
"name": "Mortal17",
"fields": [
{
"type": 3
}
],
"index": 17
},
{
"name": "Mortal18",
"fields": [
{
"type": 3
}
],
"index": 18
},
{
"name": "Mortal19",
"fields": [
{
"type": 3
}
],
"index": 19
},
{
"name": "Mortal20",
"fields": [
{
"type": 3
}
],
"index": 20
},
{
"name": "Mortal21",
"fields": [
{
"type": 3
}
],
"index": 21
},
{
"name": "Mortal22",
"fields": [
{
"type": 3
}
],
"index": 22
},
{
"name": "Mortal23",
"fields": [
{
"type": 3
}
],
"index": 23
},
{
"name": "Mortal24",
"fields": [
{
"type": 3
}
],
"index": 24
},
{
"name": "Mortal25",
"fields": [
{
"type": 3
}
],
"index": 25
},
{
"name": "Mortal26",
"fields": [
{
"type": 3
}
],
"index": 26
},
{
"name": "Mortal27",
"fields": [
{
"type": 3
}
],
"index": 27
},
{
"name": "Mortal28",
"fields": [
{
"type": 3
}
],
"index": 28
},
{
"name": "Mortal29",
"fields": [
{
"type": 3
}
],
"index": 29
},
{
"name": "Mortal30",
"fields": [
{
"type": 3
}
],
"index": 30
},
{
"name": "Mortal31",
"fields": [
{
"type": 3
}
],
"index": 31
},
{
"name": "Mortal32",
"fields": [
{
"type": 3
}
],
"index": 32
},
{
"name": "Mortal33",
"fields": [
{
"type": 3
}
],
"index": 33
},
{
"name": "Mortal34",
"fields": [
{
"type": 3
}
],
"index": 34
},
{
"name": "Mortal35",
"fields": [
{
"type": 3
}
],
"index": 35
},
{
"name": "Mortal36",
"fields": [
{
"type": 3
}
],
"index": 36
},
{
"name": "Mortal37",
"fields": [
{
"type": 3
}
],
"index": 37
},
{
"name": "Mortal38",
"fields": [
{
"type": 3
}
],
"index": 38
},
{
"name": "Mortal39",
"fields": [
{
"type": 3
}
],
"index": 39
},
{
"name": "Mortal40",
"fields": [
{
"type": 3
}
],
"index": 40
},
{
"name": "Mortal41",
"fields": [
{
"type": 3
}
],
"index": 41
},
{
"name": "Mortal42",
"fields": [
{
"type": 3
}
],
"index": 42
},
{
"name": "Mortal43",
"fields": [
{
"type": 3
}
],
"index": 43
},
{
"name": "Mortal44",
"fields": [
{
"type": 3
}
],
"index": 44
},
{
"name": "Mortal45",
"fields": [
{
"type": 3
}
],
"index": 45
},
{
"name": "Mortal46",
"fields": [
{
"type": 3
}
],
"index": 46
},
{
"name": "Mortal47",
"fields": [
{
"type": 3
}
],
"index": 47
},
{
"name": "Mortal48",
"fields": [
{
"type": 3
}
],
"index": 48
},
{
"name": "Mortal49",
"fields": [
{
"type": 3
}
],
"index": 49
},
{
"name": "Mortal50",
"fields": [
{
"type": 3
}
],
"index": 50
},
{
"name": "Mortal51",
"fields": [
{
"type": 3
}
],
"index": 51
},
{
"name": "Mortal52",
"fields": [
{
"type": 3
}
],
"index": 52
},
{
"name": "Mortal53",
"fields": [
{
"type": 3
}
],
"index": 53
},
{
"name": "Mortal54",
"fields": [
{
"type": 3
}
],
"index": 54
},
{
"name": "Mortal55",
"fields": [
{
"type": 3
}
],
"index": 55
},
{
"name": "Mortal56",
"fields": [
{
"type": 3
}
],
"index": 56
},
{
"name": "Mortal57",
"fields": [
{
"type": 3
}
],
"index": 57
},
{
"name": "Mortal58",
"fields": [
{
"type": 3
}
],
"index": 58
},
{
"name": "Mortal59",
"fields": [
{
"type": 3
}
],
"index": 59
},
{
"name": "Mortal60",
"fields": [
{
"type": 3
}
],
"index": 60
},
{
"name": "Mortal61",
"fields": [
{
"type": 3
}
],
"index": 61
},
{
"name": "Mortal62",
"fields": [
{
"type": 3
}
],
"index": 62
},
{
"name": "Mortal63",
"fields": [
{
"type": 3
}
],
"index": 63
},
{
"name": "Mortal64",
"fields": [
{
"type": 3
}
],
"index": 64
},
{
"name": "Mortal65",
"fields": [
{
"type": 3
}
],
"index": 65
},
{
"name": "Mortal66",
"fields": [
{
"type": 3
}
],
"index": 66
},
{
"name": "Mortal67",
"fields": [
{
"type": 3
}
],
"index": 67
},
{
"name": "Mortal68",
"fields": [
{
"type": 3
}
],
"index": 68
},
{
"name": "Mortal69",
"fields": [
{
"type": 3
}
],
"index": 69
},
{
"name": "Mortal70",
"fields": [
{
"type": 3
}
],
"index": 70
},
{
"name": "Mortal71",
"fields": [
{
"type": 3
}
],
"index": 71
},
{
"name": "Mortal72",
"fields": [
{
"type": 3
}
],
"index": 72
},
{
"name": "Mortal73",
"fields": [
{
"type": 3
}
],
"index": 73
},
{
"name": "Mortal74",
"fields": [
{
"type": 3
}
],
"index": 74
},
{
"name": "Mortal75",
"fields": [
{
"type": 3
}
],
"index": 75
},
{
"name": "Mortal76",
"fields": [
{
"type": 3
}
],
"index": 76
},
{
"name": "Mortal77",
"fields": [
{
"type": 3
}
],
"index": 77
},
{
"name": "Mortal78",
"fields": [
{
"type": 3
}
],
"index": 78
},
{
"name": "Mortal79",
"fields": [
{
"type": 3
}
],
"index": 79
},
{
"name": "Mortal80",
"fields": [
{
"type": 3
}
],
"index": 80
},
{
"name": "Mortal81",
"fields": [
{
"type": 3
}
],
"index": 81
},
{
"name": "Mortal82",
"fields": [
{
"type": 3
}
],
"index": 82
},
{
"name": "Mortal83",
"fields": [
{
"type": 3
}
],
"index": 83
},
{
"name": "Mortal84",
"fields": [
{
"type": 3
}
],
"index": 84
},
{
"name": "Mortal85",
"fields": [
{
"type": 3
}
],
"index": 85
},
{
"name": "Mortal86",
"fields": [
{
"type": 3
}
],
"index": 86
},
{
"name": "Mortal87",
"fields": [
{
"type": 3
}
],
"index": 87
},
{
"name": "Mortal88",
"fields": [
{
"type": 3
}
],
"index": 88
},
{
"name": "Mortal89",
"fields": [
{
"type": 3
}
],
"index": 89
},
{
"name": "Mortal90",
"fields": [
{
"type": 3
}
],
"index": 90
},
{
"name": "Mortal91",
"fields": [
{
"type": 3
}
],
"index": 91
},
{
"name": "Mortal92",
"fields": [
{
"type": 3
}
],
"index": 92
},
{
"name": "Mortal93",
"fields": [
{
"type": 3
}
],
"index": 93
},
{
"name": "Mortal94",
"fields": [
{
"type": 3
}
],
"index": 94
},
{
"name": "Mortal95",
"fields": [
{
"type": 3
}
],
"index": 95
},
{
"name": "Mortal96",
"fields": [
{
"type": 3
}
],
"index": 96
},
{
"name": "Mortal97",
"fields": [
{
"type": 3
}
],
"index": 97
},
{
"name": "Mortal98",
"fields": [
{
"type": 3
}
],
"index": 98
},
{
"name": "Mortal99",
"fields": [
{
"type": 3
}
],
"index": 99
},
{
"name": "Mortal100",
"fields": [
{
"type": 3
}
],
"index": 100
},
{
"name": "Mortal101",
"fields": [
{
"type": 3
}
],
"index": 101
},
{
"name": "Mortal102",
"fields": [
{
"type": 3
}
],
"index": 102
},
{
"name": "Mortal103",
"fields": [
{
"type": 3
}
],
"index": 103
},
{
"name": "Mortal104",
"fields": [
{
"type": 3
}
],
"index": 104
},
{
"name": "Mortal105",
"fields": [
{
"type": 3
}
],
"index": 105
},
{
"name": "Mortal106",
"fields": [
{
"type": 3
}
],
"index": 106
},
{
"name": "Mortal107",
"fields": [
{
"type": 3
}
],
"index": 107
},
{
"name": "Mortal108",
"fields": [
{
"type": 3
}
],
"index": 108
},
{
"name": "Mortal109",
"fields": [
{
"type": 3
}
],
"index": 109
},
{
"name": "Mortal110",
"fields": [
{
"type": 3
}
],
"index": 110
},
{
"name": "Mortal111",
"fields": [
{
"type": 3
}
],
"index": 111
},
{
"name": "Mortal112",
"fields": [
{
"type": 3
}
],
"index": 112
},
{
"name": "Mortal113",
"fields": [
{
"type": 3
}
],
"index": 113
},
{
"name": "Mortal114",
"fields": [
{
"type": 3
}
],
"index": 114
},
{
"name": "Mortal115",
"fields": [
{
"type": 3
}
],
"index": 115
},
{
"name": "Mortal116",
"fields": [
{
"type": 3
}
],
"index": 116
},
{
"name": "Mortal117",
"fields": [
{
"type": 3
}
],
"index": 117
},
{
"name": "Mortal118",
"fields": [
{
"type": 3
}
],
"index": 118
},
{
"name": "Mortal119",
"fields": [
{
"type": 3
}
],
"index": 119
},
{
"name": "Mortal120",
"fields": [
{
"type": 3
}
],
"index": 120
},
{
"name": "Mortal121",
"fields": [
{
"type": 3
}
],
"index": 121
},
{
"name": "Mortal122",
"fields": [
{
"type": 3
}
],
"index": 122
},
{
"name": "Mortal123",
"fields": [
{
"type": 3
}
],
"index": 123
},
{
"name": "Mortal124",
"fields": [
{
"type": 3
}
],
"index": 124
},
{
"name": "Mortal125",
"fields": [
{
"type": 3
}
],
"index": 125
},
{
"name": "Mortal126",
"fields": [
{
"type": 3
}
],
"index": 126
},
{
"name": "Mortal127",
"fields": [
{
"type": 3
}
],
"index": 127
},
{
"name": "Mortal128",
"fields": [
{
"type": 3
}
],
"index": 128
},
{
"name": "Mortal129",
"fields": [
{
"type": 3
}
],
"index": 129
},
{
"name": "Mortal130",
"fields": [
{
"type": 3
}
],
"index": 130
},
{
"name": "Mortal131",
"fields": [
{
"type": 3
}
],
"index": 131
},
{
"name": "Mortal132",
"fields": [
{
"type": 3
}
],
"index": 132
},
{
"name": "Mortal133",
"fields": [
{
"type": 3
}
],
"index": 133
},
{
"name": "Mortal134",
"fields": [
{
"type": 3
}
],
"index": 134
},
{
"name": "Mortal135",
"fields": [
{
"type": 3
}
],
"index": 135
},
{
"name": "Mortal136",
"fields": [
{
"type": 3
}
],
"index": 136
},
{
"name": "Mortal137",
"fields": [
{
"type": 3
}
],
"index": 137
},
{
"name": "Mortal138",
"fields": [
{
"type": 3
}
],
"index": 138
},
{
"name": "Mortal139",
"fields": [
{
"type": 3
}
],
"index": 139
},
{
"name": "Mortal140",
"fields": [
{
"type": 3
}
],
"index": 140
},
{
"name": "Mortal141",
"fields": [
{
"type": 3
}
],
"index": 141
},
{
"name": "Mortal142",
"fields": [
{
"type": 3
}
],
"index": 142
},
{
"name": "Mortal143",
"fields": [
{
"type": 3
}
],
"index": 143
},
{
"name": "Mortal144",
"fields": [
{
"type": 3
}
],
"index": 144
},
{
"name": "Mortal145",
"fields": [
{
"type": 3
}
],
"index": 145
},
{
"name": "Mortal146",
"fields": [
{
"type": 3
}
],
"index": 146
},
{
"name": "Mortal147",
"fields": [
{
"type": 3
}
],
"index": 147
},
{
"name": "Mortal148",
"fields": [
{
"type": 3
}
],
"index": 148
},
{
"name": "Mortal149",
"fields": [
{
"type": 3
}
],
"index": 149
},
{
"name": "Mortal150",
"fields": [
{
"type": 3
}
],
"index": 150
},
{
"name": "Mortal151",
"fields": [
{
"type": 3
}
],
"index": 151
},
{
"name": "Mortal152",
"fields": [
{
"type": 3
}
],
"index": 152
},
{
"name": "Mortal153",
"fields": [
{
"type": 3
}
],
"index": 153
},
{
"name": "Mortal154",
"fields": [
{
"type": 3
}
],
"index": 154
},
{
"name": "Mortal155",
"fields": [
{
"type": 3
}
],
"index": 155
},
{
"name": "Mortal156",
"fields": [
{
"type": 3
}
],
"index": 156
},
{
"name": "Mortal157",
"fields": [
{
"type": 3
}
],
"index": 157
},
{
"name": "Mortal158",
"fields": [
{
"type": 3
}
],
"index": 158
},
{
"name": "Mortal159",
"fields": [
{
"type": 3
}
],
"index": 159
},
{
"name": "Mortal160",
"fields": [
{
"type": 3
}
],
"index": 160
},
{
"name": "Mortal161",
"fields": [
{
"type": 3
}
],
"index": 161
},
{
"name": "Mortal162",
"fields": [
{
"type": 3
}
],
"index": 162
},
{
"name": "Mortal163",
"fields": [
{
"type": 3
}
],
"index": 163
},
{
"name": "Mortal164",
"fields": [
{
"type": 3
}
],
"index": 164
},
{
"name": "Mortal165",
"fields": [
{
"type": 3
}
],
"index": 165
},
{
"name": "Mortal166",
"fields": [
{
"type": 3
}
],
"index": 166
},
{
"name": "Mortal167",
"fields": [
{
"type": 3
}
],
"index": 167
},
{
"name": "Mortal168",
"fields": [
{
"type": 3
}
],
"index": 168
},
{
"name": "Mortal169",
"fields": [
{
"type": 3
}
],
"index": 169
},
{
"name": "Mortal170",
"fields": [
{
"type": 3
}
],
"index": 170
},
{
"name": "Mortal171",
"fields": [
{
"type": 3
}
],
"index": 171
},
{
"name": "Mortal172",
"fields": [
{
"type": 3
}
],
"index": 172
},
{
"name": "Mortal173",
"fields": [
{
"type": 3
}
],
"index": 173
},
{
"name": "Mortal174",
"fields": [
{
"type": 3
}
],
"index": 174
},
{
"name": "Mortal175",
"fields": [
{
"type": 3
}
],
"index": 175
},
{
"name": "Mortal176",
"fields": [
{
"type": 3
}
],
"index": 176
},
{
"name": "Mortal177",
"fields": [
{
"type": 3
}
],
"index": 177
},
{
"name": "Mortal178",
"fields": [
{
"type": 3
}
],
"index": 178
},
{
"name": "Mortal179",
"fields": [
{
"type": 3
}
],
"index": 179
},
{
"name": "Mortal180",
"fields": [
{
"type": 3
}
],
"index": 180
},
{
"name": "Mortal181",
"fields": [
{
"type": 3
}
],
"index": 181
},
{
"name": "Mortal182",
"fields": [
{
"type": 3
}
],
"index": 182
},
{
"name": "Mortal183",
"fields": [
{
"type": 3
}
],
"index": 183
},
{
"name": "Mortal184",
"fields": [
{
"type": 3
}
],
"index": 184
},
{
"name": "Mortal185",
"fields": [
{
"type": 3
}
],
"index": 185
},
{
"name": "Mortal186",
"fields": [
{
"type": 3
}
],
"index": 186
},
{
"name": "Mortal187",
"fields": [
{
"type": 3
}
],
"index": 187
},
{
"name": "Mortal188",
"fields": [
{
"type": 3
}
],
"index": 188
},
{
"name": "Mortal189",
"fields": [
{
"type": 3
}
],
"index": 189
},
{
"name": "Mortal190",
"fields": [
{
"type": 3
}
],
"index": 190
},
{
"name": "Mortal191",
"fields": [
{
"type": 3
}
],
"index": 191
},
{
"name": "Mortal192",
"fields": [
{
"type": 3
}
],
"index": 192
},
{
"name": "Mortal193",
"fields": [
{
"type": 3
}
],
"index": 193
},
{
"name": "Mortal194",
"fields": [
{
"type": 3
}
],
"index": 194
},
{
"name": "Mortal195",
"fields": [
{
"type": 3
}
],
"index": 195
},
{
"name": "Mortal196",
"fields": [
{
"type": 3
}
],
"index": 196
},
{
"name": "Mortal197",
"fields": [
{
"type": 3
}
],
"index": 197
},
{
"name": "Mortal198",
"fields": [
{
"type": 3
}
],
"index": 198
},
{
"name": "Mortal199",
"fields": [
{
"type": 3
}
],
"index": 199
},
{
"name": "Mortal200",
"fields": [
{
"type": 3
}
],
"index": 200
},
{
"name": "Mortal201",
"fields": [
{
"type": 3
}
],
"index": 201
},
{
"name": "Mortal202",
"fields": [
{
"type": 3
}
],
"index": 202
},
{
"name": "Mortal203",
"fields": [
{
"type": 3
}
],
"index": 203
},
{
"name": "Mortal204",
"fields": [
{
"type": 3
}
],
"index": 204
},
{
"name": "Mortal205",
"fields": [
{
"type": 3
}
],
"index": 205
},
{
"name": "Mortal206",
"fields": [
{
"type": 3
}
],
"index": 206
},
{
"name": "Mortal207",
"fields": [
{
"type": 3
}
],
"index": 207
},
{
"name": "Mortal208",
"fields": [
{
"type": 3
}
],
"index": 208
},
{
"name": "Mortal209",
"fields": [
{
"type": 3
}
],
"index": 209
},
{
"name": "Mortal210",
"fields": [
{
"type": 3
}
],
"index": 210
},
{
"name": "Mortal211",
"fields": [
{
"type": 3
}
],
"index": 211
},
{
"name": "Mortal212",
"fields": [
{
"type": 3
}
],
"index": 212
},
{
"name": "Mortal213",
"fields": [
{
"type": 3
}
],
"index": 213
},
{
"name": "Mortal214",
"fields": [
{
"type": 3
}
],
"index": 214
},
{
"name": "Mortal215",
"fields": [
{
"type": 3
}
],
"index": 215
},
{
"name": "Mortal216",
"fields": [
{
"type": 3
}
],
"index": 216
},
{
"name": "Mortal217",
"fields": [
{
"type": 3
}
],
"index": 217
},
{
"name": "Mortal218",
"fields": [
{
"type": 3
}
],
"index": 218
},
{
"name": "Mortal219",
"fields": [
{
"type": 3
}
],
"index": 219
},
{
"name": "Mortal220",
"fields": [
{
"type": 3
}
],
"index": 220
},
{
"name": "Mortal221",
"fields": [
{
"type": 3
}
],
"index": 221
},
{
"name": "Mortal222",
"fields": [
{
"type": 3
}
],
"index": 222
},
{
"name": "Mortal223",
"fields": [
{
"type": 3
}
],
"index": 223
},
{
"name": "Mortal224",
"fields": [
{
"type": 3
}
],
"index": 224
},
{
"name": "Mortal225",
"fields": [
{
"type": 3
}
],
"index": 225
},
{
"name": "Mortal226",
"fields": [
{
"type": 3
}
],
"index": 226
},
{
"name": "Mortal227",
"fields": [
{
"type": 3
}
],
"index": 227
},
{
"name": "Mortal228",
"fields": [
{
"type": 3
}
],
"index": 228
},
{
"name": "Mortal229",
"fields": [
{
"type": 3
}
],
"index": 229
},
{
"name": "Mortal230",
"fields": [
{
"type": 3
}
],
"index": 230
},
{
"name": "Mortal231",
"fields": [
{
"type": 3
}
],
"index": 231
},
{
"name": "Mortal232",
"fields": [
{
"type": 3
}
],
"index": 232
},
{
"name": "Mortal233",
"fields": [
{
"type": 3
}
],
"index": 233
},
{
"name": "Mortal234",
"fields": [
{
"type": 3
}
],
"index": 234
},
{
"name": "Mortal235",
"fields": [
{
"type": 3
}
],
"index": 235
},
{
"name": "Mortal236",
"fields": [
{
"type": 3
}
],
"index": 236
},
{
"name": "Mortal237",
"fields": [
{
"type": 3
}
],
"index": 237
},
{
"name": "Mortal238",
"fields": [
{
"type": 3
}
],
"index": 238
},
{
"name": "Mortal239",
"fields": [
{
"type": 3
}
],
"index": 239
},
{
"name": "Mortal240",
"fields": [
{
"type": 3
}
],
"index": 240
},
{
"name": "Mortal241",
"fields": [
{
"type": 3
}
],
"index": 241
},
{
"name": "Mortal242",
"fields": [
{
"type": 3
}
],
"index": 242
},
{
"name": "Mortal243",
"fields": [
{
"type": 3
}
],
"index": 243
},
{
"name": "Mortal244",
"fields": [
{
"type": 3
}
],
"index": 244
},
{
"name": "Mortal245",
"fields": [
{
"type": 3
}
],
"index": 245
},
{
"name": "Mortal246",
"fields": [
{
"type": 3
}
],
"index": 246
},
{
"name": "Mortal247",
"fields": [
{
"type": 3
}
],
"index": 247
},
{
"name": "Mortal248",
"fields": [
{
"type": 3
}
],
"index": 248
},
{
"name": "Mortal249",
"fields": [
{
"type": 3
}
],
"index": 249
},
{
"name": "Mortal250",
"fields": [
{
"type": 3
}
],
"index": 250
},
{
"name": "Mortal251",
"fields": [
{
"type": 3
}
],
"index": 251
},
{
"name": "Mortal252",
"fields": [
{
"type": 3
}
],
"index": 252
},
{
"name": "Mortal253",
"fields": [
{
"type": 3
}
],
"index": 253
},
{
"name": "Mortal254",
"fields": [
{
"type": 3
}
],
"index": 254
},
{
"name": "Mortal255",
"fields": [
{
"type": 3
}
],
"index": 255
}
]
}
}
}
},
{
"id": 315,
"type": {
"path": [
"frame_system",
"extensions",
"check_nonce",
"CheckNonce"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"composite": {
"fields": [
{
"type": 36,
"typeName": "T::Index"
}
]
}
}
}
},
{
"id": 316,
"type": {
"path": [
"frame_system",
"extensions",
"check_weight",
"CheckWeight"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"composite": {}
}
}
},
{
"id": 317,
"type": {
"path": [
"pallet_asset_tx_payment",
"ChargeAssetTxPayment"
],
"params": [
{
"name": "T",
"type": null
}
],
"def": {
"composite": {
"fields": [
{
"name": "tip",
"type": 56,
"typeName": "BalanceOf<T>"
},
{
"name": "asset_id",
"type": 114,
"typeName": "Option<ChargeAssetIdOf<T>>"
}
]
}
}
}
},
{
"id": 318,
"type": {
"path": [
"sp_runtime",
"generic",
"unchecked_extrinsic",
"UncheckedExtrinsic"
],
"params": [
{
"name": "Address",
"type": 51
},
{
"name": "Call",
"type": 26
},
{
"name": "Signature",
"type": 256
},
{
"name": "Extra",
"type": 308
}
],
"def": {
"composite": {
"fields": [
{
"type": 28
}
]
}
}
}
},
{
"id": 319,
"type": {
"path": [
"pallet_balances",
"pallet",
"Event"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "Endowed",
"fields": [
{
"name": "account",
"type": 52,
"typeName": "T::AccountId"
},
{
"name": "free_balance",
"type": 57,
"typeName": "T::Balance"
}
],
"index": 0,
"docs": [
"An account was created with some free balance."
]
},
{
"name": "DustLost",
"fields": [
{
"name": "account",
"type": 52,
"typeName": "T::AccountId"
},
{
"name": "amount",
"type": 57,
"typeName": "T::Balance"
}
],
"index": 1,
"docs": [
"An account was removed whose balance was non-zero but below ExistentialDeposit,",
"resulting in an outright loss."
]
},
{
"name": "Transfer",
"fields": [
{
"name": "from",
"type": 52,
"typeName": "T::AccountId"
},
{
"name": "to",
"type": 52,
"typeName": "T::AccountId"
},
{
"name": "amount",
"type": 57,
"typeName": "T::Balance"
}
],
"index": 2,
"docs": [
"Transfer succeeded."
]
},
{
"name": "BalanceSet",
"fields": [
{
"name": "who",
"type": 52,
"typeName": "T::AccountId"
},
{
"name": "free",
"type": 57,
"typeName": "T::Balance"
},
{
"name": "reserved",
"type": 57,
"typeName": "T::Balance"
}
],
"index": 3,
"docs": [
"A balance was set by root."
]
},
{
"name": "Reserved",
"fields": [
{
"name": "who",
"type": 52,
"typeName": "T::AccountId"
},
{
"name": "amount",
"type": 57,
"typeName": "T::Balance"
}
],
"index": 4,
"docs": [
"Some balance was reserved (moved from free to reserved)."
]
},
{
"name": "Unreserved",
"fields": [
{
"name": "who",
"type": 52,
"typeName": "T::AccountId"
},
{
"name": "amount",
"type": 57,
"typeName": "T::Balance"
}
],
"index": 5,
"docs": [
"Some balance was unreserved (moved from reserved to free)."
]
},
{
"name": "ReserveRepatriated",
"fields": [
{
"name": "from",
"type": 52,
"typeName": "T::AccountId"
},
{
"name": "to",
"type": 52,
"typeName": "T::AccountId"
},
{
"name": "amount",
"type": 57,
"typeName": "T::Balance"
},
{
"name": "destination_status",
"type": 320,
"typeName": "Status"
}
],
"index": 6,
"docs": [
"Some balance was moved from the reserve of the first account to the second account.",
"Final argument indicates the destination balance type."
]
},
{
"name": "Deposit",
"fields": [
{
"name": "who",
"type": 52,
"typeName": "T::AccountId"
},
{
"name": "amount",
"type": 57,
"typeName": "T::Balance"
}
],
"index": 7,
"docs": [
"Some amount was deposited (e.g. for transaction fees)."
]
},
{
"name": "Withdraw",
"fields": [
{
"name": "who",
"type": 52,
"typeName": "T::AccountId"
},
{
"name": "amount",
"type": 57,
"typeName": "T::Balance"
}
],
"index": 8,
"docs": [
"Some amount was withdrawn from the account (e.g. for transaction fees)."
]
},
{
"name": "Slashed",
"fields": [
{
"name": "who",
"type": 52,
"typeName": "T::AccountId"
},
{
"name": "amount",
"type": 57,
"typeName": "T::Balance"
}
],
"index": 9,
"docs": [
"Some amount was removed from the account (e.g. for misbehavior)."
]
}
]
}
},
"docs": [
"\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t"
]
}
},
{
"id": 320,
"type": {
"path": [
"frame_support",
"traits",
"tokens",
"misc",
"BalanceStatus"
],
"def": {
"variant": {
"variants": [
{
"name": "Free",
"index": 0
},
{
"name": "Reserved",
"index": 1
}
]
}
}
}
},
{
"id": 321,
"type": {
"path": [
"bounded_collections",
"weak_bounded_vec",
"WeakBoundedVec"
],
"params": [
{
"name": "T",
"type": 322
},
{
"name": "S",
"type": null
}
],
"def": {
"composite": {
"fields": [
{
"type": 324,
"typeName": "Vec<T>"
}
]
}
}
}
},
{
"id": 322,
"type": {
"path": [
"pallet_balances",
"BalanceLock"
],
"params": [
{
"name": "Balance",
"type": 57
}
],
"def": {
"composite": {
"fields": [
{
"name": "id",
"type": 176,
"typeName": "LockIdentifier"
},
{
"name": "amount",
"type": 57,
"typeName": "Balance"
},
{
"name": "reasons",
"type": 323,
"typeName": "Reasons"
}
]
}
}
}
},
{
"id": 323,
"type": {
"path": [
"pallet_balances",
"Reasons"
],
"def": {
"variant": {
"variants": [
{
"name": "Fee",
"index": 0
},
{
"name": "Misc",
"index": 1
},
{
"name": "All",
"index": 2
}
]
}
}
}
},
{
"id": 324,
"type": {
"def": {
"sequence": {
"type": 322
}
}
}
},
{
"id": 325,
"type": {
"path": [
"bounded_collections",
"bounded_vec",
"BoundedVec"
],
"params": [
{
"name": "T",
"type": 326
},
{
"name": "S",
"type": null
}
],
"def": {
"composite": {
"fields": [
{
"type": 327,
"typeName": "Vec<T>"
}
]
}
}
}
},
{
"id": 326,
"type": {
"path": [
"pallet_balances",
"ReserveData"
],
"params": [
{
"name": "ReserveIdentifier",
"type": 176
},
{
"name": "Balance",
"type": 57
}
],
"def": {
"composite": {
"fields": [
{
"name": "id",
"type": 176,
"typeName": "ReserveIdentifier"
},
{
"name": "amount",
"type": 57,
"typeName": "Balance"
}
]
}
}
}
},
{
"id": 327,
"type": {
"def": {
"sequence": {
"type": 326
}
}
}
},
{
"id": 328,
"type": {
"path": [
"pallet_balances",
"AccountData"
],
"params": [
{
"name": "Balance",
"type": 57
}
],
"def": {
"composite": {
"fields": [
{
"name": "free",
"type": 57,
"typeName": "Balance"
},
{
"name": "reserved",
"type": 57,
"typeName": "Balance"
},
{
"name": "misc_frozen",
"type": 57,
"typeName": "Balance"
},
{
"name": "fee_frozen",
"type": 57,
"typeName": "Balance"
}
]
}
}
}
},
{
"id": 329,
"type": {
"path": [
"kitchensink_runtime",
"Runtime"
],
"def": {
"composite": {}
}
}
},
{
"id": 330,
"type": {
"def": {
"tuple": []
}
}
},
{
"id": 331,
"type": {
"path": [
"pallet_balances",
"pallet",
"Error"
],
"params": [
{
"name": "T",
"type": null
},
{
"name": "I",
"type": null
}
],
"def": {
"variant": {
"variants": [
{
"name": "VestingBalance",
"index": 0,
"docs": [
"Vesting balance too high to send value"
]
},
{
"name": "LiquidityRestrictions",
"index": 1,
"docs": [
"Account liquidity restrictions prevent withdrawal"
]
},
{
"name": "InsufficientBalance",
"index": 2,
"docs": [
"Balance too low to send value."
]
},
{
"name": "ExistentialDeposit",
"index": 3,
"docs": [
"Value too low to create account due to existential deposit"
]
},
{
"name": "KeepAlive",
"index": 4,
"docs": [
"Transfer/payment would kill account"
]
},
{
"name": "ExistingVestingSchedule",
"index": 5,
"docs": [
"A vesting schedule already exists for this account"
]
},
{
"name": "DeadAccount",
"index": 6,
"docs": [
"Beneficiary account must pre-exist"
]
},
{
"name": "TooManyReserves",
"index": 7,
"docs": [
"Number of named reserves exceed MaxReserves"
]
}
]
}
},
"docs": [
"\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t"
]
}
}
]
},
"pallets": [
{
"name": "Balances",
"storage": {
"prefix": "Balances",
"entries": [
{
"name": "TotalIssuance",
"modifier": "Default",
"ty": {
"Plain": 57
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
" The total units issued in the system."
]
},
{
"name": "InactiveIssuance",
"modifier": "Default",
"ty": {
"Plain": 57
},
"default": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
" The total units of outstanding deactivated balance in the system."
]
},
{
"name": "Account",
"modifier": "Default",
"ty": {
"Map": {
"hashers": [
"Blake2_128Concat"
],
"key": 52,
"value": 328
}
},
"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
],
"docs": [
" The Balances pallet example of storing the balance of an account.",
"",
" # Example",
"",
" ```nocompile",
" impl pallet_balances::Config for Runtime {",
" type AccountStore = StorageMapShim<Self::Account<Runtime>, frame_system::Provider<Runtime>, AccountId, Self::AccountData<Balance>>",
" }",
" ```",
"",
" You can also store the balance of an account in the `System` pallet.",
"",
" # Example",
"",
" ```nocompile",
" impl pallet_balances::Config for Runtime {",
" type AccountStore = System",
" }",
" ```",
"",
" But this comes with tradeoffs, storing account balances in the system pallet stores",
" `frame_system` data alongside the account data contrary to storing account balances in the",
" `Balances` pallet, which uses a `StorageMap` to store balances data only.",
" NOTE: This is only used in the case that this pallet is used to store balances."
]
},
{
"name": "Locks",
"modifier": "Default",
"ty": {
"Map": {
"hashers": [
"Blake2_128Concat"
],
"key": 52,
"value": 321
}
},
"default": [
0
],
"docs": [
" Any liquidity locks on some account balances.",
" NOTE: Should only be accessed when setting, changing and freeing a lock."
]
},
{
"name": "Reserves",
"modifier": "Default",
"ty": {
"Map": {
"hashers": [
"Blake2_128Concat"
],
"key": 52,
"value": 325
}
},
"default": [
0
],
"docs": [
" Named reserves on some account balances."
]
}
]
},
"calls": {
"ty": 55
},
"event": {
"ty": 319
},
"constants": [
{
"name": "ExistentialDeposit",
"ty": 57,
"value": [
0,
64,
122,
16,
243,
90,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"docs": [
" The minimum amount required to keep an account open."
]
},
{
"name": "MaxLocks",
"ty": 4,
"value": [
50,
0,
0,
0
],
"docs": [
" The maximum number of locks that should exist on an account.",
" Not strictly enforced, but used for weight estimation."
]
},
{
"name": "MaxReserves",
"ty": 4,
"value": [
50,
0,
0,
0
],
"docs": [
" The maximum number of named reserves that can exist on an account."
]
}
],
"error": {
"ty": 331
},
"index": 6
}
],
"extrinsic": {
"ty": 318,
"version": 4,
"signed_extensions": [
{
"identifier": "CheckNonZeroSender",
"ty": 309,
"additional_signed": 330
},
{
"identifier": "CheckSpecVersion",
"ty": 310,
"additional_signed": 4
},
{
"identifier": "CheckTxVersion",
"ty": 311,
"additional_signed": 4
},
{
"identifier": "CheckGenesis",
"ty": 312,
"additional_signed": 1
},
{
"identifier": "CheckMortality",
"ty": 313,
"additional_signed": 1
},
{
"identifier": "CheckNonce",
"ty": 315,
"additional_signed": 330
},
{
"identifier": "CheckWeight",
"ty": 316,
"additional_signed": 330
},
{
"identifier": "ChargeAssetTxPayment",
"ty": 317,
"additional_signed": 330
}
]
},
"ty": 755
}
}
]