{
    "magicNumber": "1635018093",
    "metadata": {
        "v9": {
            "modules": [
                {
                    "name": "System",
                    "storage": {
                        "prefix": "System",
                        "items": [
                            {
                                "name": "AccountNonce",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "AccountId",
                                        "value": "Index",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " Extrinsics nonce for accounts."
                                ]
                            },
                            {
                                "name": "ExtrinsicCount",
                                "modifier": "Optional",
                                "type": {
                                    "plain": "u32"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Total extrinsics count for the current block."
                                ]
                            },
                            {
                                "name": "AllExtrinsicsWeight",
                                "modifier": "Optional",
                                "type": {
                                    "plain": "Weight"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Total weight for all extrinsics put together, for the current block."
                                ]
                            },
                            {
                                "name": "AllExtrinsicsLen",
                                "modifier": "Optional",
                                "type": {
                                    "plain": "u32"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Total length (in bytes) for all extrinsics put together, for the current block."
                                ]
                            },
                            {
                                "name": "BlockHash",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "BlockNumber",
                                        "value": "Hash",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
                                "docs": [
                                    " Map of block numbers to block hashes."
                                ]
                            },
                            {
                                "name": "ExtrinsicData",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "u32",
                                        "value": "Bytes",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Extrinsics data for the current block (maps an extrinsic's index to its data)."
                                ]
                            },
                            {
                                "name": "Number",
                                "modifier": "Default",
                                "type": {
                                    "plain": "BlockNumber"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " The current block number being processed. Set by `execute_block`."
                                ]
                            },
                            {
                                "name": "ParentHash",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Hash"
                                },
                                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
                                "docs": [
                                    " Hash of the previous block."
                                ]
                            },
                            {
                                "name": "ExtrinsicsRoot",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Hash"
                                },
                                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
                                "docs": [
                                    " Extrinsics root of the current block, also part of the block header."
                                ]
                            },
                            {
                                "name": "Digest",
                                "modifier": "Default",
                                "type": {
                                    "plain": "DigestOf"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Digest of the current block, also part of the block header."
                                ]
                            },
                            {
                                "name": "Events",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<EventRecord>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Events deposited for the current block."
                                ]
                            },
                            {
                                "name": "EventCount",
                                "modifier": "Default",
                                "type": {
                                    "plain": "EventIndex"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " The number of events in the `Events<T>` list."
                                ]
                            },
                            {
                                "name": "EventTopics",
                                "modifier": "Default",
                                "type": {
                                    "doubleMap": {
                                        "hasher": "Blake2_256",
                                        "key1": "()",
                                        "key2": "Hash",
                                        "value": "Vec<(BlockNumber,EventIndex)>",
                                        "key2Hasher": "Blake2_256"
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Mapping between a topic (represented by T::Hash) and a vector of indexes",
                                    " of events in the `<Events<T>>` list.",
                                    "",
                                    " The first key serves no purpose. This field is declared as double_map just",
                                    " for convenience of using `remove_prefix`.",
                                    "",
                                    " All topic vectors have deterministic storage locations depending on the topic. This",
                                    " allows light-clients to leverage the changes trie storage tracking mechanism and",
                                    " in case of changes fetch the list of events of interest.",
                                    "",
                                    " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just",
                                    " the `EventIndex` then in case if the topic has the same contents on the next block",
                                    " no notification will be triggered thus the event might be lost."
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "fill_block",
                            "args": [],
                            "docs": [
                                " A big dispatch that will disallow any other transaction to be included."
                            ]
                        },
                        {
                            "name": "remark",
                            "args": [
                                {
                                    "name": "_remark",
                                    "type": "Bytes"
                                }
                            ],
                            "docs": [
                                " Make some on-chain remark."
                            ]
                        },
                        {
                            "name": "set_heap_pages",
                            "args": [
                                {
                                    "name": "pages",
                                    "type": "u64"
                                }
                            ],
                            "docs": [
                                " Set the number of pages in the WebAssembly environment's heap."
                            ]
                        },
                        {
                            "name": "set_code",
                            "args": [
                                {
                                    "name": "new",
                                    "type": "Bytes"
                                }
                            ],
                            "docs": [
                                " Set the new code."
                            ]
                        },
                        {
                            "name": "set_storage",
                            "args": [
                                {
                                    "name": "items",
                                    "type": "Vec<KeyValue>"
                                }
                            ],
                            "docs": [
                                " Set some items of storage."
                            ]
                        },
                        {
                            "name": "kill_storage",
                            "args": [
                                {
                                    "name": "keys",
                                    "type": "Vec<Key>"
                                }
                            ],
                            "docs": [
                                " Kill some items from storage."
                            ]
                        },
                        {
                            "name": "kill_prefix",
                            "args": [
                                {
                                    "name": "prefix",
                                    "type": "Key"
                                }
                            ],
                            "docs": [
                                " Kill all storage items with a key that starts with the given prefix."
                            ]
                        }
                    ],
                    "events": [
                        {
                            "name": "ExtrinsicSuccess",
                            "args": [
                                "DispatchInfo"
                            ],
                            "docs": [
                                " An extrinsic completed successfully."
                            ]
                        },
                        {
                            "name": "ExtrinsicFailed",
                            "args": [
                                "DispatchError",
                                "DispatchInfo"
                            ],
                            "docs": [
                                " An extrinsic failed."
                            ]
                        }
                    ],
                    "constants": [],
                    "errors": [
                        {
                            "name": "RequireSignedOrigin",
                            "docs": []
                        },
                        {
                            "name": "RequireRootOrigin",
                            "docs": []
                        },
                        {
                            "name": "RequireNoOrigin",
                            "docs": []
                        }
                    ]
                },
                {
                    "name": "RandomnessCollectiveFlip",
                    "storage": {
                        "prefix": "RandomnessCollectiveFlip",
                        "items": [
                            {
                                "name": "RandomMaterial",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<Hash>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Series of block headers from the last 81 blocks that acts as random seed material. This",
                                    " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of",
                                    " the oldest hash."
                                ]
                            }
                        ]
                    },
                    "calls": null,
                    "events": null,
                    "constants": [],
                    "errors": []
                },
                {
                    "name": "Babe",
                    "storage": {
                        "prefix": "Babe",
                        "items": [
                            {
                                "name": "EpochIndex",
                                "modifier": "Default",
                                "type": {
                                    "plain": "u64"
                                },
                                "fallback": "0x0000000000000000",
                                "docs": [
                                    " Current epoch index."
                                ]
                            },
                            {
                                "name": "Authorities",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Current epoch authorities."
                                ]
                            },
                            {
                                "name": "GenesisSlot",
                                "modifier": "Default",
                                "type": {
                                    "plain": "u64"
                                },
                                "fallback": "0x0000000000000000",
                                "docs": [
                                    " The slot at which the first epoch actually started. This is 0",
                                    " until the first block of the chain."
                                ]
                            },
                            {
                                "name": "CurrentSlot",
                                "modifier": "Default",
                                "type": {
                                    "plain": "u64"
                                },
                                "fallback": "0x0000000000000000",
                                "docs": [
                                    " Current slot number."
                                ]
                            },
                            {
                                "name": "Randomness",
                                "modifier": "Default",
                                "type": {
                                    "plain": "[u8;32]"
                                },
                                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
                                "docs": [
                                    " The epoch randomness for the *current* epoch.",
                                    "",
                                    " # Security",
                                    "",
                                    " This MUST NOT be used for gambling, as it can be influenced by a",
                                    " malicious validator in the short term. It MAY be used in many",
                                    " cryptographic protocols, however, so long as one remembers that this",
                                    " (like everything else on-chain) it is public. For example, it can be",
                                    " used where a number is needed that cannot have been chosen by an",
                                    " adversary, for purposes such as public-coin zero-knowledge proofs."
                                ]
                            },
                            {
                                "name": "NextRandomness",
                                "modifier": "Default",
                                "type": {
                                    "plain": "[u8;32]"
                                },
                                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
                                "docs": [
                                    " Next epoch randomness."
                                ]
                            },
                            {
                                "name": "SegmentIndex",
                                "modifier": "Default",
                                "type": {
                                    "plain": "u32"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " Randomness under construction.",
                                    "",
                                    " We make a tradeoff between storage accesses and list length.",
                                    " We store the under-construction randomness in segments of up to",
                                    " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.",
                                    "",
                                    " Once a segment reaches this length, we begin the next one.",
                                    " We reset all segments and return to `0` at the beginning of every",
                                    " epoch."
                                ]
                            },
                            {
                                "name": "UnderConstruction",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "u32",
                                        "value": "Vec<[u8;32]>",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": []
                            },
                            {
                                "name": "Initialized",
                                "modifier": "Optional",
                                "type": {
                                    "plain": "MaybeVrf"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Temporary value (cleared at block finalization) which is `Some`",
                                    " if per-block initialization has already been called for current block."
                                ]
                            }
                        ]
                    },
                    "calls": [],
                    "events": null,
                    "constants": [
                        {
                            "name": "EpochDuration",
                            "type": "u64",
                            "value": "0x5802000000000000",
                            "docs": [
                                " The number of **slots** that an epoch takes. We couple sessions to",
                                " epochs, i.e. we start a new session once the new epoch begins."
                            ]
                        },
                        {
                            "name": "ExpectedBlockTime",
                            "type": "Moment",
                            "value": "0x7017000000000000",
                            "docs": [
                                " The expected average block time at which BABE should be creating",
                                " blocks. Since BABE is probabilistic it is not trivial to figure out",
                                " what the expected average block time should be based on the slot",
                                " duration and the security parameter `c` (where `1 - c` represents",
                                " the probability of a slot being empty)."
                            ]
                        }
                    ],
                    "errors": []
                },
                {
                    "name": "Timestamp",
                    "storage": {
                        "prefix": "Timestamp",
                        "items": [
                            {
                                "name": "Now",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Moment"
                                },
                                "fallback": "0x0000000000000000",
                                "docs": [
                                    " Current time for the current block."
                                ]
                            },
                            {
                                "name": "DidUpdate",
                                "modifier": "Default",
                                "type": {
                                    "plain": "bool"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Did the timestamp get updated in this block?"
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "set",
                            "args": [
                                {
                                    "name": "now",
                                    "type": "Compact<Moment>"
                                }
                            ],
                            "docs": [
                                " Set the current time.",
                                "",
                                " This call should be invoked exactly once per block. It will panic at the finalization",
                                " phase, if this call hasn't been invoked by that time.",
                                "",
                                " The timestamp should be greater than the previous one by the amount specified by",
                                " `MinimumPeriod`.",
                                "",
                                " The dispatch origin for this call must be `Inherent`."
                            ]
                        }
                    ],
                    "events": null,
                    "constants": [
                        {
                            "name": "MinimumPeriod",
                            "type": "Moment",
                            "value": "0xb80b000000000000",
                            "docs": [
                                " The minimum period between blocks. Beware that this is different to the *expected* period",
                                " that the block production apparatus provides. Your chosen consensus system will generally",
                                " work with this to determine a sensible block time. e.g. For Aura, it will be double this",
                                " period on default settings."
                            ]
                        }
                    ],
                    "errors": []
                },
                {
                    "name": "Indices",
                    "storage": {
                        "prefix": "Indices",
                        "items": [
                            {
                                "name": "NextEnumSet",
                                "modifier": "Default",
                                "type": {
                                    "plain": "AccountIndex"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " The next free enumeration set."
                                ]
                            },
                            {
                                "name": "EnumSet",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "AccountIndex",
                                        "value": "Vec<AccountId>",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The enumeration sets."
                                ]
                            }
                        ]
                    },
                    "calls": [],
                    "events": [
                        {
                            "name": "NewAccountIndex",
                            "args": [
                                "AccountId",
                                "AccountIndex"
                            ],
                            "docs": [
                                " A new account index was assigned.",
                                "",
                                " This event is not triggered when an existing index is reassigned",
                                " to another `AccountId`."
                            ]
                        }
                    ],
                    "constants": [],
                    "errors": []
                },
                {
                    "name": "Balances",
                    "storage": {
                        "prefix": "Balances",
                        "items": [
                            {
                                "name": "TotalIssuance",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Balance"
                                },
                                "fallback": "0x00000000000000000000000000000000",
                                "docs": [
                                    " The total units issued in the system."
                                ]
                            },
                            {
                                "name": "Vesting",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "AccountId",
                                        "value": "VestingSchedule",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Information regarding the vesting of a given account."
                                ]
                            },
                            {
                                "name": "FreeBalance",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "AccountId",
                                        "value": "Balance",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00000000000000000000000000000000",
                                "docs": [
                                    " The 'free' balance of a given account.",
                                    "",
                                    " This is the only balance that matters in terms of most operations on tokens. It",
                                    " alone is used to determine the balance when in the contract execution environment. When this",
                                    " balance falls below the value of `ExistentialDeposit`, then the 'current account' is",
                                    " deleted: specifically `FreeBalance`. Further, the `OnFreeBalanceZero` callback",
                                    " is invoked, giving a chance to external modules to clean up data associated with",
                                    " the deleted account.",
                                    "",
                                    " `system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets",
                                    " collapsed to zero if it ever becomes less than `ExistentialDeposit`."
                                ]
                            },
                            {
                                "name": "ReservedBalance",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "AccountId",
                                        "value": "Balance",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00000000000000000000000000000000",
                                "docs": [
                                    " The amount of the balance of a given account that is externally reserved; this can still get",
                                    " slashed, but gets slashed last of all.",
                                    "",
                                    " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens",
                                    " that are still 'owned' by the account holder, but which are suspendable.",
                                    "",
                                    " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'",
                                    " is deleted: specifically, `ReservedBalance`.",
                                    "",
                                    " `system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets",
                                    " collapsed to zero if it ever becomes less than `ExistentialDeposit`.)"
                                ]
                            },
                            {
                                "name": "Locks",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "AccountId",
                                        "value": "Vec<BalanceLock>",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Any liquidity locks on some account balances."
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "transfer",
                            "args": [
                                {
                                    "name": "dest",
                                    "type": "LookupSource"
                                },
                                {
                                    "name": "value",
                                    "type": "Compact<Balance>"
                                }
                            ],
                            "docs": [
                                " Transfer some liquid free balance to another account.",
                                "",
                                " `transfer` will set the `FreeBalance` of the sender and receiver.",
                                " It will decrease the total issuance of the system by the `TransferFee`.",
                                " If the sender's account is below the existential deposit as a result",
                                " of the transfer, the account will be reaped.",
                                "",
                                " The dispatch origin for this call must be `Signed` by the transactor.",
                                "",
                                " # <weight>",
                                " - Dependent on arguments but not critical, given proper implementations for",
                                "   input config types. See related functions below.",
                                " - It contains a limited number of reads and writes internally and no complex computation.",
                                "",
                                " Related functions:",
                                "",
                                "   - `ensure_can_withdraw` is always called internally but has a bounded complexity.",
                                "   - Transferring balances to accounts that did not exist before will cause",
                                "      `T::OnNewAccount::on_new_account` to be called.",
                                "   - Removing enough funds from an account will trigger",
                                "     `T::DustRemoval::on_unbalanced` and `T::OnFreeBalanceZero::on_free_balance_zero`.",
                                "   - `transfer_keep_alive` works the same way as `transfer`, but has an additional",
                                "     check that the transfer will not kill the origin account.",
                                "",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "set_balance",
                            "args": [
                                {
                                    "name": "who",
                                    "type": "LookupSource"
                                },
                                {
                                    "name": "new_free",
                                    "type": "Compact<Balance>"
                                },
                                {
                                    "name": "new_reserved",
                                    "type": "Compact<Balance>"
                                }
                            ],
                            "docs": [
                                " Set the balances of a given account.",
                                "",
                                " This will alter `FreeBalance` and `ReservedBalance` in storage. it will",
                                " also decrease the total issuance of the system (`TotalIssuance`).",
                                " If the new free or reserved balance is below the existential deposit,",
                                " it will reset the account nonce (`system::AccountNonce`).",
                                "",
                                " The dispatch origin for this call is `root`.",
                                "",
                                " # <weight>",
                                " - Independent of the arguments.",
                                " - Contains a limited number of reads and writes.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "force_transfer",
                            "args": [
                                {
                                    "name": "source",
                                    "type": "LookupSource"
                                },
                                {
                                    "name": "dest",
                                    "type": "LookupSource"
                                },
                                {
                                    "name": "value",
                                    "type": "Compact<Balance>"
                                }
                            ],
                            "docs": [
                                " Exactly as `transfer`, except the origin must be root and the source account may be",
                                " specified."
                            ]
                        },
                        {
                            "name": "transfer_keep_alive",
                            "args": [
                                {
                                    "name": "dest",
                                    "type": "LookupSource"
                                },
                                {
                                    "name": "value",
                                    "type": "Compact<Balance>"
                                }
                            ],
                            "docs": [
                                " Same as the [`transfer`] call, but with a check that the transfer will not kill the",
                                " origin account.",
                                "",
                                " 99% of the time you want [`transfer`] instead.",
                                "",
                                " [`transfer`]: struct.Module.html#method.transfer"
                            ]
                        }
                    ],
                    "events": [
                        {
                            "name": "NewAccount",
                            "args": [
                                "AccountId",
                                "Balance"
                            ],
                            "docs": [
                                " A new account was created."
                            ]
                        },
                        {
                            "name": "ReapedAccount",
                            "args": [
                                "AccountId"
                            ],
                            "docs": [
                                " An account was reaped."
                            ]
                        },
                        {
                            "name": "Transfer",
                            "args": [
                                "AccountId",
                                "AccountId",
                                "Balance",
                                "Balance"
                            ],
                            "docs": [
                                " Transfer succeeded (from, to, value, fees)."
                            ]
                        }
                    ],
                    "constants": [
                        {
                            "name": "ExistentialDeposit",
                            "type": "Balance",
                            "value": "0x00e40b54020000000000000000000000",
                            "docs": [
                                " The minimum amount required to keep an account open."
                            ]
                        },
                        {
                            "name": "TransferFee",
                            "type": "Balance",
                            "value": "0x00e1f505000000000000000000000000",
                            "docs": [
                                " The fee required to make a transfer."
                            ]
                        },
                        {
                            "name": "CreationFee",
                            "type": "Balance",
                            "value": "0x00e1f505000000000000000000000000",
                            "docs": [
                                " The fee required to create an account."
                            ]
                        }
                    ],
                    "errors": []
                },
                {
                    "name": "TransactionPayment",
                    "storage": {
                        "prefix": "Balances",
                        "items": [
                            {
                                "name": "NextFeeMultiplier",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Multiplier"
                                },
                                "fallback": "0x0000000000000000",
                                "docs": []
                            }
                        ]
                    },
                    "calls": null,
                    "events": null,
                    "constants": [
                        {
                            "name": "TransactionBaseFee",
                            "type": "BalanceOf",
                            "value": "0x00e1f505000000000000000000000000",
                            "docs": [
                                " The fee to be paid for making a transaction; the base."
                            ]
                        },
                        {
                            "name": "TransactionByteFee",
                            "type": "BalanceOf",
                            "value": "0x40420f00000000000000000000000000",
                            "docs": [
                                " The fee to be paid for making a transaction; the per-byte portion."
                            ]
                        }
                    ],
                    "errors": []
                },
                {
                    "name": "Authorship",
                    "storage": {
                        "prefix": "Authorship",
                        "items": [
                            {
                                "name": "Uncles",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<UncleEntryItem>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Uncles"
                                ]
                            },
                            {
                                "name": "Author",
                                "modifier": "Optional",
                                "type": {
                                    "plain": "AccountId"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Author of current block."
                                ]
                            },
                            {
                                "name": "DidSetUncles",
                                "modifier": "Default",
                                "type": {
                                    "plain": "bool"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Whether uncles were already set in this block."
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "set_uncles",
                            "args": [
                                {
                                    "name": "new_uncles",
                                    "type": "Vec<Header>"
                                }
                            ],
                            "docs": [
                                " Provide a set of uncles."
                            ]
                        }
                    ],
                    "events": null,
                    "constants": [],
                    "errors": []
                },
                {
                    "name": "Staking",
                    "storage": {
                        "prefix": "Staking",
                        "items": [
                            {
                                "name": "ValidatorCount",
                                "modifier": "Default",
                                "type": {
                                    "plain": "u32"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " The ideal number of staking participants."
                                ]
                            },
                            {
                                "name": "MinimumValidatorCount",
                                "modifier": "Default",
                                "type": {
                                    "plain": "u32"
                                },
                                "fallback": "0x04000000",
                                "docs": [
                                    " Minimum number of staking participants before emergency conditions are imposed."
                                ]
                            },
                            {
                                "name": "Invulnerables",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<AccountId>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're",
                                    " easy to initialize and the performance hit is minimal (we expect no more than four",
                                    " invulnerables) and restricted to testnets."
                                ]
                            },
                            {
                                "name": "Bonded",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "AccountId",
                                        "value": "AccountId",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Map from all locked \"stash\" accounts to the controller account."
                                ]
                            },
                            {
                                "name": "Ledger",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "AccountId",
                                        "value": "StakingLedger",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Map from all (unlocked) \"controller\" accounts to the info regarding the staking."
                                ]
                            },
                            {
                                "name": "Payee",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "AccountId",
                                        "value": "RewardDestination",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Where the reward payment should be made. Keyed by stash."
                                ]
                            },
                            {
                                "name": "Validators",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "AccountId",
                                        "value": "ValidatorPrefs",
                                        "linked": true
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The map from (wannabe) validator stash key to the preferences of that validator."
                                ]
                            },
                            {
                                "name": "Nominators",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "AccountId",
                                        "value": "Nominations",
                                        "linked": true
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The map from nominator stash key to the set of stash keys of all validators to nominate.",
                                    "",
                                    " NOTE: is private so that we can ensure upgraded before all typical accesses.",
                                    " Direct storage APIs can still bypass this protection."
                                ]
                            },
                            {
                                "name": "Stakers",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "AccountId",
                                        "value": "Exposure",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x000000",
                                "docs": [
                                    " Nominators for a particular account that is in action right now. You can't iterate",
                                    " through validators here, but you can find them in the Session module.",
                                    "",
                                    " This is keyed by the stash account."
                                ]
                            },
                            {
                                "name": "CurrentElected",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<AccountId>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The currently elected validator set keyed by stash account ID."
                                ]
                            },
                            {
                                "name": "CurrentEra",
                                "modifier": "Default",
                                "type": {
                                    "plain": "EraIndex"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " The current era index."
                                ]
                            },
                            {
                                "name": "CurrentEraStart",
                                "modifier": "Default",
                                "type": {
                                    "plain": "MomentOf"
                                },
                                "fallback": "0x0000000000000000",
                                "docs": [
                                    " The start of the current era."
                                ]
                            },
                            {
                                "name": "CurrentEraStartSessionIndex",
                                "modifier": "Default",
                                "type": {
                                    "plain": "SessionIndex"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " The session index at which the current era started."
                                ]
                            },
                            {
                                "name": "CurrentEraPointsEarned",
                                "modifier": "Default",
                                "type": {
                                    "plain": "EraPoints"
                                },
                                "fallback": "0x0000000000",
                                "docs": [
                                    " Rewards for the current era. Using indices of current elected set."
                                ]
                            },
                            {
                                "name": "SlotStake",
                                "modifier": "Default",
                                "type": {
                                    "plain": "BalanceOf"
                                },
                                "fallback": "0x00000000000000000000000000000000",
                                "docs": [
                                    " The amount of balance actively at stake for each validator slot, currently.",
                                    "",
                                    " This is used to derive rewards and punishments."
                                ]
                            },
                            {
                                "name": "ForceEra",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Forcing"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " True if the next session change will be a new era regardless of index."
                                ]
                            },
                            {
                                "name": "SlashRewardFraction",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Perbill"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " The percentage of the slash that is distributed to reporters.",
                                    "",
                                    " The rest of the slashed value is handled by the `Slash`."
                                ]
                            },
                            {
                                "name": "CanceledSlashPayout",
                                "modifier": "Default",
                                "type": {
                                    "plain": "BalanceOf"
                                },
                                "fallback": "0x00000000000000000000000000000000",
                                "docs": [
                                    " The amount of currency given to reporters of a slash event which was",
                                    " canceled by extraordinary circumstances (e.g. governance)."
                                ]
                            },
                            {
                                "name": "UnappliedSlashes",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "EraIndex",
                                        "value": "Vec<UnappliedSlash>",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " All unapplied slashes that are queued for later."
                                ]
                            },
                            {
                                "name": "BondedEras",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<(EraIndex,SessionIndex)>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " A mapping from still-bonded eras to the first session index of that era."
                                ]
                            },
                            {
                                "name": "ValidatorSlashInEra",
                                "modifier": "Optional",
                                "type": {
                                    "doubleMap": {
                                        "hasher": "Blake2_256",
                                        "key1": "EraIndex",
                                        "key2": "AccountId",
                                        "value": "(Perbill,BalanceOf)",
                                        "key2Hasher": "Twox128"
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " All slashing events on validators, mapped by era to the highest slash proportion",
                                    " and slash value of the era."
                                ]
                            },
                            {
                                "name": "NominatorSlashInEra",
                                "modifier": "Optional",
                                "type": {
                                    "doubleMap": {
                                        "hasher": "Blake2_256",
                                        "key1": "EraIndex",
                                        "key2": "AccountId",
                                        "value": "BalanceOf",
                                        "key2Hasher": "Twox128"
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " All slashing events on nominators, mapped by era to the highest slash value of the era."
                                ]
                            },
                            {
                                "name": "SlashingSpans",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "AccountId",
                                        "value": "SlashingSpans",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Slashing spans for stash accounts."
                                ]
                            },
                            {
                                "name": "SpanSlash",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "(AccountId,SpanIndex)",
                                        "value": "SpanRecord",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
                                "docs": [
                                    " Records information about the maximum slash of a stash within a slashing span,",
                                    " as well as how much reward has been paid out."
                                ]
                            },
                            {
                                "name": "EarliestUnappliedSlash",
                                "modifier": "Optional",
                                "type": {
                                    "plain": "EraIndex"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The earliest era for which we have a pending, unapplied slash."
                                ]
                            },
                            {
                                "name": "StorageVersion",
                                "modifier": "Default",
                                "type": {
                                    "plain": "u32"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " The version of storage for upgrade."
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "bond",
                            "args": [
                                {
                                    "name": "controller",
                                    "type": "LookupSource"
                                },
                                {
                                    "name": "value",
                                    "type": "Compact<BalanceOf>"
                                },
                                {
                                    "name": "payee",
                                    "type": "RewardDestination"
                                }
                            ],
                            "docs": [
                                " Take the origin account as a stash and lock up `value` of its balance. `controller` will",
                                " be the account that controls it.",
                                "",
                                " `value` must be more than the `minimum_balance` specified by `T::Currency`.",
                                "",
                                " The dispatch origin for this call must be _Signed_ by the stash account.",
                                "",
                                " # <weight>",
                                " - Independent of the arguments. Moderate complexity.",
                                " - O(1).",
                                " - Three extra DB entries.",
                                "",
                                " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned unless",
                                " the `origin` falls below _existential deposit_ and gets removed as dust.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "bond_extra",
                            "args": [
                                {
                                    "name": "max_additional",
                                    "type": "Compact<BalanceOf>"
                                }
                            ],
                            "docs": [
                                " Add some extra amount that have appeared in the stash `free_balance` into the balance up",
                                " for staking.",
                                "",
                                " Use this if there are additional funds in your stash account that you wish to bond.",
                                " Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount",
                                " that can be added.",
                                "",
                                " The dispatch origin for this call must be _Signed_ by the stash, not the controller.",
                                "",
                                " # <weight>",
                                " - Independent of the arguments. Insignificant complexity.",
                                " - O(1).",
                                " - One DB entry.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "unbond",
                            "args": [
                                {
                                    "name": "value",
                                    "type": "Compact<BalanceOf>"
                                }
                            ],
                            "docs": [
                                " Schedule a portion of the stash to be unlocked ready for transfer out after the bond",
                                " period ends. If this leaves an amount actively bonded less than",
                                " T::Currency::minimum_balance(), then it is increased to the full amount.",
                                "",
                                " Once the unlock period is done, you can call `withdraw_unbonded` to actually move",
                                " the funds out of management ready for transfer.",
                                "",
                                " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)",
                                " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need",
                                " to be called first to remove some of the chunks (if possible).",
                                "",
                                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
                                "",
                                " See also [`Call::withdraw_unbonded`].",
                                "",
                                " # <weight>",
                                " - Independent of the arguments. Limited but potentially exploitable complexity.",
                                " - Contains a limited number of reads.",
                                " - Each call (requires the remainder of the bonded balance to be above `minimum_balance`)",
                                "   will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage.",
                                "   The only way to clean the aforementioned storage item is also user-controlled via `withdraw_unbonded`.",
                                " - One DB entry.",
                                " </weight>"
                            ]
                        },
                        {
                            "name": "withdraw_unbonded",
                            "args": [],
                            "docs": [
                                " Remove any unlocked chunks from the `unlocking` queue from our management.",
                                "",
                                " This essentially frees up that balance to be used by the stash account to do",
                                " whatever it wants.",
                                "",
                                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
                                "",
                                " See also [`Call::unbond`].",
                                "",
                                " # <weight>",
                                " - Could be dependent on the `origin` argument and how much `unlocking` chunks exist.",
                                "  It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is",
                                "  indirectly user-controlled. See [`unbond`] for more detail.",
                                " - Contains a limited number of reads, yet the size of which could be large based on `ledger`.",
                                " - Writes are limited to the `origin` account key.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "validate",
                            "args": [
                                {
                                    "name": "prefs",
                                    "type": "ValidatorPrefs"
                                }
                            ],
                            "docs": [
                                " Declare the desire to validate for the origin controller.",
                                "",
                                " Effects will be felt at the beginning of the next era.",
                                "",
                                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
                                "",
                                " # <weight>",
                                " - Independent of the arguments. Insignificant complexity.",
                                " - Contains a limited number of reads.",
                                " - Writes are limited to the `origin` account key.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "nominate",
                            "args": [
                                {
                                    "name": "targets",
                                    "type": "Vec<LookupSource>"
                                }
                            ],
                            "docs": [
                                " Declare the desire to nominate `targets` for the origin controller.",
                                "",
                                " Effects will be felt at the beginning of the next era.",
                                "",
                                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
                                "",
                                " # <weight>",
                                " - The transaction's complexity is proportional to the size of `targets`,",
                                " which is capped at `MAX_NOMINATIONS`.",
                                " - Both the reads and writes follow a similar pattern.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "chill",
                            "args": [],
                            "docs": [
                                " Declare no desire to either validate or nominate.",
                                "",
                                " Effects will be felt at the beginning of the next era.",
                                "",
                                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
                                "",
                                " # <weight>",
                                " - Independent of the arguments. Insignificant complexity.",
                                " - Contains one read.",
                                " - Writes are limited to the `origin` account key.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "set_payee",
                            "args": [
                                {
                                    "name": "payee",
                                    "type": "RewardDestination"
                                }
                            ],
                            "docs": [
                                " (Re-)set the payment target for a controller.",
                                "",
                                " Effects will be felt at the beginning of the next era.",
                                "",
                                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
                                "",
                                " # <weight>",
                                " - Independent of the arguments. Insignificant complexity.",
                                " - Contains a limited number of reads.",
                                " - Writes are limited to the `origin` account key.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "set_controller",
                            "args": [
                                {
                                    "name": "controller",
                                    "type": "LookupSource"
                                }
                            ],
                            "docs": [
                                " (Re-)set the controller of a stash.",
                                "",
                                " Effects will be felt at the beginning of the next era.",
                                "",
                                " The dispatch origin for this call must be _Signed_ by the stash, not the controller.",
                                "",
                                " # <weight>",
                                " - Independent of the arguments. Insignificant complexity.",
                                " - Contains a limited number of reads.",
                                " - Writes are limited to the `origin` account key.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "set_validator_count",
                            "args": [
                                {
                                    "name": "new",
                                    "type": "Compact<u32>"
                                }
                            ],
                            "docs": [
                                " The ideal number of validators."
                            ]
                        },
                        {
                            "name": "force_no_eras",
                            "args": [],
                            "docs": [
                                " Force there to be no new eras indefinitely.",
                                "",
                                " # <weight>",
                                " - No arguments.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "force_new_era",
                            "args": [],
                            "docs": [
                                " Force there to be a new era at the end of the next session. After this, it will be",
                                " reset to normal (non-forced) behaviour.",
                                "",
                                " # <weight>",
                                " - No arguments.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "set_invulnerables",
                            "args": [
                                {
                                    "name": "validators",
                                    "type": "Vec<AccountId>"
                                }
                            ],
                            "docs": [
                                " Set the validators who cannot be slashed (if any)."
                            ]
                        },
                        {
                            "name": "force_unstake",
                            "args": [
                                {
                                    "name": "stash",
                                    "type": "AccountId"
                                }
                            ],
                            "docs": [
                                " Force a current staker to become completely unstaked, immediately."
                            ]
                        },
                        {
                            "name": "force_new_era_always",
                            "args": [],
                            "docs": [
                                " Force there to be a new era at the end of sessions indefinitely.",
                                "",
                                " # <weight>",
                                " - One storage write",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "cancel_deferred_slash",
                            "args": [
                                {
                                    "name": "era",
                                    "type": "EraIndex"
                                },
                                {
                                    "name": "slash_indices",
                                    "type": "Vec<u32>"
                                }
                            ],
                            "docs": [
                                " Cancel enactment of a deferred slash. Can be called by either the root origin or",
                                " the `T::SlashCancelOrigin`.",
                                " passing the era and indices of the slashes for that era to kill.",
                                "",
                                " # <weight>",
                                " - One storage write.",
                                " # </weight>"
                            ]
                        }
                    ],
                    "events": [
                        {
                            "name": "Reward",
                            "args": [
                                "Balance",
                                "Balance"
                            ],
                            "docs": [
                                " All validators have been rewarded by the first balance; the second is the remainder",
                                " from the maximum amount of reward."
                            ]
                        },
                        {
                            "name": "Slash",
                            "args": [
                                "AccountId",
                                "Balance"
                            ],
                            "docs": [
                                " One validator (and its nominators) has been slashed by the given amount."
                            ]
                        },
                        {
                            "name": "OldSlashingReportDiscarded",
                            "args": [
                                "SessionIndex"
                            ],
                            "docs": [
                                " An old slashing report from a prior era was discarded because it could",
                                " not be processed."
                            ]
                        }
                    ],
                    "constants": [
                        {
                            "name": "SessionsPerEra",
                            "type": "SessionIndex",
                            "value": "0x06000000",
                            "docs": [
                                " Number of sessions per era."
                            ]
                        },
                        {
                            "name": "BondingDuration",
                            "type": "EraIndex",
                            "value": "0x00000000",
                            "docs": [
                                " Number of eras that staked funds must remain bonded for."
                            ]
                        }
                    ],
                    "errors": []
                },
                {
                    "name": "Offences",
                    "storage": {
                        "prefix": "Offences",
                        "items": [
                            {
                                "name": "Reports",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "ReportIdOf",
                                        "value": "OffenceDetails",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The primary structure that holds all offence records keyed by report identifiers."
                                ]
                            },
                            {
                                "name": "ConcurrentReportsIndex",
                                "modifier": "Default",
                                "type": {
                                    "doubleMap": {
                                        "hasher": "Blake2_256",
                                        "key1": "Kind",
                                        "key2": "OpaqueTimeSlot",
                                        "value": "Vec<ReportIdOf>",
                                        "key2Hasher": "Blake2_256"
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " A vector of reports of the same kind that happened at the same time slot."
                                ]
                            },
                            {
                                "name": "ReportsByKindIndex",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "Kind",
                                        "value": "Bytes",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Enumerates all reports of a kind along with the time they happened.",
                                    "",
                                    " All reports are sorted by the time of offence.",
                                    "",
                                    " Note that the actual type of this mapping is `Vec<u8>`, this is because values of",
                                    " different types are not supported at the moment so we are doing the manual serialization."
                                ]
                            }
                        ]
                    },
                    "calls": [],
                    "events": [
                        {
                            "name": "Offence",
                            "args": [
                                "Kind",
                                "OpaqueTimeSlot"
                            ],
                            "docs": [
                                " There is an offence reported of the given `kind` happened at the `session_index` and",
                                " (kind-specific) time slot. This event is not deposited for duplicate slashes."
                            ]
                        }
                    ],
                    "constants": [],
                    "errors": []
                },
                {
                    "name": "Session",
                    "storage": {
                        "prefix": "Session",
                        "items": [
                            {
                                "name": "Validators",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<ValidatorId>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The current set of validators."
                                ]
                            },
                            {
                                "name": "CurrentIndex",
                                "modifier": "Default",
                                "type": {
                                    "plain": "SessionIndex"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " Current index of the session."
                                ]
                            },
                            {
                                "name": "QueuedChanged",
                                "modifier": "Default",
                                "type": {
                                    "plain": "bool"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " True if the underlying economic identities or weighting behind the validators",
                                    " has changed in the queued validator set."
                                ]
                            },
                            {
                                "name": "QueuedKeys",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<(ValidatorId,Keys)>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The queued keys for the next session. When the next session begins, these keys",
                                    " will be used to determine the validator's session keys."
                                ]
                            },
                            {
                                "name": "DisabledValidators",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<u32>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Indices of disabled validators.",
                                    "",
                                    " The set is cleared when `on_session_ending` returns a new set of identities."
                                ]
                            },
                            {
                                "name": "NextKeys",
                                "modifier": "Optional",
                                "type": {
                                    "doubleMap": {
                                        "hasher": "Twox64Concat",
                                        "key1": "Bytes",
                                        "key2": "ValidatorId",
                                        "value": "Keys",
                                        "key2Hasher": "Blake2_256"
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The next session keys for a validator.",
                                    "",
                                    " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of",
                                    " the trie. Having all data in the same branch should prevent slowing down other queries."
                                ]
                            },
                            {
                                "name": "KeyOwner",
                                "modifier": "Optional",
                                "type": {
                                    "doubleMap": {
                                        "hasher": "Twox64Concat",
                                        "key1": "Bytes",
                                        "key2": "(KeyTypeId,Bytes)",
                                        "value": "ValidatorId",
                                        "key2Hasher": "Blake2_256"
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The owner of a key. The second key is the `KeyTypeId` + the encoded key.",
                                    "",
                                    " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of",
                                    " the trie. Having all data in the same branch should prevent slowing down other queries."
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "set_keys",
                            "args": [
                                {
                                    "name": "keys",
                                    "type": "Keys"
                                },
                                {
                                    "name": "proof",
                                    "type": "Bytes"
                                }
                            ],
                            "docs": [
                                " Sets the session key(s) of the function caller to `key`.",
                                " Allows an account to set its session key prior to becoming a validator.",
                                " This doesn't take effect until the next session.",
                                "",
                                " The dispatch origin of this function must be signed.",
                                "",
                                " # <weight>",
                                " - O(log n) in number of accounts.",
                                " - One extra DB entry.",
                                " # </weight>"
                            ]
                        }
                    ],
                    "events": [
                        {
                            "name": "NewSession",
                            "args": [
                                "SessionIndex"
                            ],
                            "docs": [
                                " New session has happened. Note that the argument is the session index, not the block",
                                " number as the type might suggest."
                            ]
                        }
                    ],
                    "constants": [
                        {
                            "name": "DEDUP_KEY_PREFIX",
                            "type": "Bytes",
                            "value": "0x343a73657373696f6e3a6b657973",
                            "docs": [
                                " Used as first key for `NextKeys` and `KeyOwner` to put all the data into the same branch",
                                " of the trie."
                            ]
                        }
                    ],
                    "errors": []
                },
                {
                    "name": "FinalityTracker",
                    "storage": null,
                    "calls": [
                        {
                            "name": "final_hint",
                            "args": [
                                {
                                    "name": "hint",
                                    "type": "Compact<BlockNumber>"
                                }
                            ],
                            "docs": [
                                " Hint that the author of this block thinks the best finalized",
                                " block is the given number."
                            ]
                        }
                    ],
                    "events": null,
                    "constants": [
                        {
                            "name": "WindowSize",
                            "type": "BlockNumber",
                            "value": "0x65000000",
                            "docs": [
                                " The number of recent samples to keep from this chain. Default is 101."
                            ]
                        },
                        {
                            "name": "ReportLatency",
                            "type": "BlockNumber",
                            "value": "0xe8030000",
                            "docs": [
                                " The delay after which point things become suspicious. Default is 1000."
                            ]
                        }
                    ],
                    "errors": []
                },
                {
                    "name": "Grandpa",
                    "storage": {
                        "prefix": "GrandpaFinality",
                        "items": [
                            {
                                "name": "Authorities",
                                "modifier": "Default",
                                "type": {
                                    "plain": "AuthorityList"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " DEPRECATED",
                                    "",
                                    " This used to store the current authority set, which has been migrated to the well-known",
                                    " GRANDPA_AUTHORITES_KEY unhashed key."
                                ]
                            },
                            {
                                "name": "State",
                                "modifier": "Default",
                                "type": {
                                    "plain": "StoredState"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " State of the current authority set."
                                ]
                            },
                            {
                                "name": "PendingChange",
                                "modifier": "Optional",
                                "type": {
                                    "plain": "StoredPendingChange"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Pending change: (signaled at, scheduled change)."
                                ]
                            },
                            {
                                "name": "NextForced",
                                "modifier": "Optional",
                                "type": {
                                    "plain": "BlockNumber"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " next block number where we can force a change."
                                ]
                            },
                            {
                                "name": "Stalled",
                                "modifier": "Optional",
                                "type": {
                                    "plain": "(BlockNumber,BlockNumber)"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " `true` if we are currently stalled."
                                ]
                            },
                            {
                                "name": "CurrentSetId",
                                "modifier": "Default",
                                "type": {
                                    "plain": "SetId"
                                },
                                "fallback": "0x0000000000000000",
                                "docs": [
                                    " The number of changes (both in terms of keys and underlying economic responsibilities)",
                                    " in the \"set\" of Grandpa validators from genesis."
                                ]
                            },
                            {
                                "name": "SetIdSession",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "SetId",
                                        "value": "SessionIndex",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " A mapping from grandpa set ID to the index of the *most recent* session for which its members were responsible."
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "report_misbehavior",
                            "args": [
                                {
                                    "name": "_report",
                                    "type": "Bytes"
                                }
                            ],
                            "docs": [
                                " Report some misbehavior."
                            ]
                        }
                    ],
                    "events": [
                        {
                            "name": "NewAuthorities",
                            "args": [
                                "AuthorityList"
                            ],
                            "docs": [
                                " New authority set has been applied."
                            ]
                        },
                        {
                            "name": "Paused",
                            "args": [],
                            "docs": [
                                " Current authority set has been paused."
                            ]
                        },
                        {
                            "name": "Resumed",
                            "args": [],
                            "docs": [
                                " Current authority set has been resumed."
                            ]
                        }
                    ],
                    "constants": [],
                    "errors": []
                },
                {
                    "name": "ImOnline",
                    "storage": {
                        "prefix": "ImOnline",
                        "items": [
                            {
                                "name": "GossipAt",
                                "modifier": "Default",
                                "type": {
                                    "plain": "BlockNumber"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " The block number when we should gossip."
                                ]
                            },
                            {
                                "name": "Keys",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<AuthorityId>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The current set of keys that may issue a heartbeat."
                                ]
                            },
                            {
                                "name": "ReceivedHeartbeats",
                                "modifier": "Optional",
                                "type": {
                                    "doubleMap": {
                                        "hasher": "Blake2_256",
                                        "key1": "SessionIndex",
                                        "key2": "AuthIndex",
                                        "value": "Bytes",
                                        "key2Hasher": "Blake2_256"
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " For each session index, we keep a mapping of `AuthIndex`",
                                    " to `offchain::OpaqueNetworkState`."
                                ]
                            },
                            {
                                "name": "AuthoredBlocks",
                                "modifier": "Default",
                                "type": {
                                    "doubleMap": {
                                        "hasher": "Blake2_256",
                                        "key1": "SessionIndex",
                                        "key2": "ValidatorId",
                                        "value": "u32",
                                        "key2Hasher": "Blake2_256"
                                    }
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " For each session index, we keep a mapping of `T::ValidatorId` to the",
                                    " number of blocks authored by the given authority."
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "heartbeat",
                            "args": [
                                {
                                    "name": "heartbeat",
                                    "type": "Heartbeat"
                                },
                                {
                                    "name": "_signature",
                                    "type": "Signature"
                                }
                            ],
                            "docs": []
                        }
                    ],
                    "events": [
                        {
                            "name": "HeartbeatReceived",
                            "args": [
                                "AuthorityId"
                            ],
                            "docs": [
                                " A new heartbeat was received from `AuthorityId`"
                            ]
                        },
                        {
                            "name": "AllGood",
                            "args": [],
                            "docs": [
                                " At the end of the session, no offence was committed."
                            ]
                        },
                        {
                            "name": "SomeOffline",
                            "args": [
                                "Vec<IdentificationTuple>"
                            ],
                            "docs": [
                                " At the end of the session, at least once validator was found to be offline."
                            ]
                        }
                    ],
                    "constants": [],
                    "errors": []
                },
                {
                    "name": "AuthorityDiscovery",
                    "storage": null,
                    "calls": [],
                    "events": null,
                    "constants": [],
                    "errors": []
                },
                {
                    "name": "Democracy",
                    "storage": {
                        "prefix": "Democracy",
                        "items": [
                            {
                                "name": "PublicPropCount",
                                "modifier": "Default",
                                "type": {
                                    "plain": "PropIndex"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " The number of (public) proposals that have been made so far."
                                ]
                            },
                            {
                                "name": "PublicProps",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<(PropIndex,Proposal,AccountId)>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The public proposals. Unsorted."
                                ]
                            },
                            {
                                "name": "DepositOf",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "PropIndex",
                                        "value": "(BalanceOf,Vec<AccountId>)",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Those who have locked a deposit."
                                ]
                            },
                            {
                                "name": "ReferendumCount",
                                "modifier": "Default",
                                "type": {
                                    "plain": "ReferendumIndex"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " The next free referendum index, aka the number of referenda started so far."
                                ]
                            },
                            {
                                "name": "NextTally",
                                "modifier": "Default",
                                "type": {
                                    "plain": "ReferendumIndex"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " The next referendum index that should be tallied."
                                ]
                            },
                            {
                                "name": "ReferendumInfoOf",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "ReferendumIndex",
                                        "value": "ReferendumInfo",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Information concerning any given referendum."
                                ]
                            },
                            {
                                "name": "DispatchQueue",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "BlockNumber",
                                        "value": "Vec<Option<(Proposal,ReferendumIndex)>>",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Queue of successful referenda to be dispatched."
                                ]
                            },
                            {
                                "name": "VotersFor",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "ReferendumIndex",
                                        "value": "Vec<AccountId>",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Get the voters for the current proposal."
                                ]
                            },
                            {
                                "name": "VoteOf",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "(ReferendumIndex,AccountId)",
                                        "value": "Vote",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Get the vote in a given referendum of a particular voter. The result is meaningful only",
                                    " if `voters_for` includes the voter when called with the referendum (you'll get the",
                                    " default `Vote` value otherwise). If you don't want to check `voters_for`, then you can",
                                    " also check for simple existence with `VoteOf::exists` first."
                                ]
                            },
                            {
                                "name": "Proxy",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "AccountId",
                                        "value": "AccountId",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Who is able to vote for whom. Value is the fund-holding account, key is the",
                                    " vote-transaction-sending account."
                                ]
                            },
                            {
                                "name": "Delegations",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "AccountId",
                                        "value": "(AccountId,Conviction)",
                                        "linked": true
                                    }
                                },
                                "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000",
                                "docs": [
                                    " Get the account (and lock periods) to which another account is delegating vote."
                                ]
                            },
                            {
                                "name": "LastTabledWasExternal",
                                "modifier": "Default",
                                "type": {
                                    "plain": "bool"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " True if the last referendum tabled was submitted externally. False if it was a public",
                                    " proposal."
                                ]
                            },
                            {
                                "name": "NextExternal",
                                "modifier": "Optional",
                                "type": {
                                    "plain": "(Proposal,VoteThreshold)"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The referendum to be tabled whenever it would be valid to table an external proposal.",
                                    " This happens when a referendum needs to be tabled and one of two conditions are met:",
                                    " - `LastTabledWasExternal` is `false`; or",
                                    " - `PublicProps` is empty."
                                ]
                            },
                            {
                                "name": "Blacklist",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "Hash",
                                        "value": "(BlockNumber,Vec<AccountId>)",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " A record of who vetoed what. Maps proposal hash to a possible existent block number",
                                    " (until when it may not be resubmitted) and who vetoed it."
                                ]
                            },
                            {
                                "name": "Cancellations",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "Hash",
                                        "value": "bool",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Record of all proposals that have been subject to emergency cancellation."
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "propose",
                            "args": [
                                {
                                    "name": "proposal",
                                    "type": "Proposal"
                                },
                                {
                                    "name": "value",
                                    "type": "Compact<BalanceOf>"
                                }
                            ],
                            "docs": [
                                " Propose a sensitive action to be taken.",
                                "",
                                " # <weight>",
                                " - O(1).",
                                " - Two DB changes, one DB entry.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "second",
                            "args": [
                                {
                                    "name": "proposal",
                                    "type": "Compact<PropIndex>"
                                }
                            ],
                            "docs": [
                                " Propose a sensitive action to be taken.",
                                "",
                                " # <weight>",
                                " - O(1).",
                                " - One DB entry.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "vote",
                            "args": [
                                {
                                    "name": "ref_index",
                                    "type": "Compact<ReferendumIndex>"
                                },
                                {
                                    "name": "vote",
                                    "type": "Vote"
                                }
                            ],
                            "docs": [
                                " Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;",
                                " otherwise it is a vote to keep the status quo.",
                                "",
                                " # <weight>",
                                " - O(1).",
                                " - One DB change, one DB entry.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "proxy_vote",
                            "args": [
                                {
                                    "name": "ref_index",
                                    "type": "Compact<ReferendumIndex>"
                                },
                                {
                                    "name": "vote",
                                    "type": "Vote"
                                }
                            ],
                            "docs": [
                                " Vote in a referendum on behalf of a stash. If `vote.is_aye()`, the vote is to enact",
                                " the proposal;  otherwise it is a vote to keep the status quo.",
                                "",
                                " # <weight>",
                                " - O(1).",
                                " - One DB change, one DB entry.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "emergency_cancel",
                            "args": [
                                {
                                    "name": "ref_index",
                                    "type": "ReferendumIndex"
                                }
                            ],
                            "docs": [
                                " Schedule an emergency cancellation of a referendum. Cannot happen twice to the same",
                                " referendum."
                            ]
                        },
                        {
                            "name": "external_propose",
                            "args": [
                                {
                                    "name": "proposal",
                                    "type": "Proposal"
                                }
                            ],
                            "docs": [
                                " Schedule a referendum to be tabled once it is legal to schedule an external",
                                " referendum."
                            ]
                        },
                        {
                            "name": "external_propose_majority",
                            "args": [
                                {
                                    "name": "proposal",
                                    "type": "Proposal"
                                }
                            ],
                            "docs": [
                                " Schedule a majority-carries referendum to be tabled next once it is legal to schedule",
                                " an external referendum.",
                                "",
                                " Unlike `external_propose`, blacklisting has no effect on this and it may replace a",
                                " pre-scheduled `external_propose` call."
                            ]
                        },
                        {
                            "name": "external_propose_default",
                            "args": [
                                {
                                    "name": "proposal",
                                    "type": "Proposal"
                                }
                            ],
                            "docs": [
                                " Schedule a negative-turnout-bias referendum to be tabled next once it is legal to",
                                " schedule an external referendum.",
                                "",
                                " Unlike `external_propose`, blacklisting has no effect on this and it may replace a",
                                " pre-scheduled `external_propose` call."
                            ]
                        },
                        {
                            "name": "fast_track",
                            "args": [
                                {
                                    "name": "proposal_hash",
                                    "type": "Hash"
                                },
                                {
                                    "name": "voting_period",
                                    "type": "BlockNumber"
                                },
                                {
                                    "name": "delay",
                                    "type": "BlockNumber"
                                }
                            ],
                            "docs": [
                                " Schedule the currently externally-proposed majority-carries referendum to be tabled",
                                " immediately. If there is no externally-proposed referendum currently, or if there is one",
                                " but it is not a majority-carries referendum then it fails.",
                                "",
                                " - `proposal_hash`: The hash of the current external proposal.",
                                " - `voting_period`: The period that is allowed for voting on this proposal. Increased to",
                                "   `EmergencyVotingPeriod` if too low.",
                                " - `delay`: The number of block after voting has ended in approval and this should be",
                                "   enacted. This doesn't have a minimum amount."
                            ]
                        },
                        {
                            "name": "veto_external",
                            "args": [
                                {
                                    "name": "proposal_hash",
                                    "type": "Hash"
                                }
                            ],
                            "docs": [
                                " Veto and blacklist the external proposal hash."
                            ]
                        },
                        {
                            "name": "cancel_referendum",
                            "args": [
                                {
                                    "name": "ref_index",
                                    "type": "Compact<ReferendumIndex>"
                                }
                            ],
                            "docs": [
                                " Remove a referendum."
                            ]
                        },
                        {
                            "name": "cancel_queued",
                            "args": [
                                {
                                    "name": "when",
                                    "type": "Compact<BlockNumber>"
                                },
                                {
                                    "name": "which",
                                    "type": "Compact<u32>"
                                },
                                {
                                    "name": "what",
                                    "type": "Compact<ReferendumIndex>"
                                }
                            ],
                            "docs": [
                                " Cancel a proposal queued for enactment."
                            ]
                        },
                        {
                            "name": "set_proxy",
                            "args": [
                                {
                                    "name": "proxy",
                                    "type": "AccountId"
                                }
                            ],
                            "docs": [
                                " Specify a proxy. Called by the stash.",
                                "",
                                " # <weight>",
                                " - One extra DB entry.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "resign_proxy",
                            "args": [],
                            "docs": [
                                " Clear the proxy. Called by the proxy.",
                                "",
                                " # <weight>",
                                " - One DB clear.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "remove_proxy",
                            "args": [
                                {
                                    "name": "proxy",
                                    "type": "AccountId"
                                }
                            ],
                            "docs": [
                                " Clear the proxy. Called by the stash.",
                                "",
                                " # <weight>",
                                " - One DB clear.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "delegate",
                            "args": [
                                {
                                    "name": "to",
                                    "type": "AccountId"
                                },
                                {
                                    "name": "conviction",
                                    "type": "Conviction"
                                }
                            ],
                            "docs": [
                                " Delegate vote.",
                                "",
                                " # <weight>",
                                " - One extra DB entry.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "undelegate",
                            "args": [],
                            "docs": [
                                " Undelegate vote.",
                                "",
                                " # <weight>",
                                " - O(1).",
                                " # </weight>"
                            ]
                        }
                    ],
                    "events": [
                        {
                            "name": "Proposed",
                            "args": [
                                "PropIndex",
                                "Balance"
                            ],
                            "docs": []
                        },
                        {
                            "name": "Tabled",
                            "args": [
                                "PropIndex",
                                "Balance",
                                "Vec<AccountId>"
                            ],
                            "docs": []
                        },
                        {
                            "name": "ExternalTabled",
                            "args": [],
                            "docs": []
                        },
                        {
                            "name": "Started",
                            "args": [
                                "ReferendumIndex",
                                "VoteThreshold"
                            ],
                            "docs": []
                        },
                        {
                            "name": "Passed",
                            "args": [
                                "ReferendumIndex"
                            ],
                            "docs": []
                        },
                        {
                            "name": "NotPassed",
                            "args": [
                                "ReferendumIndex"
                            ],
                            "docs": []
                        },
                        {
                            "name": "Cancelled",
                            "args": [
                                "ReferendumIndex"
                            ],
                            "docs": []
                        },
                        {
                            "name": "Executed",
                            "args": [
                                "ReferendumIndex",
                                "bool"
                            ],
                            "docs": []
                        },
                        {
                            "name": "Delegated",
                            "args": [
                                "AccountId",
                                "AccountId"
                            ],
                            "docs": []
                        },
                        {
                            "name": "Undelegated",
                            "args": [
                                "AccountId"
                            ],
                            "docs": []
                        },
                        {
                            "name": "Vetoed",
                            "args": [
                                "AccountId",
                                "Hash",
                                "BlockNumber"
                            ],
                            "docs": []
                        }
                    ],
                    "constants": [
                        {
                            "name": "EnactmentPeriod",
                            "type": "BlockNumber",
                            "value": "0x00c20100",
                            "docs": [
                                " The minimum period of locking and the period between a proposal being approved and enacted.",
                                "",
                                " It should generally be a little more than the unstake period to ensure that",
                                " voting stakers have an opportunity to remove themselves from the system in the case where",
                                " they are on the losing side of a vote."
                            ]
                        },
                        {
                            "name": "LaunchPeriod",
                            "type": "BlockNumber",
                            "value": "0xc0890100",
                            "docs": [
                                " How often (in blocks) new public referenda are launched."
                            ]
                        },
                        {
                            "name": "VotingPeriod",
                            "type": "BlockNumber",
                            "value": "0xc0890100",
                            "docs": [
                                " How often (in blocks) to check for new votes."
                            ]
                        },
                        {
                            "name": "MinimumDeposit",
                            "type": "BalanceOf",
                            "value": "0x0010a5d4e80000000000000000000000",
                            "docs": [
                                " The minimum amount to be used as a deposit for a public referendum proposal."
                            ]
                        },
                        {
                            "name": "EmergencyVotingPeriod",
                            "type": "BlockNumber",
                            "value": "0x58020000",
                            "docs": [
                                " Minimum voting period allowed for an emergency referendum."
                            ]
                        },
                        {
                            "name": "CooloffPeriod",
                            "type": "BlockNumber",
                            "value": "0xc0890100",
                            "docs": [
                                " Period in blocks where an external proposal may not be re-submitted after being vetoed."
                            ]
                        }
                    ],
                    "errors": []
                },
                {
                    "name": "Council",
                    "storage": {
                        "prefix": "Instance1Collective",
                        "items": [
                            {
                                "name": "Proposals",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<Hash>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The hashes of the active proposals."
                                ]
                            },
                            {
                                "name": "ProposalOf",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "Hash",
                                        "value": "Proposal",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Actual proposal for a given hash, if it's current."
                                ]
                            },
                            {
                                "name": "Voting",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "Hash",
                                        "value": "Votes",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Votes on a given proposal, if it is ongoing."
                                ]
                            },
                            {
                                "name": "ProposalCount",
                                "modifier": "Default",
                                "type": {
                                    "plain": "u32"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " Proposals so far."
                                ]
                            },
                            {
                                "name": "Members",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<AccountId>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The current members of the collective. This is stored sorted (just by value)."
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "set_members",
                            "args": [
                                {
                                    "name": "new_members",
                                    "type": "Vec<AccountId>"
                                }
                            ],
                            "docs": [
                                " Set the collective's membership manually to `new_members`. Be nice to the chain and",
                                " provide it pre-sorted.",
                                "",
                                " Requires root origin."
                            ]
                        },
                        {
                            "name": "execute",
                            "args": [
                                {
                                    "name": "proposal",
                                    "type": "Proposal"
                                }
                            ],
                            "docs": [
                                " Dispatch a proposal from a member using the `Member` origin.",
                                "",
                                " Origin must be a member of the collective."
                            ]
                        },
                        {
                            "name": "propose",
                            "args": [
                                {
                                    "name": "threshold",
                                    "type": "Compact<MemberCount>"
                                },
                                {
                                    "name": "proposal",
                                    "type": "Proposal"
                                }
                            ],
                            "docs": [
                                " # <weight>",
                                " - Bounded storage reads and writes.",
                                " - Argument `threshold` has bearing on weight.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "vote",
                            "args": [
                                {
                                    "name": "proposal",
                                    "type": "Hash"
                                },
                                {
                                    "name": "index",
                                    "type": "Compact<ProposalIndex>"
                                },
                                {
                                    "name": "approve",
                                    "type": "bool"
                                }
                            ],
                            "docs": [
                                " # <weight>",
                                " - Bounded storage read and writes.",
                                " - Will be slightly heavier if the proposal is approved / disapproved after the vote.",
                                " # </weight>"
                            ]
                        }
                    ],
                    "events": [
                        {
                            "name": "Proposed",
                            "args": [
                                "AccountId",
                                "ProposalIndex",
                                "Hash",
                                "MemberCount"
                            ],
                            "docs": [
                                " A motion (given hash) has been proposed (by given account) with a threshold (given",
                                " `MemberCount`)."
                            ]
                        },
                        {
                            "name": "Voted",
                            "args": [
                                "AccountId",
                                "Hash",
                                "bool",
                                "MemberCount",
                                "MemberCount"
                            ],
                            "docs": [
                                " A motion (given hash) has been voted on by given account, leaving",
                                " a tally (yes votes and no votes given respectively as `MemberCount`)."
                            ]
                        },
                        {
                            "name": "Approved",
                            "args": [
                                "Hash"
                            ],
                            "docs": [
                                " A motion was approved by the required threshold."
                            ]
                        },
                        {
                            "name": "Disapproved",
                            "args": [
                                "Hash"
                            ],
                            "docs": [
                                " A motion was not approved by the required threshold."
                            ]
                        },
                        {
                            "name": "Executed",
                            "args": [
                                "Hash",
                                "bool"
                            ],
                            "docs": [
                                " A motion was executed; `bool` is true if returned without error."
                            ]
                        },
                        {
                            "name": "MemberExecuted",
                            "args": [
                                "Hash",
                                "bool"
                            ],
                            "docs": [
                                " A single member did some action; `bool` is true if returned without error."
                            ]
                        }
                    ],
                    "constants": [],
                    "errors": []
                },
                {
                    "name": "TechnicalCommittee",
                    "storage": {
                        "prefix": "Instance2Collective",
                        "items": [
                            {
                                "name": "Proposals",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<Hash>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The hashes of the active proposals."
                                ]
                            },
                            {
                                "name": "ProposalOf",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "Hash",
                                        "value": "Proposal",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Actual proposal for a given hash, if it's current."
                                ]
                            },
                            {
                                "name": "Voting",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "Hash",
                                        "value": "Votes",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Votes on a given proposal, if it is ongoing."
                                ]
                            },
                            {
                                "name": "ProposalCount",
                                "modifier": "Default",
                                "type": {
                                    "plain": "u32"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " Proposals so far."
                                ]
                            },
                            {
                                "name": "Members",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<AccountId>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The current members of the collective. This is stored sorted (just by value)."
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "set_members",
                            "args": [
                                {
                                    "name": "new_members",
                                    "type": "Vec<AccountId>"
                                }
                            ],
                            "docs": [
                                " Set the collective's membership manually to `new_members`. Be nice to the chain and",
                                " provide it pre-sorted.",
                                "",
                                " Requires root origin."
                            ]
                        },
                        {
                            "name": "execute",
                            "args": [
                                {
                                    "name": "proposal",
                                    "type": "Proposal"
                                }
                            ],
                            "docs": [
                                " Dispatch a proposal from a member using the `Member` origin.",
                                "",
                                " Origin must be a member of the collective."
                            ]
                        },
                        {
                            "name": "propose",
                            "args": [
                                {
                                    "name": "threshold",
                                    "type": "Compact<MemberCount>"
                                },
                                {
                                    "name": "proposal",
                                    "type": "Proposal"
                                }
                            ],
                            "docs": [
                                " # <weight>",
                                " - Bounded storage reads and writes.",
                                " - Argument `threshold` has bearing on weight.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "vote",
                            "args": [
                                {
                                    "name": "proposal",
                                    "type": "Hash"
                                },
                                {
                                    "name": "index",
                                    "type": "Compact<ProposalIndex>"
                                },
                                {
                                    "name": "approve",
                                    "type": "bool"
                                }
                            ],
                            "docs": [
                                " # <weight>",
                                " - Bounded storage read and writes.",
                                " - Will be slightly heavier if the proposal is approved / disapproved after the vote.",
                                " # </weight>"
                            ]
                        }
                    ],
                    "events": [
                        {
                            "name": "Proposed",
                            "args": [
                                "AccountId",
                                "ProposalIndex",
                                "Hash",
                                "MemberCount"
                            ],
                            "docs": [
                                " A motion (given hash) has been proposed (by given account) with a threshold (given",
                                " `MemberCount`)."
                            ]
                        },
                        {
                            "name": "Voted",
                            "args": [
                                "AccountId",
                                "Hash",
                                "bool",
                                "MemberCount",
                                "MemberCount"
                            ],
                            "docs": [
                                " A motion (given hash) has been voted on by given account, leaving",
                                " a tally (yes votes and no votes given respectively as `MemberCount`)."
                            ]
                        },
                        {
                            "name": "Approved",
                            "args": [
                                "Hash"
                            ],
                            "docs": [
                                " A motion was approved by the required threshold."
                            ]
                        },
                        {
                            "name": "Disapproved",
                            "args": [
                                "Hash"
                            ],
                            "docs": [
                                " A motion was not approved by the required threshold."
                            ]
                        },
                        {
                            "name": "Executed",
                            "args": [
                                "Hash",
                                "bool"
                            ],
                            "docs": [
                                " A motion was executed; `bool` is true if returned without error."
                            ]
                        },
                        {
                            "name": "MemberExecuted",
                            "args": [
                                "Hash",
                                "bool"
                            ],
                            "docs": [
                                " A single member did some action; `bool` is true if returned without error."
                            ]
                        }
                    ],
                    "constants": [],
                    "errors": []
                },
                {
                    "name": "ElectionsPhragmen",
                    "storage": {
                        "prefix": "PhragmenElection",
                        "items": [
                            {
                                "name": "Members",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<(AccountId,BalanceOf)>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The current elected membership. Sorted based on account id."
                                ]
                            },
                            {
                                "name": "RunnersUp",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<(AccountId,BalanceOf)>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The current runners_up. Sorted based on low to high merit (worse to best runner)."
                                ]
                            },
                            {
                                "name": "ElectionRounds",
                                "modifier": "Default",
                                "type": {
                                    "plain": "u32"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " The total number of vote rounds that have happened, excluding the upcoming one."
                                ]
                            },
                            {
                                "name": "VotesOf",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "AccountId",
                                        "value": "Vec<AccountId>",
                                        "linked": true
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Votes of a particular voter, with the round index of the votes."
                                ]
                            },
                            {
                                "name": "StakeOf",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "AccountId",
                                        "value": "BalanceOf",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00000000000000000000000000000000",
                                "docs": [
                                    " Locked stake of a voter."
                                ]
                            },
                            {
                                "name": "Candidates",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<AccountId>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The present candidate list. Sorted based on account id. A current member can never enter",
                                    " this vector and is always implicitly assumed to be a candidate."
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "vote",
                            "args": [
                                {
                                    "name": "votes",
                                    "type": "Vec<AccountId>"
                                },
                                {
                                    "name": "value",
                                    "type": "Compact<BalanceOf>"
                                }
                            ],
                            "docs": [
                                " Vote for a set of candidates for the upcoming round of election.",
                                "",
                                " The `votes` should:",
                                "   - not be empty.",
                                "   - be less than the number of candidates.",
                                "",
                                " Upon voting, `value` units of `who`'s balance is locked and a bond amount is reserved.",
                                " It is the responsibility of the caller to not place all of their balance into the lock",
                                " and keep some for further transactions.",
                                "",
                                " # <weight>",
                                " #### State",
                                " Reads: O(1)",
                                " Writes: O(V) given `V` votes. V is bounded by 16.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "remove_voter",
                            "args": [],
                            "docs": [
                                " Remove `origin` as a voter. This removes the lock and returns the bond.",
                                "",
                                " # <weight>",
                                " #### State",
                                " Reads: O(1)",
                                " Writes: O(1)",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "report_defunct_voter",
                            "args": [
                                {
                                    "name": "target",
                                    "type": "LookupSource"
                                }
                            ],
                            "docs": [
                                " Report `target` for being an defunct voter. In case of a valid report, the reporter is",
                                " rewarded by the bond amount of `target`. Otherwise, the reporter itself is removed and",
                                " their bond is slashed.",
                                "",
                                " A defunct voter is defined to be:",
                                "   - a voter whose current submitted votes are all invalid. i.e. all of them are no",
                                "     longer a candidate nor an active member.",
                                "",
                                " # <weight>",
                                " #### State",
                                " Reads: O(NLogM) given M current candidates and N votes for `target`.",
                                " Writes: O(1)",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "submit_candidacy",
                            "args": [],
                            "docs": [
                                " Submit oneself for candidacy.",
                                "",
                                " A candidate will either:",
                                "   - Lose at the end of the term and forfeit their deposit.",
                                "   - Win and become a member. Members will eventually get their stash back.",
                                "   - Become a runner-up. Runners-ups are reserved members in case one gets forcefully",
                                "     removed.",
                                "",
                                " # <weight>",
                                " #### State",
                                " Reads: O(LogN) Given N candidates.",
                                " Writes: O(1)",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "renounce_candidacy",
                            "args": [],
                            "docs": [
                                " Renounce one's intention to be a candidate for the next election round. 3 potential",
                                " outcomes exist:",
                                " - `origin` is a candidate and not elected in any set. In this case, the bond is",
                                "   unreserved, returned and origin is removed as a candidate.",
                                " - `origin` is a current runner up. In this case, the bond is unreserved, returned and",
                                "   origin is removed as a runner.",
                                " - `origin` is a current member. In this case, the bond is unreserved and origin is",
                                "   removed as a member, consequently not being a candidate for the next round anymore.",
                                "   Similar to [`remove_voter`], if replacement runners exists, they are immediately used."
                            ]
                        },
                        {
                            "name": "remove_member",
                            "args": [
                                {
                                    "name": "who",
                                    "type": "LookupSource"
                                }
                            ],
                            "docs": [
                                " Remove a particular member from the set. This is effective immediately and the bond of",
                                " the outgoing member is slashed.",
                                "",
                                " If a runner-up is available, then the best runner-up will be removed and replaces the",
                                " outgoing member. Otherwise, a new phragmen round is started.",
                                "",
                                " Note that this does not affect the designated block number of the next election.",
                                "",
                                " # <weight>",
                                " #### State",
                                " Reads: O(do_phragmen)",
                                " Writes: O(do_phragmen)",
                                " # </weight>"
                            ]
                        }
                    ],
                    "events": [
                        {
                            "name": "NewTerm",
                            "args": [
                                "Vec<(AccountId,Balance)>"
                            ],
                            "docs": [
                                " A new term with new members. This indicates that enough candidates existed, not that",
                                " enough have has been elected. The inner value must be examined for this purpose."
                            ]
                        },
                        {
                            "name": "EmptyTerm",
                            "args": [],
                            "docs": [
                                " No (or not enough) candidates existed for this round."
                            ]
                        },
                        {
                            "name": "MemberKicked",
                            "args": [
                                "AccountId"
                            ],
                            "docs": [
                                " A member has been removed. This should always be followed by either `NewTerm` ot",
                                " `EmptyTerm`."
                            ]
                        },
                        {
                            "name": "MemberRenounced",
                            "args": [
                                "AccountId"
                            ],
                            "docs": [
                                " A member has renounced their candidacy."
                            ]
                        },
                        {
                            "name": "VoterReported",
                            "args": [
                                "AccountId",
                                "AccountId",
                                "bool"
                            ],
                            "docs": [
                                " A voter (first element) was reported (byt the second element) with the the report being",
                                " successful or not (third element)."
                            ]
                        }
                    ],
                    "constants": [
                        {
                            "name": "CandidacyBond",
                            "type": "BalanceOf",
                            "value": "0x0010a5d4e80000000000000000000000",
                            "docs": []
                        },
                        {
                            "name": "VotingBond",
                            "type": "BalanceOf",
                            "value": "0x00743ba40b0000000000000000000000",
                            "docs": []
                        },
                        {
                            "name": "DesiredMembers",
                            "type": "u32",
                            "value": "0x0d000000",
                            "docs": []
                        },
                        {
                            "name": "DesiredRunnersUp",
                            "type": "u32",
                            "value": "0x07000000",
                            "docs": []
                        },
                        {
                            "name": "TermDuration",
                            "type": "BlockNumber",
                            "value": "0xb0040000",
                            "docs": []
                        }
                    ],
                    "errors": []
                },
                {
                    "name": "TechnicalMembership",
                    "storage": {
                        "prefix": "Instance1Membership",
                        "items": [
                            {
                                "name": "Members",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<AccountId>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The current membership, stored as an ordered Vec."
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "add_member",
                            "args": [
                                {
                                    "name": "who",
                                    "type": "AccountId"
                                }
                            ],
                            "docs": [
                                " Add a member `who` to the set.",
                                "",
                                " May only be called from `AddOrigin` or root."
                            ]
                        },
                        {
                            "name": "remove_member",
                            "args": [
                                {
                                    "name": "who",
                                    "type": "AccountId"
                                }
                            ],
                            "docs": [
                                " Remove a member `who` from the set.",
                                "",
                                " May only be called from `RemoveOrigin` or root."
                            ]
                        },
                        {
                            "name": "swap_member",
                            "args": [
                                {
                                    "name": "remove",
                                    "type": "AccountId"
                                },
                                {
                                    "name": "add",
                                    "type": "AccountId"
                                }
                            ],
                            "docs": [
                                " Swap out one member `remove` for another `add`.",
                                "",
                                " May only be called from `SwapOrigin` or root."
                            ]
                        },
                        {
                            "name": "reset_members",
                            "args": [
                                {
                                    "name": "members",
                                    "type": "Vec<AccountId>"
                                }
                            ],
                            "docs": [
                                " Change the membership to a new set, disregarding the existing membership. Be nice and",
                                " pass `members` pre-sorted.",
                                "",
                                " May only be called from `ResetOrigin` or root."
                            ]
                        }
                    ],
                    "events": [
                        {
                            "name": "MemberAdded",
                            "args": [],
                            "docs": [
                                " The given member was added; see the transaction for who."
                            ]
                        },
                        {
                            "name": "MemberRemoved",
                            "args": [],
                            "docs": [
                                " The given member was removed; see the transaction for who."
                            ]
                        },
                        {
                            "name": "MembersSwapped",
                            "args": [],
                            "docs": [
                                " Two members were swapped; see the transaction for who."
                            ]
                        },
                        {
                            "name": "MembersReset",
                            "args": [],
                            "docs": [
                                " The membership was reset; see the transaction for who the new set is."
                            ]
                        },
                        {
                            "name": "Dummy",
                            "args": [
                                "PhantomData"
                            ],
                            "docs": [
                                " Phantom member, never used."
                            ]
                        }
                    ],
                    "constants": [],
                    "errors": []
                },
                {
                    "name": "Treasury",
                    "storage": {
                        "prefix": "Treasury",
                        "items": [
                            {
                                "name": "ProposalCount",
                                "modifier": "Default",
                                "type": {
                                    "plain": "ProposalIndex"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " Number of proposals that have been made."
                                ]
                            },
                            {
                                "name": "Proposals",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "ProposalIndex",
                                        "value": "Proposal",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Proposals that have been made."
                                ]
                            },
                            {
                                "name": "Approvals",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<ProposalIndex>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Proposal indices that have been approved but not yet awarded."
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "propose_spend",
                            "args": [
                                {
                                    "name": "value",
                                    "type": "Compact<BalanceOf>"
                                },
                                {
                                    "name": "beneficiary",
                                    "type": "LookupSource"
                                }
                            ],
                            "docs": [
                                " Put forward a suggestion for spending. A deposit proportional to the value",
                                " is reserved and slashed if the proposal is rejected. It is returned once the",
                                " proposal is awarded.",
                                "",
                                " # <weight>",
                                " - O(1).",
                                " - Limited storage reads.",
                                " - One DB change, one extra DB entry.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "reject_proposal",
                            "args": [
                                {
                                    "name": "proposal_id",
                                    "type": "Compact<ProposalIndex>"
                                }
                            ],
                            "docs": [
                                " Reject a proposed spend. The original deposit will be slashed.",
                                "",
                                " # <weight>",
                                " - O(1).",
                                " - Limited storage reads.",
                                " - One DB clear.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "approve_proposal",
                            "args": [
                                {
                                    "name": "proposal_id",
                                    "type": "Compact<ProposalIndex>"
                                }
                            ],
                            "docs": [
                                " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary",
                                " and the original deposit will be returned.",
                                "",
                                " # <weight>",
                                " - O(1).",
                                " - Limited storage reads.",
                                " - One DB change.",
                                " # </weight>"
                            ]
                        }
                    ],
                    "events": [
                        {
                            "name": "Proposed",
                            "args": [
                                "ProposalIndex"
                            ],
                            "docs": [
                                " New proposal."
                            ]
                        },
                        {
                            "name": "Spending",
                            "args": [
                                "Balance"
                            ],
                            "docs": [
                                " We have ended a spend period and will now allocate funds."
                            ]
                        },
                        {
                            "name": "Awarded",
                            "args": [
                                "ProposalIndex",
                                "Balance",
                                "AccountId"
                            ],
                            "docs": [
                                " Some funds have been allocated."
                            ]
                        },
                        {
                            "name": "Burnt",
                            "args": [
                                "Balance"
                            ],
                            "docs": [
                                " Some of our funds have been burnt."
                            ]
                        },
                        {
                            "name": "Rollover",
                            "args": [
                                "Balance"
                            ],
                            "docs": [
                                " Spending has finished; this is the amount that rolls over until next spend."
                            ]
                        },
                        {
                            "name": "Deposit",
                            "args": [
                                "Balance"
                            ],
                            "docs": [
                                " Some funds have been deposited."
                            ]
                        }
                    ],
                    "constants": [
                        {
                            "name": "ProposalBond",
                            "type": "Permill",
                            "value": "0x50c30000",
                            "docs": [
                                " Fraction of a proposal's value that should be bonded in order to place the proposal.",
                                " An accepted proposal gets these back. A rejected proposal does not."
                            ]
                        },
                        {
                            "name": "ProposalBondMinimum",
                            "type": "BalanceOf",
                            "value": "0x0010a5d4e80000000000000000000000",
                            "docs": [
                                " Minimum amount of funds that should be placed in a deposit for making a proposal."
                            ]
                        },
                        {
                            "name": "SpendPeriod",
                            "type": "BlockNumber",
                            "value": "0x80510100",
                            "docs": [
                                " Period between successive spends."
                            ]
                        },
                        {
                            "name": "Burn",
                            "type": "Permill",
                            "value": "0x10270000",
                            "docs": [
                                " Percentage of spare funds (if any) that are burnt per spend period."
                            ]
                        }
                    ],
                    "errors": []
                },
                {
                    "name": "Claims",
                    "storage": {
                        "prefix": "Claims",
                        "items": [
                            {
                                "name": "Claims",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "EthereumAddress",
                                        "value": "BalanceOf",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": []
                            },
                            {
                                "name": "Total",
                                "modifier": "Default",
                                "type": {
                                    "plain": "BalanceOf"
                                },
                                "fallback": "0x00000000000000000000000000000000",
                                "docs": []
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "claim",
                            "args": [
                                {
                                    "name": "dest",
                                    "type": "AccountId"
                                },
                                {
                                    "name": "ethereum_signature",
                                    "type": "EcdsaSignature"
                                }
                            ],
                            "docs": [
                                " Make a claim."
                            ]
                        },
                        {
                            "name": "mint_claim",
                            "args": [
                                {
                                    "name": "who",
                                    "type": "EthereumAddress"
                                },
                                {
                                    "name": "value",
                                    "type": "BalanceOf"
                                }
                            ],
                            "docs": [
                                " Add a new claim, if you are root."
                            ]
                        }
                    ],
                    "events": [
                        {
                            "name": "Claimed",
                            "args": [
                                "AccountId",
                                "EthereumAddress",
                                "Balance"
                            ],
                            "docs": [
                                " Someone claimed some DOTs."
                            ]
                        }
                    ],
                    "constants": [
                        {
                            "name": "Prefix",
                            "type": "Bytes",
                            "value": "0x7c506179204b534d7320746f20746865204b7573616d61206163636f756e743a",
                            "docs": [
                                " The Prefix that is used in signed Ethereum messages for this network"
                            ]
                        }
                    ],
                    "errors": []
                },
                {
                    "name": "Parachains",
                    "storage": {
                        "prefix": "Parachains",
                        "items": [
                            {
                                "name": "Authorities",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<ValidatorId>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " All authorities' keys at the moment."
                                ]
                            },
                            {
                                "name": "Code",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "ParaId",
                                        "value": "Bytes",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The parachains registered at present."
                                ]
                            },
                            {
                                "name": "Heads",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "ParaId",
                                        "value": "Bytes",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The heads of the parachains registered at present."
                                ]
                            },
                            {
                                "name": "Watermarks",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "ParaId",
                                        "value": "BlockNumber",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The watermark heights of the parachains registered at present.",
                                    " For every parachain, this is the block height from which all messages targeting",
                                    " that parachain have been processed. Can be `None` only if the parachain doesn't exist."
                                ]
                            },
                            {
                                "name": "UnroutedIngress",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "(BlockNumber,ParaId)",
                                        "value": "Vec<(ParaId,Hash)>",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Unrouted ingress. Maps (BlockNumber, to_chain) pairs to [(from_chain, egress_root)].",
                                    "",
                                    " There may be an entry under (i, p) in this map for every i between the parachain's",
                                    " watermark and the current block."
                                ]
                            },
                            {
                                "name": "RelayDispatchQueue",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "ParaId",
                                        "value": "Vec<UpwardMessage>",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Messages ready to be dispatched onto the relay chain. It is subject to",
                                    " `MAX_MESSAGE_COUNT` and `WATERMARK_MESSAGE_SIZE`."
                                ]
                            },
                            {
                                "name": "RelayDispatchQueueSize",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "ParaId",
                                        "value": "(u32,u32)",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x0000000000000000",
                                "docs": [
                                    " Size of the dispatch queues. Separated from actual data in order to avoid costly",
                                    " decoding when checking receipt validity. First item in tuple is the count of messages",
                                    "\tsecond if the total length (in bytes) of the message payloads."
                                ]
                            },
                            {
                                "name": "NeedsDispatch",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<ParaId>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The ordered list of ParaIds that have a `RelayDispatchQueue` entry."
                                ]
                            },
                            {
                                "name": "DidUpdate",
                                "modifier": "Optional",
                                "type": {
                                    "plain": "Vec<ParaId>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Some if the parachain heads get updated in this block, along with the parachain IDs that",
                                    " did update. Ordered in the same way as `registrar::Active` (i.e. by ParaId).",
                                    "",
                                    " None if not yet updated."
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "set_heads",
                            "args": [
                                {
                                    "name": "heads",
                                    "type": "Vec<AttestedCandidate>"
                                }
                            ],
                            "docs": [
                                " Provide candidate receipts for parachains, in ascending order by id."
                            ]
                        }
                    ],
                    "events": null,
                    "constants": [],
                    "errors": []
                },
                {
                    "name": "Attestations",
                    "storage": {
                        "prefix": "Attestations",
                        "items": [
                            {
                                "name": "RecentParaBlocks",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "BlockNumber",
                                        "value": "IncludedBlocks",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " A mapping from modular block number (n % AttestationPeriod)",
                                    " to session index and the list of candidate hashes."
                                ]
                            },
                            {
                                "name": "ParaBlockAttestations",
                                "modifier": "Optional",
                                "type": {
                                    "doubleMap": {
                                        "hasher": "Blake2_256",
                                        "key1": "BlockNumber",
                                        "key2": "Hash",
                                        "value": "BlockAttestations",
                                        "key2Hasher": "Blake2_128"
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Attestations on a recent parachain block."
                                ]
                            },
                            {
                                "name": "DidUpdate",
                                "modifier": "Default",
                                "type": {
                                    "plain": "bool"
                                },
                                "fallback": "0x00",
                                "docs": []
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "more_attestations",
                            "args": [
                                {
                                    "name": "_more",
                                    "type": "MoreAttestations"
                                }
                            ],
                            "docs": [
                                " Provide candidate receipts for parachains, in ascending order by id."
                            ]
                        }
                    ],
                    "events": null,
                    "constants": [],
                    "errors": []
                },
                {
                    "name": "Slots",
                    "storage": {
                        "prefix": "Slots",
                        "items": [
                            {
                                "name": "AuctionCounter",
                                "modifier": "Default",
                                "type": {
                                    "plain": "AuctionIndex"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " The number of auctions that been started so far."
                                ]
                            },
                            {
                                "name": "ManagedIds",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<ParaId>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Ordered list of all `ParaId` values that are managed by this module. This includes",
                                    " chains that are not yet deployed (but have won an auction in the future)."
                                ]
                            },
                            {
                                "name": "Deposits",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "ParaId",
                                        "value": "Vec<BalanceOf>",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Various amounts on deposit for each parachain. An entry in `ManagedIds` implies a non-",
                                    " default entry here.",
                                    "",
                                    " The actual amount locked on its behalf at any time is the maximum item in this list. The",
                                    " first item in the list is the amount locked for the current Lease Period. Following",
                                    " items are for the subsequent lease periods.",
                                    "",
                                    " The default value (an empty list) implies that the parachain no longer exists (or never",
                                    " existed) as far as this module is concerned.",
                                    "",
                                    " If a parachain doesn't exist *yet* but is scheduled to exist in the future, then it",
                                    " will be left-padded with one or more zeroes to denote the fact that nothing is held on",
                                    " deposit for the non-existent chain currently, but is held at some point in the future."
                                ]
                            },
                            {
                                "name": "AuctionInfo",
                                "modifier": "Optional",
                                "type": {
                                    "plain": "(LeasePeriodOf,BlockNumber)"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Information relating to the current auction, if there is one.",
                                    "",
                                    " The first item in the tuple is the lease period index that the first of the four",
                                    " contiguous lease periods on auction is for. The second is the block number when the",
                                    " auction will \"begin to end\", i.e. the first block of the Ending Period of the auction."
                                ]
                            },
                            {
                                "name": "Winning",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "BlockNumber",
                                        "value": "WinningData",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The winning bids for each of the 10 ranges at each block in the final Ending Period of",
                                    " the current auction. The map's key is the 0-based index into the Ending Period. The",
                                    " first block of the ending period is 0; the last is `EndingPeriod - 1`."
                                ]
                            },
                            {
                                "name": "ReservedAmounts",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "Bidder",
                                        "value": "BalanceOf",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Amounts currently reserved in the accounts of the bidders currently winning",
                                    " (sub-)ranges."
                                ]
                            },
                            {
                                "name": "OnboardQueue",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "LeasePeriodOf",
                                        "value": "Vec<ParaId>",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The set of Para IDs that have won and need to be on-boarded at an upcoming lease-period.",
                                    " This is cleared out on the first block of the lease period."
                                ]
                            },
                            {
                                "name": "Onboarding",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "ParaId",
                                        "value": "(LeasePeriodOf,IncomingParachain)",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The actual on-boarding information. Only exists when one of the following is true:",
                                    " - It is before the lease period that the parachain should be on-boarded.",
                                    " - The full on-boarding information has not yet been provided and the parachain is not",
                                    " yet due to be off-boarded."
                                ]
                            },
                            {
                                "name": "Offboarding",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "ParaId",
                                        "value": "AccountId",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
                                "docs": [
                                    " Off-boarding account; currency held on deposit for the parachain gets placed here if the",
                                    " parachain gets off-boarded; i.e. its lease period is up and it isn't renewed."
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "new_auction",
                            "args": [
                                {
                                    "name": "duration",
                                    "type": "Compact<BlockNumber>"
                                },
                                {
                                    "name": "lease_period_index",
                                    "type": "Compact<LeasePeriodOf>"
                                }
                            ],
                            "docs": [
                                " Create a new auction.",
                                "",
                                " This can only happen when there isn't already an auction in progress and may only be",
                                " called by the root origin. Accepts the `duration` of this auction and the",
                                " `lease_period_index` of the initial lease period of the four that are to be auctioned."
                            ]
                        },
                        {
                            "name": "bid",
                            "args": [
                                {
                                    "name": "sub",
                                    "type": "Compact<SubId>"
                                },
                                {
                                    "name": "auction_index",
                                    "type": "Compact<AuctionIndex>"
                                },
                                {
                                    "name": "first_slot",
                                    "type": "Compact<LeasePeriodOf>"
                                },
                                {
                                    "name": "last_slot",
                                    "type": "Compact<LeasePeriodOf>"
                                },
                                {
                                    "name": "amount",
                                    "type": "Compact<BalanceOf>"
                                }
                            ],
                            "docs": [
                                " Make a new bid from an account (including a parachain account) for deploying a new",
                                " parachain.",
                                "",
                                " Multiple simultaneous bids from the same bidder are allowed only as long as all active",
                                " bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted.",
                                "",
                                " - `sub` is the sub-bidder ID, allowing for multiple competing bids to be made by (and",
                                " funded by) the same account.",
                                " - `auction_index` is the index of the auction to bid on. Should just be the present",
                                " value of `AuctionCounter`.",
                                " - `first_slot` is the first lease period index of the range to bid on. This is the",
                                " absolute lease period index value, not an auction-specific offset.",
                                " - `last_slot` is the last lease period index of the range to bid on. This is the",
                                " absolute lease period index value, not an auction-specific offset.",
                                " - `amount` is the amount to bid to be held as deposit for the parachain should the",
                                " bid win. This amount is held throughout the range."
                            ]
                        },
                        {
                            "name": "bid_renew",
                            "args": [
                                {
                                    "name": "auction_index",
                                    "type": "Compact<AuctionIndex>"
                                },
                                {
                                    "name": "first_slot",
                                    "type": "Compact<LeasePeriodOf>"
                                },
                                {
                                    "name": "last_slot",
                                    "type": "Compact<LeasePeriodOf>"
                                },
                                {
                                    "name": "amount",
                                    "type": "Compact<BalanceOf>"
                                }
                            ],
                            "docs": [
                                " Make a new bid from a parachain account for renewing that (pre-existing) parachain.",
                                "",
                                " The origin *must* be a parachain account.",
                                "",
                                " Multiple simultaneous bids from the same bidder are allowed only as long as all active",
                                " bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted.",
                                "",
                                " - `auction_index` is the index of the auction to bid on. Should just be the present",
                                " value of `AuctionCounter`.",
                                " - `first_slot` is the first lease period index of the range to bid on. This is the",
                                " absolute lease period index value, not an auction-specific offset.",
                                " - `last_slot` is the last lease period index of the range to bid on. This is the",
                                " absolute lease period index value, not an auction-specific offset.",
                                " - `amount` is the amount to bid to be held as deposit for the parachain should the",
                                " bid win. This amount is held throughout the range."
                            ]
                        },
                        {
                            "name": "set_offboarding",
                            "args": [
                                {
                                    "name": "dest",
                                    "type": "LookupSource"
                                }
                            ],
                            "docs": [
                                " Set the off-boarding information for a parachain.",
                                "",
                                " The origin *must* be a parachain account.",
                                "",
                                " - `dest` is the destination account to receive the parachain's deposit."
                            ]
                        },
                        {
                            "name": "fix_deploy_data",
                            "args": [
                                {
                                    "name": "sub",
                                    "type": "Compact<SubId>"
                                },
                                {
                                    "name": "para_id",
                                    "type": "Compact<ParaId>"
                                },
                                {
                                    "name": "code_hash",
                                    "type": "Hash"
                                },
                                {
                                    "name": "initial_head_data",
                                    "type": "Bytes"
                                }
                            ],
                            "docs": [
                                " Set the deploy information for a successful bid to deploy a new parachain.",
                                "",
                                " - `origin` must be the successful bidder account.",
                                " - `sub` is the sub-bidder ID of the bidder.",
                                " - `para_id` is the parachain ID allotted to the winning bidder.",
                                " - `code_hash` is the hash of the parachain's Wasm validation function.",
                                " - `initial_head_data` is the parachain's initial head data."
                            ]
                        },
                        {
                            "name": "elaborate_deploy_data",
                            "args": [
                                {
                                    "name": "para_id",
                                    "type": "Compact<ParaId>"
                                },
                                {
                                    "name": "code",
                                    "type": "Bytes"
                                }
                            ],
                            "docs": [
                                " Note a new parachain's code.",
                                "",
                                " This must be called after `fix_deploy_data` and `code` must be the preimage of the",
                                " `code_hash` passed there for the same `para_id`.",
                                "",
                                " This may be called before or after the beginning of the parachain's first lease period.",
                                " If called before then the parachain will become active at the first block of its",
                                " starting lease period. If after, then it will become active immediately after this call.",
                                "",
                                " - `_origin` is irrelevant.",
                                " - `para_id` is the parachain ID whose code will be elaborated.",
                                " - `code` is the preimage of the registered `code_hash` of `para_id`."
                            ]
                        }
                    ],
                    "events": [
                        {
                            "name": "NewLeasePeriod",
                            "args": [
                                "LeasePeriod"
                            ],
                            "docs": [
                                " A new lease period is beginning."
                            ]
                        },
                        {
                            "name": "AuctionStarted",
                            "args": [
                                "AuctionIndex",
                                "LeasePeriod",
                                "BlockNumber"
                            ],
                            "docs": [
                                " An auction started. Provides its index and the block number where it will begin to",
                                " close and the first lease period of the quadruplet that is auctioned."
                            ]
                        },
                        {
                            "name": "AuctionClosed",
                            "args": [
                                "AuctionIndex"
                            ],
                            "docs": [
                                " An auction ended. All funds become unreserved."
                            ]
                        },
                        {
                            "name": "WonDeploy",
                            "args": [
                                "NewBidder",
                                "SlotRange",
                                "ParaId",
                                "Balance"
                            ],
                            "docs": [
                                " Someone won the right to deploy a parachain. Balance amount is deducted for deposit."
                            ]
                        },
                        {
                            "name": "WonRenewal",
                            "args": [
                                "ParaId",
                                "SlotRange",
                                "Balance",
                                "Balance"
                            ],
                            "docs": [
                                " An existing parachain won the right to continue.",
                                " First balance is the extra amount reseved. Second is the total amount reserved."
                            ]
                        },
                        {
                            "name": "Reserved",
                            "args": [
                                "AccountId",
                                "Balance",
                                "Balance"
                            ],
                            "docs": [
                                " Funds were reserved for a winning bid. First balance is the extra amount reserved.",
                                " Second is the total."
                            ]
                        },
                        {
                            "name": "Unreserved",
                            "args": [
                                "AccountId",
                                "Balance"
                            ],
                            "docs": [
                                " Funds were unreserved since bidder is no longer active."
                            ]
                        }
                    ],
                    "constants": [],
                    "errors": []
                },
                {
                    "name": "Registrar",
                    "storage": {
                        "prefix": "Registrar",
                        "items": [
                            {
                                "name": "Parachains",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<ParaId>"
                                },
                                "fallback": "0x00",
                                "docs": []
                            },
                            {
                                "name": "ThreadCount",
                                "modifier": "Default",
                                "type": {
                                    "plain": "u32"
                                },
                                "fallback": "0x00000000",
                                "docs": [
                                    " The number of threads to schedule per block."
                                ]
                            },
                            {
                                "name": "SelectedThreads",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<Vec<(ParaId,CollatorId)>>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " An array of the queue of set of threads scheduled for the coming blocks; ordered by",
                                    " ascending para ID. There can be no duplicates of para ID in each list item."
                                ]
                            },
                            {
                                "name": "Active",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<(ParaId,Option<(CollatorId,Retriable)>)>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Parathreads/chains scheduled for execution this block. If the collator ID is set, then",
                                    " a particular collator has already been chosen for the next block, and no other collator",
                                    " may provide the block. In this case we allow the possibility of the combination being",
                                    " retried in a later block, expressed by `Retriable`.",
                                    "",
                                    " Ordered by ParaId."
                                ]
                            },
                            {
                                "name": "NextFreeId",
                                "modifier": "Default",
                                "type": {
                                    "plain": "ParaId"
                                },
                                "fallback": "0xe8030000",
                                "docs": [
                                    " The next unused ParaId value. Start this high in order to keep low numbers for",
                                    " system-level chains."
                                ]
                            },
                            {
                                "name": "PendingSwap",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "ParaId",
                                        "value": "ParaId",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Pending swap operations."
                                ]
                            },
                            {
                                "name": "Paras",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "ParaId",
                                        "value": "ParaInfo",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " Map of all registered parathreads/chains."
                                ]
                            },
                            {
                                "name": "RetryQueue",
                                "modifier": "Default",
                                "type": {
                                    "plain": "Vec<Vec<(ParaId,CollatorId)>>"
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The current queue for parathreads that should be retried."
                                ]
                            },
                            {
                                "name": "Debtors",
                                "modifier": "Default",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "ParaId",
                                        "value": "AccountId",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
                                "docs": [
                                    " Users who have paid a parathread's deposit"
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "register_para",
                            "args": [
                                {
                                    "name": "id",
                                    "type": "Compact<ParaId>"
                                },
                                {
                                    "name": "info",
                                    "type": "ParaInfo"
                                },
                                {
                                    "name": "code",
                                    "type": "Bytes"
                                },
                                {
                                    "name": "initial_head_data",
                                    "type": "Bytes"
                                }
                            ],
                            "docs": [
                                " Register a parachain with given code.",
                                " Fails if given ID is already used."
                            ]
                        },
                        {
                            "name": "deregister_para",
                            "args": [
                                {
                                    "name": "id",
                                    "type": "Compact<ParaId>"
                                }
                            ],
                            "docs": [
                                " Deregister a parachain with given id"
                            ]
                        },
                        {
                            "name": "set_thread_count",
                            "args": [
                                {
                                    "name": "count",
                                    "type": "u32"
                                }
                            ],
                            "docs": [
                                " Reset the number of parathreads that can pay to be scheduled in a single block.",
                                "",
                                " - `count`: The number of parathreads.",
                                "",
                                " Must be called from Root origin."
                            ]
                        },
                        {
                            "name": "register_parathread",
                            "args": [
                                {
                                    "name": "code",
                                    "type": "Bytes"
                                },
                                {
                                    "name": "initial_head_data",
                                    "type": "Bytes"
                                }
                            ],
                            "docs": [
                                " Register a parathread for immediate use.",
                                "",
                                " Must be sent from a Signed origin that is able to have ParathreadDeposit reserved.",
                                " `code` and `initial_head_data` are used to initialize the parathread's state."
                            ]
                        },
                        {
                            "name": "select_parathread",
                            "args": [
                                {
                                    "name": "_id",
                                    "type": "Compact<ParaId>"
                                },
                                {
                                    "name": "_collator",
                                    "type": "CollatorId"
                                },
                                {
                                    "name": "_head_hash",
                                    "type": "Hash"
                                }
                            ],
                            "docs": [
                                " Place a bid for a parathread to be progressed in the next block.",
                                "",
                                " This is a kind of special transaction that should by heavily prioritized in the",
                                " transaction pool according to the `value`; only `ThreadCount` of them may be presented",
                                " in any single block."
                            ]
                        },
                        {
                            "name": "deregister_parathread",
                            "args": [],
                            "docs": [
                                " Deregister a parathread and retrieve the deposit.",
                                "",
                                " Must be sent from a `Parachain` origin which is currently a parathread.",
                                "",
                                " Ensure that before calling this that any funds you want emptied from the parathread's",
                                " account is moved out; after this it will be impossible to retrieve them (without",
                                " governance intervention)."
                            ]
                        },
                        {
                            "name": "swap",
                            "args": [
                                {
                                    "name": "other",
                                    "type": "Compact<ParaId>"
                                }
                            ],
                            "docs": [
                                " Swap a parachain with another parachain or parathread. The origin must be a `Parachain`.",
                                " The swap will happen only if there is already an opposite swap pending. If there is not,",
                                " the swap will be stored in the pending swaps map, ready for a later confirmatory swap.",
                                "",
                                " The `ParaId`s remain mapped to the same head data and code so external code can rely on",
                                " `ParaId` to be a long-term identifier of a notional \"parachain\". However, their",
                                " scheduling info (i.e. whether they're a parathread or parachain), auction information",
                                " and the auction deposit are switched."
                            ]
                        }
                    ],
                    "events": [
                        {
                            "name": "ParathreadRegistered",
                            "args": [
                                "ParaId"
                            ],
                            "docs": [
                                " A parathread was registered; its new ID is supplied."
                            ]
                        },
                        {
                            "name": "ParathreadDeregistered",
                            "args": [
                                "ParaId"
                            ],
                            "docs": [
                                " The parathread of the supplied ID was de-registered."
                            ]
                        }
                    ],
                    "constants": [],
                    "errors": []
                },
                {
                    "name": "Sudo",
                    "storage": {
                        "prefix": "Sudo",
                        "items": [
                            {
                                "name": "Key",
                                "modifier": "Default",
                                "type": {
                                    "plain": "AccountId"
                                },
                                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
                                "docs": [
                                    " The `AccountId` of the sudo key."
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "sudo",
                            "args": [
                                {
                                    "name": "proposal",
                                    "type": "Proposal"
                                }
                            ],
                            "docs": [
                                " Authenticates the sudo key and dispatches a function call with `Root` origin.",
                                "",
                                " The dispatch origin for this call must be _Signed_.",
                                "",
                                " # <weight>",
                                " - O(1).",
                                " - Limited storage reads.",
                                " - One DB write (event).",
                                " - Unknown weight of derivative `proposal` execution.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "set_key",
                            "args": [
                                {
                                    "name": "new",
                                    "type": "LookupSource"
                                }
                            ],
                            "docs": [
                                " Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.",
                                "",
                                " The dispatch origin for this call must be _Signed_.",
                                "",
                                " # <weight>",
                                " - O(1).",
                                " - Limited storage reads.",
                                " - One DB change.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "sudo_as",
                            "args": [
                                {
                                    "name": "who",
                                    "type": "LookupSource"
                                },
                                {
                                    "name": "proposal",
                                    "type": "Proposal"
                                }
                            ],
                            "docs": [
                                " Authenticates the sudo key and dispatches a function call with `Signed` origin from",
                                " a given account.",
                                "",
                                " The dispatch origin for this call must be _Signed_.",
                                "",
                                " # <weight>",
                                " - O(1).",
                                " - Limited storage reads.",
                                " - One DB write (event).",
                                " - Unknown weight of derivative `proposal` execution.",
                                " # </weight>"
                            ]
                        }
                    ],
                    "events": [
                        {
                            "name": "Sudid",
                            "args": [
                                "bool"
                            ],
                            "docs": [
                                " A sudo just took place."
                            ]
                        },
                        {
                            "name": "KeyChanged",
                            "args": [
                                "AccountId"
                            ],
                            "docs": [
                                " The sudoer just switched identity; the old key is supplied."
                            ]
                        },
                        {
                            "name": "SudoAsDone",
                            "args": [
                                "bool"
                            ],
                            "docs": [
                                " A sudo just took place."
                            ]
                        }
                    ],
                    "constants": [],
                    "errors": []
                },
                {
                    "name": "Nicks",
                    "storage": {
                        "prefix": "Sudo",
                        "items": [
                            {
                                "name": "NameOf",
                                "modifier": "Optional",
                                "type": {
                                    "map": {
                                        "hasher": "Blake2_256",
                                        "key": "AccountId",
                                        "value": "(Bytes,BalanceOf)",
                                        "linked": false
                                    }
                                },
                                "fallback": "0x00",
                                "docs": [
                                    " The lookup table for names."
                                ]
                            }
                        ]
                    },
                    "calls": [
                        {
                            "name": "set_name",
                            "args": [
                                {
                                    "name": "name",
                                    "type": "Bytes"
                                }
                            ],
                            "docs": [
                                " Set an account's name. The name should be a UTF-8-encoded string by convention, though",
                                " we don't check it.",
                                "",
                                " The name may not be more than `T::MaxLength` bytes, nor less than `T::MinLength` bytes.",
                                "",
                                " If the account doesn't already have a name, then a fee of `ReservationFee` is reserved",
                                " in the account.",
                                "",
                                " The dispatch origin for this call must be _Signed_.",
                                "",
                                " # <weight>",
                                " - O(1).",
                                " - At most one balance operation.",
                                " - One storage read/write.",
                                " - One event.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "clear_name",
                            "args": [],
                            "docs": [
                                " Clear an account's name and return the deposit. Fails if the account was not named.",
                                "",
                                " The dispatch origin for this call must be _Signed_.",
                                "",
                                " # <weight>",
                                " - O(1).",
                                " - One balance operation.",
                                " - One storage read/write.",
                                " - One event.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "kill_name",
                            "args": [
                                {
                                    "name": "target",
                                    "type": "LookupSource"
                                }
                            ],
                            "docs": [
                                " Remove an account's name and take charge of the deposit.",
                                "",
                                " Fails if `who` has not been named. The deposit is dealt with through `T::Slashed`",
                                " imbalance handler.",
                                "",
                                " The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.",
                                "",
                                " # <weight>",
                                " - O(1).",
                                " - One unbalanced handler (probably a balance transfer)",
                                " - One storage read/write.",
                                " - One event.",
                                " # </weight>"
                            ]
                        },
                        {
                            "name": "force_name",
                            "args": [
                                {
                                    "name": "target",
                                    "type": "LookupSource"
                                },
                                {
                                    "name": "name",
                                    "type": "Bytes"
                                }
                            ],
                            "docs": [
                                " Set a third-party account's name with no deposit.",
                                "",
                                " No length checking is done on the name.",
                                "",
                                " The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.",
                                "",
                                " # <weight>",
                                " - O(1).",
                                " - At most one balance operation.",
                                " - One storage read/write.",
                                " - One event.",
                                " # </weight>"
                            ]
                        }
                    ],
                    "events": [
                        {
                            "name": "NameSet",
                            "args": [
                                "AccountId"
                            ],
                            "docs": [
                                " A name was set."
                            ]
                        },
                        {
                            "name": "NameForced",
                            "args": [
                                "AccountId"
                            ],
                            "docs": [
                                " A name was forcibly set."
                            ]
                        },
                        {
                            "name": "NameChanged",
                            "args": [
                                "AccountId"
                            ],
                            "docs": [
                                " A name was changed."
                            ]
                        },
                        {
                            "name": "NameCleared",
                            "args": [
                                "AccountId",
                                "Balance"
                            ],
                            "docs": [
                                " A name was cleared, and the given balance returned."
                            ]
                        },
                        {
                            "name": "NameKilled",
                            "args": [
                                "AccountId",
                                "Balance"
                            ],
                            "docs": [
                                " A name was removed and the given balance slashed."
                            ]
                        }
                    ],
                    "constants": [
                        {
                            "name": "ReservationFee",
                            "type": "BalanceOf",
                            "value": "0x00e40b54020000000000000000000000",
                            "docs": [
                                " Reservation fee."
                            ]
                        },
                        {
                            "name": "MinLength",
                            "type": "u32",
                            "value": "0x03000000",
                            "docs": [
                                " The minimum length a name may be."
                            ]
                        },
                        {
                            "name": "MaxLength",
                            "type": "u32",
                            "value": "0x10000000",
                            "docs": [
                                " The maximum length a name may be."
                            ]
                        }
                    ],
                    "errors": []
                }
            ]
        }
    }
}